aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-03-21 21:44:42 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-03-21 21:44:42 -0700
commit58a5c2a3aa3a3717b814366f088c249f7314820c (patch)
treee7c0f2ad958cd668dd4105b170829513cb7b6a65 /src
parentf3a91339fcb818cf9b088759b680b7b5e0a5aa80 (diff)
downloadbun-58a5c2a3aa3a3717b814366f088c249f7314820c.tar.gz
bun-58a5c2a3aa3a3717b814366f088c249f7314820c.tar.zst
bun-58a5c2a3aa3a3717b814366f088c249f7314820c.zip
Fix possible crash with `export namespace ns { export class F {} }`
Diffstat (limited to 'src')
-rw-r--r--src/js_parser.zig19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/js_parser.zig b/src/js_parser.zig
index bc9d4e157..45e0e8d72 100644
--- a/src/js_parser.zig
+++ b/src/js_parser.zig
@@ -16405,11 +16405,20 @@ fn NewParser_(
// Handle exporting this class from a namespace
if (was_export_inside_namespace) {
- stmts.appendAssumeCapacity(Expr.assignStmt(p.newExpr(E.Dot{
- .target = p.newExpr(E.Identifier{ .ref = p.enclosing_namespace_arg_ref.? }, stmt.loc),
- .name = p.symbols.items[data.class.class_name.?.ref.?.innerIndex()].original_name,
- .name_loc = data.class.class_name.?.loc,
- }, stmt.loc), p.newExpr(E.Identifier{ .ref = data.class.class_name.?.ref.? }, data.class.class_name.?.loc), p.allocator));
+ stmts.append(
+ Stmt.assign(
+ p.newExpr(
+ E.Dot{
+ .target = p.newExpr(E.Identifier{ .ref = p.enclosing_namespace_arg_ref.? }, stmt.loc),
+ .name = p.symbols.items[data.class.class_name.?.ref.?.innerIndex()].original_name,
+ .name_loc = data.class.class_name.?.loc,
+ },
+ stmt.loc,
+ ),
+ p.newExpr(E.Identifier{ .ref = data.class.class_name.?.ref.? }, data.class.class_name.?.loc),
+ p.allocator,
+ ),
+ ) catch unreachable;
}
return;