Skip to content

Commit a73d530

Browse files
karavicb
authored andcommitted
refactor(ivy): rename objectLiteral to pureFn to prep for pipes (#22214)
PR Close #22214
1 parent e1bf067 commit a73d530

File tree

6 files changed

+185
-159
lines changed

6 files changed

+185
-159
lines changed

packages/core/src/core_render3_private_export.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export {
2121
PublicFeature as ɵPublicFeature,
2222
NgOnChangesFeature as ɵNgOnChangesFeature,
2323
CssSelector as ɵCssSelector,
24+
NC as ɵNC,
2425
C as ɵC,
2526
E as ɵE,
2627
L as ɵL,
@@ -43,15 +44,15 @@ export {
4344
pb3 as ɵpb3,
4445
pb4 as ɵpb4,
4546
pbV as ɵpbV,
46-
o1 as ɵo1,
47-
o2 as ɵo2,
48-
o3 as ɵo3,
49-
o4 as ɵo4,
50-
o5 as ɵo5,
51-
o6 as ɵo6,
52-
o7 as ɵo7,
53-
o8 as ɵo8,
54-
oV as ɵoV,
47+
f1 as ɵf1,
48+
f2 as ɵf2,
49+
f3 as ɵf3,
50+
f4 as ɵf4,
51+
f5 as ɵf5,
52+
f6 as ɵf6,
53+
f7 as ɵf7,
54+
f8 as ɵf8,
55+
fV as ɵfV,
5556
cR as ɵcR,
5657
cr as ɵcr,
5758
qR as ɵqR,

packages/core/src/render3/index.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,16 @@ export {
7979
queryRefresh as qR,
8080
} from './query';
8181
export {
82-
objectLiteral1 as o1,
83-
objectLiteral2 as o2,
84-
objectLiteral3 as o3,
85-
objectLiteral4 as o4,
86-
objectLiteral5 as o5,
87-
objectLiteral6 as o6,
88-
objectLiteral7 as o7,
89-
objectLiteral8 as o8,
90-
objectLiteralV as oV,
91-
} from './object_literal';
82+
pureFunction1 as f1,
83+
pureFunction2 as f2,
84+
pureFunction3 as f3,
85+
pureFunction4 as f4,
86+
pureFunction5 as f5,
87+
pureFunction6 as f6,
88+
pureFunction7 as f7,
89+
pureFunction8 as f8,
90+
pureFunctionV as fV,
91+
} from './pure_function';
9292

9393

9494
// clang-format on

packages/core/src/render3/object_literal.ts renamed to packages/core/src/render3/pure_function.ts

Lines changed: 62 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,31 @@
99
import {NO_CHANGE, bind, peekBinding} from './instructions';
1010

1111
/**
12-
* If the object or array has changed, returns a copy with the updated expression.
13-
* Or if the expression hasn't changed, returns NO_CHANGE.
12+
* If the value of the provided exp has changed, calls the pure function to
13+
* return an updated value. Or if the value has not changed, returns NO_CHANGE.
1414
*
15-
* @param factoryFn Function that returns an updated instance of the object/array
15+
* @param pureFn Function that returns an updated value
1616
* @param exp Updated expression value
17-
* @returns A copy of the object/array or NO_CHANGE
17+
* @returns Updated value or NO_CHANGE
1818
*/
19-
export function objectLiteral1(factoryFn: (v: any) => any, exp: any): any {
19+
export function pureFunction1(pureFn: (v: any) => any, exp: any): any {
2020
let different = false;
2121
const latestValue = exp === NO_CHANGE ? peekBinding() : exp;
2222
if (bind(exp) !== NO_CHANGE) different = true;
2323

24-
return different ? factoryFn(latestValue) : NO_CHANGE;
24+
return different ? pureFn(latestValue) : NO_CHANGE;
2525
}
2626

2727
/**
28-
* If the object or array has changed, returns a copy with all updated expressions.
29-
* Or if no expressions have changed, returns NO_CHANGE.
28+
* If the value of any provided exp has changed, calls the pure function to
29+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
3030
*
31-
* @param factoryFn
31+
* @param pureFn
3232
* @param exp1
3333
* @param exp2
34-
* @returns A copy of the object/array or NO_CHANGE
34+
* @returns Updated value or NO_CHANGE
3535
*/
36-
export function objectLiteral2(factoryFn: (v1: any, v2: any) => any, exp1: any, exp2: any): any {
36+
export function pureFunction2(pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any): any {
3737
let different = false;
3838

3939
const latestVal1 = exp1 === NO_CHANGE ? peekBinding() : exp1;
@@ -42,21 +42,21 @@ export function objectLiteral2(factoryFn: (v1: any, v2: any) => any, exp1: any,
4242
const latestVal2 = exp2 === NO_CHANGE ? peekBinding() : exp2;
4343
if (bind(exp2) !== NO_CHANGE) different = true;
4444

45-
return different ? factoryFn(latestVal1, latestVal2) : NO_CHANGE;
45+
return different ? pureFn(latestVal1, latestVal2) : NO_CHANGE;
4646
}
4747

4848
/**
49-
* If the object or array has changed, returns a copy with all updated expressions.
50-
* Or if no expressions have changed, returns NO_CHANGE.
49+
* If the value of any provided exp has changed, calls the pure function to
50+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
5151
*
52-
* @param factoryFn
52+
* @param pureFn
5353
* @param exp1
5454
* @param exp2
5555
* @param exp3
56-
* @returns A copy of the object/array or NO_CHANGE
56+
* @returns Updated value or NO_CHANGE
5757
*/
58-
export function objectLiteral3(
59-
factoryFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any): any {
58+
export function pureFunction3(
59+
pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any): any {
6060
let different = false;
6161

6262
const latestVal1 = exp1 === NO_CHANGE ? peekBinding() : exp1;
@@ -68,22 +68,22 @@ export function objectLiteral3(
6868
const latestVal3 = exp3 === NO_CHANGE ? peekBinding() : exp3;
6969
if (bind(exp3) !== NO_CHANGE) different = true;
7070

71-
return different ? factoryFn(latestVal1, latestVal2, latestVal3) : NO_CHANGE;
71+
return different ? pureFn(latestVal1, latestVal2, latestVal3) : NO_CHANGE;
7272
}
7373

7474
/**
75-
* If the object or array has changed, returns a copy with all updated expressions.
76-
* Or if no expressions have changed, returns NO_CHANGE.
75+
* If the value of any provided exp has changed, calls the pure function to
76+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
7777
*
78-
* @param factoryFn
78+
* @param pureFn
7979
* @param exp1
8080
* @param exp2
8181
* @param exp3
8282
* @param exp4
83-
* @returns A copy of the object/array or NO_CHANGE
83+
* @returns Updated value or NO_CHANGE
8484
*/
85-
export function objectLiteral4(
86-
factoryFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any,
85+
export function pureFunction4(
86+
pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any,
8787
exp4: any): any {
8888
let different = false;
8989

@@ -99,24 +99,24 @@ export function objectLiteral4(
9999
const latestVal4 = exp4 === NO_CHANGE ? peekBinding() : exp4;
100100
if (bind(exp4) !== NO_CHANGE) different = true;
101101

102-
return different ? factoryFn(latestVal1, latestVal2, latestVal3, latestVal4) : NO_CHANGE;
102+
return different ? pureFn(latestVal1, latestVal2, latestVal3, latestVal4) : NO_CHANGE;
103103
}
104104

105105
/**
106-
* If the object or array has changed, returns a copy with all updated expressions.
107-
* Or if no expressions have changed, returns NO_CHANGE.
106+
* If the value of any provided exp has changed, calls the pure function to
107+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
108108
*
109-
* @param factoryFn
109+
* @param pureFn
110110
* @param exp1
111111
* @param exp2
112112
* @param exp3
113113
* @param exp4
114114
* @param exp5
115-
* @returns A copy of the object/array or NO_CHANGE
115+
* @returns Updated value or NO_CHANGE
116116
*/
117-
export function objectLiteral5(
118-
factoryFn: (v1: any, v2: any, v3: any, v4: any, v5: any) => any, exp1: any, exp2: any,
119-
exp3: any, exp4: any, exp5: any): any {
117+
export function pureFunction5(
118+
pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any) => any, exp1: any, exp2: any, exp3: any,
119+
exp4: any, exp5: any): any {
120120
let different = false;
121121

122122
const latestVal1 = exp1 === NO_CHANGE ? peekBinding() : exp1;
@@ -134,25 +134,24 @@ export function objectLiteral5(
134134
const latestVal5 = exp5 === NO_CHANGE ? peekBinding() : exp5;
135135
if (bind(exp5) !== NO_CHANGE) different = true;
136136

137-
return different ? factoryFn(latestVal1, latestVal2, latestVal3, latestVal4, latestVal5) :
138-
NO_CHANGE;
137+
return different ? pureFn(latestVal1, latestVal2, latestVal3, latestVal4, latestVal5) : NO_CHANGE;
139138
}
140139

141140
/**
142-
* If the object or array has changed, returns a copy with all updated expressions.
143-
* Or if no expressions have changed, returns NO_CHANGE.
141+
* If the value of any provided exp has changed, calls the pure function to
142+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
144143
*
145-
* @param factoryFn
144+
* @param pureFn
146145
* @param exp1
147146
* @param exp2
148147
* @param exp3
149148
* @param exp4
150149
* @param exp5
151150
* @param exp6
152-
* @returns A copy of the object/array or NO_CHANGE
151+
* @returns Updated value or NO_CHANGE
153152
*/
154-
export function objectLiteral6(
155-
factoryFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any) => any, exp1: any, exp2: any,
153+
export function pureFunction6(
154+
pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any) => any, exp1: any, exp2: any,
156155
exp3: any, exp4: any, exp5: any, exp6: any): any {
157156
let different = false;
158157

@@ -175,26 +174,26 @@ export function objectLiteral6(
175174
if (bind(exp6) !== NO_CHANGE) different = true;
176175

177176
return different ?
178-
factoryFn(latestVal1, latestVal2, latestVal3, latestVal4, latestVal5, latestVal6) :
177+
pureFn(latestVal1, latestVal2, latestVal3, latestVal4, latestVal5, latestVal6) :
179178
NO_CHANGE;
180179
}
181180

182181
/**
183-
* If the object or array has changed, returns a copy with all updated expressions.
184-
* Or if no expressions have changed, returns NO_CHANGE.
182+
* If the value of any provided exp has changed, calls the pure function to
183+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
185184
*
186-
* @param factoryFn
185+
* @param pureFn
187186
* @param exp1
188187
* @param exp2
189188
* @param exp3
190189
* @param exp4
191190
* @param exp5
192191
* @param exp6
193192
* @param exp7
194-
* @returns A copy of the object/array or NO_CHANGE
193+
* @returns Updated value or NO_CHANGE
195194
*/
196-
export function objectLiteral7(
197-
factoryFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any) => any, exp1: any,
195+
export function pureFunction7(
196+
pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any) => any, exp1: any,
198197
exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any): any {
199198
let different = false;
200199

@@ -220,16 +219,15 @@ export function objectLiteral7(
220219
if (bind(exp7) !== NO_CHANGE) different = true;
221220

222221
return different ?
223-
factoryFn(
224-
latestVal1, latestVal2, latestVal3, latestVal4, latestVal5, latestVal6, latestVal7) :
222+
pureFn(latestVal1, latestVal2, latestVal3, latestVal4, latestVal5, latestVal6, latestVal7) :
225223
NO_CHANGE;
226224
}
227225

228226
/**
229-
* If the object or array has changed, returns a copy with all updated expressions.
230-
* Or if no expressions have changed, returns NO_CHANGE.
227+
* If the value of any provided exp has changed, calls the pure function to
228+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
231229
*
232-
* @param factoryFn
230+
* @param pureFn
233231
* @param exp1
234232
* @param exp2
235233
* @param exp3
@@ -238,10 +236,10 @@ export function objectLiteral7(
238236
* @param exp6
239237
* @param exp7
240238
* @param exp8
241-
* @returns A copy of the object/array or NO_CHANGE
239+
* @returns Updated value or NO_CHANGE
242240
*/
243-
export function objectLiteral8(
244-
factoryFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any, v8: any) => any,
241+
export function pureFunction8(
242+
pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any, v8: any) => any,
245243
exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, exp8: any): any {
246244
let different = false;
247245

@@ -269,24 +267,24 @@ export function objectLiteral8(
269267
const latestVal8 = exp8 === NO_CHANGE ? peekBinding() : exp8;
270268
if (bind(exp8) !== NO_CHANGE) different = true;
271269

272-
return different ? factoryFn(
270+
return different ? pureFn(
273271
latestVal1, latestVal2, latestVal3, latestVal4, latestVal5, latestVal6,
274272
latestVal7, latestVal8) :
275273
NO_CHANGE;
276274
}
277275

278276
/**
279-
* objectLiteral instruction that can support any number of bindings.
277+
* pureFunction instruction that can support any number of bindings.
280278
*
281-
* If the object or array has changed, returns a copy with all updated expressions.
282-
* Or if no expressions have changed, returns NO_CHANGE.
279+
* If the value of any provided exp has changed, calls the pure function to
280+
* return an updated value. Or if no values have changed, returns NO_CHANGE.
283281
*
284-
* @param factoryFn A factory function that takes binding values and builds an object or array
282+
* @param pureFn A pure function that takes binding values and builds an object or array
285283
* containing those values.
286284
* @param exp An array of binding values
287-
* @returns A copy of the object/array or NO_CHANGE
285+
* @returns Updated value or NO_CHANGE
288286
*/
289-
export function objectLiteralV(factoryFn: (v: any[]) => any, exps: any[]): any {
287+
export function pureFunctionV(pureFn: (v: any[]) => any, exps: any[]): any {
290288
let different = false;
291289

292290
for (let i = 0; i < exps.length; i++) {
@@ -295,5 +293,5 @@ export function objectLiteralV(factoryFn: (v: any[]) => any, exps: any[]): any {
295293
if (bind(exp) !== NO_CHANGE) different = true;
296294
}
297295

298-
return different ? factoryFn(exps) : NO_CHANGE;
296+
return different ? pureFn(exps) : NO_CHANGE;
299297
}

0 commit comments

Comments
 (0)