aboutsummaryrefslogtreecommitdiff
path: root/src/js_ast.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-05-17 18:51:50 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-05-17 18:51:50 -0700
commit25447426f19702a0fff808b3d426d66f4d8e558d (patch)
treeaa98cd928a6ee0db015b98bee9041cbf4575167d /src/js_ast.zig
parent67f543daa79c142cf6ea1451fa0c5d691b468c40 (diff)
downloadbun-25447426f19702a0fff808b3d426d66f4d8e558d.tar.gz
bun-25447426f19702a0fff808b3d426d66f4d8e558d.tar.zst
bun-25447426f19702a0fff808b3d426d66f4d8e558d.zip
Make `BuildError` and `ResolveError` use C++ instead of JSC C API
Fixes memory leak with private data never being cleared Fixes a case where a ResolveError could actually be a BuildError
Diffstat (limited to 'src/js_ast.zig')
-rw-r--r--src/js_ast.zig7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/js_ast.zig b/src/js_ast.zig
index cdf7a3ad9..fdd220926 100644
--- a/src/js_ast.zig
+++ b/src/js_ast.zig
@@ -9693,6 +9693,9 @@ pub const Macro = struct {
} else if (value.as(JSC.WebCore.Blob)) |resp| {
blob_ = resp.*;
blob_.?.allocator = null;
+ } else if (value.as(JSC.ResolveMessage) != null or value.as(JSC.BuildMessage) != null) {
+ this.macro.vm.runErrorHandler(value, null);
+ return error.MacroFailed;
}
} else {
var private_data = JSCBase.JSPrivateDataPtr.from(JSC.C.JSObjectGetPrivate(value.asObjectRef()).?);
@@ -9705,10 +9708,6 @@ pub const Macro = struct {
node.updateSymbolsMap(Visitor, this.visitor);
return _entry.value_ptr.*;
},
- .ResolveMessage, .BuildMessage => {
- this.macro.vm.runErrorHandler(value, null);
- return error.MacroFailed;
- },
else => {},
}