You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
645 B
22 lines
645 B
var ITERATOR = require('./_wks')('iterator'); |
|
var SAFE_CLOSING = false; |
|
|
|
try { |
|
var riter = [7][ITERATOR](); |
|
riter['return'] = function () { SAFE_CLOSING = true; }; |
|
// eslint-disable-next-line no-throw-literal |
|
Array.from(riter, function () { throw 2; }); |
|
} catch (e) { /* empty */ } |
|
|
|
module.exports = function (exec, skipClosing) { |
|
if (!skipClosing && !SAFE_CLOSING) return false; |
|
var safe = false; |
|
try { |
|
var arr = [7]; |
|
var iter = arr[ITERATOR](); |
|
iter.next = function () { return { done: safe = true }; }; |
|
arr[ITERATOR] = function () { return iter; }; |
|
exec(arr); |
|
} catch (e) { /* empty */ } |
|
return safe; |
|
};
|
|
|