diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-03-16 08:36:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-16 08:36:30 +0100 |
commit | 11bdaa144d8a38ecd897dde278cb1db9b8313961 (patch) | |
tree | 1ca375db23843dcd4c593bcb28d7173856bddc10 /js/src/builtin/WeakMap.js | |
parent | 0d3ee51ad2d61bffba14232b2df913d3a773d771 (diff) | |
parent | 114794557687aebca601c38ba0f0a52a43b44d4a (diff) | |
download | UXP-11bdaa144d8a38ecd897dde278cb1db9b8313961.tar UXP-11bdaa144d8a38ecd897dde278cb1db9b8313961.tar.gz UXP-11bdaa144d8a38ecd897dde278cb1db9b8313961.tar.lz UXP-11bdaa144d8a38ecd897dde278cb1db9b8313961.tar.xz UXP-11bdaa144d8a38ecd897dde278cb1db9b8313961.zip |
Merge pull request #66 from janekptacijarabaci/js_iterable_closures_1
Close iterator after error in: Map, Set, WeakMap, WeakSet, Array.from, Promise.{all,race}
Diffstat (limited to 'js/src/builtin/WeakMap.js')
-rw-r--r-- | js/src/builtin/WeakMap.js | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/js/src/builtin/WeakMap.js b/js/src/builtin/WeakMap.js index 066a72bfe..708be8424 100644 --- a/js/src/builtin/WeakMap.js +++ b/js/src/builtin/WeakMap.js @@ -40,10 +40,17 @@ function WeakMapConstructorInit(iterable) { var nextItem = next.value; // Step 8.d. - if (!IsObject(nextItem)) + if (!IsObject(nextItem)) { + IteratorCloseThrow(iter); ThrowTypeError(JSMSG_INVALID_MAP_ITERABLE, "WeakMap"); + } // Steps 8.e-j. - callContentFunction(adder, map, nextItem[0], nextItem[1]); + try { + callContentFunction(adder, map, nextItem[0], nextItem[1]); + } catch (e) { + IteratorCloseThrow(iter); + throw e; + } } } |