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); |