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

Unified Diff: third_party/polymer/v0_8/components-chromium/polymer/src/micro/extends-extracted.js

Issue 1082403004: Import Polymer 0.8 and several key elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Also remove polymer/explainer Created 5 years, 8 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/polymer/src/micro/extends-extracted.js
diff --git a/third_party/polymer/v0_8/components-chromium/polymer/src/micro/extends-extracted.js b/third_party/polymer/v0_8/components-chromium/polymer/src/micro/extends-extracted.js
new file mode 100644
index 0000000000000000000000000000000000000000..8e88c878aa41dfc99d99eb1c04bf366582c0bc96
--- /dev/null
+++ b/third_party/polymer/v0_8/components-chromium/polymer/src/micro/extends-extracted.js
@@ -0,0 +1,69 @@
+
+
+ /**
+ * Support `extends` property (for type-extension only).
+ *
+ * If the mixin is String-valued, the corresponding Polymer module
+ * is mixed in.
+ *
+ * Polymer({
+ * is: 'pro-input',
+ * extends: 'input',
+ * ...
+ * });
+ *
+ * Type-extension objects are created using `is` notation in HTML, or via
+ * the secondary argument to `document.createElement` (the type-extension
+ * rules are part of the Custom Elements specification, not something
+ * created by Polymer).
+ *
+ * Example:
+ *
+ * <!-- right: creates a pro-input element -->
+ * <input is="pro-input">
+ *
+ * <!-- wrong: creates an unknown element -->
+ * <pro-input>
+ *
+ * <script>
+ * // right: creates a pro-input element
+ * var elt = document.createElement('input', 'pro-input');
+ *
+ * // wrong: creates an unknown element
+ * var elt = document.createElement('pro-input');
+ * <\script>
+ *
+ * @class base feature: extends
+ */
+
+ Polymer.Base._addFeature({
+
+ _prepExtends: function() {
+ if (this.extends) {
+ this.__proto__ = this.getExtendedPrototype(this.extends);
+ }
+ },
+
+ getExtendedPrototype: function(tag) {
+ return this.getExtendedNativePrototype(tag);
+ },
+
+ nativePrototypes: {}, // static
+
+ getExtendedNativePrototype: function(tag) {
+ var p = this.nativePrototypes[tag];
+ if (!p) {
+ var np = this.getNativePrototype(tag);
+ p = this.extend(Object.create(np), Polymer.Base);
+ this.nativePrototypes[tag] = p;
+ }
+ return p;
+ },
+
+ getNativePrototype: function(tag) {
+ // TODO(sjmiles): sad necessity
+ return Object.getPrototypeOf(document.createElement(tag));
+ }
+
+ });
+

Powered by Google App Engine
This is Rietveld 408576698