source: trip-planner-front/node_modules/core-js/internals/object-iterator.js@ ceaed42

Last change on this file since ceaed42 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.3 KB
Line 
1'use strict';
2var InternalStateModule = require('../internals/internal-state');
3var createIteratorConstructor = require('../internals/create-iterator-constructor');
4var has = require('../internals/has');
5var objectKeys = require('../internals/object-keys');
6var toObject = require('../internals/to-object');
7
8var OBJECT_ITERATOR = 'Object Iterator';
9var setInternalState = InternalStateModule.set;
10var getInternalState = InternalStateModule.getterFor(OBJECT_ITERATOR);
11
12module.exports = createIteratorConstructor(function ObjectIterator(source, mode) {
13 var object = toObject(source);
14 setInternalState(this, {
15 type: OBJECT_ITERATOR,
16 mode: mode,
17 object: object,
18 keys: objectKeys(object),
19 index: 0
20 });
21}, 'Object', function next() {
22 var state = getInternalState(this);
23 var keys = state.keys;
24 while (true) {
25 if (keys === null || state.index >= keys.length) {
26 state.object = state.keys = null;
27 return { value: undefined, done: true };
28 }
29 var key = keys[state.index++];
30 var object = state.object;
31 if (!has(object, key)) continue;
32 switch (state.mode) {
33 case 'keys': return { value: key, done: false };
34 case 'values': return { value: object[key], done: false };
35 } /* entries */ return { value: [key, object[key]], done: false };
36 }
37});
Note: See TracBrowser for help on using the repository browser.