Index: test/mjsunit/regress/regress-2294.js |
diff --git a/test/mjsunit/compiler/inline-arity-mismatch.js b/test/mjsunit/regress/regress-2294.js |
similarity index 62% |
copy from test/mjsunit/compiler/inline-arity-mismatch.js |
copy to test/mjsunit/regress/regress-2294.js |
index 4a61fa3a62c36f8f53b12cde023f52bdb6e1abc7..40318a2d2149290e8fd89ccca3840c828b3e11f6 100644 |
--- a/test/mjsunit/compiler/inline-arity-mismatch.js |
+++ b/test/mjsunit/regress/regress-2294.js |
@@ -27,36 +27,40 @@ |
// Flags: --allow-natives-syntax |
-// Test inlining at call sites with mismatched arity. |
+var clampedArray = new Uint8ClampedArray(10); |
-function f(a) { |
- return a.x; |
+function setElement(i, x) { |
+ clampedArray[i] = x; |
} |
-function g(a, b) { |
- return a.x; |
+for (var i = 0; i < 2; i++) { |
+ setElement(0, 0.499) |
+ assertEquals(0, clampedArray[0]); |
+ setElement(0, 0.5) |
+ assertEquals(0, clampedArray[0]); |
+ setElement(0, 0.501) |
+ assertEquals(1, clampedArray[0]); |
+ setElement(0, 1.499) |
+ assertEquals(1, clampedArray[0]); |
+ setElement(0, 1.5) |
+ assertEquals(2, clampedArray[0]); |
+ setElement(0, 1.501) |
+ assertEquals(2, clampedArray[0]); |
+ setElement(0, 2.5) |
+ assertEquals(2, clampedArray[0]); |
+ setElement(0, 3.5) |
+ assertEquals(4, clampedArray[0]); |
+ setElement(0, 252.5) |
+ assertEquals(252, clampedArray[0]); |
+ setElement(0, 253.5) |
+ assertEquals(254, clampedArray[0]); |
+ setElement(0, 254.5) |
+ assertEquals(254, clampedArray[0]); |
+ setElement(0, 256.5) |
+ assertEquals(255, clampedArray[0]); |
+ setElement(0, -0.5) |
+ assertEquals(0, clampedArray[0]); |
+ setElement(0, -1.5) |
+ assertEquals(0, clampedArray[0]); |
+ %OptimizeFunctionOnNextCall(setElement) |
Yang
2012/08/22 07:57:07
setElement may be optimized before the first itera
ulan
2012/08/22 13:48:17
Done.
|
} |
- |
-function h1(a, b) { |
- return f(a, a) * g(b); |
-} |
- |
-function h2(a, b) { |
- return f(a, a) * g(b); |
-} |
- |
- |
-var o = {x: 2}; |
- |
-assertEquals(4, h1(o, o)); |
-assertEquals(4, h1(o, o)); |
-assertEquals(4, h2(o, o)); |
-assertEquals(4, h2(o, o)); |
-%OptimizeFunctionOnNextCall(h1); |
-%OptimizeFunctionOnNextCall(h2); |
-assertEquals(4, h1(o, o)); |
-assertEquals(4, h2(o, o)); |
- |
-var u = {y:0, x:1}; |
-assertEquals(2, h1(u, o)); |
-assertEquals(2, h2(o, u)); |