| Index: polymer_1.0.4/bower_components/webcomponentsjs/CustomElements.js
|
| diff --git a/polymer_0.5.4/bower_components/webcomponentsjs/CustomElements.js b/polymer_1.0.4/bower_components/webcomponentsjs/CustomElements.js
|
| similarity index 90%
|
| copy from polymer_0.5.4/bower_components/webcomponentsjs/CustomElements.js
|
| copy to polymer_1.0.4/bower_components/webcomponentsjs/CustomElements.js
|
| index 530a0e1c3042481ea55fdf3b80821efd8738da2b..ae4af3b5b1e95e6e7c3a1811964b219ba3d93dad 100644
|
| --- a/polymer_0.5.4/bower_components/webcomponentsjs/CustomElements.js
|
| +++ b/polymer_1.0.4/bower_components/webcomponentsjs/CustomElements.js
|
| @@ -7,7 +7,7 @@
|
| * 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
|
| */
|
| -// @version 0.5.4
|
| +// @version 0.7.5
|
| if (typeof WeakMap === "undefined") {
|
| (function() {
|
| var defineProperty = Object.defineProperty;
|
| @@ -315,7 +315,6 @@ if (typeof WeakMap === "undefined") {
|
| this.addTransientObserver(e.target);
|
|
|
| case "DOMNodeInserted":
|
| - var target = e.relatedNode;
|
| var changedNode = e.target;
|
| var addedNodes, removedNodes;
|
| if (e.type === "DOMNodeInserted") {
|
| @@ -327,12 +326,12 @@ if (typeof WeakMap === "undefined") {
|
| }
|
| var previousSibling = changedNode.previousSibling;
|
| var nextSibling = changedNode.nextSibling;
|
| - var record = getRecord("childList", target);
|
| + var record = getRecord("childList", e.target.parentNode);
|
| record.addedNodes = addedNodes;
|
| record.removedNodes = removedNodes;
|
| record.previousSibling = previousSibling;
|
| record.nextSibling = nextSibling;
|
| - forEachAncestorAndObserverEnqueueRecord(target, function(options) {
|
| + forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function(options) {
|
| if (!options.childList) return;
|
| return record;
|
| });
|
| @@ -362,11 +361,11 @@ window.CustomElements = window.CustomElements || {
|
| scope.addModule = addModule;
|
| scope.initializeModules = initializeModules;
|
| scope.hasNative = Boolean(document.registerElement);
|
| - scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || HTMLImports.useNative);
|
| -})(CustomElements);
|
| + scope.useNative = !flags.register && scope.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);
|
| +})(window.CustomElements);
|
|
|
| -CustomElements.addModule(function(scope) {
|
| - var IMPORT_LINK_TYPE = window.HTMLImports ? HTMLImports.IMPORT_LINK_TYPE : "none";
|
| +window.CustomElements.addModule(function(scope) {
|
| + var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none";
|
| function forSubtree(node, cb) {
|
| findAllElements(node, function(e) {
|
| if (cb(e)) {
|
| @@ -399,14 +398,11 @@ CustomElements.addModule(function(scope) {
|
| root = root.olderShadowRoot;
|
| }
|
| }
|
| - var processingDocuments;
|
| function forDocumentTree(doc, cb) {
|
| - processingDocuments = [];
|
| - _forDocumentTree(doc, cb);
|
| - processingDocuments = null;
|
| + _forDocumentTree(doc, cb, []);
|
| }
|
| - function _forDocumentTree(doc, cb) {
|
| - doc = wrap(doc);
|
| + function _forDocumentTree(doc, cb, processingDocuments) {
|
| + doc = window.wrap(doc);
|
| if (processingDocuments.indexOf(doc) >= 0) {
|
| return;
|
| }
|
| @@ -414,7 +410,7 @@ CustomElements.addModule(function(scope) {
|
| var imports = doc.querySelectorAll("link[rel=" + IMPORT_LINK_TYPE + "]");
|
| for (var i = 0, l = imports.length, n; i < l && (n = imports[i]); i++) {
|
| if (n.import) {
|
| - _forDocumentTree(n.import, cb);
|
| + _forDocumentTree(n.import, cb, processingDocuments);
|
| }
|
| }
|
| cb(doc);
|
| @@ -423,7 +419,7 @@ CustomElements.addModule(function(scope) {
|
| scope.forSubtree = forSubtree;
|
| });
|
|
|
| -CustomElements.addModule(function(scope) {
|
| +window.CustomElements.addModule(function(scope) {
|
| var flags = scope.flags;
|
| var forSubtree = scope.forSubtree;
|
| var forDocumentTree = scope.forDocumentTree;
|
| @@ -521,7 +517,7 @@ CustomElements.addModule(function(scope) {
|
| if (p == doc) {
|
| return true;
|
| }
|
| - p = p.parentNode || p.host;
|
| + p = p.parentNode || p.nodeType === Node.DOCUMENT_FRAGMENT_NODE && p.host;
|
| }
|
| }
|
| function watchShadow(node) {
|
| @@ -568,9 +564,9 @@ CustomElements.addModule(function(scope) {
|
| flags.dom && console.groupEnd();
|
| }
|
| function takeRecords(node) {
|
| - node = wrap(node);
|
| + node = window.wrap(node);
|
| if (!node) {
|
| - node = wrap(document);
|
| + node = window.wrap(document);
|
| }
|
| while (node.parentNode) {
|
| node = node.parentNode;
|
| @@ -594,7 +590,7 @@ CustomElements.addModule(function(scope) {
|
| inRoot.__observer = observer;
|
| }
|
| function upgradeDocument(doc) {
|
| - doc = wrap(doc);
|
| + doc = window.wrap(doc);
|
| flags.dom && console.group("upgradeDocument: ", doc.baseURI.split("/").pop());
|
| addedNode(doc);
|
| observe(doc);
|
| @@ -604,11 +600,13 @@ CustomElements.addModule(function(scope) {
|
| forDocumentTree(doc, upgradeDocument);
|
| }
|
| var originalCreateShadowRoot = Element.prototype.createShadowRoot;
|
| - Element.prototype.createShadowRoot = function() {
|
| - var root = originalCreateShadowRoot.call(this);
|
| - CustomElements.watchShadow(this);
|
| - return root;
|
| - };
|
| + if (originalCreateShadowRoot) {
|
| + Element.prototype.createShadowRoot = function() {
|
| + var root = originalCreateShadowRoot.call(this);
|
| + window.CustomElements.watchShadow(this);
|
| + return root;
|
| + };
|
| + }
|
| scope.watchShadow = watchShadow;
|
| scope.upgradeDocumentTree = upgradeDocumentTree;
|
| scope.upgradeSubtree = addedSubtree;
|
| @@ -617,7 +615,7 @@ CustomElements.addModule(function(scope) {
|
| scope.takeRecords = takeRecords;
|
| });
|
|
|
| -CustomElements.addModule(function(scope) {
|
| +window.CustomElements.addModule(function(scope) {
|
| var flags = scope.flags;
|
| function upgrade(node) {
|
| if (!node.__upgraded__ && node.nodeType === Node.ELEMENT_NODE) {
|
| @@ -677,9 +675,10 @@ CustomElements.addModule(function(scope) {
|
| scope.implementPrototype = implementPrototype;
|
| });
|
|
|
| -CustomElements.addModule(function(scope) {
|
| +window.CustomElements.addModule(function(scope) {
|
| + var isIE11OrOlder = scope.isIE11OrOlder;
|
| var upgradeDocumentTree = scope.upgradeDocumentTree;
|
| - var upgrade = scope.upgrade;
|
| + var upgradeAll = scope.upgradeAll;
|
| var upgradeWithDefinition = scope.upgradeWithDefinition;
|
| var implementPrototype = scope.implementPrototype;
|
| var useNative = scope.useNative;
|
| @@ -808,6 +807,12 @@ CustomElements.addModule(function(scope) {
|
| }
|
| }
|
| function createElement(tag, typeExtension) {
|
| + if (tag) {
|
| + tag = tag.toLowerCase();
|
| + }
|
| + if (typeExtension) {
|
| + typeExtension = typeExtension.toLowerCase();
|
| + }
|
| var definition = getRegisteredDefinition(typeExtension || tag);
|
| if (definition) {
|
| if (tag == definition.tag && typeExtension == definition.is) {
|
| @@ -829,14 +834,8 @@ CustomElements.addModule(function(scope) {
|
| }
|
| return element;
|
| }
|
| - function cloneNode(deep) {
|
| - var n = domCloneNode.call(this, deep);
|
| - upgrade(n);
|
| - return n;
|
| - }
|
| var domCreateElement = document.createElement.bind(document);
|
| var domCreateElementNS = document.createElementNS.bind(document);
|
| - var domCloneNode = Node.prototype.cloneNode;
|
| var isInstance;
|
| if (!Object.__proto__ && !useNative) {
|
| isInstance = function(obj, ctor) {
|
| @@ -854,10 +853,34 @@ CustomElements.addModule(function(scope) {
|
| return obj instanceof base;
|
| };
|
| }
|
| + function wrapDomMethodToForceUpgrade(obj, methodName) {
|
| + var orig = obj[methodName];
|
| + obj[methodName] = function() {
|
| + var n = orig.apply(this, arguments);
|
| + upgradeAll(n);
|
| + return n;
|
| + };
|
| + }
|
| + wrapDomMethodToForceUpgrade(Node.prototype, "cloneNode");
|
| + wrapDomMethodToForceUpgrade(document, "importNode");
|
| + if (isIE11OrOlder) {
|
| + (function() {
|
| + var importNode = document.importNode;
|
| + document.importNode = function() {
|
| + var n = importNode.apply(document, arguments);
|
| + if (n.nodeType == n.DOCUMENT_FRAGMENT_NODE) {
|
| + var f = document.createDocumentFragment();
|
| + f.appendChild(n);
|
| + return f;
|
| + } else {
|
| + return n;
|
| + }
|
| + };
|
| + })();
|
| + }
|
| document.registerElement = register;
|
| document.createElement = createElement;
|
| document.createElementNS = createElementNS;
|
| - Node.prototype.cloneNode = cloneNode;
|
| scope.registry = registry;
|
| scope.instanceof = isInstance;
|
| scope.reservedTagList = reservedTagList;
|
| @@ -886,8 +909,8 @@ CustomElements.addModule(function(scope) {
|
| var upgradeDocumentTree = scope.upgradeDocumentTree;
|
| if (!window.wrap) {
|
| if (window.ShadowDOMPolyfill) {
|
| - window.wrap = ShadowDOMPolyfill.wrapIfNeeded;
|
| - window.unwrap = ShadowDOMPolyfill.unwrapIfNeeded;
|
| + window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded;
|
| + window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded;
|
| } else {
|
| window.wrap = window.unwrap = function(node) {
|
| return node;
|
| @@ -895,17 +918,17 @@ CustomElements.addModule(function(scope) {
|
| }
|
| }
|
| function bootstrap() {
|
| - upgradeDocumentTree(wrap(document));
|
| + upgradeDocumentTree(window.wrap(document));
|
| if (window.HTMLImports) {
|
| - HTMLImports.__importsParsingHook = function(elt) {
|
| + window.HTMLImports.__importsParsingHook = function(elt) {
|
| upgradeDocumentTree(wrap(elt.import));
|
| };
|
| }
|
| - CustomElements.ready = true;
|
| + window.CustomElements.ready = true;
|
| setTimeout(function() {
|
| - CustomElements.readyTime = Date.now();
|
| + window.CustomElements.readyTime = Date.now();
|
| if (window.HTMLImports) {
|
| - CustomElements.elapsed = CustomElements.readyTime - HTMLImports.readyTime;
|
| + window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime;
|
| }
|
| document.dispatchEvent(new CustomEvent("WebComponentsReady", {
|
| bubbles: true
|
| @@ -917,6 +940,13 @@ CustomElements.addModule(function(scope) {
|
| params = params || {};
|
| var e = document.createEvent("CustomEvent");
|
| e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail);
|
| + e.preventDefault = function() {
|
| + Object.defineProperty(this, "defaultPrevented", {
|
| + get: function() {
|
| + return true;
|
| + }
|
| + });
|
| + };
|
| return e;
|
| };
|
| window.CustomEvent.prototype = window.Event.prototype;
|
| @@ -926,7 +956,8 @@ CustomElements.addModule(function(scope) {
|
| } else if (document.readyState === "interactive" && !window.attachEvent && (!window.HTMLImports || window.HTMLImports.ready)) {
|
| bootstrap();
|
| } else {
|
| - var loadEvent = window.HTMLImports && !HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded";
|
| + var loadEvent = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" : "DOMContentLoaded";
|
| window.addEventListener(loadEvent, bootstrap);
|
| }
|
| + scope.isIE11OrOlder = isIE11OrOlder;
|
| })(window.CustomElements);
|
|
|