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

Unified Diff: third_party/polymer/v1_0/components-chromium/polymer/polymer-mini-extracted.js

Issue 1468623004: Update Polymer from 1.2.1 -> 1.2.3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@travis-yml
Patch Set: local-state.html Created 5 years, 1 month 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/v1_0/components-chromium/polymer/polymer-mini-extracted.js
diff --git a/third_party/polymer/v1_0/components-chromium/polymer/polymer-mini-extracted.js b/third_party/polymer/v1_0/components-chromium/polymer/polymer-mini-extracted.js
index e1e62f6118352ada22fd425d1e6cf5c4b618edc8..a34346f7cbbd42cf0a8e26ad778d6f261b2ee869 100644
--- a/third_party/polymer/v1_0/components-chromium/polymer/polymer-mini-extracted.js
+++ b/third_party/polymer/v1_0/components-chromium/polymer/polymer-mini-extracted.js
@@ -1,12 +1,13 @@
Polymer.Base._addFeature({
_prepTemplate: function () {
-this._template = this._template || Polymer.DomModule.import(this.is, 'template');
+if (this._template === undefined) {
+this._template = Polymer.DomModule.import(this.is, 'template');
+}
if (this._template && this._template.hasAttribute('is')) {
this._warn(this._logf('_prepTemplate', 'top-level Polymer template ' + 'must not be a type-extension, found', this._template, 'Move inside simple <template>.'));
}
-if (this._template && !this._template.content && HTMLTemplateElement.bootstrap) {
+if (this._template && !this._template.content && window.HTMLTemplateElement && HTMLTemplateElement.decorate) {
HTMLTemplateElement.decorate(this._template);
-HTMLTemplateElement.bootstrap(this._template.content);
}
},
_stampTemplate: function () {
@@ -25,20 +26,19 @@ Polymer.Base._addFeature({
_hostStack: [],
ready: function () {
},
-_pushHost: function (host) {
+_registerHost: function (host) {
this.dataHost = host = host || Polymer.Base._hostStack[Polymer.Base._hostStack.length - 1];
if (host && host._clients) {
host._clients.push(this);
}
-this._beginHost();
},
-_beginHost: function () {
+_beginHosting: function () {
Polymer.Base._hostStack.push(this);
if (!this._clients) {
this._clients = [];
}
},
-_popHost: function () {
+_endHosting: function () {
Polymer.Base._hostStack.pop();
},
_tryReady: function () {
@@ -51,20 +51,24 @@ return !this.dataHost || this.dataHost._clientsReadied;
},
_ready: function () {
this._beforeClientsReady();
+if (this._template) {
this._setupRoot();
this._readyClients();
+}
+this._clientsReadied = true;
+this._clients = null;
this._afterClientsReady();
this._readySelf();
},
_readyClients: function () {
this._beginDistribute();
var c$ = this._clients;
+if (c$) {
for (var i = 0, l = c$.length, c; i < l && (c = c$[i]); i++) {
c._ready();
}
+}
this._finishDistribute();
-this._clientsReadied = true;
-this._clients = null;
},
_readySelf: function () {
this._doBehavior('ready');
@@ -367,20 +371,16 @@ var nativeRemoveChild = Element.prototype.removeChild;
var nativeAppendChild = Element.prototype.appendChild;
var nativeCloneNode = Element.prototype.cloneNode;
var nativeImportNode = Document.prototype.importNode;
-var DomApi = function (node) {
-this.node = node;
-if (this.patch) {
-this.patch();
-}
+var needsToWrap = Settings.hasShadow && !Settings.nativeShadow;
+var wrap = window.wrap ? window.wrap : function (node) {
+return node;
};
-if (window.wrap && Settings.useShadow && !Settings.useNativeShadow) {
-DomApi = function (node) {
-this.node = wrap(node);
+var DomApi = function (node) {
+this.node = needsToWrap ? wrap(node) : node;
if (this.patch) {
this.patch();
}
};
-}
DomApi.prototype = {
flush: function () {
Polymer.dom.flush();
@@ -615,7 +615,7 @@ _addLogicalInfo: function (node, container, index) {
var children = factory(container).childNodes;
index = index === undefined ? children.length : index;
if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
-var c$ = Array.prototype.slice.call(node.childNodes);
+var c$ = arrayCopyChildNodes(node);
for (var i = 0, n; i < c$.length && (n = c$[i]); i++) {
children.splice(index++, 0, n);
n._lightParent = container;
@@ -777,7 +777,7 @@ Object.defineProperties(DomApi.prototype, {
childNodes: {
get: function () {
var c$ = getLightChildren(this.node);
-return Array.isArray(c$) ? c$ : Array.prototype.slice.call(c$);
+return Array.isArray(c$) ? c$ : arrayCopyChildNodes(this.node);
},
configurable: true
},
@@ -900,7 +900,7 @@ if (nt !== Node.TEXT_NODE || nt !== Node.COMMENT_NODE) {
this._clear();
var d = document.createElement('div');
d.innerHTML = text;
-var c$ = Array.prototype.slice.call(d.childNodes);
+var c$ = arrayCopyChildNodes(d);
for (var i = 0; i < c$.length; i++) {
this.appendChild(c$[i]);
}
@@ -913,20 +913,25 @@ DomApi.prototype._getComposedInnerHTML = function () {
return getInnerHTML(this.node, true);
};
} else {
-var forwardMethods = [
+var forwardMethods = function (m$) {
+for (var i = 0; i < m$.length; i++) {
+forwardMethod(m$[i]);
+}
+};
+var forwardMethod = function (method) {
+DomApi.prototype[method] = function () {
+return this.node[method].apply(this.node, arguments);
+};
+};
+forwardMethods([
'cloneNode',
'appendChild',
'insertBefore',
'removeChild',
'replaceChild'
-];
-forwardMethods.forEach(function (name) {
-DomApi.prototype[name] = function () {
-return this.node[name].apply(this.node, arguments);
-};
-});
+]);
DomApi.prototype.querySelectorAll = function (selector) {
-return Array.prototype.slice.call(this.node.querySelectorAll(selector));
+return arrayCopy(this.node.querySelectorAll(selector));
};
DomApi.prototype.getOwnerRoot = function () {
var n = this.node;
@@ -943,35 +948,24 @@ return doc.importNode(externalNode, deep);
};
DomApi.prototype.getDestinationInsertionPoints = function () {
var n$ = this.node.getDestinationInsertionPoints && this.node.getDestinationInsertionPoints();
-return n$ ? Array.prototype.slice.call(n$) : [];
+return n$ ? arrayCopy(n$) : [];
};
DomApi.prototype.getDistributedNodes = function () {
var n$ = this.node.getDistributedNodes && this.node.getDistributedNodes();
-return n$ ? Array.prototype.slice.call(n$) : [];
+return n$ ? arrayCopy(n$) : [];
};
DomApi.prototype._distributeParent = function () {
};
-var nativeForwards = [
-'appendChild',
-'insertBefore',
-'removeChild',
-'replaceChild'
-];
-nativeForwards.forEach(function (forward) {
-DomApi.prototype[forward] = function () {
-return this.node[forward].apply(this.node, arguments);
-};
-});
Object.defineProperties(DomApi.prototype, {
childNodes: {
get: function () {
-return Array.prototype.slice.call(this.node.childNodes);
+return arrayCopyChildNodes(this.node);
},
configurable: true
},
children: {
get: function () {
-return Array.prototype.slice.call(this.node.children);
+return arrayCopyChildren(this.node);
},
configurable: true
},
@@ -994,7 +988,20 @@ return this.node.innerHTML = value;
configurable: true
}
});
-var forwardProperties = [
+var forwardProperties = function (f$) {
+for (var i = 0; i < f$.length; i++) {
+forwardProperty(f$[i]);
+}
+};
+var forwardProperty = function (name) {
+Object.defineProperty(DomApi.prototype, name, {
+get: function () {
+return this.node[name];
+},
+configurable: true
+});
+};
+forwardProperties([
'parentNode',
'firstChild',
'lastChild',
@@ -1004,15 +1011,7 @@ var forwardProperties = [
'lastElementChild',
'nextElementSibling',
'previousElementSibling'
-];
-forwardProperties.forEach(function (name) {
-Object.defineProperty(DomApi.prototype, name, {
-get: function () {
-return this.node[name];
-},
-configurable: true
-});
-});
+]);
}
var CONTENT = 'content';
function factory(node, patch) {
@@ -1026,6 +1025,7 @@ return node.__domApi;
function hasDomApi(node) {
return Boolean(node.__domApi);
}
+;
Polymer.dom = function (obj, patch) {
if (obj instanceof Event) {
return Polymer.EventApi.factory(obj);
@@ -1039,7 +1039,7 @@ return children ? children : node.childNodes;
}
function getComposedChildren(node) {
if (!node._composedChildren) {
-node._composedChildren = Array.prototype.slice.call(node.childNodes);
+node._composedChildren = arrayCopyChildNodes(node);
}
return node._composedChildren;
}
@@ -1075,13 +1075,35 @@ children.splice(i, 1);
}
function saveLightChildrenIfNeeded(node) {
if (!node._lightChildren) {
-var c$ = Array.prototype.slice.call(node.childNodes);
+var c$ = arrayCopyChildNodes(node);
for (var i = 0, l = c$.length, child; i < l && (child = c$[i]); i++) {
child._lightParent = child._lightParent || node;
}
node._lightChildren = c$;
}
}
+function arrayCopyChildNodes(parent) {
+var copy = [], i = 0;
+for (var n = parent.firstChild; n; n = n.nextSibling) {
+copy[i++] = n;
+}
+return copy;
+}
+function arrayCopyChildren(parent) {
+var copy = [], i = 0;
+for (var n = parent.firstElementChild; n; n = n.nextElementSibling) {
+copy[i++] = n;
+}
+return copy;
+}
+function arrayCopy(a$) {
+var l = a$.length;
+var copy = new Array(l);
+for (var i = 0; i < l; i++) {
+copy[i] = a$[i];
+}
+return copy;
+}
function hasInsertionPoint(root) {
return Boolean(root && root._insertionPoints.length);
}
@@ -1097,7 +1119,11 @@ matchesSelector: matchesSelector,
hasInsertionPoint: hasInsertionPoint,
ctor: DomApi,
factory: factory,
-hasDomApi: hasDomApi
+hasDomApi: hasDomApi,
+arrayCopy: arrayCopy,
+arrayCopyChildNodes: arrayCopyChildNodes,
+arrayCopyChildren: arrayCopyChildren,
+wrap: wrap
};
}();
Polymer.Base.extend(Polymer.dom, {
@@ -1318,7 +1344,10 @@ n.__observeNodesMap.set(this, this._observeContent(n));
}
},
_observeContent: function (content) {
-var h = Polymer.dom(content).observeNodes(this._scheduleNotify.bind(this));
+var self = this;
+var h = Polymer.dom(content).observeNodes(function () {
+self._scheduleNotify();
+});
h._avoidChangeCalculation = true;
return h;
},
@@ -1395,7 +1424,9 @@ self._scheduleNotify();
}
};
this._observer = new MutationObserver(this._mutationHandler);
-this._boundFlush = this._flush.bind(this);
+this._boundFlush = function () {
+self._flush();
+};
Polymer.dom.addStaticFlush(this._boundFlush);
this._observer.observe(this.node, { childList: true });
}
@@ -1464,7 +1495,10 @@ if (!this._observer) {
var root = this.domApi.getOwnerRoot();
var host = root && root.host;
if (host) {
-this._observer = Polymer.dom(host).observeNodes(this._scheduleNotify.bind(this));
+var self = this;
+this._observer = Polymer.dom(host).observeNodes(function () {
+self._scheduleNotify();
+});
this._observer._isContentListener = true;
if (this._hasAttrSelect()) {
Polymer.dom(host).observer.enableShadowAttributeTracking();
@@ -1509,6 +1543,7 @@ upgradeLightChildren(this._lightChildren);
_createLocalRoot: function () {
this.shadyRoot = this.root;
this.shadyRoot._distributionClean = false;
+this.shadyRoot._hasDistributed = false;
this.shadyRoot._isShadyRoot = true;
this.shadyRoot._dirtyRoots = [];
var i$ = this.shadyRoot._insertionPoints = !this._notes || this._notes._hasContent ? this.shadyRoot.querySelectorAll('content') : [];
@@ -1835,20 +1870,23 @@ Polymer.DomModule = document.createElement('dom-module');
Polymer.Base._addFeature({
_registerFeatures: function () {
this._prepIs();
-this._prepAttributes();
this._prepBehaviors();
this._prepConstructor();
this._prepTemplate();
this._prepShady();
+this._prepPropertyInfo();
},
_prepBehavior: function (b) {
this._addHostAttributes(b.hostAttributes);
},
_initFeatures: function () {
+this._registerHost();
+if (this._template) {
this._poolContent();
-this._pushHost();
+this._beginHosting();
this._stampTemplate();
-this._popHost();
+this._endHosting();
+}
this._marshalHostAttributes();
this._setupDebouncers();
this._marshalBehaviors();

Powered by Google App Engine
This is Rietveld 408576698