From d7005be768d48f216ecdf0dac76e6909b2fb8e16 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 6 Dec 2023 10:28:27 +0100 Subject: [PATCH] LibJS: Update CyclicModule to match current spec Just some minor comment tweaks and an updated assertion. --- Userland/Libraries/LibJS/CyclicModule.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Userland/Libraries/LibJS/CyclicModule.cpp b/Userland/Libraries/LibJS/CyclicModule.cpp index 56277429b6..247b86f345 100644 --- a/Userland/Libraries/LibJS/CyclicModule.cpp +++ b/Userland/Libraries/LibJS/CyclicModule.cpp @@ -165,13 +165,12 @@ void continue_module_loading(GraphLoadingState& state, ThrowCompletionOr CyclicModule::link(VM& vm) { dbgln_if(JS_MODULE_DEBUG, "[JS MODULE] link[{}]()", this); - // 1. Assert: module.[[Status]] is not linking or evaluating. - VERIFY(m_status != ModuleStatus::Linking); - VERIFY(m_status != ModuleStatus::Evaluating); + // 1. Assert: module.[[Status]] is one of unlinked, linked, evaluating-async, or evaluated. + VERIFY(m_status == ModuleStatus::Unlinked || m_status == ModuleStatus::Linked || m_status == ModuleStatus::EvaluatingAsync || m_status == ModuleStatus::Evaluated); // 2. Let stack be a new empty List. Vector stack; @@ -194,11 +193,11 @@ ThrowCompletionOr CyclicModule::link(VM& vm) // b. Assert: module.[[Status]] is unlinked. VERIFY(m_status == ModuleStatus::Unlinked); - // c. Return result. + // c. Return ? result. return result.release_error(); } - // 5. Assert: module.[[Status]] is linked, evaluating-async, or evaluated. + // 5. Assert: module.[[Status]] is one of linked, evaluating-async, or evaluated. VERIFY(m_status == ModuleStatus::Linked || m_status == ModuleStatus::EvaluatingAsync || m_status == ModuleStatus::Evaluated); // 6. Assert: stack is empty. VERIFY(stack.is_empty());