[JSC] Do not use asArrayModes() with Structures because it discards TypedArray inform...
[WebKit-https.git] / JSTests / stress / constant-folding-should-fold-make-rope-with-empty-strings.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error('bad value: ' + actual);
4 }
5
6 function unknown()
7 {
8     return "OK";
9 }
10 noInline(unknown);
11
12 function readWord1(flag)
13 {
14     var word = "";
15     if (flag) {
16         word += unknown();
17     }
18     return word + "HelloWorld";
19 }
20 noInline(readWord1);
21
22 function readWord2(flag)
23 {
24     var word = "";
25     if (flag) {
26         word += unknown();
27     }
28     return "HelloWorld" + word;
29 }
30 noInline(readWord2);
31
32 function readWord3(flag)
33 {
34     var word = "";
35     if (flag) {
36         word += unknown();
37     }
38     return "" + word;
39 }
40 noInline(readWord3);
41
42 function readWord4(flag)
43 {
44     var word = "";
45     if (flag) {
46         word += unknown();
47     }
48     return "HelloWorld" + word + word;
49 }
50 noInline(readWord4);
51
52 for (var i = 0; i < 1e6; ++i) {
53     shouldBe(readWord1(false), "HelloWorld");
54     shouldBe(readWord2(false), "HelloWorld");
55     shouldBe(readWord3(false), "");
56     shouldBe(readWord4(false), "HelloWorld");
57 }
58 shouldBe(readWord1(true), "OKHelloWorld");
59 shouldBe(readWord2(true), "HelloWorldOK");
60 shouldBe(readWord3(true), "OK");
61 shouldBe(readWord4(true), "HelloWorldOKOK");