Index: Source/platform/heap/Handle.h |
diff --git a/Source/platform/heap/Handle.h b/Source/platform/heap/Handle.h |
index af8842df8dea803143c2fb9add4ffb90ee8e6dcd..305378a15e7c965a18d7499dcc465397cf4b6704 100644 |
--- a/Source/platform/heap/Handle.h |
+++ b/Source/platform/heap/Handle.h |
@@ -961,6 +961,78 @@ template<typename T> PassOwnPtrWillBeRawPtr<T> adoptPtrWillBeNoop(T* ptr) { retu |
#endif // ENABLE(OILPAN) |
+template<typename T> |
+class TraceEagerlyTrait<Member<T>> { |
+public: |
+ static const bool value = TraceEagerlyTrait<T>::value; |
+}; |
+ |
+template<typename T> |
+class TraceEagerlyTrait<WeakMember<T>> { |
+public: |
+ static const bool value = TraceEagerlyTrait<T>::value; |
+}; |
+ |
+template<typename T> |
+class TraceEagerlyTrait<Persistent<T>> { |
+public: |
+ static const bool value = TraceEagerlyTrait<T>::value; |
+}; |
+ |
+template<typename T> |
+class TraceEagerlyTrait<CrossThreadPersistent<T>> { |
+public: |
+ static const bool value = TraceEagerlyTrait<T>::value; |
+}; |
+ |
+template<typename T, typename U, typename V, typename W, typename X> |
+class TraceEagerlyTrait<HeapHashMap<T, U, V, W, X> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T) || IS_EAGERLY_TRACED_HEAP_COLLECTION(U); |
+}; |
+ |
+template<typename T, typename U, typename V> |
+class TraceEagerlyTrait<HeapHashSet<T, U, V> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T); |
+}; |
+ |
+template<typename T, typename U, typename V> |
+class TraceEagerlyTrait<HeapLinkedHashSet<T, U, V> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T); |
+}; |
+ |
+template<typename T, size_t inlineCapacity, typename U> |
+class TraceEagerlyTrait<HeapListHashSet<T, inlineCapacity, U> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T); |
+}; |
+ |
+template<typename T, size_t inlineCapacity> |
+class TraceEagerlyTrait<HeapVector<T, inlineCapacity> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T); |
+}; |
+ |
+template<typename T, typename U> |
+class TraceEagerlyTrait<HeapVectorBacking<T, U> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T); |
+}; |
+ |
+template<typename T, size_t inlineCapacity> |
+class TraceEagerlyTrait<HeapDeque<T, inlineCapacity> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T); |
+}; |
+ |
+template<typename T, typename U, typename V> |
+class TraceEagerlyTrait<HeapHashCountedSet<T, U, V> > { |
+public: |
+ static const bool value = IS_EAGERLY_TRACED_HEAP_COLLECTION(T); |
+}; |
+ |
} // namespace blink |
namespace WTF { |