diff --git a/lib/mixins/property-effects.html b/lib/mixins/property-effects.html
index 59ef27e49e..109ce3d873 100644
--- a/lib/mixins/property-effects.html
+++ b/lib/mixins/property-effects.html
@@ -1466,6 +1466,8 @@
let client = clients[i];
if (!client.__dataEnabled) {
client._enableProperties();
+ } else {
+ client._flushProperties();
}
}
}
diff --git a/test/unit/templatize.html b/test/unit/templatize.html
index 5cbb44d0a6..df7be63f41 100644
--- a/test/unit/templatize.html
+++ b/test/unit/templatize.html
@@ -181,6 +181,20 @@
assert.isUndefined(childB.computedFromLiteral);
});
+ test('templatize with no props, instance manually flushes', function() {
+ let templatizeA = host.shadowRoot.querySelector('[id=templatizeA]');
+ templatizeA.go(false);
+ let childA = host.shadowRoot.querySelector('#childA');
+ assert.ok(childA);
+ sinon.spy(childA, 'objChanged');
+ assert.isUndefined(childA.obj);
+ let o = {foo: true};
+ templatizeA.instance._setPendingProperty('obj', o);
+ templatizeA.instance._flushProperties();
+ assert.equal(childA.obj, o);
+ assert.isTrue(childA.objChanged.calledOnce);
+ });
+
});
suite('templatizer behavior', function() {