From 57ae88bf64b8eda1413d7344211dccb6fd28226c Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Fri, 28 Dec 2018 02:29:18 +0100 Subject: [PATCH] util: simpler module namespace code This removes a special casing for this data type in the main function. PR-URL: https://github.com/nodejs/node/pull/25255 Reviewed-By: James M Snell --- lib/internal/util/inspect.js | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index b7ae4d8da0e9bc..0491ee9abb46fc 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -556,7 +556,6 @@ function formatRaw(ctx, value, recurseTimes) { let braces; let noIterator = true; let i = 0; - let skip = false; const filter = ctx.showHidden ? ALL_PROPERTIES : ONLY_ENUMERABLE; let extrasType = kObjectType; @@ -697,7 +696,6 @@ function formatRaw(ctx, value, recurseTimes) { } else if (isModuleNamespaceObject(value)) { braces[0] = `[${tag}] {`; formatter = formatNamespaceObject; - skip = true; } else if (isBoxedPrimitive(value)) { let type; if (isNumberObject(value)) { @@ -757,11 +755,9 @@ function formatRaw(ctx, value, recurseTimes) { const indentationLvl = ctx.indentationLvl; try { output = formatter(ctx, value, recurseTimes, keys); - if (skip === false) { - for (i = 0; i < keys.length; i++) { - output.push( - formatProperty(ctx, value, recurseTimes, keys[i], extrasType)); - } + for (i = 0; i < keys.length; i++) { + output.push( + formatProperty(ctx, value, recurseTimes, keys[i], extrasType)); } } catch (err) { return handleMaxCallStackSize(ctx, err, constructor, tag, indentationLvl); @@ -871,9 +867,8 @@ function formatError(value) { } function formatNamespaceObject(ctx, value, recurseTimes, keys) { - const len = keys.length; - const output = new Array(len); - for (var i = 0; i < len; i++) { + const output = new Array(keys.length); + for (var i = 0; i < keys.length; i++) { try { output[i] = formatProperty(ctx, value, recurseTimes, keys[i], kObjectType); @@ -893,6 +888,8 @@ function formatNamespaceObject(ctx, value, recurseTimes, keys) { ctx.stylize('', 'special'); } } + // Reset the keys to an empty array. This prevents duplicated inspection. + keys.length = 0; return output; }