bug1073861.js (1094B)
1 function a(a, b, c, g) { 2 for (;;) { 3 if (0 > c) return a; 4 a: { 5 for (;;) { 6 var k = a.forward[c]; 7 if (t(k)) 8 if (k.key < b) a = k; 9 else break a; 10 else break a 11 } 12 a = void 0 13 } 14 null != 15 g && (g[c] = a); 16 c -= 1 17 } 18 } 19 20 function t(a) { 21 return null != a && !1 !== a 22 } 23 24 25 var d = {forward: [{},null,{}]} 26 for (var i=0; i < 1000; i++) { 27 a(d, 0, 1, null); 28 a(d, 0, 0, null); 29 } 30 31 32 33 34 function test(a) { 35 var t = a[0] 36 if (t) { 37 return t.test; 38 } 39 } 40 41 function test2(a) { 42 var t = a[0] 43 if (t) { 44 if (t) { 45 return t.test; 46 } 47 } 48 } 49 50 function test3(a) { 51 var t = a[0] 52 if (t !== null) { 53 if (t !== undefined) { 54 return t.test; 55 } 56 } 57 } 58 59 var a = [{test:1}] 60 var b = [undefined] 61 assertEq(test(b), undefined) 62 assertEq(test(a), 1) 63 assertEq(test(a), 1) 64 assertEq(test2(b), undefined) 65 assertEq(test2(a), 1) 66 assertEq(test2(a), 1) 67 assertEq(test3(b), undefined) 68 assertEq(test3(a), 1) 69 assertEq(test3(a), 1)