1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
(() => {
let iterablesBase = [
[1,2],
[1,2,3],
[1,2,3],
[3,2,1],
];
let iterables = [];
for (let i = 0; i < 1000; i++) {
iterables.push([...iterablesBase[i % iterablesBase.length]]);
}
iterables.push(new Map([[1, 3], [2,4]]).keys());
function testDestructuringInitialization(a) {
let [x,y] = a;
return y;
}
function testDestructuringAssignment(a) {
let x, y;
[x,y] = a;
return y;
}
for (let i = 0; i < iterables.length; i++) {
assertEq(testDestructuringInitialization(iterables[i]), 2);
}
// refresh the last iterator
iterables[iterables.length - 1] = new Map([[1, 3], [2,4]]).keys();
for (let i = 0; i < iterables.length; i++) {
assertEq(testDestructuringAssignment(iterables[i]), 2);
}
})();
|