aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/api/server.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/api/server.zig')
-rw-r--r--src/bun.js/api/server.zig11
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)