diff --git a/lib/_http_server.js b/lib/_http_server.js index f037e9e97ceb31..2e60a744f2a29f 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -395,7 +395,7 @@ Server.prototype.setTimeout = function setTimeout(msecs, callback) { Server.prototype[EE.captureRejectionSymbol] = function(err, event, ...args) { switch (event) { case 'request': - const [ , res] = args; + const { 1: res } = args; if (!res.headersSent && !res.writableEnded) { // Don't leak headers. const names = res.getHeaderNames(); diff --git a/lib/assert.js b/lib/assert.js index 9a62b38b57efb9..35cf2101f7963d 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -339,7 +339,7 @@ function getErrMessage(message, fn) { } fd = openSync(filename, 'r', 0o666); // Reset column and message. - [column, message] = getCode(fd, line, column); + ({ 0: column, 1: message } = getCode(fd, line, column)); // Flush unfinished multi byte characters. decoder.end(); } else { @@ -347,7 +347,7 @@ function getErrMessage(message, fn) { code = StringPrototypeSlice(code, StringPrototypeIndexOf(code, '\n') + 1); } - [column, message] = parseCode(code, column); + ({ 0: column, 1: message } = parseCode(code, column)); } // Always normalize indentation, otherwise the message could look weird. if (StringPrototypeIncludes(message, '\n')) { diff --git a/lib/events.js b/lib/events.js index 4a6e2c3a3ac5ff..76d76288064761 100644 --- a/lib/events.js +++ b/lib/events.js @@ -330,7 +330,7 @@ function enhanceStackTrace(err, own) { const errStack = err.stack.split('\n').slice(1); const ownStack = own.stack.split('\n').slice(1); - const [ len, off ] = identicalSequenceRange(ownStack, errStack); + const { 0: len, 1: off } = identicalSequenceRange(ownStack, errStack); if (len > 0) { ownStack.splice(off + 1, len - 2, ' [... lines matching original stack trace ...]'); diff --git a/lib/fs.js b/lib/fs.js index 935d6a1aed96b3..6c402d1e6b7335 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -2066,7 +2066,8 @@ function copyFileSync(src, dest, mode) { function lazyLoadStreams() { if (!ReadStream) { ({ ReadStream, WriteStream } = require('internal/fs/streams')); - [ FileReadStream, FileWriteStream ] = [ ReadStream, WriteStream ]; + FileReadStream = ReadStream; + FileWriteStream = WriteStream; } } diff --git a/lib/internal/bootstrap/loaders.js b/lib/internal/bootstrap/loaders.js index 960ff07221349d..10a4e0b1b87e09 100644 --- a/lib/internal/bootstrap/loaders.js +++ b/lib/internal/bootstrap/loaders.js @@ -199,7 +199,7 @@ class NativeModule { // To be called during pre-execution when --expose-internals is on. // Enables the user-land module loader to access internal modules. static exposeInternals() { - for (const [id, mod] of NativeModule.map) { + for (const { 0: id, 1: mod } of NativeModule.map) { // Do not expose this to user land even with --expose-internals. if (id !== loaderId) { mod.canBeRequiredByUsers = true; diff --git a/lib/internal/cluster/round_robin_handle.js b/lib/internal/cluster/round_robin_handle.js index 5dc53ef78b1a6e..778976210165a2 100644 --- a/lib/internal/cluster/round_robin_handle.js +++ b/lib/internal/cluster/round_robin_handle.js @@ -93,10 +93,11 @@ RoundRobinHandle.prototype.remove = function(worker) { RoundRobinHandle.prototype.distribute = function(err, handle) { ArrayPrototypePush(this.handles, handle); - const [ workerEntry ] = this.free; + // eslint-disable-next-line node-core/no-array-destructuring + const [ workerEntry ] = this.free; // this.free is a SafeMap if (ArrayIsArray(workerEntry)) { - const [ workerId, worker ] = workerEntry; + const { 0: workerId, 1: worker } = workerEntry; this.free.delete(workerId); this.handoff(worker); } diff --git a/lib/internal/console/constructor.js b/lib/internal/console/constructor.js index dc2817ad2a54ec..f0cb84e5363b50 100644 --- a/lib/internal/console/constructor.js +++ b/lib/internal/console/constructor.js @@ -519,7 +519,7 @@ const consoleMethods = { length++; } } else { - for (const [k, v] of tabularData) { + for (const { 0: k, 1: v } of tabularData) { ArrayPrototypePush(keys, _inspect(k)); ArrayPrototypePush(values, _inspect(v)); length++; diff --git a/lib/internal/crypto/keys.js b/lib/internal/crypto/keys.js index 3c976ca349e4fa..89a78f9888f18f 100644 --- a/lib/internal/crypto/keys.js +++ b/lib/internal/crypto/keys.js @@ -48,12 +48,12 @@ for (const m of [[kKeyEncodingPKCS1, 'pkcs1'], [kKeyEncodingPKCS8, 'pkcs8'], // which requires the KeyObject base class to be implemented in C++. // The creation requires a callback to make sure that the NativeKeyObject // base class cannot exist without the other KeyObject implementations. -const [ - KeyObject, - SecretKeyObject, - PublicKeyObject, - PrivateKeyObject -] = createNativeKeyObjectClass((NativeKeyObject) => { +const { + 0: KeyObject, + 1: SecretKeyObject, + 2: PublicKeyObject, + 3: PrivateKeyObject, +} = createNativeKeyObjectClass((NativeKeyObject) => { // Publicly visible KeyObject class. class KeyObject extends NativeKeyObject { constructor(type, handle) { diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 9e9ea87a50e9e2..94c08a101d3d19 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -421,7 +421,7 @@ function uvErrmapGet(name) { * @returns {Error} */ function uvException(ctx) { - const [ code, uvmsg ] = uvErrmapGet(ctx.errno) || uvUnmappedError; + const { 0: code, 1: uvmsg } = uvErrmapGet(ctx.errno) || uvUnmappedError; let message = `${code}: ${ctx.message || uvmsg}, ${ctx.syscall}`; let path; @@ -476,7 +476,7 @@ function uvException(ctx) { * @returns {Error} */ function uvExceptionWithHostPort(err, syscall, address, port) { - const [ code, uvmsg ] = uvErrmapGet(err) || uvUnmappedError; + const { 0: code, 1: uvmsg } = uvErrmapGet(err) || uvUnmappedError; const message = `${syscall} ${code}: ${uvmsg}`; let details = ''; @@ -1235,7 +1235,8 @@ E('ERR_MANIFEST_ASSERT_INTEGRITY', }" does not match the expected integrity.`; if (realIntegrities.size) { const sri = ArrayPrototypeJoin( - ArrayFrom(realIntegrities.entries(), ([alg, dgs]) => `${alg}-${dgs}`), + ArrayFrom(realIntegrities.entries(), + ({ 0: alg, 1: dgs }) => `${alg}-${dgs}`), ' ' ); msg += ` Integrities found are: ${sri}`; diff --git a/lib/internal/main/print_help.js b/lib/internal/main/print_help.js index ad269806e61c3b..b1cbba660763a9 100644 --- a/lib/internal/main/print_help.js +++ b/lib/internal/main/print_help.js @@ -110,9 +110,9 @@ function format( let text = ''; let maxFirstColumnUsed = 0; - for (const [ - name, { helpText, type, value } - ] of ArrayPrototypeSort([...options.entries()])) { + for (const { + 0: name, 1: { helpText, type, value } + } of ArrayPrototypeSort([...options.entries()])) { if (!helpText) continue; let displayName = name; @@ -120,7 +120,7 @@ function format( if (argDescription) displayName += `=${argDescription}`; - for (const [ from, to ] of aliases) { + for (const { 0: from, 1: to } of aliases) { // For cases like e.g. `-e, --eval`. if (to[0] === name && to.length === 1) { displayName = `${from}, ${displayName}`; diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 26c13a24a6c65f..33ae5eb6ed9686 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -172,7 +172,7 @@ function Module(id = '', parent) { } const builtinModules = []; -for (const [id, mod] of NativeModule.map) { +for (const { 0: id, 1: mod } of NativeModule.map) { if (mod.canBeRequiredByUsers) { ArrayPrototypePush(builtinModules, id); } diff --git a/lib/internal/policy/manifest.js b/lib/internal/policy/manifest.js index 6f4f094c980524..c3ec82f596a509 100644 --- a/lib/internal/policy/manifest.js +++ b/lib/internal/policy/manifest.js @@ -350,7 +350,8 @@ class Manifest { }; for (let i = 0; i < jsonResourcesEntries.length; i++) { - const [originalHREF, resourceDescriptor] = jsonResourcesEntries[i]; + const { 0: originalHREF, 1: resourceDescriptor } = + jsonResourcesEntries[i]; const cascade = resourceDescriptor.cascade; const dependencyMap = resourceDescriptor.dependencies; const resourceHREF = resolve(originalHREF); @@ -380,7 +381,7 @@ class Manifest { const scopeIntegrities = this.#scopeIntegrities; for (let i = 0; i < jsonScopesEntries.length; i++) { - const [originalHREF, scopeDescriptor] = jsonScopesEntries[i]; + const { 0: originalHREF, 1: scopeDescriptor } = jsonScopesEntries[i]; const integrity = scopeDescriptor.integrity; const cascade = scopeDescriptor.cascade; const dependencyMap = scopeDescriptor.dependencies; diff --git a/lib/internal/util/comparisons.js b/lib/internal/util/comparisons.js index 51b70af9d83965..5f0fa88247565b 100644 --- a/lib/internal/util/comparisons.js +++ b/lib/internal/util/comparisons.js @@ -518,7 +518,7 @@ function mapHasEqualEntry(set, map, key1, item1, strict, memo) { function mapEquiv(a, b, strict, memo) { let set = null; - for (const [key, item1] of a) { + for (const { 0: key, 1: item1 } of a) { if (typeof key === 'object' && key !== null) { if (set === null) { set = new Set(); @@ -545,7 +545,7 @@ function mapEquiv(a, b, strict, memo) { } if (set !== null) { - for (const [key, item] of b) { + for (const { 0: key, 1: item } of b) { if (typeof key === 'object' && key !== null) { if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false; diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 4fa88577e7c739..eae2e7bb7836b4 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -1536,7 +1536,7 @@ function formatSet(value, ctx, ignored, recurseTimes) { function formatMap(value, ctx, ignored, recurseTimes) { const output = []; ctx.indentationLvl += 2; - for (const [k, v] of value) { + for (const { 0: k, 1: v } of value) { output.push(`${formatValue(ctx, k, recurseTimes)} => ` + formatValue(ctx, v, recurseTimes)); } @@ -1619,7 +1619,7 @@ function formatWeakMap(ctx, value, recurseTimes) { } function formatIterator(braces, ctx, value, recurseTimes) { - const [entries, isKeyValue] = previewEntries(value, true); + const { 0: entries, 1: isKeyValue } = previewEntries(value, true); if (isKeyValue) { // Mark entry iterators as such. braces[0] = braces[0].replace(/ Iterator] {$/, ' Entries] {'); @@ -1631,7 +1631,7 @@ function formatIterator(braces, ctx, value, recurseTimes) { function formatPromise(ctx, value, recurseTimes) { let output; - const [state, result] = getPromiseDetails(value); + const { 0: state, 1: result } = getPromiseDetails(value); if (state === kPending) { output = [ctx.stylize('', 'special')]; } else { diff --git a/lib/internal/worker/js_transferable.js b/lib/internal/worker/js_transferable.js index 5b822ef8a0bcb1..ce95cf64e21987 100644 --- a/lib/internal/worker/js_transferable.js +++ b/lib/internal/worker/js_transferable.js @@ -19,7 +19,7 @@ function setup() { // from .postMessage() calls. The format of `deserializeInfo` is generally // 'module:Constructor', e.g. 'internal/fs/promises:FileHandle'. setDeserializerCreateObjectFunction((deserializeInfo) => { - const [ module, ctor ] = StringPrototypeSplit(deserializeInfo, ':'); + const { 0: module, 1: ctor } = StringPrototypeSplit(deserializeInfo, ':'); const Ctor = require(module)[ctor]; if (typeof Ctor !== 'function' || !(Ctor.prototype instanceof JSTransferable)) { diff --git a/lib/os.js b/lib/os.js index fe25653a4618eb..f0f0fdb15f61c0 100644 --- a/lib/os.js +++ b/lib/os.js @@ -71,11 +71,11 @@ function getCheckedFunction(fn) { }); } -const [ - type, - version, - release -] = _getOSInformation(); +const { + 0: type, + 1: version, + 2: release, +} = _getOSInformation(); const getHomeDirectory = getCheckedFunction(_getHomeDirectory); const getHostname = getCheckedFunction(_getHostname); diff --git a/lib/repl.js b/lib/repl.js index fa800d50f88838..550ad153cf0897 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -381,10 +381,10 @@ function REPLServer(prompt, let entry; const tmpCompletionEnabled = self.isCompletionEnabled; while (entry = ArrayPrototypeShift(pausedBuffer)) { - const [type, payload, isCompletionEnabled] = entry; + const { 0: type, 1: payload, 2: isCompletionEnabled } = entry; switch (type) { case 'key': { - const [d, key] = payload; + const { 0: d, 1: key } = payload; self.isCompletionEnabled = isCompletionEnabled; self._ttyWrite(d, key); break; @@ -1453,7 +1453,7 @@ function complete(line, callback) { REPLServer.prototype.completeOnEditorMode = (callback) => (err, results) => { if (err) return callback(err); - const [completions, completeOn = ''] = results; + const { 0: completions, 1: completeOn = '' } = results; let result = ArrayPrototypeFilter(completions, Boolean); if (completeOn && result.length !== 0) {