Skip to content

Commit

Permalink
convert first parse(Int|Float) argument to string before calling `$…
Browse files Browse the repository at this point in the history
…trim`
  • Loading branch information
zloirock committed Jan 23, 2016
1 parent 38f373d commit 3d625c8
Show file tree
Hide file tree
Showing 15 changed files with 52 additions and 12 deletions.
2 changes: 1 addition & 1 deletion library/modules/_parse-float.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ var $parseFloat = require('./_global').parseFloat
, $trim = require('./_string-trim').trim;

module.exports = 1 / $parseFloat('-0') !== -Infinity ? function parseFloat(str){
var string = $trim(str, 3)
var string = $trim(String(str), 3)
, result = $parseFloat(string);
return result === 0 && string.charAt(0) == '-' ? -0 : result;
} : $parseFloat;
2 changes: 1 addition & 1 deletion library/modules/_parse-int.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ var $parseInt = require('./_global').parseInt
, hex = /^[\-+]?0[xX]/;

module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
var string = $trim(str, 3);
var string = $trim(String(str), 3);
return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
} : $parseInt;
2 changes: 1 addition & 1 deletion modules/_parse-float.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ var $parseFloat = require('./_global').parseFloat
, $trim = require('./_string-trim').trim;

module.exports = 1 / $parseFloat('-0') !== -Infinity ? function parseFloat(str){
var string = $trim(str, 3)
var string = $trim(String(str), 3)
, result = $parseFloat(string);
return result === 0 && string.charAt(0) == '-' ? -0 : result;
} : $parseFloat;
2 changes: 1 addition & 1 deletion modules/_parse-int.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ var $parseInt = require('./_global').parseInt
, hex = /^[\-+]?0[xX]/;

module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix){
var string = $trim(str, 3);
var string = $trim(String(str), 3);
return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
} : $parseInt;
8 changes: 8 additions & 0 deletions tests/es.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions tests/library.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion tests/library/es6.number.parse-float.ls
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ test 'Number.parseFloat' (assert)!->
assert.same parseFloat('+0'), 0
assert.same parseFloat(' +0'), 0
assert.same parseFloat('-0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(null), NaN
assert.same parseFloat(void), NaN
4 changes: 3 additions & 1 deletion tests/library/es6.number.parse-int.ls
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@ test 'Number.parseInt' (assert)!->
assert.same parseInt('-0xF', 16), -15, 'signed hex #2'
assert.same parseInt('+0xF'), 15, 'signed hex #3'
assert.same parseInt('+0xF' 16), 15, 'signed hex #4'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt(null), NaN
assert.same parseInt(void), NaN
4 changes: 3 additions & 1 deletion tests/library/es6.parse-float.ls
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ test 'parseFloat' (assert)!->
assert.same parseFloat('+0'), 0
assert.same parseFloat(' +0'), 0
assert.same parseFloat('-0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(null), NaN
assert.same parseFloat(void), NaN
4 changes: 3 additions & 1 deletion tests/library/es6.parse-int.ls
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@ test 'parseInt' (assert)!->
assert.same parseInt('-0xF', 16), -15, 'signed hex #2'
assert.same parseInt('+0xF'), 15, 'signed hex #3'
assert.same parseInt('+0xF' 16), 15, 'signed hex #4'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt(null), NaN
assert.same parseInt(void), NaN
8 changes: 8 additions & 0 deletions tests/tests.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion tests/tests/es6.number.parse-float.ls
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ test 'Number.parseFloat' (assert)!->
assert.same parseFloat('+0'), 0
assert.same parseFloat(' +0'), 0
assert.same parseFloat('-0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(null), NaN
assert.same parseFloat(void), NaN
4 changes: 3 additions & 1 deletion tests/tests/es6.number.parse-int.ls
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ test 'Number.parseInt' (assert)!->
assert.same parseInt('-0xF', 16), -15, 'signed hex #2'
assert.same parseInt('+0xF'), 15, 'signed hex #3'
assert.same parseInt('+0xF' 16), 15, 'signed hex #4'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt(null), NaN
assert.same parseInt(void), NaN
4 changes: 3 additions & 1 deletion tests/tests/es6.parse-float.ls
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ test 'parseFloat' (assert)!->
assert.same parseFloat('+0'), 0
assert.same parseFloat(' +0'), 0
assert.same parseFloat('-0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(' -0'), -0
assert.same parseFloat(null), NaN
assert.same parseFloat(void), NaN
4 changes: 3 additions & 1 deletion tests/tests/es6.parse-int.ls
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,6 @@ test 'parseInt' (assert)!->
assert.same parseInt('-0xF', 16), -15, 'signed hex #2'
assert.same parseInt('+0xF'), 15, 'signed hex #3'
assert.same parseInt('+0xF' 16), 15, 'signed hex #4'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt('10', -4294967294), 2, 'radix uses ToUint32'
assert.same parseInt(null), NaN
assert.same parseInt(void), NaN

0 comments on commit 3d625c8

Please sign in to comment.