aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Dylan Conway <dylan.conway567@gmail.com> 2023-07-20 16:37:05 -0700
committerGravatar Dylan Conway <dylan.conway567@gmail.com> 2023-07-20 16:37:05 -0700
commit0d4c7fd06df56030443c4926e6e0142e8c189da5 (patch)
tree4199ff9596d738712d9dfec53a6110413cfbb9f5
parent9ad330d9176604bddb58972e1cedce7a80009ddc (diff)
downloadbun-dylan/resolve-rope-in-string.tar.gz
bun-dylan/resolve-rope-in-string.tar.zst
bun-dylan/resolve-rope-in-string.zip
resolve rope in `string()`dylan/resolve-rope-in-string
-rw-r--r--src/js_ast.zig3
-rw-r--r--src/js_parser.zig3
2 files changed, 3 insertions, 3 deletions
diff --git a/src/js_ast.zig b/src/js_ast.zig
index b83f6c5c2..0019857d5 100644
--- a/src/js_ast.zig
+++ b/src/js_ast.zig
@@ -2327,8 +2327,9 @@ pub const E = struct {
strings.eqlComptimeUTF16(s.slice16()[0..value.len], value);
}
- pub fn string(s: *const String, allocator: std.mem.Allocator) !bun.string {
+ pub fn string(s: *String, allocator: std.mem.Allocator) !bun.string {
if (s.isUTF8()) {
+ s.resolveRopeIfNeeded(allocator);
return s.data;
} else {
return strings.toUTF8Alloc(allocator, s.slice16());
diff --git a/src/js_parser.zig b/src/js_parser.zig
index f5dda75f0..4c4509921 100644
--- a/src/js_parser.zig
+++ b/src/js_parser.zig
@@ -5141,7 +5141,6 @@ fn NewParser_(
return Expr{ .data = nullExprData, .loc = arg.loc };
}
- str.resolveRopeIfNeeded(p.allocator);
const pathname = str.string(p.allocator) catch unreachable;
const path = fs.Path.init(pathname);
@@ -18866,7 +18865,7 @@ fn NewParser_(
p.should_fold_typescript_constant_expressions = true;
for (data.values) |*enum_value| {
// gotta allocate here so it lives after this function stack frame goes poof
- const name = enum_value.name;
+ var name = enum_value.name;
var assign_target: Expr = Expr{ .loc = logger.Loc.Empty, .data = Prefill.Data.EMissing };
var has_string_value = false;