aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/js_parser.zig5
-rw-r--r--src/js_printer.zig13
2 files changed, 16 insertions, 2 deletions
diff --git a/src/js_parser.zig b/src/js_parser.zig
index f5dda75f0..6390dfdba 100644
--- a/src/js_parser.zig
+++ b/src/js_parser.zig
@@ -213,6 +213,8 @@ fn foldStringAddition(lhs: Expr, rhs: Expr) ?Expr {
rhs_clone.data.e_string,
);
+ orig.prefer_template = orig.prefer_template or rhs_clone.data.e_string.prefer_template;
+
return Expr.init(E.String, orig, lhs.loc);
}
},
@@ -19517,7 +19519,8 @@ fn NewParser_(
.e_number => |k| p.newExpr(E.Number{ .value = k.value }, loc),
.e_string => |k| p.newExpr(E.String{ .data = k.data }, loc),
.e_index => |k| p.newExpr(E.Index{ .target = k.target, .index = k.index }, loc),
- else => unreachable,
+ .e_private_identifier => |k| p.newExpr(E.PrivateIdentifier{ .ref = k.ref }, loc),
+ else => bun.unreachablePanic("Unexpected AST node type {any}", .{prop.key.?}),
};
const descriptor_kind: f64 = if (!prop.flags.contains(.is_method)) 2 else 1;
diff --git a/src/js_printer.zig b/src/js_printer.zig
index 08a1cb5c1..1f920327c 100644
--- a/src/js_printer.zig
+++ b/src/js_printer.zig
@@ -2592,7 +2592,7 @@ fn NewPrinter(
p.addSourceMapping(expr.loc);
// If this was originally a template literal, print it as one as long as we're not minifying
- if (e.prefer_template) {
+ if (e.prefer_template and !p.options.minify_syntax) {
p.print("`");
p.printStringContent(e, '`');
p.print("`");
@@ -3065,6 +3065,17 @@ fn NewPrinter(
while (i < len) {
switch (utf8[i]) {
'\\' => i += 2,
+ '$' => {
+ if (comptime c == '`') {
+ p.print(utf8[0..i]);
+ p.print("\\$");
+ utf8 = utf8[i + 1 ..];
+ len = utf8.len;
+ i = 0;
+ } else {
+ i += 1;
+ }
+ },
c => {
p.print(utf8[0..i]);
p.print("\\" ++ &[_]u8{c});