js/src/jit-test/tests/ion/bug701964.js

changeset 0
6474c204b198
     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 +}

mercurial