1 var wellKnownSymbol = require('../internals/well-known-symbol');
3 var ITERATOR = wellKnownSymbol('iterator');
4 var SAFE_CLOSING = false;
8 var iteratorWithReturn = {
10 return { done: !!called++ };
12 'return': function () {
16 iteratorWithReturn[ITERATOR] = function () {
19 // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
20 Array.from(iteratorWithReturn, function () { throw 2; });
21 } catch (error) { /* empty */ }
23 module.exports = function (exec, SKIP_CLOSING) {
24 if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
25 var ITERATION_SUPPORT = false;
28 object[ITERATOR] = function () {
31 return { done: ITERATION_SUPPORT = true };
36 } catch (error) { /* empty */ }
37 return ITERATION_SUPPORT;