async.js (728B)
1 load(libdir + 'bytecode-cache.js'); 2 3 // Prevent relazification triggered by some zeal modes. 4 gczeal(0); 5 6 async function f1(a, b) { 7 let x = await 10; 8 return x; 9 }; 10 var toStringResult = f1.toString(); 11 12 var test = ` 13 async function f1(a, b) { 14 let x = await 10; 15 return x; 16 }; 17 // toString gets unwrapped function from wrapped function. 18 assertEq(f1.toString(), \`${toStringResult}\`); 19 20 var ans = 0; 21 f1().then(x => { ans = x; }); 22 drainJobQueue(); 23 assertEq(ans, 10); 24 25 async function f2(a, b) { 26 // arguments.callee gets wrapped function from unwrapped function. 27 return arguments.callee; 28 }; 29 30 f2().then(x => { ans = x; }); 31 drainJobQueue(); 32 assertEq(ans, f2); 33 `; 34 35 evalWithCache(test, { assertEqBytecode: true, checkFrozen: true});