mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-31 15:27:50 +00:00
Ensure _.toString produces the correct result for Object(-0).
This commit is contained in:
@@ -9760,15 +9760,12 @@
|
||||
* @returns {string} Returns the string.
|
||||
*/
|
||||
function toString(value) {
|
||||
// Preserve sign of `0`.
|
||||
if (value === 0) {
|
||||
return (1 / value) == INFINITY ? '0' : '-0';
|
||||
}
|
||||
// Exit early for strings to avoid a performance hit in some environments.
|
||||
if (typeof value == 'string') {
|
||||
return value;
|
||||
}
|
||||
return value == null ? '' : (value + '');
|
||||
var result = value == null ? '' : (value + '');
|
||||
return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
12
test/test.js
12
test/test.js
@@ -19440,10 +19440,16 @@
|
||||
});
|
||||
|
||||
QUnit.test('should preserve sign of `0`', function(assert) {
|
||||
assert.expect(2);
|
||||
assert.expect(1);
|
||||
|
||||
assert.strictEqual(_.toString(0), '0');
|
||||
assert.strictEqual(_.toString(-0), '-0');
|
||||
var values = [0, Object(0), -0, Object(-0)],
|
||||
expected = ['0', '0', '-0', '-0'];
|
||||
|
||||
var actual = lodashStable.map(values, function(value) {
|
||||
return _.toString(value);
|
||||
});
|
||||
|
||||
assert.deepEqual(actual, expected);
|
||||
});
|
||||
|
||||
QUnit.test('should return the `toString` result of the wrapped value', function(assert) {
|
||||
|
||||
Reference in New Issue
Block a user