first
This commit is contained in:
38
node_modules/core-js/internals/object-iterator.js
generated
vendored
Normal file
38
node_modules/core-js/internals/object-iterator.js
generated
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
'use strict';
|
||||
var InternalStateModule = require('../internals/internal-state');
|
||||
var createIteratorConstructor = require('../internals/iterator-create-constructor');
|
||||
var createIterResultObject = require('../internals/create-iter-result-object');
|
||||
var hasOwn = require('../internals/has-own-property');
|
||||
var objectKeys = require('../internals/object-keys');
|
||||
var toObject = require('../internals/to-object');
|
||||
|
||||
var OBJECT_ITERATOR = 'Object Iterator';
|
||||
var setInternalState = InternalStateModule.set;
|
||||
var getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);
|
||||
|
||||
module.exports = createIteratorConstructor(function ObjectIterator(source, mode) {
|
||||
var object = toObject(source);
|
||||
setInternalState(this, {
|
||||
type: OBJECT_ITERATOR,
|
||||
mode: mode,
|
||||
object: object,
|
||||
keys: objectKeys(object),
|
||||
index: 0
|
||||
});
|
||||
}, 'Object', function next() {
|
||||
var state = getInternalState(this);
|
||||
var keys = state.keys;
|
||||
while (true) {
|
||||
if (keys === null || state.index >= keys.length) {
|
||||
state.object = state.keys = null;
|
||||
return createIterResultObject(undefined, true);
|
||||
}
|
||||
var key = keys[state.index++];
|
||||
var object = state.object;
|
||||
if (!hasOwn(object, key)) continue;
|
||||
switch (state.mode) {
|
||||
case 'keys': return createIterResultObject(key, false);
|
||||
case 'values': return createIterResultObject(object[key], false);
|
||||
} /* entries */ return createIterResultObject([key, object[key]], false);
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user