162ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// Copyright 2015 The Chromium Authors. All rights reserved.
262ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// Use of this source code is governed by a BSD-style license that can be
362ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch// found in the LICENSE file.
462ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch
562ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch#include "heap/stubs.h"
662ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch
762ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochnamespace blink {
862ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch
962ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochstruct HeapObject : public GarbageCollected<HeapObject> {
1062ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch    void trace(Visitor*) { }
1162ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch};
1262ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch
1362ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochtemplate<typename T>
1462ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochclass TemplateBase
1562ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch    : public GarbageCollected<TemplateBase<T> > {
1662ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochpublic:
1762ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch    void trace(Visitor* visitor) { visitor->trace(m_obj); }
1862ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochprivate:
1962ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch    Member<HeapObject> m_obj;
2062ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch};
2162ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch
2262ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdochclass Subclass : public TemplateBase<Subclass> {
2362ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch};
2462ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch
2562ed631aa0ff23db68a47fd423efa9c019ff2c9eBen Murdoch}
26