diff --git a/polymer.html b/polymer.html index 5f4cbbc008..605a7afc19 100644 --- a/polymer.html +++ b/polymer.html @@ -72,7 +72,7 @@ this._setupShady(); this._registerHost(); if (this._template) { - this._validateMixins(); + this._validateApplyShim(); // manage local dom this._poolContent(); // host stack diff --git a/src/lib/apply-shim.html b/src/lib/apply-shim.html index 09b8f25a18..cfde273b2d 100644 --- a/src/lib/apply-shim.html +++ b/src/lib/apply-shim.html @@ -142,8 +142,10 @@ // NOTE: since we use mixin, the map of properties is updated here // and this is what we want. combinedProps = Polymer.Base.mixin(mixinEntry.properties, mixinValues); + var currentProto = ApplyShim.__currentElementProto; + var currentElementName = currentProto && currentProto.is; for (var elementName in mixinEntry.dependants) { - if (elementName !== ApplyShim.__currentElementProto.is) { + if (elementName !== currentElementName) { mixinEntry.dependants[elementName].__mixinsInvalid = true; } } @@ -181,7 +183,9 @@ var mixinEntry = mapGet(mixinName); if (mixinEntry) { var currentProto = ApplyShim.__currentElementProto; - mixinEntry.dependants[currentProto.is] = currentProto; + if (currentProto) { + mixinEntry.dependants[currentProto.is] = currentProto; + } var p, parts, f; for (p in mixinEntry.properties) { f = fallbacks && fallbacks[p]; diff --git a/src/standard/x-styling.html b/src/standard/x-styling.html index d4e5e4378d..bbdee7c2a7 100644 --- a/src/standard/x-styling.html +++ b/src/standard/x-styling.html @@ -74,7 +74,7 @@ this._ownStylePropertyNames.length); }, - _validateMixins: function() { + _validateApplyShim: function() { if (this.__mixinsInvalid) { // rerun apply shim Polymer.ApplyShim.transform(this._styles, this.__proto__);