34 lines
731 B
JavaScript
34 lines
731 B
JavaScript
var global = this;
|
|
|
|
function __createIterableObject(arr, methods) {
|
|
methods = methods || {};
|
|
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
|
return {};
|
|
}
|
|
arr.length++;
|
|
var iterator = {
|
|
next: function() {
|
|
return { value: arr.shift(), done: arr.length <= 0 };
|
|
},
|
|
'return': methods['return'],
|
|
'throw': methods['throw']
|
|
};
|
|
var iterable = {};
|
|
iterable[Symbol.iterator] = function(){ return iterator; }
|
|
return iterable;
|
|
}
|
|
|
|
function test() {
|
|
|
|
var [a, b, c] = global.__createIterableObject([1, 2]);
|
|
var d, e;
|
|
[d, e] = global.__createIterableObject([3, 4]);
|
|
return a === 1 && b === 2 && c === undefined
|
|
&& d === 3 && e === 4;
|
|
|
|
}
|
|
|
|
if (!test())
|
|
throw new Error("Test failed");
|
|
|