From 86517c9f8f2aacf624025839ab8f03167c8d70dd Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 25 Mar 2019 10:37:57 -0700 Subject: [PATCH] console: remove unreachable code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the current code, line 497 checks if `item` is `null` or `undefined`. However, `item` is guaranteed to be a non-null object or function at that point. * Lines 484/485 set `primitive` to `true` if `item` is null or undefined. * Line 486 skips line 497 if `primitive` is true (which it will always be if `item` is null or undefined) and `properties` is undefined. So the only way to get to line 497 when `item` is null or undefined is if `properties` is specified. * Line 494 skips line 497 if `primitive` is true (which it will always be if `item` is null or undefined) and `properties` are specified (which will always be the case or else this `else` block is skipped.) Here are the current lines 484 through 497: const primitive = item === null || (typeof item !== 'function' && typeof item !== 'object'); if (properties === undefined && primitive) { hasPrimitives = true; valuesKeyArray[i] = _inspect(item); } else { const keys = properties || ObjectKeys(item); for (const key of keys) { if (map[key] === undefined) map[key] = []; if ((primitive && properties) || !hasOwnProperty(item, key)) map[key][i] = ''; else map[key][i] = item == null ? item : _inspect(item[key]); This change removes the unnecessary ternary in that final line, simplifying it to: map[key][i] = _inspect(item[key]); PR-URL: https://github.com/nodejs/node/pull/26906 Reviewed-By: Ruben Bridgewater Reviewed-By: Michaël Zasso Reviewed-By: Tobias Nießen Reviewed-By: Yuta Hiroto Reviewed-By: Colin Ihrig Reviewed-By: Yongsheng Zhang --- lib/internal/console/constructor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/console/constructor.js b/lib/internal/console/constructor.js index b00707d1fda365..5041abfd4d9f4c 100644 --- a/lib/internal/console/constructor.js +++ b/lib/internal/console/constructor.js @@ -494,7 +494,7 @@ const consoleMethods = { if ((primitive && properties) || !hasOwnProperty(item, key)) map[key][i] = ''; else - map[key][i] = item == null ? item : _inspect(item[key]); + map[key][i] = _inspect(item[key]); } } }