// Copyright (c) 2012, 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. patch class Object { // Helpers used to implement hashCode. If a hashCode is used we remember it // using an Expando object. A new hashCode value is calculated using a Random // number generator. static Expando _hashCodeExp = new Expando("Object.hashCode"); static Random _hashCodeRnd = new Random(); /* patch */ int get hashCode { var result = _hashCodeExp[this]; if (result == null) { result = _hashCodeRnd.nextInt(0x40000000); // Stay in Smi range. _hashCodeExp[this] = result; } return result; } /* patch */ String toString() native "Object_toString"; // A statically dispatched version of Object.toString. static String _toString(obj) native "Object_toString"; _noSuchMethod(bool isMethod, String memberName, List arguments, Map namedArguments) native "Object_noSuchMethod"; /* patch */ noSuchMethod(InvocationMirror invocation) { return _noSuchMethod(invocation.isMethod, invocation.memberName, invocation.positionalArguments, invocation.namedArguments); } /* patch */ Type get runtimeType native "Object_runtimeType"; }