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

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: Fix comment and merge. 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
Index: corelib/src/expando.dart
diff --git a/corelib/src/expando.dart b/corelib/src/expando.dart
new file mode 100644
index 0000000000000000000000000000000000000000..e21c5aaf071ba072d11417527eb83c37c9b4dbdf
--- /dev/null
+++ b/corelib/src/expando.dart
@@ -0,0 +1,38 @@
+// 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.
sra1 2012/06/12 07:10:26 It does not look like adding properties to an obje
+ */
+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
sra1 2012/06/12 07:10:26 'only used' - I'm confused. If I create two const
+ * debugging purposes and creating two different (non-const)
+ * [Expando]s with the same name yields two [Expando]s that work on
+ * different properties of the objects they are used on.
+ */
+ 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].
sra1 2012/06/12 07:10:26 Explain when the call will fail,
+ */
+ 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') | lib/compiler/implementation/lib/js_helper.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698