OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 | 82 |
83 static void indexedPropertyGetterCallback(uint32_t index, const v8::PropertyCall
backInfo<v8::Value>& info) | 83 static void indexedPropertyGetterCallback(uint32_t index, const v8::PropertyCall
backInfo<v8::Value>& info) |
84 { | 84 { |
85 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMIndexedProperty"); | 85 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMIndexedProperty"); |
86 TestSpecialOperationsNotEnumerableV8Internal::indexedPropertyGetter(index, i
nfo); | 86 TestSpecialOperationsNotEnumerableV8Internal::indexedPropertyGetter(index, i
nfo); |
87 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 87 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
88 } | 88 } |
89 | 89 |
90 static void namedPropertyGetter(v8::Local<v8::String> name, const v8::PropertyCa
llbackInfo<v8::Value>& info) | 90 static void namedPropertyGetter(v8::Local<v8::String> name, const v8::PropertyCa
llbackInfo<v8::Value>& info) |
91 { | 91 { |
| 92 if (info.Holder()->HasRealNamedProperty(name)) |
| 93 return; |
92 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(name).IsEmpty()) | 94 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(name).IsEmpty()) |
93 return; | 95 return; |
94 if (info.Holder()->HasRealNamedCallbackProperty(name)) | |
95 return; | |
96 if (info.Holder()->HasRealNamedProperty(name)) | |
97 return; | |
98 | 96 |
99 TestSpecialOperationsNotEnumerable* collection = V8TestSpecialOperationsNotE
numerable::toNative(info.Holder()); | 97 TestSpecialOperationsNotEnumerable* collection = V8TestSpecialOperationsNotE
numerable::toNative(info.Holder()); |
100 AtomicString propertyName = toCoreAtomicString(name); | 98 AtomicString propertyName = toCoreAtomicString(name); |
101 String element = collection->anonymousNamedGetter(propertyName); | 99 String element = collection->anonymousNamedGetter(propertyName); |
102 if (element.isNull()) | 100 if (element.isNull()) |
103 return; | 101 return; |
104 v8SetReturnValueString(info, element, info.GetIsolate()); | 102 v8SetReturnValueString(info, element, info.GetIsolate()); |
105 } | 103 } |
106 | 104 |
107 static void namedPropertyGetterCallback(v8::Local<v8::String> name, const v8::Pr
opertyCallbackInfo<v8::Value>& info) | 105 static void namedPropertyGetterCallback(v8::Local<v8::String> name, const v8::Pr
opertyCallbackInfo<v8::Value>& info) |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 fromInternalPointer(object)->deref(); | 176 fromInternalPointer(object)->deref(); |
179 } | 177 } |
180 | 178 |
181 template<> | 179 template<> |
182 v8::Handle<v8::Value> toV8NoInline(TestSpecialOperationsNotEnumerable* impl, v8:
:Handle<v8::Object> creationContext, v8::Isolate* isolate) | 180 v8::Handle<v8::Value> toV8NoInline(TestSpecialOperationsNotEnumerable* impl, v8:
:Handle<v8::Object> creationContext, v8::Isolate* isolate) |
183 { | 181 { |
184 return toV8(impl, creationContext, isolate); | 182 return toV8(impl, creationContext, isolate); |
185 } | 183 } |
186 | 184 |
187 } // namespace WebCore | 185 } // namespace WebCore |
OLD | NEW |