Skip to content

Upgrading @angular/compiler 19 to 20

Breaking19.2.25 → 20.3.34Breaking25Security33Platform8Deprecated18New76Changed22Fixed291Other3

BreakingUpgrade verdict

21 breaking changes and 8 platform requirement changes and 31 security fixes.

  • If translated ICU content includes HTML attributes Angular does not recognize, those attributes are now removed instead of being rendered.
  • Server bootstrapping changed so it no longer depends on a global platform injector. On the server, `getPlatform()` now returns null and `destroyPlatform()` does nothing.
  • The debug check-no-changes provider is renamed, now applies to all checkNoChanges runs, and drops the useNgZoneOnStable option.
  • InjectFlags can no longer be used from the public API.
Top 5 of 77 that need code or config changes

Node.js requirement changed in 20.0.0-rc.2: ^18.19.1 || ^20.11.1 || >=22.0.0 → ^20.19.0 || ^22.12.0 || >=24.0.0.

Breaking21
Angular now only applies known attributes from HTML in translated ICU content; unknown attributes are dropped and not rendered.
Server-side bootstrapping no longer relies on a global platform injector; getPlatform() returns null and destroyPlatform() is a no-op on the server.
BootstrapContextbootstrapApplicationgetPlatform()destroyPlatform()
Renames provideExperimentalCheckNoChangesForDebug to provideCheckNoChangesConfig and changes its behavior.
provideExperimentalCheckNoChangesForDebugprovideCheckNoChangesConfiguseNgZoneOnStableinterval
Removes InjectFlags from the public API.
InjectFlags
Removes TestBed.get.
TestBed.get
Renames afterRender to afterEveryRender.
afterRenderafterEveryRender
Removes TestBed.flushEffects(); use TestBed.tick() instead.
TestBed.flushEffects()TestBed.tick()
Renames provideExperimentalZonelessChangeDetection to provideZonelessChangeDetection.
provideExperimentalZonelessChangeDetectionprovideZonelessChangeDetection
Removes InjectFlags and its use in inject, Injector.get, EnvironmentInjector.get, TestBed.get and TestBed.inject.
InjectFlagsinjectInjector.getEnvironmentInjector.getTestBed.getTestBed.inject
PendingTasks.run no longer returns the async function result; reimplement with PendingTasks.add if needed.
PendingTasks.runPendingTasks.add
Route guards arrays no longer include any in the type union; union now uses functional guards and ProviderToken<T>|string.
RouteInjector.getProviderTokeninjector.get
ApplicationRef.tick no longer catches and reports errors to ErrorHandler; errors are thrown out of the method.
ApplicationRef.tickErrorHandler
Detects the Y formatter without w as a suspicious date pattern.
Ywy
AsyncPipe now catches unhandled subscription and promise errors and reports them to ErrorHandler.
AsyncPipeErrorHandler
'in' in an expression now refers to the operator.
in
'void' in an expression now refers to the operator instead of a component property.
void
Uncaught listener errors are now also reported to Angular's internal error handling and rethrown by default in tests.
ErrorHandlerconfigureTestingModulerethrowApplicationErrors
RedirectFn can now return Observable or Promise, so code calling such functions may need adjustment.
RedirectFnObservablePromise
Router public API methods that required writable arrays now accept readonly arrays when no mutations are done.
Makes void in an expression refer to the operator instead of a component property.
void
Animations are now flushed during automatic change detection and ApplicationRef.tick, which can affect tests.
ApplicationRef.tick
Security31
Disallows event handler attributes in Meta.
Meta
Angular: Sanitization bypass via directive host bindings on concrete host elements in @angular/core and @angular/compiler
Moderate
Angular i18n: Cross-Site Scripting (XSS) via event-handler attributes
High
Rejects dynamic script host elements in core.
Prevents caching of HTTP responses that include Set-Cookie headers.
Uses cryptographically secure SHA-256 for transfer cache key generation.
Sanitizes two-way properties in the compiler.
Hardens TransferState restoration against DOM clobbering.
TransferState
Rejects non-HTTP(S) URLs in JSONP requests.
Hardens platform location origin validation during SSR.
Strips sensitive headers on cross-origin redirects in service-worker.
@angular/compiler: Two-Way Property Binding Sanitization Bypass (XSS)
Moderate · CVSS 6.1
Throws on suspicious URLs and restricts protocol-relative URLs in platform-server.
Sanitizes the placeholder in the common package.
Sanitizes dynamic href and xlink:href bindings on SVG a elements.
hrefxlink:href
Strips namespaced SVG script elements during template compilation.
Rejects script element as a dynamic component host.
Sanitizes meta selectors.
Secures location and document initialization against SSRF and path hijack.
Angular: Template and Attribute Namespace Sanitization Bypass (XSS)
Moderate · CVSS 6.1
Validates security-sensitive attributes in i18n bindings.
Fixes platform-server SSRF bypasses via protocol-relative and backslash URLs.
Disallows translations of iframe src attributes in the compiler.
iframesrc
Sanitizes translated attribute bindings that contain interpolations.
Sanitizes translated form attributes.
Angular vulnerable to XSS in i18n attribute bindings
High · CVSS 9.0
Blocks creation of sensitive URI attributes from ICU messages.
Sanitizes sensitive attributes on SVG script elements.
Angular has XSS Vulnerability via Unsanitized SVG Script Attributes
High
Angular Stored XSS Vulnerability via SVG Animation, SVG URL and MathML Attributes
attributeNameHigh
Prevents XSRF token leakage to protocol-relative URLs.
Platform8
Supports TypeScript 5.9.
Updates minimum Node.js support to 20.19, 22.12, and 24.0.
Drops support for TypeScript older than 5.8.
Updates Node.js version support.
Marks zone.js as an optional peer dependency.
zone.js
Updates minimum Node.js support to 20.19, 22.12, and 24.0.
Drops support for TypeScript versions less than 5.8.
Drops Node.js v18 and Node.js 22.0 to 22.10 support; requires at least Node.js 20.11.1.
Deprecated17
Deprecates ServerXhr in platform-server.
ServerXhr
Deprecates XHR support in @angular/platform-server in favor of fetch.
@angular/platform-server
Deprecates the animations package.
Deprecates the animations field on the component interface.
animations
Deprecates @angular/animations.
@angular/animations
Deprecates @angular/animations in core.
@angular/animations
Deprecates Router.getCurrentNavigation in favor of the Router.currentNavigation signal.
Router.getCurrentNavigationRouter.currentNavigation
Deprecates @angular/animations.
@angular/animations
Deprecates @angular/animations in core.
@angular/animations
Deprecates ngIf, ngFor and ngSwitch in favor of control flow blocks @for, @if and @switch.
ngIfngForngSwitch@for@if@switch
Deprecates the platform-browser-dynamic package.
platform-browser-dynamic
Deprecates the HammerJS integration.
HammerJS
Deprecates the platform-server testing entry point.
Deprecates ng-reflect-* attributes and stops producing them by default; provideNgReflectAttributes() restores dev-mode behavior.
ng-reflect-*provideNgReflectAttributes()
Deprecates all entries of @angular/platform-browser-dynamic.
@angular/platform-browser-dynamic
Deprecates HammerJS support, which will be removed in a future major version.
HammerJS
Deprecates @angular/platform-server/testing; use e2e tests to verify SSR behavior instead.
@angular/platform-server/testing

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • removed: class KeyedWrite extends AST
  • removed: class ParserError
  • removed: class PropertyWrite extends ASTWithName
  • removed: class R3BoundTarget<DirectiveT extends DirectiveMeta> implements BoundTarget<DirectiveT>
  • removed: class WriteKeyExpr extends Expression
  • removed: class WritePropExpr extends Expression
  • removed: class WriteVarExpr extends Expression
  • removed: constructor KeyedWrite(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, receiver: AST, key: AST, value: AST)
  • removed: constructor ParserError(message: string, input: string, errLocation: string, ctxLocation?: any | undefined)
  • removed: constructor PropertyWrite(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, nameSpan: AbsoluteSourceSpan, receiver: AST, name: string, value: AST)
  • removed: constructor R3BoundTarget(target: Target, directives: MatchedDirectives<DirectiveT>, eagerDirectives: DirectiveT[], bindings: BindingsMap<DirectiveT>, references: ReferenceMap<DirectiveT>, exprTargets: Map<AST, TemplateEntity>, symbols: Map<TemplateEntity, Template>, nestingLevel: Map<ScopedNode, number>, scopedNodeEntities: ScopedNodeEntities, usedPipes: Set<string>, eagerPipes: Set<string>, raw…
  • removed: constructor WriteKeyExpr(receiver: Expression, index: Expression, value: Expression, type?: Type$1 | null, sourceSpan?: ParseSourceSpan$1 | null)
  • removed: constructor WritePropExpr(receiver: Expression, name: string, value: Expression, type?: Type$1 | null, sourceSpan?: ParseSourceSpan$1 | null)
  • removed: constructor WriteVarExpr(name: string, value: Expression, type?: Type$1 | null, sourceSpan?: ParseSourceSpan$1 | null)
  • removed: interface AnimationTriggerNames
  • removed: method AstVisitor.visitKeyedWrite(ast: KeyedWrite, context: any): any
  • removed: method AstVisitor.visitPropertyWrite(ast: PropertyWrite, context: any): any
  • removed: method ExpressionVisitor.visitWriteKeyExpr(expr: WriteKeyExpr, context: any): any
  • removed: method ExpressionVisitor.visitWritePropExpr(expr: WritePropExpr, context: any): any
  • removed: method ExpressionVisitor.visitWriteVarExpr(expr: WriteVarExpr, context: any): any
  • removed: method KeyedWrite.visit(visitor: AstVisitor, context?: any): any
  • removed: method PropertyWrite.visit(visitor: AstVisitor, context?: any): any
  • removed: method R3BoundTarget.getConsumerOfBinding(binding: BoundAttribute | BoundEvent | TextAttribute): DirectiveT | Element | Template | null
  • removed: method R3BoundTarget.getDeferBlocks(): DeferredBlock[]
  • removed: method R3BoundTarget.getDeferredTriggerTarget(block: DeferredBlock, trigger: DeferredTrigger): Element | null
  • removed: method R3BoundTarget.getDefinitionNodeOfSymbol(symbol: TemplateEntity): ScopedNode | null
  • removed: method R3BoundTarget.getDirectivesOfNode(node: Element | Template): DirectiveT[] | null
  • removed: method R3BoundTarget.getEagerlyUsedDirectives(): DirectiveT[]
  • removed: method R3BoundTarget.getEagerlyUsedPipes(): string[]
  • removed: method R3BoundTarget.getEntitiesInScope(node: ScopedNode | null): ReadonlySet<TemplateEntity>
  • removed: method R3BoundTarget.getExpressionTarget(expr: AST): TemplateEntity | null
  • removed: method R3BoundTarget.getNestingLevel(node: ScopedNode): number
  • removed: method R3BoundTarget.getReferenceTarget(ref: Reference): ReferenceTarget<DirectiveT> | null
  • removed: method R3BoundTarget.getUsedDirectives(): DirectiveT[]
  • removed: method R3BoundTarget.getUsedPipes(): string[]
  • removed: method R3BoundTarget.isDeferred(element: Element): boolean
  • removed: method RecursiveAstVisitor.visitKeyedWrite(ast: KeyedWrite, context: any): any
  • removed: method RecursiveAstVisitor.visitPropertyWrite(ast: PropertyWrite, context: any): any
  • removed: method Token.isTemplateLiteralInterpolationEnd(): boolean
  • removed: method WriteKeyExpr.clone(): WriteKeyExpr
  • removed: method WriteKeyExpr.isConstant(): boolean
  • removed: method WriteKeyExpr.isEquivalent(e: Expression): boolean
  • removed: method WriteKeyExpr.visitExpression(visitor: ExpressionVisitor, context: any): any
  • removed: method WritePropExpr.clone(): WritePropExpr
  • removed: method WritePropExpr.isConstant(): boolean
  • removed: method WritePropExpr.isEquivalent(e: Expression): boolean
  • removed: method WritePropExpr.visitExpression(visitor: ExpressionVisitor, context: any): any
  • removed: method WriteVarExpr.clone(): WriteVarExpr
  • removed: method WriteVarExpr.isConstant(): boolean
  • removed: method WriteVarExpr.isEquivalent(e: Expression): boolean
  • removed: method WriteVarExpr.toConstDecl(): DeclareVarStmt
  • removed: method WriteVarExpr.toDeclStmt(type?: Type$1 | null, modifiers?: StmtModifier): DeclareVarStmt
  • removed: method WriteVarExpr.visitExpression(visitor: ExpressionVisitor, context: any): any
  • removed: property AnimationTriggerNames.includesDynamicAnimations: boolean
  • removed: property AnimationTriggerNames.staticTriggerNames: string[]
  • removed: property BinaryOperatorExpr.parens: boolean
  • removed: property KeyedWrite.key: AST
  • removed: property KeyedWrite.receiver: AST
  • removed: property KeyedWrite.value: AST
  • removed: property ParserError.ctxLocation?: any | undefined
  • removed: property ParserError.errLocation: string
  • removed: property ParserError.input: string
  • removed: property ParserError.message: string
  • removed: property PropertyWrite.name: string
  • removed: property PropertyWrite.receiver: AST
  • removed: property PropertyWrite.value: AST
  • removed: property WriteKeyExpr.index: Expression
  • removed: property WriteKeyExpr.receiver: Expression
  • removed: property WriteKeyExpr.value: Expression
  • removed: property WritePropExpr.name: string
  • removed: property WritePropExpr.receiver: Expression
  • removed: property WritePropExpr.value: Expression
  • removed: property WriteVarExpr.name: string
  • removed: property WriteVarExpr.value: Expression
  • removed: readonly property R3BoundTarget.target: Target
  • removed: static property R3Identifiers.attributeInterpolate1: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolate2: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolate3: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolate4: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolate5: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolate6: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolate7: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolate8: ExternalReference
  • removed: static property R3Identifiers.attributeInterpolateV: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate1: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate2: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate3: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate4: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate5: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate6: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate7: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolate8: ExternalReference
  • removed: static property R3Identifiers.classMapInterpolateV: ExternalReference
  • removed: static property R3Identifiers.hostProperty: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate1: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate2: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate3: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate4: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate5: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate6: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate7: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate8: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolate: ExternalReference
  • removed: static property R3Identifiers.propertyInterpolateV: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate1: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate2: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate3: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate4: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate5: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate6: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate7: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolate8: ExternalReference
  • removed: static property R3Identifiers.styleMapInterpolateV: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate1: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate2: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate3: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate4: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate5: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate6: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate7: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolate8: ExternalReference
  • removed: static property R3Identifiers.stylePropInterpolateV: ExternalReference
  • changed: class ParseError → class ParseError extends Error
  • changed: constructor ASTWithSource(ast: T, source: string | null, location: string, absoluteOffset: number, errors: ParserError[]) → constructor ASTWithSource(ast: T, source: string | null, location: string, absoluteOffset: number, errors: ParseError[])
  • changed: constructor BinaryOperatorExpr(operator: BinaryOperator, lhs: Expression, rhs: Expression, type?: Type$1 | null, sourceSpan?: ParseSourceSpan$1 | null, parens?: boolean) → constructor BinaryOperatorExpr(operator: BinaryOperator, lhs: Expression, rhs: Expression, type?: Type$1 | null, sourceSpan?: ParseSourceSpan$1 | null)
  • changed: constructor BindingPipe(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, exp: AST, name: string, args: any[], nameSpan: AbsoluteSourceSpan) → constructor BindingPipe(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, exp: AST, name: string, args: any[], type: BindingPipeType, nameSpan: AbsoluteSourceSpan)
  • changed: constructor Element(name: string, attrs: Attribute[], children: Node$1[], sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan?: ParseSourceSpan$1 | null, i18n?: I18nMeta$1) → constructor Element(name: string, attrs: Attribute[], directives: Directive$1[], children: Node$1[], isSelfClosing: boolean, sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: (ParseSourceSpan$1 | null) | undefined, isVoid: boolean, i18n?: I18nMeta$1)
  • changed: constructor ParsedEvent(name: string, targetOrPhase: string, type: ParsedEventType, handler: ASTWithSource, sourceSpan: ParseSourceSpan$1, handlerSpan: ParseSourceSpan$1, keySpan: ParseSourceSpan$1) → constructor ParsedEvent(name: string, targetOrPhase: string | null, type: ParsedEventType, handler: ASTWithSource, sourceSpan: ParseSourceSpan$1, handlerSpan: ParseSourceSpan$1, keySpan: ParseSourceSpan$1)
  • changed: constructor ParsedEvent(name: string, targetOrPhase: string, type: ParsedEventType.TwoWay, handler: ASTWithSource<NonNullAssert | PropertyRead | KeyedRead>, sourceSpan: ParseSourceSpan$1, handlerSpan: ParseSourceSpan$1, keySpan: ParseSourceSpan$1) → constructor ParsedEvent(name: string, targetOrPhase: string | null, type: ParsedEventType.TwoWay, handler: ASTWithSource<NonNullAssert | PropertyRead | KeyedRead>, sourceSpan: ParseSourceSpan$1, handlerSpan: ParseSourceSpan$1, keySpan: ParseSourceSpan$1)
  • changed: constructor Parser(_lexer: Lexer) → constructor Parser(_lexer: Lexer, _supportsDirectPipeReferences?: boolean)
  • changed: constructor R3TargetBinder(directiveMatcher: SelectorMatcher<DirectiveT[]>) → constructor R3TargetBinder(directiveMatcher: DirectiveMatcher<DirectiveT> | null)
  • changed: constructor TemplateBindingParseResult(templateBindings: TemplateBinding[], warnings: string[], errors: ParserError[]) → constructor TemplateBindingParseResult(templateBindings: TemplateBinding[], warnings: string[], errors: ParseError[])
  • changed: constructor TmplAstContent(selector: string, attributes: TextAttribute[], children: Node[], sourceSpan: ParseSourceSpan$1, i18n?: I18nMeta$1 | undefined) → constructor TmplAstContent(selector: string, attributes: TextAttribute[], children: Node[], isSelfClosing: boolean, sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: ParseSourceSpan$1 | null, i18n?: I18nMeta$1 | undefined)
  • changed: constructor TmplAstElement(name: string, attributes: TextAttribute[], inputs: BoundAttribute[], outputs: BoundEvent[], children: Node[], references: Reference[], sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: ParseSourceSpan$1 | null, i18n?: I18nMeta$1 | undefined) → constructor TmplAstElement(name: string, attributes: TextAttribute[], inputs: BoundAttribute[], outputs: BoundEvent[], directives: Directive[], children: Node[], references: Reference[], isSelfClosing: boolean, sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: ParseSourceSpan$1 | null, isVoid: boolean, i18n?: I18nMeta$1 | undefined)
  • changed: constructor TmplAstTemplate(tagName: string | null, attributes: TextAttribute[], inputs: BoundAttribute[], outputs: BoundEvent[], templateAttrs: (BoundAttribute | TextAttribute)[], children: Node[], references: Reference[], variables: Variable[], sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: ParseSourceSpan$1 | null, i18n?: I18nMeta$1 | undefined) → constructor TmplAstTemplate(tagName: string | null, attributes: TextAttribute[], inputs: BoundAttribute[], outputs: BoundEvent[], directives: Directive[], templateAttrs: (BoundAttribute | TextAttribute)[], children: Node[], references: Reference[], variables: Variable[], isSelfClosing: boolean, sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: ParseSourceSpan$1 | n…
  • changed: function makeBindingParser(interpolationConfig?: InterpolationConfig): BindingParser → function makeBindingParser(interpolationConfig?: InterpolationConfig, selectorlessEnabled?: boolean): BindingParser
  • changed: interface Target → interface Target<DirectiveT>
  • changed: member BinaryOperator.And = 9 → member BinaryOperator.And = 10
  • changed: member BinaryOperator.Bigger = 15 → member BinaryOperator.Bigger = 16
  • changed: member BinaryOperator.BiggerEquals = 16 → member BinaryOperator.BiggerEquals = 17
  • changed: member BinaryOperator.BitwiseAnd = 12 → member BinaryOperator.BitwiseAnd = 13
  • changed: member BinaryOperator.BitwiseOr = 11 → member BinaryOperator.BitwiseOr = 12
  • changed: member BinaryOperator.Divide = 6 → member BinaryOperator.Divide = 7
  • changed: member BinaryOperator.Identical = 2 → member BinaryOperator.Identical = 3
  • changed: member BinaryOperator.Lower = 13 → member BinaryOperator.Lower = 14
  • changed: member BinaryOperator.LowerEquals = 14 → member BinaryOperator.LowerEquals = 15
  • changed: member BinaryOperator.Minus = 4 → member BinaryOperator.Minus = 5
  • changed: member BinaryOperator.Modulo = 8 → member BinaryOperator.Modulo = 9
  • changed: member BinaryOperator.Multiply = 7 → member BinaryOperator.Multiply = 8
  • changed: member BinaryOperator.NotIdentical = 3 → member BinaryOperator.NotIdentical = 4
  • changed: member BinaryOperator.NullishCoalesce = 17 → member BinaryOperator.NullishCoalesce = 18
  • changed: member BinaryOperator.Or = 10 → member BinaryOperator.Or = 11
  • changed: member BinaryOperator.Plus = 5 → member BinaryOperator.Plus = 6
  • changed: member BindingType.Animation = 4 → member BindingType.Animation = 6
  • changed: member LexerTokenType.EOF = 33 → member LexerTokenType.EOF = 41
  • changed: member ParsedEventType.Animation = 1 → member ParsedEventType.Animation = 3
  • changed: member ParsedPropertyType.ANIMATION = 2 → member ParsedPropertyType.ANIMATION = 4
  • changed: method BoundTarget.getDirectivesOfNode(node: Element | Template): DirectiveT[] | null → method BoundTarget.getDirectivesOfNode(node: DirectiveOwner): DirectiveT[] | null
  • changed: method Expression.bitwiseAnd(rhs: Expression, sourceSpan?: ParseSourceSpan$1 | null, parens?: boolean): BinaryOperatorExpr → method Expression.bitwiseAnd(rhs: Expression, sourceSpan?: ParseSourceSpan$1 | null): BinaryOperatorExpr
  • changed: method Expression.bitwiseOr(rhs: Expression, sourceSpan?: ParseSourceSpan$1 | null, parens?: boolean): BinaryOperatorExpr → method Expression.bitwiseOr(rhs: Expression, sourceSpan?: ParseSourceSpan$1 | null): BinaryOperatorExpr
  • changed: method Parser.parseAction(input: string, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource → method Parser.parseAction(input: string, parseSourceSpan: ParseSourceSpan$1, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource
  • changed: method Parser.parseBinding(input: string, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource → method Parser.parseBinding(input: string, parseSourceSpan: ParseSourceSpan$1, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource
  • changed: method Parser.parseInterpolation(input: string, location: string, absoluteOffset: number, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, interpolationConfig?: InterpolationConfig): ASTWithSource | null → method Parser.parseInterpolation(input: string, parseSourceSpan: ParseSourceSpan$1, absoluteOffset: number, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, interpolationConfig?: InterpolationConfig): ASTWithSource | null
  • changed: method Parser.parseInterpolationExpression(expression: string, location: string, absoluteOffset: number): ASTWithSource → method Parser.parseInterpolationExpression(expression: string, parseSourceSpan: ParseSourceSpan$1, absoluteOffset: number): ASTWithSource
  • changed: method Parser.parseSimpleBinding(input: string, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource → method Parser.parseSimpleBinding(input: string, parseSourceSpan: ParseSourceSpan$1, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource
  • changed: method Parser.parseTemplateBindings(templateKey: string, templateValue: string, templateUrl: string, absoluteKeyOffset: number, absoluteValueOffset: number): TemplateBindingParseResult → method Parser.parseTemplateBindings(templateKey: string, templateValue: string, parseSourceSpan: ParseSourceSpan$1, absoluteKeyOffset: number, absoluteValueOffset: number): TemplateBindingParseResult
  • changed: method Parser.splitInterpolation(input: string, location: string, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, interpolationConfig?: InterpolationConfig): SplitInterpolation → method Parser.splitInterpolation(input: string, parseSourceSpan: ParseSourceSpan$1, errors: ParseError[], interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, interpolationConfig?: InterpolationConfig): SplitInterpolation
  • changed: method Parser.wrapLiteralPrimitive(input: string | null, location: string, absoluteOffset: number): ASTWithSource → method Parser.wrapLiteralPrimitive(input: string | null, sourceSpanOrLocation: ParseSourceSpan$1 | string, absoluteOffset: number): ASTWithSource
  • changed: method R3TargetBinder.bind(target: Target): BoundTarget<DirectiveT> → method R3TargetBinder.bind(target: Target<DirectiveT>): BoundTarget<DirectiveT>
  • changed: method ReadKeyExpr.set(value: Expression): WriteKeyExpr → method ReadKeyExpr.set(value: Expression): BinaryOperatorExpr
  • changed: method ReadPropExpr.set(value: Expression): WritePropExpr → method ReadPropExpr.set(value: Expression): BinaryOperatorExpr
  • changed: method ReadVarExpr.set(value: Expression): WriteVarExpr → method ReadVarExpr.set(value: Expression): BinaryOperatorExpr
  • changed: method TargetBinder.bind(target: Target): BoundTarget<D> → method TargetBinder.bind(target: Target<D>): BoundTarget<D>
  • changed: property ASTWithSource.errors: ParserError[] → property ASTWithSource.errors: ParseError[]
  • changed: property CompilerFacadeImpl.ResourceLoader: typeof ResourceLoader$1 → property CompilerFacadeImpl.ResourceLoader: typeof ResourceLoader
  • changed: property DirectiveMeta.animationTriggerNames: AnimationTriggerNames | null → property DirectiveMeta.animationTriggerNames: LegacyAnimationTriggerNames | null
  • changed: property ParsedEvent.targetOrPhase: string → property ParsedEvent.targetOrPhase: string | null
  • changed: property R3PipeMetadata.pipeName: string → property R3PipeMetadata.pipeName: string | null
  • changed: property TemplateBindingParseResult.errors: ParserError[] → property TemplateBindingParseResult.errors: ParseError[]
  • changed: readonly property BoundTarget.target: Target → readonly property BoundTarget.target: Target<DirectiveT>
  • changed: type Node = Attribute | Comment$1 | Element$1 | Expansion | ExpansionCase | Text$1 | Block | BlockParameter → type Node = Attribute | Comment$1 | Element$1 | Expansion | ExpansionCase | Text$1 | Block | BlockParameter | Component$1 | Directive$1
  • changed: type ReferenceTarget<DirectiveT> = { directive: DirectiveT; node: Element | Template } | Element | Template → type ReferenceTarget<DirectiveT> = { directive: DirectiveT; node: Exclude<DirectiveOwner, HostElement> } | Element | Template
  • added: class BindingParser
  • added: class CombinedRecursiveAstVisitor extends RecursiveAstVisitor implements RecursiveVisitor
  • added: class Component extends NodeWithI18n
  • added: class Directive implements BaseNode
  • added: class ParenthesizedExpr extends Expression
  • added: class ParenthesizedExpression extends AST
  • added: class SelectorlessMatcher<T = unknown>
  • added: class TaggedTemplateLiteral extends AST
  • added: class TmplAstComponent implements Node
  • added: class TmplAstDirective implements Node
  • added: class TmplAstHostElement implements Node
  • added: class VoidExpr extends Expression
  • added: class VoidExpression extends AST
  • added: const SCHEMA: string[]
  • added: const _ATTR_TO_PROP: Map<string, string>
  • added: const enum QueryFlags
  • added: constructor BindingParser(_exprParser: Parser, _interpolationConfig: InterpolationConfig, _schemaRegistry: ElementSchemaRegistry, errors: ParseError[])
  • added: constructor Component(componentName: string, tagName: string | null, fullName: string, attrs: Attribute[], directives: Directive$1[], children: Node$1[], isSelfClosing: boolean, sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan?: ParseSourceSpan$1 | null, i18n?: I18nMeta$1)
  • added: constructor Directive(name: string, attrs: Attribute[], sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan?: ParseSourceSpan$1 | null)
  • added: constructor ParenthesizedExpr(expr: Expression, type?: Type$1 | null, sourceSpan?: ParseSourceSpan$1 | null)
  • added: constructor ParenthesizedExpression(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, expression: AST)
  • added: constructor SelectorlessMatcher(registry: Map<string, T[]>)
  • added: constructor TaggedTemplateLiteral(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, tag: AST, template: TemplateLiteral)
  • added: constructor TmplAstComponent(componentName: string, tagName: string | null, fullName: string, attributes: TextAttribute[], inputs: BoundAttribute[], outputs: BoundEvent[], directives: Directive[], children: Node[], references: Reference[], isSelfClosing: boolean, sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: ParseSourceSpan$1 | null, i18n?: I18nMeta$1 | undefin…
  • added: constructor TmplAstDirective(name: string, attributes: TextAttribute[], inputs: BoundAttribute[], outputs: BoundEvent[], references: Reference[], sourceSpan: ParseSourceSpan$1, startSourceSpan: ParseSourceSpan$1, endSourceSpan: ParseSourceSpan$1 | null, i18n?: I18nMeta$1 | undefined)
  • added: constructor TmplAstHostElement(tagNames: string[], bindings: BoundAttribute[], listeners: BoundEvent[], sourceSpan: ParseSourceSpan$1)
  • added: constructor VoidExpr(expr: Expression, type?: Type$1 | null, sourceSpan?: ParseSourceSpan$1 | null)
  • added: constructor VoidExpression(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, expression: AST)
  • added: enum BindingPipeType
  • added: get BindingParser.interpolationConfig(): InterpolationConfig
  • added: interface LegacyAnimationTriggerNames
  • added: member BinaryOperator.AdditionAssignment = 21
  • added: member BinaryOperator.AndAssignment = 27
  • added: member BinaryOperator.Assign = 2
  • added: member BinaryOperator.DivisionAssignment = 24
  • added: member BinaryOperator.Exponentiation = 19
  • added: member BinaryOperator.ExponentiationAssignment = 26
  • added: member BinaryOperator.In = 20
  • added: member BinaryOperator.MultiplicationAssignment = 23
  • added: member BinaryOperator.NullishCoalesceAssignment = 29
  • added: member BinaryOperator.OrAssignment = 28
  • added: member BinaryOperator.RemainderAssignment = 25
  • added: member BinaryOperator.SubtractionAssignment = 22
  • added: member BindingPipeType.ReferencedByName = 0
  • added: member BindingPipeType.ReferencedDirectly = 1
  • added: member BindingType.LegacyAnimation = 4
  • added: member LexerTokenType.COMPONENT_CLOSE = 36
  • added: member LexerTokenType.COMPONENT_OPEN_END = 34
  • added: member LexerTokenType.COMPONENT_OPEN_END_VOID = 35
  • added: member LexerTokenType.COMPONENT_OPEN_START = 33
  • added: member LexerTokenType.DIRECTIVE_CLOSE = 40
  • added: member LexerTokenType.DIRECTIVE_NAME = 38
  • added: member LexerTokenType.DIRECTIVE_OPEN = 39
  • added: member LexerTokenType.INCOMPLETE_COMPONENT_OPEN = 37
  • added: member ParsedEventType.LegacyAnimation = 1
  • added: member ParsedPropertyType.LEGACY_ANIMATION = 2
  • added: member QueryFlags.descendants = 1
  • added: member QueryFlags.emitDistinctChangesOnly = 4
  • added: member QueryFlags.isStatic = 2
  • added: member QueryFlags.none = 0
  • added: method AstVisitor.visitParenthesizedExpression(ast: ParenthesizedExpression, context: any): any
  • added: method AstVisitor.visitTaggedTemplateLiteral(ast: TaggedTemplateLiteral, context: any): any
  • added: method AstVisitor.visitVoidExpression(ast: TypeofExpression, context: any): any
  • added: method BinaryOperatorExpr.isAssignment(): boolean
  • added: method BindingParser.calcPossibleSecurityContexts(selector: string, propName: string, isAttribute: boolean): SecurityContext[]
  • added: method BindingParser.createBoundElementProperty(elementSelector: string | null, boundProp: ParsedProperty, skipValidation?: boolean, mapPropertyName?: boolean): BoundElementProperty
  • added: method BindingParser.createBoundHostProperties(properties: HostProperties, sourceSpan: ParseSourceSpan$1): ParsedProperty[] | null
  • added: method BindingParser.createDirectiveHostEventAsts(hostListeners: HostListeners, sourceSpan: ParseSourceSpan$1): ParsedEvent[] | null
  • added: method BindingParser.parseBinding(value: string, isHostBinding: boolean, sourceSpan: ParseSourceSpan$1, absoluteOffset: number): ASTWithSource
  • added: method BindingParser.parseEvent(name: string, expression: string, isAssignmentEvent: boolean, sourceSpan: ParseSourceSpan$1, handlerSpan: ParseSourceSpan$1, targetMatchableAttrs: string[][], targetEvents: ParsedEvent[], keySpan: ParseSourceSpan$1): void
  • added: method BindingParser.parseEventListenerName(rawName: string): { eventName: string; target: string | null }
  • added: method BindingParser.parseInlineTemplateBinding(tplKey: string, tplValue: string, sourceSpan: ParseSourceSpan$1, absoluteValueOffset: number, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], targetVars: ParsedVariable[], isIvyAst: boolean): void
  • added: method BindingParser.parseInterpolation(value: string, sourceSpan: ParseSourceSpan$1, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null): ASTWithSource
  • added: method BindingParser.parseInterpolationExpression(expression: string, sourceSpan: ParseSourceSpan$1): ASTWithSource
  • added: method BindingParser.parseLegacyAnimationEventName(rawName: string): { eventName: string; phase: string | null }
  • added: method BindingParser.parseLiteralAttr(name: string, value: string | null, sourceSpan: ParseSourceSpan$1, absoluteOffset: number, valueSpan: ParseSourceSpan$1 | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan$1): void
  • added: method BindingParser.parsePropertyBinding(name: string, expression: string, isHost: boolean, isPartOfAssignmentBinding: boolean, sourceSpan: ParseSourceSpan$1, absoluteOffset: number, valueSpan: ParseSourceSpan$1 | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan$1): void
  • added: method BindingParser.parsePropertyInterpolation(name: string, value: string, sourceSpan: ParseSourceSpan$1, valueSpan: ParseSourceSpan$1 | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan$1, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null): boolean
  • added: method BoundTarget.referencedDirectiveExists(name: string): boolean
  • added: method CombinedRecursiveAstVisitor.visit(node: AST | Node): void
  • added: method CombinedRecursiveAstVisitor.visitBoundAttribute(attribute: BoundAttribute): void
  • added: method CombinedRecursiveAstVisitor.visitBoundEvent(attribute: BoundEvent): void
  • added: method CombinedRecursiveAstVisitor.visitBoundText(text: BoundText): void
  • added: method CombinedRecursiveAstVisitor.visitComponent(component: Component): void
  • added: method CombinedRecursiveAstVisitor.visitContent(content: Content): void
  • added: method CombinedRecursiveAstVisitor.visitDeferredBlock(deferred: DeferredBlock): void
  • added: method CombinedRecursiveAstVisitor.visitDeferredBlockError(block: DeferredBlockError): void
  • added: method CombinedRecursiveAstVisitor.visitDeferredBlockLoading(block: DeferredBlockLoading): void
  • added: method CombinedRecursiveAstVisitor.visitDeferredBlockPlaceholder(block: DeferredBlockPlaceholder): void
  • added: method CombinedRecursiveAstVisitor.visitDeferredTrigger(trigger: DeferredTrigger): void
  • added: method CombinedRecursiveAstVisitor.visitDirective(directive: Directive): void
  • added: method CombinedRecursiveAstVisitor.visitElement(element: Element): void
  • added: method CombinedRecursiveAstVisitor.visitForLoopBlock(block: ForLoopBlock): void
  • added: method CombinedRecursiveAstVisitor.visitForLoopBlockEmpty(block: ForLoopBlockEmpty): void
  • added: method CombinedRecursiveAstVisitor.visitIcu(icu: Icu): void
  • added: method CombinedRecursiveAstVisitor.visitIfBlock(block: IfBlock): void
  • added: method CombinedRecursiveAstVisitor.visitIfBlockBranch(block: IfBlockBranch): void
  • added: method CombinedRecursiveAstVisitor.visitLetDeclaration(decl: LetDeclaration): void
  • added: method CombinedRecursiveAstVisitor.visitReference(reference: Reference): void
  • added: method CombinedRecursiveAstVisitor.visitSwitchBlock(block: SwitchBlock): void
  • added: method CombinedRecursiveAstVisitor.visitSwitchBlockCase(block: SwitchBlockCase): void
  • added: method CombinedRecursiveAstVisitor.visitTemplate(template: Template): void
  • added: method CombinedRecursiveAstVisitor.visitText(text: Text): void
  • added: method CombinedRecursiveAstVisitor.visitTextAttribute(attribute: TextAttribute): void
  • added: method CombinedRecursiveAstVisitor.visitUnknownBlock(block: UnknownBlock): void
  • added: method CombinedRecursiveAstVisitor.visitVariable(variable: Variable): void
  • added: method Component.visit(visitor: Visitor$1, context: any): any
  • added: method Directive.visit(visitor: Visitor$1, context: any): any
  • added: method Expression.power(rhs: Expression, sourceSpan?: ParseSourceSpan$1 | null): BinaryOperatorExpr
  • added: method ExpressionVisitor.visitParenthesizedExpr(ast: ParenthesizedExpr, context: any): any
  • added: method ExpressionVisitor.visitVoidExpr(ast: VoidExpr, context: any): any
  • added: method ParenthesizedExpr.clone(): ParenthesizedExpr
  • added: method ParenthesizedExpr.isConstant(): boolean
  • added: method ParenthesizedExpr.isEquivalent(e: Expression): boolean
  • added: method ParenthesizedExpr.visitExpression(visitor: ExpressionVisitor, context: any): any
  • added: method ParenthesizedExpression.visit(visitor: AstVisitor, context?: any): any
  • added: method RecursiveAstVisitor.visitParenthesizedExpression(ast: ParenthesizedExpression, context: any): void
  • added: method RecursiveAstVisitor.visitTaggedTemplateLiteral(ast: TaggedTemplateLiteral, context: any): void
  • added: method RecursiveAstVisitor.visitVoidExpression(ast: VoidExpression, context: any): void
  • added: method RecursiveVisitor.visitComponent(component: Component$1, context: any): void
  • added: method RecursiveVisitor.visitDirective(directive: Directive$1, context: any): void
  • added: method SelectorlessMatcher.match(name: string): T[]
  • added: method TaggedTemplateLiteral.visit(visitor: AstVisitor, context?: any): any
  • added: method TmplAstComponent.visit<Result>(visitor: Visitor<Result>): Result
  • added: method TmplAstDirective.visit<Result>(visitor: Visitor<Result>): Result
  • added: method TmplAstHostElement.visit<Result>(): Result
  • added: method TmplAstRecursiveVisitor.visitComponent(component: Component): void
  • added: method TmplAstRecursiveVisitor.visitDirective(directive: Directive): void
  • added: method TmplAstVisitor.visitComponent(component: Component): Result
  • added: method TmplAstVisitor.visitDirective(directive: Directive): Result
  • added: method Token.isKeywordIn(): boolean
  • added: method Token.isKeywordVoid(): boolean
  • added: method Visitor.visitComponent(component: Component$1, context: any): any
  • added: method Visitor.visitDirective(directive: Directive$1, context: any): any
  • added: method VoidExpr.clone(): VoidExpr
  • added: method VoidExpr.isConstant(): boolean
  • added: method VoidExpr.isEquivalent(e: Expression): boolean
  • added: method VoidExpr.visitExpression(visitor: ExpressionVisitor, context: any): any
  • added: method VoidExpression.visit(visitor: AstVisitor, context?: any): any
  • added: property BindingParser.errors: ParseError[]
  • added: property Component.attrs: Attribute[]
  • added: property Component.endSourceSpan: ParseSourceSpan$1 | null
  • added: property LegacyAnimationTriggerNames.includesDynamicAnimations: boolean
  • added: property LegacyAnimationTriggerNames.staticTriggerNames: string[]
  • added: property ParenthesizedExpr.expr: Expression
  • added: property ParenthesizedExpression.expression: AST
  • added: property ParseTemplateOptions.enableSelectorless?: boolean
  • added: property R3ComponentMetadata.hasDirectiveDependencies: boolean
  • added: property TaggedTemplateLiteral.tag: AST
  • added: property TaggedTemplateLiteral.template: TemplateLiteral
  • added: property Target.host?: { node: HostElement; directives: DirectiveT[] }
  • added: property TmplAstComponent.attributes: TextAttribute[]
  • added: property TmplAstComponent.children: Node[]
  • added: property TmplAstComponent.componentName: string
  • added: property TmplAstComponent.directives: Directive[]
  • added: property TmplAstComponent.endSourceSpan: ParseSourceSpan$1 | null
  • added: property TmplAstComponent.fullName: string
  • added: property TmplAstComponent.i18n?: I18nMeta$1 | undefined
  • added: property TmplAstComponent.inputs: BoundAttribute[]
  • added: property TmplAstComponent.isSelfClosing: boolean
  • added: property TmplAstComponent.outputs: BoundEvent[]
  • added: property TmplAstComponent.references: Reference[]
  • added: property TmplAstComponent.sourceSpan: ParseSourceSpan$1
  • added: property TmplAstComponent.startSourceSpan: ParseSourceSpan$1
  • added: property TmplAstComponent.tagName: string | null
  • added: property TmplAstContent.endSourceSpan: ParseSourceSpan$1 | null
  • added: property TmplAstContent.isSelfClosing: boolean
  • added: property TmplAstContent.startSourceSpan: ParseSourceSpan$1
  • added: property TmplAstDirective.attributes: TextAttribute[]
  • added: property TmplAstDirective.endSourceSpan: ParseSourceSpan$1 | null
  • added: property TmplAstDirective.i18n?: I18nMeta$1 | undefined
  • added: property TmplAstDirective.inputs: BoundAttribute[]
  • added: property TmplAstDirective.name: string
  • added: property TmplAstDirective.outputs: BoundEvent[]
  • added: property TmplAstDirective.references: Reference[]
  • added: property TmplAstDirective.sourceSpan: ParseSourceSpan$1
  • added: property TmplAstDirective.startSourceSpan: ParseSourceSpan$1
  • added: property TmplAstElement.directives: Directive[]
  • added: property TmplAstElement.isSelfClosing: boolean
  • added: property TmplAstTemplate.directives: Directive[]
  • added: property TmplAstTemplate.isSelfClosing: boolean
  • added: property VoidExpr.expr: Expression
  • added: property VoidExpression.expression: AST
  • added: protected method CombinedRecursiveAstVisitor.visitAllTemplateNodes(nodes: Node[]): void
  • added: readonly property BindingPipe.type: BindingPipeType
  • added: readonly property Component.children: Node$1[]
  • added: readonly property Component.componentName: string
  • added: readonly property Component.directives: Directive$1[]
  • added: readonly property Component.fullName: string
  • added: readonly property Component.isSelfClosing: boolean
  • added: readonly property Component.startSourceSpan: ParseSourceSpan$1
  • added: readonly property Component.tagName: string | null
  • added: readonly property Directive.attrs: Attribute[]
  • added: readonly property Directive.endSourceSpan: ParseSourceSpan$1 | null
  • added: readonly property Directive.name: string
  • added: readonly property Directive.sourceSpan: ParseSourceSpan$1
  • added: readonly property Directive.startSourceSpan: ParseSourceSpan$1
  • added: readonly property Element.directives: Directive$1[]
  • added: readonly property Element.isSelfClosing: boolean
  • added: readonly property Element.isVoid: boolean
  • added: readonly property ParsedProperty.isLegacyAnimation: boolean
  • added: readonly property TmplAstElement.isVoid: boolean
  • added: readonly property TmplAstHostElement.bindings: BoundAttribute[]
  • added: readonly property TmplAstHostElement.listeners: BoundEvent[]
  • added: readonly property TmplAstHostElement.sourceSpan: ParseSourceSpan$1
  • added: readonly property TmplAstHostElement.tagNames: string[]
  • added: static method Binary.isAssignmentOperation(op: string): boolean
  • added: static property R3Identifiers.animationEnter: ExternalReference
  • added: static property R3Identifiers.animationEnterListener: ExternalReference
  • added: static property R3Identifiers.animationLeave: ExternalReference
  • added: static property R3Identifiers.animationLeaveListener: ExternalReference
  • added: static property R3Identifiers.ariaProperty: ExternalReference
  • added: static property R3Identifiers.assertType: { name: string; moduleName: string }
  • added: static property R3Identifiers.conditionalBranchCreate: ExternalReference
  • added: static property R3Identifiers.conditionalCreate: ExternalReference
  • added: static property R3Identifiers.contentChildDecorator: ExternalReference
  • added: static property R3Identifiers.contentChildrenDecorator: ExternalReference
  • added: static property R3Identifiers.domElement: ExternalReference
  • added: static property R3Identifiers.domElementContainer: ExternalReference
  • added: static property R3Identifiers.domElementContainerEnd: ExternalReference
  • added: static property R3Identifiers.domElementContainerStart: ExternalReference
  • added: static property R3Identifiers.domElementEnd: ExternalReference
  • added: static property R3Identifiers.domElementStart: ExternalReference
  • added: static property R3Identifiers.domListener: ExternalReference
  • added: static property R3Identifiers.domProperty: ExternalReference
  • added: static property R3Identifiers.domTemplate: ExternalReference
  • added: static property R3Identifiers.inputDecorator: ExternalReference
  • added: static property R3Identifiers.interpolate1: ExternalReference
  • added: static property R3Identifiers.interpolate2: ExternalReference
  • added: static property R3Identifiers.interpolate3: ExternalReference
  • added: static property R3Identifiers.interpolate4: ExternalReference
  • added: static property R3Identifiers.interpolate5: ExternalReference
  • added: static property R3Identifiers.interpolate6: ExternalReference
  • added: static property R3Identifiers.interpolate7: ExternalReference
  • added: static property R3Identifiers.interpolate8: ExternalReference
  • added: static property R3Identifiers.interpolate: ExternalReference
  • added: static property R3Identifiers.interpolateV: ExternalReference
  • added: static property R3Identifiers.outputDecorator: ExternalReference
  • added: static property R3Identifiers.viewChildDecorator: ExternalReference
  • added: static property R3Identifiers.viewChildrenDecorator: ExternalReference
  • added: type DirectiveMatcher<DirectiveT extends DirectiveMeta> = SelectorMatcher<DirectiveT[]> | SelectorlessMatcher<DirectiveT>
  • added: type DirectiveOwner = Element | Template | Component | Directive | HostElement