diff options
author | 2023-05-17 18:51:50 -0700 | |
---|---|---|
committer | 2023-05-17 18:51:50 -0700 | |
commit | 25447426f19702a0fff808b3d426d66f4d8e558d (patch) | |
tree | aa98cd928a6ee0db015b98bee9041cbf4575167d /src/js_ast.zig | |
parent | 67f543daa79c142cf6ea1451fa0c5d691b468c40 (diff) | |
download | bun-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.zig | 7 |
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 => {}, } |