Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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 }
14 assertEq(c, 100);
15 }
16 test1();
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();
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();