From 59570fe237f91dd04ce8f37779902cffa4352010 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Sat, 8 Jul 2023 17:41:24 -0700 Subject: Handle case with TS decorators and export default anonymous class (#3578) Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> --- src/js_parser.zig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/js_parser.zig b/src/js_parser.zig index df5c84294..3c706b1bb 100644 --- a/src/js_parser.zig +++ b/src/js_parser.zig @@ -18146,10 +18146,20 @@ fn NewParser_( data.default_name = createDefaultName(p, stmt.loc) catch unreachable; } + // We only inject a name into classes when there is a decorator + if (class.class.has_decorators) { + if (class.class.class_name == null or + class.class.class_name.?.ref == null) + { + class.class.class_name = data.default_name; + } + } + + // This is to handle TS decorators, mostly. var class_stmts = p.lowerClass(.{ .stmt = s2 }); + std.debug.assert(class_stmts[0].data == .s_class); if (class_stmts.len > 1) { - std.debug.assert(class_stmts[0].data == .s_class); data.value.stmt = class_stmts[0]; stmts.append(stmt.*) catch {}; stmts.appendSlice(class_stmts[1..]) catch {}; -- cgit v1.2.3