syntax-modules.js (1470B)
1 var BUGNUMBER = 1185106; 2 var summary = "async/await syntax in module"; 3 4 print(BUGNUMBER + ": " + summary); 5 6 if (typeof parseModule === "function") { 7 parseModule("async function f() { await 3; }"); 8 parseModule("async function f() { await 3; }"); 9 assertThrowsInstanceOf(() => parseModule("function f() { await 5; }"), SyntaxError); 10 assertThrowsInstanceOf(() => parseModule("() => { await 5; }"), SyntaxError); 11 assertThrowsInstanceOf(() => parseModule("export var await;"), SyntaxError); 12 assertThrowsInstanceOf(() => parseModule("await => 1;"), SyntaxError); 13 assertThrowsInstanceOf(() => parseModule("async function f() { function g() { await 3; } }"), SyntaxError); 14 15 if (typeof Reflect !== "undefined" && Reflect.parse) { 16 Reflect.parse("export async function f() {}", { target: "module" }); 17 assertThrowsInstanceOf(() => Reflect.parse("export async function() {}", { target: "module" }), SyntaxError); 18 19 Reflect.parse("export default async function() {}", { target: "module" }); 20 Reflect.parse("export default async function f() {}", { target: "module" }); 21 22 assertThrowsInstanceOf(() => Reflect.parse("export default async function() { yield; }", { target: "module" }), SyntaxError); 23 assertThrowsInstanceOf(() => Reflect.parse("export default async function() { yield = 1; }", { target: "module" }), SyntaxError); 24 } 25 } 26 27 if (typeof reportCompare === "function") 28 reportCompare(true, true);