1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/ion/bug701964.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,36 @@ 1.4 +load(libdir + 'array-compare.js'); 1.5 + 1.6 +function f(v) { 1.7 + return v.length; 1.8 +} 1.9 + 1.10 +function g(v) { 1.11 + return v.length; 1.12 +} 1.13 + 1.14 +function h(v) { 1.15 + return v.length; 1.16 +} 1.17 + 1.18 +function aliasCheck(v) { 1.19 + v[0] = v.length; 1.20 + v[1] = v.length; 1.21 + v[2] = v.length; 1.22 + return v; 1.23 +} 1.24 + 1.25 +for(let i = 41; i; i--) { 1.26 + assertEq(f([]), 0); 1.27 + assertEq(f([0]), 1); 1.28 + assertEq(f([0, 1]), 2); 1.29 + assertEq(f([0, 1, 2]), 3); 1.30 + assertEq(g(""), 0); 1.31 + assertEq(g("1"), 1); 1.32 + assertEq(g("12"), 2); 1.33 + assertEq(g("123"), 3); 1.34 + assertEq(h({}), undefined); 1.35 + assertEq(h({a: 1}), undefined); 1.36 + assertEq(h({a: 1, b: 2}), undefined); 1.37 + assertEq(h({a: 1, b: 2, length: 3}), 3); 1.38 + assertEq(arraysEqual(aliasCheck([0, 1, 2]), [3, 3, 3]), true); 1.39 +}