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.
		
		
		
		
		
			
		
			
				
					27 lines
				
				749 B
			
		
		
			
		
	
	
					27 lines
				
				749 B
			| 
											3 years ago
										 | 'use strict'; | ||
|  | // 26.1.5 Reflect.enumerate(target)
 | ||
|  | var $export = require('./_export'); | ||
|  | var anObject = require('./_an-object'); | ||
|  | var Enumerate = function (iterated) { | ||
|  |   this._t = anObject(iterated); // target
 | ||
|  |   this._i = 0;                  // next index
 | ||
|  |   var keys = this._k = [];      // keys
 | ||
|  |   var key; | ||
|  |   for (key in iterated) keys.push(key); | ||
|  | }; | ||
|  | require('./_iter-create')(Enumerate, 'Object', function () { | ||
|  |   var that = this; | ||
|  |   var keys = that._k; | ||
|  |   var key; | ||
|  |   do { | ||
|  |     if (that._i >= keys.length) return { value: undefined, done: true }; | ||
|  |   } while (!((key = keys[that._i++]) in that._t)); | ||
|  |   return { value: key, done: false }; | ||
|  | }); | ||
|  | 
 | ||
|  | $export($export.S, 'Reflect', { | ||
|  |   enumerate: function enumerate(target) { | ||
|  |     return new Enumerate(target); | ||
|  |   } | ||
|  | }); |