1f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Copyright 2015 The Chromium Authors. All rights reserved.
2f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// found in the LICENSE file.
4f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch
5f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#include "heap/stubs.h"
6f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch
7f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochnamespace blink {
8f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch
9f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochstruct HeapObject : public GarbageCollected<HeapObject> {
10f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch    void trace(Visitor*) { }
11f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch};
12f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch
13f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochtemplate<typename T>
14f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochclass TemplateBase
15f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch    : public GarbageCollected<TemplateBase<T> > {
16f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochpublic:
17f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch    void trace(Visitor* visitor) { visitor->trace(m_obj); }
18f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochprivate:
19f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch    Member<HeapObject> m_obj;
20f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch};
21f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch
22f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochclass Subclass : public TemplateBase<Subclass> {
23f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch};
24f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch
25f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch}
26