@angular/compiler 21.2.0-next.3 → 21.2.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/compiler.mjs +111 -103
- package/fesm2022/compiler.mjs.map +1 -1
- package/package.json +1 -1
- package/types/compiler.d.ts +11 -3
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v21.2.0-
|
|
2
|
+
* @license Angular v21.2.0-rc.0
|
|
3
3
|
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -4953,11 +4953,13 @@ class SwitchBlock extends BlockNode {
|
|
|
4953
4953
|
expression;
|
|
4954
4954
|
groups;
|
|
4955
4955
|
unknownBlocks;
|
|
4956
|
-
|
|
4956
|
+
exhaustiveCheck;
|
|
4957
|
+
constructor(expression, groups, unknownBlocks, exhaustiveCheck, sourceSpan, startSourceSpan, endSourceSpan, nameSpan) {
|
|
4957
4958
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
4958
4959
|
this.expression = expression;
|
|
4959
4960
|
this.groups = groups;
|
|
4960
4961
|
this.unknownBlocks = unknownBlocks;
|
|
4962
|
+
this.exhaustiveCheck = exhaustiveCheck;
|
|
4961
4963
|
}
|
|
4962
4964
|
visit(visitor) {
|
|
4963
4965
|
return visitor.visitSwitchBlock(this);
|
|
@@ -4987,6 +4989,14 @@ class SwitchBlockCaseGroup extends BlockNode {
|
|
|
4987
4989
|
return visitor.visitSwitchBlockCaseGroup(this);
|
|
4988
4990
|
}
|
|
4989
4991
|
}
|
|
4992
|
+
class SwitchExhaustiveCheck extends BlockNode {
|
|
4993
|
+
constructor(sourceSpan, startSourceSpan, endSourceSpan, nameSpan) {
|
|
4994
|
+
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
4995
|
+
}
|
|
4996
|
+
visit(visitor) {
|
|
4997
|
+
return visitor.visitSwitchExhaustiveCheck(this);
|
|
4998
|
+
}
|
|
4999
|
+
}
|
|
4990
5000
|
class ForLoopBlock extends BlockNode {
|
|
4991
5001
|
item;
|
|
4992
5002
|
expression;
|
|
@@ -5305,6 +5315,7 @@ let RecursiveVisitor$1 = class RecursiveVisitor {
|
|
|
5305
5315
|
visitAll$1(this, block.cases);
|
|
5306
5316
|
visitAll$1(this, block.children);
|
|
5307
5317
|
}
|
|
5318
|
+
visitSwitchExhaustiveCheck(block) {}
|
|
5308
5319
|
visitForLoopBlock(block) {
|
|
5309
5320
|
const blockItems = [block.item, ...block.contextVariables, ...block.children];
|
|
5310
5321
|
block.empty && blockItems.push(block.empty);
|
|
@@ -7513,11 +7524,6 @@ var SemanticVariableKind;
|
|
|
7513
7524
|
SemanticVariableKind[SemanticVariableKind["SavedView"] = 2] = "SavedView";
|
|
7514
7525
|
SemanticVariableKind[SemanticVariableKind["Alias"] = 3] = "Alias";
|
|
7515
7526
|
})(SemanticVariableKind || (SemanticVariableKind = {}));
|
|
7516
|
-
var CompatibilityMode;
|
|
7517
|
-
(function (CompatibilityMode) {
|
|
7518
|
-
CompatibilityMode[CompatibilityMode["Normal"] = 0] = "Normal";
|
|
7519
|
-
CompatibilityMode[CompatibilityMode["TemplateDefinitionBuilder"] = 1] = "TemplateDefinitionBuilder";
|
|
7520
|
-
})(CompatibilityMode || (CompatibilityMode = {}));
|
|
7521
7527
|
var BindingKind;
|
|
7522
7528
|
(function (BindingKind) {
|
|
7523
7529
|
BindingKind[BindingKind["Attribute"] = 0] = "Attribute";
|
|
@@ -9522,12 +9528,10 @@ var TemplateCompilationMode;
|
|
|
9522
9528
|
class CompilationJob {
|
|
9523
9529
|
componentName;
|
|
9524
9530
|
pool;
|
|
9525
|
-
compatibility;
|
|
9526
9531
|
mode;
|
|
9527
|
-
constructor(componentName, pool,
|
|
9532
|
+
constructor(componentName, pool, mode) {
|
|
9528
9533
|
this.componentName = componentName;
|
|
9529
9534
|
this.pool = pool;
|
|
9530
|
-
this.compatibility = compatibility;
|
|
9531
9535
|
this.mode = mode;
|
|
9532
9536
|
}
|
|
9533
9537
|
kind = CompilationJobKind.Both;
|
|
@@ -9543,8 +9547,8 @@ class ComponentCompilationJob extends CompilationJob {
|
|
|
9543
9547
|
allDeferrableDepsFn;
|
|
9544
9548
|
relativeTemplatePath;
|
|
9545
9549
|
enableDebugLocations;
|
|
9546
|
-
constructor(componentName, pool,
|
|
9547
|
-
super(componentName, pool,
|
|
9550
|
+
constructor(componentName, pool, mode, relativeContextFilePath, i18nUseExternalIds, deferMeta, allDeferrableDepsFn, relativeTemplatePath, enableDebugLocations) {
|
|
9551
|
+
super(componentName, pool, mode);
|
|
9548
9552
|
this.relativeContextFilePath = relativeContextFilePath;
|
|
9549
9553
|
this.i18nUseExternalIds = i18nUseExternalIds;
|
|
9550
9554
|
this.deferMeta = deferMeta;
|
|
@@ -9629,8 +9633,8 @@ class ViewCompilationUnit extends CompilationUnit {
|
|
|
9629
9633
|
decls = null;
|
|
9630
9634
|
}
|
|
9631
9635
|
class HostBindingCompilationJob extends CompilationJob {
|
|
9632
|
-
constructor(componentName, pool,
|
|
9633
|
-
super(componentName, pool,
|
|
9636
|
+
constructor(componentName, pool, mode) {
|
|
9637
|
+
super(componentName, pool, mode);
|
|
9634
9638
|
this.root = new HostBindingCompilationUnit(this);
|
|
9635
9639
|
}
|
|
9636
9640
|
kind = CompilationJobKind.Host;
|
|
@@ -9824,7 +9828,7 @@ function extractAttributes(job) {
|
|
|
9824
9828
|
break;
|
|
9825
9829
|
case OpKind.StyleProp:
|
|
9826
9830
|
case OpKind.ClassProp:
|
|
9827
|
-
if (
|
|
9831
|
+
if (op.expression instanceof EmptyExpr) {
|
|
9828
9832
|
OpList.insertBefore(createExtractedAttributeOp(op.target, BindingKind.Property, null, op.name, null, null, null, SecurityContext.STYLE), lookupElement$3(elements, op.target));
|
|
9829
9833
|
}
|
|
9830
9834
|
break;
|
|
@@ -9832,10 +9836,7 @@ function extractAttributes(job) {
|
|
|
9832
9836
|
if (!op.isLegacyAnimationListener) {
|
|
9833
9837
|
const extractedAttributeOp = createExtractedAttributeOp(op.target, BindingKind.Property, null, op.name, null, null, null, SecurityContext.NONE);
|
|
9834
9838
|
if (job.kind === CompilationJobKind.Host) {
|
|
9835
|
-
|
|
9836
|
-
break;
|
|
9837
|
-
}
|
|
9838
|
-
unit.create.push(extractedAttributeOp);
|
|
9839
|
+
break;
|
|
9839
9840
|
} else {
|
|
9840
9841
|
OpList.insertBefore(extractedAttributeOp, lookupElement$3(elements, op.target));
|
|
9841
9842
|
}
|
|
@@ -9862,11 +9863,7 @@ function extractAttributeOp(unit, op, elements) {
|
|
|
9862
9863
|
if (op.expression instanceof Interpolation) {
|
|
9863
9864
|
return;
|
|
9864
9865
|
}
|
|
9865
|
-
|
|
9866
|
-
if (unit.job.compatibility === CompatibilityMode.TemplateDefinitionBuilder) {
|
|
9867
|
-
extractable &&= op.isTextAttribute;
|
|
9868
|
-
}
|
|
9869
|
-
if (extractable) {
|
|
9866
|
+
if (op.isTextAttribute) {
|
|
9870
9867
|
const extractedAttributeOp = createExtractedAttributeOp(op.target, op.isStructuralTemplateAttribute ? BindingKind.Template : BindingKind.Attribute, op.namespace, op.name, op.expression, op.i18nContext, op.i18nMessage, op.securityContext);
|
|
9871
9868
|
if (unit.job.kind === CompilationJobKind.Host) {
|
|
9872
9869
|
unit.create.push(extractedAttributeOp);
|
|
@@ -10070,7 +10067,7 @@ function collectElementConsts(job) {
|
|
|
10070
10067
|
for (const unit of job.units) {
|
|
10071
10068
|
for (const op of unit.create) {
|
|
10072
10069
|
if (op.kind === OpKind.ExtractedAttribute) {
|
|
10073
|
-
const attributes = allElementAttributes.get(op.target) || new ElementAttributes(
|
|
10070
|
+
const attributes = allElementAttributes.get(op.target) || new ElementAttributes();
|
|
10074
10071
|
allElementAttributes.set(op.target, attributes);
|
|
10075
10072
|
attributes.add(op.bindingKind, op.name, op.expression, op.namespace, op.trustedValueFn);
|
|
10076
10073
|
OpList.remove(op);
|
|
@@ -10120,7 +10117,6 @@ function getConstIndex(job, allElementAttributes, xref) {
|
|
|
10120
10117
|
}
|
|
10121
10118
|
const FLYWEIGHT_ARRAY = Object.freeze([]);
|
|
10122
10119
|
class ElementAttributes {
|
|
10123
|
-
compatibility;
|
|
10124
10120
|
known = new Map();
|
|
10125
10121
|
byKind = new Map();
|
|
10126
10122
|
propertyBindings = null;
|
|
@@ -10143,9 +10139,6 @@ class ElementAttributes {
|
|
|
10143
10139
|
get i18n() {
|
|
10144
10140
|
return this.byKind.get(BindingKind.I18n) ?? FLYWEIGHT_ARRAY;
|
|
10145
10141
|
}
|
|
10146
|
-
constructor(compatibility) {
|
|
10147
|
-
this.compatibility = compatibility;
|
|
10148
|
-
}
|
|
10149
10142
|
isKnown(kind, name) {
|
|
10150
10143
|
const nameToValue = this.known.get(kind) ?? new Set();
|
|
10151
10144
|
this.known.set(kind, nameToValue);
|
|
@@ -10156,7 +10149,7 @@ class ElementAttributes {
|
|
|
10156
10149
|
return false;
|
|
10157
10150
|
}
|
|
10158
10151
|
add(kind, name, value, namespace, trustedValueFn) {
|
|
10159
|
-
const allowDuplicates =
|
|
10152
|
+
const allowDuplicates = kind === BindingKind.Attribute || kind === BindingKind.ClassName || kind === BindingKind.StyleProperty;
|
|
10160
10153
|
if (!allowDuplicates && this.isKnown(kind, name)) {
|
|
10161
10154
|
return;
|
|
10162
10155
|
}
|
|
@@ -10396,12 +10389,8 @@ function deduplicateTextBindings(job) {
|
|
|
10396
10389
|
for (const op of unit.update.reversed()) {
|
|
10397
10390
|
if (op.kind === OpKind.Binding && op.isTextAttribute) {
|
|
10398
10391
|
const seenForElement = seen.get(op.target) || new Set();
|
|
10399
|
-
if (seenForElement.has(op.name)) {
|
|
10400
|
-
|
|
10401
|
-
if (op.name === 'style' || op.name === 'class') {
|
|
10402
|
-
OpList.remove(op);
|
|
10403
|
-
}
|
|
10404
|
-
}
|
|
10392
|
+
if (seenForElement.has(op.name) && (op.name === 'style' || op.name === 'class')) {
|
|
10393
|
+
OpList.remove(op);
|
|
10405
10394
|
}
|
|
10406
10395
|
seenForElement.add(op.name);
|
|
10407
10396
|
seen.set(op.target, seenForElement);
|
|
@@ -10591,7 +10580,7 @@ function eliminateTemporaryAssignments(e, tmps, ctx) {
|
|
|
10591
10580
|
transformExpressionsInExpression(e, e => {
|
|
10592
10581
|
if (e instanceof AssignTemporaryExpr && tmps.has(e.xref)) {
|
|
10593
10582
|
const read = new ReadTemporaryExpr(e.xref);
|
|
10594
|
-
return
|
|
10583
|
+
return new AssignTemporaryExpr(read, read.xref);
|
|
10595
10584
|
}
|
|
10596
10585
|
return e;
|
|
10597
10586
|
}, VisitorContextFlag.None);
|
|
@@ -10604,7 +10593,7 @@ function safeTernaryWithTemporary(guard, body, ctx) {
|
|
|
10604
10593
|
result = [new AssignTemporaryExpr(guard, xref), new ReadTemporaryExpr(xref)];
|
|
10605
10594
|
} else {
|
|
10606
10595
|
result = [guard, guard.clone()];
|
|
10607
|
-
eliminateTemporaryAssignments(result[1], temporariesIn(result[0])
|
|
10596
|
+
eliminateTemporaryAssignments(result[1], temporariesIn(result[0]));
|
|
10608
10597
|
}
|
|
10609
10598
|
return new SafeTernaryExpr(result[0], body(result[1]));
|
|
10610
10599
|
}
|
|
@@ -10880,7 +10869,7 @@ function generateLocalLetReferences(job) {
|
|
|
10880
10869
|
}
|
|
10881
10870
|
|
|
10882
10871
|
function generateProjectionDefs(job) {
|
|
10883
|
-
const share =
|
|
10872
|
+
const share = true;
|
|
10884
10873
|
const selectors = [];
|
|
10885
10874
|
let projectionSlotIndex = 0;
|
|
10886
10875
|
for (const unit of job.units) {
|
|
@@ -13669,6 +13658,13 @@ class _Tokenizer {
|
|
|
13669
13658
|
this._requireCharCode($AT);
|
|
13670
13659
|
this._beginToken(24, start);
|
|
13671
13660
|
const startToken = this._endToken([this._getBlockName()]);
|
|
13661
|
+
if (startToken.parts[0] === 'default never' && this._attemptCharCode($SEMICOLON)) {
|
|
13662
|
+
this._beginToken(25);
|
|
13663
|
+
this._endToken([]);
|
|
13664
|
+
this._beginToken(26);
|
|
13665
|
+
this._endToken([]);
|
|
13666
|
+
return;
|
|
13667
|
+
}
|
|
13672
13668
|
if (this._cursor.peek() === $LPAREN) {
|
|
13673
13669
|
this._cursor.advance();
|
|
13674
13670
|
this._consumeBlockParameters();
|
|
@@ -15121,8 +15117,15 @@ class _TreeBuilder {
|
|
|
15121
15117
|
this._pushContainer(block, false);
|
|
15122
15118
|
}
|
|
15123
15119
|
_consumeBlockClose(token) {
|
|
15120
|
+
const initialStackLength = this._containerStack.length;
|
|
15121
|
+
const topNode = this._containerStack[initialStackLength - 1];
|
|
15124
15122
|
if (!this._popContainer(null, Block, token.sourceSpan)) {
|
|
15125
|
-
this.
|
|
15123
|
+
if (this._containerStack.length < initialStackLength) {
|
|
15124
|
+
const nodeName = topNode instanceof Component ? topNode.fullName : topNode.name;
|
|
15125
|
+
this.errors.push(TreeError.create(null, token.sourceSpan, `Unexpected closing block. The block may have been closed earlier. ` + `Did you forget to close the <${nodeName}> element? ` + `If you meant to write the \`}\` character, you should use the "}" ` + `HTML entity instead.`));
|
|
15126
|
+
return;
|
|
15127
|
+
}
|
|
15128
|
+
this.errors.push(TreeError.create(null, token.sourceSpan, `Unexpected closing block. The block may have been closed earlier. ` + `If you meant to write the \`}\` character, you should use the "}" ` + `HTML entity instead.`));
|
|
15126
15129
|
}
|
|
15127
15130
|
}
|
|
15128
15131
|
_consumeIncompleteBlock(token) {
|
|
@@ -18867,9 +18870,9 @@ function parseExtractedStyles(job) {
|
|
|
18867
18870
|
function nameFunctionsAndVariables(job) {
|
|
18868
18871
|
addNamesToView(job.root, job.componentName, {
|
|
18869
18872
|
index: 0
|
|
18870
|
-
}
|
|
18873
|
+
});
|
|
18871
18874
|
}
|
|
18872
|
-
function addNamesToView(unit, baseName, state
|
|
18875
|
+
function addNamesToView(unit, baseName, state) {
|
|
18873
18876
|
if (unit.fnName === null) {
|
|
18874
18877
|
unit.fnName = unit.job.pool.uniqueName(sanitizeIdentifier(`${baseName}_${unit.job.fnSuffix}`), false);
|
|
18875
18878
|
}
|
|
@@ -18933,7 +18936,7 @@ function addNamesToView(unit, baseName, state, compatibility) {
|
|
|
18933
18936
|
op.handlerFnName = sanitizeIdentifier(`${unit.fnName}_${op.tag.replace('-', '_')}_${op.name}_${op.targetSlot.slot}_listener`);
|
|
18934
18937
|
break;
|
|
18935
18938
|
case OpKind.Variable:
|
|
18936
|
-
varNames.set(op.xref, getVariableName(
|
|
18939
|
+
varNames.set(op.xref, getVariableName(op.variable, state));
|
|
18937
18940
|
break;
|
|
18938
18941
|
case OpKind.RepeaterCreate:
|
|
18939
18942
|
if (!(unit instanceof ViewCompilationUnit)) {
|
|
@@ -18944,9 +18947,9 @@ function addNamesToView(unit, baseName, state, compatibility) {
|
|
|
18944
18947
|
}
|
|
18945
18948
|
if (op.emptyView !== null) {
|
|
18946
18949
|
const emptyView = unit.job.views.get(op.emptyView);
|
|
18947
|
-
addNamesToView(emptyView, `${baseName}_${op.functionNameSuffix}Empty_${op.handle.slot + 2}`, state
|
|
18950
|
+
addNamesToView(emptyView, `${baseName}_${op.functionNameSuffix}Empty_${op.handle.slot + 2}`, state);
|
|
18948
18951
|
}
|
|
18949
|
-
addNamesToView(unit.job.views.get(op.xref), `${baseName}_${op.functionNameSuffix}_${op.handle.slot + 1}`, state
|
|
18952
|
+
addNamesToView(unit.job.views.get(op.xref), `${baseName}_${op.functionNameSuffix}_${op.handle.slot + 1}`, state);
|
|
18950
18953
|
break;
|
|
18951
18954
|
case OpKind.Projection:
|
|
18952
18955
|
if (!(unit instanceof ViewCompilationUnit)) {
|
|
@@ -18957,7 +18960,7 @@ function addNamesToView(unit, baseName, state, compatibility) {
|
|
|
18957
18960
|
}
|
|
18958
18961
|
if (op.fallbackView !== null) {
|
|
18959
18962
|
const fallbackView = unit.job.views.get(op.fallbackView);
|
|
18960
|
-
addNamesToView(fallbackView, `${baseName}_ProjectionFallback_${op.handle.slot}`, state
|
|
18963
|
+
addNamesToView(fallbackView, `${baseName}_ProjectionFallback_${op.handle.slot}`, state);
|
|
18961
18964
|
}
|
|
18962
18965
|
break;
|
|
18963
18966
|
case OpKind.ConditionalCreate:
|
|
@@ -18971,18 +18974,13 @@ function addNamesToView(unit, baseName, state, compatibility) {
|
|
|
18971
18974
|
throw new Error(`Expected slot to be assigned`);
|
|
18972
18975
|
}
|
|
18973
18976
|
const suffix = op.functionNameSuffix.length === 0 ? '' : `_${op.functionNameSuffix}`;
|
|
18974
|
-
addNamesToView(childView, `${baseName}${suffix}_${op.handle.slot}`, state
|
|
18977
|
+
addNamesToView(childView, `${baseName}${suffix}_${op.handle.slot}`, state);
|
|
18975
18978
|
break;
|
|
18976
18979
|
case OpKind.StyleProp:
|
|
18977
|
-
op.name = normalizeStylePropName(op.name);
|
|
18978
|
-
if (compatibility) {
|
|
18979
|
-
op.name = stripImportant(op.name);
|
|
18980
|
-
}
|
|
18980
|
+
op.name = stripImportant(normalizeStylePropName(op.name));
|
|
18981
18981
|
break;
|
|
18982
18982
|
case OpKind.ClassProp:
|
|
18983
|
-
|
|
18984
|
-
op.name = stripImportant(op.name);
|
|
18985
|
-
}
|
|
18983
|
+
op.name = stripImportant(op.name);
|
|
18986
18984
|
break;
|
|
18987
18985
|
}
|
|
18988
18986
|
}
|
|
@@ -18998,19 +18996,15 @@ function addNamesToView(unit, baseName, state, compatibility) {
|
|
|
18998
18996
|
});
|
|
18999
18997
|
}
|
|
19000
18998
|
}
|
|
19001
|
-
function getVariableName(
|
|
18999
|
+
function getVariableName(variable, state) {
|
|
19002
19000
|
if (variable.name === null) {
|
|
19003
19001
|
switch (variable.kind) {
|
|
19004
19002
|
case SemanticVariableKind.Context:
|
|
19005
19003
|
variable.name = `ctx_r${state.index++}`;
|
|
19006
19004
|
break;
|
|
19007
19005
|
case SemanticVariableKind.Identifier:
|
|
19008
|
-
|
|
19009
|
-
|
|
19010
|
-
variable.name = `${variable.identifier}_${compatPrefix}r${++state.index}`;
|
|
19011
|
-
} else {
|
|
19012
|
-
variable.name = `${variable.identifier}_i${state.index++}`;
|
|
19013
|
-
}
|
|
19006
|
+
const compatPrefix = variable.identifier === CONTEXT_NAME ? 'i' : '';
|
|
19007
|
+
variable.name = `${variable.identifier}_${compatPrefix}r${++state.index}`;
|
|
19014
19008
|
break;
|
|
19015
19009
|
default:
|
|
19016
19010
|
variable.name = `_r${++state.index}`;
|
|
@@ -19265,15 +19259,11 @@ function processPipeBindingsInView(unit) {
|
|
|
19265
19259
|
if (flags & VisitorContextFlag.InChildOperation) {
|
|
19266
19260
|
throw new Error(`AssertionError: pipe bindings should not appear in child expressions`);
|
|
19267
19261
|
}
|
|
19268
|
-
|
|
19269
|
-
|
|
19270
|
-
|
|
19271
|
-
throw new Error(`AssertionError: expected slot handle to be assigned for pipe creation`);
|
|
19272
|
-
}
|
|
19273
|
-
addPipeToCreationBlock(unit, updateOp.target, expr);
|
|
19274
|
-
} else {
|
|
19275
|
-
unit.create.push(createPipeOp(expr.target, expr.targetSlot, expr.name));
|
|
19262
|
+
const slotHandle = updateOp.target;
|
|
19263
|
+
if (slotHandle == undefined) {
|
|
19264
|
+
throw new Error(`AssertionError: expected slot handle to be assigned for pipe creation`);
|
|
19276
19265
|
}
|
|
19266
|
+
addPipeToCreationBlock(unit, updateOp.target, expr);
|
|
19277
19267
|
});
|
|
19278
19268
|
}
|
|
19279
19269
|
}
|
|
@@ -21345,7 +21335,7 @@ function countVariables(job) {
|
|
|
21345
21335
|
if (!isIrExpression(expr)) {
|
|
21346
21336
|
return;
|
|
21347
21337
|
}
|
|
21348
|
-
if (
|
|
21338
|
+
if (expr instanceof PureFunctionExpr) {
|
|
21349
21339
|
return;
|
|
21350
21340
|
}
|
|
21351
21341
|
if (hasUsesVarOffsetTrait(expr)) {
|
|
@@ -21372,13 +21362,11 @@ function countVariables(job) {
|
|
|
21372
21362
|
for (const updateOp of unit.update) {
|
|
21373
21363
|
visitExpressionsInOp(updateOp, firstPassCountExpressionVars);
|
|
21374
21364
|
}
|
|
21375
|
-
|
|
21376
|
-
|
|
21377
|
-
|
|
21378
|
-
|
|
21379
|
-
|
|
21380
|
-
visitExpressionsInOp(updateOp, secondPassCountExpressionVars);
|
|
21381
|
-
}
|
|
21365
|
+
for (const createOp of unit.create) {
|
|
21366
|
+
visitExpressionsInOp(createOp, secondPassCountExpressionVars);
|
|
21367
|
+
}
|
|
21368
|
+
for (const updateOp of unit.update) {
|
|
21369
|
+
visitExpressionsInOp(updateOp, secondPassCountExpressionVars);
|
|
21382
21370
|
}
|
|
21383
21371
|
unit.vars = varCount;
|
|
21384
21372
|
}
|
|
@@ -21476,19 +21464,19 @@ function optimizeVariables(job) {
|
|
|
21476
21464
|
}
|
|
21477
21465
|
}
|
|
21478
21466
|
for (const expr of unit.functions) {
|
|
21479
|
-
optimizeVariablesInOpList(expr.ops,
|
|
21467
|
+
optimizeVariablesInOpList(expr.ops, null);
|
|
21480
21468
|
optimizeSaveRestoreView(expr.ops);
|
|
21481
21469
|
}
|
|
21482
21470
|
for (const op of unit.create) {
|
|
21483
21471
|
if (op.kind === OpKind.Listener || op.kind === OpKind.Animation || op.kind === OpKind.AnimationListener || op.kind === OpKind.TwoWayListener) {
|
|
21484
|
-
optimizeVariablesInOpList(op.handlerOps,
|
|
21472
|
+
optimizeVariablesInOpList(op.handlerOps, skipArrowFunctionOps);
|
|
21485
21473
|
optimizeSaveRestoreView(op.handlerOps);
|
|
21486
21474
|
} else if (op.kind === OpKind.RepeaterCreate && op.trackByOps !== null) {
|
|
21487
|
-
optimizeVariablesInOpList(op.trackByOps,
|
|
21475
|
+
optimizeVariablesInOpList(op.trackByOps, skipArrowFunctionOps);
|
|
21488
21476
|
}
|
|
21489
21477
|
}
|
|
21490
|
-
optimizeVariablesInOpList(unit.create,
|
|
21491
|
-
optimizeVariablesInOpList(unit.update,
|
|
21478
|
+
optimizeVariablesInOpList(unit.create, skipArrowFunctionOps);
|
|
21479
|
+
optimizeVariablesInOpList(unit.update, skipArrowFunctionOps);
|
|
21492
21480
|
}
|
|
21493
21481
|
}
|
|
21494
21482
|
var Fence;
|
|
@@ -21524,7 +21512,7 @@ function inlineAlwaysInlineVariables(ops) {
|
|
|
21524
21512
|
OpList.remove(op);
|
|
21525
21513
|
}
|
|
21526
21514
|
}
|
|
21527
|
-
function optimizeVariablesInOpList(ops,
|
|
21515
|
+
function optimizeVariablesInOpList(ops, predicate) {
|
|
21528
21516
|
const varDecls = new Map();
|
|
21529
21517
|
const varUsages = new Map();
|
|
21530
21518
|
const varRemoteUsages = new Set();
|
|
@@ -21584,7 +21572,7 @@ function optimizeVariablesInOpList(ops, compatibility, predicate) {
|
|
|
21584
21572
|
for (let targetOp = decl.next; targetOp.kind !== OpKind.ListEnd; targetOp = targetOp.next) {
|
|
21585
21573
|
const opInfo = opMap.get(targetOp);
|
|
21586
21574
|
if (opInfo.variablesUsed.has(candidate)) {
|
|
21587
|
-
if (
|
|
21575
|
+
if (!allowConservativeInlining(decl, targetOp)) {
|
|
21588
21576
|
break;
|
|
21589
21577
|
}
|
|
21590
21578
|
if (tryInlineVariableInitializer(candidate, decl.initializer, targetOp, varInfo.fences)) {
|
|
@@ -22120,7 +22108,6 @@ function emitHostBindingFunction(job) {
|
|
|
22120
22108
|
return fn([new FnParam(RENDER_FLAGS), new FnParam(CONTEXT_NAME)], [...createCond, ...updateCond], undefined, undefined, job.root.fnName);
|
|
22121
22109
|
}
|
|
22122
22110
|
|
|
22123
|
-
const compatibilityMode = CompatibilityMode.TemplateDefinitionBuilder;
|
|
22124
22111
|
const domSchema = new DomElementSchemaRegistry();
|
|
22125
22112
|
const NG_TEMPLATE_TAG_NAME = 'ng-template';
|
|
22126
22113
|
const ANIMATE_PREFIX$1 = 'animate.';
|
|
@@ -22131,12 +22118,12 @@ function isSingleI18nIcu(meta) {
|
|
|
22131
22118
|
return isI18nRootNode(meta) && meta.nodes.length === 1 && meta.nodes[0] instanceof Icu;
|
|
22132
22119
|
}
|
|
22133
22120
|
function ingestComponent(componentName, template, constantPool, compilationMode, relativeContextFilePath, i18nUseExternalIds, deferMeta, allDeferrableDepsFn, relativeTemplatePath, enableDebugLocations) {
|
|
22134
|
-
const job = new ComponentCompilationJob(componentName, constantPool,
|
|
22121
|
+
const job = new ComponentCompilationJob(componentName, constantPool, compilationMode, relativeContextFilePath, i18nUseExternalIds, deferMeta, allDeferrableDepsFn, relativeTemplatePath, enableDebugLocations);
|
|
22135
22122
|
ingestNodes(job.root, template);
|
|
22136
22123
|
return job;
|
|
22137
22124
|
}
|
|
22138
22125
|
function ingestHostBinding(input, bindingParser, constantPool) {
|
|
22139
|
-
const job = new HostBindingCompilationJob(input.componentName, constantPool,
|
|
22126
|
+
const job = new HostBindingCompilationJob(input.componentName, constantPool, TemplateCompilationMode.DomOnly);
|
|
22140
22127
|
for (const property of input.properties ?? []) {
|
|
22141
22128
|
let bindingKind = BindingKind.Property;
|
|
22142
22129
|
if (property.name.startsWith('attr.')) {
|
|
@@ -22304,8 +22291,7 @@ function ingestBoundText(unit, text, icuPlaceholder) {
|
|
|
22304
22291
|
}
|
|
22305
22292
|
const textXref = unit.job.allocateXrefId();
|
|
22306
22293
|
unit.create.push(createTextOp(textXref, '', icuPlaceholder, text.sourceSpan));
|
|
22307
|
-
|
|
22308
|
-
unit.update.push(createInterpolateTextOp(textXref, new Interpolation(value.strings, value.expressions.map(expr => convertAst(expr, unit.job, baseSourceSpan)), i18nPlaceholders), text.sourceSpan));
|
|
22294
|
+
unit.update.push(createInterpolateTextOp(textXref, new Interpolation(value.strings, value.expressions.map(expr => convertAst(expr, unit.job, null)), i18nPlaceholders), text.sourceSpan));
|
|
22309
22295
|
}
|
|
22310
22296
|
function ingestIfBlock(unit, ifBlock) {
|
|
22311
22297
|
let firstXref = null;
|
|
@@ -23591,18 +23577,31 @@ function createSwitchBlock(ast, visitor, bindingParser) {
|
|
|
23591
23577
|
const unknownBlocks = [];
|
|
23592
23578
|
let collectedCases = [];
|
|
23593
23579
|
let firstCaseStart = null;
|
|
23580
|
+
let exhaustiveCheck = null;
|
|
23594
23581
|
for (const node of ast.children) {
|
|
23595
23582
|
if (!(node instanceof Block)) {
|
|
23596
23583
|
continue;
|
|
23597
23584
|
}
|
|
23598
|
-
if ((node.name !== 'case' || node.parameters.length === 0) && node.name !== 'default') {
|
|
23585
|
+
if ((node.name !== 'case' || node.parameters.length === 0) && node.name !== 'default' && node.name !== 'default never') {
|
|
23599
23586
|
unknownBlocks.push(new UnknownBlock(node.name, node.sourceSpan, node.nameSpan));
|
|
23600
23587
|
continue;
|
|
23601
23588
|
}
|
|
23589
|
+
if (exhaustiveCheck !== null) {
|
|
23590
|
+
errors.push(new ParseError(node.sourceSpan, '@default block with "never" parameter must be the last case in a switch'));
|
|
23591
|
+
}
|
|
23602
23592
|
const isCase = node.name === 'case';
|
|
23603
23593
|
let expression = null;
|
|
23604
23594
|
if (isCase) {
|
|
23605
23595
|
expression = parseBlockParameterToBinding(node.parameters[0], bindingParser);
|
|
23596
|
+
} else if (node.name === 'default never') {
|
|
23597
|
+
if (node.children.length > 0 || node.endSourceSpan !== null && node.endSourceSpan.start.offset !== node.endSourceSpan.end.offset) {
|
|
23598
|
+
errors.push(new ParseError(node.sourceSpan, '@default block with "never" parameter cannot have a body'));
|
|
23599
|
+
}
|
|
23600
|
+
if (collectedCases.length > 0) {
|
|
23601
|
+
errors.push(new ParseError(node.sourceSpan, 'A @case block with no body cannot be followed by a @default block with "never" parameter'));
|
|
23602
|
+
}
|
|
23603
|
+
exhaustiveCheck = new SwitchExhaustiveCheck(node.sourceSpan, node.startSourceSpan, node.endSourceSpan, node.nameSpan);
|
|
23604
|
+
continue;
|
|
23606
23605
|
}
|
|
23607
23606
|
const switchCase = new SwitchBlockCase(expression, node.sourceSpan, node.startSourceSpan, node.endSourceSpan, node.nameSpan);
|
|
23608
23607
|
collectedCases.push(switchCase);
|
|
@@ -23624,7 +23623,7 @@ function createSwitchBlock(ast, visitor, bindingParser) {
|
|
|
23624
23623
|
groups.push(group);
|
|
23625
23624
|
collectedCases = [];
|
|
23626
23625
|
}
|
|
23627
|
-
const node = new SwitchBlock(primaryExpression, groups, unknownBlocks, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.nameSpan);
|
|
23626
|
+
const node = new SwitchBlock(primaryExpression, groups, unknownBlocks, exhaustiveCheck, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.nameSpan);
|
|
23628
23627
|
return {
|
|
23629
23628
|
node,
|
|
23630
23629
|
errors
|
|
@@ -23751,11 +23750,16 @@ function validateSwitchBlock(ast) {
|
|
|
23751
23750
|
if (node instanceof Comment || node instanceof Text && node.value.trim().length === 0) {
|
|
23752
23751
|
continue;
|
|
23753
23752
|
}
|
|
23754
|
-
if (!(node instanceof Block) || node.name !== 'case' && node.name !== 'default') {
|
|
23753
|
+
if (!(node instanceof Block) || node.name !== 'case' && node.name !== 'default' && node.name !== 'default never') {
|
|
23755
23754
|
errors.push(new ParseError(node.sourceSpan, '@switch block can only contain @case and @default blocks'));
|
|
23756
23755
|
continue;
|
|
23757
23756
|
}
|
|
23758
|
-
if (node.name === 'default') {
|
|
23757
|
+
if (node.name === 'default never') {
|
|
23758
|
+
if (hasDefault) {
|
|
23759
|
+
errors.push(new ParseError(node.startSourceSpan, '@switch block can only have one @default block'));
|
|
23760
|
+
}
|
|
23761
|
+
hasDefault = true;
|
|
23762
|
+
} else if (node.name === 'default') {
|
|
23759
23763
|
if (hasDefault) {
|
|
23760
23764
|
errors.push(new ParseError(node.startSourceSpan, '@switch block can only have one @default block'));
|
|
23761
23765
|
} else if (node.parameters.length > 0) {
|
|
@@ -25575,6 +25579,7 @@ class CombinedRecursiveAstVisitor extends RecursiveAstVisitor {
|
|
|
25575
25579
|
this.visitAllTemplateNodes(block.cases);
|
|
25576
25580
|
this.visitAllTemplateNodes(block.children);
|
|
25577
25581
|
}
|
|
25582
|
+
visitSwitchExhaustiveCheck(block) {}
|
|
25578
25583
|
visitForLoopBlock(block) {
|
|
25579
25584
|
block.item.visit(this);
|
|
25580
25585
|
this.visitAllTemplateNodes(block.contextVariables);
|
|
@@ -25773,6 +25778,7 @@ class Scope {
|
|
|
25773
25778
|
visitSwitchBlockCaseGroup(block) {
|
|
25774
25779
|
this.ingestScopedNode(block);
|
|
25775
25780
|
}
|
|
25781
|
+
visitSwitchExhaustiveCheck(block) {}
|
|
25776
25782
|
visitForLoopBlock(block) {
|
|
25777
25783
|
this.ingestScopedNode(block);
|
|
25778
25784
|
block.empty?.visit(this);
|
|
@@ -25893,6 +25899,7 @@ class DirectiveBinder {
|
|
|
25893
25899
|
visitSwitchBlockCaseGroup(block) {
|
|
25894
25900
|
block.children.forEach(node => node.visit(this));
|
|
25895
25901
|
}
|
|
25902
|
+
visitSwitchExhaustiveCheck(block) {}
|
|
25896
25903
|
visitForLoopBlock(block) {
|
|
25897
25904
|
block.item.visit(this);
|
|
25898
25905
|
block.contextVariables.forEach(v => v.visit(this));
|
|
@@ -26129,6 +26136,7 @@ class TemplateBinder extends CombinedRecursiveAstVisitor {
|
|
|
26129
26136
|
block.cases.forEach(caseNode => caseNode.visit(this));
|
|
26130
26137
|
this.ingestScopedNode(block);
|
|
26131
26138
|
}
|
|
26139
|
+
visitSwitchExhaustiveCheck(block) {}
|
|
26132
26140
|
visitForLoopBlock(block) {
|
|
26133
26141
|
block.expression.visit(this);
|
|
26134
26142
|
this.ingestScopedNode(block);
|
|
@@ -28522,7 +28530,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
28522
28530
|
function compileDeclareClassMetadata(metadata) {
|
|
28523
28531
|
const definitionMap = new DefinitionMap();
|
|
28524
28532
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
28525
|
-
definitionMap.set('version', literal('21.2.0-
|
|
28533
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
28526
28534
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28527
28535
|
definitionMap.set('type', metadata.type);
|
|
28528
28536
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -28540,7 +28548,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
28540
28548
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
28541
28549
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
28542
28550
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
28543
|
-
definitionMap.set('version', literal('21.2.0-
|
|
28551
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
28544
28552
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28545
28553
|
definitionMap.set('type', metadata.type);
|
|
28546
28554
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -28613,7 +28621,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
28613
28621
|
const definitionMap = new DefinitionMap();
|
|
28614
28622
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
28615
28623
|
definitionMap.set('minVersion', literal(minVersion));
|
|
28616
|
-
definitionMap.set('version', literal('21.2.0-
|
|
28624
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
28617
28625
|
definitionMap.set('type', meta.type.value);
|
|
28618
28626
|
if (meta.isStandalone !== undefined) {
|
|
28619
28627
|
definitionMap.set('isStandalone', literal(meta.isStandalone));
|
|
@@ -28955,7 +28963,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
28955
28963
|
function compileDeclareFactoryFunction(meta) {
|
|
28956
28964
|
const definitionMap = new DefinitionMap();
|
|
28957
28965
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
28958
|
-
definitionMap.set('version', literal('21.2.0-
|
|
28966
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
28959
28967
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28960
28968
|
definitionMap.set('type', meta.type.value);
|
|
28961
28969
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -28981,7 +28989,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
28981
28989
|
function createInjectableDefinitionMap(meta) {
|
|
28982
28990
|
const definitionMap = new DefinitionMap();
|
|
28983
28991
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
28984
|
-
definitionMap.set('version', literal('21.2.0-
|
|
28992
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
28985
28993
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
28986
28994
|
definitionMap.set('type', meta.type.value);
|
|
28987
28995
|
if (meta.providedIn !== undefined) {
|
|
@@ -29022,7 +29030,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
29022
29030
|
function createInjectorDefinitionMap(meta) {
|
|
29023
29031
|
const definitionMap = new DefinitionMap();
|
|
29024
29032
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
29025
|
-
definitionMap.set('version', literal('21.2.0-
|
|
29033
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
29026
29034
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
29027
29035
|
definitionMap.set('type', meta.type.value);
|
|
29028
29036
|
definitionMap.set('providers', meta.providers);
|
|
@@ -29049,7 +29057,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
29049
29057
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
29050
29058
|
}
|
|
29051
29059
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
29052
|
-
definitionMap.set('version', literal('21.2.0-
|
|
29060
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
29053
29061
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
29054
29062
|
definitionMap.set('type', meta.type.value);
|
|
29055
29063
|
if (meta.bootstrap.length > 0) {
|
|
@@ -29087,7 +29095,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
29087
29095
|
function createPipeDefinitionMap(meta) {
|
|
29088
29096
|
const definitionMap = new DefinitionMap();
|
|
29089
29097
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
29090
|
-
definitionMap.set('version', literal('21.2.0-
|
|
29098
|
+
definitionMap.set('version', literal('21.2.0-rc.0'));
|
|
29091
29099
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
29092
29100
|
definitionMap.set('type', meta.type.value);
|
|
29093
29101
|
if (meta.isStandalone !== undefined) {
|
|
@@ -29161,9 +29169,9 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
|
29161
29169
|
return new DeclareFunctionStmt(`${meta.className}_UpdateMetadata`, params, body, null, StmtModifier.Final);
|
|
29162
29170
|
}
|
|
29163
29171
|
|
|
29164
|
-
const VERSION = new Version('21.2.0-
|
|
29172
|
+
const VERSION = new Version('21.2.0-rc.0');
|
|
29165
29173
|
|
|
29166
29174
|
publishFacade(_global);
|
|
29167
29175
|
|
|
29168
|
-
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunction, ArrowFunctionExpr$1 as ArrowFunctionExpr, ArrowFunctionIdentifierParameter, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingPipeType, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CombinedRecursiveAstVisitor, CommaExpr, Comment, CompilerConfig, CompilerFacadeImpl, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralMapPropertyAssignment, LiteralMapSpreadAssignment, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, PrefixNot, PropertyRead, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, RegularExpressionLiteral, RegularExpressionLiteralExpr, ResourceLoader, ReturnStatement, SCHEMA, SECURITY_SCHEMA, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, SelectorlessMatcher, Serializer, SplitInterpolation, SpreadElement, SpreadElementExpr, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, SwitchBlockCaseGroup as TmplAstSwitchBlockCaseGroup, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation$1 as ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, _ATTR_TO_PROP, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, escapeRegExp, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, setEnableTemplateSourceLocations, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
29176
|
+
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunction, ArrowFunctionExpr$1 as ArrowFunctionExpr, ArrowFunctionIdentifierParameter, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingPipeType, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CombinedRecursiveAstVisitor, CommaExpr, Comment, CompilerConfig, CompilerFacadeImpl, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralMapPropertyAssignment, LiteralMapSpreadAssignment, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, PrefixNot, PropertyRead, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, RegularExpressionLiteral, RegularExpressionLiteralExpr, ResourceLoader, ReturnStatement, SCHEMA, SECURITY_SCHEMA, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, SelectorlessMatcher, Serializer, SplitInterpolation, SpreadElement, SpreadElementExpr, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, SwitchBlockCaseGroup as TmplAstSwitchBlockCaseGroup, SwitchExhaustiveCheck as TmplAstSwitchExhaustiveCheck, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation$1 as ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, _ATTR_TO_PROP, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, escapeRegExp, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, setEnableTemplateSourceLocations, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
29169
29177
|
//# sourceMappingURL=compiler.mjs.map
|