diff options
Diffstat (limited to 'ext/webidl/00_webidl.js')
-rw-r--r-- | ext/webidl/00_webidl.js | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/webidl/00_webidl.js b/ext/webidl/00_webidl.js index d9c4f87cf..dafade99d 100644 --- a/ext/webidl/00_webidl.js +++ b/ext/webidl/00_webidl.js @@ -60,6 +60,7 @@ ReflectHas, ReflectOwnKeys, RegExpPrototypeTest, + SafeArrayIterator, Set, // TODO(lucacasonato): add SharedArrayBuffer to primordials // SharedArrayBuffer, @@ -632,8 +633,8 @@ function createDictionaryConverter(name, ...dictionaries) { let hasRequiredKey = false; const allMembers = []; - for (const members of dictionaries) { - for (const member of members) { + for (const members of new SafeArrayIterator(dictionaries)) { + for (const member of new SafeArrayIterator(members)) { if (member.required) { hasRequiredKey = true; } @@ -648,7 +649,7 @@ }); const defaultValues = {}; - for (const member of allMembers) { + for (const member of new SafeArrayIterator(allMembers)) { if (ReflectHas(member, "defaultValue")) { const idlMemberValue = member.defaultValue; const imvType = typeof idlMemberValue; @@ -694,7 +695,7 @@ return idlDict; } - for (const member of allMembers) { + for (const member of new SafeArrayIterator(allMembers)) { const key = member.key; let esMemberValue; @@ -820,7 +821,7 @@ } // Slow path if Proxy (e.g: in WPT tests) const keys = ReflectOwnKeys(V); - for (const key of keys) { + for (const key of new SafeArrayIterator(keys)) { const desc = ObjectGetOwnPropertyDescriptor(V, key); if (desc !== undefined && desc.enumerable === true) { const typedKey = keyConverter(key, opts); @@ -890,7 +891,7 @@ } function define(target, source) { - for (const key of ReflectOwnKeys(source)) { + for (const key of new SafeArrayIterator(ReflectOwnKeys(source))) { const descriptor = ReflectGetOwnPropertyDescriptor(source, key); if (descriptor && !ReflectDefineProperty(target, key, descriptor)) { throw new TypeError(`Cannot redefine property: ${String(key)}`); |