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/lookup.h" | 5 #include "src/lookup.h" |
6 | 6 |
7 #include "src/bootstrapper.h" | 7 #include "src/bootstrapper.h" |
8 #include "src/deoptimizer.h" | 8 #include "src/deoptimizer.h" |
9 #include "src/elements.h" | 9 #include "src/elements.h" |
10 #include "src/field-type.h" | 10 #include "src/field-type.h" |
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
835 if (access_check_info) { | 835 if (access_check_info) { |
836 Object* interceptor = IsElement() ? access_check_info->indexed_interceptor() | 836 Object* interceptor = IsElement() ? access_check_info->indexed_interceptor() |
837 : access_check_info->named_interceptor(); | 837 : access_check_info->named_interceptor(); |
838 if (interceptor) { | 838 if (interceptor) { |
839 return handle(InterceptorInfo::cast(interceptor), isolate_); | 839 return handle(InterceptorInfo::cast(interceptor), isolate_); |
840 } | 840 } |
841 } | 841 } |
842 return Handle<InterceptorInfo>(); | 842 return Handle<InterceptorInfo>(); |
843 } | 843 } |
844 | 844 |
845 bool LookupIterator::TryLookupCachedProperty() { | |
846 return state() == LookupIterator::ACCESSOR && | |
847 GetAccessors()->IsAccessorPair() && LookupCachedProperty(); | |
848 } | |
849 | |
850 bool LookupIterator::LookupCachedProperty() { | |
851 DCHECK_EQ(state(), LookupIterator::ACCESSOR); | |
852 DCHECK(GetAccessors()->IsAccessorPair()); | |
853 | |
854 Handle<Object> getter(Handle<AccessorPair>::cast(GetAccessors())->getter(), | |
Toon Verwaest
2016/11/04 10:19:52
AccessorPair::cast(*GetAccessors())->getter(), iso
vogelheim
2016/11/04 12:34:42
Didn't fit :)
Since I need two lines anyway, I gav
| |
855 isolate()); | |
856 MaybeHandle<Name> maybe_name = | |
857 FunctionTemplateInfo::TryGetCachedPropertyName(isolate(), getter); | |
858 if (maybe_name.is_null()) return false; | |
859 | |
860 // We have found a cached property! Modify the iterator accordingly. | |
861 name_ = maybe_name.ToHandleChecked(); | |
862 Restart(); | |
863 CHECK_EQ(state(), LookupIterator::DATA); | |
864 return true; | |
865 } | |
866 | |
845 } // namespace internal | 867 } // namespace internal |
846 } // namespace v8 | 868 } // namespace v8 |
OLD | NEW |