From f68825eda03d43e2e75a8db7068ca19a88dfb6a7 Mon Sep 17 00:00:00 2001 From: Aaron O'Mullan Date: Fri, 1 Oct 2021 12:17:16 +0200 Subject: perf(fetch): optimize fillHeaders() key iteration (#12287) Reduces self-time by ~70x (~70ms => ~1ms on 1M iters) for...in filtered by hasOwnProperty yields the same set of keys as Object.keys() --- ext/fetch/20_headers.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'ext/fetch/20_headers.js') diff --git a/ext/fetch/20_headers.js b/ext/fetch/20_headers.js index c35c745b5..04ff104a2 100644 --- a/ext/fetch/20_headers.js +++ b/ext/fetch/20_headers.js @@ -29,7 +29,7 @@ ArrayPrototypeJoin, ArrayPrototypeSplice, ArrayPrototypeFilter, - ObjectKeys, + ObjectPrototypeHasOwnProperty, ObjectEntries, RegExpPrototypeTest, Symbol, @@ -76,7 +76,10 @@ appendHeader(headers, header[0], header[1]); } } else { - for (const key of ObjectKeys(object)) { + for (const key in object) { + if (!ObjectPrototypeHasOwnProperty(object, key)) { + continue; + } appendHeader(headers, key, object[key]); } } -- cgit v1.2.3