diff options
author | Kenta Moriuchi <moriken@kimamass.com> | 2023-01-06 21:45:23 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-06 21:45:23 +0900 |
commit | ff89ff4abba39ce158056d390e761495f5a7bc86 (patch) | |
tree | 03a9c71b5bb3889842db06ed41c3999074c4107a /ext/webidl/00_webidl.js | |
parent | 39cbaa6d34c249afc4b197836da1fa6dd143cbf9 (diff) |
perf(ext,runtime): remove using `SafeArrayIterator` from `for-of` (#17255)
Diffstat (limited to 'ext/webidl/00_webidl.js')
-rw-r--r-- | ext/webidl/00_webidl.js | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js index f38618f13..4f51edfed 100644 --- a/ext/webidl/00_webidl.js +++ b/ext/webidl/00_webidl.js @@ -60,7 +60,6 @@ ReflectHas, ReflectOwnKeys, RegExpPrototypeTest, - SafeArrayIterator, Set, // TODO(lucacasonato): add SharedArrayBuffer to primordials // SharedArrayBuffer, @@ -633,8 +632,10 @@ function createDictionaryConverter(name, ...dictionaries) { let hasRequiredKey = false; const allMembers = []; - for (const members of new SafeArrayIterator(dictionaries)) { - for (const member of new SafeArrayIterator(members)) { + for (let i = 0; i < dictionaries.length; ++i) { + const members = dictionaries[i]; + for (let j = 0; j < members.length; ++j) { + const member = members[j]; if (member.required) { hasRequiredKey = true; } @@ -649,7 +650,8 @@ }); const defaultValues = {}; - for (const member of new SafeArrayIterator(allMembers)) { + for (let i = 0; i < allMembers.length; ++i) { + const member = allMembers[i]; if (ReflectHas(member, "defaultValue")) { const idlMemberValue = member.defaultValue; const imvType = typeof idlMemberValue; @@ -695,7 +697,8 @@ return idlDict; } - for (const member of new SafeArrayIterator(allMembers)) { + for (let i = 0; i < allMembers.length; ++i) { + const member = allMembers[i]; const key = member.key; let esMemberValue; @@ -821,7 +824,8 @@ } // Slow path if Proxy (e.g: in WPT tests) const keys = ReflectOwnKeys(V); - for (const key of new SafeArrayIterator(keys)) { + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; const desc = ObjectGetOwnPropertyDescriptor(V, key); if (desc !== undefined && desc.enumerable === true) { const typedKey = keyConverter(key, opts); @@ -891,7 +895,9 @@ } function define(target, source) { - for (const key of new SafeArrayIterator(ReflectOwnKeys(source))) { + const keys = ReflectOwnKeys(source); + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; const descriptor = ReflectGetOwnPropertyDescriptor(source, key); if (descriptor && !ReflectDefineProperty(target, key, descriptor)) { throw new TypeError(`Cannot redefine property: ${String(key)}`); |