Index: runtime/bin/vmservice/observatory/deployed/web/packages/template_binding/js/microtask.js |
diff --git a/runtime/bin/vmservice/observatory/deployed/web/packages/template_binding/js/microtask.js b/runtime/bin/vmservice/observatory/deployed/web/packages/template_binding/js/microtask.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ad954e3198c91238d4994f97ca4cd4403b23af02 |
--- /dev/null |
+++ b/runtime/bin/vmservice/observatory/deployed/web/packages/template_binding/js/microtask.js |
@@ -0,0 +1,37 @@ |
+/* |
+ * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
+ * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt |
+ * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
+ * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt |
+ * Code distributed by Google as part of the polymer project is also |
+ * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt |
+ */ |
+ |
+(function(scope) { |
+ |
+var iterations = 0; |
+var callbacks = []; |
+var twiddle = document.createTextNode(''); |
+ |
+function endOfMicrotask(callback) { |
+ twiddle.textContent = iterations++; |
+ callbacks.push(callback); |
+} |
+ |
+function atEndOfMicrotask() { |
+ while (callbacks.length) { |
+ callbacks.shift()(); |
+ } |
+} |
+ |
+new (window.MutationObserver || JsMutationObserver)(atEndOfMicrotask) |
+ .observe(twiddle, {characterData: true}) |
+ ; |
+ |
+// exports |
+scope.endOfMicrotask = endOfMicrotask; |
+// bc |
+Platform.endOfMicrotask = endOfMicrotask; |
+ |
+})(Polymer); |
+ |