// Copyright (c) 2017, 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 "internal_patch.dart";

class ClassID {
  @pragma("vm:exact-result-type", "dart:core#_Smi")
  static int getID(Object value) native "ClassID_getID";

  static final int cidArray = 0;
  static final int cidExternalOneByteString = 0;
  static final int cidGrowableObjectArray = 0;
  static final int cidImmutableArray = 0;
  static final int cidOneByteString = 0;
  static final int cidTwoByteString = 0;
}
