diff options
Diffstat (limited to 'node_modules/core-js/modules/_iter-detect.js')
| -rw-r--r-- | node_modules/core-js/modules/_iter-detect.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/_iter-detect.js b/node_modules/core-js/modules/_iter-detect.js new file mode 100644 index 00000000..5cb34973 --- /dev/null +++ b/node_modules/core-js/modules/_iter-detect.js @@ -0,0 +1,22 @@ +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; +}; |
