| 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 982 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 993 | 993 | 
| 994   Handle<JSFunction> error_fun = | 994   Handle<JSFunction> error_fun = | 
| 995       InstallFunction(global, name, JS_ERROR_TYPE, JSObject::kHeaderSize, | 995       InstallFunction(global, name, JS_ERROR_TYPE, JSObject::kHeaderSize, | 
| 996                       isolate->initial_object_prototype(), | 996                       isolate->initial_object_prototype(), | 
| 997                       Builtins::kErrorConstructor, DONT_ENUM); | 997                       Builtins::kErrorConstructor, DONT_ENUM); | 
| 998   error_fun->shared()->set_instance_class_name(*factory->Error_string()); | 998   error_fun->shared()->set_instance_class_name(*factory->Error_string()); | 
| 999   error_fun->shared()->DontAdaptArguments(); | 999   error_fun->shared()->DontAdaptArguments(); | 
| 1000   error_fun->shared()->set_construct_stub( | 1000   error_fun->shared()->set_construct_stub( | 
| 1001       *isolate->builtins()->ErrorConstructor()); | 1001       *isolate->builtins()->ErrorConstructor()); | 
| 1002   error_fun->shared()->set_length(1); | 1002   error_fun->shared()->set_length(1); | 
| 1003   error_fun->shared()->set_native(true); |  | 
| 1004 | 1003 | 
| 1005   if (context_index == Context::ERROR_FUNCTION_INDEX) { | 1004   if (context_index == Context::ERROR_FUNCTION_INDEX) { | 
| 1006     Handle<JSFunction> capture_stack_trace_fun = | 1005     SimpleInstallFunction(error_fun, "captureStackTrace", | 
| 1007         SimpleInstallFunction(error_fun, "captureStackTrace", | 1006                           Builtins::kErrorCaptureStackTrace, 2, false); | 
| 1008                               Builtins::kErrorCaptureStackTrace, 2, false); |  | 
| 1009     capture_stack_trace_fun->shared()->set_native(true); |  | 
| 1010   } | 1007   } | 
| 1011 | 1008 | 
| 1012   InstallWithIntrinsicDefaultProto(isolate, error_fun, context_index); | 1009   InstallWithIntrinsicDefaultProto(isolate, error_fun, context_index); | 
| 1013 | 1010 | 
| 1014   { | 1011   { | 
| 1015     Handle<JSObject> prototype = | 1012     Handle<JSObject> prototype = | 
| 1016         factory->NewJSObject(isolate->object_function(), TENURED); | 1013         factory->NewJSObject(isolate->object_function(), TENURED); | 
| 1017 | 1014 | 
| 1018     JSObject::AddProperty(prototype, factory->name_string(), name, DONT_ENUM); | 1015     JSObject::AddProperty(prototype, factory->name_string(), name, DONT_ENUM); | 
| 1019     JSObject::AddProperty(prototype, factory->message_string(), | 1016     JSObject::AddProperty(prototype, factory->message_string(), | 
| 1020                           factory->empty_string(), DONT_ENUM); | 1017                           factory->empty_string(), DONT_ENUM); | 
| 1021     JSObject::AddProperty(prototype, factory->constructor_string(), error_fun, | 1018     JSObject::AddProperty(prototype, factory->constructor_string(), error_fun, | 
| 1022                           DONT_ENUM); | 1019                           DONT_ENUM); | 
| 1023 | 1020 | 
| 1024     if (context_index == Context::ERROR_FUNCTION_INDEX) { | 1021     if (context_index == Context::ERROR_FUNCTION_INDEX) { | 
| 1025       Handle<JSFunction> to_string_fun = | 1022       Handle<JSFunction> to_string_fun = | 
| 1026           SimpleInstallFunction(prototype, factory->toString_string(), | 1023           SimpleInstallFunction(prototype, factory->toString_string(), | 
| 1027                                 Builtins::kErrorPrototypeToString, 0, true); | 1024                                 Builtins::kErrorPrototypeToString, 0, true); | 
| 1028       to_string_fun->shared()->set_native(true); |  | 
| 1029       isolate->native_context()->set_error_to_string(*to_string_fun); | 1025       isolate->native_context()->set_error_to_string(*to_string_fun); | 
| 1030     } else { | 1026     } else { | 
| 1031       DCHECK(context_index != Context::ERROR_FUNCTION_INDEX); | 1027       DCHECK(context_index != Context::ERROR_FUNCTION_INDEX); | 
| 1032       DCHECK(isolate->native_context()->error_to_string()->IsJSFunction()); | 1028       DCHECK(isolate->native_context()->error_to_string()->IsJSFunction()); | 
| 1033 | 1029 | 
| 1034       InstallFunction(prototype, isolate->error_to_string(), | 1030       InstallFunction(prototype, isolate->error_to_string(), | 
| 1035                       factory->toString_string(), DONT_ENUM); | 1031                       factory->toString_string(), DONT_ENUM); | 
| 1036 | 1032 | 
| 1037       Handle<JSFunction> global_error = isolate->error_function(); | 1033       Handle<JSFunction> global_error = isolate->error_function(); | 
| 1038       CHECK(JSReceiver::SetPrototype(error_fun, global_error, false, | 1034       CHECK(JSReceiver::SetPrototype(error_fun, global_error, false, | 
| (...skipping 1730 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2769     // Builtin functions for CallSite. | 2765     // Builtin functions for CallSite. | 
| 2770 | 2766 | 
| 2771     // CallSites are a special case; the constructor is for our private use | 2767     // CallSites are a special case; the constructor is for our private use | 
| 2772     // only, therefore we set it up as a builtin that throws. Internally, we use | 2768     // only, therefore we set it up as a builtin that throws. Internally, we use | 
| 2773     // CallSiteUtils::Construct to create CallSite objects. | 2769     // CallSiteUtils::Construct to create CallSite objects. | 
| 2774 | 2770 | 
| 2775     Handle<JSFunction> callsite_fun = InstallFunction( | 2771     Handle<JSFunction> callsite_fun = InstallFunction( | 
| 2776         container, "CallSite", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 2772         container, "CallSite", JS_OBJECT_TYPE, JSObject::kHeaderSize, | 
| 2777         isolate->initial_object_prototype(), Builtins::kUnsupportedThrower); | 2773         isolate->initial_object_prototype(), Builtins::kUnsupportedThrower); | 
| 2778     callsite_fun->shared()->DontAdaptArguments(); | 2774     callsite_fun->shared()->DontAdaptArguments(); | 
| 2779     callsite_fun->shared()->set_native(true); |  | 
| 2780 |  | 
| 2781     isolate->native_context()->set_callsite_function(*callsite_fun); | 2775     isolate->native_context()->set_callsite_function(*callsite_fun); | 
| 2782 | 2776 | 
| 2783     { | 2777     { | 
| 2784       Handle<JSObject> proto = | 2778       Handle<JSObject> proto = | 
| 2785           factory->NewJSObject(isolate->object_function(), TENURED); | 2779           factory->NewJSObject(isolate->object_function(), TENURED); | 
| 2786       JSObject::AddProperty(proto, factory->constructor_string(), callsite_fun, | 2780       JSObject::AddProperty(proto, factory->constructor_string(), callsite_fun, | 
| 2787                             DONT_ENUM); | 2781                             DONT_ENUM); | 
| 2788 | 2782 | 
| 2789       struct FunctionInfo { | 2783       struct FunctionInfo { | 
| 2790         const char* name; | 2784         const char* name; | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 2808           {"isEval", Builtins::kCallSitePrototypeIsEval}, | 2802           {"isEval", Builtins::kCallSitePrototypeIsEval}, | 
| 2809           {"isNative", Builtins::kCallSitePrototypeIsNative}, | 2803           {"isNative", Builtins::kCallSitePrototypeIsNative}, | 
| 2810           {"isToplevel", Builtins::kCallSitePrototypeIsToplevel}, | 2804           {"isToplevel", Builtins::kCallSitePrototypeIsToplevel}, | 
| 2811           {"toString", Builtins::kCallSitePrototypeToString}}; | 2805           {"toString", Builtins::kCallSitePrototypeToString}}; | 
| 2812 | 2806 | 
| 2813       PropertyAttributes attrs = | 2807       PropertyAttributes attrs = | 
| 2814           static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY); | 2808           static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY); | 
| 2815 | 2809 | 
| 2816       Handle<JSFunction> fun; | 2810       Handle<JSFunction> fun; | 
| 2817       for (const FunctionInfo& info : infos) { | 2811       for (const FunctionInfo& info : infos) { | 
| 2818         fun = SimpleInstallFunction(proto, info.name, info.id, 0, true, attrs); | 2812         SimpleInstallFunction(proto, info.name, info.id, 0, true, attrs); | 
| 2819         fun->shared()->set_native(true); |  | 
| 2820       } | 2813       } | 
| 2821 | 2814 | 
| 2822       Accessors::FunctionSetPrototype(callsite_fun, proto).Assert(); | 2815       Accessors::FunctionSetPrototype(callsite_fun, proto).Assert(); | 
| 2823     } | 2816     } | 
| 2824   } | 2817   } | 
| 2825 } | 2818 } | 
| 2826 | 2819 | 
| 2827 | 2820 | 
| 2828 void Bootstrapper::ExportExperimentalFromRuntime(Isolate* isolate, | 2821 void Bootstrapper::ExportExperimentalFromRuntime(Isolate* isolate, | 
| 2829                                                  Handle<JSObject> container) { | 2822                                                  Handle<JSObject> container) { | 
| (...skipping 1362 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4192 } | 4185 } | 
| 4193 | 4186 | 
| 4194 | 4187 | 
| 4195 // Called when the top-level V8 mutex is destroyed. | 4188 // Called when the top-level V8 mutex is destroyed. | 
| 4196 void Bootstrapper::FreeThreadResources() { | 4189 void Bootstrapper::FreeThreadResources() { | 
| 4197   DCHECK(!IsActive()); | 4190   DCHECK(!IsActive()); | 
| 4198 } | 4191 } | 
| 4199 | 4192 | 
| 4200 }  // namespace internal | 4193 }  // namespace internal | 
| 4201 }  // namespace v8 | 4194 }  // namespace v8 | 
| OLD | NEW | 
|---|