summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/latin1/assorted.js
blob: 5d6da1303019e2b4bb0a00e87c04b10655c01c90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 });