OLD | NEW |
---|---|
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/bootstrapper.h" | 5 #include "src/bootstrapper.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api-natives.h" | 8 #include "src/api-natives.h" |
9 #include "src/base/ieee754.h" | 9 #include "src/base/ieee754.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 3565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3576 Handle<String> key = factory()->Promise_string(); | 3576 Handle<String> key = factory()->Promise_string(); |
3577 Handle<JSFunction> function = Handle<JSFunction>::cast( | 3577 Handle<JSFunction> function = Handle<JSFunction>::cast( |
3578 JSReceiver::GetProperty(global_object, key).ToHandleChecked()); | 3578 JSReceiver::GetProperty(global_object, key).ToHandleChecked()); |
3579 JSFunction::EnsureHasInitialMap(function); | 3579 JSFunction::EnsureHasInitialMap(function); |
3580 function->initial_map()->set_instance_type(JS_PROMISE_TYPE); | 3580 function->initial_map()->set_instance_type(JS_PROMISE_TYPE); |
3581 function->shared()->SetConstructStub( | 3581 function->shared()->SetConstructStub( |
3582 *isolate()->builtins()->JSBuiltinsConstructStub()); | 3582 *isolate()->builtins()->JSBuiltinsConstructStub()); |
3583 InstallWithIntrinsicDefaultProto(isolate(), function, | 3583 InstallWithIntrinsicDefaultProto(isolate(), function, |
3584 Context::PROMISE_FUNCTION_INDEX); | 3584 Context::PROMISE_FUNCTION_INDEX); |
3585 | 3585 |
3586 // TODO(gsathya): Fix up the wiring to be the correct Promise constructor. | |
3587 Handle<JSObject> prototype = | |
3588 factory()->NewJSObject(isolate()->object_function(), TENURED); | |
3589 Handle<JSFunction> promise2_fun = SimpleInstallFunction( | |
3590 global_object, "Promise2", Builtins::kPromiseConstructor, 1, false); | |
Benedikt Meurer
2016/11/11 06:50:30
You cannot say "dont adapt" arguments here, but ha
gsathya
2016/11/22 04:31:43
Done.
| |
3591 | |
3592 Handle<SharedFunctionInfo> shared(promise2_fun->shared(), isolate()); | |
3593 shared->SetConstructStub(*isolate()->builtins()->PromiseConstructor()); | |
Benedikt Meurer
2016/11/11 06:50:30
I'm not sure we currently support having a TFS bui
gsathya
2016/11/22 04:31:43
Done.
| |
3594 shared->set_instance_class_name(isolate()->heap()->Promise_string()); | |
3595 shared->DontAdaptArguments(); | |
Benedikt Meurer
2016/11/11 06:50:30
This is reundant (and wrong).
gsathya
2016/11/22 04:31:43
Done.
| |
3596 | |
3586 { | 3597 { |
3587 Handle<Code> code = handle( | 3598 Handle<Code> code = handle( |
3588 isolate()->builtins()->builtin(Builtins::kPromiseResolveClosure), | 3599 isolate()->builtins()->builtin(Builtins::kPromiseResolveClosure), |
3589 isolate()); | 3600 isolate()); |
3590 Handle<SharedFunctionInfo> info = | 3601 Handle<SharedFunctionInfo> info = |
3591 isolate()->factory()->NewSharedFunctionInfo(factory()->empty_string(), | 3602 isolate()->factory()->NewSharedFunctionInfo(factory()->empty_string(), |
3592 code, false); | 3603 code, false); |
3593 info->set_internal_formal_parameter_count(1); | 3604 info->set_internal_formal_parameter_count(1); |
3594 info->set_length(1); | 3605 info->set_length(1); |
3595 native_context()->set_promise_resolve_shared_fun(*info); | 3606 native_context()->set_promise_resolve_shared_fun(*info); |
(...skipping 956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4552 } | 4563 } |
4553 | 4564 |
4554 | 4565 |
4555 // Called when the top-level V8 mutex is destroyed. | 4566 // Called when the top-level V8 mutex is destroyed. |
4556 void Bootstrapper::FreeThreadResources() { | 4567 void Bootstrapper::FreeThreadResources() { |
4557 DCHECK(!IsActive()); | 4568 DCHECK(!IsActive()); |
4558 } | 4569 } |
4559 | 4570 |
4560 } // namespace internal | 4571 } // namespace internal |
4561 } // namespace v8 | 4572 } // namespace v8 |
OLD | NEW |