js/src/jit-test/tests/xdr/trivial.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/xdr/trivial.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,38 @@
     1.4 +load(libdir + 'bytecode-cache.js');
     1.5 +var test = "";
     1.6 +
     1.7 +// code a constant.
     1.8 +test = "1;";
     1.9 +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true });
    1.10 +
    1.11 +// code a string constant.
    1.12 +test = "'string';";
    1.13 +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true });
    1.14 +
    1.15 +// code a global variable access.
    1.16 +test = "generation;";
    1.17 +evalWithCache(test, { assertEqBytecode: true });
    1.18 +
    1.19 +// code an object constant.
    1.20 +test = "var obj = { a: 1, b: 2 };";
    1.21 +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true });
    1.22 +
    1.23 +// code object literal with mutations.
    1.24 +test = "var obj = { a: 1, b: 2 }; obj.a++; assertEq(obj.a, 2);";
    1.25 +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true });
    1.26 +
    1.27 +// code object literals with mutations.
    1.28 +test = "var obj = { a: 1, b: { c: 3, d: 4 } }; obj.b.c++; assertEq(obj.b.c, 4);";
    1.29 +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true });
    1.30 +
    1.31 +// code a function which is used.
    1.32 +test = "function f() { return 1; }; f();";
    1.33 +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true });
    1.34 +
    1.35 +// code a function which is not used.
    1.36 +test = "function f() { return 1; }; 1;";
    1.37 +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true });
    1.38 +
    1.39 +// code a function which has an object literal.
    1.40 +test = "function f() { return { x: 2 }; }; f();";
    1.41 +evalWithCache(test, { assertEqBytecode: true });

mercurial