OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/api.h" | 5 #include "src/api.h" |
6 | 6 |
7 #include <string.h> // For memcpy, strlen. | 7 #include <string.h> // For memcpy, strlen. |
8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER |
9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> |
10 #endif // V8_USE_ADDRESS_SANITIZER | 10 #endif // V8_USE_ADDRESS_SANITIZER |
(...skipping 3831 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3842 bool v8::Object::SetPrototype(Local<Value> value) { | 3842 bool v8::Object::SetPrototype(Local<Value> value) { |
3843 auto context = ContextFromHeapObject(Utils::OpenHandle(this)); | 3843 auto context = ContextFromHeapObject(Utils::OpenHandle(this)); |
3844 return SetPrototype(context, value).FromMaybe(false); | 3844 return SetPrototype(context, value).FromMaybe(false); |
3845 } | 3845 } |
3846 | 3846 |
3847 | 3847 |
3848 Local<Object> v8::Object::FindInstanceInPrototypeChain( | 3848 Local<Object> v8::Object::FindInstanceInPrototypeChain( |
3849 v8::Local<FunctionTemplate> tmpl) { | 3849 v8::Local<FunctionTemplate> tmpl) { |
3850 auto isolate = Utils::OpenHandle(this)->GetIsolate(); | 3850 auto isolate = Utils::OpenHandle(this)->GetIsolate(); |
3851 i::PrototypeIterator iter(isolate, *Utils::OpenHandle(this), | 3851 i::PrototypeIterator iter(isolate, *Utils::OpenHandle(this), |
3852 i::PrototypeIterator::START_AT_RECEIVER); | 3852 i::kStartAtReceiver); |
3853 auto tmpl_info = *Utils::OpenHandle(*tmpl); | 3853 auto tmpl_info = *Utils::OpenHandle(*tmpl); |
3854 while (!tmpl_info->IsTemplateFor(iter.GetCurrent())) { | 3854 while (!tmpl_info->IsTemplateFor(iter.GetCurrent())) { |
3855 iter.Advance(); | 3855 iter.Advance(); |
3856 if (iter.IsAtEnd()) { | 3856 if (iter.IsAtEnd()) { |
3857 return Local<Object>(); | 3857 return Local<Object>(); |
3858 } | 3858 } |
3859 } | 3859 } |
3860 // IsTemplateFor() ensures that iter.GetCurrent() can't be a Proxy here. | 3860 // IsTemplateFor() ensures that iter.GetCurrent() can't be a Proxy here. |
3861 return Utils::ToLocal(i::handle(iter.GetCurrent<i::JSObject>(), isolate)); | 3861 return Utils::ToLocal(i::handle(iter.GetCurrent<i::JSObject>(), isolate)); |
3862 } | 3862 } |
(...skipping 4950 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8813 Address callback_address = | 8813 Address callback_address = |
8814 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 8814 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
8815 VMState<EXTERNAL> state(isolate); | 8815 VMState<EXTERNAL> state(isolate); |
8816 ExternalCallbackScope call_scope(isolate, callback_address); | 8816 ExternalCallbackScope call_scope(isolate, callback_address); |
8817 callback(info); | 8817 callback(info); |
8818 } | 8818 } |
8819 | 8819 |
8820 | 8820 |
8821 } // namespace internal | 8821 } // namespace internal |
8822 } // namespace v8 | 8822 } // namespace v8 |
OLD | NEW |