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.
		
		
		
		
		
			
		
			
				
					23 lines
				
				645 B
			
		
		
			
		
	
	
					23 lines
				
				645 B
			| 
											3 years ago
										 | 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; | ||
|  | }; |