diff options
Diffstat (limited to 'js/src/tests/ecma_7/AsyncFunctions/clone.js')
-rw-r--r-- | js/src/tests/ecma_7/AsyncFunctions/clone.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/js/src/tests/ecma_7/AsyncFunctions/clone.js b/js/src/tests/ecma_7/AsyncFunctions/clone.js new file mode 100644 index 000000000..2a4d5f8e0 --- /dev/null +++ b/js/src/tests/ecma_7/AsyncFunctions/clone.js @@ -0,0 +1,22 @@ +// |reftest| skip-if(!xulRuntime.shell) -- needs clone, cloneAndExecuteScript, drainJobQueue + +// Async function cannot be cloned. +assertThrowsInstanceOf(() => clone(async function f() {}), TypeError); + +// unwrapped async function can be cloned. +let g = newGlobal(); +cloneAndExecuteScript(` +async function f() { + var a = await 1; + var b = await 2; + var c = await 3; + return a + b + c; +} +var V; +f().then(v => V = v); +drainJobQueue(); +`, g); +assertEq(g.V, 6); + +if (typeof reportCompare === "function") + reportCompare(true, true); |