[JSC] Array.prototype.reverse modifies JSImmutableButterfly
[WebKit-https.git] / JSTests / stress / reverse-with-immutable-butterfly.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error('bad value: ' + actual);
4 }
5
6 function reverseInt()
7 {
8     var array = [0, 1, 2, 3];
9     return array.reverse();
10 }
11
12 function reverseDouble()
13 {
14     var array = [0.0, 1.1, 2.2, 3.3];
15     return array.reverse();
16 }
17
18 function reverseContiguous()
19 {
20     var array = [0.0, 1.1, 2.2, 'hello'];
21     return array.reverse();
22 }
23
24 for (var i = 0; i < 1e4; ++i) {
25     shouldBe(JSON.stringify(reverseInt()), `[3,2,1,0]`);
26     shouldBe(JSON.stringify(reverseDouble()), `[3.3,2.2,1.1,0]`);
27     shouldBe(JSON.stringify(reverseContiguous()), `["hello",2.2,1.1,0]`);
28 }