querystring: using toString for objects on querystring.escape

This commit fixes an inconsistency in querystring.escape objects handling
compared to native encodeURIComponent function.

Fixes: https://github.com/nodejs/node/issues/5309
PR-URL: https://github.com/nodejs/node/pull/5341
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
This commit is contained in:
Igor Kalashnikov 2016-02-20 22:23:51 +03:00 committed by James M Snell
parent 59d23ad63d
commit 5dafb435d8
2 changed files with 30 additions and 2 deletions

View file

@ -90,8 +90,12 @@ for (var i = 0; i < 256; ++i)
QueryString.escape = function(str) {
// replaces encodeURIComponent
// http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3.4
if (typeof str !== 'string')
str += '';
if (typeof str !== 'string') {
if (typeof str === 'object')
str = String(str);
else
str += '';
}
var out = '';
var lastPos = 0;