blob: 044072fde44dc4dd83c22896e987a516119984a9 [file] [log] [blame]
// 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;
}