Comparing version 0.6.5 to 0.6.6
51
index.js
@@ -40,3 +40,7 @@ /** | ||
var ret = []; | ||
for (var key in obj) ret.push(key); | ||
for (var key in obj) { | ||
if (obj.hasOwnProperty(key)) { | ||
ret.push(key); | ||
} | ||
} | ||
return ret; | ||
@@ -67,12 +71,2 @@ }; | ||
/** | ||
* Create a nullary object if possible | ||
*/ | ||
function createObject() { | ||
return Object.create | ||
? Object.create(null) | ||
: {}; | ||
} | ||
/** | ||
* Cache non-integer test regexp. | ||
@@ -84,4 +78,4 @@ */ | ||
function promote(parent, key) { | ||
if (parent[key].length == 0) return parent[key] = createObject(); | ||
var t = createObject(); | ||
if (parent[key].length == 0) return parent[key] = {} | ||
var t = {}; | ||
for (var i in parent[key]) { | ||
@@ -98,2 +92,6 @@ if (hasOwnProperty.call(parent[key], i)) { | ||
var part = parts.shift(); | ||
// illegal | ||
if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; | ||
// end | ||
@@ -147,3 +145,3 @@ if (!part) { | ||
if (!isint.test(key) && isArray(parent.base)) { | ||
var t = createObject(); | ||
var t = {}; | ||
for (var k in parent.base) t[k] = parent.base[k]; | ||
@@ -185,22 +183,2 @@ parent.base = t; | ||
/** | ||
* Restore Object.prototype. | ||
* see pull-request #58 | ||
*/ | ||
function restoreProto(obj) { | ||
if (!Object.create) return obj; | ||
if (isArray(obj)) return obj; | ||
if (obj && 'object' != typeof obj) return obj; | ||
for (var key in obj) { | ||
if (hasOwnProperty.call(obj, key)) { | ||
obj[key] = restoreProto(obj[key]); | ||
} | ||
} | ||
obj.__proto__ = Object.prototype; | ||
return obj; | ||
} | ||
/** | ||
* Parse the given obj. | ||
@@ -236,5 +214,5 @@ */ | ||
return merge(ret, decode(key), decode(val)); | ||
}, { base: createObject() }).base; | ||
}, { base: {} }).base; | ||
return restoreProto(compact(ret)); | ||
return compact(ret); | ||
} | ||
@@ -351,2 +329,3 @@ | ||
var v = obj[key]; | ||
if (Object.getOwnPropertyDescriptor(Object.prototype, key)) return; | ||
if (undefined === v) { | ||
@@ -353,0 +332,0 @@ obj[key] = val; |
{ | ||
"name": "qs", | ||
"description": "querystring parser", | ||
"version": "0.6.5", | ||
"version": "0.6.6", | ||
"keywords": ["query string", "parser", "component"], | ||
@@ -6,0 +6,0 @@ "repository": { |
10050
310