source: trip-planner-front/node_modules/core-js/modules/es.array.iterator.js@ e29cc2e

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

initial commit

  • Property mode set to 100644
File size: 2.1 KB
Line 
1'use strict';
2var toIndexedObject = require('../internals/to-indexed-object');
3var addToUnscopables = require('../internals/add-to-unscopables');
4var Iterators = require('../internals/iterators');
5var InternalStateModule = require('../internals/internal-state');
6var defineIterator = require('../internals/define-iterator');
7
8var ARRAY_ITERATOR = 'Array Iterator';
9var setInternalState = InternalStateModule.set;
10var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
11
12// `Array.prototype.entries` method
13// https://tc39.es/ecma262/#sec-array.prototype.entries
14// `Array.prototype.keys` method
15// https://tc39.es/ecma262/#sec-array.prototype.keys
16// `Array.prototype.values` method
17// https://tc39.es/ecma262/#sec-array.prototype.values
18// `Array.prototype[@@iterator]` method
19// https://tc39.es/ecma262/#sec-array.prototype-@@iterator
20// `CreateArrayIterator` internal method
21// https://tc39.es/ecma262/#sec-createarrayiterator
22module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
23 setInternalState(this, {
24 type: ARRAY_ITERATOR,
25 target: toIndexedObject(iterated), // target
26 index: 0, // next index
27 kind: kind // kind
28 });
29// `%ArrayIteratorPrototype%.next` method
30// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next
31}, function () {
32 var state = getInternalState(this);
33 var target = state.target;
34 var kind = state.kind;
35 var index = state.index++;
36 if (!target || index >= target.length) {
37 state.target = undefined;
38 return { value: undefined, done: true };
39 }
40 if (kind == 'keys') return { value: index, done: false };
41 if (kind == 'values') return { value: target[index], done: false };
42 return { value: [index, target[index]], done: false };
43}, 'values');
44
45// argumentsList[@@iterator] is %ArrayProto_values%
46// https://tc39.es/ecma262/#sec-createunmappedargumentsobject
47// https://tc39.es/ecma262/#sec-createmappedargumentsobject
48Iterators.Arguments = Iterators.Array;
49
50// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
51addToUnscopables('keys');
52addToUnscopables('values');
53addToUnscopables('entries');
Note: See TracBrowser for help on using the repository browser.