summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/xdr/async.js
blob: 2c75c89a98659c6d03c5c3a411f9868099392f34 (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
load(libdir + 'bytecode-cache.js');

// Prevent relazification triggered by some zeal modes.
gczeal(0);

async function f1(a, b) {
  let x = await 10;
  return x;
};
var toStringResult = f1.toString();

var test = `
async function f1(a, b) {
  let x = await 10;
  return x;
};
// toString gets unwrapped function from wrapped function.
assertEq(f1.toString(), \`${toStringResult}\`);

var ans = 0;
f1().then(x => { ans = x; });
drainJobQueue();
assertEq(ans, 10);

async function f2(a, b) {
  // arguments.callee gets wrapped function from unwrapped function.
  return arguments.callee;
};

f2().then(x => { ans = x; });
drainJobQueue();
assertEq(ans, f2);
`;

evalWithCache(test, { assertEqBytecode: true, checkFrozen: true});