| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index cd23d93338c6f1c08b49ec5f61275b877bfa7b37..8f1c9cd70dd9a55980146fd9f68d759c2dc24bf9 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -1647,8 +1647,7 @@ Local<Value> Script::Run() {
|
| i::HandleScope scope(isolate);
|
| i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(obj);
|
| EXCEPTION_PREAMBLE(isolate);
|
| - i::Handle<i::Object> receiver(
|
| - isolate->context()->global_proxy(), isolate);
|
| + i::Handle<i::Object> receiver(isolate->global_proxy(), isolate);
|
| i::Handle<i::Object> result;
|
| has_pending_exception = !i::Execution::Call(
|
| isolate, fun, receiver, 0, NULL).ToHandle(&result);
|
| @@ -5105,7 +5104,7 @@ static i::Handle<i::Context> CreateEnvironment(
|
| i::Isolate* isolate,
|
| v8::ExtensionConfiguration* extensions,
|
| v8::Handle<ObjectTemplate> global_template,
|
| - v8::Handle<Value> global_object) {
|
| + v8::Handle<Value> maybe_global_proxy) {
|
| i::Handle<i::Context> env;
|
|
|
| // Enter V8 via an ENTER_V8 scope.
|
| @@ -5143,11 +5142,14 @@ static i::Handle<i::Context> CreateEnvironment(
|
| }
|
| }
|
|
|
| + i::Handle<i::Object> proxy = Utils::OpenHandle(*maybe_global_proxy, true);
|
| + i::MaybeHandle<i::JSGlobalProxy> maybe_proxy;
|
| + if (!proxy.is_null()) {
|
| + maybe_proxy = i::Handle<i::JSGlobalProxy>::cast(proxy);
|
| + }
|
| // Create the environment.
|
| env = isolate->bootstrapper()->CreateEnvironment(
|
| - Utils::OpenHandle(*global_object, true),
|
| - proxy_template,
|
| - extensions);
|
| + maybe_proxy, proxy_template, extensions);
|
|
|
| // Restore the access check info on the global template.
|
| if (!global_template.IsEmpty()) {
|
| @@ -5826,8 +5828,7 @@ bool Value::IsPromise() const {
|
| i::Handle<i::Object> b;
|
| has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| - handle(
|
| - isolate->context()->global_object()->native_context()->is_promise()),
|
| + isolate->is_promise(),
|
| isolate->factory()->undefined_value(),
|
| ARRAY_SIZE(argv), argv,
|
| false).ToHandle(&b);
|
| @@ -5844,8 +5845,7 @@ Local<Promise::Resolver> Promise::Resolver::New(Isolate* v8_isolate) {
|
| i::Handle<i::Object> result;
|
| has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| - handle(isolate->context()->global_object()->native_context()->
|
| - promise_create()),
|
| + isolate->promise_create(),
|
| isolate->factory()->undefined_value(),
|
| 0, NULL,
|
| false).ToHandle(&result);
|
| @@ -5869,8 +5869,7 @@ void Promise::Resolver::Resolve(Handle<Value> value) {
|
| i::Handle<i::Object> argv[] = { promise, Utils::OpenHandle(*value) };
|
| has_pending_exception = i::Execution::Call(
|
| isolate,
|
| - handle(isolate->context()->global_object()->native_context()->
|
| - promise_resolve()),
|
| + isolate->promise_resolve(),
|
| isolate->factory()->undefined_value(),
|
| ARRAY_SIZE(argv), argv,
|
| false).is_null();
|
| @@ -5887,8 +5886,7 @@ void Promise::Resolver::Reject(Handle<Value> value) {
|
| i::Handle<i::Object> argv[] = { promise, Utils::OpenHandle(*value) };
|
| has_pending_exception = i::Execution::Call(
|
| isolate,
|
| - handle(isolate->context()->global_object()->native_context()->
|
| - promise_reject()),
|
| + isolate->promise_reject(),
|
| isolate->factory()->undefined_value(),
|
| ARRAY_SIZE(argv), argv,
|
| false).is_null();
|
| @@ -5906,8 +5904,7 @@ Local<Promise> Promise::Chain(Handle<Function> handler) {
|
| i::Handle<i::Object> result;
|
| has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| - handle(isolate->context()->global_object()->native_context()->
|
| - promise_chain()),
|
| + isolate->promise_chain(),
|
| promise,
|
| ARRAY_SIZE(argv), argv,
|
| false).ToHandle(&result);
|
| @@ -5926,8 +5923,7 @@ Local<Promise> Promise::Catch(Handle<Function> handler) {
|
| i::Handle<i::Object> result;
|
| has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| - handle(isolate->context()->global_object()->native_context()->
|
| - promise_catch()),
|
| + isolate->promise_catch(),
|
| promise,
|
| ARRAY_SIZE(argv), argv,
|
| false).ToHandle(&result);
|
| @@ -5946,8 +5942,7 @@ Local<Promise> Promise::Then(Handle<Function> handler) {
|
| i::Handle<i::Object> result;
|
| has_pending_exception = !i::Execution::Call(
|
| isolate,
|
| - handle(isolate->context()->global_object()->native_context()->
|
| - promise_then()),
|
| + isolate->promise_then(),
|
| promise,
|
| ARRAY_SIZE(argv), argv,
|
| false).ToHandle(&result);
|
| @@ -6382,7 +6377,7 @@ v8::Local<v8::Context> Isolate::GetCurrentContext() {
|
| i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
|
| i::Context* context = isolate->context();
|
| if (context == NULL) return Local<Context>();
|
| - i::Context* native_context = context->global_object()->native_context();
|
| + i::Context* native_context = context->native_context();
|
| if (native_context == NULL) return Local<Context>();
|
| return Utils::ToLocal(i::Handle<i::Context>(native_context));
|
| }
|
|
|