From a13e64c28645f0a1dcd36bd986fc57cf2d91ef7e Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 7 Dec 2022 00:37:21 -0800 Subject: Update html_rewriter.zig --- src/bun.js/api/html_rewriter.zig | 41 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index b3256c9af..8828ea8ff 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -820,6 +820,8 @@ fn HandlerCallback( JSC.markBinding(@src()); var zig_element = bun.default_allocator.create(ZigType) catch unreachable; @field(zig_element, field_name) = value; + defer @field(zig_element, field_name) = null; + // At the end of this scope, the value is no longer valid var args = [1]JSC.C.JSObjectRef{ ZigType.Class.make(this.global, zig_element), @@ -834,33 +836,28 @@ fn HandlerCallback( 1, &args, ); - var promise_: ?*JSC.JSInternalPromise = null; - while (!result.isUndefinedOrNull()) { + + if (!result.isUndefinedOrNull()) { if (result.isError() or result.isAggregateError(this.global)) { - @field(zig_element, field_name) = null; return true; } - var promise = promise_ orelse JSC.JSInternalPromise.resolvedPromise(this.global, result); - promise_ = promise; - JavaScript.VirtualMachine.vm.event_loop.waitForPromise(promise); - - switch (promise.status(this.global.vm())) { - JSC.JSPromise.Status.Pending => unreachable, - JSC.JSPromise.Status.Rejected => { - JavaScript.VirtualMachine.vm.onUnhandledError(this.global, promise.result(this.global.vm())); - @field(zig_element, field_name) = null; - return false; - }, - JSC.JSPromise.Status.Fulfilled => { - result = promise.result(this.global.vm()); - break; - }, + if (result.asPromise()) |promise| { + this.global.bunVM().waitForPromise(promise); + const fail = promise.status(this.global.vm()) == .Rejected; + if (fail) { + this.global.bunVM().runErrorHandler(promise.result(this.global.vm()), null); + } + return fail; + } else if (result.asInternalPromise()) |promise| { + this.global.bunVM().waitForPromise(promise); + const fail = promise.status(this.global.vm()) == .Rejected; + if (fail) { + this.global.bunVM().runErrorHandler(promise.result(this.global.vm()), null); + } + return fail; } - - break; } - @field(zig_element, field_name) = null; return false; } }.callback; @@ -976,7 +973,7 @@ pub const ContentOptions = struct { const getterWrap = JSC.getterWrap; const setterWrap = JSC.setterWrap; -const wrap = JSC.wrapAsync; +const wrap = JSC.wrapSync; pub fn free_html_writer_string(_: ?*anyopaque, ptr: ?*anyopaque, len: usize) callconv(.C) void { var str = LOLHTML.HTMLString{ .ptr = bun.cast([*]const u8, ptr.?), .len = len }; -- cgit v1.2.3 ests Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/src/install/npm.zig (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-12-04Mildly faster startup timeGravatar Jarred Sumner 11-52/+63
2022-12-04:scissors:Gravatar Jarred Sumner 3-3/+3
2022-12-04Add some basic tests for process.stdoutGravatar Jarred Sumner 9-58/+124
2022-12-04Re-add missing globalGravatar Jarred Sumner 1-0/+1
2022-12-04Silence incorrect test failureGravatar Jarred Sumner 1-0/+1
2022-12-04content-range is inclusiveGravatar Jarred Sumner 1-1/+1
2022-12-04Update README.mdGravatar Jarred Sumner 1-6/+33
2022-12-04[Bun.serve] Implement `Content-Range` support with `Bun.file()`Gravatar Jarred Sumner 5-16/+286
2022-12-04[may revert later] Coerce Infinity to max int 64, -Infinity & NaN to min int64Gravatar Jarred Sumner 1-2/+22
2022-12-03Update .gitignoreGravatar Jarred Sumner 1-0/+1
2022-12-03[test] Add a couple tests for subarray toEqualGravatar Jarred Sumner 1-0/+3
2022-12-03[fetch] Fix bug where .arrayBuffer() on an empty Response body returned a `Ui...Gravatar Jarred Sumner 1-1/+1
2022-12-03Don't invalidate previous file descriptro to avoid tripping assertionGravatar Jarred Sumner 1-5/+0
2022-12-03miscGravatar Jarred Sumner 3-1/+31
2022-12-03Add missing typeGravatar Jarred Sumner 1-0/+5
2022-12-03`process.stdout` and `process.stderr`Gravatar Jarred Sumner 15-564/+1537
2022-12-03simdutf ascii validation is about 20% faster on arm64 than our zig simd @Vect...Gravatar Jarred Sumner 1-0/+3
2022-12-03typo in readme (#1576)Gravatar Reed Jones 1-2/+2