| 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 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1037 Handle<String> name, | 1037 Handle<String> name, |
| 1038 Builtins::Name call, int len, | 1038 Builtins::Name call, int len, |
| 1039 bool adapt) { | 1039 bool adapt) { |
| 1040 Handle<JSFunction> fun = | 1040 Handle<JSFunction> fun = |
| 1041 SimpleCreateFunction(base->GetIsolate(), name, call, len, adapt); | 1041 SimpleCreateFunction(base->GetIsolate(), name, call, len, adapt); |
| 1042 InstallFunction(base, fun, name, DONT_ENUM); | 1042 InstallFunction(base, fun, name, DONT_ENUM); |
| 1043 return fun; | 1043 return fun; |
| 1044 } | 1044 } |
| 1045 | 1045 |
| 1046 | 1046 |
| 1047 static Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base, |
| 1048 const char* name, |
| 1049 Builtins::Name call, int len, |
| 1050 bool adapt) { |
| 1051 Factory* const factory = base->GetIsolate()->factory(); |
| 1052 return SimpleInstallFunction(base, factory->InternalizeUtf8String(name), call, |
| 1053 len, adapt); |
| 1054 } |
| 1055 |
| 1056 |
| 1047 static void InstallWithIntrinsicDefaultProto(Isolate* isolate, | 1057 static void InstallWithIntrinsicDefaultProto(Isolate* isolate, |
| 1048 Handle<JSFunction> function, | 1058 Handle<JSFunction> function, |
| 1049 int context_index) { | 1059 int context_index) { |
| 1050 Handle<Smi> index(Smi::FromInt(context_index), isolate); | 1060 Handle<Smi> index(Smi::FromInt(context_index), isolate); |
| 1051 JSObject::AddProperty( | 1061 JSObject::AddProperty( |
| 1052 function, isolate->factory()->native_context_index_symbol(), index, NONE); | 1062 function, isolate->factory()->native_context_index_symbol(), index, NONE); |
| 1053 isolate->native_context()->set(context_index, *function); | 1063 isolate->native_context()->set(context_index, *function); |
| 1054 } | 1064 } |
| 1055 | 1065 |
| 1056 | 1066 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1071 native_context()->set_security_token(*global_object); | 1081 native_context()->set_security_token(*global_object); |
| 1072 | 1082 |
| 1073 Isolate* isolate = global_object->GetIsolate(); | 1083 Isolate* isolate = global_object->GetIsolate(); |
| 1074 Factory* factory = isolate->factory(); | 1084 Factory* factory = isolate->factory(); |
| 1075 | 1085 |
| 1076 Handle<ScriptContextTable> script_context_table = | 1086 Handle<ScriptContextTable> script_context_table = |
| 1077 factory->NewScriptContextTable(); | 1087 factory->NewScriptContextTable(); |
| 1078 native_context()->set_script_context_table(*script_context_table); | 1088 native_context()->set_script_context_table(*script_context_table); |
| 1079 InstallGlobalThisBinding(); | 1089 InstallGlobalThisBinding(); |
| 1080 | 1090 |
| 1081 Handle<String> object_name = factory->Object_string(); | 1091 { // --- O b j e c t --- |
| 1082 JSObject::AddProperty( | 1092 Handle<String> object_name = factory->Object_string(); |
| 1083 global_object, object_name, isolate->object_function(), DONT_ENUM); | 1093 Handle<JSFunction> object_function = isolate->object_function(); |
| 1084 SimpleInstallFunction(isolate->object_function(), factory->assign_string(), | 1094 JSObject::AddProperty(global_object, object_name, object_function, |
| 1085 Builtins::kObjectAssign, 2, false); | 1095 DONT_ENUM); |
| 1086 SimpleInstallFunction(isolate->object_function(), factory->create_string(), | 1096 SimpleInstallFunction(object_function, factory->assign_string(), |
| 1087 Builtins::kObjectCreate, 2, false); | 1097 Builtins::kObjectAssign, 2, false); |
| 1098 SimpleInstallFunction(object_function, factory->create_string(), |
| 1099 Builtins::kObjectCreate, 2, false); |
| 1100 Handle<JSFunction> object_freeze = SimpleInstallFunction( |
| 1101 object_function, "freeze", Builtins::kObjectFreeze, 1, false); |
| 1102 native_context()->set_object_freeze(*object_freeze); |
| 1103 Handle<JSFunction> object_is_extensible = |
| 1104 SimpleInstallFunction(object_function, "isExtensible", |
| 1105 Builtins::kObjectIsExtensible, 1, false); |
| 1106 native_context()->set_object_is_extensible(*object_is_extensible); |
| 1107 Handle<JSFunction> object_is_frozen = SimpleInstallFunction( |
| 1108 object_function, "isFrozen", Builtins::kObjectIsFrozen, 1, false); |
| 1109 native_context()->set_object_is_frozen(*object_is_frozen); |
| 1110 Handle<JSFunction> object_is_sealed = SimpleInstallFunction( |
| 1111 object_function, "isSealed", Builtins::kObjectIsSealed, 1, false); |
| 1112 native_context()->set_object_is_sealed(*object_is_sealed); |
| 1113 SimpleInstallFunction(object_function, "preventExtensions", |
| 1114 Builtins::kObjectPreventExtensions, 1, false); |
| 1115 SimpleInstallFunction(object_function, "seal", Builtins::kObjectSeal, 1, |
| 1116 false); |
| 1117 } |
| 1088 | 1118 |
| 1089 Handle<JSObject> global(native_context()->global_object()); | 1119 Handle<JSObject> global(native_context()->global_object()); |
| 1090 | 1120 |
| 1091 { // --- F u n c t i o n --- | 1121 { // --- F u n c t i o n --- |
| 1092 Handle<JSFunction> function_function = | 1122 Handle<JSFunction> function_function = |
| 1093 InstallFunction(global, "Function", JS_FUNCTION_TYPE, JSFunction::kSize, | 1123 InstallFunction(global, "Function", JS_FUNCTION_TYPE, JSFunction::kSize, |
| 1094 empty_function, Builtins::kFunctionConstructor); | 1124 empty_function, Builtins::kFunctionConstructor); |
| 1095 function_function->set_prototype_or_initial_map( | 1125 function_function->set_prototype_or_initial_map( |
| 1096 *sloppy_function_map_writable_prototype_); | 1126 *sloppy_function_map_writable_prototype_); |
| 1097 function_function->shared()->DontAdaptArguments(); | 1127 function_function->shared()->DontAdaptArguments(); |
| (...skipping 2284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3382 } | 3412 } |
| 3383 | 3413 |
| 3384 | 3414 |
| 3385 // Called when the top-level V8 mutex is destroyed. | 3415 // Called when the top-level V8 mutex is destroyed. |
| 3386 void Bootstrapper::FreeThreadResources() { | 3416 void Bootstrapper::FreeThreadResources() { |
| 3387 DCHECK(!IsActive()); | 3417 DCHECK(!IsActive()); |
| 3388 } | 3418 } |
| 3389 | 3419 |
| 3390 } // namespace internal | 3420 } // namespace internal |
| 3391 } // namespace v8 | 3421 } // namespace v8 |
| OLD | NEW |