Changeset 110004 in webkit
- Timestamp:
- Mar 6, 2012 7:53:17 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r110003 r110004 1 2012-03-06 Kentaro Hara <haraken@chromium.org> 2 3 Unreviewed, rolling out r109969. 4 http://trac.webkit.org/changeset/109969 5 https://bugs.webkit.org/show_bug.cgi?id=80376 6 7 layout tests crash 8 9 * bindings/v8/V8HiddenPropertyName.cpp: 10 (WebCore): 11 (WebCore::V8HiddenPropertyName::hiddenReferenceName): 12 * bindings/v8/V8HiddenPropertyName.h: 13 (WebCore): 14 (V8HiddenPropertyName): 15 * bindings/v8/custom/V8DOMStringMapCustom.cpp: 16 (WebCore::toV8): 17 * bindings/v8/custom/V8DOMTokenListCustom.cpp: 18 (WebCore::toV8): 19 * bindings/v8/custom/V8NamedNodeMapCustom.cpp: 20 (WebCore::toV8): 21 1 22 2012-03-06 Kentaro Hara <haraken@chromium.org> 2 23 -
trunk/Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp
r109969 r110004 34 34 #include "V8Binding.h" 35 35 #include <string.h> 36 #include <wtf/StdLibExtras.h>37 36 #include <wtf/Vector.h> 38 37 … … 42 41 #define V8_AS_STRING_IMPL(x) #x 43 42 44 #define V8_DEFINE_ HIDDEN_PROPERTY(name, prefix) \43 #define V8_DEFINE_PROPERTY(name) \ 45 44 v8::Handle<v8::String> V8HiddenPropertyName::name() \ 46 45 { \ 47 DEFINE_STATIC_LOCAL(v8::Persistent<v8::String>, hiddenPropertyName, (createString(prefix V8_AS_STRING(name)))); \ 48 return hiddenPropertyName; \ 46 V8HiddenPropertyName* hiddenPropertyName = V8BindingPerIsolateData::current()->hiddenPropertyName(); \ 47 if (hiddenPropertyName->m_##name.IsEmpty()) { \ 48 hiddenPropertyName->m_##name = createString("WebCore::HiddenProperty::" V8_AS_STRING(name)); \ 49 } \ 50 return hiddenPropertyName->m_##name; \ 49 51 } 50 52 51 V8_HIDDEN_PROPERTIES(V8_DEFINE_HIDDEN_PROPERTY); 53 V8_HIDDEN_PROPERTIES(V8_DEFINE_PROPERTY); 54 55 static const char hiddenReferenceNamePrefix[] = "WebCore::HiddenReference::"; 52 56 53 57 v8::Handle<v8::String> V8HiddenPropertyName::hiddenReferenceName(const char* name) 54 58 { 55 59 Vector<char, 64> prefixedName; 56 prefixedName.append( V8_HIDDEN_REFERENCE_PREFIX, sizeof(V8_HIDDEN_REFERENCE_PREFIX) - 1);60 prefixedName.append(hiddenReferenceNamePrefix, sizeof(hiddenReferenceNamePrefix) - 1); 57 61 ASSERT(name && strlen(name)); 58 62 prefixedName.append(name, strlen(name)); -
trunk/Source/WebCore/bindings/v8/V8HiddenPropertyName.h
r109969 r110004 36 36 namespace WebCore { 37 37 38 #define V8_HIDDEN_PROPERTY_PREFIX "WebCore::HiddenProperty::" 39 #define V8_HIDDEN_REFERENCE_PREFIX "WebCore::HiddenReference::" 38 #define V8_HIDDEN_PROPERTIES(V) \ 39 V(objectPrototype) \ 40 V(listener) \ 41 V(attributeListener) \ 42 V(scriptState) \ 43 V(devtoolsInjectedScript) \ 44 V(sleepFunction) \ 45 V(toStringString) \ 46 V(event) \ 47 V(state) 40 48 41 #define V8_HIDDEN_PROPERTIES(V) \42 V(objectPrototype, V8_HIDDEN_PROPERTY_PREFIX) \43 V(listener, V8_HIDDEN_PROPERTY_PREFIX) \44 V(attributeListener, V8_HIDDEN_PROPERTY_PREFIX) \45 V(scriptState, V8_HIDDEN_PROPERTY_PREFIX) \46 V(devtoolsInjectedScript, V8_HIDDEN_PROPERTY_PREFIX) \47 V(sleepFunction, V8_HIDDEN_PROPERTY_PREFIX) \48 V(toStringString, V8_HIDDEN_PROPERTY_PREFIX) \49 V(event, V8_HIDDEN_PROPERTY_PREFIX) \50 V(state, V8_HIDDEN_PROPERTY_PREFIX) \51 V(domStringMap, V8_HIDDEN_REFERENCE_PREFIX) \52 V(domTokenList, V8_HIDDEN_REFERENCE_PREFIX) \53 V(ownerNode, V8_HIDDEN_REFERENCE_PREFIX)54 49 55 50 class V8HiddenPropertyName { 56 51 public: 57 52 V8HiddenPropertyName() { } 58 #define V8_DECLARE_PROPERTY(name , prefix) static v8::Handle<v8::String> name();53 #define V8_DECLARE_PROPERTY(name) static v8::Handle<v8::String> name(); 59 54 V8_HIDDEN_PROPERTIES(V8_DECLARE_PROPERTY); 60 55 #undef V8_DECLARE_PROPERTY … … 64 59 private: 65 60 static v8::Persistent<v8::String> createString(const char* key); 61 #define V8_DECLARE_FIELD(name) v8::Persistent<v8::String> m_##name; 62 V8_HIDDEN_PROPERTIES(V8_DECLARE_FIELD); 63 #undef V8_DECLARE_FIELD 66 64 }; 67 65 -
trunk/Source/WebCore/bindings/v8/custom/V8DOMStringMapCustom.cpp
r110003 r110004 92 92 // Add a hidden reference from the element to the DOMStringMap. 93 93 Element* element = impl->element(); 94 if (!wrapper.IsEmpty() && element) 95 toV8(element).As<v8::Object>()->SetHiddenValue(V8HiddenPropertyName::domStringMap(), wrapper); 94 if (!wrapper.IsEmpty() && element) { 95 v8::Handle<v8::Value> elementValue = toV8(element); 96 if (!elementValue.IsEmpty() && elementValue->IsObject()) 97 V8DOMWrapper::setNamedHiddenReference(elementValue.As<v8::Object>(), "domStringMap", wrapper); 98 } 96 99 return wrapper; 97 100 } -
trunk/Source/WebCore/bindings/v8/custom/V8DOMTokenListCustom.cpp
r110003 r110004 46 46 // Add a hidden reference from the element to the DOMTokenList. 47 47 Element* element = impl->element(); 48 if (!wrapper.IsEmpty() && element) 49 toV8(element).As<v8::Object>()->SetHiddenValue(V8HiddenPropertyName::domTokenList(), wrapper); 48 if (!wrapper.IsEmpty() && element) { 49 v8::Handle<v8::Value> elementValue = toV8(element); 50 if (!elementValue.IsEmpty() && elementValue->IsObject()) 51 V8DOMWrapper::setNamedHiddenReference(elementValue.As<v8::Object>(), "domTokenList", wrapper); 52 } 50 53 return wrapper; 51 54 } -
trunk/Source/WebCore/bindings/v8/custom/V8NamedNodeMapCustom.cpp
r109969 r110004 80 80 Element* element = impl->element(); 81 81 if (!wrapper.IsEmpty() && element) 82 toV8(element).As<v8::Object>()->SetHiddenValue(V8HiddenPropertyName::ownerNode(), wrapper);82 V8DOMWrapper::setNamedHiddenReference(wrapper, "ownerNode", toV8(element)); 83 83 return wrapper; 84 84 }
Note: See TracChangeset
for help on using the changeset viewer.