diff --git a/src/lib/template/templatizer.html b/src/lib/template/templatizer.html
index edc12c1a31..549bb8ee12 100644
--- a/src/lib/template/templatizer.html
+++ b/src/lib/template/templatizer.html
@@ -246,9 +246,7 @@
template._forwardParentProp = this._forwardParentProp.bind(this);
}
this._extendTemplate(template, proto);
- if (template != this) {
- template._pathEffector = this._pathEffectorTemplate.bind(this);
- }
+ template._pathEffector = this._pathEffectorImpl.bind(this, template);
}
},
@@ -306,22 +304,14 @@
},
// Overrides Base notify-path module
- _pathEffector: function(path, value, fromAbove) {
- if (this._forwardParentPath) {
- if (path.indexOf(this._parentPropPrefix) === 0) {
- this._forwardParentPath(path.substring(8), value);
- }
- }
- Polymer.Base._pathEffector.apply(this, arguments);
- },
-
- // Overrides Base notify-path module (for non-PE templates)
- _pathEffectorTemplate: function(path, value, fromAbove) {
+ _pathEffectorImpl: function(template, path, value, fromAbove) {
if (this._forwardParentPath) {
if (path.indexOf(this._parentPropPrefix) === 0) {
- this._forwardParentPath(path.substring(8), value);
+ var subPath = path.substring(this._parentPropPrefix.length);
+ this._forwardParentPath(subPath, value);
}
}
+ Polymer.Base._pathEffector.call(template, path, value, fromAbove);
},
_constructorImpl: function(model, host) {