| Index: runtime/vm/object.cc
 | 
| ===================================================================
 | 
| --- runtime/vm/object.cc	(revision 17246)
 | 
| +++ runtime/vm/object.cc	(working copy)
 | 
| @@ -542,6 +542,21 @@
 | 
|  }
 | 
|  
 | 
|  
 | 
| +void Object::VerifyBuiltinVtables() {
 | 
| +#if defined(DEBUG)
 | 
| +  Isolate* isolate = Isolate::Current();
 | 
| +  ASSERT(isolate != NULL);
 | 
| +  Class& cls = Class::Handle(isolate, Class::null());
 | 
| +  for (intptr_t cid = (kIllegalCid + 1); cid < kNumPredefinedCids; cid++) {
 | 
| +    if (isolate->class_table()->HasValidClassAt(cid)) {
 | 
| +      cls |= isolate->class_table()->At(cid);
 | 
| +      ASSERT(builtin_vtables_[cid] == cls.raw_ptr()->handle_vtable_);
 | 
| +    }
 | 
| +  }
 | 
| +#endif
 | 
| +}
 | 
| +
 | 
| +
 | 
|  void Object::RegisterClass(const Class& cls,
 | 
|                             const String& name,
 | 
|                             const Library& lib) {
 | 
| @@ -1199,15 +1214,13 @@
 | 
|        cid = kInstanceCid;
 | 
|      }
 | 
|      ASSERT(vtable() == builtin_vtables_[cid]);
 | 
| -    Isolate* isolate = Isolate::Current();
 | 
|      if (FLAG_verify_handles) {
 | 
| +      Isolate* isolate = Isolate::Current();
 | 
|        Heap* isolate_heap = isolate->heap();
 | 
|        Heap* vm_isolate_heap = Dart::vm_isolate()->heap();
 | 
|        ASSERT(isolate_heap->Contains(RawObject::ToAddr(raw_)) ||
 | 
|               vm_isolate_heap->Contains(RawObject::ToAddr(raw_)));
 | 
|      }
 | 
| -    ASSERT(builtin_vtables_[cid] ==
 | 
| -           isolate->class_table()->At(cid)->ptr()->handle_vtable_);
 | 
|    }
 | 
|  #endif
 | 
|  }
 | 
| 
 |