diff options
Diffstat (limited to 'node_modules/core-js/modules/_iter-detect.js')
-rw-r--r-- | node_modules/core-js/modules/_iter-detect.js | 21 |
1 files changed, 21 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 000000000..87c7aecf4 --- /dev/null +++ b/node_modules/core-js/modules/_iter-detect.js @@ -0,0 +1,21 @@ +var ITERATOR = require('./_wks')('iterator') + , SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + riter['return'] = function(){ SAFE_CLOSING = true; }; + 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] + , iter = arr[ITERATOR](); + iter.next = function(){ return {done: safe = true}; }; + arr[ITERATOR] = function(){ return iter; }; + exec(arr); + } catch(e){ /* empty */ } + return safe; +};
\ No newline at end of file |