From a02f42f84c7461f07cbfaf6d048f666bcfc085a9 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 29 Jun 2022 04:29:32 -0700 Subject: Fix bug with printer --- src/js_printer.zig | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/js_printer.zig b/src/js_printer.zig index 5f0e99ded..1a68c6662 100644 --- a/src/js_printer.zig +++ b/src/js_printer.zig @@ -697,7 +697,7 @@ pub fn NewPrinter( } } - p.printClauseItemAs(item, true); + p.printClauseItemAs(item, .@"var"); } if (!import.is_single_line) { @@ -1444,21 +1444,24 @@ pub fn NewPrinter( } fn printClauseItem(p: *Printer, item: js_ast.ClauseItem) void { - return printClauseItemAs(p, item, false); + return printClauseItemAs(p, item, .@"import"); } - fn printClauseItemAs(p: *Printer, item: js_ast.ClauseItem, comptime as_variable: bool) void { + fn printExportClauseItem(p: *Printer, item: js_ast.ClauseItem) void { + return printClauseItemAs(p, item, .@"export"); + } + + fn printClauseItemAs(p: *Printer, item: js_ast.ClauseItem, comptime as: @Type(.EnumLiteral)) void { const name = p.renamer.nameForSymbol(item.name.ref.?); - if (comptime !as_variable) { - p.printIdentifier(name); + if (comptime as == .@"import") { + p.printClauseAlias(item.alias); if (!strings.eql(name, item.alias)) { - p.print(" as"); - p.printSpace(); - p.printClauseAlias(item.alias); + p.print(" as "); + p.printIdentifier(name); } - } else { + } else if (comptime as == .@"var") { p.printClauseAlias(item.alias); if (!strings.eql(name, item.alias)) { @@ -1466,6 +1469,15 @@ pub fn NewPrinter( p.printSpace(); p.printIdentifier(name); } + } else if (comptime as == .@"export") { + p.printIdentifier(name); + + if (!strings.eql(name, item.alias)) { + p.print(" as "); + p.printClauseAlias(item.alias); + } + } else { + @compileError("Unknown as"); } } @@ -3256,7 +3268,7 @@ pub fn NewPrinter( p.printIndent(); } - p.printClauseItem(item); + p.printExportClauseItem(item); } if (!s.is_single_line) { @@ -3385,7 +3397,7 @@ pub fn NewPrinter( p.printSpace(); } - for (s.items) |*item, i| { + for (s.items) |item, i| { if (i != 0) { p.print(","); if (s.is_single_line) { @@ -3397,13 +3409,7 @@ pub fn NewPrinter( p.printNewline(); p.printIndent(); } - const name = p.renamer.nameForSymbol(item.name.ref.?); - p.printIdentifier(name); - if (!strings.eql(name, item.alias)) { - p.print(" as"); - p.printSpace(); - p.printClauseAlias(item.alias); - } + p.printExportClauseItem(item); } if (!s.is_single_line) { @@ -3785,7 +3791,7 @@ pub fn NewPrinter( if (s.items.len > 0) { p.print(", "); for (s.items) |item, i| { - p.printClauseItemAs(item, true); + p.printClauseItemAs(item, .@"var"); if (i < s.items.len - 1) { p.print(", "); @@ -3794,7 +3800,7 @@ pub fn NewPrinter( } } else { for (s.items) |item, i| { - p.printClauseItemAs(item, true); + p.printClauseItemAs(item, .@"var"); if (i < s.items.len - 1) { p.print(", "); -- cgit v1.2.3