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);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								});
							 |