| 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();
 | 
| 
 |