aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchmark/util/inspect.js6
-rw-r--r--lib/util.js6
2 files changed, 9 insertions, 3 deletions
diff --git a/benchmark/util/inspect.js b/benchmark/util/inspect.js
index 913850690c..35253ac966 100644
--- a/benchmark/util/inspect.js
+++ b/benchmark/util/inspect.js
@@ -22,7 +22,8 @@ const bench = common.createBenchmark(main, {
'Error',
'Array',
'TypedArray',
- 'TypedArray_extra'
+ 'TypedArray_extra',
+ 'Number'
],
option: Object.keys(opts)
});
@@ -92,6 +93,9 @@ function main({ method, n, option }) {
obj[Symbol('baz')] = 5;
benchmark(n, obj, options);
break;
+ case 'Number':
+ benchmark(n, 0, options);
+ break;
default:
throw new Error(`Unsupported method "${method}"`);
}
diff --git a/lib/util.js b/lib/util.js
index 365a15fc9c..2574c2dd66 100644
--- a/lib/util.js
+++ b/lib/util.js
@@ -615,8 +615,10 @@ function formatValue(ctx, value, recurseTimes, ln) {
}
function formatNumber(fn, value) {
- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0.
- if (Object.is(value, -0))
+ // Format -0 as '-0'. A `value === -0` check won't distinguish 0 from -0.
+ // Using a division check is currently faster than `Object.is(value, -0)`
+ // as of V8 6.1.
+ if (1 / value === -Infinity)
return fn('-0', 'number');
return fn(`${value}`, 'number');
}