Add iterator closing for ecma_op_container_create (#3457)

JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi aszilagy@inf.u-szeged.hu
This commit is contained in:
Szilagyi Adam
2019-12-19 11:40:29 +01:00
committed by Robert Fancsik
parent d0b4e7dd04
commit e2893f26a1
5 changed files with 105 additions and 5 deletions
+24
View File
@@ -135,6 +135,30 @@ try {
assert (e instanceof TypeError);
}
function createIterable(arr, methods = {}) {
let iterable = function *() {
let idx = 0;
while (idx < arr.length) {
yield arr[idx];
idx++;
}
}();
iterable['return'] = methods['return'];
iterable['throw'] = methods['throw'];
return iterable;
};
var closed = false;
var iter = createIterable([1, 2, 3], {
'return': function(){ closed = true; return {}; }
});
try {
new WeakMap(iter);
} catch(e){}
assert(closed === true);
m1.set([], []);
assert (WeakMap.prototype.toString() === "[object WeakMap]");