[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / array-prototype-join-uninitialized.js
1 function testArray(array, expected) {
2     var s = array.join('M');
3     if (s !== expected)
4         throw("Bad result for array " + array + " expected: \"" + expected + "\" but got: \"" + s + "\"");
5 }
6
7 function testABC(n, resA, resB, resC) {
8     testArray(new Array(n), resA);
9     testArray(new B(n), resB);
10     testArray(new C(n), resC);
11 }
12
13 class B extends Array { }
14 class C extends B { }
15
16
17 testABC(0, "", "", "");
18 testABC(1, "", "", "");
19 testABC(3, "MM", "MM", "MM")
20
21 B.prototype[0] = "foo";
22 testABC(0, "", "", "");
23 testABC(1, "", "foo", "foo");
24 testABC(3, "MM", "fooMM", "fooMM");
25
26 C.prototype[1] = "bar";
27 testABC(0, "", "", "");
28 testABC(1, "", "foo", "foo");
29 testABC(3, "MM", "fooMM", "fooMbarM");
30
31 Array.prototype[1] = "baz";
32 testABC(0, "", "", "");
33 testABC(1, "", "foo", "foo");
34 testABC(3, "MbazM", "fooMbazM", "fooMbarM");