Skip to content

Commit 60b916d

Browse files
committed
use ObjectDefineProperty
1 parent d513879 commit 60b916d

1 file changed

Lines changed: 27 additions & 10 deletions

File tree

lib/internal/test_runner/test.js

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const {
2020
SafeSet,
2121
SafePromiseAll,
2222
SafePromiseRace,
23+
ObjectDefineProperty,
2324
Symbol,
2425
} = primordials;
2526
const { 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

Comments
 (0)