From e93da8b04da86773247aadb1cbb1912e4f4526b2 Mon Sep 17 00:00:00 2001 From: Priyansh Date: Tue, 22 Dec 2020 17:49:59 +0530 Subject: Rewriting Project --- node_modules/core-js/internals/object-iterator.js | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 node_modules/core-js/internals/object-iterator.js (limited to 'node_modules/core-js/internals/object-iterator.js') diff --git a/node_modules/core-js/internals/object-iterator.js b/node_modules/core-js/internals/object-iterator.js new file mode 100644 index 0000000..415824f --- /dev/null +++ b/node_modules/core-js/internals/object-iterator.js @@ -0,0 +1,37 @@ +'use strict'; +var InternalStateModule = require('../internals/internal-state'); +var createIteratorConstructor = require('../internals/create-iterator-constructor'); +var has = require('../internals/has'); +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 { value: undefined, done: true }; + } + var key = keys[state.index++]; + var object = state.object; + if (!has(object, key)) continue; + switch (state.mode) { + case 'keys': return { value: key, done: false }; + case 'values': return { value: object[key], done: false }; + } /* entries */ return { value: [key, object[key]], done: false }; + } +}); -- cgit v1.2.3