| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index 74f3e43ada4e995fd26ba6c038a1ac008598db16..07951dd78f4ed49a3e2589e7ba979663348597f2 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -8843,19 +8843,25 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushBlockContext) {
|
| }
|
|
|
|
|
| +RUNTIME_FUNCTION(MaybeObject*, Runtime_IsJSModule) {
|
| + ASSERT(args.length() == 1);
|
| + Object* obj = args[0];
|
| + return isolate->heap()->ToBoolean(obj->IsJSModule());
|
| +}
|
| +
|
| +
|
| RUNTIME_FUNCTION(MaybeObject*, Runtime_PushModuleContext) {
|
| NoHandleAllocation ha;
|
| - ASSERT(args.length() == 2);
|
| - CONVERT_ARG_CHECKED(ScopeInfo, scope_info, 0);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSModule, instance, 1);
|
| + ASSERT(args.length() == 1);
|
| + CONVERT_ARG_HANDLE_CHECKED(JSModule, instance, 0);
|
|
|
| - Context* context;
|
| - MaybeObject* maybe_context =
|
| - isolate->heap()->AllocateModuleContext(isolate->context(),
|
| - scope_info);
|
| - if (!maybe_context->To(&context)) return maybe_context;
|
| - // Also initialize the context slot of the instance object.
|
| - instance->set_context(context);
|
| + Context* context = Context::cast(instance->context());
|
| + Context* previous = isolate->context();
|
| + ASSERT(context->IsModuleContext());
|
| + // Initialize the context links.
|
| + context->set_previous(previous);
|
| + context->set_closure(previous->closure());
|
| + context->set_global(previous->global());
|
| isolate->set_context(context);
|
|
|
| return context;
|
|
|