| function foo(a) { | |
| return [...a]; | |
| } | |
| noInline(foo); | |
| let arr = []; | |
| for (let i = 0; i < testLoopCount; i++) { | |
| if (i % 100 === 0) | |
| arr.push([], i); | |
| foo(arr); | |
| } | |
| let calledIterator = false; | |
| let arrayIterator = [][Symbol.iterator]().__proto__; | |
| arrayIterator.next = function() { | |
| calledIterator = true; | |
| return {done: true}; | |
| }; | |
| let r = foo(arr); | |
| if (!calledIterator || r.length) | |
| throw new Error("Bad result"); |