Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Unified Diff: corelib/src/expando.dart

Issue 10534089: Add experimental expando support. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Improve const expando tests. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | lib/compiler/implementation/lib/core.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: corelib/src/expando.dart
diff --git a/corelib/src/expando.dart b/corelib/src/expando.dart
new file mode 100644
index 0000000000000000000000000000000000000000..55094a5b29c804d697ea01c1b64837cd289d7c5c
--- /dev/null
+++ b/corelib/src/expando.dart
@@ -0,0 +1,37 @@
+// 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.
+
+/**
+ * An [Expando] allows adding new properties to objects.
+ */
+interface Expando<T> default _Expando<T> {
+
+ /**
+ * The name of the this [Expando] as passed to the constructor. If
+ * no name was passed to the constructor, the name is [null].
+ */
+ final String name;
+
+ /**
+ * Creates a new [Expando]. The optional name is only used for
+ * debugging purposes and creating two different (non-const)
+ * [Expando]s with the same name does not
Ivan Posva 2012/06/11 13:54:37 short comment
kasperl 2012/06/12 05:16:05 Done.
+ */
+ const Expando([String name]);
+
+ /**
+ * Gets the value of this [Expando]'s property on the given
+ * object. If the object hasn't been expanded, the method returns
+ * [null].
+ */
+ T operator [](Object object);
+
+ /**
+ * Sets the value of this [Expando]'s property on the given
+ * object. Properties can effectively be removed again by setting
+ * their value to null.
+ */
+ void operator []=(Object object, T value);
+
+}
« no previous file with comments | « no previous file | lib/compiler/implementation/lib/core.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698