| // 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 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"; | |
| /* patch */ Dynamic noSuchMethod(String functionName, List args) | |
| native "Object_noSuchMethod"; | |
| /* patch */ Type get runtimeType native "Object_runtimeType"; | |
| } |