diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index 64d6ccc0d2..36720bdec1 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -1551,10 +1551,14 @@ JSC_DEFINE_HOST_FUNCTION(functionQueueMicrotask, auto function = globalObject->performMicrotaskFunction(); #if ASSERT_ENABLED ASSERT_WITH_MESSAGE(function, "Invalid microtask function"); - ASSERT_WITH_MESSAGE(asyncContext.isEmpty(), "Invalid microtask context"); - ASSERT_WITH_MESSAGE(callback.isEmpty(), "Invalid microtask callback"); + ASSERT_WITH_MESSAGE(!asyncContext.isEmpty(), "Invalid microtask context"); + ASSERT_WITH_MESSAGE(!callback.isEmpty(), "Invalid microtask callback"); #endif + if (asyncContext.isEmpty()) { + asyncContext = JSC::jsUndefined(); + } + // This is a JSC builtin function lexicalGlobalObject->queueMicrotask(function, callback, asyncContext, JSC::jsUndefined(), JSC::jsUndefined()); diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 4220f04d46..750704fedc 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -3471,9 +3471,9 @@ void JSC__JSPromise__rejectOnNextTickWithHandled(JSC::JSPromise* promise, JSC::J #if ASSERT_ENABLED ASSERT_WITH_MESSAGE(microtaskFunction, "Invalid microtask function"); - ASSERT_WITH_MESSAGE(asyncContext.isEmpty(), "Invalid microtask context"); + ASSERT_WITH_MESSAGE(!asyncContext.isEmpty(), "Invalid microtask context"); ASSERT_WITH_MESSAGE(rejectPromiseFunction, "Invalid microtask callback"); - ASSERT_WITH_MESSAGE(value.isEmpty(), "Invalid microtask value"); + ASSERT_WITH_MESSAGE(!value.isEmpty(), "Invalid microtask value"); #endif if (asyncContext.isEmpty()) {