From 8ac1d54858233e5fd8a6543e63a39ebb9b3fd527 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Sat, 5 Mar 2016 16:56:59 -0800 Subject: [PATCH] Add fast path for numbers in `_.toNumber`. --- lodash.js | 3 +++ test/test.js | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lodash.js b/lodash.js index 6db75064d..8a8c133dd 100644 --- a/lodash.js +++ b/lodash.js @@ -11022,6 +11022,9 @@ * // => 3 */ function toNumber(value) { + if (typeof value == 'number') { + return value; + } if (isSymbol(value)) { return NAN; } diff --git a/test/test.js b/test/test.js index e1c920d0a..f1cff6122 100644 --- a/test/test.js +++ b/test/test.js @@ -21872,6 +21872,20 @@ return '+' + string; } + QUnit.test('`_.' + methodName + '` should pass thru primitive number values', function(assert) { + assert.expect(1); + + var values = [0, 1, NaN]; + + var expected = lodashStable.map(values, function(value) { + return (!isToNumber && value !== value) ? 0 : value; + }); + + var actual = lodashStable.map(values, func); + + assert.deepEqual(actual, expected); + }); + QUnit.test('`_.' + methodName + '` should convert number primitives and objects to numbers', function(assert) { assert.expect(1);