From 2fe6f350cb25a59997f2ce633fd5849a9652b9fa Mon Sep 17 00:00:00 2001 From: Pawel Kozlowski Date: Tue, 21 May 2019 11:36:22 +0200 Subject: [PATCH] refactor(ivy): avoid repeated read of LView from global state (#30587) PR Close #30587 --- packages/core/src/render3/query.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/core/src/render3/query.ts b/packages/core/src/render3/query.ts index a3f2a3550e..dd918278b3 100644 --- a/packages/core/src/render3/query.ts +++ b/packages/core/src/render3/query.ts @@ -368,11 +368,10 @@ type QueryList_ = QueryList& {_valuesTree: any[], _static: boolean}; * @param read What to save in the query * @returns QueryList */ -export function query( +function query( // TODO: "read" should be an AbstractType (FW-486) - predicate: Type| string[], descend: boolean, read: any): QueryList { + lView: LView, predicate: Type| string[], descend: boolean, read: any): QueryList { ngDevMode && assertPreviousIsParent(getIsParent()); - const lView = getLView(); const queryList = new QueryList() as QueryList_; const queries = lView[QUERIES] || (lView[QUERIES] = new LQueries_(null, null, null)); queryList._valuesTree = []; @@ -443,7 +442,7 @@ export function ɵɵviewQuery( tView.expandoStartIndex++; } const index = getCurrentQueryIndex(); - const viewQuery: QueryList = query(predicate, descend, read); + const viewQuery: QueryList = query(lView, predicate, descend, read); store(index - HEADER_OFFSET, viewQuery); setCurrentQueryIndex(index + 1); return viewQuery; @@ -478,7 +477,7 @@ export function ɵɵcontentQuery( read: any): QueryList { const lView = getLView(); const tView = lView[TVIEW]; - const contentQuery: QueryList = query(predicate, descend, read); + const contentQuery: QueryList = query(lView, predicate, descend, read); (lView[CONTENT_QUERIES] || (lView[CONTENT_QUERIES] = [])).push(contentQuery); if (tView.firstTemplatePass) { const tViewContentQueries = tView.contentQueries || (tView.contentQueries = []);