Index: test/mjsunit/apply.js |
=================================================================== |
--- test/mjsunit/apply.js (revision 5040) |
+++ test/mjsunit/apply.js (working copy) |
@@ -94,7 +94,7 @@ |
} |
return doo; |
} |
- |
+ |
assertEquals("42foofishhorse", f.apply(this, arr), "apply to this"); |
function s() { |
@@ -112,28 +112,13 @@ |
return arguments.length + arguments[arguments.length - 1]; |
} |
-var stack_corner_case_failure = false; |
- |
for (var j = 1; j < 0x40000000; j <<= 1) { |
try { |
var a = new Array(j); |
a[j - 1] = 42; |
assertEquals(42 + j, al.apply(345, a)); |
} catch (e) { |
- if (e.toString().indexOf("Maximum call stack size exceeded") != -1) { |
- // For some combinations of build settings, it may be the case that the |
- // stack here is just tall enough to contain the array whose size is |
- // specified by j but is not tall enough to contain the activation |
- // record for the apply call. Allow one such corner case through, |
- // checking that the length check will do the right thing for an array |
- // the next size up. |
- assertEquals(false, stack_corner_case_failure); |
- stack_corner_case_failure = true; |
- continue; |
- } |
- assertTrue(e.toString().indexOf("Function.prototype.apply") != -1, |
- "exception does not contain Function.prototype.apply: " + |
- e.toString()); |
+ assertTrue(e.toString().indexOf("Maximum call stack size exceeded") != -1); |
for (; j < 0x40000000; j <<= 1) { |
var caught = false; |
try { |
@@ -143,9 +128,7 @@ |
assertUnreachable("Apply of array with length " + a.length + |
" should have thrown"); |
} catch (e) { |
- assertTrue(e.toString().indexOf("Function.prototype.apply") != -1, |
- "exception does not contain Function.prototype.apply [" + |
- "length = " + j + "]: " + e.toString()); |
+ assertTrue(e.toString().indexOf("Maximum call stack size exceeded") != -1); |
caught = true; |
} |
assertTrue(caught, "exception not caught"); |