| Index: src/heap.cc
|
| diff --git a/src/heap.cc b/src/heap.cc
|
| index 7d655b4c35a2f6de9987c5645d5c20de6d0dfff0..5c3a38620f4dd25b9e1c77aa614236fdaefb2509 100644
|
| --- a/src/heap.cc
|
| +++ b/src/heap.cc
|
| @@ -4006,13 +4006,18 @@ MaybeObject* Heap::AllocateJSObject(JSFunction* constructor,
|
| }
|
|
|
|
|
| -MaybeObject* Heap::AllocateJSModule() {
|
| +MaybeObject* Heap::AllocateJSModule(Context* context, ScopeInfo* scope_info) {
|
| // Allocate a fresh map. Modules do not have a prototype.
|
| Map* map;
|
| MaybeObject* maybe_map = AllocateMap(JS_MODULE_TYPE, JSModule::kSize);
|
| if (!maybe_map->To(&map)) return maybe_map;
|
| // Allocate the object based on the map.
|
| - return AllocateJSObjectFromMap(map, TENURED);
|
| + JSModule* module;
|
| + MaybeObject* maybe_module = AllocateJSObjectFromMap(map, TENURED);
|
| + if (!maybe_module->To(&module)) return maybe_module;
|
| + module->set_context(context);
|
| + module->set_scope_info(scope_info);
|
| + return module;
|
| }
|
|
|
|
|
| @@ -4911,18 +4916,16 @@ MaybeObject* Heap::AllocateGlobalContext() {
|
| }
|
|
|
|
|
| -MaybeObject* Heap::AllocateModuleContext(Context* previous,
|
| - ScopeInfo* scope_info) {
|
| +MaybeObject* Heap::AllocateModuleContext(ScopeInfo* scope_info) {
|
| Object* result;
|
| { MaybeObject* maybe_result =
|
| - AllocateFixedArrayWithHoles(scope_info->ContextLength(), TENURED);
|
| + AllocateFixedArray(scope_info->ContextLength(), TENURED);
|
| if (!maybe_result->ToObject(&result)) return maybe_result;
|
| }
|
| Context* context = reinterpret_cast<Context*>(result);
|
| context->set_map_no_write_barrier(module_context_map());
|
| - context->set_previous(previous);
|
| - context->set_extension(scope_info);
|
| - context->set_global(previous->global());
|
| + // Context links will be set later.
|
| + context->set_extension(Smi::FromInt(0));
|
| return context;
|
| }
|
|
|
| @@ -4937,7 +4940,7 @@ MaybeObject* Heap::AllocateFunctionContext(int length, JSFunction* function) {
|
| context->set_map_no_write_barrier(function_context_map());
|
| context->set_closure(function);
|
| context->set_previous(function->context());
|
| - context->set_extension(NULL);
|
| + context->set_extension(Smi::FromInt(0));
|
| context->set_global(function->context()->global());
|
| return context;
|
| }
|
|
|