@@ -20,6 +20,7 @@ const {
2020 SafeSet,
2121 SafePromiseAll,
2222 SafePromiseRace,
23+ ObjectDefineProperty,
2324 Symbol,
2425} = primordials ;
2526const { AsyncResource } = require ( 'async_hooks' ) ;
@@ -79,7 +80,13 @@ function stopTest(timeout, signal) {
7980
8081 if ( timeout === kDefaultTimeout ) {
8182 signal . addEventListener ( 'abort' , deferred . resolve , { __proto__ : null , once : true } ) ;
82- deferred . cleanup = ( ) => signal . removeEventListener ( 'abort' , deferred . resolve ) ;
83+
84+ ObjectDefineProperty ( deferred , 'cleanup' , {
85+ __proto__ : null ,
86+ configurable : true ,
87+ writable : true ,
88+ value : ( ) => signal . removeEventListener ( 'abort' , deferred . resolve ) ,
89+ } ) ;
8390
8491 return deferred ;
8592 }
@@ -97,17 +104,27 @@ function stopTest(timeout, signal) {
97104 clearTimeout ( timer ) ;
98105 }
99106
100- deferred . promise = PromisePrototypeThen ( deferred . promise , ( ) => {
101- throw new ERR_TEST_FAILURE (
102- `test timed out after ${ timeout } ms` ,
103- kTestTimeoutFailure ,
104- ) ;
107+ ObjectDefineProperty ( deferred , 'promise' , {
108+ __proto__ : null ,
109+ configurable : true ,
110+ writable : true ,
111+ value : PromisePrototypeThen ( deferred . promise , ( ) => {
112+ throw new ERR_TEST_FAILURE (
113+ `test timed out after ${ timeout } ms` ,
114+ kTestTimeoutFailure ,
115+ ) ;
116+ } ) ,
105117 } ) ;
106118
107- deferred . cleanup = ( ) => {
108- clearTimeout ( timer ) ;
109- cleanAbort ( ) ;
110- } ;
119+ ObjectDefineProperty ( deferred , 'cleanup' , {
120+ __proto__ : null ,
121+ configurable : true ,
122+ writable : true ,
123+ value : ( ) => {
124+ clearTimeout ( timer ) ;
125+ cleanAbort ( ) ;
126+ } ,
127+ } ) ;
111128
112129 return deferred ;
113130}
0 commit comments