mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
fix(ivy): fix performance counter for textBinding instruction (#23924)
PR Close #23924
This commit is contained in:
parent
1cd9e6c2eb
commit
95074ca303
2 changed files with 27 additions and 8 deletions
|
|
@ -1272,14 +1272,15 @@ export function text(index: number, value?: any): void {
|
|||
* @param value Stringified value to write.
|
||||
*/
|
||||
export function textBinding<T>(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);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue