Chromium Code Reviews| Index: lib/core/object.dart |
| diff --git a/lib/core/object.dart b/lib/core/object.dart |
| index 2d09bf45c1debdeb76fc53e175f86bbfbf573b29..544c2c486ce8bdd5d38abc6fb70658d8bd84f7a9 100644 |
| --- a/lib/core/object.dart |
| +++ b/lib/core/object.dart |
| @@ -6,19 +6,62 @@ |
| * Everything in Dart is an [Object]. |
| */ |
| class Object { |
| + /** |
| + * Object constructor. |
|
Lasse Reichstein Nielsen
2012/09/24 10:43:18
That's obvious. This constructor is only here beca
Mads Ager (google)
2012/09/24 11:07:15
Done, thanks.
|
| + */ |
| const Object(); |
| + /** |
| + * The equality operator. |
|
Lasse Reichstein Nielsen
2012/09/24 10:43:18
We'll probably want to add something about equival
|
| + * |
| + * The default behavior for all [Object]s is to return true if and |
| + * only if [:this:] and [other] are the same object. |
| + * |
| + * If a subclass overrides the equality operator it should override |
| + * the [hashCode] method as well to maintain consistency. |
| + */ |
| bool operator ==(other) => identical(this, other); |
| + /** |
| + * Get a hash code for this object. |
| + * |
| + * All objects have hash codes. Hash codes are guaranteed to be the |
| + * same for objects that are equal when compared using the equality |
| + * operator [:==:]. Other than that there are no guarantees about |
| + * the hash codes. They will not be consistent between runs and |
| + * there are no distribution guarantees. |
|
Lasse Reichstein Nielsen
2012/09/24 10:43:18
I really want to promise that hash-codes are 32-bi
Mads Ager (google)
2012/09/24 11:07:15
I don't see a problem with using 32-bit unsigned i
|
| + * |
| + * If a subclass overrides [hashCode] it should override the |
| + * equality operator as well to maintain consistency. |
| + */ |
| external int hashCode(); |
| + /** |
| + * Returns a string representation of this object. |
| + */ |
| external String toString(); |
| + /** |
| + * [noSuchMethod] is invoked when users invoke a non-existant method |
| + * on an object. The name of the method and the arguments of the |
| + * invocation are passed to [noSuchMethod]. If [noSuchMethod] |
| + * returns a value, that value becomes the result of the original |
| + * invocation. |
| + * |
| + * The default behavior of [noSuchMethod] is to throw a |
| + * [noSuchMethodError]. |
| + */ |
| external void noSuchMethod(String name, List args); |
|
Mads Ager (google)
2012/09/24 10:13:13
The void return type is confusing here. Should we
Lasse Reichstein Nielsen
2012/09/24 10:43:18
If anything, we should change it to Dynamic. And y
Mads Ager (google)
2012/09/24 11:07:15
I have changed it to Dynamic.
|
| + /** |
| + * Returns the representation of the runtime type of the object. |
|
Lasse Reichstein Nielsen
2012/09/24 10:43:18
the representation -> a representation.
We don't g
Mads Ager (google)
2012/09/24 11:07:15
Done.
|
| + */ |
| external Type runtimeType(); |
| } |
| +/** |
| + * Representation of the runtime type of an object. |
|
Lasse Reichstein Nielsen
2012/09/24 10:43:18
Just "Representation of a type." You can get repre
Mads Ager (google)
2012/09/24 11:07:15
Done.
|
| + */ |
| abstract class Type {} |
| /** |