From 38706cc78c10549b1a8759d5a39a29ef8486c0cb Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 16 Dec 2021 14:39:40 -0800 Subject: [PATCH] util: refactor addNumericSeparator logic --- lib/internal/util/inspect.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 659fd7b671e742..df0f9b921efb9e 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -1458,15 +1458,11 @@ function handleMaxCallStackSize(ctx, err, constructorName, indentationLvl) { } function addNumericSeparator(integerString) { - let result = ''; - let i = integerString.length; - const start = integerString.startsWith('-') ? 1 : 0; - for (; i >= start + 4; i -= 3) { - result = `_${integerString.slice(i - 3, i)}${result}`; - } - return i === integerString.length ? - integerString : - `${integerString.slice(0, i)}${result}`; + return StringPrototypeReplace( + integerString, + /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g, + '$&_' + ); } function addNumericSeparatorEnd(integerString) { @@ -1502,7 +1498,9 @@ function formatNumber(fn, number, numericSeparator) { return fn(`${ addNumericSeparator(string) }.${ - addNumericSeparatorEnd(String(number).slice(string.length + 1)) + StringPrototypeSlice( + addNumericSeparatorEnd(String(number), string.length + 1) + ) }`, 'number'); }