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

Unified Diff: third_party/polymer/v0_8/components-chromium/more-routing/emitter-extracted.js

Issue 1140393002: Update more-routing for md-settings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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: third_party/polymer/v0_8/components-chromium/more-routing/emitter-extracted.js
diff --git a/third_party/polymer/v0_8/components-chromium/more-routing/emitter-extracted.js b/third_party/polymer/v0_8/components-chromium/more-routing/emitter-extracted.js
new file mode 100644
index 0000000000000000000000000000000000000000..48461026da06b49bf7ddad91d10418f1ef3c5fe5
--- /dev/null
+++ b/third_party/polymer/v0_8/components-chromium/more-routing/emitter-extracted.js
@@ -0,0 +1,68 @@
+
+(function(scope) {
+var MoreRouting = scope.MoreRouting = scope.MoreRouting || {};
+MoreRouting.Emitter = Object.create(null); // Minimal set of properties.
+
+/**
+ * A dumb prototype that provides very simple event subscription.
+ *
+ * You are responsible for initializing `__listeners` as an array on objects
+ * that make use of this.
+ */
+Object.defineProperties(MoreRouting.Emitter, {
+
+ /**
+ * Registers a callback that will be called each time any parameter managed by
+ * this object (or its parents) have changed.
+ *
+ * @param {!Function} callback
+ * @return {{close: function()}}
+ */
+ __subscribe: {
+ value: function __subscribe(callback) {
+ this.__listeners.push(callback);
+
+ return {
+ close: this.__unsubscribe.bind(this, callback),
+ };
+ },
+ },
+
+ /**
+ * Unsubscribes a previously registered callback.
+ *
+ * @param {!Function} callback
+ */
+ __unsubscribe: {
+ value: function __unsubscribe(callback) {
+ var index = this.__listeners.indexOf(callback);
+ if (index < 0) {
+ console.warn(this, 'attempted unsubscribe of unregistered listener:', callback);
+ return;
+ }
+ this.__listeners.splice(index, 1);
+ },
+ },
+
+ /**
+ * Notifies subscribed callbacks.
+ */
+ __notify: {
+ value: function __notify(key, value) {
+ if (this.__silent) return;
+ var args = Array.prototype.slice.call(arguments);
+ // Notify listeners on parents first.
+ var parent = Object.getPrototypeOf(this);
+ if (parent && parent.__notify && parent.__listeners) {
+ parent.__notify.apply(parent, args);
+ }
+
+ this.__listeners.forEach(function(listener) {
+ listener.apply(null, args);
+ }.bind(this));
+ },
+ },
+
+});
+
+})(window);

Powered by Google App Engine
This is Rietveld 408576698