| Index: src/objects.cc | 
| diff --git a/src/objects.cc b/src/objects.cc | 
| index 11bba2372b36a1e21c3574907fc56c0d01721ff8..ad2f679f4d86e2ea5275f821e90a81a21c05bc3c 100644 | 
| --- a/src/objects.cc | 
| +++ b/src/objects.cc | 
| @@ -19944,8 +19944,7 @@ MaybeHandle<Cell> Module::ResolveExportUsingStarExports( | 
|  | 
| bool Module::Instantiate(Handle<Module> module, v8::Local<v8::Context> context, | 
| v8::Module::ResolveCallback callback) { | 
| -  // Already instantiated. | 
| -  if (module->code()->IsJSFunction()) return true; | 
| +  if (module->instantiated()) return true; | 
|  | 
| Isolate* isolate = module->GetIsolate(); | 
| Handle<SharedFunctionInfo> shared(SharedFunctionInfo::cast(module->code()), | 
| @@ -19955,6 +19954,7 @@ bool Module::Instantiate(Handle<Module> module, v8::Local<v8::Context> context, | 
| shared, | 
| handle(Utils::OpenHandle(*context)->native_context(), isolate)); | 
| module->set_code(*function); | 
| +  DCHECK(module->instantiated()); | 
|  | 
| Handle<ModuleInfo> module_info(shared->scope_info()->ModuleDescriptorInfo(), | 
| isolate); | 
| @@ -20036,16 +20036,15 @@ bool Module::Instantiate(Handle<Module> module, v8::Local<v8::Context> context, | 
| } | 
|  | 
| MaybeHandle<Object> Module::Evaluate(Handle<Module> module) { | 
| -  DCHECK(module->code()->IsJSFunction());  // Instantiated. | 
| - | 
| -  Isolate* isolate = module->GetIsolate(); | 
| +  DCHECK(module->instantiated()); | 
|  | 
| // Each module can only be evaluated once. | 
| +  Isolate* isolate = module->GetIsolate(); | 
| if (module->evaluated()) return isolate->factory()->undefined_value(); | 
| -  module->set_evaluated(true); | 
| +  Handle<JSFunction> function(JSFunction::cast(module->code()), isolate); | 
| +  module->set_evaluated(); | 
|  | 
| // Initialization. | 
| -  Handle<JSFunction> function(JSFunction::cast(module->code()), isolate); | 
| DCHECK_EQ(MODULE_SCOPE, function->shared()->scope_info()->scope_type()); | 
| Handle<Object> receiver = isolate->factory()->undefined_value(); | 
| Handle<Object> argv[] = {module}; | 
| @@ -20072,7 +20071,7 @@ namespace { | 
|  | 
| void FetchStarExports(Handle<Module> module, Zone* zone, | 
| UnorderedModuleSet* visited) { | 
| -  DCHECK(module->code()->IsJSFunction());  // Instantiated. | 
| +  DCHECK(module->instantiated()); | 
|  | 
| bool cycle = !visited->insert(module).second; | 
| if (cycle) return; | 
|  |