| 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/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/extensions/externalize-string-extension.h" | 10 #include "src/extensions/externalize-string-extension.h" |
| (...skipping 1162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1173 strict_function_map_writable_prototype_->SetConstructor(*function_fun); | 1173 strict_function_map_writable_prototype_->SetConstructor(*function_fun); |
| 1174 native_context()->strong_function_map()->SetConstructor(*function_fun); | 1174 native_context()->strong_function_map()->SetConstructor(*function_fun); |
| 1175 } | 1175 } |
| 1176 | 1176 |
| 1177 { // --- A r r a y --- | 1177 { // --- A r r a y --- |
| 1178 Handle<JSFunction> array_function = | 1178 Handle<JSFunction> array_function = |
| 1179 InstallFunction(global, "Array", JS_ARRAY_TYPE, JSArray::kSize, | 1179 InstallFunction(global, "Array", JS_ARRAY_TYPE, JSArray::kSize, |
| 1180 isolate->initial_object_prototype(), | 1180 isolate->initial_object_prototype(), |
| 1181 Builtins::kArrayCode); | 1181 Builtins::kArrayCode); |
| 1182 array_function->shared()->DontAdaptArguments(); | 1182 array_function->shared()->DontAdaptArguments(); |
| 1183 array_function->shared()->set_function_data(Smi::FromInt(kArrayCode)); | 1183 array_function->shared()->set_builtin_function_id(kArrayCode); |
| 1184 | 1184 |
| 1185 // This seems a bit hackish, but we need to make sure Array.length | 1185 // This seems a bit hackish, but we need to make sure Array.length |
| 1186 // is 1. | 1186 // is 1. |
| 1187 array_function->shared()->set_length(1); | 1187 array_function->shared()->set_length(1); |
| 1188 | 1188 |
| 1189 Handle<Map> initial_map(array_function->initial_map()); | 1189 Handle<Map> initial_map(array_function->initial_map()); |
| 1190 | 1190 |
| 1191 // This assert protects an optimization in | 1191 // This assert protects an optimization in |
| 1192 // HGraphBuilder::JSArrayBuilder::EmitMapCode() | 1192 // HGraphBuilder::JSArrayBuilder::EmitMapCode() |
| 1193 DCHECK(initial_map->elements_kind() == GetInitialFastElementsKind()); | 1193 DCHECK(initial_map->elements_kind() == GetInitialFastElementsKind()); |
| (...skipping 1881 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3075 } | 3075 } |
| 3076 | 3076 |
| 3077 | 3077 |
| 3078 static void InstallBuiltinFunctionId(Handle<JSObject> holder, | 3078 static void InstallBuiltinFunctionId(Handle<JSObject> holder, |
| 3079 const char* function_name, | 3079 const char* function_name, |
| 3080 BuiltinFunctionId id) { | 3080 BuiltinFunctionId id) { |
| 3081 Isolate* isolate = holder->GetIsolate(); | 3081 Isolate* isolate = holder->GetIsolate(); |
| 3082 Handle<Object> function_object = | 3082 Handle<Object> function_object = |
| 3083 Object::GetProperty(isolate, holder, function_name).ToHandleChecked(); | 3083 Object::GetProperty(isolate, holder, function_name).ToHandleChecked(); |
| 3084 Handle<JSFunction> function = Handle<JSFunction>::cast(function_object); | 3084 Handle<JSFunction> function = Handle<JSFunction>::cast(function_object); |
| 3085 function->shared()->set_function_data(Smi::FromInt(id)); | 3085 function->shared()->set_builtin_function_id(id); |
| 3086 } | 3086 } |
| 3087 | 3087 |
| 3088 | 3088 |
| 3089 #define INSTALL_BUILTIN_ID(holder_expr, fun_name, name) \ | 3089 #define INSTALL_BUILTIN_ID(holder_expr, fun_name, name) \ |
| 3090 { #holder_expr, #fun_name, k##name } \ | 3090 { #holder_expr, #fun_name, k##name } \ |
| 3091 , | 3091 , |
| 3092 | 3092 |
| 3093 | 3093 |
| 3094 void Genesis::InstallBuiltinFunctionIds() { | 3094 void Genesis::InstallBuiltinFunctionIds() { |
| 3095 HandleScope scope(isolate()); | 3095 HandleScope scope(isolate()); |
| (...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3678 } | 3678 } |
| 3679 | 3679 |
| 3680 | 3680 |
| 3681 // Called when the top-level V8 mutex is destroyed. | 3681 // Called when the top-level V8 mutex is destroyed. |
| 3682 void Bootstrapper::FreeThreadResources() { | 3682 void Bootstrapper::FreeThreadResources() { |
| 3683 DCHECK(!IsActive()); | 3683 DCHECK(!IsActive()); |
| 3684 } | 3684 } |
| 3685 | 3685 |
| 3686 } // namespace internal | 3686 } // namespace internal |
| 3687 } // namespace v8 | 3687 } // namespace v8 |
| OLD | NEW |