querystring: fix broken stringifyPrimitive
authorJeremiah Senkpiel <fishrock123@rocketmail.com>
Fri, 20 Mar 2015 01:33:04 +0000 (21:33 -0400)
committerJeremiah Senkpiel <fishrock123@rocketmail.com>
Fri, 20 Mar 2015 01:47:41 +0000 (21:47 -0400)
stringifyPrimitive has always failed to stringify numbers since its
introduction in 422d3c9. This went uncaught due to encodeURIComponent's
string coercion.

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>
lib/querystring.js

index f0d473a..09220a9 100644 (file)
@@ -147,8 +147,10 @@ QueryString.escape = function(str) {
 };
 
 var stringifyPrimitive = function(v) {
-  if (typeof v === 'string' || (typeof v === 'number' && isFinite(v)))
+  if (typeof v === 'string')
     return v;
+  if (typeof v === 'number' && isFinite(v))
+    return '' + v;
   if (typeof v === 'boolean')
     return v ? 'true' : 'false';
   return '';