Commit 26285e2f authored by Camillo Bruni's avatar Camillo Bruni Committed by V8 LUCI CQ

[modules] Update Module::Status enum to match spec

Change-Id: Ia324f486f138757017951c0d2b83502937b950d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3075362
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76158}
parent d3d10bc2
...@@ -2105,14 +2105,15 @@ Local<FixedArray> ModuleRequest::GetImportAssertions() const { ...@@ -2105,14 +2105,15 @@ Local<FixedArray> ModuleRequest::GetImportAssertions() const {
Module::Status Module::GetStatus() const { Module::Status Module::GetStatus() const {
i::Handle<i::Module> self = Utils::OpenHandle(this); i::Handle<i::Module> self = Utils::OpenHandle(this);
switch (self->status()) { switch (self->status()) {
case i::Module::kUninstantiated: case i::Module::kUnlinked:
case i::Module::kPreInstantiating: case i::Module::kPreLinking:
return kUninstantiated; return kUninstantiated;
case i::Module::kInstantiating: case i::Module::kLinking:
return kInstantiating; return kInstantiating;
case i::Module::kInstantiated: case i::Module::kLinked:
return kInstantiated; return kInstantiated;
case i::Module::kEvaluating: case i::Module::kEvaluating:
case i::Module::kEvaluatingAsync:
return kEvaluating; return kEvaluating;
case i::Module::kEvaluated: case i::Module::kEvaluated:
return kEvaluated; return kEvaluated;
...@@ -2298,8 +2299,8 @@ MaybeLocal<Value> Module::Evaluate(Local<Context> context) { ...@@ -2298,8 +2299,8 @@ MaybeLocal<Value> Module::Evaluate(Local<Context> context) {
i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate); i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate);
i::Handle<i::Module> self = Utils::OpenHandle(this); i::Handle<i::Module> self = Utils::OpenHandle(this);
Utils::ApiCheck(self->status() >= i::Module::kInstantiated, Utils::ApiCheck(self->status() >= i::Module::kLinked, "Module::Evaluate",
"Module::Evaluate", "Expected instantiated module"); "Expected instantiated module");
Local<Value> result; Local<Value> result;
has_pending_exception = !ToLocal(i::Module::Evaluate(isolate, self), &result); has_pending_exception = !ToLocal(i::Module::Evaluate(isolate, self), &result);
......
...@@ -1507,7 +1507,7 @@ void Module::ModuleVerify(Isolate* isolate) { ...@@ -1507,7 +1507,7 @@ void Module::ModuleVerify(Isolate* isolate) {
CHECK(module_namespace().IsUndefined(isolate) || CHECK(module_namespace().IsUndefined(isolate) ||
module_namespace().IsJSModuleNamespace()); module_namespace().IsJSModuleNamespace());
if (module_namespace().IsJSModuleNamespace()) { if (module_namespace().IsJSModuleNamespace()) {
CHECK_LE(Module::kInstantiating, status()); CHECK_LE(Module::kLinking, status());
CHECK_EQ(JSModuleNamespace::cast(module_namespace()).module(), *this); CHECK_EQ(JSModuleNamespace::cast(module_namespace()).module(), *this);
} }
...@@ -1540,13 +1540,13 @@ void SourceTextModule::SourceTextModuleVerify(Isolate* isolate) { ...@@ -1540,13 +1540,13 @@ void SourceTextModule::SourceTextModuleVerify(Isolate* isolate) {
} else if (status() == kEvaluating || status() == kEvaluated) { } else if (status() == kEvaluating || status() == kEvaluated) {
CHECK(code().IsJSGeneratorObject()); CHECK(code().IsJSGeneratorObject());
} else { } else {
if (status() == kInstantiated) { if (status() == kLinked) {
CHECK(code().IsJSGeneratorObject()); CHECK(code().IsJSGeneratorObject());
} else if (status() == kInstantiating) { } else if (status() == kLinking) {
CHECK(code().IsJSFunction()); CHECK(code().IsJSFunction());
} else if (status() == kPreInstantiating) { } else if (status() == kPreLinking) {
CHECK(code().IsSharedFunctionInfo()); CHECK(code().IsSharedFunctionInfo());
} else if (status() == kUninstantiated) { } else if (status() == kUnlinked) {
CHECK(code().IsSharedFunctionInfo()); CHECK(code().IsSharedFunctionInfo());
} }
CHECK(!AsyncParentModuleCount()); CHECK(!AsyncParentModuleCount());
......
...@@ -2655,7 +2655,7 @@ Handle<SourceTextModule> Factory::NewSourceTextModule( ...@@ -2655,7 +2655,7 @@ Handle<SourceTextModule> Factory::NewSourceTextModule(
module.set_hash(isolate()->GenerateIdentityHash(Smi::kMaxValue)); module.set_hash(isolate()->GenerateIdentityHash(Smi::kMaxValue));
module.set_module_namespace(roots.undefined_value(), SKIP_WRITE_BARRIER); module.set_module_namespace(roots.undefined_value(), SKIP_WRITE_BARRIER);
module.set_requested_modules(*requested_modules); module.set_requested_modules(*requested_modules);
module.set_status(Module::kUninstantiated); module.set_status(Module::kUnlinked);
module.set_exception(roots.the_hole_value(), SKIP_WRITE_BARRIER); module.set_exception(roots.the_hole_value(), SKIP_WRITE_BARRIER);
module.set_top_level_capability(roots.undefined_value(), SKIP_WRITE_BARRIER); module.set_top_level_capability(roots.undefined_value(), SKIP_WRITE_BARRIER);
module.set_import_meta(roots.the_hole_value(), kReleaseStore, module.set_import_meta(roots.the_hole_value(), kReleaseStore,
...@@ -2686,7 +2686,7 @@ Handle<SyntheticModule> Factory::NewSyntheticModule( ...@@ -2686,7 +2686,7 @@ Handle<SyntheticModule> Factory::NewSyntheticModule(
DisallowGarbageCollection no_gc; DisallowGarbageCollection no_gc;
module.set_hash(isolate()->GenerateIdentityHash(Smi::kMaxValue)); module.set_hash(isolate()->GenerateIdentityHash(Smi::kMaxValue));
module.set_module_namespace(roots.undefined_value(), SKIP_WRITE_BARRIER); module.set_module_namespace(roots.undefined_value(), SKIP_WRITE_BARRIER);
module.set_status(Module::kUninstantiated); module.set_status(Module::kUnlinked);
module.set_exception(roots.the_hole_value(), SKIP_WRITE_BARRIER); module.set_exception(roots.the_hole_value(), SKIP_WRITE_BARRIER);
module.set_top_level_capability(roots.undefined_value(), SKIP_WRITE_BARRIER); module.set_top_level_capability(roots.undefined_value(), SKIP_WRITE_BARRIER);
module.set_name(*module_name); module.set_name(*module_name);
......
...@@ -103,8 +103,7 @@ void Module::RecordError(Isolate* isolate, Handle<Module> module, ...@@ -103,8 +103,7 @@ void Module::RecordError(Isolate* isolate, Handle<Module> module,
void Module::ResetGraph(Isolate* isolate, Handle<Module> module) { void Module::ResetGraph(Isolate* isolate, Handle<Module> module) {
DCHECK_NE(module->status(), kEvaluating); DCHECK_NE(module->status(), kEvaluating);
if (module->status() != kPreInstantiating && if (module->status() != kPreLinking && module->status() != kLinking) {
module->status() != kInstantiating) {
return; return;
} }
...@@ -130,8 +129,7 @@ void Module::ResetGraph(Isolate* isolate, Handle<Module> module) { ...@@ -130,8 +129,7 @@ void Module::ResetGraph(Isolate* isolate, Handle<Module> module) {
} }
void Module::Reset(Isolate* isolate, Handle<Module> module) { void Module::Reset(Isolate* isolate, Handle<Module> module) {
DCHECK(module->status() == kPreInstantiating || DCHECK(module->status() == kPreLinking || module->status() == kLinking);
module->status() == kInstantiating);
DCHECK(module->exception().IsTheHole(isolate)); DCHECK(module->exception().IsTheHole(isolate));
// The namespace object cannot exist, because it would have been created // The namespace object cannot exist, because it would have been created
// by RunInitializationCode, which is called only after this module's SCC // by RunInitializationCode, which is called only after this module's SCC
...@@ -148,7 +146,7 @@ void Module::Reset(Isolate* isolate, Handle<Module> module) { ...@@ -148,7 +146,7 @@ void Module::Reset(Isolate* isolate, Handle<Module> module) {
} }
module->set_exports(*exports); module->set_exports(*exports);
SetStatusInternal(*module, kUninstantiated); SetStatusInternal(*module, kUnlinked);
} }
Object Module::GetException() { Object Module::GetException() {
...@@ -163,7 +161,7 @@ MaybeHandle<Cell> Module::ResolveExport(Isolate* isolate, Handle<Module> module, ...@@ -163,7 +161,7 @@ MaybeHandle<Cell> Module::ResolveExport(Isolate* isolate, Handle<Module> module,
Handle<String> export_name, Handle<String> export_name,
MessageLocation loc, bool must_resolve, MessageLocation loc, bool must_resolve,
Module::ResolveSet* resolve_set) { Module::ResolveSet* resolve_set) {
DCHECK_GE(module->status(), kPreInstantiating); DCHECK_GE(module->status(), kPreLinking);
DCHECK_NE(module->status(), kEvaluating); DCHECK_NE(module->status(), kEvaluating);
if (module->IsSourceTextModule()) { if (module->IsSourceTextModule()) {
...@@ -188,7 +186,7 @@ bool Module::Instantiate( ...@@ -188,7 +186,7 @@ bool Module::Instantiate(
if (!PrepareInstantiate(isolate, module, context, callback, if (!PrepareInstantiate(isolate, module, context, callback,
callback_without_import_assertions)) { callback_without_import_assertions)) {
ResetGraph(isolate, module); ResetGraph(isolate, module);
DCHECK_EQ(module->status(), kUninstantiated); DCHECK_EQ(module->status(), kUnlinked);
return false; return false;
} }
Zone zone(isolate->allocator(), ZONE_NAME); Zone zone(isolate->allocator(), ZONE_NAME);
...@@ -196,10 +194,10 @@ bool Module::Instantiate( ...@@ -196,10 +194,10 @@ bool Module::Instantiate(
unsigned dfs_index = 0; unsigned dfs_index = 0;
if (!FinishInstantiate(isolate, module, &stack, &dfs_index, &zone)) { if (!FinishInstantiate(isolate, module, &stack, &dfs_index, &zone)) {
ResetGraph(isolate, module); ResetGraph(isolate, module);
DCHECK_EQ(module->status(), kUninstantiated); DCHECK_EQ(module->status(), kUnlinked);
return false; return false;
} }
DCHECK(module->status() == kInstantiated || module->status() == kEvaluated || DCHECK(module->status() == kLinked || module->status() == kEvaluated ||
module->status() == kErrored); module->status() == kErrored);
DCHECK(stack.empty()); DCHECK(stack.empty());
return true; return true;
...@@ -210,9 +208,9 @@ bool Module::PrepareInstantiate( ...@@ -210,9 +208,9 @@ bool Module::PrepareInstantiate(
v8::Module::ResolveModuleCallback callback, v8::Module::ResolveModuleCallback callback,
DeprecatedResolveCallback callback_without_import_assertions) { DeprecatedResolveCallback callback_without_import_assertions) {
DCHECK_NE(module->status(), kEvaluating); DCHECK_NE(module->status(), kEvaluating);
DCHECK_NE(module->status(), kInstantiating); DCHECK_NE(module->status(), kLinking);
if (module->status() >= kPreInstantiating) return true; if (module->status() >= kPreLinking) return true;
module->SetStatus(kPreInstantiating); module->SetStatus(kPreLinking);
STACK_CHECK(isolate, false); STACK_CHECK(isolate, false);
if (module->IsSourceTextModule()) { if (module->IsSourceTextModule()) {
...@@ -229,8 +227,8 @@ bool Module::FinishInstantiate(Isolate* isolate, Handle<Module> module, ...@@ -229,8 +227,8 @@ bool Module::FinishInstantiate(Isolate* isolate, Handle<Module> module,
ZoneForwardList<Handle<SourceTextModule>>* stack, ZoneForwardList<Handle<SourceTextModule>>* stack,
unsigned* dfs_index, Zone* zone) { unsigned* dfs_index, Zone* zone) {
DCHECK_NE(module->status(), kEvaluating); DCHECK_NE(module->status(), kEvaluating);
if (module->status() >= kInstantiating) return true; if (module->status() >= kLinking) return true;
DCHECK_EQ(module->status(), kPreInstantiating); DCHECK_EQ(module->status(), kPreLinking);
STACK_CHECK(isolate, false); STACK_CHECK(isolate, false);
if (module->IsSourceTextModule()) { if (module->IsSourceTextModule()) {
...@@ -276,7 +274,7 @@ MaybeHandle<Object> Module::EvaluateMaybeAsync(Isolate* isolate, ...@@ -276,7 +274,7 @@ MaybeHandle<Object> Module::EvaluateMaybeAsync(Isolate* isolate,
// Start of Evaluate () Concrete Method // Start of Evaluate () Concrete Method
// 2. Assert: module.[[Status]] is "linked" or "evaluated". // 2. Assert: module.[[Status]] is "linked" or "evaluated".
CHECK(module->status() == kInstantiated || module->status() == kEvaluated); CHECK(module->status() == kLinked || module->status() == kEvaluated);
// 3. If module.[[Status]] is "evaluated", set module to // 3. If module.[[Status]] is "evaluated", set module to
// module.[[CycleRoot]]. // module.[[CycleRoot]].
...@@ -316,7 +314,7 @@ MaybeHandle<Object> Module::InnerEvaluate(Isolate* isolate, ...@@ -316,7 +314,7 @@ MaybeHandle<Object> Module::InnerEvaluate(Isolate* isolate,
// //
// However, SyntheticModules transition directly to 'Evaluated,' so we should // However, SyntheticModules transition directly to 'Evaluated,' so we should
// never see an 'Evaluating' module at this point. // never see an 'Evaluating' module at this point.
CHECK_EQ(module->status(), kInstantiated); CHECK_EQ(module->status(), kLinked);
if (module->IsSourceTextModule()) { if (module->IsSourceTextModule()) {
return SourceTextModule::Evaluate(isolate, return SourceTextModule::Evaluate(isolate,
...@@ -446,7 +444,7 @@ bool Module::IsGraphAsync(Isolate* isolate) const { ...@@ -446,7 +444,7 @@ bool Module::IsGraphAsync(Isolate* isolate) const {
do { do {
SourceTextModule current = worklist.back(); SourceTextModule current = worklist.back();
worklist.pop_back(); worklist.pop_back();
DCHECK_GE(current.status(), kInstantiated); DCHECK_GE(current.status(), kLinked);
if (current.async()) return true; if (current.async()) return true;
FixedArray requested_modules = current.requested_modules(); FixedArray requested_modules = current.requested_modules();
......
...@@ -40,11 +40,12 @@ class Module : public TorqueGeneratedModule<Module, HeapObject> { ...@@ -40,11 +40,12 @@ class Module : public TorqueGeneratedModule<Module, HeapObject> {
enum Status { enum Status {
// Order matters! // Order matters!
kUninstantiated, kUnlinked,
kPreInstantiating, kPreLinking,
kInstantiating, kLinking,
kInstantiated, kLinked,
kEvaluating, kEvaluating,
kEvaluatingAsync,
kEvaluated, kEvaluated,
kErrored kErrored
}; };
...@@ -121,7 +122,7 @@ class Module : public TorqueGeneratedModule<Module, HeapObject> { ...@@ -121,7 +122,7 @@ class Module : public TorqueGeneratedModule<Module, HeapObject> {
static V8_WARN_UNUSED_RESULT MaybeHandle<Object> InnerEvaluate( static V8_WARN_UNUSED_RESULT MaybeHandle<Object> InnerEvaluate(
Isolate* isolate, Handle<Module> module); Isolate* isolate, Handle<Module> module);
// Set module's status back to kUninstantiated and reset other internal state. // Set module's status back to kUnlinked and reset other internal state.
// This is used when instantiation fails. // This is used when instantiation fails.
static void Reset(Isolate* isolate, Handle<Module> module); static void Reset(Isolate* isolate, Handle<Module> module);
static void ResetGraph(Isolate* isolate, Handle<Module> module); static void ResetGraph(Isolate* isolate, Handle<Module> module);
......
...@@ -89,13 +89,14 @@ struct SourceTextModule::AsyncEvaluatingOrdinalCompare { ...@@ -89,13 +89,14 @@ struct SourceTextModule::AsyncEvaluatingOrdinalCompare {
SharedFunctionInfo SourceTextModule::GetSharedFunctionInfo() const { SharedFunctionInfo SourceTextModule::GetSharedFunctionInfo() const {
DisallowGarbageCollection no_gc; DisallowGarbageCollection no_gc;
switch (status()) { switch (status()) {
case kUninstantiated: case kUnlinked:
case kPreInstantiating: case kPreLinking:
return SharedFunctionInfo::cast(code()); return SharedFunctionInfo::cast(code());
case kInstantiating: case kLinking:
return JSFunction::cast(code()).shared(); return JSFunction::cast(code()).shared();
case kInstantiated: case kLinked:
case kEvaluating: case kEvaluating:
case kEvaluatingAsync:
case kEvaluated: case kEvaluated:
return JSGeneratorObject::cast(code()).function().shared(); return JSGeneratorObject::cast(code()).function().shared();
case kErrored: case kErrored:
...@@ -390,13 +391,13 @@ bool SourceTextModule::PrepareInstantiate( ...@@ -390,13 +391,13 @@ bool SourceTextModule::PrepareInstantiate(
entry); entry);
} }
DCHECK_EQ(module->status(), kPreInstantiating); DCHECK_EQ(module->status(), kPreLinking);
return true; return true;
} }
bool SourceTextModule::RunInitializationCode(Isolate* isolate, bool SourceTextModule::RunInitializationCode(Isolate* isolate,
Handle<SourceTextModule> module) { Handle<SourceTextModule> module) {
DCHECK_EQ(module->status(), kInstantiating); DCHECK_EQ(module->status(), kLinking);
Handle<JSFunction> function(JSFunction::cast(module->code()), isolate); Handle<JSFunction> function(JSFunction::cast(module->code()), isolate);
DCHECK_EQ(MODULE_SCOPE, function->shared().scope_info().scope_type()); DCHECK_EQ(MODULE_SCOPE, function->shared().scope_info().scope_type());
Handle<Object> receiver = isolate->factory()->undefined_value(); Handle<Object> receiver = isolate->factory()->undefined_value();
...@@ -421,7 +422,7 @@ bool SourceTextModule::RunInitializationCode(Isolate* isolate, ...@@ -421,7 +422,7 @@ bool SourceTextModule::RunInitializationCode(Isolate* isolate,
bool SourceTextModule::MaybeTransitionComponent( bool SourceTextModule::MaybeTransitionComponent(
Isolate* isolate, Handle<SourceTextModule> module, Isolate* isolate, Handle<SourceTextModule> module,
ZoneForwardList<Handle<SourceTextModule>>* stack, Status new_status) { ZoneForwardList<Handle<SourceTextModule>>* stack, Status new_status) {
DCHECK(new_status == kInstantiated || new_status == kEvaluated); DCHECK(new_status == kLinked || new_status == kEvaluated);
SLOW_DCHECK( SLOW_DCHECK(
// {module} is on the {stack}. // {module} is on the {stack}.
std::count_if(stack->begin(), stack->end(), std::count_if(stack->begin(), stack->end(),
...@@ -435,8 +436,8 @@ bool SourceTextModule::MaybeTransitionComponent( ...@@ -435,8 +436,8 @@ bool SourceTextModule::MaybeTransitionComponent(
ancestor = stack->front(); ancestor = stack->front();
stack->pop_front(); stack->pop_front();
DCHECK_EQ(ancestor->status(), DCHECK_EQ(ancestor->status(),
new_status == kInstantiated ? kInstantiating : kEvaluating); new_status == kLinked ? kLinking : kEvaluating);
if (new_status == kInstantiated) { if (new_status == kLinked) {
if (!SourceTextModule::RunInitializationCode(isolate, ancestor)) if (!SourceTextModule::RunInitializationCode(isolate, ancestor))
return false; return false;
} else if (new_status == kEvaluated) { } else if (new_status == kEvaluated) {
...@@ -461,7 +462,7 @@ bool SourceTextModule::FinishInstantiate( ...@@ -461,7 +462,7 @@ bool SourceTextModule::FinishInstantiate(
Factory::JSFunctionBuilder{isolate, shared, isolate->native_context()} Factory::JSFunctionBuilder{isolate, shared, isolate->native_context()}
.Build(); .Build();
module->set_code(*function); module->set_code(*function);
module->SetStatus(kInstantiating); module->SetStatus(kLinking);
module->set_dfs_index(*dfs_index); module->set_dfs_index(*dfs_index);
module->set_dfs_ancestor_index(*dfs_index); module->set_dfs_ancestor_index(*dfs_index);
stack->push_front(module); stack->push_front(module);
...@@ -478,16 +479,16 @@ bool SourceTextModule::FinishInstantiate( ...@@ -478,16 +479,16 @@ bool SourceTextModule::FinishInstantiate(
} }
DCHECK_NE(requested_module->status(), kEvaluating); DCHECK_NE(requested_module->status(), kEvaluating);
DCHECK_GE(requested_module->status(), kInstantiating); DCHECK_GE(requested_module->status(), kLinking);
SLOW_DCHECK( SLOW_DCHECK(
// {requested_module} is instantiating iff it's on the {stack}. // {requested_module} is instantiating iff it's on the {stack}.
(requested_module->status() == kInstantiating) == (requested_module->status() == kLinking) ==
std::count_if(stack->begin(), stack->end(), [&](Handle<Module> m) { std::count_if(stack->begin(), stack->end(), [&](Handle<Module> m) {
return *m == *requested_module; return *m == *requested_module;
})); }));
if (requested_module->status() == kInstantiating) { if (requested_module->status() == kLinking) {
// SyntheticModules go straight to kInstantiated so this must be a // SyntheticModules go straight to kLinked so this must be a
// SourceTextModule // SourceTextModule
module->set_dfs_ancestor_index(std::min( module->set_dfs_ancestor_index(std::min(
module->dfs_ancestor_index(), module->dfs_ancestor_index(),
...@@ -531,14 +532,14 @@ bool SourceTextModule::FinishInstantiate( ...@@ -531,14 +532,14 @@ bool SourceTextModule::FinishInstantiate(
} }
} }
return MaybeTransitionComponent(isolate, module, stack, kInstantiated); return MaybeTransitionComponent(isolate, module, stack, kLinked);
} }
void SourceTextModule::FetchStarExports(Isolate* isolate, void SourceTextModule::FetchStarExports(Isolate* isolate,
Handle<SourceTextModule> module, Handle<SourceTextModule> module,
Zone* zone, Zone* zone,
UnorderedModuleSet* visited) { UnorderedModuleSet* visited) {
DCHECK_GE(module->status(), Module::kInstantiating); DCHECK_GE(module->status(), Module::kLinking);
if (module->module_namespace().IsJSModuleNamespace()) return; // Shortcut. if (module->module_namespace().IsJSModuleNamespace()) return; // Shortcut.
...@@ -729,7 +730,7 @@ MaybeHandle<Object> SourceTextModule::EvaluateMaybeAsync( ...@@ -729,7 +730,7 @@ MaybeHandle<Object> SourceTextModule::EvaluateMaybeAsync(
MaybeHandle<Object> SourceTextModule::Evaluate( MaybeHandle<Object> SourceTextModule::Evaluate(
Isolate* isolate, Handle<SourceTextModule> module) { Isolate* isolate, Handle<SourceTextModule> module) {
// Evaluate () Concrete Method continued from EvaluateMaybeAsync. // Evaluate () Concrete Method continued from EvaluateMaybeAsync.
CHECK(module->status() == kInstantiated || module->status() == kEvaluated); CHECK(module->status() == kLinked || module->status() == kEvaluated);
// 5. Let stack be a new empty List. // 5. Let stack be a new empty List.
Zone zone(isolate->allocator(), ZONE_NAME); Zone zone(isolate->allocator(), ZONE_NAME);
...@@ -1040,7 +1041,7 @@ MaybeHandle<Object> SourceTextModule::InnerModuleEvaluation( ...@@ -1040,7 +1041,7 @@ MaybeHandle<Object> SourceTextModule::InnerModuleEvaluation(
} }
// 4. Assert: module.[[Status]] is "linked". // 4. Assert: module.[[Status]] is "linked".
CHECK_EQ(module->status(), kInstantiated); CHECK_EQ(module->status(), kLinked);
// 5. Set module.[[Status]] to "evaluating". // 5. Set module.[[Status]] to "evaluating".
module->SetStatus(kEvaluating); module->SetStatus(kEvaluating);
...@@ -1189,7 +1190,7 @@ void SourceTextModule::Reset(Isolate* isolate, ...@@ -1189,7 +1190,7 @@ void SourceTextModule::Reset(Isolate* isolate,
Handle<FixedArray> requested_modules = Handle<FixedArray> requested_modules =
factory->NewFixedArray(module->requested_modules().length()); factory->NewFixedArray(module->requested_modules().length());
if (module->status() == kInstantiating) { if (module->status() == kLinking) {
module->set_code(JSFunction::cast(module->code()).shared()); module->set_code(JSFunction::cast(module->code()).shared());
} }
module->set_regular_exports(*regular_exports); module->set_regular_exports(*regular_exports);
......
...@@ -92,7 +92,7 @@ bool SyntheticModule::PrepareInstantiate(Isolate* isolate, ...@@ -92,7 +92,7 @@ bool SyntheticModule::PrepareInstantiate(Isolate* isolate,
// just update status. // just update status.
bool SyntheticModule::FinishInstantiate(Isolate* isolate, bool SyntheticModule::FinishInstantiate(Isolate* isolate,
Handle<SyntheticModule> module) { Handle<SyntheticModule> module) {
module->SetStatus(kInstantiated); module->SetStatus(kLinked);
return true; return true;
} }
......
...@@ -24378,7 +24378,7 @@ TEST(CreateSyntheticModule) { ...@@ -24378,7 +24378,7 @@ TEST(CreateSyntheticModule) {
.IsUndefined()); .IsUndefined());
CHECK_EQ(i_module->export_names().length(), 1); CHECK_EQ(i_module->export_names().length(), 1);
CHECK(i::String::cast(i_module->export_names().get(0)).Equals(*default_name)); CHECK(i::String::cast(i_module->export_names().get(0)).Equals(*default_name));
CHECK_EQ(i_module->status(), i::Module::kInstantiated); CHECK_EQ(i_module->status(), i::Module::kLinked);
CHECK(module->IsSyntheticModule()); CHECK(module->IsSyntheticModule());
CHECK(!module->IsSourceTextModule()); CHECK(!module->IsSourceTextModule());
CHECK_EQ(module->GetModuleRequests()->Length(), 0); CHECK_EQ(module->GetModuleRequests()->Length(), 0);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment