From 3a48954586e613c7fd9bd3a7c22adda638eae809 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Mon, 7 Feb 2022 23:10:42 -0800 Subject: [JS Parser] Fix bug with `export default Foo` when `Foo` was a bundled import --- src/js_parser/js_parser.zig | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/js_parser/js_parser.zig') diff --git a/src/js_parser/js_parser.zig b/src/js_parser/js_parser.zig index 6552a69e8..4187bddf3 100644 --- a/src/js_parser/js_parser.zig +++ b/src/js_parser/js_parser.zig @@ -655,6 +655,10 @@ pub const ImportScanner = struct { .e_identifier => { continue; }, + .e_import_identifier => |import_ident| { + st.default_name.ref = import_ident.ref; + continue; + }, .e_function => |func| { if (func.func.name) |name_ref| { if (name_ref.ref != null) { @@ -5345,7 +5349,6 @@ pub fn NewParser( } else { defaultName = try p.createDefaultName(defaultLoc); } - // this is probably a panic var value = js_ast.StmtOrExpr{ .stmt = stmt }; return p.s(S.ExportDefault{ .default_name = defaultName, .value = value }, loc); } @@ -5355,7 +5358,6 @@ pub fn NewParser( const prefix_expr = try p.parseAsyncPrefixExpr(async_range, Level.comma); var expr = try p.parseSuffix(prefix_expr, Level.comma, null, Expr.EFlags.none); try p.lexer.expectOrInsertSemicolon(); - // this is probably a panic var value = js_ast.StmtOrExpr{ .expr = expr }; return p.s(S.ExportDefault{ .default_name = defaultName, .value = value }, loc); } @@ -5458,6 +5460,9 @@ pub fn NewParser( .e_identifier => |ident| { break :default_name_getter LocRef{ .loc = defaultLoc, .ref = ident.ref }; }, + .e_import_identifier => |ident| { + break :default_name_getter LocRef{ .loc = defaultLoc, .ref = ident.ref }; + }, .e_class => |class| { if (class.class_name) |_name| { if (_name.ref) |ref| { -- cgit v1.2.3