aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-07 23:10:42 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-07 23:10:42 -0800
commit3a48954586e613c7fd9bd3a7c22adda638eae809 (patch)
treeb14ce746f4e3fc4c1e15c8ce09733ced0124b898
parent49aee10cfa94089caf2e6e5b2bfa7d37cc9927d1 (diff)
downloadbun-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 '')
-rw-r--r--src/js_parser/js_parser.zig9
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| {