From 6ce67a289fd8cc13e84f7e838e1deebb71a87df7 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Tue, 13 Aug 2024 14:01:52 -0700 Subject: [PATCH] Clear pending exceptions before reloading module --- src/bun.js/bindings/bindings.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index b199d55edc..38f1cd529e 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -3085,6 +3085,19 @@ JSC__JSModuleLoader__loadAndEvaluateModule(JSC__JSGlobalObject* globalObject, { auto& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); + + // Clear any pending exceptions + // + // Relevant for: + // + // - bun --hot + // - bun test (when loading the next module) + // + if (UNLIKELY(scope.exception())) { + scope.clearException(); + vm.clearLastException(); + } + auto name = makeAtomString(arg1->toWTFString()); auto* promise = JSC::loadAndEvaluateModule(globalObject, name, JSC::jsUndefined(), JSC::jsUndefined());