querystring: parse numbers correctly
Fixes a number parsing regression introduced in 85a92a3 Fixes: https://github.com/iojs/io.js/issues/1208 PR-URL: https://github.com/iojs/io.js/pull/1213 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Brian White <mscdex@mscdex.net>
This commit is contained in:
parent
8de78e470d
commit
a89f5c2156
@ -90,6 +90,9 @@ var hexTable = new Array(256);
|
|||||||
for (var i = 0; i < 256; ++i)
|
for (var i = 0; i < 256; ++i)
|
||||||
hexTable[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
|
hexTable[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
|
||||||
QueryString.escape = function(str) {
|
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 len = str.length;
|
||||||
var out = '';
|
var out = '';
|
||||||
var i, c;
|
var i, c;
|
||||||
|
@ -138,6 +138,14 @@ qsWeirdObjects.forEach(function(testCase) {
|
|||||||
assert.equal(testCase[1], qs.stringify(testCase[0]));
|
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
|
// nested
|
||||||
var f = qs.stringify({
|
var f = qs.stringify({
|
||||||
a: 'b',
|
a: 'b',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user