diff --git a/runtime/ecma_vm.cpp b/runtime/ecma_vm.cpp index fe51b35443311ea983f49609b28289ea92e1ee9e..a71fd7a858b781af34a6b32a59503b9a0727faf5 100644 --- a/runtime/ecma_vm.cpp +++ b/runtime/ecma_vm.cpp @@ -827,6 +827,11 @@ void EcmaVM::ProcessPrograms(const WeakRootVisitor &v0) void EcmaVM::HandleEnqueueReferences() { + // Handle references only in JS thread + if (Thread::GetCurrent() != thread_) { + return; + } + [[maybe_unused]] EcmaHandleScope scope(thread_); for (JSFinalizationRegistry *registry : finalization_registries_) { JSHandle handle(thread_, registry); JSFinalizationRegistry::CallCleanupCallback(thread_, handle);