diff -r 000000000000 -r 6474c204b198 js/src/jit-test/tests/ion/bug701964.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/jit-test/tests/ion/bug701964.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,36 @@ +load(libdir + 'array-compare.js'); + +function f(v) { + return v.length; +} + +function g(v) { + return v.length; +} + +function h(v) { + return v.length; +} + +function aliasCheck(v) { + v[0] = v.length; + v[1] = v.length; + v[2] = v.length; + return v; +} + +for(let i = 41; i; i--) { + assertEq(f([]), 0); + assertEq(f([0]), 1); + assertEq(f([0, 1]), 2); + assertEq(f([0, 1, 2]), 3); + assertEq(g(""), 0); + assertEq(g("1"), 1); + assertEq(g("12"), 2); + assertEq(g("123"), 3); + assertEq(h({}), undefined); + assertEq(h({a: 1}), undefined); + assertEq(h({a: 1, b: 2}), undefined); + assertEq(h({a: 1, b: 2, length: 3}), 3); + assertEq(arraysEqual(aliasCheck([0, 1, 2]), [3, 3, 3]), true); +}