Skip to content

Commit 83631b2

Browse files
JoostKalxhub
authored andcommitted
perf(ivy): avoid creating bound function in pipeBind3 (angular#23882)
PR Close angular#23882
1 parent d4b6c41 commit 83631b2

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

packages/core/src/render3/pipe.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export function pipeBind2(index: number, v1: any, v2: any): any {
102102
*/
103103
export function pipeBind3(index: number, v1: any, v2: any, v3: any): any {
104104
const pipeInstance = load<PipeTransform>(index);
105-
return isPure(index) ? pureFunction3(pipeInstance.transform.bind(pipeInstance), v1, v2, v3) :
105+
return isPure(index) ? pureFunction3(pipeInstance.transform, v1, v2, v3, pipeInstance) :
106106
pipeInstance.transform(v1, v2, v3);
107107
}
108108

packages/core/src/render3/pure_function.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {bindingUpdated, bindingUpdated2, bindingUpdated4, checkAndUpdateBinding,
1515
* value. If it has been saved, returns the saved value.
1616
*
1717
* @param pureFn Function that returns a value
18+
* @param thisArg Optional calling context of pureFn
1819
* @returns value
1920
*/
2021
export function pureFunction0<T>(pureFn: () => T, thisArg?: any): T {
@@ -28,6 +29,7 @@ export function pureFunction0<T>(pureFn: () => T, thisArg?: any): T {
2829
*
2930
* @param pureFn Function that returns an updated value
3031
* @param exp Updated expression value
32+
* @param thisArg Optional calling context of pureFn
3133
* @returns Updated value
3234
*/
3335
export function pureFunction1(pureFn: (v: any) => any, exp: any, thisArg?: any): any {
@@ -43,6 +45,7 @@ export function pureFunction1(pureFn: (v: any) => any, exp: any, thisArg?: any):
4345
* @param pureFn
4446
* @param exp1
4547
* @param exp2
48+
* @param thisArg Optional calling context of pureFn
4649
* @returns Updated value
4750
*/
4851
export function pureFunction2(
@@ -60,6 +63,7 @@ export function pureFunction2(
6063
* @param exp1
6164
* @param exp2
6265
* @param exp3
66+
* @param thisArg Optional calling context of pureFn
6367
* @returns Updated value
6468
*/
6569
export function pureFunction3(
@@ -81,6 +85,7 @@ export function pureFunction3(
8185
* @param exp2
8286
* @param exp3
8387
* @param exp4
88+
* @param thisArg Optional calling context of pureFn
8489
* @returns Updated value
8590
*/
8691
export function pureFunction4(
@@ -102,6 +107,7 @@ export function pureFunction4(
102107
* @param exp3
103108
* @param exp4
104109
* @param exp5
110+
* @param thisArg Optional calling context of pureFn
105111
* @returns Updated value
106112
*/
107113
export function pureFunction5(
@@ -126,6 +132,7 @@ export function pureFunction5(
126132
* @param exp4
127133
* @param exp5
128134
* @param exp6
135+
* @param thisArg Optional calling context of pureFn
129136
* @returns Updated value
130137
*/
131138
export function pureFunction6(
@@ -151,6 +158,7 @@ export function pureFunction6(
151158
* @param exp5
152159
* @param exp6
153160
* @param exp7
161+
* @param thisArg Optional calling context of pureFn
154162
* @returns Updated value
155163
*/
156164
export function pureFunction7(
@@ -178,6 +186,7 @@ export function pureFunction7(
178186
* @param exp6
179187
* @param exp7
180188
* @param exp8
189+
* @param thisArg Optional calling context of pureFn
181190
* @returns Updated value
182191
*/
183192
export function pureFunction8(
@@ -200,7 +209,8 @@ export function pureFunction8(
200209
*
201210
* @param pureFn A pure function that takes binding values and builds an object or array
202211
* containing those values.
203-
* @param exp An array of binding values
212+
* @param exps An array of binding values
213+
* @param thisArg Optional calling context of pureFn
204214
* @returns Updated value
205215
*/
206216
export function pureFunctionV(pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any {

0 commit comments

Comments
 (0)