Skip to content

Commit

Permalink
querystring: parse numbers correctly
Browse files Browse the repository at this point in the history
Fixes a number parsing regression introduced in 85a92a3

Fixes: #1208
PR-URL: #1213
Reviewed-By: Rod Vagg <[email protected]>
Reviewed-By: Brian White <[email protected]>
  • Loading branch information
Fishrock123 committed Mar 20, 2015
1 parent 8de78e4 commit a89f5c2
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
3 changes: 3 additions & 0 deletions lib/querystring.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ var hexTable = new Array(256);
for (var i = 0; i < 256; ++i)
hexTable[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
QueryString.escape = function(str) {
// replaces encodeURIComponent
// http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3.4
str = '' + str;
var len = str.length;
var out = '';
var i, c;
Expand Down
8 changes: 8 additions & 0 deletions test/parallel/test-querystring.js
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,14 @@ qsWeirdObjects.forEach(function(testCase) {
assert.equal(testCase[1], qs.stringify(testCase[0]));
});

// coerce numbers to string
assert.strictEqual('foo=0', qs.stringify({ foo: 0 }));
assert.strictEqual('foo=0', qs.stringify({ foo: -0 }));
assert.strictEqual('foo=3', qs.stringify({ foo: 3 }));
assert.strictEqual('foo=-72.42', qs.stringify({ foo: -72.42 }));
assert.strictEqual('foo=', qs.stringify({ foo: NaN }));
assert.strictEqual('foo=', qs.stringify({ foo: Infinity }));

// nested
var f = qs.stringify({
a: 'b',
Expand Down

0 comments on commit a89f5c2

Please sign in to comment.