mirror of
https://github.com/RGBCube/serenity
synced 2025-05-24 21:55:07 +00:00
LibJS: Split big VERIFY conditions into smaller ones in CyclicModule
This makes assertion failures here more informative.
This commit is contained in:
parent
b08683e588
commit
467a5ceb18
2 changed files with 8 additions and 3 deletions
|
@ -170,7 +170,8 @@ ThrowCompletionOr<void> 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 && m_status != ModuleStatus::Evaluating);
|
||||
VERIFY(m_status != ModuleStatus::Linking);
|
||||
VERIFY(m_status != ModuleStatus::Evaluating);
|
||||
// 2. Let stack be a new empty List.
|
||||
Vector<Module*> stack;
|
||||
|
||||
|
@ -387,7 +388,8 @@ ThrowCompletionOr<Promise*> CyclicModule::evaluate(VM& vm)
|
|||
VERIFY(m_status == ModuleStatus::Evaluated);
|
||||
|
||||
// c. Assert: module.[[EvaluationError]] is result.
|
||||
VERIFY(m_evaluation_error.is_error() && same_value(*m_evaluation_error.throw_completion().value(), *result.throw_completion().value()));
|
||||
VERIFY(m_evaluation_error.is_error());
|
||||
VERIFY(same_value(*m_evaluation_error.throw_completion().value(), *result.throw_completion().value()));
|
||||
|
||||
// d. Perform ! Call(capability.[[Reject]], undefined, « result.[[Value]] »).
|
||||
MUST(call(vm, *m_top_level_capability->reject(), js_undefined(), *result.throw_completion().value()));
|
||||
|
|
|
@ -676,7 +676,10 @@ ThrowCompletionOr<void> SourceTextModule::execute_module(VM& vm, GCPtr<PromiseCa
|
|||
module_context->script_or_module = NonnullGCPtr<Module>(*this);
|
||||
|
||||
// 5. Assert: module has been linked and declarations in its module environment have been instantiated.
|
||||
VERIFY(m_status != ModuleStatus::Unlinked && m_status != ModuleStatus::Linking && environment());
|
||||
VERIFY(m_status != ModuleStatus::New);
|
||||
VERIFY(m_status != ModuleStatus::Unlinked);
|
||||
VERIFY(m_status != ModuleStatus::Linking);
|
||||
VERIFY(environment());
|
||||
|
||||
// 6. Set the VariableEnvironment of moduleContext to module.[[Environment]].
|
||||
module_context->variable_environment = environment();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue