mirror of
https://github.com/nodejs/node.git
synced 2024-11-30 15:30:56 +01:00
querystring: use String.prototype.split's limit
There's no need to add extra logic for it, `String.prototype.split` already has a `limit` argument. By using this argument we avoid keeping the whole array in memory, and V8 doesn't have to process the entire string. PR-URL: https://github.com/nodejs/node/pull/2288 Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
This commit is contained in:
parent
d2dc234def
commit
27def4faf2
@ -209,19 +209,20 @@ QueryString.parse = QueryString.decode = function(qs, sep, eq, options) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
qs = qs.split(sep);
|
||||
|
||||
var maxKeys = 1000;
|
||||
if (options && typeof options.maxKeys === 'number') {
|
||||
maxKeys = options.maxKeys;
|
||||
}
|
||||
|
||||
var len = qs.length;
|
||||
// maxKeys <= 0 means that we should not limit keys count
|
||||
if (maxKeys > 0 && len > maxKeys) {
|
||||
len = maxKeys;
|
||||
if (maxKeys > 0) {
|
||||
qs = qs.split(sep, maxKeys);
|
||||
} else {
|
||||
qs = qs.split(sep);
|
||||
}
|
||||
|
||||
var len = qs.length;
|
||||
|
||||
var decode = QueryString.unescape;
|
||||
if (options && typeof options.decodeURIComponent === 'function') {
|
||||
decode = options.decodeURIComponent;
|
||||
|
Loading…
Reference in New Issue
Block a user