From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../non262/reflect-parse/module-export-name.js | 117 +++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 js/src/tests/non262/reflect-parse/module-export-name.js (limited to 'js/src/tests/non262/reflect-parse/module-export-name.js') diff --git a/js/src/tests/non262/reflect-parse/module-export-name.js b/js/src/tests/non262/reflect-parse/module-export-name.js new file mode 100644 index 0000000000..405e62767a --- /dev/null +++ b/js/src/tests/non262/reflect-parse/module-export-name.js @@ -0,0 +1,117 @@ +// |reftest| skip-if(!xulRuntime.shell) + +function moduleRequest(source, assertions) { + return { + type: "ModuleRequest", + source, + assertions, + }; +} + +function importAssertion(key, value) { + return { + type: "ImportAssertion", + key, + value, + }; +} + +function importDecl(specifiers, moduleRequest) { + return { + type: "ImportDeclaration", + specifiers, + moduleRequest, + }; +} + +function importSpec(id, name) { + return { + type: "ImportSpecifier", + id, + name, + }; +} + +function exportDecl(declaration, specifiers, moduleRequest, isDefault) { + return { + type: "ExportDeclaration", + declaration, + specifiers, + moduleRequest, + isDefault, + }; +} + +function exportSpec(id, name) { + return { + type: "ExportSpecifier", + id, + name, + }; +} + +function exportNamespaceSpec(name) { + return { + type: "ExportNamespaceSpecifier", + name, + }; +} + +function assertModule(src, patt) { + program(patt).assert(Reflect.parse(src, {target: "module"})); +} + +assertModule(` + import {"x" as y} from "module"; +`, [ + importDecl([importSpec(literal("x"), ident("y"))], moduleRequest(literal("module"), [])), +]); + +assertModule(` + var x; + export {x as "y"}; +`, [ + varDecl([{id: ident("x"), init: null}]), + exportDecl(null, [exportSpec(ident("x"), literal("y"))], null, false), +]); + +assertModule(` + export {x as "y"} from "module"; +`, [ + exportDecl(null, [exportSpec(ident("x"), literal("y"))], moduleRequest(literal("module"), []), false), +]); + +assertModule(` + export {"x" as y} from "module"; +`, [ + exportDecl(null, [exportSpec(literal("x"), ident("y"))], moduleRequest(literal("module"), []), false), +]); + +assertModule(` + export {"x" as "y"} from "module"; +`, [ + exportDecl(null, [exportSpec(literal("x"), literal("y"))], moduleRequest(literal("module"), []), false), +]); + +assertModule(` + export {"x"} from "module"; +`, [ + exportDecl(null, [exportSpec(literal("x"), literal("x"))], moduleRequest(literal("module"), []), false), +]); + +assertModule(` + export * as "x" from "module"; +`, [ + exportDecl(null, [exportNamespaceSpec(literal("x"))], moduleRequest(literal("module"), []), false), +]); + +if (getRealmConfiguration()['importAssertions']) { + assertModule(` + import {"x" as y} from "module" assert {type: "json"}; + `, [ + importDecl([importSpec(literal("x"), ident("y"))], moduleRequest(literal("module"), [importAssertion(ident("type"), literal("json"))])), + ]); +} + +if (typeof reportCompare === "function") + reportCompare(true, true); -- cgit v1.2.3