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 "bootstrapper.h" | 5 #include "bootstrapper.h" |
6 | 6 |
7 #include "accessors.h" | 7 #include "accessors.h" |
8 #include "isolate-inl.h" | 8 #include "isolate-inl.h" |
9 #include "natives.h" | 9 #include "natives.h" |
10 #include "snapshot.h" | 10 #include "snapshot.h" |
(...skipping 2018 matching lines...) Loading... |
2029 | 2029 |
2030 static Handle<JSObject> ResolveBuiltinIdHolder( | 2030 static Handle<JSObject> ResolveBuiltinIdHolder( |
2031 Handle<Context> native_context, | 2031 Handle<Context> native_context, |
2032 const char* holder_expr) { | 2032 const char* holder_expr) { |
2033 Isolate* isolate = native_context->GetIsolate(); | 2033 Isolate* isolate = native_context->GetIsolate(); |
2034 Factory* factory = isolate->factory(); | 2034 Factory* factory = isolate->factory(); |
2035 Handle<GlobalObject> global(native_context->global_object()); | 2035 Handle<GlobalObject> global(native_context->global_object()); |
2036 const char* period_pos = strchr(holder_expr, '.'); | 2036 const char* period_pos = strchr(holder_expr, '.'); |
2037 if (period_pos == NULL) { | 2037 if (period_pos == NULL) { |
2038 return Handle<JSObject>::cast(Object::GetPropertyOrElement( | 2038 return Handle<JSObject>::cast(Object::GetPropertyOrElement( |
2039 global, factory->InternalizeUtf8String(holder_expr))); | 2039 global, factory->InternalizeUtf8String(holder_expr)).ToHandleChecked()); |
2040 } | 2040 } |
2041 ASSERT_EQ(".prototype", period_pos); | 2041 ASSERT_EQ(".prototype", period_pos); |
2042 Vector<const char> property(holder_expr, | 2042 Vector<const char> property(holder_expr, |
2043 static_cast<int>(period_pos - holder_expr)); | 2043 static_cast<int>(period_pos - holder_expr)); |
2044 Handle<String> property_string = factory->InternalizeUtf8String(property); | 2044 Handle<String> property_string = factory->InternalizeUtf8String(property); |
2045 ASSERT(!property_string.is_null()); | 2045 ASSERT(!property_string.is_null()); |
2046 Handle<JSFunction> function = Handle<JSFunction>::cast( | 2046 Handle<JSFunction> function = Handle<JSFunction>::cast( |
2047 Object::GetProperty(global, property_string)); | 2047 Object::GetProperty(global, property_string)); |
2048 return Handle<JSObject>(JSObject::cast(function->prototype())); | 2048 return Handle<JSObject>(JSObject::cast(function->prototype())); |
2049 } | 2049 } |
(...skipping 105 matching lines...) Loading... |
2155 if (FLAG_expose_natives_as != NULL && strlen(FLAG_expose_natives_as) != 0) { | 2155 if (FLAG_expose_natives_as != NULL && strlen(FLAG_expose_natives_as) != 0) { |
2156 Handle<String> natives = | 2156 Handle<String> natives = |
2157 factory->InternalizeUtf8String(FLAG_expose_natives_as); | 2157 factory->InternalizeUtf8String(FLAG_expose_natives_as); |
2158 RETURN_ON_EXCEPTION_VALUE( | 2158 RETURN_ON_EXCEPTION_VALUE( |
2159 isolate, | 2159 isolate, |
2160 JSObject::SetLocalPropertyIgnoreAttributes( | 2160 JSObject::SetLocalPropertyIgnoreAttributes( |
2161 global, natives, Handle<JSObject>(global->builtins()), DONT_ENUM), | 2161 global, natives, Handle<JSObject>(global->builtins()), DONT_ENUM), |
2162 false); | 2162 false); |
2163 } | 2163 } |
2164 | 2164 |
2165 Handle<Object> Error = GetProperty(global, "Error"); | 2165 Handle<Object> Error = GetProperty(global, "Error").ToHandleChecked(); |
2166 if (Error->IsJSObject()) { | 2166 if (Error->IsJSObject()) { |
2167 Handle<String> name = factory->InternalizeOneByteString( | 2167 Handle<String> name = factory->InternalizeOneByteString( |
2168 STATIC_ASCII_VECTOR("stackTraceLimit")); | 2168 STATIC_ASCII_VECTOR("stackTraceLimit")); |
2169 Handle<Smi> stack_trace_limit( | 2169 Handle<Smi> stack_trace_limit( |
2170 Smi::FromInt(FLAG_stack_trace_limit), isolate); | 2170 Smi::FromInt(FLAG_stack_trace_limit), isolate); |
2171 RETURN_ON_EXCEPTION_VALUE( | 2171 RETURN_ON_EXCEPTION_VALUE( |
2172 isolate, | 2172 isolate, |
2173 JSObject::SetLocalPropertyIgnoreAttributes( | 2173 JSObject::SetLocalPropertyIgnoreAttributes( |
2174 Handle<JSObject>::cast(Error), name, stack_trace_limit, NONE), | 2174 Handle<JSObject>::cast(Error), name, stack_trace_limit, NONE), |
2175 false); | 2175 false); |
(...skipping 542 matching lines...) Loading... |
2718 return from + sizeof(NestingCounterType); | 2718 return from + sizeof(NestingCounterType); |
2719 } | 2719 } |
2720 | 2720 |
2721 | 2721 |
2722 // Called when the top-level V8 mutex is destroyed. | 2722 // Called when the top-level V8 mutex is destroyed. |
2723 void Bootstrapper::FreeThreadResources() { | 2723 void Bootstrapper::FreeThreadResources() { |
2724 ASSERT(!IsActive()); | 2724 ASSERT(!IsActive()); |
2725 } | 2725 } |
2726 | 2726 |
2727 } } // namespace v8::internal | 2727 } } // namespace v8::internal |
OLD | NEW |