//@ runFTLNoCJIT // Regression test for https://webkit.org/b/164081. // This test passes if it does not crash nor throws an error. function shouldEqual(actual, expected) { if (actual != expected) { throw "ERROR: expect " + expected + ", actual " + actual; } } var count = 10000; var g_arr = new Array(count); for (var z = 0; z < count; z+=2) { testcase(z); } function testcase(z) { var visited = []; g_arr[z]= Function('\'use strict\''); g_arr[z][0]=5; try { g_arr[z+1] = new Uint32Array(8); //can skip g_arr[z+1][6] = 0x41414141; // can skip g_arr[z+1][7] = 0x41414141; // can skip visited.push("set_caller"); g_arr[z].caller= 1; } catch (e) { visited.push("caught_exception"); } shouldEqual(visited, "set_caller,caught_exception"); }