aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-12-16 00:47:24 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-12-16 00:47:24 -0800
commita772b56cb6b9edba0d0ef7abc2b73a595d7368b2 (patch)
tree0e5618af7c3bd1f1ae6a5ab33f51b6a66b8adc47
parentbd6b9a58d397ca939bb7d6215708171f90fb1623 (diff)
downloadbun-a772b56cb6b9edba0d0ef7abc2b73a595d7368b2.tar.gz
bun-a772b56cb6b9edba0d0ef7abc2b73a595d7368b2.tar.zst
bun-a772b56cb6b9edba0d0ef7abc2b73a595d7368b2.zip
[http] Ensure errors from macros can see source code
-rw-r--r--src/http.zig20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/http.zig b/src/http.zig
index 1871cc1e2..e34790377 100644
--- a/src/http.zig
+++ b/src/http.zig
@@ -2121,7 +2121,25 @@ pub const RequestContext = struct {
id = id[0..colon];
}
- const blob = (JavaScriptHandler.javascript_vm orelse return try ctx.sendNotFound()).blobs.get(id) orelse return try ctx.sendNotFound();
+ const Blob = @import("./blob.zig");
+
+ const blob: Blob = brk: {
+ // It could be a blob either for macros or for JS thread
+ if (JavaScriptHandler.javascript_vm) |vm| {
+ if (vm.blobs.get(id)) |blob| {
+ break :brk blob;
+ }
+ }
+
+ if (JavaScript.VirtualMachine.vm_loaded) {
+ if (JavaScript.VirtualMachine.vm.blobs.get(id)) |blob| {
+ break :brk blob;
+ }
+ }
+
+ return try ctx.sendNotFound();
+ };
+
if (blob.len == 0) {
try ctx.sendNoContent();
return;