diff --git a/packages/core/src/render3/instructions.ts b/packages/core/src/render3/instructions.ts index ba586dfad2..c577aa5200 100644 --- a/packages/core/src/render3/instructions.ts +++ b/packages/core/src/render3/instructions.ts @@ -1272,14 +1272,15 @@ export function text(index: number, value?: any): void { * @param value Stringified value to write. */ export function textBinding(index: number, value: T | NO_CHANGE): void { - ngDevMode && assertDataInRange(index); - let existingNode = data[index] as LTextNode; - ngDevMode && assertNotNull(existingNode, 'LNode should exist'); - ngDevMode && assertNotNull(existingNode.native, 'native element should exist'); - ngDevMode && ngDevMode.rendererSetText++; - value !== NO_CHANGE && - (isProceduralRenderer(renderer) ? renderer.setValue(existingNode.native, stringify(value)) : - existingNode.native.textContent = stringify(value)); + if (value !== NO_CHANGE) { + ngDevMode && assertDataInRange(index); + const existingNode = data[index] as LTextNode; + ngDevMode && assertNotNull(existingNode, 'LNode should exist'); + ngDevMode && assertNotNull(existingNode.native, 'native element should exist'); + ngDevMode && ngDevMode.rendererSetText++; + isProceduralRenderer(renderer) ? renderer.setValue(existingNode.native, stringify(value)) : + existingNode.native.textContent = stringify(value); + } } ////////////////////////// diff --git a/packages/core/test/render3/integration_spec.ts b/packages/core/test/render3/integration_spec.ts index 7fea1a24f3..257abc1938 100644 --- a/packages/core/test/render3/integration_spec.ts +++ b/packages/core/test/render3/integration_spec.ts @@ -68,6 +68,12 @@ describe('render3 integration test', () => { expect(renderToHtml(Template, 'benoit')).toEqual('benoit'); expect(renderToHtml(Template, undefined)).toEqual(''); + expect(ngDevMode).toHaveProperties({ + firstTemplatePass: 0, + tNode: 0, + tView: 1, + rendererSetText: 2, + }); }); it('should render "null" as "" when used with `bind()`', () => { @@ -82,6 +88,12 @@ describe('render3 integration test', () => { expect(renderToHtml(Template, 'benoit')).toEqual('benoit'); expect(renderToHtml(Template, null)).toEqual(''); + expect(ngDevMode).toHaveProperties({ + firstTemplatePass: 0, + tNode: 0, + tView: 1, + rendererSetText: 2, + }); }); it('should support creation-time values in text nodes', () => { @@ -95,6 +107,12 @@ describe('render3 integration test', () => { } expect(renderToHtml(Template, 'once')).toEqual('once'); expect(renderToHtml(Template, 'twice')).toEqual('once'); + expect(ngDevMode).toHaveProperties({ + firstTemplatePass: 0, + tNode: 0, + tView: 1, + rendererSetText: 1, + }); }); });