| function doTest(arr1, arr2) { |
| if (arr1.length != arr2.length) |
| return [] |
| for (let i=0; i<arr1.length; ++i) { |
| arr2[i] = arr1[i] |
| } |
| return arr2 |
| } |
| noInline(doTest); |
| |
| for (size of [1, 3, 8, 10, 12, 16]) { |
| let arr1 = new Int32Array(size) |
| let arr2 = new Int32Array(size) |
| for (let i=0; i<arr1.length; ++i) { |
| arr1[i] = i |
| } |
| |
| for (let i=0; i<50000000; ++i) doTest(arr1, arr2) |
| |
| arr2 = new Int32Array(arr1.length) |
| doTest(arr1, arr2) |
| |
| for (let i=0; i<arr1.length; ++i) { |
| if (arr2[i] != arr1[i]) |
| throw "Error: bad copy: " + i + " " + arr1[i] + " " + arr2[i] |
| } |
| } |