diff options
author | 2022-02-07 23:10:42 -0800 | |
---|---|---|
committer | 2022-02-07 23:10:42 -0800 | |
commit | 3a48954586e613c7fd9bd3a7c22adda638eae809 (patch) | |
tree | b14ce746f4e3fc4c1e15c8ce09733ced0124b898 /src/js_parser/js_parser.zig | |
parent | 49aee10cfa94089caf2e6e5b2bfa7d37cc9927d1 (diff) | |
download | bun-3a48954586e613c7fd9bd3a7c22adda638eae809.tar.gz bun-3a48954586e613c7fd9bd3a7c22adda638eae809.tar.zst bun-3a48954586e613c7fd9bd3a7c22adda638eae809.zip |
[JS Parser] Fix bug with `export default Foo` when `Foo` was a bundled import
Diffstat (limited to 'src/js_parser/js_parser.zig')
-rw-r--r-- | src/js_parser/js_parser.zig | 9 |
1 files changed, 7 insertions, 2 deletions
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| { |