diff options
Diffstat (limited to 'js/src/jit-test/tests/latin1/assorted.js')
-rw-r--r-- | js/src/jit-test/tests/latin1/assorted.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/latin1/assorted.js b/js/src/jit-test/tests/latin1/assorted.js new file mode 100644 index 0000000000..5d6da13030 --- /dev/null +++ b/js/src/jit-test/tests/latin1/assorted.js @@ -0,0 +1,39 @@ +// Reflect.parse Latin1 +var ast = Reflect.parse("function f() { return 3; }"); +assertEq(ast.body[0].id.name, "f"); +assertEq(isLatin1(ast.body[0].id.name), true); + +// Reflect.parse TwoByte +var ast = Reflect.parse("function f\u1200() { return 3; }"); +assertEq(ast.body[0].id.name, "f\u1200"); + +if (Object.prototype.toSource) { + // obj.toSource Latin1 + var o = {}; + Object.defineProperty(o, "prop", {get: function() { return 1; }, + set: function() { return 2; }, + enumerable: true, configurable: true}); + assertEq(o.toSource(), "({get prop() { return 1; }, set prop() { return 2; }})"); + + // obj.toSource TwoByte + Object.defineProperty(o, "prop", {get: function() { return "\u1200"; }, + set: function() { return "\u1200"; }, + enumerable: true}); + assertEq(o.toSource(), '({get prop() { return "\\u1200"; }, set prop() { return "\\u1200"; }})'); + + var ff = function() { return 10; }; + ff.toSource = function() { return "((11))"; } + Object.defineProperty(o, "prop", {get: ff, set: ff, enumerable: true}); + assertEq(o.toSource(), "({get prop(11), set prop(11)})"); +} + +// XDR +load(libdir + 'bytecode-cache.js'); + +// Latin1 string constant +test = "'string123';"; +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true }); + +// TwoByte string constant +test = "'string\u1234';"; +evalWithCache(test, { assertEqBytecode: true, assertEqResult : true }); |