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() {