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