| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 
							- 'use strict';
 
- var wellKnownSymbol = require('../internals/well-known-symbol');
 
- var ITERATOR = wellKnownSymbol('iterator');
 
- var SAFE_CLOSING = false;
 
- try {
 
-   var called = 0;
 
-   var iteratorWithReturn = {
 
-     next: function () {
 
-       return { done: !!called++ };
 
-     },
 
-     'return': function () {
 
-       SAFE_CLOSING = true;
 
-     }
 
-   };
 
-   iteratorWithReturn[ITERATOR] = function () {
 
-     return this;
 
-   };
 
-   // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
 
-   Array.from(iteratorWithReturn, function () { throw 2; });
 
- } catch (error) { /* empty */ }
 
- module.exports = function (exec, SKIP_CLOSING) {
 
-   try {
 
-     if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
 
-   } catch (error) { return false; } // workaround of old WebKit + `eval` bug
 
-   var ITERATION_SUPPORT = false;
 
-   try {
 
-     var object = {};
 
-     object[ITERATOR] = function () {
 
-       return {
 
-         next: function () {
 
-           return { done: ITERATION_SUPPORT = true };
 
-         }
 
-       };
 
-     };
 
-     exec(object);
 
-   } catch (error) { /* empty */ }
 
-   return ITERATION_SUPPORT;
 
- };
 
 
  |