| // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| part of models; |
| |
| abstract class ObjectRef { |
| /// A unique identifier for an Object. |
| String get id; |
| } |
| |
| abstract class Object implements ObjectRef { |
| /// [optional] If an object is allocated in the Dart heap, it will have |
| /// a corresponding class object. |
| /// |
| /// The class of a non-instance is not a Dart class, but is instead |
| /// an internal vm object. |
| /// |
| /// Moving an Object into or out of the heap is considered a |
| /// backwards compatible change for types other than Instance. |
| ClassRef get clazz; |
| |
| /// [optional] The size of this object in the heap. |
| /// |
| /// If an object is not heap-allocated, then this field is omitted. |
| /// |
| /// Note that the size can be zero for some objects. In the current |
| /// VM implementation, this occurs for small integers, which are |
| /// stored entirely within their object pointers. |
| int get size; |
| |
| String get vmName; |
| } |
| |
| abstract class RetainingObject { |
| int get retainedSize; |
| ObjectRef get object; |
| } |