0
0
mirror of https://github.com/Doodle3D/Doodle3D-API synced 2024-06-27 14:11:21 +02:00
Doodle3D-API/jspm_packages/npm/core-js@0.9.18/modules/es6.array.iterator.js
2015-07-15 15:06:18 +02:00

33 lines
797 B
JavaScript

/* */
var $ = require("./$"),
setUnscope = require("./$.unscope"),
ITER = require("./$.uid").safe('iter'),
$iter = require("./$.iter"),
step = $iter.step,
Iterators = $iter.Iterators;
require("./$.iter-define")(Array, 'Array', function(iterated, kind) {
$.set(this, ITER, {
o: $.toObject(iterated),
i: 0,
k: kind
});
}, function() {
var iter = this[ITER],
O = iter.o,
kind = iter.k,
index = iter.i++;
if (!O || index >= O.length) {
iter.o = undefined;
return step(1);
}
if (kind == 'keys')
return step(0, index);
if (kind == 'values')
return step(0, O[index]);
return step(0, [index, O[index]]);
}, 'values');
Iterators.Arguments = Iterators.Array;
setUnscope('keys');
setUnscope('values');
setUnscope('entries');