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.
26 lines
749 B
26 lines
749 B
'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); |
|
} |
|
});
|
|
|