Skip to content

Commit 00a2fc7

Browse files
aduh95marco-ippolito
authored andcommitted
lib: move Symbol[Async]Dispose polyfills to internal/util
PR-URL: #54853 Backport-PR-URL: #55264 Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent f25a5b6 commit 00a2fc7

27 files changed

+50
-45
lines changed

lib/_http_server.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ const {
2929
ObjectSetPrototypeOf,
3030
ReflectApply,
3131
Symbol,
32-
SymbolAsyncDispose,
3332
SymbolFor,
3433
} = primordials;
3534

@@ -82,6 +81,7 @@ const {
8281
const {
8382
kEmptyObject,
8483
promisify,
84+
SymbolAsyncDispose,
8585
} = require('internal/util');
8686
const {
8787
validateInteger,

lib/child_process.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ const {
4242
StringPrototypeIncludes,
4343
StringPrototypeSlice,
4444
StringPrototypeToUpperCase,
45-
SymbolDispose,
4645
} = primordials;
4746

4847
const {
@@ -51,6 +50,7 @@ const {
5150
getSystemErrorName,
5251
kEmptyObject,
5352
promisify,
53+
SymbolDispose,
5454
} = require('internal/util');
5555
const { isArrayBufferView } = require('internal/util/types');
5656
let debug = require('internal/util/debuglog').debuglog(

lib/dgram.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ const {
3030
ObjectDefineProperty,
3131
ObjectSetPrototypeOf,
3232
ReflectApply,
33-
SymbolAsyncDispose,
34-
SymbolDispose,
3533
} = primordials;
3634

3735
const errors = require('internal/errors');
@@ -60,7 +58,7 @@ const {
6058
validatePort,
6159
} = require('internal/validators');
6260
const { Buffer } = require('buffer');
63-
const { deprecate, guessHandleType, promisify } = require('internal/util');
61+
const { deprecate, guessHandleType, promisify, SymbolAsyncDispose, SymbolDispose } = require('internal/util');
6462
const { isArrayBufferView } = require('internal/util/types');
6563
const EventEmitter = require('events');
6664
const { addAbortListener } = require('internal/events/abort_listener');

lib/events.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,10 @@ const {
4848
Symbol,
4949
SymbolFor,
5050
SymbolAsyncIterator,
51-
SymbolDispose,
5251
} = primordials;
5352
const kRejection = SymbolFor('nodejs.rejection');
5453

55-
const { kEmptyObject } = require('internal/util');
54+
const { SymbolDispose, kEmptyObject } = require('internal/util');
5655

5756
const {
5857
inspect,

lib/https.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ const {
3333
ObjectSetPrototypeOf,
3434
ReflectApply,
3535
ReflectConstruct,
36-
SymbolAsyncDispose,
3736
} = primordials;
3837

3938
const {
4039
assertCrypto,
4140
kEmptyObject,
4241
promisify,
42+
SymbolAsyncDispose,
4343
} = require('internal/util');
4444
assertCrypto();
4545

lib/inspector.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ const {
44
JSONParse,
55
JSONStringify,
66
SafeMap,
7-
SymbolDispose,
87
} = primordials;
98

9+
const {
10+
SymbolDispose,
11+
} = require('internal/util');
12+
1013
const {
1114
ERR_INSPECTOR_ALREADY_ACTIVATED,
1215
ERR_INSPECTOR_ALREADY_CONNECTED,

lib/internal/child_process.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ const {
1212
ReflectApply,
1313
StringPrototypeSlice,
1414
Symbol,
15-
SymbolDispose,
1615
Uint8Array,
1716
} = primordials;
1817

@@ -56,7 +55,7 @@ const { TTY } = internalBinding('tty_wrap');
5655
const { UDP } = internalBinding('udp_wrap');
5756
const SocketList = require('internal/socket_list');
5857
const { owner_symbol } = require('internal/async_hooks').symbols;
59-
const { convertToValidSignal, deprecate } = require('internal/util');
58+
const { convertToValidSignal, deprecate, SymbolDispose } = require('internal/util');
6059
const { isArrayBufferView } = require('internal/util/types');
6160
const spawn_sync = internalBinding('spawn_sync');
6261
const { kStateSymbol } = require('internal/dgram');

lib/internal/events/abort_listener.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const {
44
SymbolDispose,
5-
} = primordials;
5+
} = require('internal/util');
66
const {
77
validateAbortSignal,
88
validateFunction,

lib/internal/fs/promises.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ const {
1515
SafeArrayIterator,
1616
SafePromisePrototypeFinally,
1717
Symbol,
18-
SymbolAsyncDispose,
1918
Uint8Array,
2019
FunctionPrototypeBind,
2120
uncurryThis,
@@ -96,6 +95,7 @@ const {
9695
lazyDOMException,
9796
promisify,
9897
getLazy,
98+
SymbolAsyncDispose,
9999
} = require('internal/util');
100100
const { EventEmitterMixin } = require('internal/event_target');
101101
const { StringDecoder } = require('string_decoder');

lib/internal/http2/core.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ const {
1919
SafeMap,
2020
SafeSet,
2121
Symbol,
22-
SymbolAsyncDispose,
23-
SymbolDispose,
2422
Uint32Array,
2523
Uint8Array,
2624
} = primordials;
@@ -30,6 +28,8 @@ const {
3028
customInspectSymbol: kInspect,
3129
kEmptyObject,
3230
promisify,
31+
SymbolAsyncDispose,
32+
SymbolDispose,
3333
} = require('internal/util');
3434

3535
assertCrypto();

lib/internal/per_context/primordials.js

-5
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,6 @@ function copyPrototype(src, dest, prefix) {
228228
copyPrototype(original.prototype, primordials, `${name}Prototype`);
229229
});
230230

231-
// Define Symbol.dispose and Symbol.asyncDispose
232-
// Until these are defined by the environment.
233-
// TODO(MoLow): Remove this polyfill once Symbol.dispose and Symbol.asyncDispose are available in V8.
234-
primordials.SymbolDispose ??= primordials.SymbolFor('nodejs.dispose');
235-
primordials.SymbolAsyncDispose ??= primordials.SymbolFor('nodejs.asyncDispose');
236231

237232
// Create copies of intrinsic objects that require a valid `this` to call
238233
// static methods.

lib/internal/process/pre_execution.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ const {
1717
String,
1818
StringPrototypeStartsWith,
1919
Symbol,
20-
SymbolAsyncDispose,
21-
SymbolDispose,
2220
globalThis,
2321
} = primordials;
2422

@@ -34,6 +32,8 @@ const {
3432
defineReplaceableLazyAttribute,
3533
setupCoverageHooks,
3634
emitExperimentalWarning,
35+
SymbolAsyncDispose,
36+
SymbolDispose,
3737
} = require('internal/util');
3838

3939
const {

lib/internal/readline/interface.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ const {
2828
StringPrototypeStartsWith,
2929
StringPrototypeTrim,
3030
Symbol,
31-
SymbolDispose,
3231
SymbolAsyncIterator,
3332
SafeStringIterator,
3433
} = primordials;
@@ -46,7 +45,7 @@ const {
4645
validateString,
4746
validateUint32,
4847
} = require('internal/validators');
49-
const { kEmptyObject } = require('internal/util');
48+
const { SymbolDispose, kEmptyObject } = require('internal/util');
5049
const {
5150
inspect,
5251
getStringWidth,

lib/internal/streams/add-abort-signal.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const {
44
SymbolDispose,
5-
} = primordials;
5+
} = require('internal/util');
66

77
const {
88
AbortError,

lib/internal/streams/end-of-stream.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const {
1414
const {
1515
kEmptyObject,
1616
once,
17+
SymbolDispose,
1718
} = require('internal/util');
1819
const {
1920
validateAbortSignal,
@@ -25,7 +26,6 @@ const {
2526
const {
2627
Promise,
2728
PromisePrototypeThen,
28-
SymbolDispose,
2929
} = primordials;
3030

3131
const {

lib/internal/streams/pipeline.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ const {
77
ArrayIsArray,
88
Promise,
99
SymbolAsyncIterator,
10-
SymbolDispose,
1110
} = primordials;
1211

1312
const eos = require('internal/streams/end-of-stream');
14-
const { once } = require('internal/util');
13+
const { SymbolDispose, once } = require('internal/util');
1514
const destroyImpl = require('internal/streams/destroy');
1615
const Duplex = require('internal/streams/duplex');
1716
const {

lib/internal/streams/readable.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ const {
3232
Promise,
3333
SafeSet,
3434
Symbol,
35-
SymbolAsyncDispose,
3635
SymbolAsyncIterator,
3736
SymbolSpecies,
3837
TypedArrayPrototypeSet,
@@ -44,6 +43,9 @@ Readable.ReadableState = ReadableState;
4443
const EE = require('events');
4544
const { Stream, prependListener } = require('internal/streams/legacy');
4645
const { Buffer } = require('buffer');
46+
const {
47+
SymbolAsyncDispose,
48+
} = require('internal/util');
4749

4850
const {
4951
addAbortSignal,

lib/internal/streams/writable.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ const {
3535
Promise,
3636
StringPrototypeToLowerCase,
3737
Symbol,
38-
SymbolAsyncDispose,
3938
SymbolHasInstance,
4039
} = primordials;
4140

@@ -47,6 +46,9 @@ const Stream = require('internal/streams/legacy').Stream;
4746
const { Buffer } = require('buffer');
4847
const destroyImpl = require('internal/streams/destroy');
4948
const eos = require('internal/streams/end-of-stream');
49+
const {
50+
SymbolAsyncDispose,
51+
} = require('internal/util');
5052

5153
const {
5254
addAbortSignal,

lib/internal/test_runner/mock/mock_timers.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
'use strict';
22

3-
const {
4-
emitExperimentalWarning,
5-
} = require('internal/util');
6-
73
const {
84
ArrayPrototypeAt,
95
ArrayPrototypeForEach,
@@ -22,14 +18,17 @@ const {
2218
Promise,
2319
Symbol,
2420
SymbolAsyncIterator,
25-
SymbolDispose,
2621
} = primordials;
2722
const {
2823
validateAbortSignal,
2924
validateNumber,
3025
validateStringArray,
3126
} = require('internal/validators');
3227

28+
const {
29+
emitExperimentalWarning,
30+
SymbolDispose,
31+
} = require('internal/util');
3332
const {
3433
AbortError,
3534
codes: { ERR_INVALID_STATE, ERR_INVALID_ARG_VALUE },

lib/internal/test_runner/test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ const {
2222
SafeSet,
2323
SafePromiseAll,
2424
SafePromiseRace,
25-
SymbolDispose,
2625
ObjectDefineProperty,
2726
Symbol,
2827
} = primordials;
@@ -49,6 +48,7 @@ const {
4948
createDeferredPromise,
5049
kEmptyObject,
5150
once: runOnce,
51+
SymbolDispose,
5252
} = require('internal/util');
5353
const { isPromise } = require('internal/util/types');
5454
const {

lib/internal/util.js

+8
Original file line numberDiff line numberDiff line change
@@ -927,6 +927,14 @@ module.exports = {
927927
setupCoverageHooks,
928928
removeColors,
929929

930+
// Define Symbol.dispose and Symbol.asyncDispose
931+
// Until these are defined by the environment.
932+
// TODO(MoLow): Remove this polyfill once Symbol.dispose and Symbol.asyncDispose are available in primordials.
933+
// eslint-disable-next-line node-core/prefer-primordials
934+
SymbolDispose: Symbol.dispose || SymbolFor('nodejs.dispose'),
935+
// eslint-disable-next-line node-core/prefer-primordials
936+
SymbolAsyncDispose: Symbol.asyncDispose || SymbolFor('nodejs.asyncDispose'),
937+
930938
// Symbol used to customize promisify conversion
931939
customPromisifyArgs: kCustomPromisifyArgsSymbol,
932940

lib/internal/webstreams/readablestream.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ const {
2121
SafePromiseAll,
2222
Symbol,
2323
SymbolAsyncIterator,
24-
SymbolDispose,
2524
SymbolToStringTag,
2625
TypedArrayPrototypeGetLength,
2726
Uint8Array,
@@ -55,6 +54,7 @@ const {
5554
kEmptyObject,
5655
kEnumerableProperty,
5756
SideEffectFreeRegExpPrototypeSymbolReplace,
57+
SymbolDispose,
5858
} = require('internal/util');
5959

6060
const {

lib/net.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ const {
3636
ObjectDefineProperty,
3737
ObjectSetPrototypeOf,
3838
Symbol,
39-
SymbolAsyncDispose,
40-
SymbolDispose,
4139
} = primordials;
4240

4341
const EventEmitter = require('events');
@@ -115,7 +113,13 @@ const {
115113
} = require('internal/errors');
116114
const { isUint8Array } = require('internal/util/types');
117115
const { queueMicrotask } = require('internal/process/task_queues');
118-
const { kEmptyObject, guessHandleType, promisify } = require('internal/util');
116+
const {
117+
guessHandleType,
118+
kEmptyObject,
119+
promisify,
120+
SymbolAsyncDispose,
121+
SymbolDispose,
122+
} = require('internal/util');
119123
const {
120124
validateAbortSignal,
121125
validateBoolean,

lib/readline.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ const {
3030
Promise,
3131
PromiseReject,
3232
StringPrototypeSlice,
33-
SymbolDispose,
3433
} = primordials;
3534

3635
const {
@@ -51,6 +50,7 @@ const {
5150
const {
5251
kEmptyObject,
5352
promisify,
53+
SymbolDispose,
5454
} = require('internal/util');
5555
const { validateAbortSignal } = require('internal/validators');
5656

0 commit comments

Comments
 (0)