"use strict"; function foo(func, arg) { return func(arg); } noInline(foo); function a() { return 1; } function b() { return 2; } function c() { return 3; } function d() { return 4; } function e() { return 5; } function f() { return 6; } function g() { return 7; } function h() { return 8; } function i() { return 9; } function j() { return 0; } function k() { return 1; } function l() { return 2; } function m() { return 3; } var funcs = [a, b, c, d, e, f, g, h, i, l, m, Array]; for (var i = 0; i < 100000; ++i) foo(funcs[i % funcs.length], 1); var result = null; try { result = foo(Array, -1); } catch (e) { if (e.toString() != "RangeError: Array size is not a small enough positive integer.") throw "Error: bad exception at end: " + e; } if (result != null) throw "Error: bad result at end: " + result;