Add HeapTest and make GC work enough to pass it

Change-Id: If06eaef2921b64b3226bfd347acaec60ec993e67
diff --git a/src/mark_sweep.h b/src/mark_sweep.h
index 5f374ae..00bfc4c 100644
--- a/src/mark_sweep.h
+++ b/src/mark_sweep.h
@@ -15,7 +15,13 @@
 class MarkSweep {
  public:
   MarkSweep() :
-      finger_(NULL), condemned_(NULL) {
+      finger_(NULL),
+      condemned_(NULL),
+      soft_reference_list_(NULL),
+      weak_reference_list_(NULL),
+      finalizer_reference_list_(NULL),
+      phantom_reference_list_(NULL),
+      cleared_reference_list_(NULL) {
   }
 
   ~MarkSweep();
@@ -48,6 +54,8 @@
     return mark_bitmap_->Test(object);
   }
 
+  static void MarkObjectVisitor(Object* root, void* arg);
+
   // Marks an object.
   void MarkObject(const Object* obj);
 
@@ -140,16 +148,6 @@
 
   Object* cleared_reference_list_;
 
-  static size_t reference_referent_offset_;
-
-  static size_t reference_queue_offset_;
-
-  static size_t reference_queueNext_offset_;
-
-  static size_t reference_pendingNext_offset_;
-
-  static size_t finalizer_reference_zombie_offset_;
-
   DISALLOW_COPY_AND_ASSIGN(MarkSweep);
 };