diff options
Diffstat (limited to 'src/bun.js/api/server.zig')
-rw-r--r-- | src/bun.js/api/server.zig | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index d6a9e1c6e..445b94617 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -3480,6 +3480,8 @@ pub const ServerWebSocket = struct { const onMessageHandler = this.handler.onMessage; if (onMessageHandler.isEmptyOrUndefinedOrNull()) return; var globalObject = this.handler.globalObject; + // This is the start of a task. + defer globalObject.bunVM().drainMicrotasks(); const arguments = [_]JSValue{ this.getThisValue(), @@ -3587,8 +3589,11 @@ pub const ServerWebSocket = struct { var handler = this.handler; var cb = handler.onPing; if (cb.isEmptyOrUndefinedOrNull()) return; - var globalThis = handler.globalObject; + + // This is the start of a task. + defer globalThis.bunVM().drainMicrotasks(); + const result = cb.call( globalThis, &[_]JSC.JSValue{ this.this_value, if (this.binary_type == .Buffer) @@ -3625,6 +3630,10 @@ pub const ServerWebSocket = struct { if (cb.isEmptyOrUndefinedOrNull()) return; var globalThis = handler.globalObject; + + // This is the start of a task. + defer globalThis.bunVM().drainMicrotasks(); + const result = cb.call( globalThis, &[_]JSC.JSValue{ this.this_value, if (this.binary_type == .Buffer) |