| Index: Source/bindings/v8/DOMDataStore.h | 
| diff --git a/Source/bindings/v8/DOMDataStore.h b/Source/bindings/v8/DOMDataStore.h | 
| index d5f458de8167d8d3343196e4c60d8f2c2a939816..df77068c89159dbee703f13c40c4b7b172bce4a6 100644 | 
| --- a/Source/bindings/v8/DOMDataStore.h | 
| +++ b/Source/bindings/v8/DOMDataStore.h | 
| @@ -51,7 +51,7 @@ public: | 
|  | 
| static DOMDataStore* current(v8::Isolate*); | 
|  | 
| -    template<typename T, typename HolderContainer, typename Wrappable> | 
| +    template<typename V8T, typename T, typename HolderContainer, typename Wrappable> | 
| static v8::Handle<v8::Object> getWrapperFast(T* object, const HolderContainer& container, Wrappable* holder) | 
| { | 
| // What we'd really like to check here is whether we're in the | 
| @@ -64,37 +64,37 @@ public: | 
| if (ScriptWrappable::wrapperCanBeStoredInObject(object)) { | 
| v8::Handle<v8::Object> result = ScriptWrappable::getUnsafeWrapperFromObject(object).handle(); | 
| // Security: always guard against malicious tampering. | 
| -                RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(result.IsEmpty() || result->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex) == static_cast<void*>(object)); | 
| +                RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(result.IsEmpty() || result->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex) == V8T::toInternalPointer(object)); | 
| return result; | 
| } | 
| -            return mainWorldStore()->m_wrapperMap.get(object); | 
| +            return mainWorldStore()->m_wrapperMap.get(V8T::toInternalPointer(object)); | 
| } | 
| -        return current(container.GetIsolate())->get(object); | 
| +        return current(container.GetIsolate())->template get<V8T>(object); | 
| } | 
|  | 
| -    template<typename T> | 
| +    template<typename V8T, typename T> | 
| static v8::Handle<v8::Object> getWrapper(T* object, v8::Isolate* isolate) | 
| { | 
| if (ScriptWrappable::wrapperCanBeStoredInObject(object) && !canExistInWorker(object)) { | 
| if (LIKELY(!DOMWrapperWorld::isolatedWorldsExist())) { | 
| v8::Handle<v8::Object> result = ScriptWrappable::getUnsafeWrapperFromObject(object).handle(); | 
| // Security: always guard against malicious tampering. | 
| -                RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(result.IsEmpty() || result->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex) == static_cast<void*>(object)); | 
| +                RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(result.IsEmpty() || result->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex) == V8T::toInternalPointer(object)); | 
| return result; | 
| } | 
| } | 
| -        return current(isolate)->get(object); | 
| +        return current(isolate)->template get<V8T>(object); | 
| } | 
|  | 
| -    template<typename T> | 
| +    template<typename V8T, typename T> | 
| static v8::Handle<v8::Object> getWrapperForMainWorld(T* object) | 
| { | 
| if (ScriptWrappable::wrapperCanBeStoredInObject(object)) | 
| return ScriptWrappable::getUnsafeWrapperFromObject(object).handle(); | 
| -        return mainWorldStore()->get(object); | 
| +        return mainWorldStore()->template get<V8T>(object); | 
| } | 
|  | 
| -    template<typename T> | 
| +    template<typename V8T, typename T> | 
| static void setWrapper(T* object, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate, const WrapperConfiguration& configuration) | 
| { | 
| if (ScriptWrappable::wrapperCanBeStoredInObject(object) && !canExistInWorker(object)) { | 
| @@ -103,21 +103,21 @@ public: | 
| return; | 
| } | 
| } | 
| -        return current(isolate)->set(object, wrapper, isolate, configuration); | 
| +        return current(isolate)->template set<V8T>(object, wrapper, isolate, configuration); | 
| } | 
|  | 
| -    template<typename T> | 
| +    template<typename V8T, typename T> | 
| inline v8::Handle<v8::Object> get(T* object) | 
| { | 
| if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_type == MainWorld) | 
| return ScriptWrappable::getUnsafeWrapperFromObject(object).handle(); | 
| -        return m_wrapperMap.get(object); | 
| +        return m_wrapperMap.get(V8T::toInternalPointer(object)); | 
| } | 
|  | 
| void reportMemoryUsage(MemoryObjectInfo*) const; | 
|  | 
| private: | 
| -    template<typename T> | 
| +    template<typename V8T, typename T> | 
| inline void set(T* object, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate, const WrapperConfiguration& configuration) | 
| { | 
| ASSERT(!!object); | 
| @@ -126,7 +126,7 @@ private: | 
| ScriptWrappable::setWrapperInObject(object, wrapper, isolate, configuration); | 
| return; | 
| } | 
| -        m_wrapperMap.set(object, wrapper, configuration); | 
| +        m_wrapperMap.set(V8T::toInternalPointer(object), wrapper, configuration); | 
| } | 
|  | 
| static DOMDataStore* mainWorldStore(); | 
|  |