js/src/jit-test/tests/ion/array-splice.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:5ba4a3366db8
1 function test1() {
2 // splice GetElement calls are observable and should be executed even if
3 // the return value of splice is unused.
4 Object.defineProperty(Object.prototype, "0", {get: function() {
5 c++;
6 }, set: function() {}});
7 var arr = [,,,];
8 var c = 0;
9 for (var i=0; i<100; i++) {
10 arr.splice(0, 1);
11 arr.length = 1;
12 }
13
14 assertEq(c, 100);
15 }
16 test1();
17
18 function test2() {
19 var arr = [];
20 for (var i=0; i<100; i++)
21 arr.push(i);
22 for (var i=0; i<40; i++)
23 arr.splice(0, 2);
24 assertEq(arr.length, 20);
25 assertEq(arr[0], 80);
26 }
27 test2();
28
29 function testNonArray() {
30 for (var i=0; i<10; i++) {
31 var o = {splice:[].splice, 0:"a", 1:"b", 2:"c", length:3};
32 o.splice(0, 2);
33 assertEq(o.length, 1);
34 assertEq(o[0], "c");
35 }
36 }
37 testNonArray();

mercurial