diff options
author | Majid Arif Siddiqui <me@majidarif.com> | 2014-08-14 11:15:24 +0800 |
---|---|---|
committer | Trevor Norris <trev.norris@gmail.com> | 2014-09-05 09:19:32 -0700 |
commit | 176f0bd3dfd58faf1675851cd2029e05d302f1fb (patch) | |
tree | 0beec659659a181c406b6d70dc71a0cf590bccd4 /lib/url.js | |
parent | 86bb7fa5cdc2f0492ecc2972c00b6805b6be8e9c (diff) | |
download | android-node-v8-176f0bd3dfd58faf1675851cd2029e05d302f1fb.tar.gz android-node-v8-176f0bd3dfd58faf1675851cd2029e05d302f1fb.tar.bz2 android-node-v8-176f0bd3dfd58faf1675851cd2029e05d302f1fb.zip |
lib: improved forEach object performance
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
Diffstat (limited to 'lib/url.js')
-rw-r--r-- | lib/url.js | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/url.js b/lib/url.js index ec417a8aa4..7d2ac4e2d0 100644 --- a/lib/url.js +++ b/lib/url.js @@ -451,9 +451,11 @@ Url.prototype.resolveObject = function(relative) { } var result = new Url(); - Object.keys(this).forEach(function(k) { - result[k] = this[k]; - }, this); + var tkeys = Object.keys(this); + for (var tk = 0; tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; + } // hash is always overridden, no matter what. // even href="" will remove it. @@ -468,10 +470,12 @@ Url.prototype.resolveObject = function(relative) { // hrefs like //foo/bar always cut to the protocol. if (relative.slashes && !relative.protocol) { // take everything except the protocol from relative - Object.keys(relative).forEach(function(k) { - if (k !== 'protocol') - result[k] = relative[k]; - }); + var rkeys = Object.keys(relative); + for (var rk = 0; rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== 'protocol') + result[rkey] = relative[rkey]; + } //urlParse appends trailing / to urls like http://www.example.com if (slashedProtocol[result.protocol] && @@ -493,9 +497,11 @@ Url.prototype.resolveObject = function(relative) { // because that's known to be hostless. // anything else is assumed to be absolute. if (!slashedProtocol[relative.protocol]) { - Object.keys(relative).forEach(function(k) { + var keys = Object.keys(relative); + for (var v = 0; v < keys.length; v++) { + var k = keys[v]; result[k] = relative[k]; - }); + } result.href = result.format(); return result; } |