| Index: runtime/lib/object_patch.dart
|
| ===================================================================
|
| --- runtime/lib/object_patch.dart (revision 12648)
|
| +++ runtime/lib/object_patch.dart (working copy)
|
| @@ -3,6 +3,22 @@
|
| // 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() => _toString(this);
|
|
|
| /* patch */ void noSuchMethod(String functionName, List args) {
|
|
|