Index: third_party/polymer/v1_0/components-chromium/polymer/polymer-micro-extracted.js |
diff --git a/third_party/polymer/v1_0/components-chromium/polymer/polymer-micro-extracted.js b/third_party/polymer/v1_0/components-chromium/polymer/polymer-micro-extracted.js |
index d7766c59f713ece8212576b5d79b45f4328338c6..40fa73f7a2af5bec74cb67cc843df3421b729bd6 100644 |
--- a/third_party/polymer/v1_0/components-chromium/polymer/polymer-micro-extracted.js |
+++ b/third_party/polymer/v1_0/components-chromium/polymer/polymer-micro-extracted.js |
@@ -32,6 +32,7 @@ settings.useNativeShadow = settings.useShadow && settings.nativeShadow; |
settings.usePolyfillProto = !settings.useNativeCustomElements && !Object.__proto__; |
settings.hasNativeCSSProperties = !navigator.userAgent.match('AppleWebKit/601') && window.CSS && CSS.supports && CSS.supports('box-shadow', '0 0 0 var(--foo)'); |
settings.useNativeCSSProperties = settings.hasNativeCSSProperties && settings.lazyRegister && settings.useNativeCSSProperties; |
+settings.isIE = navigator.userAgent.match('Trident'); |
return settings; |
}() |
};(function () { |
@@ -43,15 +44,15 @@ prototype = prototype.prototype; |
if (!prototype) { |
prototype = {}; |
} |
-var factory = desugar(prototype); |
-prototype = factory.prototype; |
+prototype = desugar(prototype); |
+var customCtor = prototype === prototype.constructor.prototype ? prototype.constructor : null; |
var options = { prototype: prototype }; |
if (prototype.extends) { |
options.extends = prototype.extends; |
} |
Polymer.telemetry._registrate(prototype); |
-document.registerElement(prototype.is, options); |
-return factory; |
+var ctor = document.registerElement(prototype.is, options); |
+return customCtor || ctor; |
}; |
var desugar = function (prototype) { |
var base = Polymer.Base; |
@@ -60,14 +61,20 @@ base = Polymer.Base._getExtendedPrototype(prototype.extends); |
} |
prototype = Polymer.Base.chainObject(prototype, base); |
prototype.registerCallback(); |
-return prototype.constructor; |
+return prototype; |
}; |
if (userPolymer) { |
for (var i in userPolymer) { |
Polymer[i] = userPolymer[i]; |
} |
} |
-Polymer.Class = desugar; |
+Polymer.Class = function (prototype) { |
+if (!prototype.factoryImpl) { |
+prototype.factoryImpl = function () { |
+}; |
+} |
+return desugar(prototype).constructor; |
+}; |
}()); |
Polymer.telemetry = { |
registrations: [], |
@@ -85,7 +92,7 @@ this.registrations.forEach(this._regLog); |
enumerable: true, |
configurable: true, |
get: function () { |
-return (document._currentScript || document.currentScript).ownerDocument; |
+return (document._currentScript || document.currentScript || {}).ownerDocument; |
} |
});Polymer.RenderStatus = { |
_ready: false, |
@@ -164,7 +171,7 @@ var settings = Polymer.Settings; |
Polymer.Base = { |
__isPolymerInstance__: true, |
_addFeature: function (feature) { |
-this.extend(this, feature); |
+this.mixin(this, feature); |
}, |
registerCallback: function () { |
if (settings.lazyRegister === 'max') { |
@@ -173,7 +180,15 @@ this.beforeRegister(); |
} |
} else { |
this._desugarBehaviors(); |
-this._doBehavior('beforeRegister'); |
+for (var i = 0, b; i < this.behaviors.length; i++) { |
+b = this.behaviors[i]; |
+if (b.beforeRegister) { |
+b.beforeRegister.call(this); |
+} |
+} |
+if (this.beforeRegister) { |
+this.beforeRegister(); |
+} |
} |
this._registerFeatures(); |
if (!settings.lazyRegister) { |
@@ -181,12 +196,33 @@ this.ensureRegisterFinished(); |
} |
}, |
createdCallback: function () { |
+if (settings.disableUpgradeEnabled) { |
+if (this.hasAttribute('disable-upgrade')) { |
+this._propertySetter = disableUpgradePropertySetter; |
+this._configValue = null; |
+this.__data__ = {}; |
+return; |
+} else { |
+this.__hasInitialized = true; |
+} |
+} |
+this.__initialize(); |
+}, |
+__initialize: function () { |
if (!this.__hasRegisterFinished) { |
this._ensureRegisterFinished(this.__proto__); |
} |
Polymer.telemetry.instanceCount++; |
this.root = this; |
-this._doBehavior('created'); |
+for (var i = 0, b; i < this.behaviors.length; i++) { |
+b = this.behaviors[i]; |
+if (b.created) { |
+b.created.call(this); |
+} |
+} |
+if (this.created) { |
+this.created(); |
+} |
this._initFeatures(); |
}, |
ensureRegisterFinished: function () { |
@@ -196,13 +232,26 @@ _ensureRegisterFinished: function (proto) { |
if (proto.__hasRegisterFinished !== proto.is || !proto.is) { |
if (settings.lazyRegister === 'max') { |
proto._desugarBehaviors(); |
-proto._doBehaviorOnly('beforeRegister'); |
+for (var i = 0, b; i < proto.behaviors.length; i++) { |
+b = proto.behaviors[i]; |
+if (b.beforeRegister) { |
+b.beforeRegister.call(proto); |
+} |
+} |
} |
proto.__hasRegisterFinished = proto.is; |
if (proto._finishRegisterFeatures) { |
proto._finishRegisterFeatures(); |
} |
-proto._doBehavior('registered'); |
+for (var j = 0, pb; j < proto.behaviors.length; j++) { |
+pb = proto.behaviors[j]; |
+if (pb.registered) { |
+pb.registered.call(proto); |
+} |
+} |
+if (proto.registered) { |
+proto.registered(); |
+} |
if (settings.usePolyfillProto && proto !== this) { |
proto.extend(this, proto); |
} |
@@ -212,23 +261,43 @@ attachedCallback: function () { |
var self = this; |
Polymer.RenderStatus.whenReady(function () { |
self.isAttached = true; |
-self._doBehavior('attached'); |
+for (var i = 0, b; i < self.behaviors.length; i++) { |
+b = self.behaviors[i]; |
+if (b.attached) { |
+b.attached.call(self); |
+} |
+} |
+if (self.attached) { |
+self.attached(); |
+} |
}); |
}, |
detachedCallback: function () { |
var self = this; |
Polymer.RenderStatus.whenReady(function () { |
self.isAttached = false; |
-self._doBehavior('detached'); |
+for (var i = 0, b; i < self.behaviors.length; i++) { |
+b = self.behaviors[i]; |
+if (b.detached) { |
+b.detached.call(self); |
+} |
+} |
+if (self.detached) { |
+self.detached(); |
+} |
}); |
}, |
attributeChangedCallback: function (name, oldValue, newValue) { |
this._attributeChangedImpl(name); |
-this._doBehavior('attributeChanged', [ |
-name, |
-oldValue, |
-newValue |
-]); |
+for (var i = 0, b; i < this.behaviors.length; i++) { |
+b = this.behaviors[i]; |
+if (b.attributeChanged) { |
+b.attributeChanged.call(this, name, oldValue, newValue); |
+} |
+} |
+if (this.attributeChanged) { |
+this.attributeChanged(name, oldValue, newValue); |
+} |
}, |
_attributeChangedImpl: function (name) { |
this._setAttributeToProperty(this, name); |
@@ -299,6 +368,23 @@ object.__proto__ = inherited; |
return object; |
}; |
Polymer.Base = Polymer.Base.chainObject(Polymer.Base, HTMLElement.prototype); |
+Polymer.BaseDescriptors = {}; |
+var disableUpgradePropertySetter; |
+if (settings.disableUpgradeEnabled) { |
+disableUpgradePropertySetter = function (property, value) { |
+this.__data__[property] = value; |
+}; |
+var origAttributeChangedCallback = Polymer.Base.attributeChangedCallback; |
+Polymer.Base.attributeChangedCallback = function (name, oldValue, newValue) { |
+if (!this.__hasInitialized && name === 'disable-upgrade') { |
+this.__hasInitialized = true; |
+this._propertySetter = Polymer.Bind._modelApi._propertySetter; |
+this._configValue = Polymer.Base._configValue; |
+this.__initialize(); |
+} |
+origAttributeChangedCallback.call(this, name, oldValue, newValue); |
+}; |
+} |
if (window.CustomElements) { |
Polymer.instanceof = CustomElements.instanceof; |
} else { |
@@ -320,8 +406,7 @@ var DomModule = function () { |
return document.createElement('dom-module'); |
}; |
DomModule.prototype = Object.create(HTMLElement.prototype); |
-Polymer.Base.extend(DomModule.prototype, { |
-constructor: DomModule, |
+Polymer.Base.mixin(DomModule.prototype, { |
createdCallback: function () { |
this.register(); |
}, |
@@ -347,6 +432,11 @@ return m; |
} |
} |
}); |
+Object.defineProperty(DomModule.prototype, 'constructor', { |
+value: DomModule, |
+configurable: true, |
+writable: true |
+}); |
var cePolyfill = window.CustomElements && !CustomElements.useNative; |
document.registerElement('dom-module', DomModule); |
function forceDomModulesUpgrade() { |
@@ -411,11 +501,16 @@ return flat; |
}, |
_mixinBehavior: function (b) { |
var n$ = Object.getOwnPropertyNames(b); |
+var useAssignment = b._noAccessors; |
for (var i = 0, n; i < n$.length && (n = n$[i]); i++) { |
if (!Polymer.Base._behaviorProperties[n] && !this.hasOwnProperty(n)) { |
+if (useAssignment) { |
+this[n] = b[n]; |
+} else { |
this.copyOwnProperty(n, b, this); |
} |
} |
+} |
}, |
_prepBehaviors: function () { |
this._prepFlattenedBehaviors(this.behaviors); |
@@ -426,23 +521,6 @@ this._prepBehavior(behaviors[i]); |
} |
this._prepBehavior(this); |
}, |
-_doBehavior: function (name, args) { |
-for (var i = 0; i < this.behaviors.length; i++) { |
-this._invokeBehavior(this.behaviors[i], name, args); |
-} |
-this._invokeBehavior(this, name, args); |
-}, |
-_doBehaviorOnly: function (name, args) { |
-for (var i = 0; i < this.behaviors.length; i++) { |
-this._invokeBehavior(this.behaviors[i], name, args); |
-} |
-}, |
-_invokeBehavior: function (b, name, args) { |
-var fn = b[name]; |
-if (fn) { |
-fn.apply(this, args || Polymer.nar); |
-} |
-}, |
_marshalBehaviors: function () { |
for (var i = 0; i < this.behaviors.length; i++) { |
this._marshalBehavior(this.behaviors[i]); |
@@ -461,7 +539,8 @@ created: true, |
attached: true, |
detached: true, |
attributeChanged: true, |
-ready: true |
+ready: true, |
+_noAccessors: true |
};Polymer.Base._addFeature({ |
_getExtendedPrototype: function (tag) { |
return this._getExtendedNativePrototype(tag); |
@@ -470,8 +549,14 @@ _nativePrototypes: {}, |
_getExtendedNativePrototype: function (tag) { |
var p = this._nativePrototypes[tag]; |
if (!p) { |
-var np = this.getNativePrototype(tag); |
-p = this.extend(Object.create(np), Polymer.Base); |
+p = Object.create(this.getNativePrototype(tag)); |
+var p$ = Object.getOwnPropertyNames(Polymer.Base); |
+for (var i = 0, n; i < p$.length && (n = p$[i]); i++) { |
+if (!Polymer.BaseDescriptors[n]) { |
+p[n] = Polymer.Base[n]; |
+} |
+} |
+Object.defineProperties(p, Polymer.BaseDescriptors); |
this._nativePrototypes[tag] = p; |
} |
return p; |
@@ -507,7 +592,6 @@ return elt; |
} |
});Polymer.nob = Object.create(null); |
Polymer.Base._addFeature({ |
-properties: {}, |
getPropertyInfo: function (property) { |
var info = this._getPropertyInfo(property, this.properties); |
if (!info) { |
@@ -564,7 +648,17 @@ t.readOnly = s.readOnly; |
} |
} |
} |
-});Polymer.CaseMap = { |
+}); |
+(function () { |
+var propertiesDesc = { |
+configurable: true, |
+writable: true, |
+enumerable: true, |
+value: {} |
+}; |
+Polymer.BaseDescriptors.properties = propertiesDesc; |
+Object.defineProperty(Polymer.Base, 'properties', propertiesDesc); |
+}());Polymer.CaseMap = { |
_caseMap: {}, |
_rx: { |
dashToCamel: /-[a-z]/g, |
@@ -688,7 +782,7 @@ default: |
return value != null ? value : undefined; |
} |
} |
-});Polymer.version = "1.6.1";Polymer.Base._addFeature({ |
+});Polymer.version = "1.8.1";Polymer.Base._addFeature({ |
_registerFeatures: function () { |
this._prepIs(); |
this._prepBehaviors(); |