From 138ca5a246e4d6ffca88264803828491d9014a2a Mon Sep 17 00:00:00 2001 From: Ben Lesh Date: Thu, 4 Apr 2019 11:41:52 -0700 Subject: [PATCH] refactor(ivy): prefix all generated instructions (#29692) - Updates all instructions to be prefixed with the Greek delta symbol PR Close #29692 --- .../transforms/angular-api-package/index.js | 25 +- docs/PUBLIC_API.md | 2 +- integration/ngcc/test.sh | 14 +- .../src/tree/render3_function/index.ts | 40 +- packages/common/src/directives/ng_class.ts | 10 +- packages/common/src/directives/ng_style.ts | 10 +- packages/common/src/viewport_scroller.ts | 6 +- .../ngcc/test/rendering/renderer_spec.ts | 12 +- packages/compiler-cli/src/metadata/bundler.ts | 2 +- .../src/ngtsc/imports/src/core.ts | 16 +- .../test/compliance/mock_compiler_spec.ts | 4 +- .../compliance/r3_compiler_compliance_spec.ts | 708 +++++----- .../r3_view_compiler_binding_spec.ts | 106 +- .../compliance/r3_view_compiler_di_spec.ts | 16 +- .../r3_view_compiler_directives_spec.ts | 56 +- .../compliance/r3_view_compiler_i18n_spec.ts | 1170 ++++++++--------- .../r3_view_compiler_input_outputs_spec.ts | 4 +- .../r3_view_compiler_listener_spec.ts | 62 +- .../r3_view_compiler_providers_spec.ts | 6 +- .../test/compliance/r3_view_compiler_spec.ts | 16 +- .../r3_view_compiler_styling_spec.ts | 326 ++--- .../r3_view_compiler_template_spec.ts | 190 +-- packages/compiler-cli/test/ngc_spec.ts | 16 +- .../test/ngtsc/fake_core/index.ts | 6 +- .../compiler-cli/test/ngtsc/ngtsc_spec.ts | 292 ++-- .../compiler-cli/test/ngtsc/scope_spec.ts | 38 +- .../test/ngtsc/template_mapping_spec.ts | 164 +-- .../test/ngtsc/template_typecheck_spec.ts | 6 +- packages/compiler/design/architecture.md | 34 +- .../compiler/design/separate_compilation.md | 14 +- packages/compiler/src/identifiers.ts | 8 +- packages/compiler/src/injectable_compiler.ts | 2 +- .../compiler/src/injectable_compiler_2.ts | 2 +- .../compiler/src/render3/r3_identifiers.ts | 224 ++-- .../src/render3/r3_module_compiler.ts | 6 +- .../compiler/src/render3/view/template.ts | 2 +- .../differs/iterable_differs.ts | 4 +- .../differs/keyvalue_differs.ts | 4 +- packages/core/src/codegen_private_exports.ts | 2 +- packages/core/src/core_private_export.ts | 5 +- .../core/src/core_render3_private_export.ts | 226 ++-- packages/core/src/di/index.ts | 4 +- packages/core/src/di/injectable.ts | 7 +- packages/core/src/di/injection_token.ts | 4 +- packages/core/src/di/injector.ts | 8 +- .../core/src/di/injector_compatibility.ts | 28 +- packages/core/src/di/interface/defs.ts | 27 +- packages/core/src/di/jit/environment.ts | 13 +- packages/core/src/di/r3_injector.ts | 10 +- packages/core/src/di/util.ts | 4 +- packages/core/src/metadata/ng_module.ts | 11 +- packages/core/src/r3_symbols.ts | 8 +- .../core/src/render3/DELTA_INSTRUCTIONS.md | 9 + packages/core/src/render3/STATUS.md | 36 +- .../src/render3/STORING_METADATA_IN_D.TS.md | 12 +- packages/core/src/render3/VIEW_DATA.md | 54 +- packages/core/src/render3/component_ref.ts | 4 +- packages/core/src/render3/definition.ts | 43 +- packages/core/src/render3/di.ts | 12 +- packages/core/src/render3/di_setup.ts | 6 +- .../features/inherit_definition_feature.ts | 8 +- .../render3/features/ng_onchanges_feature.ts | 4 +- .../src/render3/features/providers_feature.ts | 4 +- packages/core/src/render3/i18n.ts | 44 +- packages/core/src/render3/index.ts | 260 ++-- .../render3/instructions/alloc_host_vars.ts | 4 +- .../src/render3/instructions/container.ts | 16 +- packages/core/src/render3/instructions/di.ts | 19 +- .../core/src/render3/instructions/element.ts | 26 +- .../render3/instructions/element_container.ts | 12 +- .../src/render3/instructions/embedded_view.ts | 12 +- .../render3/instructions/get_current_view.ts | 4 +- .../core/src/render3/instructions/listener.ts | 8 +- .../src/render3/instructions/namespace.ts | 2 +- .../src/render3/instructions/next_context.ts | 4 +- .../src/render3/instructions/projection.ts | 10 +- .../core/src/render3/instructions/property.ts | 20 +- .../instructions/property_interpolation.ts | 64 +- .../core/src/render3/instructions/select.ts | 26 +- .../core/src/render3/instructions/shared.ts | 9 +- .../core/src/render3/instructions/storage.ts | 12 +- .../core/src/render3/instructions/styling.ts | 22 +- .../core/src/render3/instructions/text.ts | 8 +- .../core/src/render3/interfaces/definition.ts | 21 +- packages/core/src/render3/jit/environment.ts | 226 ++-- packages/core/src/render3/pipe.ts | 51 +- packages/core/src/render3/pure_function.ts | 40 +- packages/core/src/render3/query.ts | 42 +- packages/core/src/render3/state.ts | 32 +- packages/core/src/render3/util/misc_utils.ts | 18 +- .../view_engine_compatibility_prebound.ts | 4 +- .../core/src/sanitization/sanitization.ts | 34 +- packages/core/src/view/ng_module.ts | 6 +- packages/core/src/view/services.ts | 4 +- .../cyclic_import/bundle.golden_symbols.json | 54 +- .../hello_world/bundle.golden_symbols.json | 18 +- .../injection/bundle.golden_symbols.json | 18 +- .../core/test/bundling/injection/usage.ts | 8 +- .../bundling/todo/bundle.golden_symbols.json | 132 +- packages/core/test/di/r3_injector_spec.ts | 60 +- .../test/linker/ng_module_integration_spec.ts | 6 +- packages/core/test/render3/basic_perf.ts | 23 +- .../test/render3/change_detection_spec.ts | 299 +++-- .../test/render3/common_integration_spec.ts | 397 +++--- packages/core/test/render3/common_with_def.ts | 18 +- .../core/test/render3/component_ref_spec.ts | 8 +- packages/core/test/render3/component_spec.ts | 213 ++- packages/core/test/render3/content_spec.ts | 1081 ++++++++------- .../core/test/render3/control_flow_spec.ts | 450 +++---- packages/core/test/render3/debug_spec.ts | 10 +- packages/core/test/render3/di_spec.ts | 709 +++++----- packages/core/test/render3/directive_spec.ts | 69 +- .../core/test/render3/discovery_utils_spec.ts | 92 +- packages/core/test/render3/exports_spec.ts | 138 +- .../core/test/render3/host_binding_spec.ts | 292 ++-- packages/core/test/render3/i18n_spec.ts | 695 +++++----- .../inherit_definition_feature_spec.ts | 145 +- .../core/test/render3/instructions_spec.ts | 180 +-- .../core/test/render3/integration_spec.ts | 974 +++++++------- packages/core/test/render3/ivy/jit_spec.ts | 28 +- .../core/test/render3/jit_environment_spec.ts | 12 +- packages/core/test/render3/lifecycle_spec.ts | 1025 ++++++++------- packages/core/test/render3/listeners_spec.ts | 300 ++--- packages/core/test/render3/outputs_spec.ts | 156 +-- packages/core/test/render3/pipe_spec.ts | 167 +-- packages/core/test/render3/properties_spec.ts | 172 +-- packages/core/test/render3/providers_spec.ts | 473 +++---- .../core/test/render3/pure_function_spec.ts | 135 +- packages/core/test/render3/query_spec.ts | 736 +++++------ packages/core/test/render3/render_util.ts | 8 +- .../test/render3/renderer_factory_spec.ts | 78 +- .../styling/class_and_style_bindings_spec.ts | 108 +- .../core/test/render3/styling/players_spec.ts | 33 +- .../core/test/render3/template_ref_spec.ts | 38 +- .../test/render3/view_container_ref_spec.ts | 533 ++++---- .../test/sanitization/sanatization_spec.ts | 80 +- .../test/strict_types/inheritance_spec.ts | 6 +- packages/core/test/test_bed_spec.ts | 2 +- packages/core/test/view/ng_module_spec.ts | 20 +- .../core/testing/src/r3_test_bed_compiler.ts | 41 +- packages/core/testing/src/test_bed.ts | 4 +- .../language-service/test/definitions_spec.ts | 8 +- packages/language-service/test/hover_spec.ts | 8 +- packages/language-service/test/test_data.ts | 4 +- packages/language-service/test/test_utils.ts | 6 +- .../src/compiler_reflector.ts | 2 +- packages/platform-browser/src/browser/meta.ts | 4 +- .../platform-browser/src/browser/title.ts | 4 +- tools/public_api_guard/core/core.d.ts | 374 +++++- 149 files changed, 8266 insertions(+), 7620 deletions(-) create mode 100644 packages/core/src/render3/DELTA_INSTRUCTIONS.md diff --git a/aio/tools/transforms/angular-api-package/index.js b/aio/tools/transforms/angular-api-package/index.js index 79abe162d5..edfd6b115a 100644 --- a/aio/tools/transforms/angular-api-package/index.js +++ b/aio/tools/transforms/angular-api-package/index.js @@ -74,7 +74,7 @@ module.exports = new Package('angular-api', [basePackage, typeScriptPackage]) // API files are typescript readTypeScriptModules.basePath = API_SOURCE_PATH; - readTypeScriptModules.ignoreExportsMatching = [/^[_]|^VERSION$/]; + readTypeScriptModules.ignoreExportsMatching = [/^[_Δ]|^VERSION$/]; readTypeScriptModules.hidePrivateMembers = true; // NOTE: This list should be in sync with tools/public_api_guard/BUILD.bazel @@ -204,7 +204,8 @@ module.exports = new Package('angular-api', [basePackage, typeScriptPackage]) function addMinLengthRules(checkContentRules) { const createMinLengthRule = require('./content-rules/minLength'); - const paramRuleSet = checkContentRules.docTypeRules['parameter'] = checkContentRules.docTypeRules['parameter'] || {}; + const paramRuleSet = checkContentRules.docTypeRules['parameter'] = + checkContentRules.docTypeRules['parameter'] || {}; const paramRules = paramRuleSet['name'] = paramRuleSet['name'] || []; paramRules.push(createMinLengthRule()); } @@ -216,7 +217,8 @@ function addHeadingRules(checkContentRules, API_DOC_TYPES) { API_DOC_TYPES.forEach(docType => { let rules; - const ruleSet = checkContentRules.docTypeRules[docType] = checkContentRules.docTypeRules[docType] || {}; + const ruleSet = checkContentRules.docTypeRules[docType] = + checkContentRules.docTypeRules[docType] || {}; rules = ruleSet['description'] = ruleSet['description'] || []; rules.push(noMarkdownHeadings); @@ -231,16 +233,17 @@ function addHeadingRules(checkContentRules, API_DOC_TYPES) { function addAllowedPropertiesRules(checkContentRules, API_CONTAINED_DOC_TYPES) { API_CONTAINED_DOC_TYPES.forEach(docType => { - const ruleSet = checkContentRules.docTypeRules[docType] = checkContentRules.docTypeRules[docType] || {}; + const ruleSet = checkContentRules.docTypeRules[docType] = + checkContentRules.docTypeRules[docType] || {}; const rules = ruleSet['usageNotes'] = ruleSet['usageNotes'] || []; - rules.push((doc, prop, value) => - value && - // methods are allowed to have usage notes - !isMethod(doc) && - // options on decorators are allowed to ahve usage notes - !(doc.containerDoc && doc.containerDoc.docType === 'decorator') && - `Invalid property: "${prop}" is not allowed on "${doc.docType}" docs.`); + rules.push( + (doc, prop, value) => value && + // methods are allowed to have usage notes + !isMethod(doc) && + // options on decorators are allowed to ahve usage notes + !(doc.containerDoc && doc.containerDoc.docType === 'decorator') && + `Invalid property: "${prop}" is not allowed on "${doc.docType}" docs.`); }); } diff --git a/docs/PUBLIC_API.md b/docs/PUBLIC_API.md index 80c73a7a6f..6fc7b7e68b 100644 --- a/docs/PUBLIC_API.md +++ b/docs/PUBLIC_API.md @@ -37,7 +37,7 @@ We explicitly don't consider the following to be our public API surface: - any file/import paths within our package except for the `/`, `/testing` and `/bundles/*` and other documented package entry-points. - constructors of injectable classes (services and directives) - please use DI to obtain instances of these classes -- any class members or symbols marked as `private`, or prefixed with underscore (`_`) and [barred latin o](https://en.wikipedia.org/wiki/%C6%9F) (`ɵ`) +- any class members or symbols marked as `private`, or prefixed with underscore (`_`), [barred latin o](https://en.wikipedia.org/wiki/%C6%9F) (`ɵ`), and [latin delta](https://en.wikipedia.org/wiki/Delta_(letter)) (`Δ`). - extending any of our classes unless the support for this is specifically documented in the API docs - the contents and API surface of the code generated by Angular's compiler (with one notable exception: the existence and name of `NgModuleFactory` instances exported from generated code is guaranteed) diff --git a/integration/ngcc/test.sh b/integration/ngcc/test.sh index c6d4d33e57..865d9eb175 100755 --- a/integration/ngcc/test.sh +++ b/integration/ngcc/test.sh @@ -40,25 +40,25 @@ if [[ $? != 0 ]]; then exit 1; fi if [[ $? != 0 ]]; then exit 1; fi # Did it compile @angular/core/ApplicationModule correctly? - grep "ApplicationModule.ngModuleDef = defineNgModule" node_modules/@angular/core/fesm2015/core.js + grep "ApplicationModule.ngModuleDef = ΔdefineNgModule" node_modules/@angular/core/fesm2015/core.js if [[ $? != 0 ]]; then exit 1; fi - grep "ApplicationModule.ngModuleDef = defineNgModule" node_modules/@angular/core/fesm5/core.js + grep "ApplicationModule.ngModuleDef = ΔdefineNgModule" node_modules/@angular/core/fesm5/core.js if [[ $? != 0 ]]; then exit 1; fi - grep "ApplicationModule.ngModuleDef = ɵngcc0.defineNgModule" node_modules/@angular/core/esm2015/src/application_module.js + grep "ApplicationModule.ngModuleDef = ɵngcc0.ΔdefineNgModule" node_modules/@angular/core/esm2015/src/application_module.js if [[ $? != 0 ]]; then exit 1; fi - grep "ApplicationModule.ngModuleDef = ɵngcc0.defineNgModule" node_modules/@angular/core/esm5/src/application_module.js + grep "ApplicationModule.ngModuleDef = ɵngcc0.ΔdefineNgModule" node_modules/@angular/core/esm5/src/application_module.js if [[ $? != 0 ]]; then exit 1; fi # Did it transform @angular/core typing files correctly? grep "import [*] as ɵngcc0 from './src/r3_symbols';" node_modules/@angular/core/core.d.ts if [[ $? != 0 ]]; then exit 1; fi - grep "static ngInjectorDef: ɵngcc0.InjectorDef;" node_modules/@angular/core/core.d.ts + grep "static ngInjectorDef: ɵngcc0.ΔInjectorDef;" node_modules/@angular/core/core.d.ts if [[ $? != 0 ]]; then exit 1; fi # Did it generate a base factory call for synthesized constructors correctly? - grep "const ɵMatTable_BaseFactory = ɵngcc0.ɵgetInheritedFactory(MatTable);" node_modules/@angular/material/esm2015/table.js + grep "const ɵMatTable_BaseFactory = ɵngcc0.ΔgetInheritedFactory(MatTable);" node_modules/@angular/material/esm2015/table.js if [[ $? != 0 ]]; then exit 1; fi - grep "const ɵMatTable_BaseFactory = ɵngcc0.ɵgetInheritedFactory(MatTable);" node_modules/@angular/material/esm5/table.es5.js + grep "const ɵMatTable_BaseFactory = ɵngcc0.ΔgetInheritedFactory(MatTable);" node_modules/@angular/material/esm5/table.es5.js if [[ $? != 0 ]]; then exit 1; fi # Can it be safely run again (as a noop)? diff --git a/modules/benchmarks/src/tree/render3_function/index.ts b/modules/benchmarks/src/tree/render3_function/index.ts index a4e4785632..8b07298caa 100644 --- a/modules/benchmarks/src/tree/render3_function/index.ts +++ b/modules/benchmarks/src/tree/render3_function/index.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {ɵRenderFlags, ɵcontainer, ɵcontainerRefreshEnd, ɵcontainerRefreshStart, ɵdefineComponent, ɵelementEnd, ɵelementStart, ɵelementStyleProp, ɵelementStyling, ɵembeddedViewEnd, ɵembeddedViewStart, ɵinterpolation1, ɵrenderComponent as renderComponent, ɵtext, ɵtextBinding} from '@angular/core'; +import {ɵRenderFlags, ɵrenderComponent as renderComponent, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, ΔdefineComponent, ΔelementEnd, ΔelementStart, ΔelementStyleProp, ΔelementStyling, ΔembeddedViewEnd, ΔembeddedViewStart, Δinterpolation1, Δtext, ΔtextBinding} from '@angular/core'; import {bindAction, profile} from '../../util'; import {createDom, destroyDom, detectChanges} from '../render3/tree'; @@ -18,7 +18,7 @@ export class TreeFunction { data: TreeNode = emptyTree; /** @nocollapse */ - static ngComponentDef = ɵdefineComponent({ + static ngComponentDef = ΔdefineComponent({ type: TreeFunction, selectors: [['tree']], consts: 5, @@ -35,38 +35,38 @@ export class TreeFunction { const c1 = ['background-color']; export function TreeTpl(rf: ɵRenderFlags, ctx: TreeNode) { if (rf & ɵRenderFlags.Create) { - ɵelementStart(0, 'tree'); + ΔelementStart(0, 'tree'); { - ɵelementStart(1, 'span'); - ɵelementStyling(null, c1); - { ɵtext(2); } - ɵelementEnd(); - ɵcontainer(3); - ɵcontainer(4); + ΔelementStart(1, 'span'); + ΔelementStyling(null, c1); + { Δtext(2); } + ΔelementEnd(); + Δcontainer(3); + Δcontainer(4); } - ɵelementEnd(); + ΔelementEnd(); } if (rf & ɵRenderFlags.Update) { - ɵelementStyleProp(1, 0, ctx.depth % 2 ? '' : 'grey'); - ɵtextBinding(2, ɵinterpolation1(' ', ctx.value, ' ')); - ɵcontainerRefreshStart(3); + ΔelementStyleProp(1, 0, ctx.depth % 2 ? '' : 'grey'); + ΔtextBinding(2, Δinterpolation1(' ', ctx.value, ' ')); + ΔcontainerRefreshStart(3); { if (ctx.left != null) { - let rf0 = ɵembeddedViewStart(0, 5, 1); + let rf0 = ΔembeddedViewStart(0, 5, 1); { TreeTpl(rf0, ctx.left); } - ɵembeddedViewEnd(); + ΔembeddedViewEnd(); } } - ɵcontainerRefreshEnd(); - ɵcontainerRefreshStart(4); + ΔcontainerRefreshEnd(); + ΔcontainerRefreshStart(4); { if (ctx.right != null) { - let rf0 = ɵembeddedViewStart(0, 5, 1); + let rf0 = ΔembeddedViewStart(0, 5, 1); { TreeTpl(rf0, ctx.right); } - ɵembeddedViewEnd(); + ΔembeddedViewEnd(); } } - ɵcontainerRefreshEnd(); + ΔcontainerRefreshEnd(); } } diff --git a/packages/common/src/directives/ng_class.ts b/packages/common/src/directives/ng_class.ts index 49fc4d76f3..8aa2ec5c61 100644 --- a/packages/common/src/directives/ng_class.ts +++ b/packages/common/src/directives/ng_class.ts @@ -5,7 +5,7 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ -import {Directive, DoCheck, Input, ɵRenderFlags, ɵdefineDirective, ɵelementHostStyling, ɵelementHostStylingApply, ɵelementHostStylingMap} from '@angular/core'; +import {Directive, DoCheck, Input, ɵRenderFlags, ΔdefineDirective, ΔelementHostStyling, ΔelementHostStylingApply, ΔelementHostStylingMap} from '@angular/core'; import {NgClassImpl, NgClassImplProvider} from './ng_class_impl'; @@ -29,17 +29,17 @@ export const ngClassDirectiveDef__PRE_R3__ = undefined; // used when the VE is not present (note the directive will // never be instantiated normally because it is apart of a // base class) -export const ngClassDirectiveDef__POST_R3__ = ɵdefineDirective({ +export const ngClassDirectiveDef__POST_R3__ = ΔdefineDirective({ type: function() {} as any, selectors: null as any, factory: () => {}, hostBindings: function(rf: ɵRenderFlags, ctx: any, elIndex: number) { if (rf & ɵRenderFlags.Create) { - ɵelementHostStyling(); + ΔelementHostStyling(); } if (rf & ɵRenderFlags.Update) { - ɵelementHostStylingMap(ctx.getValue()); - ɵelementHostStylingApply(); + ΔelementHostStylingMap(ctx.getValue()); + ΔelementHostStylingApply(); } } }); diff --git a/packages/common/src/directives/ng_style.ts b/packages/common/src/directives/ng_style.ts index ad34d52c5f..afbbc9d0e2 100644 --- a/packages/common/src/directives/ng_style.ts +++ b/packages/common/src/directives/ng_style.ts @@ -5,7 +5,7 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ -import {Directive, DoCheck, Input, ɵRenderFlags, ɵdefineDirective, ɵelementHostStyling, ɵelementHostStylingApply, ɵelementHostStylingMap} from '@angular/core'; +import {Directive, DoCheck, Input, ɵRenderFlags, ΔdefineDirective, ΔelementHostStyling, ΔelementHostStylingApply, ΔelementHostStylingMap} from '@angular/core'; import {NgStyleImpl, NgStyleImplProvider} from './ng_style_impl'; @@ -29,17 +29,17 @@ export const ngStyleDirectiveDef__PRE_R3__ = undefined; // used when the VE is not present (note the directive will // never be instantiated normally because it is apart of a // base class) -export const ngStyleDirectiveDef__POST_R3__ = ɵdefineDirective({ +export const ngStyleDirectiveDef__POST_R3__ = ΔdefineDirective({ type: function() {} as any, selectors: null as any, factory: () => {}, hostBindings: function(rf: ɵRenderFlags, ctx: any, elIndex: number) { if (rf & ɵRenderFlags.Create) { - ɵelementHostStyling(); + ΔelementHostStyling(); } if (rf & ɵRenderFlags.Update) { - ɵelementHostStylingMap(null, ctx.getValue()); - ɵelementHostStylingApply(); + ΔelementHostStylingMap(null, ctx.getValue()); + ΔelementHostStylingApply(); } } }); diff --git a/packages/common/src/viewport_scroller.ts b/packages/common/src/viewport_scroller.ts index d1b7d400fd..2ee49bee34 100644 --- a/packages/common/src/viewport_scroller.ts +++ b/packages/common/src/viewport_scroller.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {ErrorHandler, defineInjectable, inject} from '@angular/core'; +import {ErrorHandler, ΔdefineInjectable, Δinject} from '@angular/core'; import {DOCUMENT} from './dom_tokens'; @@ -21,9 +21,9 @@ export abstract class ViewportScroller { // De-sugared tree-shakable injection // See #23917 /** @nocollapse */ - static ngInjectableDef = defineInjectable({ + static ngInjectableDef = ΔdefineInjectable({ providedIn: 'root', - factory: () => new BrowserViewportScroller(inject(DOCUMENT), window, inject(ErrorHandler)) + factory: () => new BrowserViewportScroller(Δinject(DOCUMENT), window, Δinject(ErrorHandler)) }); /** diff --git a/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts b/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts index 86b54eb10c..e54c38cd1a 100644 --- a/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts +++ b/packages/compiler-cli/ngcc/test/rendering/renderer_spec.ts @@ -152,11 +152,11 @@ describe('Renderer', () => { const addDefinitionsSpy = renderer.addDefinitions as jasmine.Spy; expect(addDefinitionsSpy.calls.first().args[2]) .toEqual( - `A.ngComponentDef = ɵngcc0.ɵdefineComponent({ type: A, selectors: [["a"]], factory: function A_Factory(t) { return new (t || A)(); }, consts: 1, vars: 1, template: function A_Template(rf, ctx) { if (rf & 1) { - ɵngcc0.ɵtext(0); + `A.ngComponentDef = ɵngcc0.ΔdefineComponent({ type: A, selectors: [["a"]], factory: function A_Factory(t) { return new (t || A)(); }, consts: 1, vars: 1, template: function A_Template(rf, ctx) { if (rf & 1) { + ɵngcc0.Δtext(0); } if (rf & 2) { - ɵngcc0.ɵselect(0); - ɵngcc0.ɵtextBinding(0, ɵngcc0.ɵinterpolation1("", ctx.person.name, "")); + ɵngcc0.Δselect(0); + ɵngcc0.ΔtextBinding(0, ɵngcc0.Δinterpolation1("", ctx.person.name, "")); } }, encapsulation: 2 }); /*@__PURE__*/ ɵngcc0.ɵsetClassMetadata(A, [{ type: Component, @@ -197,7 +197,7 @@ describe('Renderer', () => { })); expect(addDefinitionsSpy.calls.first().args[2]) .toEqual( - `A.ngDirectiveDef = ɵngcc0.ɵdefineDirective({ type: A, selectors: [["", "a", ""]], factory: function A_Factory(t) { return new (t || A)(); } }); + `A.ngDirectiveDef = ɵngcc0.ΔdefineDirective({ type: A, selectors: [["", "a", ""]], factory: function A_Factory(t) { return new (t || A)(); } }); /*@__PURE__*/ ɵngcc0.ɵsetClassMetadata(A, [{ type: Directive, args: [{ selector: '[a]' }] @@ -331,7 +331,7 @@ describe('Renderer', () => { const typingsFile = result.find(f => f.path === '/typings/file.d.ts') !; expect(typingsFile.contents) .toContain( - 'foo(x: number): number;\n static ngDirectiveDef: ɵngcc0.ɵDirectiveDefWithMeta'); + 'foo(x: number): number;\n static ngDirectiveDef: ɵngcc0.ΔDirectiveDefWithMeta'); }); it('should render imports into typings files', () => { diff --git a/packages/compiler-cli/src/metadata/bundler.ts b/packages/compiler-cli/src/metadata/bundler.ts index 857a8b8e92..cae740edb6 100644 --- a/packages/compiler-cli/src/metadata/bundler.ts +++ b/packages/compiler-cli/src/metadata/bundler.ts @@ -423,7 +423,7 @@ export class MetadataBundler { result[key] = this.convertFunction(moduleName, value); } else if (isMetadataSymbolicCallExpression(value)) { // Class members can also contain static members that call a function with module - // references. e.g. "static ngInjectableDef = defineInjectable(..)". We also need to + // references. e.g. "static ngInjectableDef = ΔdefineInjectable(..)". We also need to // convert these module references because otherwise these resolve to non-existent files. result[key] = this.convertValue(moduleName, value); } else { diff --git a/packages/compiler-cli/src/ngtsc/imports/src/core.ts b/packages/compiler-cli/src/ngtsc/imports/src/core.ts index 80b24430a7..da60c29482 100644 --- a/packages/compiler-cli/src/ngtsc/imports/src/core.ts +++ b/packages/compiler-cli/src/ngtsc/imports/src/core.ts @@ -48,15 +48,15 @@ export class NoopImportRewriter implements ImportRewriter { * which they're exported from r3_symbols. */ const CORE_SUPPORTED_SYMBOLS = new Map([ - ['defineInjectable', 'defineInjectable'], - ['defineInjector', 'defineInjector'], - ['ɵdefineNgModule', 'defineNgModule'], - ['ɵsetNgModuleScope', 'setNgModuleScope'], - ['inject', 'inject'], + ['ΔdefineInjectable', 'ΔdefineInjectable'], + ['ΔdefineInjector', 'ΔdefineInjector'], + ['ΔdefineNgModule', 'ΔdefineNgModule'], + ['ΔsetNgModuleScope', 'ΔsetNgModuleScope'], + ['Δinject', 'Δinject'], ['ɵsetClassMetadata', 'setClassMetadata'], - ['ɵInjectableDef', 'InjectableDef'], - ['ɵInjectorDef', 'InjectorDef'], - ['ɵNgModuleDefWithMeta', 'NgModuleDefWithMeta'], + ['ΔInjectableDef', 'ΔInjectableDef'], + ['ΔInjectorDef', 'ΔInjectorDef'], + ['ΔNgModuleDefWithMeta', 'ΔNgModuleDefWithMeta'], ['ɵNgModuleFactory', 'NgModuleFactory'], ]); diff --git a/packages/compiler-cli/test/compliance/mock_compiler_spec.ts b/packages/compiler-cli/test/compliance/mock_compiler_spec.ts index 7ea02519f8..2d6d2cdcbb 100644 --- a/packages/compiler-cli/test/compliance/mock_compiler_spec.ts +++ b/packages/compiler-cli/test/compliance/mock_compiler_spec.ts @@ -140,7 +140,7 @@ describe('mock_compiler', () => { expectEmit( result.source, ` // TODO: this comment should not be taken into account - $r3$.ɵtext(0, "Hello!"); + $r3$.Δtext(0, "Hello!"); // TODO: this comment should not be taken into account `, 'todo comments should be ignored'); @@ -214,4 +214,4 @@ describe('mock_compiler', () => { result.source, '$ctx$.$n$ … $ctx$.$n$.length', 'Match names', {'$n$': /(not)_(\1)/}); }).toThrowError(/"\$n\$" is "name" which doesn't match \/\(not\)_\(\\1\)\//); }); -}); \ No newline at end of file +}); diff --git a/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts b/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts index af10f15a12..daa73949aa 100644 --- a/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts @@ -53,16 +53,16 @@ describe('compiler compliance', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $c1$); - $r3$.ɵnamespaceSVG(); - $r3$.ɵelementStart(1, "svg"); - $r3$.ɵelement(2, "circle", $c2$); - $r3$.ɵelementEnd(); - $r3$.ɵnamespaceHTML(); - $r3$.ɵelementStart(3, "p"); - $r3$.ɵtext(4, "test"); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $c1$); + $r3$.ΔnamespaceSVG(); + $r3$.ΔelementStart(1, "svg"); + $r3$.Δelement(2, "circle", $c2$); + $r3$.ΔelementEnd(); + $r3$.ΔnamespaceHTML(); + $r3$.ΔelementStart(3, "p"); + $r3$.Δtext(4, "test"); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); } } `; @@ -102,16 +102,16 @@ describe('compiler compliance', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $c1$); - $r3$.ɵnamespaceMathML(); - $r3$.ɵelementStart(1, "math"); - $r3$.ɵelement(2, "infinity"); - $r3$.ɵelementEnd(); - $r3$.ɵnamespaceHTML(); - $r3$.ɵelementStart(3, "p"); - $r3$.ɵtext(4, "test"); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $c1$); + $r3$.ΔnamespaceMathML(); + $r3$.ΔelementStart(1, "math"); + $r3$.Δelement(2, "infinity"); + $r3$.ΔelementEnd(); + $r3$.ΔnamespaceHTML(); + $r3$.ΔelementStart(3, "p"); + $r3$.Δtext(4, "test"); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); } } `; @@ -150,13 +150,13 @@ describe('compiler compliance', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $c1$); - $r3$.ɵtext(1, "Hello "); - $r3$.ɵelementStart(2, "b"); - $r3$.ɵtext(3, "World"); - $r3$.ɵelementEnd(); - $r3$.ɵtext(4, "!"); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $c1$); + $r3$.Δtext(1, "Hello "); + $r3$.ΔelementStart(2, "b"); + $r3$.Δtext(3, "World"); + $r3$.ΔelementEnd(); + $r3$.Δtext(4, "!"); + $r3$.ΔelementEnd(); } } `; @@ -198,13 +198,13 @@ describe('compiler compliance', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $e0_attrs$); - $r3$.ɵtext(1, "Hello "); - $r3$.ɵelementStart(2, "b"); - $r3$.ɵtext(3, "World"); - $r3$.ɵelementEnd(); - $r3$.ɵtext(4, "!"); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $e0_attrs$); + $r3$.Δtext(1, "Hello "); + $r3$.ΔelementStart(2, "b"); + $r3$.Δtext(3, "World"); + $r3$.ΔelementEnd(); + $r3$.Δtext(4, "!"); + $r3$.ΔelementEnd(); } } `; @@ -239,12 +239,12 @@ describe('compiler compliance', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - i0.ɵelementContainerStart(0); - i0.ɵelementStart(1, "span"); - i0.ɵtext(2, "in a "); - i0.ɵelementEnd(); - i0.ɵtext(3, "container"); - i0.ɵelementContainerEnd(); + i0.ΔelementContainerStart(0); + i0.ΔelementStart(1, "span"); + i0.Δtext(2, "in a "); + i0.ΔelementEnd(); + i0.Δtext(3, "container"); + i0.ΔelementContainerEnd(); } } `; @@ -276,8 +276,8 @@ describe('compiler compliance', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - i0.ɵelementContainerStart(0); - i0.ɵelementContainerEnd(); + i0.ΔelementContainerStart(0); + i0.ΔelementContainerEnd(); } } `; @@ -313,11 +313,11 @@ describe('compiler compliance', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div", $e0_attrs$); + $r3$.Δelement(0, "div", $e0_attrs$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "id", $r3$.ɵbind(ctx.id)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "id", $r3$.Δbind(ctx.id)); } } `; @@ -360,15 +360,15 @@ describe('compiler compliance', () => { const template = ` template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div", $e0_attrs$); - $r3$.ɵpipe(1,"pipe"); + $r3$.Δelement(0, "div", $e0_attrs$); + $r3$.Δpipe(1,"pipe"); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "ternary", $r3$.ɵbind((ctx.cond ? $r3$.ɵpureFunction1(8, $c0$, ctx.a): $c1$))); - $r3$.ɵelementProperty(0, "pipe", $r3$.ɵbind($r3$.ɵpipeBind3(1, 4, ctx.value, 1, 2))); - $r3$.ɵelementProperty(0, "and", $r3$.ɵbind((ctx.cond && $r3$.ɵpureFunction1(10, $c0$, ctx.b)))); - $r3$.ɵelementProperty(0, "or", $r3$.ɵbind((ctx.cond || $r3$.ɵpureFunction1(12, $c0$, ctx.c)))); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "ternary", $r3$.Δbind((ctx.cond ? $r3$.ΔpureFunction1(8, $c0$, ctx.a): $c1$))); + $r3$.ΔelementProperty(0, "pipe", $r3$.Δbind($r3$.ΔpipeBind3(1, 4, ctx.value, 1, 2))); + $r3$.ΔelementProperty(0, "and", $r3$.Δbind((ctx.cond && $r3$.ΔpureFunction1(10, $c0$, ctx.b)))); + $r3$.ΔelementProperty(0, "or", $r3$.Δbind((ctx.cond || $r3$.ΔpureFunction1(12, $c0$, ctx.c)))); } } `; @@ -433,20 +433,20 @@ describe('compiler compliance', () => { … hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵallocHostVars(14); + $r3$.ΔallocHostVars(14); } if (rf & 2) { - $r3$.ɵcomponentHostSyntheticProperty(elIndex, "@expansionHeight", - $r3$.ɵbind( - $r3$.ɵpureFunction2(5, $_c1$, ctx.getExpandedState(), - $r3$.ɵpureFunction2(2, $_c0$, ctx.collapsedHeight, ctx.expandedHeight) + $r3$.ΔcomponentHostSyntheticProperty(elIndex, "@expansionHeight", + $r3$.Δbind( + $r3$.ΔpureFunction2(5, $_c1$, ctx.getExpandedState(), + $r3$.ΔpureFunction2(2, $_c0$, ctx.collapsedHeight, ctx.expandedHeight) ) ), null, true ); - $r3$.ɵcomponentHostSyntheticProperty(elIndex, "@expansionWidth", - $r3$.ɵbind( - $r3$.ɵpureFunction2(11, $_c1$, ctx.getExpandedState(), - $r3$.ɵpureFunction2(8, $_c2$, ctx.collapsedWidth, ctx.expandedWidth) + $r3$.ΔcomponentHostSyntheticProperty(elIndex, "@expansionWidth", + $r3$.Δbind( + $r3$.ΔpureFunction2(11, $_c1$, ctx.getExpandedState(), + $r3$.ΔpureFunction2(8, $_c2$, ctx.collapsedWidth, ctx.expandedWidth) ) ), null, true ); @@ -485,7 +485,7 @@ describe('compiler compliance', () => { const $e0_classBindings$ = ["error"]; const $e0_styleBindings$ = ["background-color"]; … - MyComponent.ngComponentDef = i0.ɵdefineComponent({type:MyComponent,selectors:[["my-component"]], + MyComponent.ngComponentDef = i0.ΔdefineComponent({type:MyComponent,selectors:[["my-component"]], factory: function MyComponent_Factory(t){ return new (t || MyComponent)(); }, @@ -493,14 +493,14 @@ describe('compiler compliance', () => { vars: 0, template: function MyComponent_Template(rf,ctx){ if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling($e0_classBindings$, $e0_styleBindings$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling($e0_classBindings$, $e0_styleBindings$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStyleProp(0, 0, ctx.color); - $r3$.ɵelementClassProp(0, 0, ctx.error); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStyleProp(0, 0, ctx.color); + $r3$.ΔelementClassProp(0, 0, ctx.error); + $r3$.ΔelementStylingApply(0); } }, encapsulation: 2 @@ -540,7 +540,7 @@ describe('compiler compliance', () => { // ChildComponent definition should be: const ChildComponentDefinition = ` - ChildComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ChildComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: ChildComponent, selectors: [["child"]], factory: function ChildComponent_Factory(t) { return new (t || ChildComponent)(); }, @@ -548,7 +548,7 @@ describe('compiler compliance', () => { vars: 0, template: function ChildComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtext(0, "child-view"); + $r3$.Δtext(0, "child-view"); } }, encapsulation: 2 @@ -556,7 +556,7 @@ describe('compiler compliance', () => { // SomeDirective definition should be: const SomeDirectiveDefinition = ` - SomeDirective.ngDirectiveDef = $r3$.ɵdefineDirective({ + SomeDirective.ngDirectiveDef = $r3$.ΔdefineDirective({ type: SomeDirective, selectors: [["", "some-directive", ""]], factory: function SomeDirective_Factory(t) {return new (t || SomeDirective)(); } @@ -567,7 +567,7 @@ describe('compiler compliance', () => { const MyComponentDefinition = ` const $c1$ = ["some-directive", ""]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -575,8 +575,8 @@ describe('compiler compliance', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "child", $c1$); - $r3$.ɵtext(1, "!"); + $r3$.Δelement(0, "child", $c1$); + $r3$.Δtext(1, "!"); } }, directives: [ChildComponent, SomeDirective], @@ -613,7 +613,7 @@ describe('compiler compliance', () => { // SomeDirective definition should be: const SomeDirectiveDefinition = ` - SomeDirective.ngDirectiveDef = $r3$.ɵdefineDirective({ + SomeDirective.ngDirectiveDef = $r3$.ΔdefineDirective({ type: SomeDirective, selectors: [["div", "some-directive", "", 8, "foo", 3, "title", "", 9, "baz"]], factory: function SomeDirective_Factory(t) {return new (t || SomeDirective)(); } @@ -622,7 +622,7 @@ describe('compiler compliance', () => { // OtherDirective definition should be: const OtherDirectiveDefinition = ` - OtherDirective.ngDirectiveDef = $r3$.ɵdefineDirective({ + OtherDirective.ngDirectiveDef = $r3$.ΔdefineDirective({ type: OtherDirective, selectors: [["", 5, "span", "title", "", 9, "baz"]], factory: function OtherDirective_Factory(t) {return new (t || OtherDirective)(); } @@ -654,7 +654,7 @@ describe('compiler compliance', () => { // EmptyOutletComponent definition should be: const EmptyOutletComponentDefinition = ` … - EmptyOutletComponent.ngComponentDef = $r3$.ɵdefineComponent({ + EmptyOutletComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: EmptyOutletComponent, selectors: [["ng-component"]], factory: function EmptyOutletComponent_Factory(t) { return new (t || EmptyOutletComponent)(); }, @@ -662,7 +662,7 @@ describe('compiler compliance', () => { vars: 0, template: function EmptyOutletComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "router-outlet"); + $r3$.Δelement(0, "router-outlet"); } }, encapsulation: 2 @@ -737,13 +737,13 @@ describe('compiler compliance', () => { const MyComponentDefinition = ` … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)( - $r3$.ɵdirectiveInject($i$.ElementRef), $r3$.ɵdirectiveInject($i$.ViewContainerRef), - $r3$.ɵdirectiveInject($i$.ChangeDetectorRef)); + $r3$.ΔdirectiveInject($i$.ElementRef), $r3$.ΔdirectiveInject($i$.ViewContainerRef), + $r3$.ΔdirectiveInject($i$.ChangeDetectorRef)); }, consts: 0, vars: 0, @@ -783,29 +783,29 @@ describe('compiler compliance', () => { }; const IfDirectiveDefinition = ` - IfDirective.ngDirectiveDef = $r3$.ɵdefineDirective({ + IfDirective.ngDirectiveDef = $r3$.ΔdefineDirective({ type: IfDirective, selectors: [["", "if", ""]], - factory: function IfDirective_Factory(t) { return new (t || IfDirective)($r3$.ɵdirectiveInject($i$.TemplateRef)); } + factory: function IfDirective_Factory(t) { return new (t || IfDirective)($r3$.ΔdirectiveInject($i$.TemplateRef)); } });`; const MyComponentDefinition = ` const $c1$ = ["foo", ""]; const $c2$ = [${AttributeMarker.Template}, "if"]; function MyComponent_li_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "li"); - $r3$.ɵtext(1); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "li"); + $r3$.Δtext(1); + $r3$.ΔelementEnd(); } if (rf & 2) { - const $myComp$ = $r3$.ɵnextContext(); - const $foo$ = $r3$.ɵreference(1); - $r3$.ɵselect(1); - $r3$.ɵtextBinding(1, $r3$.ɵinterpolation2("", $myComp$.salutation, " ", $foo$, "")); + const $myComp$ = $r3$.ΔnextContext(); + const $foo$ = $r3$.Δreference(1); + $r3$.Δselect(1); + $r3$.ΔtextBinding(1, $r3$.Δinterpolation2("", $myComp$.salutation, " ", $foo$, "")); } } … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -813,9 +813,9 @@ describe('compiler compliance', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "ul", null, $c1$); - $r3$.ɵtemplate(2, MyComponent_li_2_Template, 2, 2, "li", $c2$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "ul", null, $c1$); + $r3$.Δtemplate(2, MyComponent_li_2_Template, 2, 2, "li", $c2$); + $r3$.ΔelementEnd(); } }, directives:[IfDirective], @@ -868,7 +868,7 @@ describe('compiler compliance', () => { const $e0_attrs$ = [${AttributeMarker.Bindings}, "names"]; const $e0_ff$ = function ($v$) { return ["Nancy", $v$]; }; … - MyApp.ngComponentDef = $r3$.ɵdefineComponent({ + MyApp.ngComponentDef = $r3$.ΔdefineComponent({ type: MyApp, selectors: [["my-app"]], factory: function MyApp_Factory(t) { return new (t || MyApp)(); }, @@ -876,11 +876,11 @@ describe('compiler compliance', () => { vars: 3, template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "my-comp", $e0_attrs$); + $r3$.Δelement(0, "my-comp", $e0_attrs$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "names", $r3$.ɵbind($r3$.ɵpureFunction1(1, $e0_ff$, ctx.customName))); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "names", $r3$.Δbind($r3$.ΔpureFunction1(1, $e0_ff$, ctx.customName))); } }, directives: [MyComp], @@ -951,7 +951,7 @@ describe('compiler compliance', () => { return ["start-", $v0$, $v1$, $v2$, $v3$, $v4$, "-middle-", $v5$, $v6$, $v7$, $v8$, "-end"]; } … - MyApp.ngComponentDef = $r3$.ɵdefineComponent({ + MyApp.ngComponentDef = $r3$.ΔdefineComponent({ type: MyApp, selectors: [["my-app"]], factory: function MyApp_Factory(t) { return new (t || MyApp)(); }, @@ -959,13 +959,13 @@ describe('compiler compliance', () => { vars: 11, template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "my-comp", $e0_attr$); + $r3$.Δelement(0, "my-comp", $e0_attr$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty( + $r3$.Δselect(0); + $r3$.ΔelementProperty( 0, "names", - $r3$.ɵbind($r3$.ɵpureFunctionV(1, $e0_ff$, [ctx.n0, ctx.n1, ctx.n2, ctx.n3, ctx.n4, ctx.n5, ctx.n6, ctx.n7, ctx.n8]))); + $r3$.Δbind($r3$.ΔpureFunctionV(1, $e0_ff$, [ctx.n0, ctx.n1, ctx.n2, ctx.n3, ctx.n4, ctx.n5, ctx.n6, ctx.n7, ctx.n8]))); } }, directives: [MyComp], @@ -1016,7 +1016,7 @@ describe('compiler compliance', () => { const $e0_attrs$ = [${AttributeMarker.Bindings}, "config"]; const $e0_ff$ = function ($v$) { return {"duration": 500, animation: $v$}; }; … - MyApp.ngComponentDef = $r3$.ɵdefineComponent({ + MyApp.ngComponentDef = $r3$.ΔdefineComponent({ type: MyApp, selectors: [["my-app"]], factory: function MyApp_Factory(t) { return new (t || MyApp)(); }, @@ -1024,11 +1024,11 @@ describe('compiler compliance', () => { vars: 3, template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "object-comp", $e0_attrs$); + $r3$.Δelement(0, "object-comp", $e0_attrs$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "config", $r3$.ɵbind($r3$.ɵpureFunction1(1, $e0_ff$, ctx.name))); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "config", $r3$.Δbind($r3$.ΔpureFunction1(1, $e0_ff$, ctx.name))); } }, directives: [ObjectComp], @@ -1085,7 +1085,7 @@ describe('compiler compliance', () => { const $e0_ff_1$ = function ($v$) { return [$c0$, $v$]; }; const $e0_ff_2$ = function ($v1$, $v2$) { return {animation: $v1$, actions: $v2$}; }; … - MyApp.ngComponentDef = $r3$.ɵdefineComponent({ + MyApp.ngComponentDef = $r3$.ΔdefineComponent({ type: MyApp, selectors: [["my-app"]], factory: function MyApp_Factory(t) { return new (t || MyApp)(); }, @@ -1093,13 +1093,13 @@ describe('compiler compliance', () => { vars: 8, template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "nested-comp", $e0_attrs$); + $r3$.Δelement(0, "nested-comp", $e0_attrs$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty( + $r3$.Δselect(0); + $r3$.ΔelementProperty( 0, "config", - $r3$.ɵbind($r3$.ɵpureFunction2(5, $e0_ff_2$, ctx.name, $r3$.ɵpureFunction1(3, $e0_ff_1$, $r3$.ɵpureFunction1(1, $e0_ff$, ctx.duration))))); + $r3$.Δbind($r3$.ΔpureFunction2(5, $e0_ff_2$, ctx.name, $r3$.ΔpureFunction1(3, $e0_ff_1$, $r3$.ΔpureFunction1(1, $e0_ff$, ctx.duration))))); } }, directives: [NestedComp], @@ -1147,7 +1147,7 @@ describe('compiler compliance', () => { }; const SimpleComponentDefinition = ` - SimpleComponent.ngComponentDef = $r3$.ɵdefineComponent({ + SimpleComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: SimpleComponent, selectors: [["simple"]], factory: function SimpleComponent_Factory(t) { return new (t || SimpleComponent)(); }, @@ -1156,10 +1156,10 @@ describe('compiler compliance', () => { vars: 0, template: function SimpleComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojectionDef(); - $r3$.ɵelementStart(0, "div"); - $r3$.ɵprojection(1); - $r3$.ɵelementEnd(); + $r3$.ΔprojectionDef(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δprojection(1); + $r3$.ΔelementEnd(); } }, encapsulation: 2 @@ -1171,7 +1171,7 @@ describe('compiler compliance', () => { const $c1$ = [[["span", "title", "tofirst"]], [["span", "title", "tosecond"]]]; const $c2$ = ["span[title=toFirst]", "span[title=toSecond]"]; … - ComplexComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ComplexComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: ComplexComponent, selectors: [["complex"]], factory: function ComplexComponent_Factory(t) { return new (t || ComplexComponent)(); }, @@ -1180,13 +1180,13 @@ describe('compiler compliance', () => { vars: 0, template: function ComplexComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojectionDef($c1$, $c2$); - $r3$.ɵelementStart(0, "div", $c3$); - $r3$.ɵprojection(1, 1); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(2, "div", $c4$); - $r3$.ɵprojection(3, 2); - $r3$.ɵelementEnd(); + $r3$.ΔprojectionDef($c1$, $c2$); + $r3$.ΔelementStart(0, "div", $c3$); + $r3$.Δprojection(1, 1); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(2, "div", $c4$); + $r3$.Δprojection(3, 2); + $r3$.ΔelementEnd(); } }, encapsulation: 2 @@ -1233,22 +1233,22 @@ describe('compiler compliance', () => { const $_c1$ = ["id", "third", ${AttributeMarker.Template}, "ngIf"]; const $_c2$ = ["id", "second"]; function Cmp_div_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c2$); - $r3$.ɵprojection(1, 1); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c2$); + $r3$.Δprojection(1, 1); + $r3$.ΔelementEnd(); } } const $_c3$ = ["id", "third"]; function Cmp_div_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c3$); - $r3$.ɵtext(1, " No ng-content, no instructions generated. "); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c3$); + $r3$.Δtext(1, " No ng-content, no instructions generated. "); + $r3$.ΔelementEnd(); } } function Cmp_ng_template_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtext(0, " '*' selector: "); - $r3$.ɵprojection(1); + $r3$.Δtext(0, " '*' selector: "); + $r3$.Δprojection(1); } } const $_c4$ = [[["span", "title", "tofirst"]]]; @@ -1256,16 +1256,16 @@ describe('compiler compliance', () => { … template: function Cmp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojectionDef($_c4$, $_c5$); - $r3$.ɵtemplate(0, Cmp_div_0_Template, 2, 0, "div", $_c0$); - $r3$.ɵtemplate(1, Cmp_div_1_Template, 2, 0, "div", $_c1$); - $r3$.ɵtemplate(2, Cmp_ng_template_2_Template, 2, 0, "ng-template"); + $r3$.ΔprojectionDef($_c4$, $_c5$); + $r3$.Δtemplate(0, Cmp_div_0_Template, 2, 0, "div", $_c0$); + $r3$.Δtemplate(1, Cmp_div_1_Template, 2, 0, "div", $_c1$); + $r3$.Δtemplate(2, Cmp_ng_template_2_Template, 2, 0, "ng-template"); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "ngIf", $r3$.ɵbind(ctx.visible)); - $r3$.ɵselect(1); - $r3$.ɵelementProperty(1, "ngIf", $r3$.ɵbind(ctx.visible)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "ngIf", $r3$.Δbind(ctx.visible)); + $r3$.Δselect(1); + $r3$.ΔelementProperty(1, "ngIf", $r3$.Δbind(ctx.visible)); } } `; @@ -1306,19 +1306,19 @@ describe('compiler compliance', () => { const output = ` function Cmp_ng_template_1_ng_template_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojection(0, 4); + $r3$.Δprojection(0, 4); } } function Cmp_ng_template_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojection(0, 3); - $r3$.ɵtemplate(1, Cmp_ng_template_1_ng_template_1_Template, 1, 0, "ng-template"); + $r3$.Δprojection(0, 3); + $r3$.Δtemplate(1, Cmp_ng_template_1_ng_template_1_Template, 1, 0, "ng-template"); } } function Cmp_ng_template_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtext(0, " '*' selector in a template: "); - $r3$.ɵprojection(1); + $r3$.Δtext(0, " '*' selector in a template: "); + $r3$.Δprojection(1); } } const $_c0$ = [[["", "id", "tomainbefore"]], [["", "id", "tomainafter"]], [["", "id", "totemplate"]], [["", "id", "tonestedtemplate"]]]; @@ -1326,11 +1326,11 @@ describe('compiler compliance', () => { … template: function Cmp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojectionDef($_c2$, $_c3$); - $r3$.ɵprojection(0, 1); - $r3$.ɵtemplate(1, Cmp_ng_template_1_Template, 2, 0, "ng-template"); - $r3$.ɵtemplate(2, Cmp_ng_template_2_Template, 2, 0, "ng-template"); - $r3$.ɵprojection(3, 2); + $r3$.ΔprojectionDef($_c2$, $_c3$); + $r3$.Δprojection(0, 1); + $r3$.Δtemplate(1, Cmp_ng_template_1_Template, 2, 0, "ng-template"); + $r3$.Δtemplate(2, Cmp_ng_template_2_Template, 2, 0, "ng-template"); + $r3$.Δprojection(3, 2); } } `; @@ -1380,26 +1380,26 @@ describe('compiler compliance', () => { const ViewQueryComponentDefinition = ` const $e0_attrs$ = ["someDir",""]; … - ViewQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ViewQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: ViewQueryComponent, selectors: [["view-query-component"]], factory: function ViewQueryComponent_Factory(t) { return new (t || ViewQueryComponent)(); }, viewQuery: function ViewQueryComponent_Query(rf, ctx) { if (rf & 1) { - $r3$.ɵviewQuery(SomeDirective, true, null); - $r3$.ɵviewQuery(SomeDirective, true, null); + $r3$.ΔviewQuery(SomeDirective, true, null); + $r3$.ΔviewQuery(SomeDirective, true, null); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.someDir = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.someDirs = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.someDir = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.someDirs = $tmp$)); } }, consts: 1, vars: 0, template: function ViewQueryComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div", $e0_attrs$); + $r3$.Δelement(0, "div", $e0_attrs$); } }, directives: function () { return [SomeDirective]; }, @@ -1440,17 +1440,17 @@ describe('compiler compliance', () => { const $e0_attrs$ = ["myRef"]; const $e1_attrs$ = ["myRef1", "myRef2", "myRef3"]; … - ViewQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ViewQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ … viewQuery: function ViewQueryComponent_Query(rf, ctx) { if (rf & 1) { - $r3$.ɵviewQuery($e0_attrs$, true, null); - $r3$.ɵviewQuery($e1_attrs$, true, null); + $r3$.ΔviewQuery($e0_attrs$, true, null); + $r3$.ΔviewQuery($e1_attrs$, true, null); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.myRef = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.myRefs = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.myRef = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.myRefs = $tmp$)); } }, … @@ -1491,26 +1491,26 @@ describe('compiler compliance', () => { const $refs$ = ["foo"]; const $e0_attrs$ = ["someDir",""]; … - ViewQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ViewQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: ViewQueryComponent, selectors: [["view-query-component"]], factory: function ViewQueryComponent_Factory(t) { return new (t || ViewQueryComponent)(); }, viewQuery: function ViewQueryComponent_Query(rf, ctx) { if (rf & 1) { - $r3$.ɵstaticViewQuery(SomeDirective, true, null); - $r3$.ɵviewQuery($refs$, true, null); + $r3$.ΔstaticViewQuery(SomeDirective, true, null); + $r3$.ΔviewQuery($refs$, true, null); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.someDir = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.foo = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.someDir = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.foo = $tmp$.first)); } }, consts: 1, vars: 0, template: function ViewQueryComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div", $e0_attrs$); + $r3$.Δelement(0, "div", $e0_attrs$); } }, directives: function () { return [SomeDirective]; }, @@ -1556,21 +1556,21 @@ describe('compiler compliance', () => { const $e0_attrs$ = ["myRef"]; const $e1_attrs$ = ["myRef1", "myRef2", "myRef3"]; … - ViewQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ViewQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ … viewQuery: function ViewQueryComponent_Query(rf, ctx) { if (rf & 1) { - $r3$.ɵviewQuery($e0_attrs$, true, TemplateRef); - $r3$.ɵviewQuery(SomeDirective, true, ElementRef); - $r3$.ɵviewQuery($e1_attrs$, true, ElementRef); - $r3$.ɵviewQuery(SomeDirective, true, TemplateRef); + $r3$.ΔviewQuery($e0_attrs$, true, TemplateRef); + $r3$.ΔviewQuery(SomeDirective, true, ElementRef); + $r3$.ΔviewQuery($e1_attrs$, true, ElementRef); + $r3$.ΔviewQuery(SomeDirective, true, TemplateRef); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.myRef = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.someDir = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.myRefs = $tmp$)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadViewQuery())) && (ctx.someDirs = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.myRef = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.someDir = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.myRefs = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadViewQuery())) && (ctx.someDirs = $tmp$)); } }, … @@ -1618,7 +1618,7 @@ describe('compiler compliance', () => { }; const ContentQueryComponentDefinition = ` - ContentQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ContentQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: ContentQueryComponent, selectors: [["content-query-component"]], factory: function ContentQueryComponent_Factory(t) { @@ -1626,13 +1626,13 @@ describe('compiler compliance', () => { }, contentQueries: function ContentQueryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { - $r3$.ɵcontentQuery(dirIndex, SomeDirective, true, null); - $r3$.ɵcontentQuery(dirIndex, SomeDirective, false, null); + $r3$.ΔcontentQuery(dirIndex, SomeDirective, true, null); + $r3$.ΔcontentQuery(dirIndex, SomeDirective, false, null); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.someDir = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.someDirList = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.someDir = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.someDirList = $tmp$)); } }, ngContentSelectors: _c0, @@ -1640,10 +1640,10 @@ describe('compiler compliance', () => { vars: 0, template: function ContentQueryComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojectionDef(); - $r3$.ɵelementStart(0, "div"); - $r3$.ɵprojection(1); - $r3$.ɵelementEnd(); + $r3$.ΔprojectionDef(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δprojection(1); + $r3$.ΔelementEnd(); } }, encapsulation: 2 @@ -1682,17 +1682,17 @@ describe('compiler compliance', () => { const $e0_attrs$ = ["myRef"]; const $e1_attrs$ = ["myRef1", "myRef2", "myRef3"]; … - ContentQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ContentQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ … contentQueries: function ContentQueryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { - $r3$.ɵcontentQuery(dirIndex, $e0_attrs$, true, null); - $r3$.ɵcontentQuery(dirIndex, $e1_attrs$, false, null); + $r3$.ΔcontentQuery(dirIndex, $e0_attrs$, true, null); + $r3$.ΔcontentQuery(dirIndex, $e1_attrs$, false, null); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.myRef = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.myRefs = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.myRef = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.myRefs = $tmp$)); } }, … @@ -1740,7 +1740,7 @@ describe('compiler compliance', () => { }; const ContentQueryComponentDefinition = ` - ContentQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ContentQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: ContentQueryComponent, selectors: [["content-query-component"]], factory: function ContentQueryComponent_Factory(t) { @@ -1748,13 +1748,13 @@ describe('compiler compliance', () => { }, contentQueries: function ContentQueryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { - $r3$.ɵstaticContentQuery(dirIndex, SomeDirective, true, null); - $r3$.ɵcontentQuery(dirIndex, $ref0$, true, null); + $r3$.ΔstaticContentQuery(dirIndex, SomeDirective, true, null); + $r3$.ΔcontentQuery(dirIndex, $ref0$, true, null); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.someDir = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.foo = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.someDir = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.foo = $tmp$.first)); } }, ngContentSelectors: $_c1$, @@ -1762,10 +1762,10 @@ describe('compiler compliance', () => { vars: 0, template: function ContentQueryComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵprojectionDef(); - $r3$.ɵelementStart(0, "div"); - $r3$.ɵprojection(1); - $r3$.ɵelementEnd(); + $r3$.ΔprojectionDef(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δprojection(1); + $r3$.ΔelementEnd(); } }, encapsulation: 2 @@ -1809,21 +1809,21 @@ describe('compiler compliance', () => { const $e0_attrs$ = ["myRef"]; const $e1_attrs$ = ["myRef1", "myRef2", "myRef3"]; … - ContentQueryComponent.ngComponentDef = $r3$.ɵdefineComponent({ + ContentQueryComponent.ngComponentDef = $r3$.ΔdefineComponent({ … contentQueries: function ContentQueryComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { - $r3$.ɵcontentQuery(dirIndex, $e0_attrs$, true, TemplateRef); - $r3$.ɵcontentQuery(dirIndex, SomeDirective, true, ElementRef); - $r3$.ɵcontentQuery(dirIndex, $e1_attrs$, false, ElementRef); - $r3$.ɵcontentQuery(dirIndex, SomeDirective, false, TemplateRef); + $r3$.ΔcontentQuery(dirIndex, $e0_attrs$, true, TemplateRef); + $r3$.ΔcontentQuery(dirIndex, SomeDirective, true, ElementRef); + $r3$.ΔcontentQuery(dirIndex, $e1_attrs$, false, ElementRef); + $r3$.ΔcontentQuery(dirIndex, SomeDirective, false, TemplateRef); } if (rf & 2) { var $tmp$; - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.myRef = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.someDir = $tmp$.first)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.myRefs = $tmp$)); - ($r3$.ɵqueryRefresh(($tmp$ = $r3$.ɵloadContentQuery())) && (ctx.someDirs = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.myRef = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.someDir = $tmp$.first)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.myRefs = $tmp$)); + ($r3$.ΔqueryRefresh(($tmp$ = $r3$.ΔloadContentQuery())) && (ctx.someDirs = $tmp$)); } }, … @@ -1917,7 +1917,7 @@ describe('compiler compliance', () => { }; const MyPipeDefinition = ` - MyPipe.ngPipeDef = $r3$.ɵdefinePipe({ + MyPipe.ngPipeDef = $r3$.ΔdefinePipe({ name: "myPipe", type: MyPipe, factory: function MyPipe_Factory(t) { return new (t || MyPipe)(); }, @@ -1926,7 +1926,7 @@ describe('compiler compliance', () => { `; const MyPurePipeDefinition = ` - MyPurePipe.ngPipeDef = $r3$.ɵdefinePipe({ + MyPurePipe.ngPipeDef = $r3$.ΔdefinePipe({ name: "myPurePipe", type: MyPurePipe, factory: function MyPurePipe_Factory(t) { return new (t || MyPurePipe)(); }, @@ -1938,7 +1938,7 @@ describe('compiler compliance', () => { return [$a0$, 1, 2, 3, 4, 5]; }; // ... - MyApp.ngComponentDef = $r3$.ɵdefineComponent({ + MyApp.ngComponentDef = $r3$.ΔdefineComponent({ type: MyApp, selectors: [["my-app"]], factory: function MyApp_Factory(t) { return new (t || MyApp)(); }, @@ -1946,20 +1946,20 @@ describe('compiler compliance', () => { vars: 20, template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtext(0); - $r3$.ɵpipe(1, "myPurePipe"); - $r3$.ɵpipe(2, "myPipe"); - $r3$.ɵelementStart(3, "p"); - $r3$.ɵtext(4); - $r3$.ɵpipe(5, "myPipe"); - $r3$.ɵpipe(6, "myPipe"); - $r3$.ɵelementEnd(); + $r3$.Δtext(0); + $r3$.Δpipe(1, "myPurePipe"); + $r3$.Δpipe(2, "myPipe"); + $r3$.ΔelementStart(3, "p"); + $r3$.Δtext(4); + $r3$.Δpipe(5, "myPipe"); + $r3$.Δpipe(6, "myPipe"); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵtextBinding(0, $r3$.ɵinterpolation1("", $r3$.ɵpipeBind2(1, 3, $r3$.ɵpipeBind2(2, 6, ctx.name, ctx.size), ctx.size), "")); - $r3$.ɵselect(4); - $r3$.ɵtextBinding(4, $r3$.ɵinterpolation2("", $r3$.ɵpipeBindV(5, 9, $r3$.ɵpureFunction1(18, $c0$, ctx.name)), " ", (ctx.name ? 1 : $r3$.ɵpipeBind1(6, 16, 2)), "")); + $r3$.Δselect(0); + $r3$.ΔtextBinding(0, $r3$.Δinterpolation1("", $r3$.ΔpipeBind2(1, 3, $r3$.ΔpipeBind2(2, 6, ctx.name, ctx.size), ctx.size), "")); + $r3$.Δselect(4); + $r3$.ΔtextBinding(4, $r3$.Δinterpolation2("", $r3$.ΔpipeBindV(5, 9, $r3$.ΔpureFunction1(18, $c0$, ctx.name)), " ", (ctx.name ? 1 : $r3$.ΔpipeBind1(6, 16, 2)), "")); } }, pipes: [MyPurePipe, MyPipe], @@ -2005,7 +2005,7 @@ describe('compiler compliance', () => { const MyAppDefinition = ` // ... - MyApp.ngComponentDef = $r3$.ɵdefineComponent({ + MyApp.ngComponentDef = $r3$.ΔdefineComponent({ type: MyApp, selectors: [["my-app"]], factory: function MyApp_Factory(t) { return new (t || MyApp)(); }, @@ -2013,21 +2013,21 @@ describe('compiler compliance', () => { vars: 27, template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtext(0); - $r3$.ɵpipe(1, "myPipe"); - $r3$.ɵpipe(2, "myPipe"); - $r3$.ɵpipe(3, "myPipe"); - $r3$.ɵpipe(4, "myPipe"); - $r3$.ɵpipe(5, "myPipe"); + $r3$.Δtext(0); + $r3$.Δpipe(1, "myPipe"); + $r3$.Δpipe(2, "myPipe"); + $r3$.Δpipe(3, "myPipe"); + $r3$.Δpipe(4, "myPipe"); + $r3$.Δpipe(5, "myPipe"); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵtextBinding(0, $r3$.ɵinterpolation5( - "0:", i0.ɵpipeBind1(1, 5, ctx.name), - "1:", i0.ɵpipeBind2(2, 7, ctx.name, 1), - "2:", i0.ɵpipeBind3(3, 10, ctx.name, 1, 2), - "3:", i0.ɵpipeBind4(4, 14, ctx.name, 1, 2, 3), - "4:", i0.ɵpipeBindV(5, 19, $r3$.ɵpureFunction1(25, $c0$, ctx.name)), + $r3$.Δselect(0); + $r3$.ΔtextBinding(0, $r3$.Δinterpolation5( + "0:", i0.ΔpipeBind1(1, 5, ctx.name), + "1:", i0.ΔpipeBind2(2, 7, ctx.name, 1), + "2:", i0.ΔpipeBind3(3, 10, ctx.name, 1, 2), + "3:", i0.ΔpipeBind4(4, 14, ctx.name, 1, 2, 3), + "4:", i0.ΔpipeBindV(5, 19, $r3$.ΔpureFunction1(25, $c0$, ctx.name)), "" )); } @@ -2061,7 +2061,7 @@ describe('compiler compliance', () => { const MyComponentDefinition = ` const $c1$ = ["user", ""]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -2069,13 +2069,13 @@ describe('compiler compliance', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "input", null, $c1$); - $r3$.ɵtext(2); + $r3$.Δelement(0, "input", null, $c1$); + $r3$.Δtext(2); } if (rf & 2) { - const $user$ = $r3$.ɵreference(1); - $r3$.ɵselect(2); - $r3$.ɵtextBinding(2, $r3$.ɵinterpolation1("Hello ", $user$.value, "!")); + const $user$ = $r3$.Δreference(1); + $r3$.Δselect(2); + $r3$.ΔtextBinding(2, $r3$.Δinterpolation1("Hello ", $user$.value, "!")); } }, encapsulation: 2 @@ -2127,38 +2127,38 @@ describe('compiler compliance', () => { const $c4$ = ["bar", ""]; function MyComponent_div_3_span_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "span"); - $r3$.ɵtext(1); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "span"); + $r3$.Δtext(1); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵnextContext(); - const $bar$ = $r3$.ɵreference(4); - $r3$.ɵnextContext(); - const $foo$ = $r3$.ɵreference(1); - const $baz$ = $r3$.ɵreference(5); - $r3$.ɵselect(1); - $r3$.ɵtextBinding(1, $r3$.ɵinterpolation3("", $foo$, "-", $bar$, "-", $baz$, "")); + $r3$.ΔnextContext(); + const $bar$ = $r3$.Δreference(4); + $r3$.ΔnextContext(); + const $foo$ = $r3$.Δreference(1); + const $baz$ = $r3$.Δreference(5); + $r3$.Δselect(1); + $r3$.ΔtextBinding(1, $r3$.Δinterpolation3("", $foo$, "-", $bar$, "-", $baz$, "")); } } function MyComponent_div_3_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵtext(1); - $r3$.ɵtemplate(2, MyComponent_div_3_span_2_Template, 2, 3, "span", $c2$); - $r3$.ɵelement(3, "span", null, $c4$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δtext(1); + $r3$.Δtemplate(2, MyComponent_div_3_span_2_Template, 2, 3, "span", $c2$); + $r3$.Δelement(3, "span", null, $c4$); + $r3$.ΔelementEnd(); } if (rf & 2) { - const $bar$ = $r3$.ɵreference(4); - $r3$.ɵnextContext(); - const $foo$ = $r3$.ɵreference(1); - $r3$.ɵselect(1); - $r3$.ɵtextBinding(1, $r3$.ɵinterpolation2(" ", $foo$, "-", $bar$, " ")); + const $bar$ = $r3$.Δreference(4); + $r3$.ΔnextContext(); + const $foo$ = $r3$.Δreference(1); + $r3$.Δselect(1); + $r3$.ΔtextBinding(1, $r3$.Δinterpolation2(" ", $foo$, "-", $bar$, " ")); } } … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -2166,15 +2166,15 @@ describe('compiler compliance', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div", null, $c1$); - $r3$.ɵtext(2); - $r3$.ɵtemplate(3, MyComponent_div_3_Template, 5, 2, "div", $c2$); - $r3$.ɵelement(4, "div", null, $c3$); + $r3$.Δelement(0, "div", null, $c1$); + $r3$.Δtext(2); + $r3$.Δtemplate(3, MyComponent_div_3_Template, 5, 2, "div", $c2$); + $r3$.Δelement(4, "div", null, $c3$); } if (rf & 2) { - const $foo$ = $r3$.ɵreference(1); - $r3$.ɵselect(2); - $r3$.ɵtextBinding(2, $r3$.ɵinterpolation1(" ", $foo$, " ")); + const $foo$ = $r3$.Δreference(1); + $r3$.Δselect(2); + $r3$.ΔtextBinding(2, $r3$.Δinterpolation1(" ", $foo$, " ")); } }, directives:[IfDirective], @@ -2219,40 +2219,40 @@ describe('compiler compliance', () => { function MyComponent_div_0_span_3_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "span"); - $i0$.ɵtext(1); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "span"); + $i0$.Δtext(1); + $i0$.ΔelementEnd(); } if (rf & 2) { - const $item$ = $i0$.ɵnextContext().$implicit; - const $foo$ = $i0$.ɵreference(2); - $r3$.ɵselect(1); - $i0$.ɵtextBinding(1, $i0$.ɵinterpolation2(" ", $foo$, " - ", $item$, " ")); + const $item$ = $i0$.ΔnextContext().$implicit; + const $foo$ = $i0$.Δreference(2); + $r3$.Δselect(1); + $i0$.ΔtextBinding(1, $i0$.Δinterpolation2(" ", $foo$, " - ", $item$, " ")); } } function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵelement(1, "div", null, $c1$); - $i0$.ɵtemplate(3, MyComponent_div_0_span_3_Template, 2, 2, "span", $c2$); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.Δelement(1, "div", null, $c1$); + $i0$.Δtemplate(3, MyComponent_div_0_span_3_Template, 2, 2, "span", $c2$); + $i0$.ΔelementEnd(); } if (rf & 2) { - const $app$ = $i0$.ɵnextContext(); - $r3$.ɵselect(3); - $i0$.ɵelementProperty(3, "ngIf", $i0$.ɵbind($app$.showing)); + const $app$ = $i0$.ΔnextContext(); + $r3$.Δselect(3); + $i0$.ΔelementProperty(3, "ngIf", $i0$.Δbind($app$.showing)); } } // ... template:function MyComponent_Template(rf, ctx){ if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_div_0_Template, 4, 1, "div", $c0$); + $i0$.Δtemplate(0, MyComponent_div_0_Template, 4, 1, "div", $c0$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "ngForOf", $i0$.ɵbind(ctx.items)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "ngForOf", $i0$.Δbind(ctx.items)); } }`; @@ -2307,12 +2307,12 @@ describe('compiler compliance', () => { it('should gen hooks with a few simple components', () => { const LifecycleCompDefinition = ` - LifecycleComp.ngComponentDef = $r3$.ɵdefineComponent({ + LifecycleComp.ngComponentDef = $r3$.ΔdefineComponent({ type: LifecycleComp, selectors: [["lifecycle-comp"]], factory: function LifecycleComp_Factory(t) { return new (t || LifecycleComp)(); }, inputs: {nameMin: ["name", "nameMin"]}, - features: [$r3$.ɵNgOnChangesFeature()], + features: [$r3$.ΔNgOnChangesFeature()], consts: 0, vars: 0, template: function LifecycleComp_Template(rf, ctx) {}, @@ -2320,7 +2320,7 @@ describe('compiler compliance', () => { });`; const SimpleLayoutDefinition = ` - SimpleLayout.ngComponentDef = $r3$.ɵdefineComponent({ + SimpleLayout.ngComponentDef = $r3$.ΔdefineComponent({ type: SimpleLayout, selectors: [["simple-layout"]], factory: function SimpleLayout_Factory(t) { return new (t || SimpleLayout)(); }, @@ -2328,14 +2328,14 @@ describe('compiler compliance', () => { vars: 2, template: function SimpleLayout_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "lifecycle-comp", $e0_attrs$); - $r3$.ɵelement(1, "lifecycle-comp", $e1_attrs$); + $r3$.Δelement(0, "lifecycle-comp", $e0_attrs$); + $r3$.Δelement(1, "lifecycle-comp", $e1_attrs$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "name", $r3$.ɵbind(ctx.name1)); - $r3$.ɵselect(1); - $r3$.ɵelementProperty(1, "name", $r3$.ɵbind(ctx.name2)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "name", $r3$.Δbind(ctx.name1)); + $r3$.Δselect(1); + $r3$.ΔelementProperty(1, "name", $r3$.Δbind(ctx.name2)); } }, directives: [LifecycleComp], @@ -2430,13 +2430,13 @@ describe('compiler compliance', () => { // TODO(benlesh): Enforce this when the directives are specified const ForDirectiveDefinition = ` - ForOfDirective.ngDirectiveDef = $r3$.ɵdefineDirective({ + ForOfDirective.ngDirectiveDef = $r3$.ΔdefineDirective({ type: ForOfDirective, selectors: [["", "forOf", ""]], factory: function ForOfDirective_Factory(t) { - return new (t || ForOfDirective)($r3$.ɵdirectiveInject(ViewContainerRef), $r3$.ɵdirectiveInject(TemplateRef)); + return new (t || ForOfDirective)($r3$.ΔdirectiveInject(ViewContainerRef), $r3$.ΔdirectiveInject(TemplateRef)); }, - features: [$r3$.ɵNgOnChangesFeature()], + features: [$r3$.ΔNgOnChangesFeature()], inputs: {forOf: "forOf"} }); `; @@ -2445,14 +2445,14 @@ describe('compiler compliance', () => { const $t1_attrs$ = [${AttributeMarker.Template}, "for", "forOf"]; function MyComponent__svg_g_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵnamespaceSVG(); - $r3$.ɵelementStart(0,"g"); - $r3$.ɵelement(1,"circle"); - $r3$.ɵelementEnd(); + $r3$.ΔnamespaceSVG(); + $r3$.ΔelementStart(0,"g"); + $r3$.Δelement(1,"circle"); + $r3$.ΔelementEnd(); } } … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -2460,14 +2460,14 @@ describe('compiler compliance', () => { vars: 1, template: function MyComponent_Template(rf, ctx){ if (rf & 1) { - $r3$.ɵnamespaceSVG(); - $r3$.ɵelementStart(0,"svg"); - $r3$.ɵtemplate(1, MyComponent__svg_g_1_Template, 2, 0, "g", $t1_attrs$); - $r3$.ɵelementEnd(); + $r3$.ΔnamespaceSVG(); + $r3$.ΔelementStart(0,"svg"); + $r3$.Δtemplate(1, MyComponent__svg_g_1_Template, 2, 0, "g", $t1_attrs$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵelementProperty(1,"forOf",$r3$.ɵbind(ctx.items)); + $r3$.Δselect(1); + $r3$.ΔelementProperty(1,"forOf",$r3$.Δbind(ctx.items)); } }, directives: function() { return [ForOfDirective]; }, @@ -2509,13 +2509,13 @@ describe('compiler compliance', () => { // TODO(chuckj): Enforce this when the directives are specified const ForDirectiveDefinition = ` - ForOfDirective.ngDirectiveDef = $r3$.ɵdefineDirective({ + ForOfDirective.ngDirectiveDef = $r3$.ΔdefineDirective({ type: ForOfDirective, selectors: [["", "forOf", ""]], factory: function ForOfDirective_Factory(t) { - return new (t || ForOfDirective)($r3$.ɵdirectiveInject(ViewContainerRef), $r3$.ɵdirectiveInject(TemplateRef)); + return new (t || ForOfDirective)($r3$.ΔdirectiveInject(ViewContainerRef), $r3$.ΔdirectiveInject(TemplateRef)); }, - features: [$r3$.ɵNgOnChangesFeature()], + features: [$r3$.ΔNgOnChangesFeature()], inputs: {forOf: "forOf"} }); `; @@ -2524,18 +2524,18 @@ describe('compiler compliance', () => { const $t1_attrs$ = [${AttributeMarker.Template}, "for", "forOf"]; function MyComponent_li_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "li"); - $r3$.ɵtext(1); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "li"); + $r3$.Δtext(1); + $r3$.ΔelementEnd(); } if (rf & 2) { const $item$ = ctx.$implicit; - $r3$.ɵselect(1); - $r3$.ɵtextBinding(1, $r3$.ɵinterpolation1("", $item$.name, "")); + $r3$.Δselect(1); + $r3$.ΔtextBinding(1, $r3$.Δinterpolation1("", $item$.name, "")); } } … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -2543,13 +2543,13 @@ describe('compiler compliance', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "ul"); - $r3$.ɵtemplate(1, MyComponent_li_1_Template, 2, 1, "li", $t1_attrs$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "ul"); + $r3$.Δtemplate(1, MyComponent_li_1_Template, 2, 1, "li", $t1_attrs$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵelementProperty(1, "forOf", $r3$.ɵbind(ctx.items)); + $r3$.Δselect(1); + $r3$.ΔelementProperty(1, "forOf", $r3$.Δbind(ctx.items)); } }, directives: function() { return [ForOfDirective]; }, @@ -2606,40 +2606,40 @@ describe('compiler compliance', () => { const $t4_attrs$ = [${AttributeMarker.Template}, "for", "forOf"]; function MyComponent_li_1_li_4_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "li"); - $r3$.ɵtext(1); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "li"); + $r3$.Δtext(1); + $r3$.ΔelementEnd(); } if (rf & 2) { const $info$ = ctx.$implicit; - const $item$ = $r3$.ɵnextContext().$implicit; - $r3$.ɵselect(1); - $r3$.ɵtextBinding(1, $r3$.ɵinterpolation2(" ", $item$.name, ": ", $info$.description, " ")); + const $item$ = $r3$.ΔnextContext().$implicit; + $r3$.Δselect(1); + $r3$.ΔtextBinding(1, $r3$.Δinterpolation2(" ", $item$.name, ": ", $info$.description, " ")); } } function MyComponent_li_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "li"); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵtext(2); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(3, "ul"); - $r3$.ɵtemplate(4, MyComponent_li_1_li_4_Template, 2, 2, "li", $t4_attrs$); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "li"); + $r3$.ΔelementStart(1, "div"); + $r3$.Δtext(2); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(3, "ul"); + $r3$.Δtemplate(4, MyComponent_li_1_li_4_Template, 2, 2, "li", $t4_attrs$); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { const $item$ = ctx.$implicit; - $r3$.ɵselect(2); - $r3$.ɵtextBinding(2, $r3$.ɵinterpolation1("", IDENT.name, "")); - $r3$.ɵselect(4); - $r3$.ɵelementProperty(4, "forOf", $r3$.ɵbind(IDENT.infos)); + $r3$.Δselect(2); + $r3$.ΔtextBinding(2, $r3$.Δinterpolation1("", IDENT.name, "")); + $r3$.Δselect(4); + $r3$.ΔelementProperty(4, "forOf", $r3$.Δbind(IDENT.infos)); } } … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -2647,13 +2647,13 @@ describe('compiler compliance', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "ul"); - $r3$.ɵtemplate(1, MyComponent_li_1_Template, 5, 2, "li", $c1$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "ul"); + $r3$.Δtemplate(1, MyComponent_li_1_Template, 5, 2, "li", $c1$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵelementProperty(1, "forOf", $r3$.ɵbind(ctx.items)); + $r3$.Δselect(1); + $r3$.ΔelementProperty(1, "forOf", $r3$.Δbind(ctx.items)); } }, directives: function () { return [ForOfDirective]; }, @@ -2757,7 +2757,7 @@ describe('compiler compliance', () => { // SomeDirective definition should be: const SomeDirectiveDefinition = ` - SomeDirective.ngDirectiveDef = $r3$.ɵdefineDirective({ + SomeDirective.ngDirectiveDef = $r3$.ΔdefineDirective({ type: SomeDirective, selectors: [["", "some-directive", ""]], factory: function SomeDirective_Factory(t) {return new (t || SomeDirective)(); }, @@ -2803,7 +2803,7 @@ describe('compiler compliance', () => { }; const expectedOutput = ` // ... - BaseClass.ngBaseDef = i0.ɵdefineBase({ + BaseClass.ngBaseDef = i0.ΔdefineBase({ inputs: { input1: "input1", input2: ["alias2", "input2"] @@ -2849,7 +2849,7 @@ describe('compiler compliance', () => { }; const expectedOutput = ` // ... - BaseClass.ngBaseDef = i0.ɵdefineBase({ + BaseClass.ngBaseDef = i0.ΔdefineBase({ outputs: { output1: "output1", output2: "output2" @@ -2901,7 +2901,7 @@ describe('compiler compliance', () => { }; const expectedOutput = ` // ... - BaseClass.ngBaseDef = i0.ɵdefineBase({ + BaseClass.ngBaseDef = i0.ΔdefineBase({ inputs: { input1: "input1", input2: ["whatever", "input2"] diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_binding_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_binding_spec.ts index fb41a0b6a2..93087ae452 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_binding_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_binding_spec.ts @@ -39,13 +39,13 @@ describe('compiler compliance: bindings', () => { const template = ` template:function MyComponent_Template(rf, $ctx$){ if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵtext(1); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.Δtext(1); + $i0$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $i0$.ɵtextBinding(1, $i0$.ɵinterpolation1("Hello ", $ctx$.name, "")); + $r3$.Δselect(1); + $i0$.ΔtextBinding(1, $i0$.Δinterpolation1("Hello ", $ctx$.name, "")); } }`; const result = compile(files, angularFiles); @@ -78,11 +78,11 @@ describe('compiler compliance: bindings', () => { … template:function MyComponent_Template(rf, $ctx$){ if (rf & 1) { - $i0$.ɵelement(0, "a", $e0_attrs$); + $i0$.Δelement(0, "a", $e0_attrs$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "title", $i0$.ɵbind($ctx$.title)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "title", $i0$.Δbind($ctx$.title)); } }`; const result = compile(files, angularFiles); @@ -113,11 +113,11 @@ describe('compiler compliance: bindings', () => { … template:function MyComponent_Template(rf, $ctx$){ if (rf & 1) { - $i0$.ɵelement(0, "a", $e0_attrs$); + $i0$.Δelement(0, "a", $e0_attrs$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "title", $i0$.ɵinterpolation1("Hello ", $ctx$.name, "")); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "title", $i0$.Δinterpolation1("Hello ", $ctx$.name, "")); } }`; const result = compile(files, angularFiles); @@ -138,7 +138,7 @@ describe('compiler compliance: bindings', () => { } }; const result = compile(files, angularFiles); - expect(result.source).not.toContain('i0.ɵelementProperty'); + expect(result.source).not.toContain('i0.ΔelementProperty'); }); it('should not remap property names whose names do not correspond to their attribute names', @@ -170,11 +170,11 @@ describe('compiler compliance: bindings', () => { function MyComponent_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelement(0, "label", _c0); + $i0$.Δelement(0, "label", _c0); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "for", $i0$.ɵbind(ctx.forValue)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "for", $i0$.Δbind(ctx.forValue)); } }`; @@ -204,16 +204,16 @@ describe('compiler compliance: bindings', () => { }; const HostBindingDirDeclaration = ` - HostBindingDir.ngDirectiveDef = $r3$.ɵdefineDirective({ + HostBindingDir.ngDirectiveDef = $r3$.ΔdefineDirective({ type: HostBindingDir, selectors: [["", "hostBindingDir", ""]], factory: function HostBindingDir_Factory(t) { return new (t || HostBindingDir)(); }, hostBindings: function HostBindingDir_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵallocHostVars(1); + $r3$.ΔallocHostVars(1); } if (rf & 2) { - $r3$.ɵelementProperty(elIndex, "id", $r3$.ɵbind(ctx.dirId), null, true); + $r3$.ΔelementProperty(elIndex, "id", $r3$.Δbind(ctx.dirId), null, true); } } }); @@ -251,16 +251,16 @@ describe('compiler compliance: bindings', () => { const HostBindingCompDeclaration = ` const $ff$ = function ($v$) { return ["red", $v$]; }; … - HostBindingComp.ngComponentDef = $r3$.ɵdefineComponent({ + HostBindingComp.ngComponentDef = $r3$.ΔdefineComponent({ type: HostBindingComp, selectors: [["host-binding-comp"]], factory: function HostBindingComp_Factory(t) { return new (t || HostBindingComp)(); }, hostBindings: function HostBindingComp_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵallocHostVars(3); + $r3$.ΔallocHostVars(3); } if (rf & 2) { - $r3$.ɵelementProperty(elIndex, "id", $r3$.ɵbind($r3$.ɵpureFunction1(1, $ff$, ctx.id)), null, true); + $r3$.ΔelementProperty(elIndex, "id", $r3$.Δbind($r3$.ΔpureFunction1(1, $ff$, ctx.id)), null, true); } }, consts: 0, @@ -299,16 +299,16 @@ describe('compiler compliance: bindings', () => { }; const HostAttributeDirDeclaration = ` - HostAttributeDir.ngDirectiveDef = $r3$.ɵdefineDirective({ + HostAttributeDir.ngDirectiveDef = $r3$.ΔdefineDirective({ type: HostAttributeDir, selectors: [["", "hostAttributeDir", ""]], factory: function HostAttributeDir_Factory(t) { return new (t || HostAttributeDir)(); }, hostBindings: function HostAttributeDir_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵallocHostVars(1); + $r3$.ΔallocHostVars(1); } if (rf & 2) { - $r3$.ɵelementAttribute(elIndex, "required", $r3$.ɵbind(ctx.required)); + $r3$.ΔelementAttribute(elIndex, "required", $r3$.Δbind(ctx.required)); } } }); @@ -344,13 +344,13 @@ describe('compiler compliance: bindings', () => { const HostAttributeDirDeclaration = ` const $c0$ = ["aria-label", "label"]; … - HostAttributeDir.ngDirectiveDef = $r3$.ɵdefineDirective({ + HostAttributeDir.ngDirectiveDef = $r3$.ΔdefineDirective({ type: HostAttributeDir, selectors: [["", "hostAttributeDir", ""]], factory: function HostAttributeDir_Factory(t) { return new (t || HostAttributeDir)(); }, hostBindings: function HostAttributeDir_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostAttrs($c0$); + $r3$.ΔelementHostAttrs($c0$); } } }); @@ -402,25 +402,25 @@ describe('compiler compliance: bindings', () => { const $c0$ = ["title", "hello there from component", ${AttributeMarker.Styles}, "opacity", "1"]; const $c1$ = ["title", "hello there from directive", ${AttributeMarker.Classes}, "one", "two", ${AttributeMarker.Styles}, "width", "200px", "height", "500px"]; … - HostAttributeComp.ngComponentDef = $r3$.ɵdefineComponent({ + HostAttributeComp.ngComponentDef = $r3$.ΔdefineComponent({ type: HostAttributeComp, selectors: [["my-host-attribute-component"]], factory: function HostAttributeComp_Factory(t) { return new (t || HostAttributeComp)(); }, hostBindings: function HostAttributeComp_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostAttrs($c0$); + $r3$.ΔelementHostAttrs($c0$); … } … } … - HostAttributeDir.ngDirectiveDef = $r3$.ɵdefineDirective({ + HostAttributeDir.ngDirectiveDef = $r3$.ΔdefineDirective({ type: HostAttributeDir, selectors: [["", "hostAttributeDir", ""]], factory: function HostAttributeDir_Factory(t) { return new (t || HostAttributeDir)(); }, hostBindings: function HostAttributeDir_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostAttrs($c1$); + $r3$.ΔelementHostAttrs($c1$); … } … @@ -466,19 +466,19 @@ describe('compiler compliance: bindings', () => { … template:function MyComponent_Template(rf, $ctx$){ if (rf & 1) { - $i0$.ɵelementStart(0, "b", $_c0$, $_c1$); - $i0$.ɵdisableBindings(); - $i0$.ɵelementStart(2, "i"); - $i0$.ɵtext(3, "Hello {{ name }}!"); - $i0$.ɵelementEnd(); - $i0$.ɵenableBindings(); - $i0$.ɵelementEnd(); - $i0$.ɵtext(4); + $i0$.ΔelementStart(0, "b", $_c0$, $_c1$); + $i0$.ΔdisableBindings(); + $i0$.ΔelementStart(2, "i"); + $i0$.Δtext(3, "Hello {{ name }}!"); + $i0$.ΔelementEnd(); + $i0$.ΔenableBindings(); + $i0$.ΔelementEnd(); + $i0$.Δtext(4); } if (rf & 2) { - const $_r0$ = $i0$.ɵreference(1); - $r3$.ɵselect(4); - $i0$.ɵtextBinding(4, $i0$.ɵinterpolation1(" ", $_r0$.id, " ")); + const $_r0$ = $i0$.Δreference(1); + $r3$.Δselect(4); + $i0$.ΔtextBinding(4, $i0$.Δinterpolation1(" ", $_r0$.id, " ")); } } `; @@ -498,12 +498,12 @@ describe('compiler compliance: bindings', () => { … template:function MyComponent_Template(rf, $ctx$){ if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵdisableBindings(); - $i0$.ɵelement(1, "input", $_c0$); - $i0$.ɵtext(2, " {{ myInput.value }} "); - $i0$.ɵenableBindings(); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.ΔdisableBindings(); + $i0$.Δelement(1, "input", $_c0$); + $i0$.Δtext(2, " {{ myInput.value }} "); + $i0$.ΔenableBindings(); + $i0$.ΔelementEnd(); } `; const result = compile(files, angularFiles); @@ -522,11 +522,11 @@ describe('compiler compliance: bindings', () => { … template:function MyComponent_Template(rf, $ctx$){ if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵdisableBindings(); - $i0$.ɵelement(1, "div", $_c0$); - $i0$.ɵenableBindings(); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.ΔdisableBindings(); + $i0$.Δelement(1, "div", $_c0$); + $i0$.ΔenableBindings(); + $i0$.ΔelementEnd(); } `; const result = compile(files, angularFiles); @@ -541,7 +541,7 @@ describe('compiler compliance: bindings', () => { const template = ` template:function MyComponent_Template(rf, $ctx$){ if (rf & 1) { - $i0$.ɵelement(0, "div"); + $i0$.Δelement(0, "div"); } } `; diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_di_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_di_spec.ts index 3e9acc5783..6e3fd1d315 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_di_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_di_spec.ts @@ -32,7 +32,7 @@ describe('compiler compliance: dependency injection', () => { export class MyComponent { constructor( @Attribute('name') name:string, - s1: MyService, + s1: MyService, @Host() s2: MyService, @Self() s4: MyService, @SkipSelf() s3: MyService, @@ -50,13 +50,13 @@ describe('compiler compliance: dependency injection', () => { const factory = ` factory: function MyComponent_Factory(t) { return new (t || MyComponent)( - $r3$.ɵinjectAttribute('name'), - $r3$.ɵdirectiveInject(MyService), - $r3$.ɵdirectiveInject(MyService, 1), - $r3$.ɵdirectiveInject(MyService, 2), - $r3$.ɵdirectiveInject(MyService, 4), - $r3$.ɵdirectiveInject(MyService, 8), - $r3$.ɵdirectiveInject(MyService, 10) + $r3$.ΔinjectAttribute('name'), + $r3$.ΔdirectiveInject(MyService), + $r3$.ΔdirectiveInject(MyService, 1), + $r3$.ΔdirectiveInject(MyService, 2), + $r3$.ΔdirectiveInject(MyService, 4), + $r3$.ΔdirectiveInject(MyService, 8), + $r3$.ΔdirectiveInject(MyService, 10) ); }`; diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_directives_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_directives_spec.ts index 8fdcd79d55..4958e311ec 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_directives_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_directives_spec.ts @@ -38,7 +38,7 @@ describe('compiler compliance: directives', () => { // MyComponent definition should be: const MyComponentDefinition = ` - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -46,7 +46,7 @@ describe('compiler compliance: directives', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div"); + $r3$.Δelement(0, "div"); } }, encapsulation: 2 @@ -84,7 +84,7 @@ describe('compiler compliance: directives', () => { // MyComponent definition should be: const MyComponentDefinition = ` - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -92,7 +92,7 @@ describe('compiler compliance: directives', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div"); + $r3$.Δelement(0, "div"); } }, encapsulation: 2 @@ -132,15 +132,15 @@ describe('compiler compliance: directives', () => { … const _c0 = [${AttributeMarker.Bindings}, "someDirective"]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div", _c0); + $r3$.Δelement(0, "div", _c0); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "someDirective", $r3$.ɵbind(true)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "someDirective", $r3$.Δbind(true)); } }, … @@ -187,15 +187,15 @@ describe('compiler compliance: directives', () => { const $_c0$ = ["directiveA", ""]; function MyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtext(0, "Some content"); + $r3$.Δtext(0, "Some content"); } } … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $_c0$); + $r3$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $_c0$); } }, … @@ -241,21 +241,21 @@ describe('compiler compliance: directives', () => { const $_c1$ = ["directiveA", ""]; function MyComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementContainerStart(0, $_c1$); - $r3$.ɵtext(1, "Some content"); - $r3$.ɵelementContainerEnd(); + $r3$.ΔelementContainerStart(0, $_c1$); + $r3$.Δtext(1, "Some content"); + $r3$.ΔelementContainerEnd(); } } … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_ng_container_0_Template, 2, 0, "ng-container", $_c0$); + $r3$.Δtemplate(0, MyComponent_ng_container_0_Template, 2, 0, "ng-container", $_c0$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "ngIf", $r3$.ɵbind(ctx.showing)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "ngIf", $r3$.Δbind(ctx.showing)); } }, … @@ -295,15 +295,15 @@ describe('compiler compliance: directives', () => { … const $c0_a0$ = [${AttributeMarker.Bindings}, "someDirective"]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $c0_a0$); + $r3$.Δtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $c0_a0$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "someDirective", $r3$.ɵbind(true)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "someDirective", $r3$.Δbind(true)); } }, … @@ -344,11 +344,11 @@ describe('compiler compliance: directives', () => { … const $c0_a0$ = [${AttributeMarker.Template}, "someDirective"]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0_a0$); + $r3$.Δtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0_a0$); } }, … @@ -393,13 +393,13 @@ describe('compiler compliance: directives', () => { … const $c0_a0$ = [${AttributeMarker.Bindings}, "someDirective"]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $c0_a0$); - $r3$.ɵlistener("someDirective", function MyComponent_Template_div_someDirective_0_listener($event) { return ctx.noop(); }); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $c0_a0$); + $r3$.Δlistener("someDirective", function MyComponent_Template_div_someDirective_0_listener($event) { return ctx.noop(); }); + $r3$.ΔelementEnd(); } }, … diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts index b532ca340e..883efb8166 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts @@ -222,33 +222,33 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_idA$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(2, "div"); - $r3$.ɵi18nAttributes(3, $_c0$); - $r3$.ɵtext(4, "Content B"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(5, "div"); - $r3$.ɵi18nAttributes(6, $_c1$); - $r3$.ɵtext(7, "Content C"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(8, "div"); - $r3$.ɵi18nAttributes(9, $_c2$); - $r3$.ɵtext(10, "Content D"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(11, "div"); - $r3$.ɵi18nAttributes(12, $_c3$); - $r3$.ɵtext(13, "Content E"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(14, "div"); - $r3$.ɵi18nAttributes(15, $_c4$); - $r3$.ɵtext(16, "Content F"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(17, "div"); - $r3$.ɵi18nAttributes(18, $_c5$); - $r3$.ɵtext(19, "Content G"); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_idA$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(2, "div"); + $r3$.Δi18nAttributes(3, $_c0$); + $r3$.Δtext(4, "Content B"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(5, "div"); + $r3$.Δi18nAttributes(6, $_c1$); + $r3$.Δtext(7, "Content C"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(8, "div"); + $r3$.Δi18nAttributes(9, $_c2$); + $r3$.Δtext(10, "Content D"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(11, "div"); + $r3$.Δi18nAttributes(12, $_c3$); + $r3$.Δtext(13, "Content E"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(14, "div"); + $r3$.Δi18nAttributes(15, $_c4$); + $r3$.Δtext(16, "Content F"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(17, "div"); + $r3$.Δi18nAttributes(18, $_c5$); + $r3$.Δtext(19, "Content G"); + $r3$.ΔelementEnd(); } } `; @@ -266,7 +266,7 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div", $_c0$); + $r3$.Δelement(0, "div", $_c0$); } } `; @@ -290,9 +290,9 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c0$); - $r3$.ɵi18nAttributes(1, $_c1$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c0$); + $r3$.Δi18nAttributes(1, $_c1$); + $r3$.ΔelementEnd(); } } `; @@ -357,25 +357,25 @@ describe('i18n support in the view compiler', () => { vars: 8, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c0$); - $r3$.ɵpipe(1, "uppercase"); - $r3$.ɵi18nAttributes(2, $_c1$); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(3, "div", $_c2$); - $r3$.ɵi18nAttributes(4, $_c3$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c0$); + $r3$.Δpipe(1, "uppercase"); + $r3$.Δi18nAttributes(2, $_c1$); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(3, "div", $_c2$); + $r3$.Δi18nAttributes(4, $_c3$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(1, 0, ctx.valueA))); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueB)); - $r3$.ɵi18nApply(2); - $r3$.ɵselect(3); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueA)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueB)); - $r3$.ɵi18nExp($r3$.ɵbind((ctx.valueA + ctx.valueB))); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueC)); - $r3$.ɵi18nApply(4); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(1, 0, ctx.valueA))); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueB)); + $r3$.Δi18nApply(2); + $r3$.Δselect(3); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueA)); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueB)); + $r3$.Δi18nExp($r3$.Δbind((ctx.valueA + ctx.valueB))); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueC)); + $r3$.Δi18nApply(4); } } `; @@ -396,15 +396,15 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵpipe(1, "uppercase"); - $r3$.ɵi18nAttributes(2, $_c0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δpipe(1, "uppercase"); + $r3$.Δi18nAttributes(2, $_c0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(1, 0, ctx.valueA))); - $r3$.ɵi18nApply(2); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(1, 0, ctx.valueA))); + $r3$.Δi18nApply(2); } } `; @@ -430,18 +430,18 @@ describe('i18n support in the view compiler', () => { const $_c1$ = ["title", $MSG_EXTERNAL_8538466649243975456$$APP_SPEC_TS__1$]; function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵpipe(2, "uppercase"); - $r3$.ɵi18nAttributes(3, $_c1$); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStart(1, "div"); + $r3$.Δpipe(2, "uppercase"); + $r3$.Δi18nAttributes(3, $_c1$); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { const $outer_r1$ = ctx.$implicit; - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(2, 0, $outer_r1$))); - $r3$.ɵi18nApply(3); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(2, 0, $outer_r1$))); + $r3$.Δi18nApply(3); } } … @@ -449,11 +449,11 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_div_0_Template, 4, 3, "div", $_c0$); + $r3$.Δtemplate(0, MyComponent_div_0_Template, 4, 3, "div", $_c0$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "ngForOf", $r3$.ɵbind(ctx.items)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "ngForOf", $r3$.Δbind(ctx.items)); } } `; @@ -518,25 +518,25 @@ describe('i18n support in the view compiler', () => { vars: 8, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c0$); - $r3$.ɵpipe(1, "uppercase"); - $r3$.ɵi18nAttributes(2, $_c1$); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(3, "div", $_c2$); - $r3$.ɵi18nAttributes(4, $_c3$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c0$); + $r3$.Δpipe(1, "uppercase"); + $r3$.Δi18nAttributes(2, $_c1$); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(3, "div", $_c2$); + $r3$.Δi18nAttributes(4, $_c3$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(1, 0, ctx.valueA))); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueB)); - $r3$.ɵi18nApply(2); - $r3$.ɵselect(3); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueA)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueB)); - $r3$.ɵi18nExp($r3$.ɵbind((ctx.valueA + ctx.valueB))); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueC)); - $r3$.ɵi18nApply(4); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(1, 0, ctx.valueA))); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueB)); + $r3$.Δi18nApply(2); + $r3$.Δselect(3); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueA)); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueB)); + $r3$.Δi18nExp($r3$.Δbind((ctx.valueA + ctx.valueB))); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueC)); + $r3$.Δi18nApply(4); } } `; @@ -563,18 +563,18 @@ describe('i18n support in the view compiler', () => { const $_c1$ = ["title", $MSG_EXTERNAL_8538466649243975456$$APP_SPEC_TS__1$]; function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵpipe(2, "uppercase"); - $r3$.ɵi18nAttributes(3, $_c1$); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStart(1, "div"); + $r3$.Δpipe(2, "uppercase"); + $r3$.Δi18nAttributes(3, $_c1$); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { const $outer_r1$ = ctx.$implicit; - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(2, 0, $outer_r1$))); - $r3$.ɵi18nApply(3); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(2, 0, $outer_r1$))); + $r3$.Δi18nApply(3); } } … @@ -582,11 +582,11 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_div_0_Template, 4, 3, "div", $_c0$); + $r3$.Δtemplate(0, MyComponent_div_0_Template, 4, 3, "div", $_c0$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "ngForOf", $r3$.ɵbind(ctx.items)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "ngForOf", $r3$.Δbind(ctx.items)); } } `; @@ -610,10 +610,10 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nAttributes(1, $_c0$); - $r3$.ɵi18n(2, $MSG_EXTERNAL_4969674997806975147$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nAttributes(1, $_c0$); + $r3$.Δi18n(2, $MSG_EXTERNAL_4969674997806975147$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } } `; @@ -656,9 +656,9 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "div"); - $r3$.ɵelement(1, "div"); - $r3$.ɵelement(2, "div"); + $r3$.Δelement(0, "div"); + $r3$.Δelement(1, "div"); + $r3$.Δelement(2, "div"); } } `; @@ -698,21 +698,21 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(2, "div"); - $r3$.ɵtext(3, "My non-i18n block #1"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(4, "div"); - $r3$.ɵi18n(5, $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_1$); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(6, "div"); - $r3$.ɵtext(7, "My non-i18n block #2"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(8, "div"); - $r3$.ɵi18n(9, $MSG_EXTERNAL_5023003143537152794$$APP_SPEC_TS_2$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(2, "div"); + $r3$.Δtext(3, "My non-i18n block #1"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(4, "div"); + $r3$.Δi18n(5, $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_1$); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(6, "div"); + $r3$.Δtext(7, "My non-i18n block #2"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(8, "div"); + $r3$.Δi18n(9, $MSG_EXTERNAL_5023003143537152794$$APP_SPEC_TS_2$); + $r3$.ΔelementEnd(); } } `; @@ -734,14 +734,14 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_2817319788724342848$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_2817319788724342848$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueA)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueA)); + $r3$.Δi18nApply(1); } } `; @@ -761,14 +761,14 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_6749967533321674787$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_6749967533321674787$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueA)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueA)); + $r3$.Δi18nApply(1); } } `; @@ -791,16 +791,16 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_1482713963707913023$$APP_SPEC_TS_0$); - $r3$.ɵpipe(2, "async"); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_1482713963707913023$$APP_SPEC_TS_0$); + $r3$.Δpipe(2, "async"); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(2, 2, ctx.valueA))); - $r3$.ɵi18nExp($r3$.ɵbind(((ctx.valueA == null) ? null : ((ctx.valueA.a == null) ? null : ctx.valueA.a.b)))); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(2, 2, ctx.valueA))); + $r3$.Δi18nExp($r3$.Δbind(((ctx.valueA == null) ? null : ((ctx.valueA.a == null) ? null : ctx.valueA.a.b)))); + $r3$.Δi18nApply(1); } } `; @@ -829,27 +829,27 @@ describe('i18n support in the view compiler', () => { vars: 5, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_572579892698764378$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(2, "div"); - $r3$.ɵi18n(3, $MSG_EXTERNAL_609623417156596326$$APP_SPEC_TS_1$); - $r3$.ɵpipe(4, "uppercase"); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(5, "div"); - $r3$.ɵi18n(6, $MSG_EXTERNAL_3998119318957372120$$APP_SPEC_TS_2$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_572579892698764378$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(2, "div"); + $r3$.Δi18n(3, $MSG_EXTERNAL_609623417156596326$$APP_SPEC_TS_1$); + $r3$.Δpipe(4, "uppercase"); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(5, "div"); + $r3$.Δi18n(6, $MSG_EXTERNAL_3998119318957372120$$APP_SPEC_TS_2$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.one)); - $r3$.ɵi18nApply(1); - $r3$.ɵselect(3); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(4, 3, ctx.two))); - $r3$.ɵi18nApply(3); - $r3$.ɵselect(6); - $r3$.ɵi18nExp($r3$.ɵbind(((ctx.three + ctx.four) + ctx.five))); - $r3$.ɵi18nApply(6); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.one)); + $r3$.Δi18nApply(1); + $r3$.Δselect(3); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(4, 3, ctx.two))); + $r3$.Δi18nApply(3); + $r3$.Δselect(6); + $r3$.Δi18nExp($r3$.Δbind(((ctx.three + ctx.four) + ctx.five))); + $r3$.Δi18nApply(6); } } `; @@ -889,36 +889,36 @@ describe('i18n support in the view compiler', () => { "closeTagSpan": "\uFFFD/#8\uFFFD", "closeTagDiv": "[\uFFFD/#7\uFFFD|\uFFFD/#6\uFFFD]" }); - const $I18N_EXTERNAL_5788821996131681377$$APP_SPEC_TS_1$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_5788821996131681377$$APP_SPEC_TS_1$); + const $I18N_EXTERNAL_5788821996131681377$$APP_SPEC_TS_1$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_5788821996131681377$$APP_SPEC_TS_1$); … consts: 9, vars: 5, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_7905233330103651696$$APP_SPEC_TS_0$); - $r3$.ɵelement(2, "span"); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(3, "div"); - $r3$.ɵi18nStart(4, $I18N_EXTERNAL_5788821996131681377$$APP_SPEC_TS_1$); - $r3$.ɵpipe(5, "uppercase"); - $r3$.ɵelementStart(6, "div"); - $r3$.ɵelementStart(7, "div"); - $r3$.ɵelement(8, "span"); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_7905233330103651696$$APP_SPEC_TS_0$); + $r3$.Δelement(2, "span"); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(3, "div"); + $r3$.Δi18nStart(4, $I18N_EXTERNAL_5788821996131681377$$APP_SPEC_TS_1$); + $r3$.Δpipe(5, "uppercase"); + $r3$.ΔelementStart(6, "div"); + $r3$.ΔelementStart(7, "div"); + $r3$.Δelement(8, "span"); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.one)); - $r3$.ɵi18nApply(1); - $r3$.ɵselect(4); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(5, 3, ctx.two))); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.nestedInBlockTwo)); - $r3$.ɵi18nApply(4); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.one)); + $r3$.Δi18nApply(1); + $r3$.Δselect(4); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(5, 3, ctx.two))); + $r3$.Δi18nExp($r3$.Δbind(ctx.nestedInBlockTwo)); + $r3$.Δi18nApply(4); } } `; @@ -965,34 +965,34 @@ describe('i18n support in the view compiler', () => { vars: 7, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_4446430594603971069$$APP_SPEC_TS_0$); - $r3$.ɵelementStart(2, "span"); - $r3$.ɵi18nAttributes(3, $_c0$); - $r3$.ɵelementEnd(); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(4, "div"); - $r3$.ɵi18nStart(5, $MSG_EXTERNAL_2778714953278357902$$APP_SPEC_TS_3$); - $r3$.ɵpipe(6, "uppercase"); - $r3$.ɵelementStart(7, "span"); - $r3$.ɵi18nAttributes(8, $_c1$); - $r3$.ɵelementEnd(); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_4446430594603971069$$APP_SPEC_TS_0$); + $r3$.ΔelementStart(2, "span"); + $r3$.Δi18nAttributes(3, $_c0$); + $r3$.ΔelementEnd(); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(4, "div"); + $r3$.Δi18nStart(5, $MSG_EXTERNAL_2778714953278357902$$APP_SPEC_TS_3$); + $r3$.Δpipe(6, "uppercase"); + $r3$.ΔelementStart(7, "span"); + $r3$.Δi18nAttributes(8, $_c1$); + $r3$.ΔelementEnd(); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(2); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueB)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueC)); - $r3$.ɵi18nApply(3); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueA)); - $r3$.ɵi18nApply(1); - $r3$.ɵselect(7); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.valueE)); - $r3$.ɵi18nApply(8); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(6, 5, ctx.valueD))); - $r3$.ɵi18nApply(5); + $r3$.Δselect(2); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueB)); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueC)); + $r3$.Δi18nApply(3); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueA)); + $r3$.Δi18nApply(1); + $r3$.Δselect(7); + $r3$.Δi18nExp($r3$.Δbind(ctx.valueE)); + $r3$.Δi18nApply(8); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(6, 5, ctx.valueD))); + $r3$.Δi18nApply(5); } } `; @@ -1026,21 +1026,21 @@ describe('i18n support in the view compiler', () => { … function MyComponent_div_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵi18nStart(2, $MSG_EXTERNAL_7679414751795588050$$APP_SPEC_TS__1$); - $r3$.ɵelement(3, "div"); - $r3$.ɵpipe(4, "uppercase"); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStart(1, "div"); + $r3$.Δi18nStart(2, $MSG_EXTERNAL_7679414751795588050$$APP_SPEC_TS__1$); + $r3$.Δelement(3, "div"); + $r3$.Δpipe(4, "uppercase"); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(2); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.valueA)); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(4, 2, $ctx_r0$.valueB))); - $r3$.ɵi18nApply(2); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(2); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.valueA)); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(4, 2, $ctx_r0$.valueB))); + $r3$.Δi18nApply(2); } } … @@ -1048,14 +1048,14 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵtext(1, " Some content "); - $r3$.ɵtemplate(2, MyComponent_div_2_Template, 5, 4, "div", $_c0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δtext(1, " Some content "); + $r3$.Δtemplate(2, MyComponent_div_2_Template, 5, 4, "div", $_c0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(2); - $r3$.ɵelementProperty(2, "ngIf", $r3$.ɵbind(ctx.visible)); + $r3$.Δselect(2); + $r3$.ΔelementProperty(2, "ngIf", $r3$.Δbind(ctx.visible)); } } `; @@ -1076,7 +1076,7 @@ describe('i18n support in the view compiler', () => { const $_c2$ = ["src", "logo.png", ${AttributeMarker.Bindings}, "title", ${AttributeMarker.Template}, "ngIf"]; function MyComponent_img_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "img", $_c0$); + $r3$.Δelement(0, "img", $_c0$); } } const $MSG_EXTERNAL_2367729185105559721$ = goog.getMsg("App logo #{$interpolation}", { @@ -1085,15 +1085,15 @@ describe('i18n support in the view compiler', () => { const $_c3$ = ["title", $MSG_EXTERNAL_2367729185105559721$]; function MyComponent_img_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "img", $_c0$); - $r3$.ɵi18nAttributes(1, $_c3$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "img", $_c0$); + $r3$.Δi18nAttributes(1, $_c3$); + $r3$.ΔelementEnd(); } if (rf & 2) { - const $ctx_r1$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r1$.id)); - $r3$.ɵi18nApply(1); + const $ctx_r1$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r1$.id)); + $r3$.Δi18nApply(1); } } … @@ -1101,15 +1101,15 @@ describe('i18n support in the view compiler', () => { vars: 2, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelement(0, "img", $_c0$); - $r3$.ɵtemplate(1, MyComponent_img_1_Template, 1, 0, "img", $_c1$); - $r3$.ɵtemplate(2, MyComponent_img_2_Template, 2, 1, "img", $_c2$); + $r3$.Δelement(0, "img", $_c0$); + $r3$.Δtemplate(1, MyComponent_img_1_Template, 1, 0, "img", $_c1$); + $r3$.Δtemplate(2, MyComponent_img_2_Template, 2, 1, "img", $_c2$); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵelementProperty(1, "ngIf", $r3$.ɵbind(ctx.visible)); - $r3$.ɵselect(2); - $r3$.ɵelementProperty(2, "ngIf", $r3$.ɵbind(ctx.visible)); + $r3$.Δselect(1); + $r3$.ΔelementProperty(1, "ngIf", $r3$.Δbind(ctx.visible)); + $r3$.Δselect(2); + $r3$.ΔelementProperty(2, "ngIf", $r3$.Δbind(ctx.visible)); } } `; @@ -1146,38 +1146,38 @@ describe('i18n support in the view compiler', () => { const $_c0$ = [${AttributeMarker.Template}, "ngIf"]; function MyComponent_div_2_div_4_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$, 2); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵelement(2, "div"); - $r3$.ɵelementEnd(); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$, 2); + $r3$.ΔelementStart(1, "div"); + $r3$.Δelement(2, "div"); + $r3$.ΔelementEnd(); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r2$ = $r3$.ɵnextContext(2); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r2$.valueC)); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r2$.valueD)); - $r3$.ɵi18nApply(0); + const $ctx_r2$ = $r3$.ΔnextContext(2); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r2$.valueC)); + $r3$.Δi18nExp($r3$.Δbind($ctx_r2$.valueD)); + $r3$.Δi18nApply(0); } } function MyComponent_div_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$, 1); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵelementStart(2, "div"); - $r3$.ɵpipe(3, "uppercase"); - $r3$.ɵtemplate(4, MyComponent_div_2_div_4_Template, 3, 2, "div", $_c1$); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$, 1); + $r3$.ΔelementStart(1, "div"); + $r3$.ΔelementStart(2, "div"); + $r3$.Δpipe(3, "uppercase"); + $r3$.Δtemplate(4, MyComponent_div_2_div_4_Template, 3, 2, "div", $_c1$); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(4); - $r3$.ɵelementProperty(4, "ngIf", $r3$.ɵbind($ctx_r0$.exists)); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.valueA)); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(3, 3, $ctx_r0$.valueB))); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(4); + $r3$.ΔelementProperty(4, "ngIf", $r3$.Δbind($ctx_r0$.exists)); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.valueA)); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(3, 3, $ctx_r0$.valueB))); + $r3$.Δi18nApply(0); } } const $MSG_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$ = goog.getMsg(" Some content {$startTagDiv_2} Some other content {$interpolation} {$startTagDiv} More nested levels with bindings {$interpolation_1} {$startTagDiv_1} Content inside sub-template {$interpolation_2} {$startTagDiv} Bottom level element {$interpolation_3} {$closeTagDiv}{$closeTagDiv}{$closeTagDiv}{$closeTagDiv}{$startTagDiv_3} Some other content {$interpolation_4} {$startTagDiv} More nested levels with bindings {$interpolation_5} {$closeTagDiv}{$closeTagDiv}", { @@ -1193,22 +1193,22 @@ describe('i18n support in the view compiler', () => { "interpolation_4": "\uFFFD0:3\uFFFD", "interpolation_5": "\uFFFD1:3\uFFFD" }); - const $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$); + const $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$); function MyComponent_div_3_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$, 3); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵelement(2, "div"); - $r3$.ɵpipe(3, "uppercase"); - $r3$.ɵelementEnd(); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$, 3); + $r3$.ΔelementStart(1, "div"); + $r3$.Δelement(2, "div"); + $r3$.Δpipe(3, "uppercase"); + $r3$.ΔelementEnd(); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r1$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind(($ctx_r1$.valueE + $ctx_r1$.valueF))); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(3, 2, $ctx_r1$.valueG))); - $r3$.ɵi18nApply(0); + const $ctx_r1$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind(($ctx_r1$.valueE + $ctx_r1$.valueF))); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(3, 2, $ctx_r1$.valueG))); + $r3$.Δi18nApply(0); } } … @@ -1216,18 +1216,18 @@ describe('i18n support in the view compiler', () => { vars: 2, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$); - $r3$.ɵtemplate(2, MyComponent_div_2_Template, 5, 5, "div", $_c1$); - $r3$.ɵtemplate(3, MyComponent_div_3_Template, 4, 4, "div", $_c1$); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $I18N_EXTERNAL_1221890473527419724$$APP_SPEC_TS_0$); + $r3$.Δtemplate(2, MyComponent_div_2_Template, 5, 5, "div", $_c1$); + $r3$.Δtemplate(3, MyComponent_div_3_Template, 4, 4, "div", $_c1$); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(2); - $r3$.ɵelementProperty(2, "ngIf", $r3$.ɵbind(ctx.visible)); - $r3$.ɵselect(3); - $r3$.ɵelementProperty(3, "ngIf", $r3$.ɵbind(!ctx.visible)); + $r3$.Δselect(2); + $r3$.ΔelementProperty(2, "ngIf", $r3$.Δbind(ctx.visible)); + $r3$.Δselect(3); + $r3$.ΔelementProperty(3, "ngIf", $r3$.Δbind(!ctx.visible)); } } `; @@ -1250,17 +1250,17 @@ describe('i18n support in the view compiler', () => { … function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_119975189388320493$$APP_SPEC_TS__1$); - $r3$.ɵelement(2, "span"); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_119975189388320493$$APP_SPEC_TS__1$); + $r3$.Δelement(2, "span"); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.valueA)); - $r3$.ɵi18nApply(1); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.valueA)); + $r3$.Δi18nApply(1); } } … @@ -1268,11 +1268,11 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_div_0_Template, 3, 1, "div", $_c0$); + $r3$.Δtemplate(0, MyComponent_div_0_Template, 3, 1, "div", $_c0$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "ngIf", $r3$.ɵbind(ctx.visible)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "ngIf", $r3$.Δbind(ctx.visible)); } } `; @@ -1291,10 +1291,10 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c0$); - $r3$.ɵlistener("click", function MyComponent_Template_div_click_0_listener($event) { return ctx.onClick(); }); - $r3$.ɵi18n(1, $MSG_EXTERNAL_3902961887793684628$$APP_SPEC_TS_1$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c0$); + $r3$.Δlistener("click", function MyComponent_Template_div_click_0_listener($event) { return ctx.onClick(); }); + $r3$.Δi18n(1, $MSG_EXTERNAL_3902961887793684628$$APP_SPEC_TS_1$); + $r3$.ΔelementEnd(); } } `; @@ -1314,9 +1314,9 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } } `; @@ -1331,7 +1331,7 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); - const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); … @@ -1339,14 +1339,14 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.age)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.age)); + $r3$.Δi18nApply(1); } } `; @@ -1365,16 +1365,16 @@ describe('i18n support in the view compiler', () => { const $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS__1$ = goog.getMsg("My i18n block #1"); function MyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18n(0, $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS__1$); + $r3$.Δi18n(0, $MSG_EXTERNAL_4890179241114413722$$APP_SPEC_TS__1$); } } … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template"); - $r3$.ɵelementContainerStart(1); - $r3$.ɵi18n(2, $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_0$); - $r3$.ɵelementContainerEnd(); + $r3$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template"); + $r3$.ΔelementContainerStart(1); + $r3$.Δi18n(2, $MSG_EXTERNAL_2413150872298537152$$APP_SPEC_TS_0$); + $r3$.ΔelementContainerEnd(); } } `; @@ -1398,12 +1398,12 @@ describe('i18n support in the view compiler', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "span", $_c0$); - $r3$.ɵi18n(1, $MSG_EXTERNAL_5295701706185791735$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(2, "span", $_c1$); - $r3$.ɵi18n(3, $MSG_EXTERNAL_4722270221386399294$$APP_SPEC_TS_2$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "span", $_c0$); + $r3$.Δi18n(1, $MSG_EXTERNAL_5295701706185791735$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(2, "span", $_c1$); + $r3$.Δi18n(3, $MSG_EXTERNAL_4722270221386399294$$APP_SPEC_TS_2$); + $r3$.ΔelementEnd(); } } `; @@ -1427,15 +1427,15 @@ describe('i18n support in the view compiler', () => { vars: 3, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementContainerStart(0); - $r3$.ɵi18n(1, $MSG_EXTERNAL_355394464191978948$$APP_SPEC_TS_0$); - $r3$.ɵpipe(2, "uppercase"); - $r3$.ɵelementContainerEnd(); + $r3$.ΔelementContainerStart(0); + $r3$.Δi18n(1, $MSG_EXTERNAL_355394464191978948$$APP_SPEC_TS_0$); + $r3$.Δpipe(2, "uppercase"); + $r3$.ΔelementContainerEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(2, 1, ctx.valueA))); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(2, 1, ctx.valueA))); + $r3$.Δi18nApply(1); } } `; @@ -1454,13 +1454,13 @@ describe('i18n support in the view compiler', () => { }); function MyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18n(0, $MSG_EXTERNAL_355394464191978948$$APP_SPEC_TS__0$); - $r3$.ɵpipe(1, "uppercase"); + $r3$.Δi18n(0, $MSG_EXTERNAL_355394464191978948$$APP_SPEC_TS__0$); + $r3$.Δpipe(1, "uppercase"); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(1, 1, $ctx_r0$.valueA))); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(1, 1, $ctx_r0$.valueA))); + $r3$.Δi18nApply(0); } } … @@ -1468,7 +1468,7 @@ describe('i18n support in the view compiler', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_ng_template_0_Template, 2, 3, "ng-template"); + $r3$.Δtemplate(0, MyComponent_ng_template_0_Template, 2, 3, "ng-template"); } } `; @@ -1495,14 +1495,14 @@ describe('i18n support in the view compiler', () => { }); function MyComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18n(0, $MSG_EXTERNAL_702706566400598764$$APP_SPEC_TS_0$, 1); - $r3$.ɵpipe(1, "uppercase"); + $r3$.Δi18n(0, $MSG_EXTERNAL_702706566400598764$$APP_SPEC_TS_0$, 1); + $r3$.Δpipe(1, "uppercase"); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(1, 1, $ctx_r0$.valueA))); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(1, 1, $ctx_r0$.valueA))); + $r3$.Δi18nApply(0); } } … @@ -1510,19 +1510,19 @@ describe('i18n support in the view compiler', () => { vars: 3, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_702706566400598764$$APP_SPEC_TS_0$); - $r3$.ɵtemplate(2, MyComponent_ng_template_2_Template, 2, 3, "ng-template"); - $r3$.ɵelementContainerStart(3); - $r3$.ɵpipe(4, "uppercase"); - $r3$.ɵelementContainerEnd(); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_702706566400598764$$APP_SPEC_TS_0$); + $r3$.Δtemplate(2, MyComponent_ng_template_2_Template, 2, 3, "ng-template"); + $r3$.ΔelementContainerStart(3); + $r3$.Δpipe(4, "uppercase"); + $r3$.ΔelementContainerEnd(); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(4, 1, ctx.valueB))); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(4, 1, ctx.valueB))); + $r3$.Δi18nApply(1); } } `; @@ -1538,22 +1538,22 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); - const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$, { + const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); function MyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18n(0, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$); + $r3$.Δi18n(0, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS__1$); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.gender)); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.gender)); + $r3$.Δi18nApply(0); } } … @@ -1561,15 +1561,15 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_ng_template_0_Template, 1, 1, "ng-template"); - $r3$.ɵelementContainerStart(1); - $r3$.ɵi18n(2, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$); - $r3$.ɵelementContainerEnd(); + $r3$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 1, "ng-template"); + $r3$.ΔelementContainerStart(1); + $r3$.Δi18n(2, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$); + $r3$.ΔelementContainerEnd(); } if (rf & 2) { - $r3$.ɵselect(2); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.age)); - $r3$.ɵi18nApply(2); + $r3$.Δselect(2); + $r3$.Δi18nExp($r3$.Δbind(ctx.age)); + $r3$.Δi18nApply(2); } } `; @@ -1595,26 +1595,26 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` function MyComponent_ng_template_2_ng_template_2_ng_template_1_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18n(0, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$, 3); + $r3$.Δi18n(0, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$, 3); } if (rf & 2) { - const $ctx_r2$ = $r3$.ɵnextContext(3); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r2$.valueC)); - $r3$.ɵi18nApply(0); + const $ctx_r2$ = $r3$.ΔnextContext(3); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r2$.valueC)); + $r3$.Δi18nApply(0); } } function MyComponent_ng_template_2_ng_template_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$, 2); - $r3$.ɵtemplate(1, MyComponent_ng_template_2_ng_template_2_ng_template_1_Template, 1, 1, "ng-template"); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$, 2); + $r3$.Δtemplate(1, MyComponent_ng_template_2_ng_template_2_ng_template_1_Template, 1, 1, "ng-template"); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r1$ = $r3$.ɵnextContext(2); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r1$.valueB)); - $r3$.ɵi18nApply(0); + const $ctx_r1$ = $r3$.ΔnextContext(2); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r1$.valueB)); + $r3$.Δi18nApply(0); } } const $MSG_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$ = goog.getMsg("{$startTagNgTemplate} Template A: {$interpolation} {$startTagNgTemplate} Template B: {$interpolation_1} {$startTagNgTemplate} Template C: {$interpolation_2} {$closeTagNgTemplate}{$closeTagNgTemplate}{$closeTagNgTemplate}", { @@ -1624,19 +1624,19 @@ describe('i18n support in the view compiler', () => { "interpolation_1": "\uFFFD0:2\uFFFD", "interpolation_2": "\uFFFD0:3\uFFFD" }); - const $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$); + const $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$); function MyComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$, 1); - $r3$.ɵpipe(1, "uppercase"); - $r3$.ɵtemplate(2, MyComponent_ng_template_2_ng_template_2_Template, 2, 1, "ng-template"); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$, 1); + $r3$.Δpipe(1, "uppercase"); + $r3$.Δtemplate(2, MyComponent_ng_template_2_ng_template_2_Template, 2, 1, "ng-template"); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($r3$.ɵpipeBind1(1, 1, $ctx_r0$.valueA))); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($r3$.ΔpipeBind1(1, 1, $ctx_r0$.valueA))); + $r3$.Δi18nApply(0); } } … @@ -1644,11 +1644,11 @@ describe('i18n support in the view compiler', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$); - $r3$.ɵtemplate(2, MyComponent_ng_template_2_Template, 3, 3, "ng-template"); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $I18N_EXTERNAL_2051477021417799640$$APP_SPEC_TS_0$); + $r3$.Δtemplate(2, MyComponent_ng_template_2_Template, 3, 3, "ng-template"); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } } `; @@ -1664,22 +1664,22 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); - const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$, { + const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); function MyComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18n(0, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$); + $r3$.Δi18n(0, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__1$); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.age)); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.age)); + $r3$.Δi18nApply(0); } } … @@ -1687,15 +1687,15 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementContainerStart(0); - $r3$.ɵi18n(1, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$); - $r3$.ɵelementContainerEnd(); - $r3$.ɵtemplate(2, MyComponent_ng_template_2_Template, 1, 1, "ng-template"); + $r3$.ΔelementContainerStart(0); + $r3$.Δi18n(1, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$); + $r3$.ΔelementContainerEnd(); + $r3$.Δtemplate(2, MyComponent_ng_template_2_Template, 1, 1, "ng-template"); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nApply(1); } } `; @@ -1723,20 +1723,20 @@ describe('i18n support in the view compiler', () => { }); function MyComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $MSG_EXTERNAL_461986953980355147$$APP_SPEC_TS__2$); - $r3$.ɵelement(1, "img", $_c0$); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $MSG_EXTERNAL_461986953980355147$$APP_SPEC_TS__2$); + $r3$.Δelement(1, "img", $_c0$); + $r3$.Δi18nEnd(); } } … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementContainerStart(0); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_4891196282781544695$$APP_SPEC_TS_0$); - $r3$.ɵelement(2, "img", $_c0$); - $r3$.ɵi18nEnd(); - $r3$.ɵelementContainerEnd(); - $r3$.ɵtemplate(3, MyComponent_ng_template_3_Template, 2, 0, "ng-template"); + $r3$.ΔelementContainerStart(0); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_4891196282781544695$$APP_SPEC_TS_0$); + $r3$.Δelement(2, "img", $_c0$); + $r3$.Δi18nEnd(); + $r3$.ΔelementContainerEnd(); + $r3$.Δtemplate(3, MyComponent_ng_template_3_Template, 2, 0, "ng-template"); } } `; @@ -1801,13 +1801,13 @@ describe('i18n support in the view compiler', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtext(0, "\n "); - $r3$.ɵelementStart(1, "div"); - $r3$.ɵi18nStart(2, $MSG_EXTERNAL_963542717423364282$$APP_SPEC_TS_0$); - $r3$.ɵelement(3, "span"); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); - $r3$.ɵtext(4, "\n "); + $r3$.Δtext(0, "\n "); + $r3$.ΔelementStart(1, "div"); + $r3$.Δi18nStart(2, $MSG_EXTERNAL_963542717423364282$$APP_SPEC_TS_0$); + $r3$.Δelement(3, "span"); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); + $r3$.Δtext(4, "\n "); } } `; @@ -1824,7 +1824,7 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); … @@ -1832,14 +1832,14 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nApply(1); } } `; @@ -1854,7 +1854,7 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_4166854826696768832$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, single {'single quotes'} double {\"double quotes\"} other {other}}"); - const $I18N_EXTERNAL_4166854826696768832$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_4166854826696768832$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_4166854826696768832$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_4166854826696768832$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); `; @@ -1869,18 +1869,18 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); - const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); + const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); … consts: 1, vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18n(0, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$); + $r3$.Δi18n(0, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS_0$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.age)); - $r3$.ɵi18nApply(0); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind(ctx.age)); + $r3$.Δi18nApply(0); } } `; @@ -1901,50 +1901,50 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $_c0$ = ["title", "icu only", ${AttributeMarker.Template}, "ngIf"]; const $_c1$ = ["title", "icu and text", ${AttributeMarker.Template}, "ngIf"]; const $_c2$ = ["title", "icu only"]; const $MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {other}}"); - const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$, { + const $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); function MyComponent_div_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c2$); - $r3$.ɵi18n(1, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c2$); + $r3$.Δi18n(1, $I18N_EXTERNAL_8806993169187953163$$APP_SPEC_TS__3$); + $r3$.ΔelementEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.age)); - $r3$.ɵi18nApply(1); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.age)); + $r3$.Δi18nApply(1); } } const $_c3$ = ["title", "icu and text"]; const $MSG_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$ = goog.getMsg("{VAR_SELECT, select, 0 {no emails} 1 {one email} other {{$interpolation} emails}}", { "interpolation": "\uFFFD1\uFFFD" }); - const $I18N_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$, { + const $I18N_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); function MyComponent_div_3_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c3$); - $r3$.ɵtext(1, " You have "); - $r3$.ɵi18n(2, $I18N_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$); - $r3$.ɵtext(3, ". "); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c3$); + $r3$.Δtext(1, " You have "); + $r3$.Δi18n(2, $I18N_EXTERNAL_1922743304863699161$$APP_SPEC_TS__5$); + $r3$.Δtext(3, ". "); + $r3$.ΔelementEnd(); } if (rf & 2) { - const $ctx_r1$ = $r3$.ɵnextContext(); - $r3$.ɵselect(2); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r1$.count)); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r1$.count)); - $r3$.ɵi18nApply(2); + const $ctx_r1$ = $r3$.ΔnextContext(); + $r3$.Δselect(2); + $r3$.Δi18nExp($r3$.Δbind($ctx_r1$.count)); + $r3$.Δi18nExp($r3$.Δbind($ctx_r1$.count)); + $r3$.Δi18nApply(2); } } … @@ -1952,20 +1952,20 @@ describe('i18n support in the view compiler', () => { vars: 3, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); - $r3$.ɵtemplate(2, MyComponent_div_2_Template, 2, 1, "div", $_c0$); - $r3$.ɵtemplate(3, MyComponent_div_3_Template, 4, 2, "div", $_c1$); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); + $r3$.Δtemplate(2, MyComponent_div_2_Template, 2, 1, "div", $_c0$); + $r3$.Δtemplate(3, MyComponent_div_3_Template, 4, 2, "div", $_c1$); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nApply(1); - $r3$.ɵselect(2); - $r3$.ɵelementProperty(2, "ngIf", $r3$.ɵbind(ctx.visible)); - $r3$.ɵselect(3); - $r3$.ɵelementProperty(3, "ngIf", $r3$.ɵbind(ctx.available)); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nApply(1); + $r3$.Δselect(2); + $r3$.ΔelementProperty(2, "ngIf", $r3$.Δbind(ctx.visible)); + $r3$.Δselect(3); + $r3$.ΔelementProperty(3, "ngIf", $r3$.Δbind(ctx.available)); } } `; @@ -1982,19 +1982,19 @@ describe('i18n support in the view compiler', () => { const $MSG_EXTERNAL_2949673783721159566$$RAW$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} other {{$interpolation}}}", { "interpolation": "\uFFFD1\uFFFD" }); - const $MSG_EXTERNAL_2949673783721159566$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_2949673783721159566$$RAW$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); + const $MSG_EXTERNAL_2949673783721159566$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_2949673783721159566$$RAW$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_2949673783721159566$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_2949673783721159566$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.age)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.other)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.age)); + $r3$.Δi18nExp($r3$.Δbind(ctx.other)); + $r3$.Δi18nApply(1); } } `; @@ -2019,7 +2019,7 @@ describe('i18n support in the view compiler', () => { "startTagDiv": "
", "closeTagDiv": "
" }); - const $I18N_EXTERNAL_2417296354340576868$$APP_SPEC_TS_1$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_2417296354340576868$$APP_SPEC_TS_1$, { + const $I18N_EXTERNAL_2417296354340576868$$APP_SPEC_TS_1$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_2417296354340576868$$APP_SPEC_TS_1$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $_c0$ = ["other", 1, "other", true]; @@ -2037,19 +2037,19 @@ describe('i18n support in the view compiler', () => { vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_5791551881115084301$$APP_SPEC_TS_0$); - $r3$.ɵelement(2, "b"); - $r3$.ɵelementStart(3, "div"); - $r3$.ɵelementStyling($_c0$); - $r3$.ɵelement(4, "i"); - $r3$.ɵelementEnd(); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_5791551881115084301$$APP_SPEC_TS_0$); + $r3$.Δelement(2, "b"); + $r3$.ΔelementStart(3, "div"); + $r3$.ΔelementStyling($_c0$); + $r3$.Δelement(4, "i"); + $r3$.ΔelementEnd(); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nApply(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nApply(1); } } `; @@ -2066,7 +2066,7 @@ describe('i18n support in the view compiler', () => { const $MSG_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT, select, male {male of age: {$interpolation}} female {female} other {other}}", { "interpolation": "\uFFFD1\uFFFD" }); - const $I18N_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); … @@ -2074,15 +2074,15 @@ describe('i18n support in the view compiler', () => { vars: 2, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $I18N_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $I18N_EXTERNAL_6879461626778511059$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nExp($r3$.ɵbind(((ctx.ageA + ctx.ageB) + ctx.ageC))); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nExp($r3$.Δbind(((ctx.ageA + ctx.ageB) + ctx.ageC))); + $r3$.Δi18nApply(1); } } `; @@ -2100,11 +2100,11 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$, { + const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS_2$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other}}"); - const $I18N_EXTERNAL_7068143081688428291$$APP_SPEC_TS_2$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS_2$, { + const $I18N_EXTERNAL_7068143081688428291$$APP_SPEC_TS_2$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS_2$, { "VAR_SELECT": "\uFFFD1\uFFFD" }); const $MSG_EXTERNAL_2967249209167308918$$APP_SPEC_TS_0$ = goog.getMsg("{$icu}{$icu_1}", { @@ -2116,15 +2116,15 @@ describe('i18n support in the view compiler', () => { vars: 2, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $MSG_EXTERNAL_2967249209167308918$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $MSG_EXTERNAL_2967249209167308918$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.age)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nExp($r3$.Δbind(ctx.age)); + $r3$.Δi18nApply(1); } } `; @@ -2147,16 +2147,16 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_APP_SPEC_TS_1$ = $r3$.ɵi18nPostprocess($MSG_APP_SPEC_TS_1$, { + const $I18N_APP_SPEC_TS_1$ = $r3$.Δi18nPostprocess($MSG_APP_SPEC_TS_1$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $MSG_APP_SPEC_TS_2$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_APP_SPEC_TS_2$ = $r3$.ɵi18nPostprocess($MSG_APP_SPEC_TS_2$, { + const $I18N_APP_SPEC_TS_2$ = $r3$.Δi18nPostprocess($MSG_APP_SPEC_TS_2$, { "VAR_SELECT": "\uFFFD1\uFFFD" }); const $_c3$ = [${AttributeMarker.Template}, "ngIf"]; const $MSG_APP_SPEC_TS__4$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_APP_SPEC_TS__4$ = $r3$.ɵi18nPostprocess($MSG_APP_SPEC_TS__4$, { + const $I18N_APP_SPEC_TS__4$ = $r3$.Δi18nPostprocess($MSG_APP_SPEC_TS__4$, { "VAR_SELECT": "\uFFFD0:1\uFFFD" }); const $MSG_APP_SPEC_TS_0$ = goog.getMsg("{$icu}{$startTagDiv}{$icu}{$closeTagDiv}{$startTagDiv_1}{$icu}{$closeTagDiv}", { @@ -2165,20 +2165,20 @@ describe('i18n support in the view compiler', () => { "startTagDiv_1": "\uFFFD*3:1\uFFFD\uFFFD#1:1\uFFFD", "icu": "\uFFFDI18N_EXP_ICU\uFFFD" }); - const $I18N_APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_APP_SPEC_TS_0$, { + const $I18N_APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_APP_SPEC_TS_0$, { "ICU": [$I18N_APP_SPEC_TS_1$, $I18N_APP_SPEC_TS_2$, $I18N_APP_SPEC_TS__4$] }); function MyComponent_div_3_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $I18N_APP_SPEC_TS_0$, 1); - $r3$.ɵelement(1, "div"); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $I18N_APP_SPEC_TS_0$, 1); + $r3$.Δelement(1, "div"); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.gender)); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.gender)); + $r3$.Δi18nApply(0); } } … @@ -2186,19 +2186,19 @@ describe('i18n support in the view compiler', () => { vars: 3, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $I18N_APP_SPEC_TS_0$); - $r3$.ɵelement(2, "div"); - $r3$.ɵtemplate(3, MyComponent_div_3_Template, 2, 1, "div", $_c3$); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $I18N_APP_SPEC_TS_0$); + $r3$.Δelement(2, "div"); + $r3$.Δtemplate(3, MyComponent_div_3_Template, 2, 1, "div", $_c3$); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(3); - $r3$.ɵelementProperty(3, "ngIf", $r3$.ɵbind(ctx.visible)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(3); + $r3$.ΔelementProperty(3, "ngIf", $r3$.Δbind(ctx.visible)); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nApply(1); } } `; @@ -2222,7 +2222,7 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$ = goog.getMsg("{VAR_SELECT_1, select, male {male of age: {VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other}}} female {female} other {other}}"); - const $I18N_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD", "VAR_SELECT_1": "\uFFFD1\uFFFD" }); @@ -2231,15 +2231,15 @@ describe('i18n support in the view compiler', () => { vars: 2, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $I18N_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $I18N_EXTERNAL_343563413083115114$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.age)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.age)); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nApply(1); } } `; @@ -2262,12 +2262,12 @@ describe('i18n support in the view compiler', () => { const output = String.raw ` const $MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = goog.getMsg("{VAR_SELECT, select, male {male} female {female} other {other}}"); - const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$, { + const $I18N_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7842238767399919809$$APP_SPEC_TS_1$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $_c0$ = [${AttributeMarker.Template}, "ngIf"]; const $MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS__3$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other}}"); - const $I18N_EXTERNAL_7068143081688428291$$APP_SPEC_TS__3$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS__3$, { + const $I18N_EXTERNAL_7068143081688428291$$APP_SPEC_TS__3$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7068143081688428291$$APP_SPEC_TS__3$, { "VAR_SELECT": "\uFFFD0:1\uFFFD" }); const $MSG_EXTERNAL_1194472282609532229$$APP_SPEC_TS_0$ = goog.getMsg("{$icu}{$startTagSpan}{$icu_1}{$closeTagSpan}", { @@ -2278,15 +2278,15 @@ describe('i18n support in the view compiler', () => { }); function MyComponent_span_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $MSG_EXTERNAL_1194472282609532229$$APP_SPEC_TS_0$, 1); - $r3$.ɵelement(1, "span"); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $MSG_EXTERNAL_1194472282609532229$$APP_SPEC_TS_0$, 1); + $r3$.Δelement(1, "span"); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.age)); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.age)); + $r3$.Δi18nApply(0); } } … @@ -2294,17 +2294,17 @@ describe('i18n support in the view compiler', () => { vars: 2, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_1194472282609532229$$APP_SPEC_TS_0$); - $r3$.ɵtemplate(2, MyComponent_span_2_Template, 2, 1, "span", $_c2$); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_1194472282609532229$$APP_SPEC_TS_0$); + $r3$.Δtemplate(2, MyComponent_span_2_Template, 2, 1, "span", $_c2$); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(2); - $r3$.ɵelementProperty(2, "ngIf", $r3$.ɵbind(ctx.ageVisible)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(2); + $r3$.ΔelementProperty(2, "ngIf", $r3$.Δbind(ctx.ageVisible)); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nApply(1); } } `; @@ -2327,14 +2327,14 @@ describe('i18n support in the view compiler', () => { "interpolation": "\uFFFD1\uFFFD", "interpolation_1": "\uFFFD2\uFFFD" }); - const $I18N_EXTERNAL_7825031864601787094$$APP_SPEC_TS_1$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_7825031864601787094$$APP_SPEC_TS_1$, { + const $I18N_EXTERNAL_7825031864601787094$$APP_SPEC_TS_1$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_7825031864601787094$$APP_SPEC_TS_1$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); const $_c0$ = [${AttributeMarker.Template}, "ngIf"]; const $MSG_EXTERNAL_2310343208266678305$$APP_SPEC_TS__3$ = goog.getMsg("{VAR_SELECT, select, 10 {ten} 20 {twenty} 30 {thirty} other {other: {$interpolation}}}", { "interpolation": "\uFFFD1:1\uFFFD" }); - const $I18N_EXTERNAL_2310343208266678305$$APP_SPEC_TS__3$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_2310343208266678305$$APP_SPEC_TS__3$, { + const $I18N_EXTERNAL_2310343208266678305$$APP_SPEC_TS__3$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_2310343208266678305$$APP_SPEC_TS__3$, { "VAR_SELECT": "\uFFFD0:1\uFFFD" }); const $MSG_EXTERNAL_7186042105600518133$$APP_SPEC_TS_0$ = goog.getMsg("{$icu}{$startTagSpan}{$icu_1}{$closeTagSpan}", { @@ -2345,16 +2345,16 @@ describe('i18n support in the view compiler', () => { }); function MyComponent_span_2_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵi18nStart(0, $MSG_EXTERNAL_7186042105600518133$$APP_SPEC_TS_0$, 1); - $r3$.ɵelement(1, "span"); - $r3$.ɵi18nEnd(); + $r3$.Δi18nStart(0, $MSG_EXTERNAL_7186042105600518133$$APP_SPEC_TS_0$, 1); + $r3$.Δelement(1, "span"); + $r3$.Δi18nEnd(); } if (rf & 2) { - const $ctx_r0$ = $r3$.ɵnextContext(); - $r3$.ɵselect(0); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.age)); - $r3$.ɵi18nExp($r3$.ɵbind($ctx_r0$.otherAge)); - $r3$.ɵi18nApply(0); + const $ctx_r0$ = $r3$.ΔnextContext(); + $r3$.Δselect(0); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.age)); + $r3$.Δi18nExp($r3$.Δbind($ctx_r0$.otherAge)); + $r3$.Δi18nApply(0); } } … @@ -2362,19 +2362,19 @@ describe('i18n support in the view compiler', () => { vars: 4, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18nStart(1, $MSG_EXTERNAL_7186042105600518133$$APP_SPEC_TS_0$); - $r3$.ɵtemplate(2, MyComponent_span_2_Template, 2, 2, "span", $_c2$); - $r3$.ɵi18nEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18nStart(1, $MSG_EXTERNAL_7186042105600518133$$APP_SPEC_TS_0$); + $r3$.Δtemplate(2, MyComponent_span_2_Template, 2, 2, "span", $_c2$); + $r3$.Δi18nEnd(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(2); - $r3$.ɵelementProperty(2, "ngIf", $r3$.ɵbind(ctx.ageVisible)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.weight)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.height)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(2); + $r3$.ΔelementProperty(2, "ngIf", $r3$.Δbind(ctx.ageVisible)); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nExp($r3$.Δbind(ctx.weight)); + $r3$.Δi18nExp($r3$.Δbind(ctx.height)); + $r3$.Δi18nApply(1); } } `; @@ -2399,7 +2399,7 @@ describe('i18n support in the view compiler', () => { "phB": "\uFFFD2\uFFFD", "phC": "\uFFFD3\uFFFD" }); - const $I18N_EXTERNAL_4853189513362404940$$APP_SPEC_TS_0$ = $r3$.ɵi18nPostprocess($MSG_EXTERNAL_4853189513362404940$$APP_SPEC_TS_0$, { + const $I18N_EXTERNAL_4853189513362404940$$APP_SPEC_TS_0$ = $r3$.Δi18nPostprocess($MSG_EXTERNAL_4853189513362404940$$APP_SPEC_TS_0$, { "VAR_SELECT": "\uFFFD0\uFFFD" }); … @@ -2407,17 +2407,17 @@ describe('i18n support in the view compiler', () => { vars: 4, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵi18n(1, $I18N_EXTERNAL_4853189513362404940$$APP_SPEC_TS_0$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δi18n(1, $I18N_EXTERNAL_4853189513362404940$$APP_SPEC_TS_0$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(1); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.gender)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.weight)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.height)); - $r3$.ɵi18nExp($r3$.ɵbind(ctx.age)); - $r3$.ɵi18nApply(1); + $r3$.Δselect(1); + $r3$.Δi18nExp($r3$.Δbind(ctx.gender)); + $r3$.Δi18nExp($r3$.Δbind(ctx.weight)); + $r3$.Δi18nExp($r3$.Δbind(ctx.height)); + $r3$.Δi18nExp($r3$.Δbind(ctx.age)); + $r3$.Δi18nApply(1); } } `; diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_input_outputs_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_input_outputs_spec.ts index a801382f65..1baa56d05c 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_input_outputs_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_input_outputs_spec.ts @@ -52,7 +52,7 @@ describe('compiler compliance: listen()', () => { }; const componentDef = ` - MyComponent.ngComponentDef = IDENT.ɵdefineComponent({ + MyComponent.ngComponentDef = IDENT.ΔdefineComponent({ … inputs:{ componentInput: "componentInput", @@ -66,7 +66,7 @@ describe('compiler compliance: listen()', () => { });`; const directiveDef = ` - MyDirective.ngDirectiveDef = IDENT.ɵdefineDirective({ + MyDirective.ngDirectiveDef = IDENT.ΔdefineDirective({ … inputs:{ directiveInput: "directiveInput", diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_listener_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_listener_spec.ts index 2040b5c4b8..a5a6544408 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_listener_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_listener_spec.ts @@ -45,12 +45,12 @@ describe('compiler compliance: listen()', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $e0_attrs$); - $r3$.ɵlistener("click", function MyComponent_Template_div_click_0_listener($event) { + $r3$.ΔelementStart(0, "div", $e0_attrs$); + $r3$.Δlistener("click", function MyComponent_Template_div_click_0_listener($event) { ctx.onClick($event); return (1 == 2); }); - $r3$.ɵelementEnd(); + $r3$.ΔelementEnd(); } } `; @@ -91,11 +91,11 @@ describe('compiler compliance: listen()', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "my-app", $e0_attrs$); - $r3$.ɵlistener("click", function MyComponent_Template_my_app_click_0_listener($event) { + $r3$.ΔelementStart(0, "my-app", $e0_attrs$); + $r3$.Δlistener("click", function MyComponent_Template_my_app_click_0_listener($event) { return ctx.onClick($event); }); - $r3$.ɵelementEnd(); + $r3$.ΔelementEnd(); } } `; @@ -138,33 +138,33 @@ describe('compiler compliance: listen()', () => { function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - const $s$ = $r3$.ɵgetCurrentView(); - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStart(1, "div", $e_attrs$); - $r3$.ɵlistener("click", function MyComponent_div_0_Template_div_click_1_listener($event) { - $r3$.ɵrestoreView($s$); - const $comp$ = $r3$.ɵnextContext(); + const $s$ = $r3$.ΔgetCurrentView(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStart(1, "div", $e_attrs$); + $r3$.Δlistener("click", function MyComponent_div_0_Template_div_click_1_listener($event) { + $r3$.ΔrestoreView($s$); + const $comp$ = $r3$.ΔnextContext(); return $comp$.onClick($comp$.foo); }); - $r3$.ɵelementEnd(); - $r3$.ɵelementStart(2, "button", $e_attrs$); - $r3$.ɵlistener("click", function MyComponent_div_0_Template_button_click_2_listener($event) { - $r3$.ɵrestoreView($s$); - const $comp2$ = $r3$.ɵnextContext(); + $r3$.ΔelementEnd(); + $r3$.ΔelementStart(2, "button", $e_attrs$); + $r3$.Δlistener("click", function MyComponent_div_0_Template_button_click_2_listener($event) { + $r3$.ΔrestoreView($s$); + const $comp2$ = $r3$.ΔnextContext(); return $comp2$.onClick2($comp2$.bar); }); - $r3$.ɵelementEnd(); - $r3$.ɵelementEnd(); + $r3$.ΔelementEnd(); + $r3$.ΔelementEnd(); } } // ... template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_div_0_Template, 3, 0, "div", $c0$); + $r3$.Δtemplate(0, MyComponent_div_0_Template, 3, 0, "div", $c0$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "ngIf", $i0$.ɵbind(ctx.showing)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "ngIf", $i0$.Δbind(ctx.showing)); } } `; @@ -199,7 +199,7 @@ describe('compiler compliance: listen()', () => { const $e0_attrs$ = [${AttributeMarker.Bindings}, "click"]; const $e2_refs$ = ["user", ""]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { return new (t || MyComponent)(); }, @@ -207,16 +207,16 @@ describe('compiler compliance: listen()', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - const $s$ = $r3$.ɵgetCurrentView(); - $r3$.ɵelementStart(0, "button", $e0_attrs$); - $r3$.ɵlistener("click", function MyComponent_Template_button_click_0_listener($event) { - $r3$.ɵrestoreView($s$); - const $user$ = $r3$.ɵreference(3); + const $s$ = $r3$.ΔgetCurrentView(); + $r3$.ΔelementStart(0, "button", $e0_attrs$); + $r3$.Δlistener("click", function MyComponent_Template_button_click_0_listener($event) { + $r3$.ΔrestoreView($s$); + const $user$ = $r3$.Δreference(3); return ctx.onClick($user$.value); }); - $r3$.ɵtext(1, "Save"); - $r3$.ɵelementEnd(); - $r3$.ɵelement(2, "input", null, $e2_refs$); + $r3$.Δtext(1, "Save"); + $r3$.ΔelementEnd(); + $r3$.Δelement(2, "input", null, $e2_refs$); } }, encapsulation: 2 diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_providers_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_providers_spec.ts index 8e1138d1ea..6198a03d02 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_providers_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_providers_spec.ts @@ -46,7 +46,7 @@ describe('compiler compliance: providers', () => { const result = compile(files, angularFiles); expectEmit( result.source, - 'features: [i0.ɵProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}], [GreeterEN])],', + 'features: [i0.ΔProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}], [GreeterEN])],', 'Incorrect features'); }); @@ -79,7 +79,7 @@ describe('compiler compliance: providers', () => { const result = compile(files, angularFiles); expectEmit( result.source, - 'features: [i0.ɵProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}])],', + 'features: [i0.ΔProvidersFeature([GreeterEN, {provide: Greeter, useClass: GreeterEN}])],', 'Incorrect features'); }); @@ -111,7 +111,7 @@ describe('compiler compliance: providers', () => { const result = compile(files, angularFiles); expectEmit( - result.source, 'features: [i0.ɵProvidersFeature([], [GreeterEN])],', 'Incorrect features'); + result.source, 'features: [i0.ΔProvidersFeature([], [GreeterEN])],', 'Incorrect features'); }); it('should not emit the ProvidersFeature feature when no providers', () => { diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_spec.ts index ef9fa7a3a6..80b486a847 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_spec.ts @@ -113,7 +113,7 @@ describe('r3_view_compiler', () => { }; const bV_call = - `$r3$.ɵinterpolationV([" ",ctx.list[0]," ",ctx.list[1]," ",ctx.list[2]," ",ctx.list[3], + `$r3$.ΔinterpolationV([" ",ctx.list[0]," ",ctx.list[1]," ",ctx.list[2]," ",ctx.list[3], " ",ctx.list[4]," ",ctx.list[5]," ",ctx.list[6]," ",ctx.list[7]," ",ctx.list[8], " "])`; const result = compile(files, angularFiles); @@ -143,12 +143,12 @@ describe('r3_view_compiler', () => { const template = ` template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelement(0, "div"); + $i0$.Δelement(0, "div"); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "@attr", …); - $i0$.ɵelementProperty(0, "@binding", …); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "@attr", …); + $i0$.ΔelementProperty(0, "@binding", …); } }`; const result = compile(files, angularFiles); @@ -176,10 +176,10 @@ describe('r3_view_compiler', () => { const template = ` template: function MyApp_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "div"); + $i0$.ΔelementStart(0, "div"); … - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "@mySelector", …); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "@mySelector", …); } }`; const result = compile(files, angularFiles); diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_styling_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_styling_spec.ts index 1746eae5de..3aa7149de4 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_styling_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_styling_spec.ts @@ -95,7 +95,7 @@ describe('compiler compliance: styling', () => { }; const template = ` - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … styles: ["div.cool { color: blue; }", ":host.nice p { color: gold; }"], encapsulation: 1 @@ -128,7 +128,7 @@ describe('compiler compliance: styling', () => { }; const template = ` - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors:[["my-component"]], factory:function MyComponent_Factory(t){ @@ -170,7 +170,7 @@ describe('compiler compliance: styling', () => { }; const template = ` - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors:[["my-component"]], factory:function MyComponent_Factory(t){ @@ -215,23 +215,23 @@ describe('compiler compliance: styling', () => { const template = ` … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … consts: 3, vars: 3, template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelement(0, "div"); - $r3$.ɵelement(1, "div"); - $r3$.ɵelement(2, "div"); + $r3$.Δelement(0, "div"); + $r3$.Δelement(1, "div"); + $r3$.Δelement(2, "div"); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "@foo", $r3$.ɵbind(ctx.exp)); - $r3$.ɵselect(1); - $r3$.ɵelementProperty(1, "@bar", $r3$.ɵbind(undefined)); - $r3$.ɵselect(2); - $r3$.ɵelementProperty(2, "@baz", $r3$.ɵbind(undefined)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "@foo", $r3$.Δbind(ctx.exp)); + $r3$.Δselect(1); + $r3$.ΔelementProperty(1, "@bar", $r3$.Δbind(undefined)); + $r3$.Δselect(2); + $r3$.ΔelementProperty(2, "@baz", $r3$.Δbind(undefined)); } }, encapsulation: 2 @@ -277,19 +277,19 @@ describe('compiler compliance: styling', () => { const template = ` … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ … consts: 1, vars: 1, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵlistener("@myAnimation.start", function MyComponent_Template_div_animation_myAnimation_start_0_listener($event) { return ctx.onStart($event); }); - $r3$.ɵlistener("@myAnimation.done", function MyComponent_Template_div_animation_myAnimation_done_0_listener($event) { return ctx.onDone($event); }); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.Δlistener("@myAnimation.start", function MyComponent_Template_div_animation_myAnimation_start_0_listener($event) { return ctx.onStart($event); }); + $r3$.Δlistener("@myAnimation.done", function MyComponent_Template_div_animation_myAnimation_done_0_listener($event) { return ctx.onDone($event); }); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "@myAnimation", $r3$.ɵbind(ctx.exp)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "@myAnimation", $r3$.Δbind(ctx.exp)); } }, encapsulation: 2, @@ -340,15 +340,15 @@ describe('compiler compliance: styling', () => { }; const template = ` - MyAnimDir.ngDirectiveDef = $r3$.ɵdefineDirective({ + MyAnimDir.ngDirectiveDef = $r3$.ΔdefineDirective({ … hostBindings: function MyAnimDir_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵallocHostVars(1); - $r3$.ɵcomponentHostSyntheticListener("@myAnim.start", function MyAnimDir_animation_myAnim_start_HostBindingHandler($event) { return ctx.onStart(); }); - $r3$.ɵcomponentHostSyntheticListener("@myAnim.done", function MyAnimDir_animation_myAnim_done_HostBindingHandler($event) { return ctx.onDone(); }); + $r3$.ΔallocHostVars(1); + $r3$.ΔcomponentHostSyntheticListener("@myAnim.start", function MyAnimDir_animation_myAnim_start_HostBindingHandler($event) { return ctx.onStart(); }); + $r3$.ΔcomponentHostSyntheticListener("@myAnim.done", function MyAnimDir_animation_myAnim_done_HostBindingHandler($event) { return ctx.onDone(); }); } if (rf & 2) { - $r3$.ɵcomponentHostSyntheticProperty(elIndex, "@myAnim", $r3$.ɵbind(ctx.myAnimState), null, true); + $r3$.ΔcomponentHostSyntheticProperty(elIndex, "@myAnim", $r3$.Δbind(ctx.myAnimState), null, true); } } … @@ -384,13 +384,13 @@ describe('compiler compliance: styling', () => { const template = ` template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(null, null, $r3$.ɵdefaultStyleSanitizer); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(null, null, $r3$.ΔdefaultStyleSanitizer); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, null, $ctx$.myStyleExp); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0, null, $ctx$.myStyleExp); + $r3$.ΔelementStylingApply(0); } } `; @@ -449,13 +449,13 @@ describe('compiler compliance: styling', () => { vars: 1, template: function MyComponentWithInterpolation_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, $r3$.ɵinterpolation1("foo foo-", $ctx$.fooId, "")); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0, $r3$.Δinterpolation1("foo foo-", $ctx$.fooId, "")); + $r3$.ΔelementStylingApply(0); } } … @@ -463,13 +463,13 @@ describe('compiler compliance: styling', () => { vars: 2, template: function MyComponentWithMuchosInterpolation_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, $r3$.ɵinterpolation2("foo foo-", $ctx$.fooId, "-", $ctx$.fooUsername, "")); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0, $r3$.Δinterpolation2("foo foo-", $ctx$.fooId, "-", $ctx$.fooUsername, "")); + $r3$.ΔelementStylingApply(0); } } … @@ -477,13 +477,13 @@ describe('compiler compliance: styling', () => { vars: 0, template: function MyComponentWithoutInterpolation_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, $ctx$.exp); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0, $ctx$.exp); + $r3$.ΔelementStylingApply(0); } } `; @@ -523,7 +523,7 @@ describe('compiler compliance: styling', () => { const $_c0$ = [${AttributeMarker.Styles}, "opacity", "1", ${AttributeMarker.Bindings}, "style"]; const $_c1$ = ["width", "height"]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors:[["my-component"]], factory:function MyComponent_Factory(t){ @@ -533,17 +533,17 @@ describe('compiler compliance: styling', () => { vars: 1, template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $_c0$); - $r3$.ɵelementStyling(null, $_c1$, $r3$.ɵdefaultStyleSanitizer); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $_c0$); + $r3$.ΔelementStyling(null, $_c1$, $r3$.ΔdefaultStyleSanitizer); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, null, $ctx$.myStyleExp); - $r3$.ɵelementStyleProp(0, 0, $ctx$.myWidth); - $r3$.ɵelementStyleProp(0, 1, $ctx$.myHeight); - $r3$.ɵelementStylingApply(0); - $r3$.ɵselect(0); - $r3$.ɵelementAttribute(0, "style", $r3$.ɵbind("border-width: 10px"), $r3$.ɵsanitizeStyle); + $r3$.ΔelementStylingMap(0, null, $ctx$.myStyleExp); + $r3$.ΔelementStyleProp(0, 0, $ctx$.myWidth); + $r3$.ΔelementStyleProp(0, 1, $ctx$.myHeight); + $r3$.ΔelementStylingApply(0); + $r3$.Δselect(0); + $r3$.ΔelementAttribute(0, "style", $r3$.Δbind("border-width: 10px"), $r3$.ΔsanitizeStyle); } }, encapsulation: 2 @@ -583,7 +583,7 @@ describe('compiler compliance: styling', () => { } } - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors: [["my-component"]], factory: function MyComponent_Factory(t) { @@ -593,13 +593,13 @@ describe('compiler compliance: styling', () => { vars: 0, template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(null, _c0, $r3$.ɵdefaultStyleSanitizer); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(null, _c0, $r3$.ΔdefaultStyleSanitizer); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStyleProp(0, 0, ctx.myImage); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStyleProp(0, 0, ctx.myImage); + $r3$.ΔelementStylingApply(0); } }, encapsulation: 2 @@ -634,13 +634,13 @@ describe('compiler compliance: styling', () => { … template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(null, _c0); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(null, _c0); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStyleProp(0, 0, 12, "px"); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStyleProp(0, 0, 12, "px"); + $r3$.ΔelementStylingApply(0); } } `; @@ -675,13 +675,13 @@ describe('compiler compliance: styling', () => { const template = ` template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0,$ctx$.myClassExp); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0,$ctx$.myClassExp); + $r3$.ΔelementStylingApply(0); } } `; @@ -721,7 +721,7 @@ describe('compiler compliance: styling', () => { const $e0_attrs$ = [${AttributeMarker.Classes}, "grape", ${AttributeMarker.Bindings}, "class"]; const $e0_bindings$ = ["apple", "orange"]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors:[["my-component"]], factory:function MyComponent_Factory(t){ @@ -731,17 +731,17 @@ describe('compiler compliance: styling', () => { vars: 1, template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div", $e0_attrs$); - $r3$.ɵelementStyling($e0_bindings$); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div", $e0_attrs$); + $r3$.ΔelementStyling($e0_bindings$); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, $ctx$.myClassExp); - $r3$.ɵelementClassProp(0, 0, $ctx$.yesToApple); - $r3$.ɵelementClassProp(0, 1, $ctx$.yesToOrange); - $r3$.ɵelementStylingApply(0); - $r3$.ɵselect(0); - $r3$.ɵelementAttribute(0, "class", $r3$.ɵbind("banana")); + $r3$.ΔelementStylingMap(0, $ctx$.myClassExp); + $r3$.ΔelementClassProp(0, 0, $ctx$.yesToApple); + $r3$.ΔelementClassProp(0, 1, $ctx$.yesToOrange); + $r3$.ΔelementStylingApply(0); + $r3$.Δselect(0); + $r3$.ΔelementAttribute(0, "class", $r3$.Δbind("banana")); } }, encapsulation: 2 @@ -777,7 +777,7 @@ describe('compiler compliance: styling', () => { const template = ` const $e0_attrs$ = [${AttributeMarker.Classes}, "foo", ${AttributeMarker.Styles}, "width", "100px", ${AttributeMarker.Bindings}, "class", "style"]; … - MyComponent.ngComponentDef = $r3$.ɵdefineComponent({ + MyComponent.ngComponentDef = $r3$.ΔdefineComponent({ type: MyComponent, selectors:[["my-component"]], factory:function MyComponent_Factory(t){ @@ -787,12 +787,12 @@ describe('compiler compliance: styling', () => { vars: 2, template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelement(0, "div", $e0_attrs$); + $r3$.Δelement(0, "div", $e0_attrs$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementAttribute(0, "class", $r3$.ɵbind("round")); - $r3$.ɵelementAttribute(0, "style", $r3$.ɵbind("height:100px"), $r3$.ɵsanitizeStyle); + $r3$.Δselect(0); + $r3$.ΔelementAttribute(0, "class", $r3$.Δbind("round")); + $r3$.ΔelementAttribute(0, "style", $r3$.Δbind("height:100px"), $r3$.ΔsanitizeStyle); } }, encapsulation: 2 @@ -829,13 +829,13 @@ describe('compiler compliance: styling', () => { const template = ` template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(null, null, $r3$.ɵdefaultStyleSanitizer); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(null, null, $r3$.ΔdefaultStyleSanitizer); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, $ctx$.myClassExp, $ctx$.myStyleExp); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0, $ctx$.myClassExp, $ctx$.myStyleExp); + $r3$.ΔelementStylingApply(0); } } `; @@ -869,15 +869,15 @@ describe('compiler compliance: styling', () => { const template = ` template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(null, null, $r3$.ɵdefaultStyleSanitizer); - $r3$.ɵpipe(1, "classPipe"); - $r3$.ɵpipe(2, "stylePipe"); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(null, null, $r3$.ΔdefaultStyleSanitizer); + $r3$.Δpipe(1, "classPipe"); + $r3$.Δpipe(2, "stylePipe"); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, $r3$.ɵpipeBind1(1, 0, $ctx$.myClassExp), $r3$.ɵpipeBind1(2, 2, $ctx$.myStyleExp)); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0, $r3$.ΔpipeBind1(1, 0, $ctx$.myClassExp), $r3$.ΔpipeBind1(2, 2, $ctx$.myStyleExp)); + $r3$.ΔelementStylingApply(0); } } `; @@ -922,23 +922,23 @@ describe('compiler compliance: styling', () => { … template: function MyComponent_Template(rf, $ctx$) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling($e0_classBindings$, $e0_styleBindings$, $r3$.ɵdefaultStyleSanitizer); - $r3$.ɵpipe(1, "pipe"); - $r3$.ɵpipe(2, "pipe"); - $r3$.ɵpipe(3, "pipe"); - $r3$.ɵpipe(4, "pipe"); - $r3$.ɵtext(5); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling($e0_classBindings$, $e0_styleBindings$, $r3$.ΔdefaultStyleSanitizer); + $r3$.Δpipe(1, "pipe"); + $r3$.Δpipe(2, "pipe"); + $r3$.Δpipe(3, "pipe"); + $r3$.Δpipe(4, "pipe"); + $r3$.Δtext(5); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, $e2_styling$, $r3$.ɵpipeBind2(1, 1, $ctx$.myStyleExp, 1000)); - $r3$.ɵelementStyleProp(0, 0, $r3$.ɵpipeBind2(2, 4, $ctx$.barExp, 3000)); - $r3$.ɵelementStyleProp(0, 1, $r3$.ɵpipeBind2(3, 7, $ctx$.bazExp, 4000)); - $r3$.ɵelementClassProp(0, 0, $r3$.ɵpipeBind2(4, 10, $ctx$.fooExp, 2000)); - $r3$.ɵelementStylingApply(0); - $r3$.ɵselect(5); - $r3$.ɵtextBinding(5, $r3$.ɵinterpolation1(" ", $ctx$.item, "")); + $r3$.ΔelementStylingMap(0, $e2_styling$, $r3$.ΔpipeBind2(1, 1, $ctx$.myStyleExp, 1000)); + $r3$.ΔelementStyleProp(0, 0, $r3$.ΔpipeBind2(2, 4, $ctx$.barExp, 3000)); + $r3$.ΔelementStyleProp(0, 1, $r3$.ΔpipeBind2(3, 7, $ctx$.bazExp, 4000)); + $r3$.ΔelementClassProp(0, 0, $r3$.ΔpipeBind2(4, 10, $ctx$.fooExp, 2000)); + $r3$.ΔelementStylingApply(0); + $r3$.Δselect(5); + $r3$.ΔtextBinding(5, $r3$.Δinterpolation1(" ", $ctx$.item, "")); } } `; @@ -990,14 +990,14 @@ describe('compiler compliance: styling', () => { … hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostAttrs($e0_attrs$); - $r3$.ɵelementHostStyling($e0_classBindings$, $e0_styleBindings$, $r3$.ɵdefaultStyleSanitizer); + $r3$.ΔelementHostAttrs($e0_attrs$); + $r3$.ΔelementHostStyling($e0_classBindings$, $e0_styleBindings$, $r3$.ΔdefaultStyleSanitizer); } if (rf & 2) { - $r3$.ɵelementHostStylingMap(ctx.myClass, ctx.myStyle); - $r3$.ɵelementHostStyleProp(0, ctx.myColorProp); - $r3$.ɵelementHostClassProp(0, ctx.myFooClass); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementHostStylingMap(ctx.myClass, ctx.myStyle); + $r3$.ΔelementHostStyleProp(0, ctx.myColorProp); + $r3$.ΔelementHostClassProp(0, ctx.myFooClass); + $r3$.ΔelementHostStylingApply(); } }, consts: 0, @@ -1051,15 +1051,15 @@ describe('compiler compliance: styling', () => { … hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostStyling(_c0, _c1, $r3$.ɵdefaultStyleSanitizer); + $r3$.ΔelementHostStyling(_c0, _c1, $r3$.ΔdefaultStyleSanitizer); } if (rf & 2) { - $r3$.ɵelementHostStylingMap(ctx.myClasses, ctx.myStyle); - $r3$.ɵelementHostStyleProp(0, ctx.myHeightProp, "pt"); - $r3$.ɵelementHostStyleProp(1, ctx.myWidthProp); - $r3$.ɵelementHostClassProp(0, ctx.myBarClass); - $r3$.ɵelementHostClassProp(1, ctx.myFooClass); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementHostStylingMap(ctx.myClasses, ctx.myStyle); + $r3$.ΔelementHostStyleProp(0, ctx.myHeightProp, "pt"); + $r3$.ΔelementHostStyleProp(1, ctx.myWidthProp); + $r3$.ΔelementHostClassProp(0, ctx.myBarClass); + $r3$.ΔelementHostClassProp(1, ctx.myFooClass); + $r3$.ΔelementHostStylingApply(); } }, consts: 0, @@ -1113,15 +1113,15 @@ describe('compiler compliance: styling', () => { … function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵelementStart(0, "div"); - $r3$.ɵelementStyling(_c2, _c3, $r3$.ɵdefaultStyleSanitizer); - $r3$.ɵelementEnd(); + $r3$.ΔelementStart(0, "div"); + $r3$.ΔelementStyling(_c2, _c3, $r3$.ΔdefaultStyleSanitizer); + $r3$.ΔelementEnd(); } if (rf & 2) { - $r3$.ɵelementStylingMap(0, ctx.myClassExp, ctx.myStyleExp); - $r3$.ɵelementStyleProp(0, 0, ctx.myHeightExp, null, true); - $r3$.ɵelementClassProp(0, 0, ctx.myBarClassExp, true); - $r3$.ɵelementStylingApply(0); + $r3$.ΔelementStylingMap(0, ctx.myClassExp, ctx.myStyleExp); + $r3$.ΔelementStyleProp(0, 0, ctx.myHeightExp, null, true); + $r3$.ΔelementClassProp(0, 0, ctx.myBarClassExp, true); + $r3$.ΔelementStylingApply(0); } }, `; @@ -1132,13 +1132,13 @@ describe('compiler compliance: styling', () => { … hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostStyling(_c0, _c1, $r3$.ɵdefaultStyleSanitizer); + $r3$.ΔelementHostStyling(_c0, _c1, $r3$.ΔdefaultStyleSanitizer); } if (rf & 2) { - $r3$.ɵelementHostStylingMap(ctx.myClassExp, ctx.myStyleExp); - $r3$.ɵelementHostStyleProp(0, ctx.myWidthExp, null, true); - $r3$.ɵelementHostClassProp(0, ctx.myFooClassExp, true); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementHostStylingMap(ctx.myClassExp, ctx.myStyleExp); + $r3$.ΔelementHostStyleProp(0, ctx.myWidthExp, null, true); + $r3$.ΔelementHostClassProp(0, ctx.myFooClassExp, true); + $r3$.ΔelementHostStylingApply(); } }, `; @@ -1200,33 +1200,33 @@ describe('compiler compliance: styling', () => { … function ClassDirective_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostStyling(); + $r3$.ΔelementHostStyling(); } if (rf & 2) { - $r3$.ɵelementHostStylingMap(ctx.myClassMap); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementHostStylingMap(ctx.myClassMap); + $r3$.ΔelementHostStylingApply(); } } … function WidthDirective_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostStyling($widthDir_classes$, $widthDir_styles$); + $r3$.ΔelementHostStyling($widthDir_classes$, $widthDir_styles$); } if (rf & 2) { - $r3$.ɵelementHostStyleProp(0, ctx.myWidth); - $r3$.ɵelementHostClassProp(0, ctx.myFooClass); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementHostStyleProp(0, ctx.myWidth); + $r3$.ΔelementHostClassProp(0, ctx.myFooClass); + $r3$.ΔelementHostStylingApply(); } } … function HeightDirective_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵelementHostStyling($heightDir_classes$, $heightDir_styles$); + $r3$.ΔelementHostStyling($heightDir_classes$, $heightDir_styles$); } if (rf & 2) { - $r3$.ɵelementHostStyleProp(0, ctx.myHeight); - $r3$.ɵelementHostClassProp(0, ctx.myBarClass); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementHostStyleProp(0, ctx.myHeight); + $r3$.ΔelementHostClassProp(0, ctx.myBarClass); + $r3$.ΔelementHostStylingApply(); } } … @@ -1280,15 +1280,15 @@ describe('compiler compliance: styling', () => { … hostBindings: function MyComponent_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵallocHostVars(2); - $r3$.ɵelementHostAttrs($_c0$); - $r3$.ɵelementHostStyling(null, null, $r3$.ɵdefaultStyleSanitizer); + $r3$.ΔallocHostVars(2); + $r3$.ΔelementHostAttrs($_c0$); + $r3$.ΔelementHostStyling(null, null, $r3$.ΔdefaultStyleSanitizer); } if (rf & 2) { - $r3$.ɵelementProperty(elIndex, "id", $r3$.ɵbind(ctx.id), null, true); - $r3$.ɵelementProperty(elIndex, "title", $r3$.ɵbind(ctx.title), null, true); - $r3$.ɵelementHostStylingMap(ctx.myClass, ctx.myStyle); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementProperty(elIndex, "id", $r3$.Δbind(ctx.id), null, true); + $r3$.ΔelementProperty(elIndex, "title", $r3$.Δbind(ctx.title), null, true); + $r3$.ΔelementHostStylingMap(ctx.myClass, ctx.myStyle); + $r3$.ΔelementHostStylingApply(); } } `; @@ -1327,15 +1327,15 @@ describe('compiler compliance: styling', () => { … hostBindings: function WidthDirective_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - $r3$.ɵallocHostVars(2); - $r3$.ɵelementHostStyling($_c0$, $_c1$); + $r3$.ΔallocHostVars(2); + $r3$.ΔelementHostStyling($_c0$, $_c1$); } if (rf & 2) { - $r3$.ɵelementProperty(elIndex, "id", $r3$.ɵbind(ctx.id), null, true); - $r3$.ɵelementProperty(elIndex, "title", $r3$.ɵbind(ctx.title), null, true); - $r3$.ɵelementHostStyleProp(0, ctx.myWidth); - $r3$.ɵelementHostClassProp(0, ctx.myFooClass); - $r3$.ɵelementHostStylingApply(); + $r3$.ΔelementProperty(elIndex, "id", $r3$.Δbind(ctx.id), null, true); + $r3$.ΔelementProperty(elIndex, "title", $r3$.Δbind(ctx.title), null, true); + $r3$.ΔelementHostStyleProp(0, ctx.myWidth); + $r3$.ΔelementHostClassProp(0, ctx.myFooClass); + $r3$.ΔelementHostStylingApply(); } } `; diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_template_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_template_spec.ts index f0b412fd61..a3815aa4b0 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_template_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_template_spec.ts @@ -56,65 +56,65 @@ describe('compiler compliance: template', () => { function MyComponent_ul_0_li_1_div_1_Template(rf, ctx) { if (rf & 1) { - const $s$ = $i0$.ɵgetCurrentView(); - $i0$.ɵelementStart(0, "div", $c2$); - $i0$.ɵlistener("click", function MyComponent_ul_0_li_1_div_1_Template_div_click_0_listener($event){ - $i0$.ɵrestoreView($s$); + const $s$ = $i0$.ΔgetCurrentView(); + $i0$.ΔelementStart(0, "div", $c2$); + $i0$.Δlistener("click", function MyComponent_ul_0_li_1_div_1_Template_div_click_0_listener($event){ + $i0$.ΔrestoreView($s$); const $inner$ = ctx.$implicit; - const $middle$ = $i0$.ɵnextContext().$implicit; - const $outer$ = $i0$.ɵnextContext().$implicit; - const $myComp$ = $i0$.ɵnextContext(); + const $middle$ = $i0$.ΔnextContext().$implicit; + const $outer$ = $i0$.ΔnextContext().$implicit; + const $myComp$ = $i0$.ΔnextContext(); return $myComp$.onClick($outer$, $middle$, $inner$); }); - $i0$.ɵtext(1); - $i0$.ɵelementEnd(); + $i0$.Δtext(1); + $i0$.ΔelementEnd(); } if (rf & 2) { const $inner1$ = ctx.$implicit; - const $middle1$ = $i0$.ɵnextContext().$implicit; - const $outer1$ = $i0$.ɵnextContext().$implicit; - const $myComp1$ = $i0$.ɵnextContext(); - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "title", $i0$.ɵbind($myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component))); - $r3$.ɵselect(1); - $i0$.ɵtextBinding(1, $i0$.ɵinterpolation1(" ", $myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component), " ")); + const $middle1$ = $i0$.ΔnextContext().$implicit; + const $outer1$ = $i0$.ΔnextContext().$implicit; + const $myComp1$ = $i0$.ΔnextContext(); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "title", $i0$.Δbind($myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component))); + $r3$.Δselect(1); + $i0$.ΔtextBinding(1, $i0$.Δinterpolation1(" ", $myComp1$.format($outer1$, $middle1$, $inner1$, $myComp1$.component), " ")); } } function MyComponent_ul_0_li_1_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "li"); - $i0$.ɵtemplate(1, MyComponent_ul_0_li_1_div_1_Template, 2, 2, "div", $c1$); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "li"); + $i0$.Δtemplate(1, MyComponent_ul_0_li_1_div_1_Template, 2, 2, "div", $c1$); + $i0$.ΔelementEnd(); } if (rf & 2) { - const $myComp2$ = $i0$.ɵnextContext(2); - $r3$.ɵselect(1); - $i0$.ɵelementProperty(1, "ngForOf", $i0$.ɵbind($myComp2$.items)); + const $myComp2$ = $i0$.ΔnextContext(2); + $r3$.Δselect(1); + $i0$.ΔelementProperty(1, "ngForOf", $i0$.Δbind($myComp2$.items)); } } function MyComponent_ul_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "ul"); - $i0$.ɵtemplate(1, MyComponent_ul_0_li_1_Template, 2, 1, "li", $c0$); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "ul"); + $i0$.Δtemplate(1, MyComponent_ul_0_li_1_Template, 2, 1, "li", $c0$); + $i0$.ΔelementEnd(); } if (rf & 2) { const $outer2$ = ctx.$implicit; - $r3$.ɵselect(1); - $i0$.ɵelementProperty(1, "ngForOf", $i0$.ɵbind($outer2$.items)); + $r3$.Δselect(1); + $i0$.ΔelementProperty(1, "ngForOf", $i0$.Δbind($outer2$.items)); } } // ... template:function MyComponent_Template(rf, ctx){ if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_ul_0_Template, 2, 1, "ul", $c0$); + $i0$.Δtemplate(0, MyComponent_ul_0_Template, 2, 1, "ul", $c0$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "ngForOf", $i0$.ɵbind(ctx.items)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "ngForOf", $i0$.Δbind(ctx.items)); } }`; @@ -152,26 +152,26 @@ describe('compiler compliance: template', () => { function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - const $s$ = $r3$.ɵgetCurrentView(); - $r3$.ɵelementStart(0, "div", $e_attrs$); - $r3$.ɵlistener("click", function MyComponent_div_0_Template_div_click_0_listener($event) { - $r3$.ɵrestoreView($s$); + const $s$ = $r3$.ΔgetCurrentView(); + $r3$.ΔelementStart(0, "div", $e_attrs$); + $r3$.Δlistener("click", function MyComponent_div_0_Template_div_click_0_listener($event) { + $r3$.ΔrestoreView($s$); const $d$ = ctx.$implicit; const $i$ = ctx.index; - const $comp$ = $r3$.ɵnextContext(); + const $comp$ = $r3$.ΔnextContext(); return $comp$._handleClick($d$, $i$); }); - $r3$.ɵelementEnd(); + $r3$.ΔelementEnd(); } } // ... template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $r3$.ɵtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $t0_attrs$); + $r3$.Δtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $t0_attrs$); } if (rf & 2) { - $r3$.ɵselect(0); - $r3$.ɵelementProperty(0, "ngForOf", $r3$.ɵbind(ctx._data)); + $r3$.Δselect(0); + $r3$.ΔelementProperty(0, "ngForOf", $r3$.Δbind(ctx._data)); } } `; @@ -207,25 +207,25 @@ describe('compiler compliance: template', () => { function MyComponent_span_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "span"); - $i0$.ɵtext(1); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "span"); + $i0$.Δtext(1); + $i0$.ΔelementEnd(); } if (rf & 2) { const $item$ = ctx.$implicit; const $i$ = ctx.index; - $r3$.ɵselect(1); - $i0$.ɵtextBinding(1, $i0$.ɵinterpolation2(" ", $i$, " - ", $item$, " ")); + $r3$.Δselect(1); + $i0$.ΔtextBinding(1, $i0$.Δinterpolation2(" ", $i$, " - ", $item$, " ")); } } // ... template:function MyComponent_Template(rf, ctx){ if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_span_0_Template, 2, 2, "span", _c0); + $i0$.Δtemplate(0, MyComponent_span_0_Template, 2, 2, "span", _c0); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "ngForOf", $i0$.ɵbind(ctx.items)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "ngForOf", $i0$.Δbind(ctx.items)); } }`; @@ -263,40 +263,40 @@ describe('compiler compliance: template', () => { function MyComponent_div_0_span_1_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "span"); - $i0$.ɵtext(1); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "span"); + $i0$.Δtext(1); + $i0$.ΔelementEnd(); } if (rf & 2) { - const $div$ = $i0$.ɵnextContext(); + const $div$ = $i0$.ΔnextContext(); const $i$ = $div$.index; const $item$ = $div$.$implicit; - $r3$.ɵselect(1); - $i0$.ɵtextBinding(1, $i0$.ɵinterpolation2(" ", $i$, " - ", $item$, " ")); + $r3$.Δselect(1); + $i0$.ΔtextBinding(1, $i0$.Δinterpolation2(" ", $i$, " - ", $item$, " ")); } } function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵtemplate(1, MyComponent_div_0_span_1_Template, 2, 2, "span", $c1$); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.Δtemplate(1, MyComponent_div_0_span_1_Template, 2, 2, "span", $c1$); + $i0$.ΔelementEnd(); } if (rf & 2) { - const $app$ = $i0$.ɵnextContext(); - $r3$.ɵselect(1); - $i0$.ɵelementProperty(1, "ngIf", $i0$.ɵbind($app$.showing)); + const $app$ = $i0$.ΔnextContext(); + $r3$.Δselect(1); + $i0$.ΔelementProperty(1, "ngIf", $i0$.Δbind($app$.showing)); } } // ... template:function MyComponent_Template(rf, ctx){ if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$); + $i0$.Δtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "ngForOf", $i0$.ɵbind(ctx.items)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "ngForOf", $i0$.Δbind(ctx.items)); } }`; @@ -335,51 +335,51 @@ describe('compiler compliance: template', () => { const $c0$ = [${AttributeMarker.Template}, "ngFor", "ngForOf"]; function MyComponent_div_0_div_1_div_1_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵtext(1); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.Δtext(1); + $i0$.ΔelementEnd(); } if (rf & 2) { - const $middle$ = $i0$.ɵnextContext().$implicit; - const $myComp$ = $i0$.ɵnextContext(2); - $r3$.ɵselect(1); - $i0$.ɵtextBinding(1, $i0$.ɵinterpolation2(" ", $middle$.value, " - ", $myComp$.name, " ")); + const $middle$ = $i0$.ΔnextContext().$implicit; + const $myComp$ = $i0$.ΔnextContext(2); + $r3$.Δselect(1); + $i0$.ΔtextBinding(1, $i0$.Δinterpolation2(" ", $middle$.value, " - ", $myComp$.name, " ")); } } function MyComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵtemplate(1, MyComponent_div_0_div_1_div_1_Template, 2, 2, "div", $c0$); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.Δtemplate(1, MyComponent_div_0_div_1_div_1_Template, 2, 2, "div", $c0$); + $i0$.ΔelementEnd(); } if (rf & 2) { const $middle$ = ctx.$implicit; - $r3$.ɵselect(1); - $i0$.ɵelementProperty(1, "ngForOf", $i0$.ɵbind($middle$.items)); + $r3$.Δselect(1); + $i0$.ΔelementProperty(1, "ngForOf", $i0$.Δbind($middle$.items)); } } function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelementStart(0, "div"); - $i0$.ɵtemplate(1, MyComponent_div_0_div_1_Template, 2, 1, "div", $c0$); - $i0$.ɵelementEnd(); + $i0$.ΔelementStart(0, "div"); + $i0$.Δtemplate(1, MyComponent_div_0_div_1_Template, 2, 1, "div", $c0$); + $i0$.ΔelementEnd(); } if (rf & 2) { const $outer$ = ctx.$implicit; - $r3$.ɵselect(1); - $i0$.ɵelementProperty(1, "ngForOf", $i0$.ɵbind($outer$.items)); + $r3$.Δselect(1); + $i0$.ΔelementProperty(1, "ngForOf", $i0$.Δbind($outer$.items)); } } // ... template:function MyComponent_Template(rf, ctx){ if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$); + $i0$.Δtemplate(0, MyComponent_div_0_Template, 2, 1, "div", $c0$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "ngForOf", $i0$.ɵbind(ctx.items)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "ngForOf", $i0$.Δbind(ctx.items)); } }`; @@ -414,7 +414,7 @@ describe('compiler compliance: template', () => { function MyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵtext(0, " some-content "); + $i0$.Δtext(0, " some-content "); } } @@ -422,11 +422,11 @@ describe('compiler compliance: template', () => { template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $c0$); + $i0$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", $c0$); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "boundAttr", $i0$.ɵbind(ctx.b)); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "boundAttr", $i0$.Δbind(ctx.b)); } }`; @@ -459,7 +459,7 @@ describe('compiler compliance: template', () => { function MyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵtext(0, "some-content"); + $i0$.Δtext(0, "some-content"); } } @@ -467,7 +467,7 @@ describe('compiler compliance: template', () => { template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", null, $t0_refs$, $i0$.ɵtemplateRefExtractor); + $i0$.Δtemplate(0, MyComponent_ng_template_0_Template, 1, 0, "ng-template", null, $t0_refs$, $i0$.ΔtemplateRefExtractor); } }`; @@ -504,8 +504,8 @@ describe('compiler compliance: template', () => { template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $t0_attrs$); - $i0$.ɵlistener("outDirective", function MyComponent_Template_ng_template_outDirective_0_listener($event) { return $event.doSth(); }); + $i0$.Δtemplate(0, MyComponent_ng_template_0_Template, 0, 0, "ng-template", $t0_attrs$); + $i0$.Δlistener("outDirective", function MyComponent_Template_ng_template_outDirective_0_listener($event) { return $event.doSth(); }); } }`; @@ -657,7 +657,7 @@ describe('compiler compliance: template', () => { function MyComponent_div_0_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵelement(0, "div"); + $i0$.Δelement(0, "div"); } } @@ -665,11 +665,11 @@ describe('compiler compliance: template', () => { template: function MyComponent_Template(rf, ctx) { if (rf & 1) { - $i0$.ɵtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0$); - $i0$.ɵpipe(1, "pipe"); + $i0$.Δtemplate(0, MyComponent_div_0_Template, 1, 0, "div", $c0$); + $i0$.Δpipe(1, "pipe"); } if (rf & 2) { - $i0$.ɵselect(0); - $i0$.ɵelementProperty(0, "ngIf", $i0$.ɵbind($i0$.ɵpipeBind1(1, 1, ctx.val))); + $i0$.Δselect(0); + $i0$.ΔelementProperty(0, "ngIf", $i0$.Δbind($i0$.ΔpipeBind1(1, 1, ctx.val))); } }`; diff --git a/packages/compiler-cli/test/ngc_spec.ts b/packages/compiler-cli/test/ngc_spec.ts index 69a1b7c3a5..a378063cf4 100644 --- a/packages/compiler-cli/test/ngc_spec.ts +++ b/packages/compiler-cli/test/ngc_spec.ts @@ -1219,7 +1219,7 @@ describe('ngc transformer command-line', () => { write('test.ts', ` import {Injectable, NgZone} from '@angular/core'; - + @Injectable({providedIn: 'root'}) export class MyService { constructor(public ngZone: NgZone) {} @@ -1285,7 +1285,7 @@ describe('ngc transformer command-line', () => { write('lib2/module.ts', `export {Module} from 'lib1_built/module';`); write('lib2/class2.ts', ` import {Class1} from 'lib1_built/class1'; - + export class Class2 { constructor(class1: Class1) {} } @@ -2075,7 +2075,7 @@ describe('ngc transformer command-line', () => { }) export class Service {} `); - expect(source).toMatch(/ngInjectableDef = .+\.defineInjectable\(/); + expect(source).toMatch(/ngInjectableDef = .+\.ΔdefineInjectable\(/); expect(source).toMatch(/ngInjectableDef.*token: Service/); expect(source).toMatch(/ngInjectableDef.*providedIn: .+\.Module/); }); @@ -2131,7 +2131,7 @@ describe('ngc transformer command-line', () => { }) export class Service {} `); - expect(source).toMatch(/ngInjectableDef.*return ..\.inject\(Existing\)/); + expect(source).toMatch(/ngInjectableDef.*return ..\.Δinject\(Existing\)/); }); it('compiles a useFactory InjectableDef with optional dep', () => { @@ -2151,7 +2151,7 @@ describe('ngc transformer command-line', () => { constructor(e: Existing|null) {} } `); - expect(source).toMatch(/ngInjectableDef.*return ..\(..\.inject\(Existing, 8\)/); + expect(source).toMatch(/ngInjectableDef.*return ..\(..\.Δinject\(Existing, 8\)/); }); it('compiles a useFactory InjectableDef with skip-self dep', () => { @@ -2171,7 +2171,7 @@ describe('ngc transformer command-line', () => { constructor(e: Existing) {} } `); - expect(source).toMatch(/ngInjectableDef.*return ..\(..\.inject\(Existing, 4\)/); + expect(source).toMatch(/ngInjectableDef.*return ..\(..\.Δinject\(Existing, 4\)/); }); it('compiles a service that depends on a token', () => { @@ -2188,7 +2188,7 @@ describe('ngc transformer command-line', () => { constructor(@Inject(TOKEN) value: boolean) {} } `); - expect(source).toMatch(/ngInjectableDef = .+\.defineInjectable\(/); + expect(source).toMatch(/ngInjectableDef = .+\.ΔdefineInjectable\(/); expect(source).toMatch(/ngInjectableDef.*token: Service/); expect(source).toMatch(/ngInjectableDef.*providedIn: .+\.Module/); }); @@ -2215,7 +2215,7 @@ describe('ngc transformer command-line', () => { constructor(@Inject(TOKEN) token: any) {} } `); - expect(source).toMatch(/new Service\(i0\.inject\(exports\.TOKEN\)\);/); + expect(source).toMatch(/new Service\(i0\.Δinject\(exports\.TOKEN\)\);/); }); }); diff --git a/packages/compiler-cli/test/ngtsc/fake_core/index.ts b/packages/compiler-cli/test/ngtsc/fake_core/index.ts index f7115fe6b8..3876e8256d 100644 --- a/packages/compiler-cli/test/ngtsc/fake_core/index.ts +++ b/packages/compiler-cli/test/ngtsc/fake_core/index.ts @@ -62,8 +62,8 @@ export function forwardRef(fn: () => T): T { export interface SimpleChanges { [propName: string]: any; } -export type ɵNgModuleDefWithMeta = any; -export type ɵDirectiveDefWithMeta = any; +export type ΔNgModuleDefWithMeta = any; +export type ΔDirectiveDefWithMeta = any; export enum ViewEncapsulation { Emulated = 0, @@ -75,4 +75,4 @@ export enum ViewEncapsulation { export enum ChangeDetectionStrategy { OnPush = 0, Default = 1 -} \ No newline at end of file +} diff --git a/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts b/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts index 761aaf795b..4659515b4a 100644 --- a/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts +++ b/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts @@ -18,12 +18,12 @@ const varRegExp = (name: string): RegExp => new RegExp(`var \\w+ = \\[\"${name}\ const viewQueryRegExp = (descend: boolean, ref?: string): RegExp => { const maybeRef = ref ? `${ref}` : `null`; - return new RegExp(`i0\\.ɵviewQuery\\(\\w+, ${descend}, ${maybeRef}\\)`); + return new RegExp(`i0\\.ΔviewQuery\\(\\w+, ${descend}, ${maybeRef}\\)`); }; const contentQueryRegExp = (predicate: string, descend: boolean, ref?: string): RegExp => { const maybeRef = ref ? `${ref}` : `null`; - return new RegExp(`i0\\.ɵcontentQuery\\(dirIndex, ${predicate}, ${descend}, ${maybeRef}\\)`); + return new RegExp(`i0\\.ΔcontentQuery\\(dirIndex, ${predicate}, ${descend}, ${maybeRef}\\)`); }; const setClassMetadataRegExp = (expectedType: string): RegExp => @@ -56,8 +56,8 @@ describe('ngtsc behavioral tests', () => { expect(jsContents).toContain('Service.ngInjectableDef ='); expect(jsContents).not.toContain('__decorate'); const dtsContents = env.getContents('test.d.ts'); - expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef;'); - expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef;'); + expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef;'); + expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef;'); }); it('should compile Injectables with a generic service', () => { @@ -75,7 +75,7 @@ describe('ngtsc behavioral tests', () => { const jsContents = env.getContents('test.js'); expect(jsContents).toContain('Store.ngInjectableDef ='); const dtsContents = env.getContents('test.d.ts'); - expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef>;'); + expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef>;'); }); it('should compile Injectables with providedIn without errors', () => { @@ -99,11 +99,11 @@ describe('ngtsc behavioral tests', () => { expect(jsContents).toContain('Dep.ngInjectableDef ='); expect(jsContents).toContain('Service.ngInjectableDef ='); expect(jsContents) - .toContain('return new (t || Service)(i0.inject(Dep)); }, providedIn: \'root\' });'); + .toContain('return new (t || Service)(i0.Δinject(Dep)); }, providedIn: \'root\' });'); expect(jsContents).not.toContain('__decorate'); const dtsContents = env.getContents('test.d.ts'); - expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef;'); - expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef;'); + expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef;'); + expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef;'); }); it('should compile Injectables with providedIn and factory without errors', () => { @@ -128,7 +128,7 @@ describe('ngtsc behavioral tests', () => { expect(jsContents).toContain('return r; }, providedIn: \'root\' });'); expect(jsContents).not.toContain('__decorate'); const dtsContents = env.getContents('test.d.ts'); - expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef;'); + expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef;'); }); it('should compile Injectables with providedIn and factory with deps without errors', () => { @@ -151,13 +151,13 @@ describe('ngtsc behavioral tests', () => { const jsContents = env.getContents('test.js'); expect(jsContents).toContain('Service.ngInjectableDef ='); expect(jsContents).toContain('factory: function Service_Factory(t) { var r = null; if (t) {'); - expect(jsContents).toContain('(r = new t(i0.inject(Dep)));'); + expect(jsContents).toContain('(r = new t(i0.Δinject(Dep)));'); expect(jsContents) - .toContain('(r = (function (dep) { return new Service(dep); })(i0.inject(Dep)));'); + .toContain('(r = (function (dep) { return new Service(dep); })(i0.Δinject(Dep)));'); expect(jsContents).toContain('return r; }, providedIn: \'root\' });'); expect(jsContents).not.toContain('__decorate'); const dtsContents = env.getContents('test.d.ts'); - expect(dtsContents).toContain('static ngInjectableDef: i0.ɵInjectableDef;'); + expect(dtsContents).toContain('static ngInjectableDef: i0.ΔInjectableDef;'); }); it('should compile @Injectable with an @Optional dependency', () => { @@ -193,13 +193,13 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ɵdefineComponent'); + expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ΔdefineComponent'); expect(jsContents).not.toContain('__decorate'); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngComponentDef: i0.ɵComponentDefWithMeta'); + 'static ngComponentDef: i0.ΔComponentDefWithMeta'); }); it('should compile Components (dynamic inline template) without errors', () => { @@ -217,13 +217,13 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ɵdefineComponent'); + expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ΔdefineComponent'); expect(jsContents).not.toContain('__decorate'); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngComponentDef: i0.ɵComponentDefWithMeta'); + 'static ngComponentDef: i0.ΔComponentDefWithMeta'); }); it('should compile Components (function call inline template) without errors', () => { @@ -244,13 +244,13 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ɵdefineComponent'); + expect(jsContents).toContain('TestCmp.ngComponentDef = i0.ΔdefineComponent'); expect(jsContents).not.toContain('__decorate'); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngComponentDef: i0.ɵComponentDefWithMeta'); + 'static ngComponentDef: i0.ΔComponentDefWithMeta'); }); it('should compile Components (external template) without errors', () => { @@ -351,13 +351,13 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('TestBase.ngBaseDef = i0.ɵdefineBase'); - expect(jsContents).toContain('TestComponent.ngComponentDef = i0.ɵdefineComponent'); - expect(jsContents).toContain('TestDirective.ngDirectiveDef = i0.ɵdefineDirective'); - expect(jsContents).toContain('TestPipe.ngPipeDef = i0.ɵdefinePipe'); - expect(jsContents).toContain('TestInjectable.ngInjectableDef = i0.defineInjectable'); - expect(jsContents).toContain('MyModule.ngModuleDef = i0.ɵdefineNgModule'); - expect(jsContents).toContain('MyModule.ngInjectorDef = i0.defineInjector'); + expect(jsContents).toContain('TestBase.ngBaseDef = i0.ΔdefineBase'); + expect(jsContents).toContain('TestComponent.ngComponentDef = i0.ΔdefineComponent'); + expect(jsContents).toContain('TestDirective.ngDirectiveDef = i0.ΔdefineDirective'); + expect(jsContents).toContain('TestPipe.ngPipeDef = i0.ΔdefinePipe'); + expect(jsContents).toContain('TestInjectable.ngInjectableDef = i0.ΔdefineInjectable'); + expect(jsContents).toContain('MyModule.ngModuleDef = i0.ΔdefineNgModule'); + expect(jsContents).toContain('MyModule.ngInjectorDef = i0.ΔdefineInjector'); expect(jsContents).toContain('inputs: { input: "input" }'); expect(jsContents).toContain('outputs: { output: "output" }'); }); @@ -442,25 +442,25 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵdefineNgModule({ type: TestModule, bootstrap: [TestCmp] });'); + expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule, bootstrap: [TestCmp] });'); expect(jsContents) - .toContain('/*@__PURE__*/ i0.ɵsetNgModuleScope(TestModule, { declarations: [TestCmp] });'); + .toContain('/*@__PURE__*/ i0.ΔsetNgModuleScope(TestModule, { declarations: [TestCmp] });'); expect(jsContents) .toContain( - 'i0.defineInjector({ factory: ' + + 'i0.ΔdefineInjector({ factory: ' + 'function TestModule_Factory(t) { return new (t || TestModule)(); } });'); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngComponentDef: i0.ɵComponentDefWithMeta'); + 'static ngComponentDef: i0.ΔComponentDefWithMeta'); expect(dtsContents) .toContain( - 'static ngModuleDef: i0.ɵNgModuleDefWithMeta'); + 'static ngModuleDef: i0.ΔNgModuleDefWithMeta'); expect(dtsContents).not.toContain('__decorate'); }); - it('should not emit a setNgModuleScope call when no scope metadata is present', () => { + it('should not emit a ΔsetNgModuleScope call when no scope metadata is present', () => { env.tsconfig(); env.write('test.ts', ` import {NgModule} from '@angular/core'; @@ -472,8 +472,8 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵdefineNgModule({ type: TestModule });'); - expect(jsContents).not.toContain('ɵsetNgModuleScope(TestModule,'); + expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });'); + expect(jsContents).not.toContain('ΔsetNgModuleScope(TestModule,'); }); it('should filter out directives and pipes from module exports in the injector def', () => { @@ -488,7 +488,7 @@ describe('ngtsc behavioral tests', () => { exports: [OtherDir], }) export class OtherModule {} - + const EXPORTS = [Dir, MyPipe, Comp, OtherModule, OtherDir, RouterModule, RouterComp]; @NgModule({ @@ -514,15 +514,15 @@ describe('ngtsc behavioral tests', () => { export class Comp {} `); env.write('node_modules/@angular/router/index.d.ts', ` - import {ɵComponentDefWithMeta, ModuleWithProviders, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔComponentDefWithMeta, ModuleWithProviders, ΔNgModuleDefWithMeta} from '@angular/core'; export declare class RouterComp { - static ngComponentDef: ɵComponentDefWithMeta + static ngComponentDef: ΔComponentDefWithMeta } declare class RouterModule { static forRoot(): ModuleWithProviders; - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); @@ -531,7 +531,7 @@ describe('ngtsc behavioral tests', () => { const jsContents = env.getContents('test.js'); expect(jsContents) .toContain( - 'i0.defineInjector({ factory: function TestModule_Factory(t) ' + + 'i0.ΔdefineInjector({ factory: function TestModule_Factory(t) ' + '{ return new (t || TestModule)(); }, imports: [[OtherModule, RouterModule.forRoot()],' + '\n OtherModule,\n RouterModule] });'); }); @@ -563,18 +563,18 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵdefineNgModule({ type: TestModule });'); + expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });'); expect(jsContents) .toContain( - `TestModule.ngInjectorDef = i0.defineInjector({ factory: ` + + `TestModule.ngInjectorDef = i0.ΔdefineInjector({ factory: ` + `function TestModule_Factory(t) { return new (t || TestModule)(); }, providers: [{ provide: ` + `Token, useValue: 'test' }], imports: [[OtherModule]] });`); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngModuleDef: i0.ɵNgModuleDefWithMeta'); - expect(dtsContents).toContain('static ngInjectorDef: i0.ɵInjectorDef'); + 'static ngModuleDef: i0.ΔNgModuleDefWithMeta'); + expect(dtsContents).toContain('static ngInjectorDef: i0.ΔInjectorDef'); }); it('should compile NgModules with factory providers without errors', () => { @@ -604,18 +604,18 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵdefineNgModule({ type: TestModule });'); + expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });'); expect(jsContents) .toContain( - `TestModule.ngInjectorDef = i0.defineInjector({ factory: ` + + `TestModule.ngInjectorDef = i0.ΔdefineInjector({ factory: ` + `function TestModule_Factory(t) { return new (t || TestModule)(); }, providers: [{ provide: ` + `Token, useFactory: function () { return new Token(); } }], imports: [[OtherModule]] });`); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngModuleDef: i0.ɵNgModuleDefWithMeta'); - expect(dtsContents).toContain('static ngInjectorDef: i0.ɵInjectorDef'); + 'static ngModuleDef: i0.ΔNgModuleDefWithMeta'); + expect(dtsContents).toContain('static ngInjectorDef: i0.ΔInjectorDef'); }); it('should compile NgModules with factory providers and deps without errors', () => { @@ -649,18 +649,18 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵdefineNgModule({ type: TestModule });'); + expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });'); expect(jsContents) .toContain( - `TestModule.ngInjectorDef = i0.defineInjector({ factory: ` + + `TestModule.ngInjectorDef = i0.ΔdefineInjector({ factory: ` + `function TestModule_Factory(t) { return new (t || TestModule)(); }, providers: [{ provide: ` + `Token, useFactory: function (dep) { return new Token(dep); }, deps: [Dep] }], imports: [[OtherModule]] });`); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngModuleDef: i0.ɵNgModuleDefWithMeta'); - expect(dtsContents).toContain('static ngInjectorDef: i0.ɵInjectorDef'); + 'static ngModuleDef: i0.ΔNgModuleDefWithMeta'); + expect(dtsContents).toContain('static ngInjectorDef: i0.ΔInjectorDef'); }); it('should compile NgModules with references to local components', () => { @@ -821,9 +821,9 @@ describe('ngtsc behavioral tests', () => { expect(jsContents) .toContain( - 'TestPipe.ngPipeDef = i0.ɵdefinePipe({ name: "test-pipe", type: TestPipe, ' + + 'TestPipe.ngPipeDef = i0.ΔdefinePipe({ name: "test-pipe", type: TestPipe, ' + 'factory: function TestPipe_Factory(t) { return new (t || TestPipe)(); }, pure: false })'); - expect(dtsContents).toContain('static ngPipeDef: i0.ɵPipeDefWithMeta;'); + expect(dtsContents).toContain('static ngPipeDef: i0.ΔPipeDefWithMeta;'); }); it('should compile pure Pipes without errors', () => { @@ -844,9 +844,9 @@ describe('ngtsc behavioral tests', () => { expect(jsContents) .toContain( - 'TestPipe.ngPipeDef = i0.ɵdefinePipe({ name: "test-pipe", type: TestPipe, ' + + 'TestPipe.ngPipeDef = i0.ΔdefinePipe({ name: "test-pipe", type: TestPipe, ' + 'factory: function TestPipe_Factory(t) { return new (t || TestPipe)(); }, pure: true })'); - expect(dtsContents).toContain('static ngPipeDef: i0.ɵPipeDefWithMeta;'); + expect(dtsContents).toContain('static ngPipeDef: i0.ΔPipeDefWithMeta;'); }); it('should compile Pipes with dependencies', () => { @@ -868,7 +868,7 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('return new (t || TestPipe)(i0.ɵdirectiveInject(Dep));'); + expect(jsContents).toContain('return new (t || TestPipe)(i0.ΔdirectiveInject(Dep));'); }); it('should compile Pipes with generic types', () => { @@ -888,7 +888,7 @@ describe('ngtsc behavioral tests', () => { expect(jsContents).toContain('TestPipe.ngPipeDef ='); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) - .toContain('static ngPipeDef: i0.ɵPipeDefWithMeta, "test-pipe">;'); + .toContain('static ngPipeDef: i0.ΔPipeDefWithMeta, "test-pipe">;'); }); it('should include @Pipes in @NgModule scopes', () => { @@ -914,7 +914,7 @@ describe('ngtsc behavioral tests', () => { const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'i0.ɵNgModuleDefWithMeta'); + 'i0.ΔNgModuleDefWithMeta'); }); describe('empty and missing selectors', () => { @@ -1029,7 +1029,7 @@ describe('ngtsc behavioral tests', () => { expect(dtsContents).toContain('ComponentDefWithMeta { `); env.driveMain(); - expect(env.getContents('test.js')).toContain('i0.ɵpureFunction1'); + expect(env.getContents('test.js')).toContain('i0.ΔpureFunction1'); }); it('should compile array literals inside function arguments', () => { @@ -1276,7 +1276,7 @@ describe('ngtsc behavioral tests', () => { `); env.driveMain(); - expect(env.getContents('test.js')).toContain('i0.ɵpureFunction1'); + expect(env.getContents('test.js')).toContain('i0.ΔpureFunction1'); }); }); @@ -1292,11 +1292,11 @@ describe('ngtsc behavioral tests', () => { `); env.write('node_modules/router/index.d.ts', ` - import {ModuleWithProviders, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ModuleWithProviders, ΔNgModuleDefWithMeta} from '@angular/core'; declare class RouterModule { static forRoot(): ModuleWithProviders; - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); @@ -1308,7 +1308,7 @@ describe('ngtsc behavioral tests', () => { const dtsContents = env.getContents('test.d.ts'); expect(dtsContents).toContain(`import * as i1 from "router";`); expect(dtsContents) - .toContain('i0.ɵNgModuleDefWithMeta'); + .toContain('i0.ΔNgModuleDefWithMeta'); }); it('should extract the generic type if it is provided as qualified type name', () => { @@ -1333,9 +1333,9 @@ describe('ngtsc behavioral tests', () => { `); env.write('node_modules/router/internal.d.ts', ` - import {ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔNgModuleDefWithMeta} from '@angular/core'; export declare class InternalRouterModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); @@ -1348,18 +1348,18 @@ describe('ngtsc behavioral tests', () => { expect(dtsContents).toContain(`import * as i1 from "router";`); expect(dtsContents) .toContain( - 'i0.ɵNgModuleDefWithMeta'); + 'i0.ΔNgModuleDefWithMeta'); }); it('should not reference a constant with a ModuleWithProviders value in ngModuleDef imports', () => { env.tsconfig(); env.write('dep.d.ts', ` - import {ModuleWithProviders, ɵNgModuleDefWithMeta as NgModuleDefWithMeta} from '@angular/core'; + import {ModuleWithProviders, ΔNgModuleDefWithMeta as ΔNgModuleDefWithMeta} from '@angular/core'; export declare class DepModule { static forRoot(arg1: any, arg2: any): ModuleWithProviders; - static ngModuleDef: NgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); env.write('test.ts', ` @@ -1394,13 +1394,13 @@ describe('ngtsc behavioral tests', () => { `); env.write('node_modules/router/index.d.ts', ` - import {ModuleWithProviders, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ModuleWithProviders, ΔNgModuleDefWithMeta} from '@angular/core'; export interface MyType extends ModuleWithProviders {} declare class RouterModule { static forRoot(): (MyType)&{ngModule:RouterModule}; - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); @@ -1413,7 +1413,7 @@ describe('ngtsc behavioral tests', () => { expect(dtsContents).toContain(`import * as i1 from "router";`); expect(dtsContents) .toContain( - 'i0.ɵNgModuleDefWithMeta'); + 'i0.ΔNgModuleDefWithMeta'); }); it('should unwrap a namespace imported ModuleWithProviders function if a generic type is provided for it', @@ -1433,7 +1433,7 @@ describe('ngtsc behavioral tests', () => { declare class RouterModule { static forRoot(): core.ModuleWithProviders; - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); @@ -1446,7 +1446,7 @@ describe('ngtsc behavioral tests', () => { expect(dtsContents).toContain(`import * as i1 from "router";`); expect(dtsContents) .toContain( - 'i0.ɵNgModuleDefWithMeta'); + 'i0.ΔNgModuleDefWithMeta'); }); it('should inject special types according to the metadata', () => { @@ -1484,7 +1484,7 @@ describe('ngtsc behavioral tests', () => { const jsContents = env.getContents('test.js'); expect(jsContents) .toContain( - `factory: function FooCmp_Factory(t) { return new (t || FooCmp)(i0.ɵinjectAttribute("test"), i0.ɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵdirectiveInject(i0.ElementRef), i0.ɵdirectiveInject(i0.Injector), i0.ɵdirectiveInject(i0.Renderer2), i0.ɵdirectiveInject(i0.TemplateRef), i0.ɵdirectiveInject(i0.ViewContainerRef)); }`); + `factory: function FooCmp_Factory(t) { return new (t || FooCmp)(i0.ΔinjectAttribute("test"), i0.ΔdirectiveInject(i0.ChangeDetectorRef), i0.ΔdirectiveInject(i0.ElementRef), i0.ΔdirectiveInject(i0.Injector), i0.ΔdirectiveInject(i0.Renderer2), i0.ΔdirectiveInject(i0.TemplateRef), i0.ΔdirectiveInject(i0.ViewContainerRef)); }`); }); it('should generate queries for components', () => { @@ -1514,9 +1514,9 @@ describe('ngtsc behavioral tests', () => { expect(jsContents).toMatch(varRegExp('test1')); expect(jsContents).toMatch(varRegExp('test2')); expect(jsContents).toMatch(varRegExp('accessor')); - // match `i0.ɵcontentQuery(dirIndex, _c1, true, TemplateRef)` + // match `i0.ΔcontentQuery(dirIndex, _c1, true, TemplateRef)` expect(jsContents).toMatch(contentQueryRegExp('\\w+', true, 'TemplateRef')); - // match `i0.ɵviewQuery(_c2, true, null)` + // match `i0.ΔviewQuery(_c2, true, null)` expect(jsContents).toMatch(viewQueryRegExp(true)); }); @@ -1546,10 +1546,10 @@ describe('ngtsc behavioral tests', () => { expect(jsContents).toMatch(varRegExp('test1')); expect(jsContents).toMatch(varRegExp('test2')); expect(jsContents).toMatch(varRegExp('accessor')); - // match `i0.ɵcontentQuery(dirIndex, _c1, true, TemplateRef)` + // match `i0.ΔcontentQuery(dirIndex, _c1, true, TemplateRef)` expect(jsContents).toMatch(contentQueryRegExp('\\w+', true, 'TemplateRef')); - // match `i0.ɵviewQuery(_c2, true, null)` + // match `i0.ΔviewQuery(_c2, true, null)` // Note that while ViewQuery doesn't necessarily make sense on a directive, because it doesn't // have a view, we still need to handle it because a component could extend the directive. expect(jsContents).toMatch(viewQueryRegExp(true)); @@ -1573,9 +1573,9 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - // match `i0.ɵcontentQuery(dirIndex, TemplateRef, true, null)` + // match `i0.ΔcontentQuery(dirIndex, TemplateRef, true, null)` expect(jsContents).toMatch(contentQueryRegExp('TemplateRef', true)); - // match `i0.ɵcontentQuery(dirIndex, ViewContainerRef, true, null)` + // match `i0.ΔcontentQuery(dirIndex, ViewContainerRef, true, null)` expect(jsContents).toMatch(contentQueryRegExp('ViewContainerRef', true)); }); @@ -1624,9 +1624,9 @@ describe('ngtsc behavioral tests', () => { const hostBindingsFn = ` hostBindings: function FooCmp_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - i0.ɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick(); }); - i0.ɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onDocumentClick($event.target); }, false, i0.ɵresolveDocument); - i0.ɵlistener("scroll", function FooCmp_scroll_HostBindingHandler($event) { return ctx.onWindowScroll(); }, false, i0.ɵresolveWindow); + i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick(); }); + i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onDocumentClick($event.target); }, false, i0.ΔresolveDocument); + i0.Δlistener("scroll", function FooCmp_scroll_HostBindingHandler($event) { return ctx.onWindowScroll(); }, false, i0.ΔresolveWindow); } } `; @@ -1722,17 +1722,17 @@ describe('ngtsc behavioral tests', () => { const hostBindingsFn = ` hostBindings: function FooCmp_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - i0.ɵallocHostVars(2); - i0.ɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick($event); }); - i0.ɵlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onBodyClick($event); }, false, i0.ɵresolveBody); - i0.ɵlistener("change", function FooCmp_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg1, ctx.arg2, ctx.arg3); }); - i0.ɵelementHostStyling(_c0); + i0.ΔallocHostVars(2); + i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onClick($event); }); + i0.Δlistener("click", function FooCmp_click_HostBindingHandler($event) { return ctx.onBodyClick($event); }, false, i0.ΔresolveBody); + i0.Δlistener("change", function FooCmp_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg1, ctx.arg2, ctx.arg3); }); + i0.ΔelementHostStyling(_c0); } if (rf & 2) { - i0.ɵelementAttribute(elIndex, "hello", i0.ɵbind(ctx.foo)); - i0.ɵelementProperty(elIndex, "prop", i0.ɵbind(ctx.bar), null, true); - i0.ɵelementHostClassProp(0, ctx.someClass); - i0.ɵelementHostStylingApply(); + i0.ΔelementAttribute(elIndex, "hello", i0.Δbind(ctx.foo)); + i0.ΔelementProperty(elIndex, "prop", i0.Δbind(ctx.bar), null, true); + i0.ΔelementHostClassProp(0, ctx.someClass); + i0.ΔelementHostStylingApply(); } } `; @@ -1761,7 +1761,7 @@ describe('ngtsc behavioral tests', () => { `); env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵelementHostAttrs(["test", test])'); + expect(jsContents).toContain('i0.ΔelementHostAttrs(["test", test])'); }); it('should accept enum values as host bindings', () => { @@ -1786,7 +1786,7 @@ describe('ngtsc behavioral tests', () => { `); env.driveMain(); - expect(env.getContents('test.js')).toContain('"hello", i0.ɵbind(ctx.foo)'); + expect(env.getContents('test.js')).toContain('"hello", i0.Δbind(ctx.foo)'); }); it('should generate host listeners for directives within hostBindings section', () => { @@ -1808,7 +1808,7 @@ describe('ngtsc behavioral tests', () => { const hostBindingsFn = ` hostBindings: function Dir_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - i0.ɵlistener("change", function Dir_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg); }); + i0.Δlistener("change", function Dir_change_HostBindingHandler($event) { return ctx.onChange(ctx.arg); }); } } `; @@ -2003,7 +2003,7 @@ describe('ngtsc behavioral tests', () => { `); env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).not.toContain('i0.ɵelementProperty'); + expect(jsContents).not.toContain('i0.ΔelementProperty'); }); it('should correctly recognize local symbols', () => { @@ -2258,8 +2258,8 @@ describe('ngtsc behavioral tests', () => { const jsContents = env.getContents('test.js'); expect(jsContents) - .toContain('function Base_Factory(t) { return new (t || Base)(i0.inject(Dep)); }'); - expect(jsContents).toContain('var ɵChild_BaseFactory = i0.ɵgetInheritedFactory(Child)'); + .toContain('function Base_Factory(t) { return new (t || Base)(i0.Δinject(Dep)); }'); + expect(jsContents).toContain('var ɵChild_BaseFactory = i0.ΔgetInheritedFactory(Child)'); expect(jsContents) .toContain('function Child_Factory(t) { return ɵChild_BaseFactory((t || Child)); }'); expect(jsContents) @@ -2284,7 +2284,7 @@ describe('ngtsc behavioral tests', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('var ɵDir_BaseFactory = i0.ɵgetInheritedFactory(Dir)'); + expect(jsContents).toContain('var ɵDir_BaseFactory = i0.ΔgetInheritedFactory(Dir)'); }); it('should wrap "directives" in component metadata in a closure when forward references are present', @@ -2425,8 +2425,8 @@ describe('ngtsc behavioral tests', () => { const jsContents = trim(env.getContents('test.js')); expect(jsContents).toContain(`import Default from './types';`); expect(jsContents).toContain(`import * as i1 from "./types";`); - expect(jsContents).toContain('i0.ɵdirectiveInject(Default)'); - expect(jsContents).toContain('i0.ɵdirectiveInject(i1.Other)'); + expect(jsContents).toContain('i0.ΔdirectiveInject(Default)'); + expect(jsContents).toContain('i0.ΔdirectiveInject(i1.Other)'); expect(jsContents).toMatch(setClassMetadataRegExp('type: Default')); expect(jsContents).toMatch(setClassMetadataRegExp('type: i1.Other')); }); @@ -2537,8 +2537,8 @@ describe('ngtsc behavioral tests', () => { const jsContents = env.getContents('test.js'); expect(jsContents) .toMatch( - /i\d\.ɵsetComponentScope\(NormalComponent,\s+\[NormalComponent,\s+CyclicComponent\],\s+\[\]\)/); - expect(jsContents).not.toContain('/*__PURE__*/ i0.ɵsetComponentScope'); + /i\d\.ΔsetComponentScope\(NormalComponent,\s+\[NormalComponent,\s+CyclicComponent\],\s+\[\]\)/); + expect(jsContents).not.toContain('/*__PURE__*/ i0.ΔsetComponentScope'); }); it('should detect a cycle added entirely during compilation', () => { @@ -2729,14 +2729,14 @@ describe('ngtsc behavioral tests', () => { it('should not emit multiple references to the same directive', () => { env.tsconfig(); env.write('node_modules/external/index.d.ts', ` - import {ɵDirectiveDefWithMeta, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core'; export declare class ExternalDir { - static ngDirectiveDef: ɵDirectiveDefWithMeta; + static ngDirectiveDef: ΔDirectiveDefWithMeta; } export declare class ExternalModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); env.write('test.ts', ` @@ -2765,19 +2765,19 @@ describe('ngtsc behavioral tests', () => { it('should import directives by their external name', () => { env.tsconfig(); env.write('node_modules/external/index.d.ts', ` - import {ɵDirectiveDefWithMeta, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core'; import {InternalDir} from './internal'; export {InternalDir as ExternalDir} from './internal'; export declare class ExternalModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); env.write('node_modules/external/internal.d.ts', ` export declare class InternalDir { - static ngDirectiveDef: ɵDirectiveDefWithMeta; + static ngDirectiveDef: ΔDirectiveDefWithMeta; } `); env.write('test.ts', ` @@ -2986,14 +2986,14 @@ describe('ngtsc behavioral tests', () => { export class Module {} `); env.write('node_modules/external/index.d.ts', ` - import {ɵDirectiveDefWithMeta, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core'; export declare class ExternalDir { - static ngDirectiveDef: ɵDirectiveDefWithMeta; + static ngDirectiveDef: ΔDirectiveDefWithMeta; } export declare class ExternalModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); @@ -3173,15 +3173,15 @@ describe('ngtsc behavioral tests', () => { const hostBindingsFn = ` hostBindings: function UnsafeAttrsDirective_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - i0.ɵallocHostVars(6); + i0.ΔallocHostVars(6); } if (rf & 2) { - i0.ɵelementAttribute(elIndex, "href", i0.ɵbind(ctx.attrHref), i0.ɵsanitizeUrlOrResourceUrl); - i0.ɵelementAttribute(elIndex, "src", i0.ɵbind(ctx.attrSrc), i0.ɵsanitizeUrlOrResourceUrl); - i0.ɵelementAttribute(elIndex, "action", i0.ɵbind(ctx.attrAction), i0.ɵsanitizeUrl); - i0.ɵelementAttribute(elIndex, "profile", i0.ɵbind(ctx.attrProfile), i0.ɵsanitizeResourceUrl); - i0.ɵelementAttribute(elIndex, "innerHTML", i0.ɵbind(ctx.attrInnerHTML), i0.ɵsanitizeHtml); - i0.ɵelementAttribute(elIndex, "title", i0.ɵbind(ctx.attrSafeTitle)); + i0.ΔelementAttribute(elIndex, "href", i0.Δbind(ctx.attrHref), i0.ΔsanitizeUrlOrResourceUrl); + i0.ΔelementAttribute(elIndex, "src", i0.Δbind(ctx.attrSrc), i0.ΔsanitizeUrlOrResourceUrl); + i0.ΔelementAttribute(elIndex, "action", i0.Δbind(ctx.attrAction), i0.ΔsanitizeUrl); + i0.ΔelementAttribute(elIndex, "profile", i0.Δbind(ctx.attrProfile), i0.ΔsanitizeResourceUrl); + i0.ΔelementAttribute(elIndex, "innerHTML", i0.Δbind(ctx.attrInnerHTML), i0.ΔsanitizeHtml); + i0.ΔelementAttribute(elIndex, "title", i0.Δbind(ctx.attrSafeTitle)); } } `; @@ -3228,15 +3228,15 @@ describe('ngtsc behavioral tests', () => { const hostBindingsFn = ` hostBindings: function UnsafePropsDirective_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - i0.ɵallocHostVars(6); + i0.ΔallocHostVars(6); } if (rf & 2) { - i0.ɵelementProperty(elIndex, "href", i0.ɵbind(ctx.propHref), i0.ɵsanitizeUrlOrResourceUrl, true); - i0.ɵelementProperty(elIndex, "src", i0.ɵbind(ctx.propSrc), i0.ɵsanitizeUrlOrResourceUrl, true); - i0.ɵelementProperty(elIndex, "action", i0.ɵbind(ctx.propAction), i0.ɵsanitizeUrl, true); - i0.ɵelementProperty(elIndex, "profile", i0.ɵbind(ctx.propProfile), i0.ɵsanitizeResourceUrl, true); - i0.ɵelementProperty(elIndex, "innerHTML", i0.ɵbind(ctx.propInnerHTML), i0.ɵsanitizeHtml, true); - i0.ɵelementProperty(elIndex, "title", i0.ɵbind(ctx.propSafeTitle), null, true); + i0.ΔelementProperty(elIndex, "href", i0.Δbind(ctx.propHref), i0.ΔsanitizeUrlOrResourceUrl, true); + i0.ΔelementProperty(elIndex, "src", i0.Δbind(ctx.propSrc), i0.ΔsanitizeUrlOrResourceUrl, true); + i0.ΔelementProperty(elIndex, "action", i0.Δbind(ctx.propAction), i0.ΔsanitizeUrl, true); + i0.ΔelementProperty(elIndex, "profile", i0.Δbind(ctx.propProfile), i0.ΔsanitizeResourceUrl, true); + i0.ΔelementProperty(elIndex, "innerHTML", i0.Δbind(ctx.propInnerHTML), i0.ΔsanitizeHtml, true); + i0.ΔelementProperty(elIndex, "title", i0.Δbind(ctx.propSafeTitle), null, true); } } `; @@ -3268,15 +3268,15 @@ describe('ngtsc behavioral tests', () => { const hostBindingsFn = ` hostBindings: function FooCmp_HostBindings(rf, ctx, elIndex) { if (rf & 1) { - i0.ɵallocHostVars(6); + i0.ΔallocHostVars(6); } if (rf & 2) { - i0.ɵelementProperty(elIndex, "src", i0.ɵbind(ctx.srcProp), null, true); - i0.ɵelementProperty(elIndex, "href", i0.ɵbind(ctx.hrefProp), null, true); - i0.ɵelementProperty(elIndex, "title", i0.ɵbind(ctx.titleProp), null, true); - i0.ɵelementAttribute(elIndex, "src", i0.ɵbind(ctx.srcAttr)); - i0.ɵelementAttribute(elIndex, "href", i0.ɵbind(ctx.hrefAttr)); - i0.ɵelementAttribute(elIndex, "title", i0.ɵbind(ctx.titleAttr)); + i0.ΔelementProperty(elIndex, "src", i0.Δbind(ctx.srcProp), null, true); + i0.ΔelementProperty(elIndex, "href", i0.Δbind(ctx.hrefProp), null, true); + i0.ΔelementProperty(elIndex, "title", i0.Δbind(ctx.titleProp), null, true); + i0.ΔelementAttribute(elIndex, "src", i0.Δbind(ctx.srcAttr)); + i0.ΔelementAttribute(elIndex, "href", i0.Δbind(ctx.hrefAttr)); + i0.ΔelementAttribute(elIndex, "title", i0.Δbind(ctx.titleAttr)); } } `; @@ -3306,13 +3306,13 @@ describe('ngtsc behavioral tests', () => { beforeEach(() => { env.tsconfig(); env.write('node_modules/@angular/router/index.d.ts', ` - import {ModuleWithProviders, ɵNgModuleDefWithMeta as NgModuleDefWithMeta} from '@angular/core'; + import {ModuleWithProviders, ΔNgModuleDefWithMeta as ΔNgModuleDefWithMeta} from '@angular/core'; export declare var ROUTES; export declare class RouterModule { static forRoot(arg1: any, arg2: any): ModuleWithProviders; static forChild(arg1: any): ModuleWithProviders; - static ngModuleDef: NgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); }); @@ -3942,24 +3942,24 @@ export const Foo = Foo__PRE_R3__; // 'alpha' declares the directive which will ultimately be imported. env.write('alpha.d.ts', ` - import {ɵDirectiveDefWithMeta, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core'; export declare class ExternalDir { - static ngDirectiveDef: ɵDirectiveDefWithMeta; + static ngDirectiveDef: ΔDirectiveDefWithMeta; } export declare class AlphaModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); // 'beta' re-exports AlphaModule from alpha. env.write('beta.d.ts', ` - import {ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔNgModuleDefWithMeta} from '@angular/core'; import {AlphaModule} from './alpha'; export declare class BetaModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); @@ -3991,26 +3991,26 @@ export const Foo = Foo__PRE_R3__; it('should write alias ES2015 exports for NgModule exported directives', () => { env.tsconfig({'_useHostForImportGeneration': true}); env.write('external.d.ts', ` - import {ɵDirectiveDefWithMeta, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core'; import {LibModule} from './lib'; export declare class ExternalDir { - static ngDirectiveDef: ɵDirectiveDefWithMeta; + static ngDirectiveDef: ΔDirectiveDefWithMeta; } export declare class ExternalModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); env.write('lib.d.ts', ` - import {ɵDirectiveDefWithMeta, ɵNgModuleDefWithMeta} from '@angular/core'; + import {ΔDirectiveDefWithMeta, ΔNgModuleDefWithMeta} from '@angular/core'; export declare class LibDir { - static ngDirectiveDef: ɵDirectiveDefWithMeta; + static ngDirectiveDef: ΔDirectiveDefWithMeta; } export declare class LibModule { - static ngModuleDef: ɵNgModuleDefWithMeta; + static ngModuleDef: ΔNgModuleDefWithMeta; } `); env.write('foo.ts', ` diff --git a/packages/compiler-cli/test/ngtsc/scope_spec.ts b/packages/compiler-cli/test/ngtsc/scope_spec.ts index 6fed20ca76..5ea177671f 100644 --- a/packages/compiler-cli/test/ngtsc/scope_spec.ts +++ b/packages/compiler-cli/test/ngtsc/scope_spec.ts @@ -25,10 +25,10 @@ describe('ngtsc module scopes', () => { env.tsconfig(); env.write('test.ts', ` import {NgModule} from '@angular/core'; - + @NgModule({}) export class OtherModule {} - + @NgModule({imports: [OtherModule]}) export class TestModule {} `); @@ -36,23 +36,23 @@ describe('ngtsc module scopes', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵdefineNgModule({ type: TestModule });'); + expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });'); expect(jsContents) .toContain( - '/*@__PURE__*/ i0.ɵsetNgModuleScope(TestModule, { imports: [OtherModule] });'); + '/*@__PURE__*/ i0.ΔsetNgModuleScope(TestModule, { imports: [OtherModule] });'); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngModuleDef: i0.ɵNgModuleDefWithMeta'); + 'static ngModuleDef: i0.ΔNgModuleDefWithMeta'); }); it('should produce an error when an invalid class is imported', () => { env.write('test.ts', ` import {NgModule} from '@angular/core'; - + class NotAModule {} - + @NgModule({imports: [NotAModule]}) class IsAModule {} `); @@ -69,7 +69,7 @@ describe('ngtsc module scopes', () => { env.write('test.ts', ` import {NgModule} from '@angular/core'; import {NotAClass} from './dep'; - + @NgModule({imports: [NotAClass]}) class IsAModule {} `); @@ -87,10 +87,10 @@ describe('ngtsc module scopes', () => { env.tsconfig(); env.write('test.ts', ` import {NgModule} from '@angular/core'; - + @NgModule({}) export class OtherModule {} - + @NgModule({exports: [OtherModule]}) export class TestModule {} `); @@ -98,23 +98,23 @@ describe('ngtsc module scopes', () => { env.driveMain(); const jsContents = env.getContents('test.js'); - expect(jsContents).toContain('i0.ɵdefineNgModule({ type: TestModule });'); + expect(jsContents).toContain('i0.ΔdefineNgModule({ type: TestModule });'); expect(jsContents) .toContain( - '/*@__PURE__*/ i0.ɵsetNgModuleScope(TestModule, { exports: [OtherModule] });'); + '/*@__PURE__*/ i0.ΔsetNgModuleScope(TestModule, { exports: [OtherModule] });'); const dtsContents = env.getContents('test.d.ts'); expect(dtsContents) .toContain( - 'static ngModuleDef: i0.ɵNgModuleDefWithMeta'); + 'static ngModuleDef: i0.ΔNgModuleDefWithMeta'); }); it('should produce an error when a non-NgModule class is exported', () => { env.write('test.ts', ` import {NgModule} from '@angular/core'; - + class NotAModule {} - + @NgModule({exports: [NotAModule]}) class IsAModule {} `); @@ -131,12 +131,12 @@ describe('ngtsc module scopes', () => { import {NgModule} from '@angular/core'; export class NotAModule {} - + @NgModule({ imports: [NotAModule], }) class InvalidModule {} - + @NgModule({exports: [InvalidModule]}) class IsAModule {} `); @@ -157,10 +157,10 @@ describe('ngtsc module scopes', () => { it('should produce an error when a non-declared/imported class is re-exported', () => { env.write('test.ts', ` import {Directive, NgModule} from '@angular/core'; - + @Directive({selector: 'test'}) class Dir {} - + @NgModule({exports: [Dir]}) class IsAModule {} `); diff --git a/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts b/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts index f740352b5e..603f9fd0d9 100644 --- a/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts +++ b/packages/compiler-cli/test/ngtsc/template_mapping_spec.ts @@ -23,17 +23,17 @@ describe('template source-mapping', () => { it('should map simple element with content', () => { const mappings = compileAndMap('

Heading 1

'); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementStart(0, "h1")', sourceUrl: '../test.ts'}); + {source: '

', generated: 'i0.ΔelementStart(0, "h1")', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {source: 'Heading 1', generated: 'i0.ɵtext(1, "Heading 1")', sourceUrl: '../test.ts'}); + {source: 'Heading 1', generated: 'i0.Δtext(1, "Heading 1")', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); it('should map void element', () => { const mappings = compileAndMap('
'); expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelement(0, "hr")', sourceUrl: '../test.ts'}); + {source: '
', generated: 'i0.Δelement(0, "hr")', sourceUrl: '../test.ts'}); }); }); @@ -41,40 +41,40 @@ describe('template source-mapping', () => { it('should map a mix of interpolated and static content', () => { const mappings = compileAndMap('

Hello {{ name }}

'); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementStart(0, "h3")', sourceUrl: '../test.ts'}); + {source: '

', generated: 'i0.ΔelementStart(0, "h3")', sourceUrl: '../test.ts'}); expect(mappings).toContain({ source: 'Hello {{ name }}', - generated: 'i0.ɵtextBinding(1, i0.ɵinterpolation1("Hello ", ctx.name, ""))', + generated: 'i0.ΔtextBinding(1, i0.Δinterpolation1("Hello ", ctx.name, ""))', sourceUrl: '../test.ts' }); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); it('should map a complex interpolated expression', () => { const mappings = compileAndMap('

{{ greeting + " " + name }}

'); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementStart(0, "h2")', sourceUrl: '../test.ts'}); + {source: '

', generated: 'i0.ΔelementStart(0, "h2")', sourceUrl: '../test.ts'}); expect(mappings).toContain({ source: '{{ greeting + " " + name }}', generated: - 'i0.ɵtextBinding(1, i0.ɵinterpolation1("", ((ctx.greeting + " ") + ctx.name), ""))', + 'i0.ΔtextBinding(1, i0.Δinterpolation1("", ((ctx.greeting + " ") + ctx.name), ""))', sourceUrl: '../test.ts' }); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); it('should map interpolated properties', () => { const mappings = compileAndMap('
'); expect(mappings).toContain({ source: '
', - generated: 'i0.ɵelement(0, "div", _c0)', + generated: 'i0.Δelement(0, "div", _c0)', sourceUrl: '../test.ts' }); expect(mappings).toContain({ source: 'id="{{name}}"', - generated: 'i0.ɵelementProperty(0, "id", i0.ɵinterpolation1("", ctx.name, ""))', + generated: 'i0.ΔelementProperty(0, "id", i0.Δinterpolation1("", ctx.name, ""))', sourceUrl: '../test.ts' }); }); @@ -82,15 +82,15 @@ describe('template source-mapping', () => { it('should map interpolation with pipe', () => { const mappings = compileAndMap('
{{200.3 | percent : 2 }}
'); expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementStart(0, "div")', sourceUrl: '../test.ts'}); + {source: '
', generated: 'i0.ΔelementStart(0, "div")', sourceUrl: '../test.ts'}); expect(mappings).toContain({ source: '{{200.3 | percent : 2 }}', generated: - 'i0.ɵtextBinding(1, i0.ɵinterpolation1("", i0.ɵpipeBind2(2, 1, 200.3, 2), ""))', + 'i0.ΔtextBinding(1, i0.Δinterpolation1("", i0.ΔpipeBind2(2, 1, 200.3, 2), ""))', sourceUrl: '../test.ts' }); expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '
', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); }); @@ -99,12 +99,12 @@ describe('template source-mapping', () => { const mappings = compileAndMap('
'); expect(mappings).toContain({ source: '
', - generated: 'i0.ɵelement(0, "div", _c0)', + generated: 'i0.Δelement(0, "div", _c0)', sourceUrl: '../test.ts' }); expect(mappings).toContain({ source: '[attr]="name"', - generated: 'i0.ɵelementProperty(0, "attr", i0.ɵbind(ctx.name))', + generated: 'i0.ΔelementProperty(0, "attr", i0.Δbind(ctx.name))', sourceUrl: '../test.ts' }); }); @@ -113,12 +113,12 @@ describe('template source-mapping', () => { const mappings = compileAndMap('
'); expect(mappings).toContain({ source: '
', - generated: 'i0.ɵelement(0, "div", _c0)', + generated: 'i0.Δelement(0, "div", _c0)', sourceUrl: '../test.ts' }); expect(mappings).toContain({ source: '[attr]="greeting + name"', - generated: 'i0.ɵelementProperty(0, "attr", i0.ɵbind((ctx.greeting + ctx.name)))', + generated: 'i0.ΔelementProperty(0, "attr", i0.Δbind((ctx.greeting + ctx.name)))', sourceUrl: '../test.ts' }); }); @@ -127,12 +127,12 @@ describe('template source-mapping', () => { const mappings = compileAndMap('
'); expect(mappings).toContain({ source: '
', - generated: 'i0.ɵelement(0, "div", _c0)', + generated: 'i0.Δelement(0, "div", _c0)', sourceUrl: '../test.ts' }); expect(mappings).toContain({ source: 'bind-attr="name"', - generated: 'i0.ɵelementProperty(0, "attr", i0.ɵbind(ctx.name))', + generated: 'i0.ΔelementProperty(0, "attr", i0.Δbind(ctx.name))', sourceUrl: '../test.ts' }); }); @@ -141,15 +141,15 @@ describe('template source-mapping', () => { const mappings = compileAndMap(''); expect(mappings).toContain({ source: '', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); it('should map a complex output binding expression', () => { @@ -157,11 +157,11 @@ describe('template source-mapping', () => { compileAndMap(``); expect(mappings).toContain({ source: `', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); it('should map a longhand output binding expression', () => { const mappings = compileAndMap(''); expect(mappings).toContain({ source: '', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); it('should map a two-way binding expression', () => { const mappings = compileAndMap('Name: '); expect(mappings).toContain({ source: '', - generated: 'i0.ɵelementStart(1, "input", _c0)', + generated: 'i0.ΔelementStart(1, "input", _c0)', sourceUrl: '../test.ts' }); // TODO: improve mappings here expect(mappings).toContain({ source: '[(ngModel)]="name"', generated: - 'i0.ɵlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })', + 'i0.Δlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })', sourceUrl: '../test.ts' }); expect(mappings).toContain({ source: '', - generated: 'i0.ɵelementEnd()', + generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts' }); }); @@ -215,19 +215,19 @@ describe('template source-mapping', () => { const mappings = compileAndMap('Name: '); expect(mappings).toContain({ source: '', - generated: 'i0.ɵelementStart(1, "input", _c0)', + generated: 'i0.ΔelementStart(1, "input", _c0)', sourceUrl: '../test.ts' }); // TODO: improve mappings here expect(mappings).toContain({ source: 'bindon-ngModel="name"', generated: - 'i0.ɵlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })', + 'i0.Δlistener("ngModelChange", function TestCmp_Template_input_ngModelChange_1_listener($event) { return ctx.name = $event; })', sourceUrl: '../test.ts' }); expect(mappings).toContain({ source: '', - generated: 'i0.ɵelementEnd()', + generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts' }); }); @@ -236,17 +236,17 @@ describe('template source-mapping', () => { const mappings = compileAndMap('
Message
'); expect(mappings).toContain({ source: '
', - generated: 'i0.ɵelementStart(0, "div")', + generated: 'i0.ΔelementStart(0, "div")', sourceUrl: '../test.ts' }); // TODO: Add better mappings for binding expect(mappings).toContain( - {source: 'Message', generated: 'i0.ɵtext(1, "Message")', sourceUrl: '../test.ts'}); + {source: 'Message', generated: 'i0.Δtext(1, "Message")', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); }); @@ -256,20 +256,20 @@ describe('template source-mapping', () => { expect(mappings).toContain({ source: '
', - generated: 'i0.ɵelementStart(0, "div")', + generated: 'i0.ΔelementStart(0, "div")', sourceUrl: '../test.ts' }); // TODO - map the bindings better expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); // TODO: the `ctx_r...` appears to be dependent upon previous tests!!! // expect(mappings).toContain({ // source: '{{ name }}', - // generated: 'i0.ɵtextBinding(1, i0.ɵinterpolation1("", ctx_r0.name, ""))', + // generated: 'i0.ΔtextBinding(1, i0.Δinterpolation1("", ctx_r0.name, ""))', // sourceUrl: '../test.ts' // }); }); @@ -282,18 +282,18 @@ describe('template source-mapping', () => { ``); expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementStart(0, "div")', sourceUrl: '../test.ts'}); + {source: '
', generated: 'i0.ΔelementStart(0, "div")', sourceUrl: '../test.ts'}); // TODO - map the bindings better expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '
', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); // TODO: the `ctx_r...` appears to be dependent upon previous tests!!! // expect(mappings).toContain({ // source: '{{ name }}', - // generated: 'i0.ɵtextBinding(1, i0.ɵinterpolation1("", ctx_r0.name, ""))', + // generated: 'i0.ΔtextBinding(1, i0.Δinterpolation1("", ctx_r0.name, ""))', // sourceUrl: '../test.ts' // }); }); @@ -304,14 +304,14 @@ describe('template source-mapping', () => { expect(mappings).toContain({ source: '
', - generated: 'i0.ɵelementStart(0, "div")', + generated: 'i0.ΔelementStart(0, "div")', sourceUrl: '../test.ts' }); // TODO - map the bindings better expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); @@ -330,20 +330,20 @@ describe('template source-mapping', () => { `
`); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementStart(0, "h3")', sourceUrl: '../test.ts'}); + {source: '

', generated: 'i0.ΔelementStart(0, "h3")', sourceUrl: '../test.ts'}); expect(mappings).toContain({ source: '', - generated: 'i0.ɵprojection(1, 1)', + generated: 'i0.Δprojection(1, 1)', sourceUrl: '../test.ts' }); expect(mappings).toContain( - {source: '

', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementStart(2, "div")', sourceUrl: '../test.ts'}); + {source: '
', generated: 'i0.ΔelementStart(2, "div")', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {source: '', generated: 'i0.ɵprojection(3)', sourceUrl: '../test.ts'}); + {source: '', generated: 'i0.Δprojection(3)', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {source: '
', generated: 'i0.ɵelementEnd()', sourceUrl: '../test.ts'}); + {source: '
', generated: 'i0.ΔelementEnd()', sourceUrl: '../test.ts'}); }); }); @@ -352,24 +352,24 @@ describe('template source-mapping', () => { // Creation mode expect(mappings).toContain( - {generated: 'i0.ɵelementStart(0, "div")', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementStart(0, "div")', source: '
', sourceUrl: '../test.ts'}); expect(mappings).toContain({ - generated: 'i0.ɵtext(1, "this is a test")', + generated: 'i0.Δtext(1, "this is a test")', source: 'this is a test', sourceUrl: '../test.ts' }); expect(mappings).toContain( - {generated: 'i0.ɵelementEnd()', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementEnd()', source: '
', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {generated: 'i0.ɵelementStart(2, "div")', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementStart(2, "div")', source: '
', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {generated: 'i0.ɵtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'}); + {generated: 'i0.Δtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {generated: 'i0.ɵelementEnd()', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementEnd()', source: '
', sourceUrl: '../test.ts'}); // Update mode expect(mappings).toContain({ - generated: 'i0.ɵtextBinding(3, i0.ɵinterpolation1("", (1 + 2), ""))', + generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", (1 + 2), ""))', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts' }); @@ -380,24 +380,24 @@ describe('template source-mapping', () => { // Creation mode expect(mappings).toContain( - {generated: 'i0.ɵelementStart(0, "div")', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementStart(0, "div")', source: '
', sourceUrl: '../test.ts'}); expect(mappings).toContain({ - generated: 'i0.ɵtext(1, "this is a test")', + generated: 'i0.Δtext(1, "this is a test")', source: 'this is a test', sourceUrl: '../test.ts' }); expect(mappings).toContain( - {generated: 'i0.ɵelementEnd()', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementEnd()', source: '
', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {generated: 'i0.ɵelementStart(2, "div")', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementStart(2, "div")', source: '
', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {generated: 'i0.ɵtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'}); + {generated: 'i0.Δtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts'}); expect(mappings).toContain( - {generated: 'i0.ɵelementEnd()', source: '
', sourceUrl: '../test.ts'}); + {generated: 'i0.ΔelementEnd()', source: '
', sourceUrl: '../test.ts'}); // Update mode expect(mappings).toContain({ - generated: 'i0.ɵtextBinding(3, i0.ɵinterpolation1("", (1 + 2), ""))', + generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", (1 + 2), ""))', source: '{{ 1 + 2 }}', sourceUrl: '../test.ts' }); @@ -409,7 +409,7 @@ describe('template source-mapping', () => { const mappings = compileAndMap('
this is a test
'); expect(mappings).toContain({ - generated: 'i0.ɵelementStart(0, "div", _c0)', + generated: 'i0.ΔelementStart(0, "div", _c0)', source: '
', sourceUrl: '../test.ts' }); @@ -428,30 +428,30 @@ describe('template source-mapping', () => { // Creation mode expect(mappings).toContain({ - generated: 'i0.ɵelementStart(0, "div")', + generated: 'i0.ΔelementStart(0, "div")', source: '
', sourceUrl: '../dir/test.html' }); expect(mappings).toContain({ - generated: 'i0.ɵtext(1, "this is a test")', + generated: 'i0.Δtext(1, "this is a test")', source: 'this is a test', sourceUrl: '../dir/test.html' }); expect(mappings).toContain( - {generated: 'i0.ɵelementEnd()', source: '
', sourceUrl: '../dir/test.html'}); + {generated: 'i0.ΔelementEnd()', source: '
', sourceUrl: '../dir/test.html'}); expect(mappings).toContain({ - generated: 'i0.ɵelementStart(2, "div")', + generated: 'i0.ΔelementStart(2, "div")', source: '
', sourceUrl: '../dir/test.html' }); expect(mappings).toContain( - {generated: 'i0.ɵtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../dir/test.html'}); + {generated: 'i0.Δtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../dir/test.html'}); expect(mappings).toContain( - {generated: 'i0.ɵelementEnd()', source: '
', sourceUrl: '../dir/test.html'}); + {generated: 'i0.ΔelementEnd()', source: '', sourceUrl: '../dir/test.html'}); // Update mode expect(mappings).toContain({ - generated: 'i0.ɵtextBinding(3, i0.ɵinterpolation1("", (1 + 2), ""))', + generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", (1 + 2), ""))', source: '{{ 1 + 2 }}', sourceUrl: '../dir/test.html' }); @@ -463,39 +463,39 @@ describe('template source-mapping', () => { // Creation mode expect(mappings).toContain({ - generated: 'i0.ɵelementStart(0, "div")', + generated: 'i0.ΔelementStart(0, "div")', source: '
', sourceUrl: '../extraRootDir/test.html' }); expect(mappings).toContain({ - generated: 'i0.ɵtext(1, "this is a test")', + generated: 'i0.Δtext(1, "this is a test")', source: 'this is a test', sourceUrl: '../extraRootDir/test.html' }); expect(mappings).toContain({ - generated: 'i0.ɵelementEnd()', + generated: 'i0.ΔelementEnd()', source: '
', sourceUrl: '../extraRootDir/test.html' }); expect(mappings).toContain({ - generated: 'i0.ɵelementStart(2, "div")', + generated: 'i0.ΔelementStart(2, "div")', source: '
', sourceUrl: '../extraRootDir/test.html' }); expect(mappings).toContain({ - generated: 'i0.ɵtext(3)', + generated: 'i0.Δtext(3)', source: '{{ 1 + 2 }}', sourceUrl: '../extraRootDir/test.html' }); expect(mappings).toContain({ - generated: 'i0.ɵelementEnd()', + generated: 'i0.ΔelementEnd()', source: '
', sourceUrl: '../extraRootDir/test.html' }); // Update mode expect(mappings).toContain({ - generated: 'i0.ɵtextBinding(3, i0.ɵinterpolation1("", (1 + 2), ""))', + generated: 'i0.ΔtextBinding(3, i0.Δinterpolation1("", (1 + 2), ""))', source: '{{ 1 + 2 }}', sourceUrl: '../extraRootDir/test.html' }); diff --git a/packages/compiler-cli/test/ngtsc/template_typecheck_spec.ts b/packages/compiler-cli/test/ngtsc/template_typecheck_spec.ts index 69eccd0404..fb7fb40cf3 100644 --- a/packages/compiler-cli/test/ngtsc/template_typecheck_spec.ts +++ b/packages/compiler-cli/test/ngtsc/template_typecheck_spec.ts @@ -26,17 +26,17 @@ export declare class NgForOfContext { export declare class NgForOf { ngForOf: T[]; static ngTemplateContextGuard(dir: NgForOf, ctx: any): ctx is NgForOfContext; - static ngDirectiveDef: i0.ɵDirectiveDefWithMeta, '[ngFor][ngForOf]', never, {'ngForOf': 'ngForOf'}, {}, never>; + static ngDirectiveDef: i0.ΔDirectiveDefWithMeta, '[ngFor][ngForOf]', never, {'ngForOf': 'ngForOf'}, {}, never>; } export declare class NgIf { ngIf: any; static ngTemplateGuard_ngIf(dir: NgIf, expr: E): expr is NonNullable - static ngDirectiveDef: i0.ɵDirectiveDefWithMeta, '[ngIf]', never, {'ngIf': 'ngIf'}, {}, never>; + static ngDirectiveDef: i0.ΔDirectiveDefWithMeta, '[ngIf]', never, {'ngIf': 'ngIf'}, {}, never>; } export declare class CommonModule { - static ngModuleDef: i0.ɵNgModuleDefWithMeta; + static ngModuleDef: i0.ΔNgModuleDefWithMeta; } `); } diff --git a/packages/compiler/design/architecture.md b/packages/compiler/design/architecture.md index 776207b34c..6076110fde 100644 --- a/packages/compiler/design/architecture.md +++ b/packages/compiler/design/architecture.md @@ -81,18 +81,18 @@ In `ngtsc` this is instead emitted as, ```js const i0 = require("@angular/core"); class GreetComponent {} -GreetComponent.ngComponentDef = i0.ɵdefineComponent({ +GreetComponent.ngComponentDef = i0.ΔdefineComponent({ type: GreetComponent, tag: 'greet', factory: () => new GreetComponent(), template: function (rf, ctx) { if (rf & RenderFlags.Create) { - i0.ɵelementStart(0, 'div'); - i0.ɵtext(1); - i0.ɵelementEnd(); + i0.ΔelementStart(0, 'div'); + i0.Δtext(1); + i0.ΔelementEnd(); } if (rf & RenderFlags.Update) { - i0.ɵtextBinding(1, i0.ɵinterpolation1('Hello ', ctx.name, '!')); + i0.ΔtextBinding(1, i0.Δinterpolation1('Hello ', ctx.name, '!')); } } }); @@ -104,14 +104,14 @@ and the `.d.ts` contains: import * as i0 from '@angular/core'; export class GreetComponent { static ngComponentDef: i0.NgComponentDef< - GreetComponent, - 'greet', + GreetComponent, + 'greet', {input: 'input'} >; } ``` -The information needed by reference inversion and type-checking is included in +The information needed by reference inversion and type-checking is included in the type declaration of the `ngComponentDef` in the `.d.ts`. #### TypeScript architecture @@ -127,18 +127,18 @@ The overall architecure of TypeScript is: | TypeScript | -parse-> | AST | ->transform-> | AST | ->print-> | JavaScript | | source | | |-----| | |-----| | source | |------------| | | | |------------| - | type-check | - | | | - | v | - | |--------| | - |--> | errors | <---| + | type-check | + | | | + | v | + | |--------| | + |--> | errors | <---| |--------| -The parse step is a traditional recursive descent parser, augmented to support incremental parsing, that emits an abstract syntax tree (AST). +The parse step is a traditional recursive descent parser, augmented to support incremental parsing, that emits an abstract syntax tree (AST). The type-checker construct a symbol table and then performs type analysis of every expression in the file, reporting errors it finds. This process not extended or modified by `ngtsc`. -The transform step is a set of AST to AST transformations that perform various tasks such as, removing type declarations, lowering module and class declarations to ES5, converting `async` methods to state-machines, etc. +The transform step is a set of AST to AST transformations that perform various tasks such as, removing type declarations, lowering module and class declarations to ES5, converting `async` methods to state-machines, etc. #### Extension points @@ -229,7 +229,7 @@ The `ngtsc` metadata evaluator will be built as a partial Typescript interpreter A template is compiled in `TemplateCompiler` by performing the following: -1. Tokenizes the template +1. Tokenizes the template 2. Parses the tokens into an HTML AST 3. Converts the HTML AST into an Angular Template AST. 4. Translates the Angular Template AST to a template function @@ -244,7 +244,7 @@ As part of this conversion an exhaustive list of selector targets is also produc The `TemplateCompiler` can produce a template function from a string without additional information. However, correct interpretation of that string requires a selector scope discussed below. The selector scope is built at runtime allowing the runtime to use a function built from just a string as long as it is given a selector scope (e.g. an NgModule) to use during instantiation. -#### The selector problem +#### The selector problem To interpret the content of a template, the runtime needs to know what component and directives to apply to the element and what pipes are referenced by binding expressions. The list of candidate components, directives and pipes are determined by the `NgModule` in which the component is declared. Since the module and component are in separate source files, mapping which components, directives and pipes referenced is left to the runtime. Unfortunately, this leads to a tree-shaking problem. Since there no direct link between the component and types the component references then all components, directives and pipes declared in the module, and any module imported from the module, must be available at runtime or risk the template failing to be interpreted correctly. Including everything can lead to a very large program which contains many components the application doesn't actually use. diff --git a/packages/compiler/design/separate_compilation.md b/packages/compiler/design/separate_compilation.md index 914d1c70d9..899d7a0ecc 100644 --- a/packages/compiler/design/separate_compilation.md +++ b/packages/compiler/design/separate_compilation.md @@ -161,7 +161,7 @@ export class MyComponent { ```js export class MyComponent { name: string; - static ngComponentDef = defineComponent({...}); + static ngComponentDef = ΔdefineComponent({...}); } ``` @@ -213,7 +213,7 @@ export class MyDirective { constructor() { this.dirId = 'some id'; } - static ngDirectiveDef = defineDirective({...}); + static ngDirectiveDef = ΔdefineDirective({...}); } ``` @@ -256,7 +256,7 @@ export class MyPipe implements PipeTransform { ```js export class MyPipe { transform(...) ... - static ngPipeDef = definePipe({...}); + static ngPipeDef = ΔdefinePipe({...}); } ``` @@ -329,7 +329,7 @@ export class MyModule {} *my.module.js* ```js export class MyModule { - static ngInjectorDef = defineInjector(...); + static ngInjectorDef = ΔdefineInjector(...); } ``` @@ -389,7 +389,7 @@ manually written as: ```ts export class MyModule { - static ngInjectorDef = defineInjector({ + static ngInjectorDef = ΔdefineInjector({ providers: [{ provide: Service, useClass: ServiceImpl }], @@ -411,7 +411,7 @@ export class MyModule { } ``` -except for the call to `defineInjector` would generate a `{ __symbolic: 'error' }` +except for the call to `ΔdefineInjector` would generate a `{ __symbolic: 'error' }` value which is ignored by the ivy compiler. This allows the system to ignore the difference between manually and mechanically created module definitions. @@ -440,7 +440,7 @@ properties by including a `// @__BUILD_OPTIMIZER_REMOVE_` comment: ```ts export class MyModule { - static ngInjectorDef = defineInjector({ + static ngInjectorDef = ΔdefineInjector({ providers: [{ provide: Service, useClass: ServiceImpl }], diff --git a/packages/compiler/src/identifiers.ts b/packages/compiler/src/identifiers.ts index 9211c2815c..46971af875 100644 --- a/packages/compiler/src/identifiers.ts +++ b/packages/compiler/src/identifiers.ts @@ -62,11 +62,11 @@ export class Identifiers { moduleName: CORE, }; - static inject: o.ExternalReference = {name: 'inject', moduleName: CORE}; + static inject: o.ExternalReference = {name: 'Δinject', moduleName: CORE}; static INJECTOR: o.ExternalReference = {name: 'INJECTOR', moduleName: CORE}; static Injector: o.ExternalReference = {name: 'Injector', moduleName: CORE}; - static defineInjectable: o.ExternalReference = {name: 'defineInjectable', moduleName: CORE}; - static InjectableDef: o.ExternalReference = {name: 'ɵInjectableDef', moduleName: CORE}; + static ΔdefineInjectable: o.ExternalReference = {name: 'ΔdefineInjectable', moduleName: CORE}; + static InjectableDef: o.ExternalReference = {name: 'ΔInjectableDef', moduleName: CORE}; static ViewEncapsulation: o.ExternalReference = { name: 'ViewEncapsulation', moduleName: CORE, @@ -92,7 +92,7 @@ export class Identifiers { name: 'ɵinlineInterpolate', moduleName: CORE, }; - static interpolate: o.ExternalReference = {name: 'ɵinterpolate', moduleName: CORE}; + static interpolate: o.ExternalReference = {name: 'Δinterpolate', moduleName: CORE}; static EMPTY_ARRAY: o.ExternalReference = {name: 'ɵEMPTY_ARRAY', moduleName: CORE}; static EMPTY_MAP: o.ExternalReference = {name: 'ɵEMPTY_MAP', moduleName: CORE}; static Renderer: o.ExternalReference = {name: 'Renderer', moduleName: CORE}; diff --git a/packages/compiler/src/injectable_compiler.ts b/packages/compiler/src/injectable_compiler.ts index 8d07ed0fbd..4e1291369e 100644 --- a/packages/compiler/src/injectable_compiler.ts +++ b/packages/compiler/src/injectable_compiler.ts @@ -116,7 +116,7 @@ export class InjectableCompiler { mapEntry('token', ctx.importExpr(injectable.type.reference)), mapEntry('providedIn', providedIn), ]; - return o.importExpr(Identifiers.defineInjectable).callFn([o.literalMap(def)]); + return o.importExpr(Identifiers.ΔdefineInjectable).callFn([o.literalMap(def)]); } compile(injectable: CompileInjectableMetadata, ctx: OutputContext): void { diff --git a/packages/compiler/src/injectable_compiler_2.ts b/packages/compiler/src/injectable_compiler_2.ts index e1c7b869de..6158b92a91 100644 --- a/packages/compiler/src/injectable_compiler_2.ts +++ b/packages/compiler/src/injectable_compiler_2.ts @@ -100,7 +100,7 @@ export function compileInjectable(meta: R3InjectableMetadata): InjectableDef { const token = meta.type; const providedIn = meta.providedIn; - const expression = o.importExpr(Identifiers.defineInjectable).callFn([mapToMapExpression( + const expression = o.importExpr(Identifiers.ΔdefineInjectable).callFn([mapToMapExpression( {token, factory: result.factory, providedIn})]); const type = new o.ExpressionType(o.importExpr( Identifiers.InjectableDef, [typeWithParameters(meta.type, meta.typeArgumentCount)])); diff --git a/packages/compiler/src/render3/r3_identifiers.ts b/packages/compiler/src/render3/r3_identifiers.ts index 7adb73011f..0c6c2f6b35 100644 --- a/packages/compiler/src/render3/r3_identifiers.ts +++ b/packages/compiler/src/render3/r3_identifiers.ts @@ -17,226 +17,226 @@ export class Identifiers { static PATCH_DEPS = 'patchedDeps'; /* Instructions */ - static namespaceHTML: o.ExternalReference = {name: 'ɵnamespaceHTML', moduleName: CORE}; + static namespaceHTML: o.ExternalReference = {name: 'ΔnamespaceHTML', moduleName: CORE}; - static namespaceMathML: o.ExternalReference = {name: 'ɵnamespaceMathML', moduleName: CORE}; + static namespaceMathML: o.ExternalReference = {name: 'ΔnamespaceMathML', moduleName: CORE}; - static namespaceSVG: o.ExternalReference = {name: 'ɵnamespaceSVG', moduleName: CORE}; + static namespaceSVG: o.ExternalReference = {name: 'ΔnamespaceSVG', moduleName: CORE}; - static element: o.ExternalReference = {name: 'ɵelement', moduleName: CORE}; + static element: o.ExternalReference = {name: 'Δelement', moduleName: CORE}; - static elementStart: o.ExternalReference = {name: 'ɵelementStart', moduleName: CORE}; + static elementStart: o.ExternalReference = {name: 'ΔelementStart', moduleName: CORE}; - static elementEnd: o.ExternalReference = {name: 'ɵelementEnd', moduleName: CORE}; + static elementEnd: o.ExternalReference = {name: 'ΔelementEnd', moduleName: CORE}; - static elementProperty: o.ExternalReference = {name: 'ɵelementProperty', moduleName: CORE}; + static elementProperty: o.ExternalReference = {name: 'ΔelementProperty', moduleName: CORE}; - static select: o.ExternalReference = {name: 'ɵselect', moduleName: CORE}; + static select: o.ExternalReference = {name: 'Δselect', moduleName: CORE}; static componentHostSyntheticProperty: - o.ExternalReference = {name: 'ɵcomponentHostSyntheticProperty', moduleName: CORE}; + o.ExternalReference = {name: 'ΔcomponentHostSyntheticProperty', moduleName: CORE}; static componentHostSyntheticListener: - o.ExternalReference = {name: 'ɵcomponentHostSyntheticListener', moduleName: CORE}; + o.ExternalReference = {name: 'ΔcomponentHostSyntheticListener', moduleName: CORE}; - static elementAttribute: o.ExternalReference = {name: 'ɵelementAttribute', moduleName: CORE}; + static elementAttribute: o.ExternalReference = {name: 'ΔelementAttribute', moduleName: CORE}; - static elementClassProp: o.ExternalReference = {name: 'ɵelementClassProp', moduleName: CORE}; + static elementClassProp: o.ExternalReference = {name: 'ΔelementClassProp', moduleName: CORE}; static elementContainerStart: - o.ExternalReference = {name: 'ɵelementContainerStart', moduleName: CORE}; + o.ExternalReference = {name: 'ΔelementContainerStart', moduleName: CORE}; static elementContainerEnd: - o.ExternalReference = {name: 'ɵelementContainerEnd', moduleName: CORE}; + o.ExternalReference = {name: 'ΔelementContainerEnd', moduleName: CORE}; - static elementStyling: o.ExternalReference = {name: 'ɵelementStyling', moduleName: CORE}; + static elementStyling: o.ExternalReference = {name: 'ΔelementStyling', moduleName: CORE}; - static elementStylingMap: o.ExternalReference = {name: 'ɵelementStylingMap', moduleName: CORE}; + static elementStylingMap: o.ExternalReference = {name: 'ΔelementStylingMap', moduleName: CORE}; - static elementStyleProp: o.ExternalReference = {name: 'ɵelementStyleProp', moduleName: CORE}; + static elementStyleProp: o.ExternalReference = {name: 'ΔelementStyleProp', moduleName: CORE}; static elementStylingApply: - o.ExternalReference = {name: 'ɵelementStylingApply', moduleName: CORE}; + o.ExternalReference = {name: 'ΔelementStylingApply', moduleName: CORE}; - static elementHostAttrs: o.ExternalReference = {name: 'ɵelementHostAttrs', moduleName: CORE}; + static elementHostAttrs: o.ExternalReference = {name: 'ΔelementHostAttrs', moduleName: CORE}; - static elementHostStyling: o.ExternalReference = {name: 'ɵelementHostStyling', moduleName: CORE}; + static elementHostStyling: o.ExternalReference = {name: 'ΔelementHostStyling', moduleName: CORE}; static elementHostStylingMap: - o.ExternalReference = {name: 'ɵelementHostStylingMap', moduleName: CORE}; + o.ExternalReference = {name: 'ΔelementHostStylingMap', moduleName: CORE}; static elementHostStyleProp: - o.ExternalReference = {name: 'ɵelementHostStyleProp', moduleName: CORE}; + o.ExternalReference = {name: 'ΔelementHostStyleProp', moduleName: CORE}; static elementHostClassProp: - o.ExternalReference = {name: 'ɵelementHostClassProp', moduleName: CORE}; + o.ExternalReference = {name: 'ΔelementHostClassProp', moduleName: CORE}; static elementHostStylingApply: - o.ExternalReference = {name: 'ɵelementHostStylingApply', moduleName: CORE}; + o.ExternalReference = {name: 'ΔelementHostStylingApply', moduleName: CORE}; - static containerCreate: o.ExternalReference = {name: 'ɵcontainer', moduleName: CORE}; + static containerCreate: o.ExternalReference = {name: 'Δcontainer', moduleName: CORE}; - static nextContext: o.ExternalReference = {name: 'ɵnextContext', moduleName: CORE}; + static nextContext: o.ExternalReference = {name: 'ΔnextContext', moduleName: CORE}; - static templateCreate: o.ExternalReference = {name: 'ɵtemplate', moduleName: CORE}; + static templateCreate: o.ExternalReference = {name: 'Δtemplate', moduleName: CORE}; - static text: o.ExternalReference = {name: 'ɵtext', moduleName: CORE}; + static text: o.ExternalReference = {name: 'Δtext', moduleName: CORE}; - static textBinding: o.ExternalReference = {name: 'ɵtextBinding', moduleName: CORE}; + static textBinding: o.ExternalReference = {name: 'ΔtextBinding', moduleName: CORE}; - static bind: o.ExternalReference = {name: 'ɵbind', moduleName: CORE}; + static bind: o.ExternalReference = {name: 'Δbind', moduleName: CORE}; - static enableBindings: o.ExternalReference = {name: 'ɵenableBindings', moduleName: CORE}; + static enableBindings: o.ExternalReference = {name: 'ΔenableBindings', moduleName: CORE}; - static disableBindings: o.ExternalReference = {name: 'ɵdisableBindings', moduleName: CORE}; + static disableBindings: o.ExternalReference = {name: 'ΔdisableBindings', moduleName: CORE}; - static allocHostVars: o.ExternalReference = {name: 'ɵallocHostVars', moduleName: CORE}; + static allocHostVars: o.ExternalReference = {name: 'ΔallocHostVars', moduleName: CORE}; - static getCurrentView: o.ExternalReference = {name: 'ɵgetCurrentView', moduleName: CORE}; + static getCurrentView: o.ExternalReference = {name: 'ΔgetCurrentView', moduleName: CORE}; - static restoreView: o.ExternalReference = {name: 'ɵrestoreView', moduleName: CORE}; + static restoreView: o.ExternalReference = {name: 'ΔrestoreView', moduleName: CORE}; - static interpolation1: o.ExternalReference = {name: 'ɵinterpolation1', moduleName: CORE}; - static interpolation2: o.ExternalReference = {name: 'ɵinterpolation2', moduleName: CORE}; - static interpolation3: o.ExternalReference = {name: 'ɵinterpolation3', moduleName: CORE}; - static interpolation4: o.ExternalReference = {name: 'ɵinterpolation4', moduleName: CORE}; - static interpolation5: o.ExternalReference = {name: 'ɵinterpolation5', moduleName: CORE}; - static interpolation6: o.ExternalReference = {name: 'ɵinterpolation6', moduleName: CORE}; - static interpolation7: o.ExternalReference = {name: 'ɵinterpolation7', moduleName: CORE}; - static interpolation8: o.ExternalReference = {name: 'ɵinterpolation8', moduleName: CORE}; - static interpolationV: o.ExternalReference = {name: 'ɵinterpolationV', moduleName: CORE}; + static interpolation1: o.ExternalReference = {name: 'Δinterpolation1', moduleName: CORE}; + static interpolation2: o.ExternalReference = {name: 'Δinterpolation2', moduleName: CORE}; + static interpolation3: o.ExternalReference = {name: 'Δinterpolation3', moduleName: CORE}; + static interpolation4: o.ExternalReference = {name: 'Δinterpolation4', moduleName: CORE}; + static interpolation5: o.ExternalReference = {name: 'Δinterpolation5', moduleName: CORE}; + static interpolation6: o.ExternalReference = {name: 'Δinterpolation6', moduleName: CORE}; + static interpolation7: o.ExternalReference = {name: 'Δinterpolation7', moduleName: CORE}; + static interpolation8: o.ExternalReference = {name: 'Δinterpolation8', moduleName: CORE}; + static interpolationV: o.ExternalReference = {name: 'ΔinterpolationV', moduleName: CORE}; - static pureFunction0: o.ExternalReference = {name: 'ɵpureFunction0', moduleName: CORE}; - static pureFunction1: o.ExternalReference = {name: 'ɵpureFunction1', moduleName: CORE}; - static pureFunction2: o.ExternalReference = {name: 'ɵpureFunction2', moduleName: CORE}; - static pureFunction3: o.ExternalReference = {name: 'ɵpureFunction3', moduleName: CORE}; - static pureFunction4: o.ExternalReference = {name: 'ɵpureFunction4', moduleName: CORE}; - static pureFunction5: o.ExternalReference = {name: 'ɵpureFunction5', moduleName: CORE}; - static pureFunction6: o.ExternalReference = {name: 'ɵpureFunction6', moduleName: CORE}; - static pureFunction7: o.ExternalReference = {name: 'ɵpureFunction7', moduleName: CORE}; - static pureFunction8: o.ExternalReference = {name: 'ɵpureFunction8', moduleName: CORE}; - static pureFunctionV: o.ExternalReference = {name: 'ɵpureFunctionV', moduleName: CORE}; + static pureFunction0: o.ExternalReference = {name: 'ΔpureFunction0', moduleName: CORE}; + static pureFunction1: o.ExternalReference = {name: 'ΔpureFunction1', moduleName: CORE}; + static pureFunction2: o.ExternalReference = {name: 'ΔpureFunction2', moduleName: CORE}; + static pureFunction3: o.ExternalReference = {name: 'ΔpureFunction3', moduleName: CORE}; + static pureFunction4: o.ExternalReference = {name: 'ΔpureFunction4', moduleName: CORE}; + static pureFunction5: o.ExternalReference = {name: 'ΔpureFunction5', moduleName: CORE}; + static pureFunction6: o.ExternalReference = {name: 'ΔpureFunction6', moduleName: CORE}; + static pureFunction7: o.ExternalReference = {name: 'ΔpureFunction7', moduleName: CORE}; + static pureFunction8: o.ExternalReference = {name: 'ΔpureFunction8', moduleName: CORE}; + static pureFunctionV: o.ExternalReference = {name: 'ΔpureFunctionV', moduleName: CORE}; - static pipeBind1: o.ExternalReference = {name: 'ɵpipeBind1', moduleName: CORE}; - static pipeBind2: o.ExternalReference = {name: 'ɵpipeBind2', moduleName: CORE}; - static pipeBind3: o.ExternalReference = {name: 'ɵpipeBind3', moduleName: CORE}; - static pipeBind4: o.ExternalReference = {name: 'ɵpipeBind4', moduleName: CORE}; - static pipeBindV: o.ExternalReference = {name: 'ɵpipeBindV', moduleName: CORE}; + static pipeBind1: o.ExternalReference = {name: 'ΔpipeBind1', moduleName: CORE}; + static pipeBind2: o.ExternalReference = {name: 'ΔpipeBind2', moduleName: CORE}; + static pipeBind3: o.ExternalReference = {name: 'ΔpipeBind3', moduleName: CORE}; + static pipeBind4: o.ExternalReference = {name: 'ΔpipeBind4', moduleName: CORE}; + static pipeBindV: o.ExternalReference = {name: 'ΔpipeBindV', moduleName: CORE}; - static i18n: o.ExternalReference = {name: 'ɵi18n', moduleName: CORE}; - static i18nAttributes: o.ExternalReference = {name: 'ɵi18nAttributes', moduleName: CORE}; - static i18nExp: o.ExternalReference = {name: 'ɵi18nExp', moduleName: CORE}; - static i18nStart: o.ExternalReference = {name: 'ɵi18nStart', moduleName: CORE}; - static i18nEnd: o.ExternalReference = {name: 'ɵi18nEnd', moduleName: CORE}; - static i18nApply: o.ExternalReference = {name: 'ɵi18nApply', moduleName: CORE}; - static i18nPostprocess: o.ExternalReference = {name: 'ɵi18nPostprocess', moduleName: CORE}; + static i18n: o.ExternalReference = {name: 'Δi18n', moduleName: CORE}; + static i18nAttributes: o.ExternalReference = {name: 'Δi18nAttributes', moduleName: CORE}; + static i18nExp: o.ExternalReference = {name: 'Δi18nExp', moduleName: CORE}; + static i18nStart: o.ExternalReference = {name: 'Δi18nStart', moduleName: CORE}; + static i18nEnd: o.ExternalReference = {name: 'Δi18nEnd', moduleName: CORE}; + static i18nApply: o.ExternalReference = {name: 'Δi18nApply', moduleName: CORE}; + static i18nPostprocess: o.ExternalReference = {name: 'Δi18nPostprocess', moduleName: CORE}; - static load: o.ExternalReference = {name: 'ɵload', moduleName: CORE}; + static load: o.ExternalReference = {name: 'Δload', moduleName: CORE}; - static pipe: o.ExternalReference = {name: 'ɵpipe', moduleName: CORE}; + static pipe: o.ExternalReference = {name: 'Δpipe', moduleName: CORE}; - static projection: o.ExternalReference = {name: 'ɵprojection', moduleName: CORE}; - static projectionDef: o.ExternalReference = {name: 'ɵprojectionDef', moduleName: CORE}; + static projection: o.ExternalReference = {name: 'Δprojection', moduleName: CORE}; + static projectionDef: o.ExternalReference = {name: 'ΔprojectionDef', moduleName: CORE}; - static reference: o.ExternalReference = {name: 'ɵreference', moduleName: CORE}; + static reference: o.ExternalReference = {name: 'Δreference', moduleName: CORE}; - static inject: o.ExternalReference = {name: 'inject', moduleName: CORE}; + static inject: o.ExternalReference = {name: 'Δinject', moduleName: CORE}; - static injectAttribute: o.ExternalReference = {name: 'ɵinjectAttribute', moduleName: CORE}; + static injectAttribute: o.ExternalReference = {name: 'ΔinjectAttribute', moduleName: CORE}; - static directiveInject: o.ExternalReference = {name: 'ɵdirectiveInject', moduleName: CORE}; + static directiveInject: o.ExternalReference = {name: 'ΔdirectiveInject', moduleName: CORE}; static templateRefExtractor: - o.ExternalReference = {name: 'ɵtemplateRefExtractor', moduleName: CORE}; + o.ExternalReference = {name: 'ΔtemplateRefExtractor', moduleName: CORE}; - static resolveWindow: o.ExternalReference = {name: 'ɵresolveWindow', moduleName: CORE}; - static resolveDocument: o.ExternalReference = {name: 'ɵresolveDocument', moduleName: CORE}; - static resolveBody: o.ExternalReference = {name: 'ɵresolveBody', moduleName: CORE}; + static resolveWindow: o.ExternalReference = {name: 'ΔresolveWindow', moduleName: CORE}; + static resolveDocument: o.ExternalReference = {name: 'ΔresolveDocument', moduleName: CORE}; + static resolveBody: o.ExternalReference = {name: 'ΔresolveBody', moduleName: CORE}; - static defineBase: o.ExternalReference = {name: 'ɵdefineBase', moduleName: CORE}; + static defineBase: o.ExternalReference = {name: 'ΔdefineBase', moduleName: CORE}; static BaseDef: o.ExternalReference = { - name: 'ɵBaseDef', + name: 'ΔBaseDef', moduleName: CORE, }; - static defineComponent: o.ExternalReference = {name: 'ɵdefineComponent', moduleName: CORE}; + static defineComponent: o.ExternalReference = {name: 'ΔdefineComponent', moduleName: CORE}; - static setComponentScope: o.ExternalReference = {name: 'ɵsetComponentScope', moduleName: CORE}; + static setComponentScope: o.ExternalReference = {name: 'ΔsetComponentScope', moduleName: CORE}; static ComponentDefWithMeta: o.ExternalReference = { - name: 'ɵComponentDefWithMeta', + name: 'ΔComponentDefWithMeta', moduleName: CORE, }; static defineDirective: o.ExternalReference = { - name: 'ɵdefineDirective', + name: 'ΔdefineDirective', moduleName: CORE, }; static DirectiveDefWithMeta: o.ExternalReference = { - name: 'ɵDirectiveDefWithMeta', + name: 'ΔDirectiveDefWithMeta', moduleName: CORE, }; static InjectorDef: o.ExternalReference = { - name: 'ɵInjectorDef', + name: 'ΔInjectorDef', moduleName: CORE, }; static defineInjector: o.ExternalReference = { - name: 'defineInjector', + name: 'ΔdefineInjector', moduleName: CORE, }; static NgModuleDefWithMeta: o.ExternalReference = { - name: 'ɵNgModuleDefWithMeta', + name: 'ΔNgModuleDefWithMeta', moduleName: CORE, }; - static defineNgModule: o.ExternalReference = {name: 'ɵdefineNgModule', moduleName: CORE}; - static setNgModuleScope: o.ExternalReference = {name: 'ɵsetNgModuleScope', moduleName: CORE}; + static defineNgModule: o.ExternalReference = {name: 'ΔdefineNgModule', moduleName: CORE}; + static setNgModuleScope: o.ExternalReference = {name: 'ΔsetNgModuleScope', moduleName: CORE}; - static PipeDefWithMeta: o.ExternalReference = {name: 'ɵPipeDefWithMeta', moduleName: CORE}; + static PipeDefWithMeta: o.ExternalReference = {name: 'ΔPipeDefWithMeta', moduleName: CORE}; - static definePipe: o.ExternalReference = {name: 'ɵdefinePipe', moduleName: CORE}; + static definePipe: o.ExternalReference = {name: 'ΔdefinePipe', moduleName: CORE}; - static queryRefresh: o.ExternalReference = {name: 'ɵqueryRefresh', moduleName: CORE}; - static viewQuery: o.ExternalReference = {name: 'ɵviewQuery', moduleName: CORE}; - static staticViewQuery: o.ExternalReference = {name: 'ɵstaticViewQuery', moduleName: CORE}; - static staticContentQuery: o.ExternalReference = {name: 'ɵstaticContentQuery', moduleName: CORE}; - static loadViewQuery: o.ExternalReference = {name: 'ɵloadViewQuery', moduleName: CORE}; - static contentQuery: o.ExternalReference = {name: 'ɵcontentQuery', moduleName: CORE}; - static loadContentQuery: o.ExternalReference = {name: 'ɵloadContentQuery', moduleName: CORE}; + static queryRefresh: o.ExternalReference = {name: 'ΔqueryRefresh', moduleName: CORE}; + static viewQuery: o.ExternalReference = {name: 'ΔviewQuery', moduleName: CORE}; + static staticViewQuery: o.ExternalReference = {name: 'ΔstaticViewQuery', moduleName: CORE}; + static staticContentQuery: o.ExternalReference = {name: 'ΔstaticContentQuery', moduleName: CORE}; + static loadViewQuery: o.ExternalReference = {name: 'ΔloadViewQuery', moduleName: CORE}; + static contentQuery: o.ExternalReference = {name: 'ΔcontentQuery', moduleName: CORE}; + static loadContentQuery: o.ExternalReference = {name: 'ΔloadContentQuery', moduleName: CORE}; - static NgOnChangesFeature: o.ExternalReference = {name: 'ɵNgOnChangesFeature', moduleName: CORE}; + static NgOnChangesFeature: o.ExternalReference = {name: 'ΔNgOnChangesFeature', moduleName: CORE}; static InheritDefinitionFeature: - o.ExternalReference = {name: 'ɵInheritDefinitionFeature', moduleName: CORE}; + o.ExternalReference = {name: 'ΔInheritDefinitionFeature', moduleName: CORE}; - static ProvidersFeature: o.ExternalReference = {name: 'ɵProvidersFeature', moduleName: CORE}; + static ProvidersFeature: o.ExternalReference = {name: 'ΔProvidersFeature', moduleName: CORE}; - static listener: o.ExternalReference = {name: 'ɵlistener', moduleName: CORE}; + static listener: o.ExternalReference = {name: 'Δlistener', moduleName: CORE}; static getFactoryOf: o.ExternalReference = { - name: 'ɵgetFactoryOf', + name: 'ΔgetFactoryOf', moduleName: CORE, }; static getInheritedFactory: o.ExternalReference = { - name: 'ɵgetInheritedFactory', + name: 'ΔgetInheritedFactory', moduleName: CORE, }; // sanitization-related functions - static sanitizeHtml: o.ExternalReference = {name: 'ɵsanitizeHtml', moduleName: CORE}; - static sanitizeStyle: o.ExternalReference = {name: 'ɵsanitizeStyle', moduleName: CORE}; + static sanitizeHtml: o.ExternalReference = {name: 'ΔsanitizeHtml', moduleName: CORE}; + static sanitizeStyle: o.ExternalReference = {name: 'ΔsanitizeStyle', moduleName: CORE}; static defaultStyleSanitizer: - o.ExternalReference = {name: 'ɵdefaultStyleSanitizer', moduleName: CORE}; + o.ExternalReference = {name: 'ΔdefaultStyleSanitizer', moduleName: CORE}; static sanitizeResourceUrl: - o.ExternalReference = {name: 'ɵsanitizeResourceUrl', moduleName: CORE}; - static sanitizeScript: o.ExternalReference = {name: 'ɵsanitizeScript', moduleName: CORE}; - static sanitizeUrl: o.ExternalReference = {name: 'ɵsanitizeUrl', moduleName: CORE}; + o.ExternalReference = {name: 'ΔsanitizeResourceUrl', moduleName: CORE}; + static sanitizeScript: o.ExternalReference = {name: 'ΔsanitizeScript', moduleName: CORE}; + static sanitizeUrl: o.ExternalReference = {name: 'ΔsanitizeUrl', moduleName: CORE}; static sanitizeUrlOrResourceUrl: - o.ExternalReference = {name: 'ɵsanitizeUrlOrResourceUrl', moduleName: CORE}; + o.ExternalReference = {name: 'ΔsanitizeUrlOrResourceUrl', moduleName: CORE}; } diff --git a/packages/compiler/src/render3/r3_module_compiler.ts b/packages/compiler/src/render3/r3_module_compiler.ts index ff5673ffed..a2913566a4 100644 --- a/packages/compiler/src/render3/r3_module_compiler.ts +++ b/packages/compiler/src/render3/r3_module_compiler.ts @@ -102,7 +102,7 @@ export function compileNgModule(meta: R3NgModuleMetadata): R3NgModuleDef { } // If requested to emit scope information inline, pass the declarations, imports and exports to - // the `defineNgModule` call. The JIT compilation uses this. + // the `ΔdefineNgModule` call. The JIT compilation uses this. if (emitInline) { if (declarations.length) { definitionMap.declarations = refsToArray(declarations, containsForwardDecls); @@ -117,7 +117,7 @@ export function compileNgModule(meta: R3NgModuleMetadata): R3NgModuleDef { } } - // If not emitting inline, the scope information is not passed into `defineNgModule` as it would + // If not emitting inline, the scope information is not passed into `ΔdefineNgModule` as it would // prevent tree-shaking of the declarations, imports and exports references. else { const setNgModuleScopeCall = generateSetNgModuleScopeCall(meta); @@ -141,7 +141,7 @@ export function compileNgModule(meta: R3NgModuleMetadata): R3NgModuleDef { } /** - * Generates a function call to `setNgModuleScope` with all necessary information so that the + * Generates a function call to `ΔsetNgModuleScope` with all necessary information so that the * transitive module scope can be computed during runtime in JIT mode. This call is marked pure * such that the references to declarations, imports and exports may be elided causing these * symbols to become tree-shakeable. diff --git a/packages/compiler/src/render3/view/template.ts b/packages/compiler/src/render3/view/template.ts index ae2f230fed..e0089bd5aa 100644 --- a/packages/compiler/src/render3/view/template.ts +++ b/packages/compiler/src/render3/view/template.ts @@ -840,7 +840,7 @@ export class TemplateDefinitionBuilder implements t.Visitor, LocalResolver return trimTrailingNulls(parameters); }); - // handle property bindings e.g. ɵelementProperty(1, 'ngForOf', ɵbind(ctx.items)); + // handle property bindings e.g. ΔelementProperty(1, 'ngForOf', Δbind(ctx.items)); const context = o.variable(CONTEXT_NAME); this.templatePropertyBindings(template, templateIndex, context, template.templateAttrs); diff --git a/packages/core/src/change_detection/differs/iterable_differs.ts b/packages/core/src/change_detection/differs/iterable_differs.ts index 6e9f90c06f..f8727adb5e 100644 --- a/packages/core/src/change_detection/differs/iterable_differs.ts +++ b/packages/core/src/change_detection/differs/iterable_differs.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {defineInjectable} from '../../di/interface/defs'; +import {ΔdefineInjectable} from '../../di/interface/defs'; import {StaticProvider} from '../../di/interface/provider'; import {Optional, SkipSelf} from '../../di/metadata'; import {DefaultIterableDifferFactory} from '../differs/default_iterable_differ'; @@ -143,7 +143,7 @@ export interface IterableDifferFactory { */ export class IterableDiffers { /** @nocollapse */ - static ngInjectableDef = defineInjectable({ + static ngInjectableDef = ΔdefineInjectable({ providedIn: 'root', factory: () => new IterableDiffers([new DefaultIterableDifferFactory()]) }); diff --git a/packages/core/src/change_detection/differs/keyvalue_differs.ts b/packages/core/src/change_detection/differs/keyvalue_differs.ts index c2670339cd..d511134b72 100644 --- a/packages/core/src/change_detection/differs/keyvalue_differs.ts +++ b/packages/core/src/change_detection/differs/keyvalue_differs.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {Optional, SkipSelf, StaticProvider, defineInjectable} from '../../di'; +import {Optional, SkipSelf, StaticProvider, ΔdefineInjectable} from '../../di'; import {DefaultKeyValueDifferFactory} from './default_keyvalue_differ'; @@ -118,7 +118,7 @@ export interface KeyValueDifferFactory { */ export class KeyValueDiffers { /** @nocollapse */ - static ngInjectableDef = defineInjectable({ + static ngInjectableDef = ΔdefineInjectable({ providedIn: 'root', factory: () => new KeyValueDiffers([new DefaultKeyValueDifferFactory()]) }); diff --git a/packages/core/src/codegen_private_exports.ts b/packages/core/src/codegen_private_exports.ts index bddc41e14d..fffbd4f4fa 100644 --- a/packages/core/src/codegen_private_exports.ts +++ b/packages/core/src/codegen_private_exports.ts @@ -8,4 +8,4 @@ export {CodegenComponentFactoryResolver as ɵCodegenComponentFactoryResolver} from './linker/component_factory_resolver'; export {registerModuleFactory as ɵregisterModuleFactory} from './linker/ng_module_factory_loader'; -export {ArgumentType as ɵArgumentType, BindingFlags as ɵBindingFlags, DepFlags as ɵDepFlags, EMPTY_ARRAY as ɵEMPTY_ARRAY, EMPTY_MAP as ɵEMPTY_MAP, NodeFlags as ɵNodeFlags, QueryBindingType as ɵQueryBindingType, QueryValueType as ɵQueryValueType, ViewDefinition as ɵViewDefinition, ViewFlags as ɵViewFlags, anchorDef as ɵand, createComponentFactory as ɵccf, createNgModuleFactory as ɵcmf, createRendererType2 as ɵcrt, directiveDef as ɵdid, elementDef as ɵeld, elementEventFullName as ɵelementEventFullName, getComponentViewDefinitionFactory as ɵgetComponentViewDefinitionFactory, inlineInterpolate as ɵinlineInterpolate, interpolate as ɵinterpolate, moduleDef as ɵmod, moduleProvideDef as ɵmpd, ngContentDef as ɵncd, nodeValue as ɵnov, pipeDef as ɵpid, providerDef as ɵprd, pureArrayDef as ɵpad, pureObjectDef as ɵpod, purePipeDef as ɵppd, queryDef as ɵqud, textDef as ɵted, unwrapValue as ɵunv, viewDef as ɵvid} from './view/index'; +export {ArgumentType as ɵArgumentType, BindingFlags as ɵBindingFlags, DepFlags as ɵDepFlags, EMPTY_ARRAY as ɵEMPTY_ARRAY, EMPTY_MAP as ɵEMPTY_MAP, NodeFlags as ɵNodeFlags, QueryBindingType as ɵQueryBindingType, QueryValueType as ɵQueryValueType, ViewDefinition as ɵViewDefinition, ViewFlags as ɵViewFlags, anchorDef as ɵand, createComponentFactory as ɵccf, createNgModuleFactory as ɵcmf, createRendererType2 as ɵcrt, directiveDef as ɵdid, elementDef as ɵeld, getComponentViewDefinitionFactory as ɵgetComponentViewDefinitionFactory, inlineInterpolate as ɵinlineInterpolate, interpolate as ɵinterpolate, moduleDef as ɵmod, moduleProvideDef as ɵmpd, ngContentDef as ɵncd, nodeValue as ɵnov, pipeDef as ɵpid, providerDef as ɵprd, pureArrayDef as ɵpad, pureObjectDef as ɵpod, purePipeDef as ɵppd, queryDef as ɵqud, textDef as ɵted, unwrapValue as ɵunv, viewDef as ɵvid} from './view/index'; diff --git a/packages/core/src/core_private_export.ts b/packages/core/src/core_private_export.ts index f5086aa77c..98595d9b27 100644 --- a/packages/core/src/core_private_export.ts +++ b/packages/core/src/core_private_export.ts @@ -13,8 +13,8 @@ export {devModeEqual as ɵdevModeEqual} from './change_detection/change_detectio export {isListLikeIterable as ɵisListLikeIterable} from './change_detection/change_detection_util'; export {ChangeDetectorStatus as ɵChangeDetectorStatus, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy} from './change_detection/constants'; export {Console as ɵConsole} from './console'; -export {inject as ɵinject, setCurrentInjector as ɵsetCurrentInjector} from './di/injector_compatibility'; -export {InjectableDef as ɵInjectableDef, InjectorDef as ɵInjectorDef, getInjectableDef as ɵgetInjectableDef} from './di/interface/defs'; +export {inject, setCurrentInjector as ɵsetCurrentInjector, Δinject} from './di/injector_compatibility'; +export {getInjectableDef as ɵgetInjectableDef, ΔInjectableDef as ΔInjectableDef, ΔInjectorDef} from './di/interface/defs'; export {APP_ROOT as ɵAPP_ROOT} from './di/scope'; export {ivyEnabled as ɵivyEnabled} from './ivy_switch'; export {ComponentFactory as ɵComponentFactory} from './linker/component_factory'; @@ -27,6 +27,7 @@ export {_sanitizeHtml as ɵ_sanitizeHtml} from './sanitization/html_sanitizer'; export {_sanitizeStyle as ɵ_sanitizeStyle} from './sanitization/style_sanitizer'; export {_sanitizeUrl as ɵ_sanitizeUrl} from './sanitization/url_sanitizer'; export {global as ɵglobal} from './util/global'; + export {looseIdentical as ɵlooseIdentical,} from './util/comparison'; export {stringify as ɵstringify} from './util/stringify'; export {makeDecorator as ɵmakeDecorator} from './util/decorators'; diff --git a/packages/core/src/core_render3_private_export.ts b/packages/core/src/core_render3_private_export.ts index db9a85429e..784344424b 100644 --- a/packages/core/src/core_render3_private_export.ts +++ b/packages/core/src/core_render3_private_export.ts @@ -8,11 +8,11 @@ // clang-format off export { - defineBase as ɵdefineBase, - defineComponent as ɵdefineComponent, - defineDirective as ɵdefineDirective, - definePipe as ɵdefinePipe, - defineNgModule as ɵdefineNgModule, + ΔdefineBase, + ΔdefineComponent, + ΔdefineDirective, + ΔdefinePipe, + ΔdefineNgModule, detectChanges as ɵdetectChanges, renderComponent as ɵrenderComponent, AttributeMarker as ɵAttributeMarker, @@ -21,16 +21,16 @@ export { ComponentRef as ɵRender3ComponentRef, DirectiveType as ɵDirectiveType, RenderFlags as ɵRenderFlags, - directiveInject as ɵdirectiveInject, - injectAttribute as ɵinjectAttribute, - getFactoryOf as ɵgetFactoryOf, - getInheritedFactory as ɵgetInheritedFactory, - setComponentScope as ɵsetComponentScope, - setNgModuleScope as ɵsetNgModuleScope, - templateRefExtractor as ɵtemplateRefExtractor, - ProvidersFeature as ɵProvidersFeature, - InheritDefinitionFeature as ɵInheritDefinitionFeature, - NgOnChangesFeature as ɵNgOnChangesFeature, + ΔdirectiveInject, + ΔinjectAttribute, + ΔgetFactoryOf, + ΔgetInheritedFactory, + ΔsetComponentScope, + ΔsetNgModuleScope, + ΔtemplateRefExtractor, + ΔProvidersFeature, + ΔInheritDefinitionFeature, + ΔNgOnChangesFeature, LifecycleHooksFeature as ɵLifecycleHooksFeature, NgModuleType as ɵNgModuleType, NgModuleRef as ɵRender3NgModuleRef, @@ -38,106 +38,106 @@ export { markDirty as ɵmarkDirty, NgModuleFactory as ɵNgModuleFactory, NO_CHANGE as ɵNO_CHANGE, - container as ɵcontainer, - nextContext as ɵnextContext, - elementStart as ɵelementStart, - namespaceHTML as ɵnamespaceHTML, - namespaceMathML as ɵnamespaceMathML, - namespaceSVG as ɵnamespaceSVG, - element as ɵelement, - listener as ɵlistener, - text as ɵtext, - embeddedViewStart as ɵembeddedViewStart, - projection as ɵprojection, - bind as ɵbind, - interpolation1 as ɵinterpolation1, - interpolation2 as ɵinterpolation2, - interpolation3 as ɵinterpolation3, - interpolation4 as ɵinterpolation4, - interpolation5 as ɵinterpolation5, - interpolation6 as ɵinterpolation6, - interpolation7 as ɵinterpolation7, - interpolation8 as ɵinterpolation8, - interpolationV as ɵinterpolationV, - pipeBind1 as ɵpipeBind1, - pipeBind2 as ɵpipeBind2, - pipeBind3 as ɵpipeBind3, - pipeBind4 as ɵpipeBind4, - pipeBindV as ɵpipeBindV, - pureFunction0 as ɵpureFunction0, - pureFunction1 as ɵpureFunction1, - pureFunction2 as ɵpureFunction2, - pureFunction3 as ɵpureFunction3, - pureFunction4 as ɵpureFunction4, - pureFunction5 as ɵpureFunction5, - pureFunction6 as ɵpureFunction6, - pureFunction7 as ɵpureFunction7, - pureFunction8 as ɵpureFunction8, - pureFunctionV as ɵpureFunctionV, - getCurrentView as ɵgetCurrentView, + Δcontainer, + ΔnextContext, + ΔelementStart, + ΔnamespaceHTML, + ΔnamespaceMathML, + ΔnamespaceSVG, + Δelement, + Δlistener, + Δtext, + ΔembeddedViewStart, + Δprojection, + Δbind, + Δinterpolation1, + Δinterpolation2, + Δinterpolation3, + Δinterpolation4, + Δinterpolation5, + Δinterpolation6, + Δinterpolation7, + Δinterpolation8, + ΔinterpolationV, + ΔpipeBind1, + ΔpipeBind2, + ΔpipeBind3, + ΔpipeBind4, + ΔpipeBindV, + ΔpureFunction0, + ΔpureFunction1, + ΔpureFunction2, + ΔpureFunction3, + ΔpureFunction4, + ΔpureFunction5, + ΔpureFunction6, + ΔpureFunction7, + ΔpureFunction8, + ΔpureFunctionV, + ΔgetCurrentView, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, - restoreView as ɵrestoreView, - containerRefreshStart as ɵcontainerRefreshStart, - containerRefreshEnd as ɵcontainerRefreshEnd, - queryRefresh as ɵqueryRefresh, - viewQuery as ɵviewQuery, - staticViewQuery as ɵstaticViewQuery, - staticContentQuery as ɵstaticContentQuery, - loadViewQuery as ɵloadViewQuery, - contentQuery as ɵcontentQuery, - loadContentQuery as ɵloadContentQuery, - elementEnd as ɵelementEnd, - elementProperty as ɵelementProperty, - componentHostSyntheticProperty as ɵcomponentHostSyntheticProperty, - componentHostSyntheticListener as ɵcomponentHostSyntheticListener, - projectionDef as ɵprojectionDef, - reference as ɵreference, - enableBindings as ɵenableBindings, - disableBindings as ɵdisableBindings, - allocHostVars as ɵallocHostVars, - elementAttribute as ɵelementAttribute, - elementContainerStart as ɵelementContainerStart, - elementContainerEnd as ɵelementContainerEnd, - elementStyling as ɵelementStyling, - elementStylingMap as ɵelementStylingMap, - elementStyleProp as ɵelementStyleProp, - elementStylingApply as ɵelementStylingApply, - elementClassProp as ɵelementClassProp, + ΔrestoreView, + ΔcontainerRefreshStart, + ΔcontainerRefreshEnd, + ΔqueryRefresh, + ΔviewQuery, + ΔstaticViewQuery, + ΔstaticContentQuery, + ΔloadViewQuery, + ΔcontentQuery, + ΔloadContentQuery, + ΔelementEnd, + ΔelementProperty, + ΔcomponentHostSyntheticProperty, + ΔcomponentHostSyntheticListener, + ΔprojectionDef, + Δreference, + ΔenableBindings, + ΔdisableBindings, + ΔallocHostVars, + ΔelementAttribute, + ΔelementContainerStart, + ΔelementContainerEnd, + ΔelementStyling, + ΔelementStylingMap, + ΔelementStyleProp, + ΔelementStylingApply, + ΔelementClassProp, - elementHostAttrs as ɵelementHostAttrs, - elementHostStyling as ɵelementHostStyling, - elementHostStylingMap as ɵelementHostStylingMap, - elementHostStyleProp as ɵelementHostStyleProp, - elementHostClassProp as ɵelementHostClassProp, - elementHostStylingApply as ɵelementHostStylingApply, + ΔelementHostAttrs, + ΔelementHostStyling, + ΔelementHostStylingMap, + ΔelementHostStyleProp, + ΔelementHostClassProp, + ΔelementHostStylingApply, - select as ɵselect, - textBinding as ɵtextBinding, - template as ɵtemplate, - embeddedViewEnd as ɵembeddedViewEnd, + Δselect, + ΔtextBinding, + Δtemplate, + ΔembeddedViewEnd, store as ɵstore, - load as ɵload, - pipe as ɵpipe, - BaseDef as ɵBaseDef, + Δload, + Δpipe, + ΔBaseDef, ComponentDef as ɵComponentDef, - ComponentDefWithMeta as ɵComponentDefWithMeta, + ΔComponentDefWithMeta, DirectiveDef as ɵDirectiveDef, - DirectiveDefWithMeta as ɵDirectiveDefWithMeta, + ΔDirectiveDefWithMeta, PipeDef as ɵPipeDef, - PipeDefWithMeta as ɵPipeDefWithMeta, + ΔPipeDefWithMeta, whenRendered as ɵwhenRendered, - i18n as ɵi18n, - i18nAttributes as ɵi18nAttributes, - i18nExp as ɵi18nExp, - i18nStart as ɵi18nStart, - i18nEnd as ɵi18nEnd, - i18nApply as ɵi18nApply, - i18nPostprocess as ɵi18nPostprocess, + Δi18n, + Δi18nAttributes, + Δi18nExp, + Δi18nStart, + Δi18nEnd, + Δi18nApply, + Δi18nPostprocess, setClassMetadata as ɵsetClassMetadata, - resolveWindow as ɵresolveWindow, - resolveDocument as ɵresolveDocument, - resolveBody as ɵresolveBody, + ΔresolveWindow, + ΔresolveDocument, + ΔresolveBody, } from './render3/index'; @@ -159,18 +159,18 @@ export { export { NgModuleDef as ɵNgModuleDef, - NgModuleDefWithMeta as ɵNgModuleDefWithMeta, + ΔNgModuleDefWithMeta, NgModuleTransitiveScopes as ɵNgModuleTransitiveScopes, } from './metadata/ng_module'; export { - sanitizeHtml as ɵsanitizeHtml, - sanitizeStyle as ɵsanitizeStyle, - defaultStyleSanitizer as ɵdefaultStyleSanitizer, - sanitizeScript as ɵsanitizeScript, - sanitizeUrl as ɵsanitizeUrl, - sanitizeResourceUrl as ɵsanitizeResourceUrl, - sanitizeUrlOrResourceUrl as ɵsanitizeUrlOrResourceUrl, + ΔsanitizeHtml, + ΔsanitizeStyle, + ΔdefaultStyleSanitizer, + ΔsanitizeScript, + ΔsanitizeUrl, + ΔsanitizeResourceUrl, + ΔsanitizeUrlOrResourceUrl, } from './sanitization/sanitization'; export { diff --git a/packages/core/src/di/index.ts b/packages/core/src/di/index.ts index 0b9df9f442..3dabe54bd2 100644 --- a/packages/core/src/di/index.ts +++ b/packages/core/src/di/index.ts @@ -14,11 +14,11 @@ export * from './metadata'; export {InjectFlags} from './interface/injector'; -export {defineInjectable, defineInjector, InjectableType, InjectorType} from './interface/defs'; +export {ΔdefineInjectable, defineInjectable, ΔdefineInjector, InjectableType, InjectorType} from './interface/defs'; export {forwardRef, resolveForwardRef, ForwardRefFn} from './forward_ref'; export {Injectable, InjectableDecorator, InjectableProvider} from './injectable'; export {INJECTOR, Injector} from './injector'; -export {inject} from './injector_compatibility'; +export {Δinject, inject} from './injector_compatibility'; export {ReflectiveInjector} from './reflective_injector'; export {StaticProvider, ValueProvider, ConstructorSansProvider, ExistingProvider, FactoryProvider, Provider, TypeProvider, ClassProvider} from './interface/provider'; export {ResolvedReflectiveFactory, ResolvedReflectiveProvider} from './reflective_provider'; diff --git a/packages/core/src/di/injectable.ts b/packages/core/src/di/injectable.ts index d1675710ae..784c9b72a8 100644 --- a/packages/core/src/di/injectable.ts +++ b/packages/core/src/di/injectable.ts @@ -8,7 +8,8 @@ import {Type} from '../interface/type'; import {TypeDecorator, makeDecorator} from '../util/decorators'; -import {InjectableDef, InjectableType, defineInjectable, getInjectableDef} from './interface/defs'; + +import {InjectableType, getInjectableDef, ΔInjectableDef, ΔdefineInjectable} from './interface/defs'; import {ClassSansProvider, ConstructorSansProvider, ExistingSansProvider, FactorySansProvider, StaticClassSansProvider, ValueSansProvider} from './interface/provider'; import {compileInjectable as render3CompileInjectable} from './jit/injectable'; import {convertInjectableProviderToFactory} from './util'; @@ -79,7 +80,7 @@ export const Injectable: InjectableDecorator = makeDecorator( * * @publicApi */ -export interface InjectableType extends Type { ngInjectableDef: InjectableDef; } +export interface InjectableType extends Type { ngInjectableDef: ΔInjectableDef; } /** * Supports @Injectable() in JIT mode for Render2. @@ -88,7 +89,7 @@ function render2CompileInjectable( injectableType: InjectableType, options: {providedIn?: Type| 'root' | null} & InjectableProvider): void { if (options && options.providedIn !== undefined && !getInjectableDef(injectableType)) { - injectableType.ngInjectableDef = defineInjectable({ + injectableType.ngInjectableDef = ΔdefineInjectable({ providedIn: options.providedIn, factory: convertInjectableProviderToFactory(injectableType, options), }); diff --git a/packages/core/src/di/injection_token.ts b/packages/core/src/di/injection_token.ts index 4879bce567..496d6bb765 100644 --- a/packages/core/src/di/injection_token.ts +++ b/packages/core/src/di/injection_token.ts @@ -8,7 +8,7 @@ import {Type} from '../interface/type'; -import {defineInjectable} from './interface/defs'; +import {ΔdefineInjectable} from './interface/defs'; /** * Creates a token that can be used in a DI Provider. @@ -67,7 +67,7 @@ export class InjectionToken { // We are using it to assign `-1` which is used to identify `Injector`. (this as any).__NG_ELEMENT_ID__ = options; } else if (options !== undefined) { - this.ngInjectableDef = defineInjectable({ + this.ngInjectableDef = ΔdefineInjectable({ providedIn: options.providedIn || 'root', factory: options.factory, }); diff --git a/packages/core/src/di/injector.ts b/packages/core/src/di/injector.ts index bc85842bb5..f7265262a0 100644 --- a/packages/core/src/di/injector.ts +++ b/packages/core/src/di/injector.ts @@ -11,8 +11,8 @@ import {getClosureSafeProperty} from '../util/property'; import {stringify} from '../util/stringify'; import {resolveForwardRef} from './forward_ref'; import {InjectionToken} from './injection_token'; -import {inject} from './injector_compatibility'; -import {defineInjectable} from './interface/defs'; +import {Δinject} from './injector_compatibility'; +import {ΔdefineInjectable} from './interface/defs'; import {InjectFlags} from './interface/injector'; import {ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, StaticProvider, ValueProvider} from './interface/provider'; import {Inject, Optional, Self, SkipSelf} from './metadata'; @@ -107,9 +107,9 @@ export abstract class Injector { } /** @nocollapse */ - static ngInjectableDef = defineInjectable({ + static ngInjectableDef = ΔdefineInjectable({ providedIn: 'any' as any, - factory: () => inject(INJECTOR), + factory: () => Δinject(INJECTOR), }); /** diff --git a/packages/core/src/di/injector_compatibility.ts b/packages/core/src/di/injector_compatibility.ts index 6ff623c3e6..cc6a257215 100644 --- a/packages/core/src/di/injector_compatibility.ts +++ b/packages/core/src/di/injector_compatibility.ts @@ -11,7 +11,7 @@ import {stringify} from '../util/stringify'; import {InjectionToken} from './injection_token'; import {Injector} from './injector'; -import {InjectableDef, getInjectableDef} from './interface/defs'; +import {getInjectableDef, ΔInjectableDef} from './interface/defs'; import {InjectFlags} from './interface/injector'; import {Inject, Optional, Self, SkipSelf} from './metadata'; @@ -69,7 +69,13 @@ export function injectInjectorOnly( } /** - * Injects a token from the currently active injector. + * Generated instruction: Injects a token from the currently active injector. + * + * WARNING: This function is meant to be generated by the Ivy compiler, and is not meant for + * developer consumption! + * + * https://github.com/angular/angular/blob/master/packages/core/src/render3/DELTA_INSTRUCTIONS.md + * * Must be used in the context of a factory function such as one defined for an * `InjectionToken`. Throws an error if not called from such a context. * @@ -91,11 +97,17 @@ export function injectInjectorOnly( * * @publicApi */ -export function inject(token: Type| InjectionToken): T; -export function inject(token: Type| InjectionToken, flags?: InjectFlags): T|null; -export function inject(token: Type| InjectionToken, flags = InjectFlags.Default): T|null { +export function Δinject(token: Type| InjectionToken): T; +export function Δinject(token: Type| InjectionToken, flags?: InjectFlags): T|null; +export function Δinject(token: Type| InjectionToken, flags = InjectFlags.Default): T|null { return (_injectImplementation || injectInjectorOnly)(token, flags); } +/** + * @deprecated in v8, delete after v10. This API should be used only be generated code, and that + * code should now use Δinject instead. + * @publicApi + */ +export const inject = Δinject; /** * Injects `root` tokens in limp mode. @@ -106,7 +118,7 @@ export function inject(token: Type| InjectionToken, flags = InjectFlags */ export function injectRootLimpMode( token: Type| InjectionToken, notFoundValue: T | undefined, flags: InjectFlags): T|null { - const injectableDef: InjectableDef|null = getInjectableDef(token); + const injectableDef: ΔInjectableDef|null = getInjectableDef(token); if (injectableDef && injectableDef.providedIn == 'root') { return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() : injectableDef.value; @@ -142,9 +154,9 @@ export function injectArgs(types: (Type| InjectionToken| any[])[]): an } } - args.push(inject(type !, flags)); + args.push(Δinject(type !, flags)); } else { - args.push(inject(arg)); + args.push(Δinject(arg)); } } return args; diff --git a/packages/core/src/di/interface/defs.ts b/packages/core/src/di/interface/defs.ts index 5f5ba65187..593e16a06b 100644 --- a/packages/core/src/di/interface/defs.ts +++ b/packages/core/src/di/interface/defs.ts @@ -23,8 +23,10 @@ import {ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, S * that the injectable does not belong to any scope. * * NOTE: This is a private type and should not be exported + * + * @publicApi */ -export interface InjectableDef { +export interface ΔInjectableDef { /** * Specifies that the given type belongs to a particular injector: * - `InjectorType` such as `NgModule`, @@ -55,8 +57,10 @@ export interface InjectableDef { * an import/dependency structure). * * NOTE: This is a private type and should not be exported + * + * @publicApi */ -export interface InjectorDef { +export interface ΔInjectorDef { factory: () => T; // TODO(alxhub): Narrow down the type here once decorators properly change the return type of the @@ -127,15 +131,22 @@ export interface InjectorTypeWithProviders { * * @publicApi */ -export function defineInjectable(opts: { +export function ΔdefineInjectable(opts: { providedIn?: Type| 'root' | 'any' | null, factory: () => T, }): never { return ({ providedIn: opts.providedIn as any || null, factory: opts.factory, value: undefined, - } as InjectableDef) as never; + } as ΔInjectableDef) as never; } +/** + * @deprecated in v8, delete after v10. This API should be used only be generated code, and that + * code should now use ΔdefineInjectable instead. + * @publicApi + */ +export const defineInjectable = ΔdefineInjectable; + /** * Construct an `InjectorDef` which configures an injector. * @@ -156,11 +167,11 @@ export function defineInjectable(opts: { * * @publicApi */ -export function defineInjector(options: {factory: () => any, providers?: any[], imports?: any[]}): +export function ΔdefineInjector(options: {factory: () => any, providers?: any[], imports?: any[]}): never { return ({ factory: options.factory, providers: options.providers || [], imports: options.imports || [], - } as InjectorDef) as never; + } as ΔInjectorDef) as never; } /** @@ -168,7 +179,7 @@ export function defineInjector(options: {factory: () => any, providers?: any[], * * @param type type which may have `ngInjectableDef` */ -export function getInjectableDef(type: any): InjectableDef|null { +export function getInjectableDef(type: any): ΔInjectableDef|null { return type && type.hasOwnProperty(NG_INJECTABLE_DEF) ? (type as any)[NG_INJECTABLE_DEF] : null; } @@ -177,7 +188,7 @@ export function getInjectableDef(type: any): InjectableDef|null { * * @param type type which may have `ngInjectorDef` */ -export function getInjectorDef(type: any): InjectorDef|null { +export function getInjectorDef(type: any): ΔInjectorDef|null { return type && type.hasOwnProperty(NG_INJECTOR_DEF) ? (type as any)[NG_INJECTOR_DEF] : null; } diff --git a/packages/core/src/di/jit/environment.ts b/packages/core/src/di/jit/environment.ts index 5f3eb05beb..a702bb6943 100644 --- a/packages/core/src/di/jit/environment.ts +++ b/packages/core/src/di/jit/environment.ts @@ -7,8 +7,9 @@ */ import {Type} from '../../interface/type'; -import {inject} from '../injector_compatibility'; -import {defineInjectable, defineInjector, getInjectableDef, getInjectorDef} from '../interface/defs'; +import {Δinject} from '../injector_compatibility'; +import {getInjectableDef, getInjectorDef, ΔdefineInjectable, ΔdefineInjector} from '../interface/defs'; + /** @@ -17,10 +18,10 @@ import {defineInjectable, defineInjector, getInjectableDef, getInjectorDef} from * This should be kept up to date with the public exports of @angular/core. */ export const angularCoreDiEnv: {[name: string]: Function} = { - 'defineInjectable': defineInjectable, - 'defineInjector': defineInjector, - 'inject': inject, - 'ɵgetFactoryOf': getFactoryOf, + 'ΔdefineInjectable': ΔdefineInjectable, + 'ΔdefineInjector': ΔdefineInjector, + 'Δinject': Δinject, + 'ΔgetFactoryOf': getFactoryOf, }; function getFactoryOf(type: Type): ((type: Type| null) => T)|null { diff --git a/packages/core/src/di/r3_injector.ts b/packages/core/src/di/r3_injector.ts index 62c0691211..aecdcc0ad8 100644 --- a/packages/core/src/di/r3_injector.ts +++ b/packages/core/src/di/r3_injector.ts @@ -9,16 +9,18 @@ import {OnDestroy} from '../interface/lifecycle_hooks'; import {Type} from '../interface/type'; import {stringify} from '../util/stringify'; + import {resolveForwardRef} from './forward_ref'; import {InjectionToken} from './injection_token'; import {INJECTOR, Injector, NG_TEMP_TOKEN_PATH, NullInjector, USE_VALUE, catchInjectorError} from './injector'; -import {inject, injectArgs, setCurrentInjector} from './injector_compatibility'; -import {InjectableDef, InjectableType, InjectorType, InjectorTypeWithProviders, getInjectableDef, getInjectorDef} from './interface/defs'; +import {injectArgs, setCurrentInjector, Δinject} from './injector_compatibility'; +import {InjectableType, InjectorType, InjectorTypeWithProviders, getInjectableDef, getInjectorDef, ΔInjectableDef} from './interface/defs'; import {InjectFlags} from './interface/injector'; import {ClassProvider, ConstructorProvider, ExistingProvider, FactoryProvider, StaticClassProvider, StaticProvider, TypeProvider, ValueProvider} from './interface/provider'; import {APP_ROOT} from './scope'; + /** * Internal type for a single provider in a deep provider array. */ @@ -354,7 +356,7 @@ export class R3Injector { return record.value as T; } - private injectableDefInScope(def: InjectableDef): boolean { + private injectableDefInScope(def: ΔInjectableDef): boolean { if (!def.providedIn) { return false; } else if (typeof def.providedIn === 'string') { @@ -411,7 +413,7 @@ export function providerToFactory( if (isValueProvider(provider)) { factory = () => resolveForwardRef(provider.useValue); } else if (isExistingProvider(provider)) { - factory = () => inject(resolveForwardRef(provider.useExisting)); + factory = () => Δinject(resolveForwardRef(provider.useExisting)); } else if (isFactoryProvider(provider)) { factory = () => provider.useFactory(...injectArgs(provider.deps || [])); } else { diff --git a/packages/core/src/di/util.ts b/packages/core/src/di/util.ts index de0294beb7..d5e5830ad2 100644 --- a/packages/core/src/di/util.ts +++ b/packages/core/src/di/util.ts @@ -10,7 +10,7 @@ import {Type} from '../interface/type'; import {ReflectionCapabilities} from '../reflection/reflection_capabilities'; import {getClosureSafeProperty} from '../util/property'; -import {inject, injectArgs} from './injector_compatibility'; +import {injectArgs, Δinject} from './injector_compatibility'; import {ClassSansProvider, ConstructorSansProvider, ExistingSansProvider, FactorySansProvider, StaticClassSansProvider, ValueProvider, ValueSansProvider} from './interface/provider'; const USE_VALUE = @@ -32,7 +32,7 @@ export function convertInjectableProviderToFactory( return () => valueProvider.useValue; } else if ((provider as ExistingSansProvider).useExisting) { const existingProvider = (provider as ExistingSansProvider); - return () => inject(existingProvider.useExisting); + return () => Δinject(existingProvider.useExisting); } else if ((provider as FactorySansProvider).useFactory) { const factoryProvider = (provider as FactorySansProvider); return () => factoryProvider.useFactory(...injectArgs(factoryProvider.deps || EMPTY_ARRAY)); diff --git a/packages/core/src/metadata/ng_module.ts b/packages/core/src/metadata/ng_module.ts index 4a4b455582..5a64f53021 100644 --- a/packages/core/src/metadata/ng_module.ts +++ b/packages/core/src/metadata/ng_module.ts @@ -7,7 +7,7 @@ */ import {ApplicationRef} from '../application_ref'; -import {InjectorType, defineInjector} from '../di/interface/defs'; +import {InjectorType, ΔdefineInjector} from '../di/interface/defs'; import {Provider} from '../di/interface/provider'; import {convertInjectableProviderToFactory} from '../di/util'; import {Type} from '../interface/type'; @@ -32,7 +32,10 @@ export interface NgModuleTransitiveScopes { schemas: SchemaMetadata[]|null; } -export type NgModuleDefWithMeta = NgModuleDef; +/** + * @publicApi + */ +export type ΔNgModuleDefWithMeta = NgModuleDef; /** * Runtime link information for NgModules. @@ -40,7 +43,7 @@ export type NgModuleDefWithMeta = NgModuleDef * This is the internal data structure used by the runtime to assemble components, directives, * pipes, and injectors. * - * NOTE: Always use `defineNgModule` function to create this object, + * NOTE: Always use `ΔdefineNgModule` function to create this object, * never create the object directly since the shape of this object * can change between versions. */ @@ -344,7 +347,7 @@ function preR3NgModuleCompile(moduleType: InjectorType, metadata: NgModule) imports = [...imports, metadata.exports]; } - moduleType.ngInjectorDef = defineInjector({ + moduleType.ngInjectorDef = ΔdefineInjector({ factory: convertInjectableProviderToFactory(moduleType, {useClass: moduleType}), providers: metadata && metadata.providers, imports: imports, diff --git a/packages/core/src/r3_symbols.ts b/packages/core/src/r3_symbols.ts index e040915411..073cf4f9a5 100644 --- a/packages/core/src/r3_symbols.ts +++ b/packages/core/src/r3_symbols.ts @@ -21,10 +21,10 @@ * The below symbols are used for @Injectable and @NgModule compilation. */ -export {inject} from './di/injector_compatibility'; -export {InjectableDef, InjectorDef, defineInjectable, defineInjector} from './di/interface/defs'; -export {NgModuleDef, NgModuleDefWithMeta} from './metadata/ng_module'; -export {defineNgModule} from './render3/definition'; +export {Δinject} from './di/injector_compatibility'; +export {ΔInjectableDef, ΔInjectorDef, ΔdefineInjectable, ΔdefineInjector} from './di/interface/defs'; +export {NgModuleDef, ΔNgModuleDefWithMeta} from './metadata/ng_module'; +export {ΔdefineNgModule} from './render3/definition'; export {setClassMetadata} from './render3/metadata'; export {NgModuleFactory} from './render3/ng_module_ref'; diff --git a/packages/core/src/render3/DELTA_INSTRUCTIONS.md b/packages/core/src/render3/DELTA_INSTRUCTIONS.md new file mode 100644 index 0000000000..0f631e7deb --- /dev/null +++ b/packages/core/src/render3/DELTA_INSTRUCTIONS.md @@ -0,0 +1,9 @@ +# Delta Instructions + +Ivy exports a number of functions prefixed with `Δ`, for example `ΔelementStart`, or `Δinject`, et al. These functions are referred to an "instructions" or "delta" instructions. They are functions that are called by code generated by the Ivy compiler that must be publicly exposed in order to be consumed by this generated code. **They are not meant for developer consumption**. The reason they are prefixed with `Δ` is not only to identify them as different from other functions, but also to make them not show up at the top of IDE code completion in environments such as Visual Studio code. + + +### Guidance + +- Do not use `Δ` functions directly. They are meant to be used in generated code. +- Do not create new `Δ` functions, it's not a convention that Angular consumes, and it is liable to confuse other developers into thinking consuming Angular's `Δ` functions is a good pattern to follow. diff --git a/packages/core/src/render3/STATUS.md b/packages/core/src/render3/STATUS.md index 41da5007b1..c26cece2d1 100644 --- a/packages/core/src/render3/STATUS.md +++ b/packages/core/src/render3/STATUS.md @@ -10,8 +10,8 @@ We currently expect Ivy to remain behind the flag until it's feature complete an The work can be divided into three categories: - `@angular/compiler-cli`: TypeScript transformer pipeline which includes two command line tools: - - `ngtsc`: (Angular TypeScript Compiler) Angular compiler which strips out `@Component` (and friends) and replaces it with `defineComponent` (and friends). - - `ngcc`: (Angular Compatibility Compiler) NPM upgrade compiler which reads the `STORING_METADATA_IN_D.TS.json` files and `.js` files and adds `defineComponent` (and friends) into the `node_module`. This in effect converts a pre-ivy module into ivy module. + - `ngtsc`: (Angular TypeScript Compiler) Angular compiler which strips out `@Component` (and friends) and replaces it with `ΔdefineComponent` (and friends). + - `ngcc`: (Angular Compatibility Compiler) NPM upgrade compiler which reads the `STORING_METADATA_IN_D.TS.json` files and `.js` files and adds `ΔdefineComponent` (and friends) into the `node_module`. This in effect converts a pre-ivy module into ivy module. - `@angular/compiler`: Ivy Compiler which converts decorator into ivy - `@angular/core`: Decorators which can be patched with `@angular/compiler`. @@ -20,7 +20,7 @@ The work can be divided into three categories: ### `ngtsc` TSC compiler transformer TSC transformer which removes and converts `@Pipe`, `@Component`, `@Directive` and `@NgModule` -to the corresponding `definePipe`, `defineComponent`, `defineDirective` and `defineInjector`. +to the corresponding `ΔdefinePipe`, `ΔdefineComponent`, `ΔdefineDirective` and `ΔdefineInjector`. - ✅ Basic setup of the transformer into `tsc` - ✅ Can read STORING_METADATA_IN_D.TS from `.d.ts` (see: [STORING_METADATA_IN_D.TS.md](./STORING_METADATA_IN_D.TS.md)) @@ -40,19 +40,19 @@ A tool which "upgrades" `node_module` compiled with non-ivy `ngc` into ivy compl ## `@angular/compiler` changes -- ✅ Component compilation: Translates `@Component` => `defineComponent` +- ✅ Component compilation: Translates `@Component` => `ΔdefineComponent` - ✅ `TemplateCompiler` (current known as `ViewCompiler`) - ✅ `StyleCompiler` -- ✅ `PipeCompiler`: Translates `@Pipe` => `definePipe` -- ✅ `DirectiveCompiler`: Translates `@Directive` => `defineDirective` -- ✅ `InjectableCompiler`: Translates `@Injectable` => `defineInjectable` -- ✅ `NgModuleCompiler`: Translates `@NgModule` => `defineInjector` (and `defineNgModule` only in jit) +- ✅ `PipeCompiler`: Translates `@Pipe` => `ΔdefinePipe` +- ✅ `DirectiveCompiler`: Translates `@Directive` => `ΔdefineDirective` +- ✅ `InjectableCompiler`: Translates `@Injectable` => `ΔdefineInjectable` +- ✅ `NgModuleCompiler`: Translates `@NgModule` => `ΔdefineInjector` (and `ΔdefineNgModule` only in jit) - ❌ Documentation ## `@angular/core` changes -The goal is for the `@Component` (and friends) to be the compiler of template. Since decorators are functions which execute during parsing of the `.js` file, the decorator can compile the template into Ivy. The AoT compiler's job is to remove the `@Component` and replace it with call to `defineComponent`. +The goal is for the `@Component` (and friends) to be the compiler of template. Since decorators are functions which execute during parsing of the `.js` file, the decorator can compile the template into Ivy. The AoT compiler's job is to remove the `@Component` and replace it with call to `ΔdefineComponent`. - ✅ `@angular/compiler` can patch itself onto: - ✅ `@Injectable` @@ -68,15 +68,15 @@ The goal is for the `@Component` (and friends) to be the compiler of template. S # Crosscutting ## Decorators -| Annotation | `defineXXX()` | Run time | Spec | Compiler | -| -------------------- | ------------------------------ | ------- | -------- | -------- | -| `@Component` | ✅ `defineComponent()` | ✅ | ✅ | ✅ | -| `@Directive` | ✅ `defineDirective()` | ✅ | ✅ | ✅ | -| `@Directive` | ✅ `defineBase()` | ✅ | ✅ | ✅ | -| `@Pipe` | ✅ `definePipe()` | ✅ | ✅ | ✅ | -| `@Injectable` | ✅ `defineInjectable()` | ✅ | ✅ | ✅ | -| `@NgModule` | ✅ `defineInjector()` | ✅ | ✅ | ✅ | -| `@ConfigureInjector` | ✅ `defineInjector()` | ❌ | ❌ | ❌ | +| Annotation | `defineXXX()` | Run time | Spec | Compiler | +| -------------------- | ------------------------------ | ------- | -------- | -------- | +| `@Component` | ✅ `ΔdefineComponent()` | ✅ | ✅ | ✅ | +| `@Directive` | ✅ `ΔdefineDirective()` | ✅ | ✅ | ✅ | +| `@Directive` | ✅ `ΔdefineBase()` | ✅ | ✅ | ✅ | +| `@Pipe` | ✅ `ΔdefinePipe()` | ✅ | ✅ | ✅ | +| `@Injectable` | ✅ `ΔdefineInjectable()` | ✅ | ✅ | ✅ | +| `@NgModule` | ✅ `ΔdefineInjector()` | ✅ | ✅ | ✅ | +| `@ConfigureInjector` | ✅ `ΔdefineInjector()` | ❌ | ❌ | ❌ | diff --git a/packages/core/src/render3/STORING_METADATA_IN_D.TS.md b/packages/core/src/render3/STORING_METADATA_IN_D.TS.md index 2c14ab5e63..82690386b2 100644 --- a/packages/core/src/render3/STORING_METADATA_IN_D.TS.md +++ b/packages/core/src/render3/STORING_METADATA_IN_D.TS.md @@ -4,7 +4,7 @@ Previous version of Angular used `metadata.json` files to store information abou `ngc` compiler would than do a global analysis to generate the `.ngfactory.ts` files from the `metadata.json`. Ivy strives for locality, which means that `ngtsc` should not need any global information in order to compile the system. The above is mostly true. -Unfortunately, in order for `ngtsc` to generate code which is tree shakable `ngtsc` does need to have global knowledge. +Unfortunately, in order for `ngtsc` to generate code which is tree shakable `ngtsc` does need to have global knowledge. Here is an abbreviated example of breakage of tree-shake-ability. ```typescript @@ -13,7 +13,7 @@ Here is an abbreviated example of breakage of tree-shake-ability. }) export class TooltipDirective { // ngtsc generates this: - static ngDirectiveDef = defineDirective(...); + static ngDirectiveDef = ΔdefineDirective(...); } @Component({ @@ -22,12 +22,12 @@ export class TooltipDirective { }) class MyAppComponent { // ngtsc generates this: - static ngDirectiveDef = defineComponent({ + static ngDirectiveDef = ΔdefineComponent({ ... directives: [ // BREAKS TREE-SHAKING!!! // TooltipDirective included here because it was declared in the NgModule - // ngtsc does not know it can be omitted. + // ngtsc does not know it can be omitted. // Only way for ngtsc to know that it can omit TooltipDirective is if it knows // its selector and see if the selector matches the current component's template. TooltipDirective @@ -41,12 +41,12 @@ class MyAppComponent { }) class MyAppModule { // ngtsc generates this: - static ngDirectiveDef = defineNgModule(...); + static ngDirectiveDef = ΔdefineNgModule(...); } ``` Notice that `ngtsc` can't remove `TooltipDirective` because it would need to know its selector and see if the directive matches in the component's template. -Knowing the selector breaks locality and so we make an exception for some locality information such as selector, inputs and outputs. +Knowing the selector breaks locality and so we make an exception for some locality information such as selector, inputs and outputs. Since we are breaking the locality rule, we need to store the information someplace since `ngtsc` can't have access to the `TooltipDirective` source. We store the information in the `.d.ts` file like so. diff --git a/packages/core/src/render3/VIEW_DATA.md b/packages/core/src/render3/VIEW_DATA.md index 560d976d69..607b6b48c8 100644 --- a/packages/core/src/render3/VIEW_DATA.md +++ b/packages/core/src/render3/VIEW_DATA.md @@ -36,18 +36,18 @@ The size of the `CONSTS` section is declared in the property `consts` of the com }) class MyApp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ ..., consts: 5, template: function(rf: RenderFlags, ctx: MyApp) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - text(1, 'Hello '); - elementStart(2, 'b'); - text(3, 'World'); - elementEnd(); - text(4, '!'); - elementEnd(); + ΔelementStart(0, 'div'); + Δtext(1, 'Hello '); + ΔelementStart(2, 'b'); + Δtext(3, 'World'); + ΔelementEnd(); + Δtext(4, '!'); + ΔelementEnd(); } ... } @@ -87,19 +87,19 @@ The size of the `VARS `section is declared in the property `vars` of the compone class MyApp { name = 'World'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ ..., consts: 2, // Two DOM Elements. vars: 2, // Two bindings. template: function(rf: RenderFlags, ctx: MyApp) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - text(1); - elementEnd(); + ΔelementStart(0, 'div'); + Δtext(1); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'title', bind(ctx.name)); - textBinding(1, interpolation1('Hello ', ctx.name, '!')); + ΔelementProperty(0, 'title', Δbind(ctx.name)); + ΔtextBinding(1, Δinterpolation1('Hello ', ctx.name, '!')); } ... } @@ -139,12 +139,12 @@ Examples include: }) class MyApp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ ..., consts: 1, template: function(rf: RenderFlags, ctx: MyApp) { if (rf & RenderFlags.Create) { - element(0, 'child', ['tooltip', null]); + Δelement(0, 'child', ['tooltip', null]); } ... }, @@ -159,7 +159,7 @@ class MyApp { }) class Child { @HostBinding('tooltip') hostTitle = 'Hello World!'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ ... hostVars: 1 }); @@ -171,7 +171,7 @@ class Child { }) class Tooltip { @HostBinding('title') hostTitle = 'greeting'; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ ... hostVars: 1 }); @@ -273,12 +273,12 @@ Injection tokens are sorted into three sections: }) class MyApp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ ..., consts: 1, template: function(rf: RenderFlags, ctx: MyApp) { if (rf & RenderFlags.Create) { - element(0, 'child'); + Δelement(0, 'child'); } ... }, @@ -301,7 +301,7 @@ class MyApp { }) class Child { construction(injector: Injector) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ ... features: [ ProvidesFeature( @@ -348,7 +348,7 @@ NOTICE: Where `factory` is a function which wraps the factory into object which can be monomorphically detected at runtime in an efficient way. ```TypeScript class Factory { - /// Marker set to true during factory invocation to see if we get into recursive loop. + /// Marker set to true during factory invocation to see if we get into recursive loop. /// Recursive loop causes an error to be displayed. resolving = false; constructor(public factory: Function) { } @@ -376,13 +376,13 @@ There are several special objects such as `ElementRef`, `ViewContainerRef`, etc. These objects behave as if they are always included in the `providers` array of every component and directive. Adding them always there would prevent tree shaking so they need to be lazily included. -NOTE: +NOTE: An interesting thing about these objects is that they are not memoized `injector.get(ElementRef) !== injector.get(ElementRef)`. This could be considered a bug, it means that we don't have to allocate storage space for them. We should treat these special objects like any other token. `directiveInject()` already reads a special `NG_ELEMENT_ID` -property set on directives to locate their bit in the bloom filter. We can set this same property on special objects, -but point to a factory function rather than an element ID number. When we check that property in `directiveInject()` +property set on directives to locate their bit in the bloom filter. We can set this same property on special objects, +but point to a factory function rather than an element ID number. When we check that property in `directiveInject()` and see that it's a function, we know to invoke the factory function directly instead of searching the node tree. ```typescript @@ -422,7 +422,7 @@ function inject(token: any): any { if (typeof token === 'function' && injectableDef = token.ngInjectableDef) { const provideIn = injectableDef.provideIn; if (provideIn === '__node_injector__') { - // if we are injecting `Injector` than create a wrapper object around the inject but which + // if we are injecting `Injector` than create a wrapper object around the inject but which // is bound to the current node. return createInjector(); } @@ -439,4 +439,4 @@ TODO ## Combining `LContainer` with `LView` -TODO \ No newline at end of file +TODO diff --git a/packages/core/src/render3/component_ref.ts b/packages/core/src/render3/component_ref.ts index a8e4f5d163..cdc90aaf92 100644 --- a/packages/core/src/render3/component_ref.ts +++ b/packages/core/src/render3/component_ref.ts @@ -9,7 +9,7 @@ import {ChangeDetectorRef as ViewEngine_ChangeDetectorRef} from '../change_detection/change_detector_ref'; import {InjectionToken} from '../di/injection_token'; import {Injector} from '../di/injector'; -import {inject} from '../di/injector_compatibility'; +import {Δinject} from '../di/injector_compatibility'; import {InjectFlags} from '../di/interface/injector'; import {Type} from '../interface/type'; import {ComponentFactory as viewEngine_ComponentFactory, ComponentRef as viewEngine_ComponentRef} from '../linker/component_factory'; @@ -66,7 +66,7 @@ function toRefArray(map: {[key: string]: string}): {propName: string; templateNa */ export const ROOT_CONTEXT = new InjectionToken( 'ROOT_CONTEXT_TOKEN', - {providedIn: 'root', factory: () => createRootContext(inject(SCHEDULER))}); + {providedIn: 'root', factory: () => createRootContext(Δinject(SCHEDULER))}); /** * A change detection scheduler token for {@link RootContext}. This token is the default value used diff --git a/packages/core/src/render3/definition.ts b/packages/core/src/render3/definition.ts index e46572dd5e..5e8e62bde6 100644 --- a/packages/core/src/render3/definition.ts +++ b/packages/core/src/render3/definition.ts @@ -18,7 +18,7 @@ import {stringify} from '../util/stringify'; import {EMPTY_ARRAY, EMPTY_OBJ} from './empty'; import {NG_COMPONENT_DEF, NG_DIRECTIVE_DEF, NG_MODULE_DEF, NG_PIPE_DEF} from './fields'; -import {BaseDef, ComponentDef, ComponentDefFeature, ComponentTemplate, ComponentType, ContentQueriesFunction, DirectiveDef, DirectiveDefFeature, DirectiveType, DirectiveTypesOrFactory, FactoryFn, HostBindingsFunction, PipeDef, PipeType, PipeTypesOrFactory, ViewQueriesFunction} from './interfaces/definition'; +import {ComponentDef, ComponentDefFeature, ComponentTemplate, ComponentType, ContentQueriesFunction, DirectiveDef, DirectiveDefFeature, DirectiveType, DirectiveTypesOrFactory, FactoryFn, HostBindingsFunction, PipeDef, PipeType, PipeTypesOrFactory, ViewQueriesFunction, ΔBaseDef} from './interfaces/definition'; // while SelectorFlags is unused here, it's required so that types don't get resolved lazily // see: https://github.com/Microsoft/web-build-tools/issues/1050 import {CssSelectorList, SelectorFlags} from './interfaces/projection'; @@ -39,8 +39,9 @@ let _renderCompCount = 0; * }); * } * ``` + * @publicApi */ -export function defineComponent(componentDefinition: { +export function ΔdefineComponent(componentDefinition: { /** * Directive type, needed to configure the injector. */ @@ -303,7 +304,10 @@ export function defineComponent(componentDefinition: { return def as never; } -export function setComponentScope( +/** + * @publicApi + */ +export function ΔsetComponentScope( type: ComponentType, directives: Type[], pipes: Type[]): void { const def = (type.ngComponentDef as ComponentDef); def.directiveDefs = () => directives.map(extractDirectiveDef); @@ -327,7 +331,10 @@ export function extractPipeDef(type: PipeType): PipeDef { return def !; } -export function defineNgModule(def: { +/** + * @publicApi + */ +export function ΔdefineNgModule(def: { /** Token representing the module. Used by DI. */ type: T; @@ -368,8 +375,10 @@ export function defineNgModule(def: { * Scope metadata of modules is not used in production builds, so calls to this function can be * marked pure to tree-shake it from the bundle, allowing for all referenced declarations * to become eligible for tree-shaking as well. + * + * @publicApi */ -export function setNgModuleScope(type: any, scope: { +export function ΔsetNgModuleScope(type: any, scope: { /** List of components, directives, and pipes declared by this module. */ declarations?: Type[] | (() => Type[]); @@ -469,15 +478,19 @@ function invertObject( * Create a base definition * * # Example - * ``` + * ```ts * class ShouldBeInherited { - * static ngBaseDef = defineBase({ + * static ngBaseDef = ΔdefineBase({ * ... * }) * } + * ``` + * * @param baseDefinition The base definition parameters + * + * @publicApi */ -export function defineBase(baseDefinition: { +export function ΔdefineBase(baseDefinition: { /** * A map of input names. * @@ -534,7 +547,7 @@ export function defineBase(baseDefinition: { * of properties. */ outputs?: {[P in keyof T]?: string}; -}): BaseDef { +}): ΔBaseDef { const declaredInputs: {[P in keyof T]: string} = {} as any; return { inputs: invertObject(baseDefinition.inputs as any, declaredInputs), @@ -547,17 +560,19 @@ export function defineBase(baseDefinition: { * Create a directive definition object. * * # Example - * ``` + * ```ts * class MyDirective { * // Generated by Angular Template Compiler * // [Symbol] syntax will not be supported by TypeScript until v2.7 - * static ngDirectiveDef = defineDirective({ + * static ngDirectiveDef = ΔdefineDirective({ * ... * }); * } * ``` + * + * @publicApi */ -export const defineDirective = defineComponent as any as(directiveDefinition: { +export const ΔdefineDirective = ΔdefineComponent as any as(directiveDefinition: { /** * Directive type, needed to configure the injector. */ @@ -672,8 +687,10 @@ export const defineDirective = defineComponent as any as(directiveDefinition: * } * ``` * @param pipeDef Pipe definition generated by the compiler + * + * @publicApi */ -export function definePipe(pipeDef: { +export function ΔdefinePipe(pipeDef: { /** Name of the pipe. Used for matching pipes in template to pipe defs. */ name: string, diff --git a/packages/core/src/render3/di.ts b/packages/core/src/render3/di.ts index 1e4fdde2a0..170c58680a 100644 --- a/packages/core/src/render3/di.ts +++ b/packages/core/src/render3/di.ts @@ -634,7 +634,10 @@ export class NodeInjector implements Injector { } } -export function getFactoryOf(type: Type): ((type: Type| null) => T)|null { +/** + * @publicApi + */ +export function ΔgetFactoryOf(type: Type): ((type: Type| null) => T)|null { const typeAny = type as any; const def = getComponentDef(typeAny) || getDirectiveDef(typeAny) || getPipeDef(typeAny) || getInjectableDef(typeAny) || getInjectorDef(typeAny); @@ -644,9 +647,12 @@ export function getFactoryOf(type: Type): ((type: Type| null) => T)|n return def.factory; } -export function getInheritedFactory(type: Type): (type: Type) => T { +/** + * @publicApi + */ +export function ΔgetInheritedFactory(type: Type): (type: Type) => T { const proto = Object.getPrototypeOf(type.prototype).constructor as Type; - const factory = getFactoryOf(proto); + const factory = ΔgetFactoryOf(proto); if (factory !== null) { return factory; } else { diff --git a/packages/core/src/render3/di_setup.ts b/packages/core/src/render3/di_setup.ts index 13c271cdab..9d177153d4 100644 --- a/packages/core/src/render3/di_setup.ts +++ b/packages/core/src/render3/di_setup.ts @@ -12,7 +12,7 @@ import {ClassProvider, Provider} from '../di/interface/provider'; import {isClassProvider, isTypeProvider, providerToFactory} from '../di/r3_injector'; import {diPublicInInjector, getNodeInjectable, getOrCreateNodeInjectorForNode} from './di'; -import {directiveInject} from './instructions/all'; +import {ΔdirectiveInject} from './instructions/all'; import {DirectiveDef} from './interfaces/definition'; import {NodeInjectorFactory} from './interfaces/injector'; import {TContainerNode, TElementContainerNode, TElementNode, TNodeProviderIndexes} from './interfaces/node'; @@ -93,7 +93,7 @@ function resolveProvider( if (isTypeProvider(provider) || !provider.multi) { // Single provider case: the factory is created and pushed immediately - const factory = new NodeInjectorFactory(providerFactory, isViewProvider, directiveInject); + const factory = new NodeInjectorFactory(providerFactory, isViewProvider, ΔdirectiveInject); const existingFactoryIndex = indexOf( token, tInjectables, isViewProvider ? beginIndex : beginIndex + cptViewProvidersCount, endIndex); @@ -255,7 +255,7 @@ function multiFactory( this: NodeInjectorFactory, _: null, tData: TData, lData: LView, tNode: TElementNode) => any, index: number, isViewProvider: boolean, isComponent: boolean, f: () => any): NodeInjectorFactory { - const factory = new NodeInjectorFactory(factoryFn, isViewProvider, directiveInject); + const factory = new NodeInjectorFactory(factoryFn, isViewProvider, ΔdirectiveInject); factory.multi = []; factory.index = index; factory.componentProviders = 0; diff --git a/packages/core/src/render3/features/inherit_definition_feature.ts b/packages/core/src/render3/features/inherit_definition_feature.ts index dae44c86c3..26e920fc7a 100644 --- a/packages/core/src/render3/features/inherit_definition_feature.ts +++ b/packages/core/src/render3/features/inherit_definition_feature.ts @@ -13,7 +13,7 @@ import {ComponentDef, DirectiveDef, DirectiveDefFeature, RenderFlags} from '../i import {adjustActiveDirectiveSuperClassDepthPosition} from '../state'; import {isComponentDef} from '../util/view_utils'; -import {NgOnChangesFeature} from './ng_onchanges_feature'; +import {ΔNgOnChangesFeature} from './ng_onchanges_feature'; function getSuperType(type: Type): Type& {ngComponentDef?: ComponentDef, ngDirectiveDef?: DirectiveDef} { @@ -23,8 +23,10 @@ function getSuperType(type: Type): Type& /** * Merges the definition from a super class to a sub class. * @param definition The definition that is a SubClass of another directive of component + * + * @publicApi */ -export function InheritDefinitionFeature(definition: DirectiveDef| ComponentDef): void { +export function ΔInheritDefinitionFeature(definition: DirectiveDef| ComponentDef): void { let superType = getSuperType(definition.type); while (superType) { @@ -159,7 +161,7 @@ export function InheritDefinitionFeature(definition: DirectiveDef| Componen definition.onInit = definition.onInit || superPrototype.ngOnInit; if (superPrototype.ngOnChanges) { - NgOnChangesFeature()(definition); + ΔNgOnChangesFeature()(definition); } } } diff --git a/packages/core/src/render3/features/ng_onchanges_feature.ts b/packages/core/src/render3/features/ng_onchanges_feature.ts index 4e53f979af..95c9d49ce9 100644 --- a/packages/core/src/render3/features/ng_onchanges_feature.ts +++ b/packages/core/src/render3/features/ng_onchanges_feature.ts @@ -38,8 +38,10 @@ type OnChangesExpando = OnChanges & { * features: [NgOnChangesFeature()] * }); * ``` + * + * @publicApi */ -export function NgOnChangesFeature(): DirectiveDefFeature { +export function ΔNgOnChangesFeature(): DirectiveDefFeature { // This option ensures that the ngOnChanges lifecycle hook will be inherited // from superclasses (in InheritDefinitionFeature). (NgOnChangesFeatureImpl as DirectiveDefFeature).ngInherit = true; diff --git a/packages/core/src/render3/features/providers_feature.ts b/packages/core/src/render3/features/providers_feature.ts index 8468c9d754..0fbdea8b3b 100644 --- a/packages/core/src/render3/features/providers_feature.ts +++ b/packages/core/src/render3/features/providers_feature.ts @@ -36,8 +36,10 @@ import {DirectiveDef} from '../interfaces/definition'; * } * * @param definition + * + * @publicApi */ -export function ProvidersFeature(providers: Provider[], viewProviders: Provider[] = []) { +export function ΔProvidersFeature(providers: Provider[], viewProviders: Provider[] = []) { return (definition: DirectiveDef) => { definition.providersResolver = (def: DirectiveDef, processProvidersFn?: ProcessProvidersFunction) => { diff --git a/packages/core/src/render3/i18n.ts b/packages/core/src/render3/i18n.ts index 6dabda3d2d..53e75777a4 100644 --- a/packages/core/src/render3/i18n.ts +++ b/packages/core/src/render3/i18n.ts @@ -14,7 +14,7 @@ import {assertDefined, assertEqual, assertGreaterThan} from '../util/assert'; import {attachPatchData} from './context_discovery'; import {attachI18nOpCodesDebug} from './debug'; -import {elementAttribute, load, textBinding} from './instructions/all'; +import {ΔelementAttribute, Δload, ΔtextBinding} from './instructions/all'; import {allocExpando, createNodeAtIndex} from './instructions/shared'; import {LContainer, NATIVE} from './interfaces/container'; import {COMMENT_MARKER, ELEMENT_MARKER, I18nMutateOpCode, I18nMutateOpCodes, I18nUpdateOpCode, I18nUpdateOpCodes, IcuType, TI18n, TIcu} from './interfaces/i18n'; @@ -346,8 +346,10 @@ const parentIndexStack: number[] = []; * @param index A unique index of the translation in the static block. * @param message The translation message. * @param subTemplateIndex Optional sub-template index in the `message`. + * + * @publicApi */ -export function i18nStart(index: number, message: string, subTemplateIndex?: number): void { +export function Δi18nStart(index: number, message: string, subTemplateIndex?: number): void { const tView = getLView()[TVIEW]; ngDevMode && assertDefined(tView, `tView should be defined`); i18nIndexStack[++i18nIndexStackPointer] = index; @@ -532,9 +534,9 @@ function appendI18nNode(tNode: TNode, parentTNode: TNode, previousTNode: TNode | * * @returns Transformed string that can be consumed by i18nStart instruction * - * @publicAPI + * @publicApi */ -export function i18nPostprocess( +export function Δi18nPostprocess( message: string, replacements: {[key: string]: (string | string[])} = {}): string { /** * Step 1: resolve all multi-value placeholders like [�#5�|�*1:1��#2:1�|�#4:1�] @@ -627,8 +629,10 @@ export function i18nPostprocess( /** * Translates a translation block marked by `i18nStart` and `i18nEnd`. It inserts the text/ICU nodes * into the render tree, moves the placeholder nodes and removes the deleted nodes. + * + * @publicApi */ -export function i18nEnd(): void { +export function Δi18nEnd(): void { const tView = getLView()[TVIEW]; ngDevMode && assertDefined(tView, `tView should be defined`); i18nEndFirstPass(tView); @@ -736,7 +740,7 @@ function readCreateOpCodes( const elementNodeIndex = opCode >>> I18nMutateOpCode.SHIFT_REF; const attrName = createOpCodes[++i] as string; const attrValue = createOpCodes[++i] as string; - elementAttribute(elementNodeIndex, attrName, attrValue); + ΔelementAttribute(elementNodeIndex, attrName, attrValue); break; default: throw new Error(`Unable to determine the type of mutate operation for "${opCode}"`); @@ -813,10 +817,10 @@ function readUpdateOpCodes( case I18nUpdateOpCode.Attr: const attrName = updateOpCodes[++j] as string; const sanitizeFn = updateOpCodes[++j] as SanitizerFn | null; - elementAttribute(nodeIndex, attrName, value, sanitizeFn); + ΔelementAttribute(nodeIndex, attrName, value, sanitizeFn); break; case I18nUpdateOpCode.Text: - textBinding(nodeIndex, value); + ΔtextBinding(nodeIndex, value); break; case I18nUpdateOpCode.IcuSwitch: tIcuIndex = updateOpCodes[++j] as number; @@ -880,7 +884,7 @@ function removeNode(index: number, viewData: LView) { nativeRemoveNode(viewData[RENDERER], removedPhRNode); } - const slotValue = load(index) as RElement | RComment | LContainer | StylingContext; + const slotValue = Δload(index) as RElement | RComment | LContainer | StylingContext; if (isLContainer(slotValue)) { const lContainer = slotValue as LContainer; if (removedPhTNode.type !== TNodeType.Container) { @@ -914,10 +918,12 @@ function removeNode(index: number, viewData: LView) { * @param index A unique index of the translation in the static block. * @param message The translation message. * @param subTemplateIndex Optional sub-template index in the `message`. + * + * @publicApi */ -export function i18n(index: number, message: string, subTemplateIndex?: number): void { - i18nStart(index, message, subTemplateIndex); - i18nEnd(); +export function Δi18n(index: number, message: string, subTemplateIndex?: number): void { + Δi18nStart(index, message, subTemplateIndex); + Δi18nEnd(); } /** @@ -925,8 +931,10 @@ export function i18n(index: number, message: string, subTemplateIndex?: number): * * @param index A unique index in the static block * @param values + * + * @publicApi */ -export function i18nAttributes(index: number, values: string[]): void { +export function Δi18nAttributes(index: number, values: string[]): void { const tView = getLView()[TVIEW]; ngDevMode && assertDefined(tView, `tView should be defined`); if (tView.firstTemplatePass && tView.data[index + HEADER_OFFSET] === null) { @@ -958,7 +966,7 @@ function i18nAttributesFirstPass(tView: TView, index: number, values: string[]) addAllToArray( generateBindingUpdateOpCodes(value, previousElementIndex, attrName), updateOpCodes); } else { - elementAttribute(previousElementIndex, attrName, value); + ΔelementAttribute(previousElementIndex, attrName, value); } } } @@ -975,8 +983,10 @@ let shiftsCounter = 0; * update the translated nodes. * * @param expression The binding's new value or NO_CHANGE + * + * @publicApi */ -export function i18nExp(expression: T | NO_CHANGE): void { +export function Δi18nExp(expression: T | NO_CHANGE): void { if (expression !== NO_CHANGE) { changeMask = changeMask | (1 << shiftsCounter); } @@ -988,8 +998,10 @@ export function i18nExp(expression: T | NO_CHANGE): void { * * @param index Index of either {@link i18nStart} (translation block) or {@link i18nAttributes} * (i18n attribute) on which it should update the content. + * + * @publicApi */ -export function i18nApply(index: number) { +export function Δi18nApply(index: number) { if (shiftsCounter) { const lView = getLView(); const tView = lView[TVIEW]; diff --git a/packages/core/src/render3/index.ts b/packages/core/src/render3/index.ts index 45d7a702d7..184806bf51 100644 --- a/packages/core/src/render3/index.ts +++ b/packages/core/src/render3/index.ts @@ -6,109 +6,107 @@ * found in the LICENSE file at https://angular.io/license */ import {LifecycleHooksFeature, renderComponent, whenRendered} from './component'; -import {defineBase, defineComponent, defineDirective, defineNgModule, definePipe, setComponentScope, setNgModuleScope} from './definition'; -import {InheritDefinitionFeature} from './features/inherit_definition_feature'; -import {NgOnChangesFeature} from './features/ng_onchanges_feature'; -import {ProvidersFeature} from './features/providers_feature'; -import {BaseDef, ComponentDef, ComponentDefWithMeta, ComponentTemplate, ComponentType, DirectiveDef, DirectiveDefFlags, DirectiveDefWithMeta, DirectiveType, PipeDef, PipeDefWithMeta} from './interfaces/definition'; +import {ΔdefineBase, ΔdefineComponent, ΔdefineDirective, ΔdefineNgModule, ΔdefinePipe, ΔsetComponentScope, ΔsetNgModuleScope} from './definition'; +import {ΔInheritDefinitionFeature} from './features/inherit_definition_feature'; +import {ΔNgOnChangesFeature} from './features/ng_onchanges_feature'; +import {ΔProvidersFeature} from './features/providers_feature'; +import {ComponentDef, ComponentTemplate, ComponentType, DirectiveDef, DirectiveDefFlags, DirectiveType, PipeDef, ΔBaseDef, ΔComponentDefWithMeta, ΔDirectiveDefWithMeta, ΔPipeDefWithMeta} from './interfaces/definition'; import {getComponent, getDirectives, getHostElement, getRenderedText} from './util/discovery_utils'; export {ComponentFactory, ComponentFactoryResolver, ComponentRef, injectComponentFactoryResolver} from './component_ref'; -export {getFactoryOf, getInheritedFactory} from './di'; +export {ΔgetFactoryOf, ΔgetInheritedFactory} from './di'; +// clang-format off +export { + detectChanges, + markDirty, + store, + tick, + ΔallocHostVars, + Δbind, + ΔcomponentHostSyntheticListener, + ΔcomponentHostSyntheticProperty, + + Δcontainer, + ΔcontainerRefreshEnd, + ΔcontainerRefreshStart, + + ΔdirectiveInject, + + Δelement, + ΔelementAttribute, + ΔelementClassProp, + ΔelementContainerEnd, + + ΔelementContainerStart, + ΔelementEnd, + + ΔelementHostAttrs, + ΔelementHostClassProp, + ΔelementHostStyleProp, + ΔelementHostStyling, + ΔelementHostStylingApply, + ΔelementHostStylingMap, + ΔelementProperty, + ΔelementStart, + ΔelementStyleProp, + ΔelementStyling, + ΔelementStylingApply, + ΔelementStylingMap, + ΔembeddedViewEnd, + + ΔembeddedViewStart, + + ΔgetCurrentView, + ΔinjectAttribute, + + Δinterpolation1, + Δinterpolation2, + Δinterpolation3, + Δinterpolation4, + Δinterpolation5, + Δinterpolation6, + Δinterpolation7, + Δinterpolation8, + ΔinterpolationV, + + Δlistener, + Δload, + + ΔnamespaceHTML, + ΔnamespaceMathML, + ΔnamespaceSVG, + + ΔnextContext, + + Δprojection, + ΔprojectionDef, + Δproperty, + + Δreference, + + Δselect, + Δtemplate, + + Δtext, + ΔtextBinding} from './instructions/all'; export {RenderFlags} from './interfaces/definition'; export {CssSelectorList} from './interfaces/projection'; - -// clang-format off export { - allocHostVars, - bind, - interpolation1, - interpolation2, - interpolation3, - interpolation4, - interpolation5, - interpolation6, - interpolation7, - interpolation8, - interpolationV, + ΔrestoreView, - container, - containerRefreshStart, - containerRefreshEnd, - - nextContext, - - element, - elementAttribute, - elementClassProp, - elementEnd, - elementProperty, - componentHostSyntheticProperty, - componentHostSyntheticListener, - elementStart, - - elementContainerStart, - elementContainerEnd, - elementStyling, - elementStylingMap, - elementStyleProp, - elementStylingApply, - - elementHostAttrs, - elementHostStyling, - elementHostStylingMap, - elementHostStyleProp, - elementHostClassProp, - elementHostStylingApply, - - select, - property, - - listener, - store, - load, - - namespaceHTML, - namespaceMathML, - namespaceSVG, - - projection, - projectionDef, - - text, - textBinding, - template, - - reference, - - embeddedViewStart, - embeddedViewEnd, - detectChanges, - markDirty, - tick, - - directiveInject, - injectAttribute, - - getCurrentView -} from './instructions/all'; - -export { - restoreView, - - enableBindings, - disableBindings, + ΔenableBindings, + ΔdisableBindings, } from './state'; export { - i18n, - i18nAttributes, - i18nExp, - i18nStart, - i18nEnd, - i18nApply, - i18nPostprocess + Δi18n, + Δi18nAttributes, + Δi18nExp, + Δi18nStart, + Δi18nEnd, + Δi18nApply, + Δi18nPostprocess, } from './i18n'; export {NgModuleFactory, NgModuleRef, NgModuleType} from './ng_module_ref'; @@ -122,71 +120,71 @@ export { } from './metadata'; export { - pipe, - pipeBind1, - pipeBind2, - pipeBind3, - pipeBind4, - pipeBindV, + Δpipe, + ΔpipeBind1, + ΔpipeBind2, + ΔpipeBind3, + ΔpipeBind4, + ΔpipeBindV, } from './pipe'; export { - queryRefresh, - viewQuery, - staticViewQuery, - loadViewQuery, - contentQuery, - loadContentQuery, - staticContentQuery + ΔqueryRefresh, + ΔviewQuery, + ΔstaticViewQuery, + ΔloadViewQuery, + ΔcontentQuery, + ΔloadContentQuery, + ΔstaticContentQuery } from './query'; export { - pureFunction0, - pureFunction1, - pureFunction2, - pureFunction3, - pureFunction4, - pureFunction5, - pureFunction6, - pureFunction7, - pureFunction8, - pureFunctionV, + ΔpureFunction0, + ΔpureFunction1, + ΔpureFunction2, + ΔpureFunction3, + ΔpureFunction4, + ΔpureFunction5, + ΔpureFunction6, + ΔpureFunction7, + ΔpureFunction8, + ΔpureFunctionV, } from './pure_function'; -export {templateRefExtractor} from './view_engine_compatibility_prebound'; +export {ΔtemplateRefExtractor} from './view_engine_compatibility_prebound'; -export {resolveWindow, resolveDocument, resolveBody} from './util/misc_utils'; +export {ΔresolveWindow, ΔresolveDocument, ΔresolveBody} from './util/misc_utils'; // clang-format on export { - BaseDef, + ΔBaseDef, ComponentDef, - ComponentDefWithMeta, + ΔComponentDefWithMeta, ComponentTemplate, ComponentType, DirectiveDef, DirectiveDefFlags, - DirectiveDefWithMeta, + ΔDirectiveDefWithMeta, DirectiveType, - NgOnChangesFeature, - InheritDefinitionFeature, - ProvidersFeature, + ΔNgOnChangesFeature, + ΔInheritDefinitionFeature, + ΔProvidersFeature, PipeDef, - PipeDefWithMeta, + ΔPipeDefWithMeta, LifecycleHooksFeature, - defineComponent, - defineDirective, - defineNgModule, - defineBase, - definePipe, + ΔdefineComponent, + ΔdefineDirective, + ΔdefineNgModule, + ΔdefineBase, + ΔdefinePipe, getHostElement, getComponent, getDirectives, getRenderedText, renderComponent, - setComponentScope, - setNgModuleScope, + ΔsetComponentScope, + ΔsetNgModuleScope, whenRendered, }; diff --git a/packages/core/src/render3/instructions/alloc_host_vars.ts b/packages/core/src/render3/instructions/alloc_host_vars.ts index c7519c7370..fdc2f2a554 100644 --- a/packages/core/src/render3/instructions/alloc_host_vars.ts +++ b/packages/core/src/render3/instructions/alloc_host_vars.ts @@ -16,8 +16,10 @@ import {NO_CHANGE} from '../tokens'; * Allocates the necessary amount of slots for host vars. * * @param count Amount of vars to be allocated + * + * @publicApi */ -export function allocHostVars(count: number): void { +export function ΔallocHostVars(count: number): void { const lView = getLView(); const tView = lView[TVIEW]; if (!tView.firstTemplatePass) return; diff --git a/packages/core/src/render3/instructions/container.ts b/packages/core/src/render3/instructions/container.ts index e696bb6979..f80df62651 100644 --- a/packages/core/src/render3/instructions/container.ts +++ b/packages/core/src/render3/instructions/container.ts @@ -27,8 +27,10 @@ import {addToViewTree, createDirectivesAndLocals, createLContainer, createNodeAt * % } * * @param index The index of the container in the data array + * + * @publicApi */ -export function container(index: number): void { +export function Δcontainer(index: number): void { const tNode = containerInternal(index, null, null); const lView = getLView(); if (lView[TVIEW].firstTemplatePass) { @@ -54,8 +56,10 @@ export function container(index: number): void { * @param localRefs A set of local reference bindings on the element. * @param localRefExtractor A function which extracts local-refs values from the template. * Defaults to the current element associated with the local-ref. + * + * @publicApi */ -export function template( +export function Δtemplate( index: number, templateFn: ComponentTemplate| null, consts: number, vars: number, tagName?: string | null, attrs?: TAttributes | null, localRefs?: string[] | null, localRefExtractor?: LocalRefExtractor) { @@ -80,8 +84,10 @@ export function template( * Sets a container up to receive views. * * @param index The index of the container in the data array + * + * @publicApi */ -export function containerRefreshStart(index: number): void { +export function ΔcontainerRefreshStart(index: number): void { const lView = getLView(); const tView = lView[TVIEW]; let previousOrParentTNode = loadInternal(tView.data, index) as TNode; @@ -101,8 +107,10 @@ export function containerRefreshStart(index: number): void { * Marks the end of the LContainer. * * Marking the end of LContainer is the time when to child views get inserted or removed. + * + * @publicApi */ -export function containerRefreshEnd(): void { +export function ΔcontainerRefreshEnd(): void { let previousOrParentTNode = getPreviousOrParentTNode(); if (getIsParent()) { setIsParent(false); diff --git a/packages/core/src/render3/instructions/di.ts b/packages/core/src/render3/instructions/di.ts index c0a97ce34b..40f7ec6a8a 100644 --- a/packages/core/src/render3/instructions/di.ts +++ b/packages/core/src/render3/instructions/di.ts @@ -19,22 +19,25 @@ import {getLView, getPreviousOrParentTNode} from '../state'; * * Usage example (in factory function): * + * ```ts * class SomeDirective { * constructor(directive: DirectiveA) {} * - * static ngDirectiveDef = defineDirective({ + * static ngDirectiveDef = ΔdefineDirective({ * type: SomeDirective, - * factory: () => new SomeDirective(directiveInject(DirectiveA)) + * factory: () => new SomeDirective(ΔdirectiveInject(DirectiveA)) * }); * } - * + * ``` * @param token the type or token to inject * @param flags Injection flags * @returns the value from the injector or `null` when not found + * + * @publicApi */ -export function directiveInject(token: Type| InjectionToken): T; -export function directiveInject(token: Type| InjectionToken, flags: InjectFlags): T; -export function directiveInject( +export function ΔdirectiveInject(token: Type| InjectionToken): T; +export function ΔdirectiveInject(token: Type| InjectionToken, flags: InjectFlags): T; +export function ΔdirectiveInject( token: Type| InjectionToken, flags = InjectFlags.Default): T|null { token = resolveForwardRef(token); return getOrCreateInjectable( @@ -44,7 +47,9 @@ export function directiveInject( /** * Facade for the attribute injection from DI. + * + * @publicApi */ -export function injectAttribute(attrNameToInject: string): string|null { +export function ΔinjectAttribute(attrNameToInject: string): string|null { return injectAttributeImpl(getPreviousOrParentTNode(), attrNameToInject); } diff --git a/packages/core/src/render3/instructions/element.ts b/packages/core/src/render3/instructions/element.ts index b257a6c92e..a7aeb81a20 100644 --- a/packages/core/src/render3/instructions/element.ts +++ b/packages/core/src/render3/instructions/element.ts @@ -41,8 +41,10 @@ import {getActiveDirectiveStylingIndex} from './styling'; * Attributes and localRefs are passed as an array of strings where elements with an even index * hold an attribute name and elements with an odd index hold an attribute value, ex.: * ['id', 'warning5', 'class', 'alert'] + * + * @publicApi */ -export function elementStart( +export function ΔelementStart( index: number, name: string, attrs?: TAttributes | null, localRefs?: string[] | null): void { const lView = getLView(); const tView = lView[TVIEW]; @@ -122,8 +124,12 @@ export function elementStart( executeContentQueries(tView, tNode, lView); } -/** Mark the end of the element. */ -export function elementEnd(): void { +/** + * Mark the end of the element. + * + * @publicApi + */ +export function ΔelementEnd(): void { let previousOrParentTNode = getPreviousOrParentTNode(); if (getIsParent()) { setIsParent(false); @@ -172,11 +178,13 @@ export function elementEnd(): void { * @param attrs Statically bound set of attributes, classes, and styles to be written into the DOM * element on creation. Use [AttributeMarker] to denote the meaning of this array. * @param localRefs A set of local reference bindings on the element. + * + * @publicApi */ -export function element( +export function Δelement( index: number, name: string, attrs?: TAttributes | null, localRefs?: string[] | null): void { - elementStart(index, name, attrs, localRefs); - elementEnd(); + ΔelementStart(index, name, attrs, localRefs); + ΔelementEnd(); } @@ -189,8 +197,10 @@ export function element( * Otherwise the attribute value is set to the stringified value. * @param sanitizer An optional function used to sanitize the value. * @param namespace Optional namespace to use when setting the attribute. + * + * @publicApi */ -export function elementAttribute( +export function ΔelementAttribute( index: number, name: string, value: any, sanitizer?: SanitizerFn | null, namespace?: string): void { if (value !== NO_CHANGE) { @@ -258,7 +268,7 @@ export function elementAttribute( * * @publicApi */ -export function elementHostAttrs(attrs: TAttributes) { +export function ΔelementHostAttrs(attrs: TAttributes) { const hostElementIndex = getSelectedIndex(); const lView = getLView(); const tNode = getTNode(hostElementIndex, lView); diff --git a/packages/core/src/render3/instructions/element_container.ts b/packages/core/src/render3/instructions/element_container.ts index 29ac9d2598..77f4b4ccf1 100644 --- a/packages/core/src/render3/instructions/element_container.ts +++ b/packages/core/src/render3/instructions/element_container.ts @@ -28,8 +28,10 @@ import {createDirectivesAndLocals, createNodeAtIndex, executeContentQueries, set * Even if this instruction accepts a set of attributes no actual attribute values are propagated to * the DOM (as a comment node can't have attributes). Attributes are here only for directive * matching purposes and setting initial inputs of directives. + * + * @publicApi */ -export function elementContainerStart( +export function ΔelementContainerStart( index: number, attrs?: TAttributes | null, localRefs?: string[] | null): void { const lView = getLView(); const tView = lView[TVIEW]; @@ -65,8 +67,12 @@ export function elementContainerStart( executeContentQueries(tView, tNode, lView); } -/** Mark the end of the . */ -export function elementContainerEnd(): void { +/** + * Mark the end of the . + * + * @publicApi + */ +export function ΔelementContainerEnd(): void { let previousOrParentTNode = getPreviousOrParentTNode(); const lView = getLView(); const tView = lView[TVIEW]; diff --git a/packages/core/src/render3/instructions/embedded_view.ts b/packages/core/src/render3/instructions/embedded_view.ts index bfdb3b8b03..f1f1f54047 100644 --- a/packages/core/src/render3/instructions/embedded_view.ts +++ b/packages/core/src/render3/instructions/embedded_view.ts @@ -23,8 +23,10 @@ import {assignTViewNodeToLView, createLView, createTView, refreshDescendantViews * * @param viewBlockId The ID of this view * @return boolean Whether or not this view is in creation mode + * + * @publicApi */ -export function embeddedViewStart(viewBlockId: number, consts: number, vars: number): RenderFlags { +export function ΔembeddedViewStart(viewBlockId: number, consts: number, vars: number): RenderFlags { const lView = getLView(); const previousOrParentTNode = getPreviousOrParentTNode(); // The previous node can be a view node if we are processing an inline for loop @@ -122,8 +124,12 @@ function scanForView(lContainer: LContainer, startIdx: number, viewBlockId: numb return null; } -/** Marks the end of an embedded view. */ -export function embeddedViewEnd(): void { +/** + * Marks the end of an embedded view. + * + * @publicApi + */ +export function ΔembeddedViewEnd(): void { const lView = getLView(); const viewHost = lView[T_HOST]; diff --git a/packages/core/src/render3/instructions/get_current_view.ts b/packages/core/src/render3/instructions/get_current_view.ts index 274e0da280..04de91ee22 100644 --- a/packages/core/src/render3/instructions/get_current_view.ts +++ b/packages/core/src/render3/instructions/get_current_view.ts @@ -14,7 +14,9 @@ import {getLView} from '../state'; * Used in conjunction with the restoreView() instruction to save a snapshot * of the current view and restore it when listeners are invoked. This allows * walking the declaration view tree in listeners to get vars from parent views. + * + * @publicApi */ -export function getCurrentView(): OpaqueViewState { +export function ΔgetCurrentView(): OpaqueViewState { return getLView() as any as OpaqueViewState; } diff --git a/packages/core/src/render3/instructions/listener.ts b/packages/core/src/render3/instructions/listener.ts index 04df3d4e58..fbc15856aa 100644 --- a/packages/core/src/render3/instructions/listener.ts +++ b/packages/core/src/render3/instructions/listener.ts @@ -28,8 +28,10 @@ import {BindingDirection, generatePropertyAliases, getCleanup, handleError, load * @param useCapture Whether or not to use capture in event listener * @param eventTargetResolver Function that returns global target information in case this listener * should be attached to a global object like window, document or body + * + * @publicApi */ -export function listener( +export function Δlistener( eventName: string, listenerFn: (e?: any) => any, useCapture = false, eventTargetResolver?: GlobalTargetResolver): void { listenerInternal(eventName, listenerFn, useCapture, eventTargetResolver); @@ -53,8 +55,10 @@ export function listener( * @param useCapture Whether or not to use capture in event listener * @param eventTargetResolver Function that returns global target information in case this listener * should be attached to a global object like window, document or body + * + * @publicApi */ -export function componentHostSyntheticListener( +export function ΔcomponentHostSyntheticListener( eventName: string, listenerFn: (e?: any) => any, useCapture = false, eventTargetResolver?: GlobalTargetResolver): void { listenerInternal(eventName, listenerFn, useCapture, eventTargetResolver, loadComponentRenderer); diff --git a/packages/core/src/render3/instructions/namespace.ts b/packages/core/src/render3/instructions/namespace.ts index caf7b87bf7..d2ecc7dc84 100644 --- a/packages/core/src/render3/instructions/namespace.ts +++ b/packages/core/src/render3/instructions/namespace.ts @@ -6,4 +6,4 @@ * found in the LICENSE file at https://angular.io/license */ -export {namespaceHTML, namespaceMathML, namespaceSVG} from '../state'; +export {ΔnamespaceHTML, ΔnamespaceMathML, ΔnamespaceSVG} from '../state'; diff --git a/packages/core/src/render3/instructions/next_context.ts b/packages/core/src/render3/instructions/next_context.ts index fbf9e9bdfb..a4af7bba2d 100644 --- a/packages/core/src/render3/instructions/next_context.ts +++ b/packages/core/src/render3/instructions/next_context.ts @@ -16,7 +16,9 @@ import {nextContextImpl} from '../state'; * * @param level The relative level of the view from which to grab context compared to contextVewData * @returns context + * + * @publicApi */ -export function nextContext(level: number = 1): T { +export function ΔnextContext(level: number = 1): T { return nextContextImpl(level); } diff --git a/packages/core/src/render3/instructions/projection.ts b/packages/core/src/render3/instructions/projection.ts index e8f880b63f..38ef6d79dd 100644 --- a/packages/core/src/render3/instructions/projection.ts +++ b/packages/core/src/render3/instructions/projection.ts @@ -34,8 +34,10 @@ import {createNodeAtIndex} from './shared'; * * @param selectors A collection of parsed CSS selectors * @param rawSelectors A collection of CSS selectors in the raw, un-parsed form + * + * @publicApi */ -export function projectionDef(selectors?: CssSelectorList[], textSelectors?: string[]): void { +export function ΔprojectionDef(selectors?: CssSelectorList[], textSelectors?: string[]): void { const componentNode = findComponentView(getLView())[T_HOST] as TElementNode; if (!componentNode.projection) { @@ -72,8 +74,10 @@ export function projectionDef(selectors?: CssSelectorList[], textSelectors?: str * @param selectorIndex: * - 0 when the selector is `*` (or unspecified as this is the default value), * - 1 based index of the selector from the {@link projectionDef} - */ -export function projection(nodeIndex: number, selectorIndex: number = 0, attrs?: string[]): void { + * + * @publicApi +*/ +export function Δprojection(nodeIndex: number, selectorIndex: number = 0, attrs?: string[]): void { const lView = getLView(); const tProjectionNode = createNodeAtIndex(nodeIndex, TNodeType.Projection, null, null, attrs || null); diff --git a/packages/core/src/render3/instructions/property.ts b/packages/core/src/render3/instructions/property.ts index e0718ddf6a..c26b29e7f3 100644 --- a/packages/core/src/render3/instructions/property.ts +++ b/packages/core/src/render3/instructions/property.ts @@ -38,22 +38,26 @@ import {TsickleIssue1009, initializeTNodeInputs, loadComponentRenderer, setInput * (this is necessary for host property bindings) * @returns This function returns itself so that it may be chained * (e.g. `property('name', ctx.name)('title', ctx.title)`) + * + * @publicApi */ -export function property( +export function Δproperty( propName: string, value: T, sanitizer?: SanitizerFn | null, nativeOnly?: boolean): TsickleIssue1009 { const index = getSelectedIndex(); - const bindReconciledValue = bind(value); + const bindReconciledValue = Δbind(value); elementPropertyInternal(index, propName, bindReconciledValue, sanitizer, nativeOnly); - return property; + return Δproperty; } /** * Creates a single value binding. * * @param value Value to diff + * + * @publicApi */ -export function bind(value: T): T|NO_CHANGE { +export function Δbind(value: T): T|NO_CHANGE { const lView = getLView(); const bindingIndex = lView[BINDING_INDEX]++; storeBindingMetadata(lView); @@ -75,8 +79,10 @@ export function bind(value: T): T|NO_CHANGE { * @param sanitizer An optional function used to sanitize the value. * @param nativeOnly Whether or not we should only set native properties and skip input check * (this is necessary for host property bindings) + * + * @publicApi */ -export function elementProperty( +export function ΔelementProperty( index: number, propName: string, value: T | NO_CHANGE, sanitizer?: SanitizerFn | null, nativeOnly?: boolean): void { elementPropertyInternal(index, propName, value, sanitizer, nativeOnly); @@ -102,8 +108,10 @@ export function elementProperty( * @param sanitizer An optional function used to sanitize the value. * @param nativeOnly Whether or not we should only set native properties and skip input check * (this is necessary for host property bindings) + * + * @publicApi */ -export function componentHostSyntheticProperty( +export function ΔcomponentHostSyntheticProperty( index: number, propName: string, value: T | NO_CHANGE, sanitizer?: SanitizerFn | null, nativeOnly?: boolean) { elementPropertyInternal(index, propName, value, sanitizer, nativeOnly, loadComponentRenderer); diff --git a/packages/core/src/render3/instructions/property_interpolation.ts b/packages/core/src/render3/instructions/property_interpolation.ts index 7ff7fe7662..6eb7c77476 100644 --- a/packages/core/src/render3/instructions/property_interpolation.ts +++ b/packages/core/src/render3/instructions/property_interpolation.ts @@ -24,8 +24,10 @@ import {storeBindingMetadata} from './shared'; * - has evaluated expressions at odd indexes. * * Returns the concatenated string when any of the arguments changes, `NO_CHANGE` otherwise. + * + * @publicApi */ -export function interpolationV(values: any[]): string|NO_CHANGE { +export function ΔinterpolationV(values: any[]): string|NO_CHANGE { ngDevMode && assertLessThan(2, values.length, 'should have at least 3 values'); ngDevMode && assertEqual(values.length % 2, 1, 'should have an odd number of values'); let different = false; @@ -67,16 +69,22 @@ export function interpolationV(values: any[]): string|NO_CHANGE { * @param prefix static value used for concatenation only. * @param v0 value checked for change. * @param suffix static value used for concatenation only. + * + * @publicApi */ -export function interpolation1(prefix: string, v0: any, suffix: string): string|NO_CHANGE { +export function Δinterpolation1(prefix: string, v0: any, suffix: string): string|NO_CHANGE { const lView = getLView(); const different = bindingUpdated(lView, lView[BINDING_INDEX]++, v0); storeBindingMetadata(lView, prefix, suffix); return different ? prefix + renderStringify(v0) + suffix : NO_CHANGE; } -/** Creates an interpolation binding with 2 expressions. */ -export function interpolation2( +/** + * Creates an interpolation binding with 2 expressions. + * + * @publicApi + */ +export function Δinterpolation2( prefix: string, v0: any, i0: string, v1: any, suffix: string): string|NO_CHANGE { const lView = getLView(); const bindingIndex = lView[BINDING_INDEX]; @@ -92,8 +100,12 @@ export function interpolation2( return different ? prefix + renderStringify(v0) + i0 + renderStringify(v1) + suffix : NO_CHANGE; } -/** Creates an interpolation binding with 3 expressions. */ -export function interpolation3( +/** + * Creates an interpolation binding with 3 expressions. + * + * @publicApi + */ +export function Δinterpolation3( prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): string| NO_CHANGE { const lView = getLView(); @@ -114,8 +126,12 @@ export function interpolation3( NO_CHANGE; } -/** Create an interpolation binding with 4 expressions. */ -export function interpolation4( +/** + * Create an interpolation binding with 4 expressions. + * + * @publicApi + */ +export function Δinterpolation4( prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): string|NO_CHANGE { const lView = getLView(); @@ -138,8 +154,12 @@ export function interpolation4( NO_CHANGE; } -/** Creates an interpolation binding with 5 expressions. */ -export function interpolation5( +/** + * Creates an interpolation binding with 5 expressions. + * + * @publicApi + */ +export function Δinterpolation5( prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): string|NO_CHANGE { const lView = getLView(); @@ -164,8 +184,12 @@ export function interpolation5( NO_CHANGE; } -/** Creates an interpolation binding with 6 expressions. */ -export function interpolation6( +/** + * Creates an interpolation binding with 6 expressions. + * + * @publicApi + */ +export function Δinterpolation6( prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): string|NO_CHANGE { const lView = getLView(); @@ -191,8 +215,12 @@ export function interpolation6( NO_CHANGE; } -/** Creates an interpolation binding with 7 expressions. */ -export function interpolation7( +/** + * Creates an interpolation binding with 7 expressions. + * + * @publicApi + */ +export function Δinterpolation7( prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): string| NO_CHANGE { @@ -221,8 +249,12 @@ export function interpolation7( NO_CHANGE; } -/** Creates an interpolation binding with 8 expressions. */ -export function interpolation8( +/** + * Creates an interpolation binding with 8 expressions. + * + * @publicApi + */ +export function Δinterpolation8( prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): string|NO_CHANGE { diff --git a/packages/core/src/render3/instructions/select.ts b/packages/core/src/render3/instructions/select.ts index 0dd8ce8e79..ad7c665c38 100644 --- a/packages/core/src/render3/instructions/select.ts +++ b/packages/core/src/render3/instructions/select.ts @@ -18,18 +18,20 @@ import {getCheckNoChangesMode, getLView, setSelectedIndex} from '../state'; * * ```ts * (rf: RenderFlags, ctx: any) => { - * if (rf & 1) { - * element(0, 'div'); - * } - * if (rf & 2) { - * select(0); // Select the
created above. - * property('title', 'test'); - * } - * } - * ``` - * @param index the index of the item to act on with the following instructions - */ -export function select(index: number): void { + * if (rf & 1) { + * element(0, 'div'); + * } + * if (rf & 2) { + * select(0); // Select the
created above. + * property('title', 'test'); + * } + * } + * ``` + * @param index the index of the item to act on with the following instructions + * + * @publicApi + */ +export function Δselect(index: number): void { ngDevMode && assertGreaterThan(index, -1, 'Invalid index'); ngDevMode && assertLessThan( diff --git a/packages/core/src/render3/instructions/shared.ts b/packages/core/src/render3/instructions/shared.ts index a797e24c46..a55c92bcab 100644 --- a/packages/core/src/render3/instructions/shared.ts +++ b/packages/core/src/render3/instructions/shared.ts @@ -27,7 +27,7 @@ import {StylingContext} from '../interfaces/styling'; import {BINDING_INDEX, CHILD_HEAD, CHILD_TAIL, CLEANUP, CONTEXT, DECLARATION_VIEW, ExpandoInstructions, FLAGS, HEADER_OFFSET, HOST, INJECTOR, InitPhaseState, LView, LViewFlags, NEXT, PARENT, QUERIES, RENDERER, RENDERER_FACTORY, RootContext, RootContextFlags, SANITIZER, TVIEW, TView, T_HOST} from '../interfaces/view'; import {assertNodeOfPossibleTypes, assertNodeType} from '../node_assert'; import {isNodeMatchingSelectorList} from '../node_selector_matcher'; -import {enterView, getBindingsEnabled, getCheckNoChangesMode, getIsParent, getLView, getNamespace, getPreviousOrParentTNode, incrementActiveDirectiveId, isCreationMode, leaveView, namespaceHTML, resetComponentState, setActiveHostElement, setBindingRoot, setCheckNoChangesMode, setCurrentDirectiveDef, setCurrentQueryIndex, setIsParent, setPreviousOrParentTNode, setSelectedIndex} from '../state'; +import {enterView, getBindingsEnabled, getCheckNoChangesMode, getIsParent, getLView, getNamespace, getPreviousOrParentTNode, incrementActiveDirectiveId, isCreationMode, leaveView, resetComponentState, setActiveHostElement, setBindingRoot, setCheckNoChangesMode, setCurrentDirectiveDef, setCurrentQueryIndex, setIsParent, setPreviousOrParentTNode, setSelectedIndex, ΔnamespaceHTML} from '../state'; import {initializeStaticContext as initializeStaticStylingContext} from '../styling/class_and_style_bindings'; import {NO_CHANGE} from '../tokens'; import {attrsStylingIndexOf} from '../util/attrs_utils'; @@ -36,6 +36,7 @@ import {getLViewParent, getRootContext} from '../util/view_traversal_utils'; import {getComponentViewByIndex, getNativeByTNode, isComponentDef, isContentQueryHost, isRootView, readPatchedLView, resetPreOrderHookFlags, unwrapRNode, viewAttachedToChangeDetector} from '../util/view_utils'; + /** * A permanent marker promise which signifies that the current CD tree is * clean. @@ -426,7 +427,7 @@ export function renderEmbeddedTemplate(viewToRender: LView, tView: TView, con oldView = enterView(viewToRender, viewToRender[T_HOST]); resetPreOrderHookFlags(viewToRender); - namespaceHTML(); + ΔnamespaceHTML(); // Reset the selected index so we can assert that `select` was called later ngDevMode && setSelectedIndex(-1); @@ -461,7 +462,7 @@ function renderComponentOrTemplate( if (creationModeIsActive) { // creation mode pass if (templateFn) { - namespaceHTML(); + ΔnamespaceHTML(); // Reset the selected index so we can assert that `select` was called later ngDevMode && setSelectedIndex(-1); @@ -1510,7 +1511,7 @@ export function checkView(hostView: LView, component: T) { try { resetPreOrderHookFlags(hostView); - namespaceHTML(); + ΔnamespaceHTML(); creationMode && executeViewQueryFn(RenderFlags.Create, hostTView, component); // Reset the selected index so we can assert that `select` was called later diff --git a/packages/core/src/render3/instructions/storage.ts b/packages/core/src/render3/instructions/storage.ts index e22474dea3..5d89def67f 100644 --- a/packages/core/src/render3/instructions/storage.ts +++ b/packages/core/src/render3/instructions/storage.ts @@ -30,13 +30,19 @@ export function store(index: number, value: T): void { * with a nextContext() call, which walks up the tree and updates the contextViewData instance. * * @param index The index of the local ref in contextViewData. + * + * @publicApi */ -export function reference(index: number) { +export function Δreference(index: number) { const contextLView = getContextLView(); return loadInternal(contextLView, index); } -/** Retrieves a value from current `viewData`. */ -export function load(index: number): T { +/** + * Retrieves a value from current `viewData`. + * + * @publicApi + */ +export function Δload(index: number): T { return loadInternal(getLView(), index); } diff --git a/packages/core/src/render3/instructions/styling.ts b/packages/core/src/render3/instructions/styling.ts index c86162f81f..9f5abf3ceb 100644 --- a/packages/core/src/render3/instructions/styling.ts +++ b/packages/core/src/render3/instructions/styling.ts @@ -64,7 +64,7 @@ import {scheduleTick, setInputsForProperty} from './shared'; * * @publicApi */ -export function elementStyling( +export function ΔelementStyling( classBindingNames?: string[] | null, styleBindingNames?: string[] | null, styleSanitizer?: StyleSanitizeFn | null): void { const tNode = getPreviousOrParentTNode(); @@ -106,7 +106,7 @@ export function elementStyling( * * @publicApi */ -export function elementHostStyling( +export function ΔelementHostStyling( classBindingNames?: string[] | null, styleBindingNames?: string[] | null, styleSanitizer?: StyleSanitizeFn | null): void { const tNode = getPreviousOrParentTNode(); @@ -166,7 +166,7 @@ function initElementStyling( * * @publicApi */ -export function elementStyleProp( +export function ΔelementStyleProp( index: number, styleIndex: number, value: string | number | String | PlayerFactory | null, suffix?: string | null, forceOverride?: boolean): void { const valueToAdd = resolveStylePropValue(value, suffix); @@ -200,7 +200,7 @@ export function elementStyleProp( * * @publicApi */ -export function elementHostStyleProp( +export function ΔelementHostStyleProp( styleIndex: number, value: string | number | String | PlayerFactory | null, suffix?: string | null, forceOverride?: boolean): void { const directiveStylingIndex = getActiveDirectiveStylingIndex(); @@ -253,7 +253,7 @@ function resolveStylePropValue( * * @publicApi */ -export function elementClassProp( +export function ΔelementClassProp( index: number, classIndex: number, value: boolean | PlayerFactory, forceOverride?: boolean): void { const input = (value instanceof BoundPlayerFactory) ? @@ -283,7 +283,7 @@ export function elementClassProp( * * @publicApi */ -export function elementHostClassProp( +export function ΔelementHostClassProp( classIndex: number, value: boolean | PlayerFactory, forceOverride?: boolean): void { const directiveStylingIndex = getActiveDirectiveStylingIndex(); const hostElementIndex = getSelectedIndex(); @@ -326,7 +326,7 @@ function booleanOrNull(value: any): boolean|null { * * @publicApi */ -export function elementStylingMap( +export function ΔelementStylingMap( index: number, classes: {[key: string]: any} | string | NO_CHANGE | null, styles?: {[styleName: string]: any} | NO_CHANGE | null): void { const lView = getLView(); @@ -379,7 +379,7 @@ export function elementStylingMap( * * @publicApi */ -export function elementHostStylingMap( +export function ΔelementHostStylingMap( classes: {[key: string]: any} | string | NO_CHANGE | null, styles?: {[styleName: string]: any} | NO_CHANGE | null): void { const directiveStylingIndex = getActiveDirectiveStylingIndex(); @@ -405,7 +405,7 @@ export function elementHostStylingMap( * * @publicApi */ -export function elementStylingApply(index: number): void { +export function ΔelementStylingApply(index: number): void { elementStylingApplyInternal(DEFAULT_TEMPLATE_DIRECTIVE_INDEX, index); } @@ -419,7 +419,7 @@ export function elementStylingApply(index: number): void { * * @publicApi */ -export function elementHostStylingApply(): void { +export function ΔelementHostStylingApply(): void { elementStylingApplyInternal(getActiveDirectiveStylingIndex(), getSelectedIndex()); } @@ -449,4 +449,4 @@ export function getActiveDirectiveStylingIndex() { // parent directive. To help the styling code distinguish between a parent // sub-classed directive the inheritance depth is taken into account as well. return getActiveDirectiveId() + getActiveDirectiveSuperClassDepth(); -} \ No newline at end of file +} diff --git a/packages/core/src/render3/instructions/text.ts b/packages/core/src/render3/instructions/text.ts index b893d55a9d..d0e28cbf1c 100644 --- a/packages/core/src/render3/instructions/text.ts +++ b/packages/core/src/render3/instructions/text.ts @@ -21,8 +21,10 @@ import {createNodeAtIndex} from './shared'; * * @param index Index of the node in the data array * @param value Value to write. This value will be stringified. + * + * @publicApi */ -export function text(index: number, value?: any): void { +export function Δtext(index: number, value?: any): void { const lView = getLView(); ngDevMode && assertEqual( lView[BINDING_INDEX], lView[TVIEW].bindingStartIndex, @@ -42,8 +44,10 @@ export function text(index: number, value?: any): void { * * @param index Index of the node in the data array. * @param value Stringified value to write. + * + * @publicApi */ -export function textBinding(index: number, value: T | NO_CHANGE): void { +export function ΔtextBinding(index: number, value: T | NO_CHANGE): void { if (value !== NO_CHANGE) { const lView = getLView(); ngDevMode && assertDataInRange(lView, index + HEADER_OFFSET); diff --git a/packages/core/src/render3/interfaces/definition.ts b/packages/core/src/render3/interfaces/definition.ts index 1f8cacc62c..aba530aeee 100644 --- a/packages/core/src/render3/interfaces/definition.ts +++ b/packages/core/src/render3/interfaces/definition.ts @@ -85,7 +85,10 @@ export const enum DirectiveDefFlags {ContentQuery = 0b10} */ export interface PipeType extends Type { ngPipeDef: never; } -export type DirectiveDefWithMeta< +/** + * @publicApi + */ +export type ΔDirectiveDefWithMeta< T, Selector extends string, ExportAs extends string[], InputMap extends{[key: string]: string}, OutputMap extends{[key: string]: string}, QueryFields extends string[]> = DirectiveDef; @@ -97,8 +100,10 @@ export type DirectiveDefWithMeta< * and outputs should be inherited. * * See: {@link defineBase} + * + * @publicApi */ -export interface BaseDef { +export interface ΔBaseDef { /** * A dictionary mapping the inputs' minified property names to their public API names, which * are their aliases if any, or their original unminified property names @@ -134,7 +139,7 @@ export interface BaseDef { * * See: {@link defineDirective} */ -export interface DirectiveDef extends BaseDef { +export interface DirectiveDef extends ΔBaseDef { /** Token representing the directive. Used by DI. */ type: Type; @@ -194,7 +199,10 @@ export interface DirectiveDef extends BaseDef { privateName: string) => void)|null; } -export type ComponentDefWithMeta< +/** + * @publicApi + */ +export type ΔComponentDefWithMeta< T, Selector extends String, ExportAs extends string[], InputMap extends{[key: string]: string}, OutputMap extends{[key: string]: string}, QueryFields extends string[]> = ComponentDef; @@ -338,7 +346,10 @@ export interface PipeDef { onDestroy: (() => void)|null; } -export type PipeDefWithMeta = PipeDef; +/** + * @publicApi + */ +export type ΔPipeDefWithMeta = PipeDef; export interface DirectiveDefFeature { (directiveDef: DirectiveDef): void; diff --git a/packages/core/src/render3/jit/environment.ts b/packages/core/src/render3/jit/environment.ts index 0e23bce15c..fc99c611f9 100644 --- a/packages/core/src/render3/jit/environment.ts +++ b/packages/core/src/render3/jit/environment.ts @@ -6,8 +6,8 @@ * found in the LICENSE file at https://angular.io/license */ -import {defineInjectable, defineInjector,} from '../../di/interface/defs'; -import {inject} from '../../di/injector_compatibility'; +import {ΔdefineInjectable, ΔdefineInjector,} from '../../di/interface/defs'; +import {Δinject} from '../../di/injector_compatibility'; import * as r3 from '../index'; import * as sanitization from '../../sanitization/sanitization'; @@ -18,116 +18,116 @@ import * as sanitization from '../../sanitization/sanitization'; * This should be kept up to date with the public exports of @angular/core. */ export const angularCoreEnv: {[name: string]: Function} = { - 'ɵdefineBase': r3.defineBase, - 'ɵdefineComponent': r3.defineComponent, - 'ɵdefineDirective': r3.defineDirective, - 'defineInjectable': defineInjectable, - 'defineInjector': defineInjector, - 'ɵdefineNgModule': r3.defineNgModule, - 'ɵdefinePipe': r3.definePipe, - 'ɵdirectiveInject': r3.directiveInject, - 'ɵgetFactoryOf': r3.getFactoryOf, - 'ɵgetInheritedFactory': r3.getInheritedFactory, - 'inject': inject, - 'ɵinjectAttribute': r3.injectAttribute, - 'ɵtemplateRefExtractor': r3.templateRefExtractor, - 'ɵNgOnChangesFeature': r3.NgOnChangesFeature, - 'ɵProvidersFeature': r3.ProvidersFeature, - 'ɵInheritDefinitionFeature': r3.InheritDefinitionFeature, - 'ɵelementAttribute': r3.elementAttribute, - 'ɵbind': r3.bind, - 'ɵcontainer': r3.container, - 'ɵnextContext': r3.nextContext, - 'ɵcontainerRefreshStart': r3.containerRefreshStart, - 'ɵcontainerRefreshEnd': r3.containerRefreshEnd, - 'ɵnamespaceHTML': r3.namespaceHTML, - 'ɵnamespaceMathML': r3.namespaceMathML, - 'ɵnamespaceSVG': r3.namespaceSVG, - 'ɵenableBindings': r3.enableBindings, - 'ɵdisableBindings': r3.disableBindings, - 'ɵallocHostVars': r3.allocHostVars, - 'ɵelementStart': r3.elementStart, - 'ɵelementEnd': r3.elementEnd, - 'ɵelement': r3.element, - 'ɵelementContainerStart': r3.elementContainerStart, - 'ɵelementContainerEnd': r3.elementContainerEnd, - 'ɵpureFunction0': r3.pureFunction0, - 'ɵpureFunction1': r3.pureFunction1, - 'ɵpureFunction2': r3.pureFunction2, - 'ɵpureFunction3': r3.pureFunction3, - 'ɵpureFunction4': r3.pureFunction4, - 'ɵpureFunction5': r3.pureFunction5, - 'ɵpureFunction6': r3.pureFunction6, - 'ɵpureFunction7': r3.pureFunction7, - 'ɵpureFunction8': r3.pureFunction8, - 'ɵpureFunctionV': r3.pureFunctionV, - 'ɵgetCurrentView': r3.getCurrentView, - 'ɵrestoreView': r3.restoreView, - 'ɵinterpolation1': r3.interpolation1, - 'ɵinterpolation2': r3.interpolation2, - 'ɵinterpolation3': r3.interpolation3, - 'ɵinterpolation4': r3.interpolation4, - 'ɵinterpolation5': r3.interpolation5, - 'ɵinterpolation6': r3.interpolation6, - 'ɵinterpolation7': r3.interpolation7, - 'ɵinterpolation8': r3.interpolation8, - 'ɵinterpolationV': r3.interpolationV, - 'ɵlistener': r3.listener, - 'ɵload': r3.load, - 'ɵprojection': r3.projection, - 'ɵelementProperty': r3.elementProperty, - 'ɵcomponentHostSyntheticProperty': r3.componentHostSyntheticProperty, - 'ɵcomponentHostSyntheticListener': r3.componentHostSyntheticListener, - 'ɵpipeBind1': r3.pipeBind1, - 'ɵpipeBind2': r3.pipeBind2, - 'ɵpipeBind3': r3.pipeBind3, - 'ɵpipeBind4': r3.pipeBind4, - 'ɵpipeBindV': r3.pipeBindV, - 'ɵprojectionDef': r3.projectionDef, - 'ɵpipe': r3.pipe, - 'ɵqueryRefresh': r3.queryRefresh, - 'ɵviewQuery': r3.viewQuery, - 'ɵstaticViewQuery': r3.staticViewQuery, - 'ɵstaticContentQuery': r3.staticContentQuery, - 'ɵloadViewQuery': r3.loadViewQuery, - 'ɵcontentQuery': r3.contentQuery, - 'ɵloadContentQuery': r3.loadContentQuery, - 'ɵreference': r3.reference, - 'ɵelementHostAttrs': r3.elementHostAttrs, - 'ɵelementStyling': r3.elementStyling, - 'ɵelementStylingMap': r3.elementStylingMap, - 'ɵelementStyleProp': r3.elementStyleProp, - 'ɵelementStylingApply': r3.elementStylingApply, - 'ɵelementClassProp': r3.elementClassProp, - 'ɵelementHostStyling': r3.elementHostStyling, - 'ɵelementHostStylingMap': r3.elementHostStylingMap, - 'ɵelementHostStyleProp': r3.elementHostStyleProp, - 'ɵelementHostStylingApply': r3.elementHostStylingApply, - 'ɵelementHostClassProp': r3.elementHostClassProp, - 'ɵselect': r3.select, - 'ɵtemplate': r3.template, - 'ɵtext': r3.text, - 'ɵtextBinding': r3.textBinding, - 'ɵembeddedViewStart': r3.embeddedViewStart, - 'ɵembeddedViewEnd': r3.embeddedViewEnd, - 'ɵi18n': r3.i18n, - 'ɵi18nAttributes': r3.i18nAttributes, - 'ɵi18nExp': r3.i18nExp, - 'ɵi18nStart': r3.i18nStart, - 'ɵi18nEnd': r3.i18nEnd, - 'ɵi18nApply': r3.i18nApply, - 'ɵi18nPostprocess': r3.i18nPostprocess, - 'ɵresolveWindow': r3.resolveWindow, - 'ɵresolveDocument': r3.resolveDocument, - 'ɵresolveBody': r3.resolveBody, - 'ɵsetComponentScope': r3.setComponentScope, - 'ɵsetNgModuleScope': r3.setNgModuleScope, + 'ΔdefineBase': r3.ΔdefineBase, + 'ΔdefineComponent': r3.ΔdefineComponent, + 'ΔdefineDirective': r3.ΔdefineDirective, + 'ΔdefineInjectable': ΔdefineInjectable, + 'ΔdefineInjector': ΔdefineInjector, + 'ΔdefineNgModule': r3.ΔdefineNgModule, + 'ΔdefinePipe': r3.ΔdefinePipe, + 'ΔdirectiveInject': r3.ΔdirectiveInject, + 'ΔgetFactoryOf': r3.ΔgetFactoryOf, + 'ΔgetInheritedFactory': r3.ΔgetInheritedFactory, + 'Δinject': Δinject, + 'ΔinjectAttribute': r3.ΔinjectAttribute, + 'ΔtemplateRefExtractor': r3.ΔtemplateRefExtractor, + 'ΔNgOnChangesFeature': r3.ΔNgOnChangesFeature, + 'ΔProvidersFeature': r3.ΔProvidersFeature, + 'ΔInheritDefinitionFeature': r3.ΔInheritDefinitionFeature, + 'ΔelementAttribute': r3.ΔelementAttribute, + 'Δbind': r3.Δbind, + 'Δcontainer': r3.Δcontainer, + 'ΔnextContext': r3.ΔnextContext, + 'ΔcontainerRefreshStart': r3.ΔcontainerRefreshStart, + 'ΔcontainerRefreshEnd': r3.ΔcontainerRefreshEnd, + 'ΔnamespaceHTML': r3.ΔnamespaceHTML, + 'ΔnamespaceMathML': r3.ΔnamespaceMathML, + 'ΔnamespaceSVG': r3.ΔnamespaceSVG, + 'ΔenableBindings': r3.ΔenableBindings, + 'ΔdisableBindings': r3.ΔdisableBindings, + 'ΔallocHostVars': r3.ΔallocHostVars, + 'ΔelementStart': r3.ΔelementStart, + 'ΔelementEnd': r3.ΔelementEnd, + 'Δelement': r3.Δelement, + 'ΔelementContainerStart': r3.ΔelementContainerStart, + 'ΔelementContainerEnd': r3.ΔelementContainerEnd, + 'ΔpureFunction0': r3.ΔpureFunction0, + 'ΔpureFunction1': r3.ΔpureFunction1, + 'ΔpureFunction2': r3.ΔpureFunction2, + 'ΔpureFunction3': r3.ΔpureFunction3, + 'ΔpureFunction4': r3.ΔpureFunction4, + 'ΔpureFunction5': r3.ΔpureFunction5, + 'ΔpureFunction6': r3.ΔpureFunction6, + 'ΔpureFunction7': r3.ΔpureFunction7, + 'ΔpureFunction8': r3.ΔpureFunction8, + 'ΔpureFunctionV': r3.ΔpureFunctionV, + 'ΔgetCurrentView': r3.ΔgetCurrentView, + 'ΔrestoreView': r3.ΔrestoreView, + 'Δinterpolation1': r3.Δinterpolation1, + 'Δinterpolation2': r3.Δinterpolation2, + 'Δinterpolation3': r3.Δinterpolation3, + 'Δinterpolation4': r3.Δinterpolation4, + 'Δinterpolation5': r3.Δinterpolation5, + 'Δinterpolation6': r3.Δinterpolation6, + 'Δinterpolation7': r3.Δinterpolation7, + 'Δinterpolation8': r3.Δinterpolation8, + 'ΔinterpolationV': r3.ΔinterpolationV, + 'Δlistener': r3.Δlistener, + 'Δload': r3.Δload, + 'Δprojection': r3.Δprojection, + 'ΔelementProperty': r3.ΔelementProperty, + 'ΔcomponentHostSyntheticProperty': r3.ΔcomponentHostSyntheticProperty, + 'ΔcomponentHostSyntheticListener': r3.ΔcomponentHostSyntheticListener, + 'ΔpipeBind1': r3.ΔpipeBind1, + 'ΔpipeBind2': r3.ΔpipeBind2, + 'ΔpipeBind3': r3.ΔpipeBind3, + 'ΔpipeBind4': r3.ΔpipeBind4, + 'ΔpipeBindV': r3.ΔpipeBindV, + 'ΔprojectionDef': r3.ΔprojectionDef, + 'Δpipe': r3.Δpipe, + 'ΔqueryRefresh': r3.ΔqueryRefresh, + 'ΔviewQuery': r3.ΔviewQuery, + 'ΔstaticViewQuery': r3.ΔstaticViewQuery, + 'ΔstaticContentQuery': r3.ΔstaticContentQuery, + 'ΔloadViewQuery': r3.ΔloadViewQuery, + 'ΔcontentQuery': r3.ΔcontentQuery, + 'ΔloadContentQuery': r3.ΔloadContentQuery, + 'Δreference': r3.Δreference, + 'ΔelementHostAttrs': r3.ΔelementHostAttrs, + 'ΔelementStyling': r3.ΔelementStyling, + 'ΔelementStylingMap': r3.ΔelementStylingMap, + 'ΔelementStyleProp': r3.ΔelementStyleProp, + 'ΔelementStylingApply': r3.ΔelementStylingApply, + 'ΔelementClassProp': r3.ΔelementClassProp, + 'ΔelementHostStyling': r3.ΔelementHostStyling, + 'ΔelementHostStylingMap': r3.ΔelementHostStylingMap, + 'ΔelementHostStyleProp': r3.ΔelementHostStyleProp, + 'ΔelementHostStylingApply': r3.ΔelementHostStylingApply, + 'ΔelementHostClassProp': r3.ΔelementHostClassProp, + 'Δselect': r3.Δselect, + 'Δtemplate': r3.Δtemplate, + 'Δtext': r3.Δtext, + 'ΔtextBinding': r3.ΔtextBinding, + 'ΔembeddedViewStart': r3.ΔembeddedViewStart, + 'ΔembeddedViewEnd': r3.ΔembeddedViewEnd, + 'Δi18n': r3.Δi18n, + 'Δi18nAttributes': r3.Δi18nAttributes, + 'Δi18nExp': r3.Δi18nExp, + 'Δi18nStart': r3.Δi18nStart, + 'Δi18nEnd': r3.Δi18nEnd, + 'Δi18nApply': r3.Δi18nApply, + 'Δi18nPostprocess': r3.Δi18nPostprocess, + 'ΔresolveWindow': r3.ΔresolveWindow, + 'ΔresolveDocument': r3.ΔresolveDocument, + 'ΔresolveBody': r3.ΔresolveBody, + 'ΔsetComponentScope': r3.ΔsetComponentScope, + 'ΔsetNgModuleScope': r3.ΔsetNgModuleScope, - 'ɵsanitizeHtml': sanitization.sanitizeHtml, - 'ɵsanitizeStyle': sanitization.sanitizeStyle, - 'ɵdefaultStyleSanitizer': sanitization.defaultStyleSanitizer, - 'ɵsanitizeResourceUrl': sanitization.sanitizeResourceUrl, - 'ɵsanitizeScript': sanitization.sanitizeScript, - 'ɵsanitizeUrl': sanitization.sanitizeUrl, - 'ɵsanitizeUrlOrResourceUrl': sanitization.sanitizeUrlOrResourceUrl + 'ΔsanitizeHtml': sanitization.ΔsanitizeHtml, + 'ΔsanitizeStyle': sanitization.ΔsanitizeStyle, + 'ΔdefaultStyleSanitizer': sanitization.ΔdefaultStyleSanitizer, + 'ΔsanitizeResourceUrl': sanitization.ΔsanitizeResourceUrl, + 'ΔsanitizeScript': sanitization.ΔsanitizeScript, + 'ΔsanitizeUrl': sanitization.ΔsanitizeUrl, + 'ΔsanitizeUrlOrResourceUrl': sanitization.ΔsanitizeUrlOrResourceUrl }; diff --git a/packages/core/src/render3/pipe.ts b/packages/core/src/render3/pipe.ts index 6181b7b653..f4f1adb37b 100644 --- a/packages/core/src/render3/pipe.ts +++ b/packages/core/src/render3/pipe.ts @@ -9,22 +9,25 @@ import {WrappedValue} from '../change_detection/change_detection_util'; import {PipeTransform} from '../change_detection/pipe_transform'; -import {load, store} from './instructions/all'; +import {store, Δload} from './instructions/all'; import {PipeDef, PipeDefList} from './interfaces/definition'; import {BINDING_INDEX, HEADER_OFFSET, TVIEW} from './interfaces/view'; -import {pureFunction1, pureFunction2, pureFunction3, pureFunction4, pureFunctionV} from './pure_function'; +import {ΔpureFunction1, ΔpureFunction2, ΔpureFunction3, ΔpureFunction4, ΔpureFunctionV} from './pure_function'; import {getLView} from './state'; import {NO_CHANGE} from './tokens'; + /** * Create a pipe. * * @param index Pipe index where the pipe will be stored. * @param pipeName The name of the pipe * @returns T the instance of the pipe. + * + * @publicApi */ -export function pipe(index: number, pipeName: string): any { +export function Δpipe(index: number, pipeName: string): any { const tView = getLView()[TVIEW]; let pipeDef: PipeDef; const adjustedIndex = index + HEADER_OFFSET; @@ -51,6 +54,8 @@ export function pipe(index: number, pipeName: string): any { * @param name Name of pipe to resolve * @param registry Full list of available pipes * @returns Matching PipeDef + * + * @publicApi */ function getPipeDef(name: string, registry: PipeDefList | null): PipeDef { if (registry) { @@ -73,11 +78,13 @@ function getPipeDef(name: string, registry: PipeDefList | null): PipeDef { * @param index Pipe index where the pipe was stored on creation. * @param slotOffset the offset in the reserved slot space * @param v1 1st argument to {@link PipeTransform#transform}. + * + * @publicApi */ -export function pipeBind1(index: number, slotOffset: number, v1: any): any { - const pipeInstance = load(index); +export function ΔpipeBind1(index: number, slotOffset: number, v1: any): any { + const pipeInstance = Δload(index); return unwrapValue( - isPure(index) ? pureFunction1(slotOffset, pipeInstance.transform, v1, pipeInstance) : + isPure(index) ? ΔpureFunction1(slotOffset, pipeInstance.transform, v1, pipeInstance) : pipeInstance.transform(v1)); } @@ -91,11 +98,13 @@ export function pipeBind1(index: number, slotOffset: number, v1: any): any { * @param slotOffset the offset in the reserved slot space * @param v1 1st argument to {@link PipeTransform#transform}. * @param v2 2nd argument to {@link PipeTransform#transform}. + * + * @publicApi */ -export function pipeBind2(index: number, slotOffset: number, v1: any, v2: any): any { - const pipeInstance = load(index); +export function ΔpipeBind2(index: number, slotOffset: number, v1: any, v2: any): any { + const pipeInstance = Δload(index); return unwrapValue( - isPure(index) ? pureFunction2(slotOffset, pipeInstance.transform, v1, v2, pipeInstance) : + isPure(index) ? ΔpureFunction2(slotOffset, pipeInstance.transform, v1, v2, pipeInstance) : pipeInstance.transform(v1, v2)); } @@ -110,11 +119,13 @@ export function pipeBind2(index: number, slotOffset: number, v1: any, v2: any): * @param v1 1st argument to {@link PipeTransform#transform}. * @param v2 2nd argument to {@link PipeTransform#transform}. * @param v3 4rd argument to {@link PipeTransform#transform}. + * + * @publicApi */ -export function pipeBind3(index: number, slotOffset: number, v1: any, v2: any, v3: any): any { - const pipeInstance = load(index); +export function ΔpipeBind3(index: number, slotOffset: number, v1: any, v2: any, v3: any): any { + const pipeInstance = Δload(index); return unwrapValue( - isPure(index) ? pureFunction3(slotOffset, pipeInstance.transform, v1, v2, v3, pipeInstance) : + isPure(index) ? ΔpureFunction3(slotOffset, pipeInstance.transform, v1, v2, v3, pipeInstance) : pipeInstance.transform(v1, v2, v3)); } @@ -130,13 +141,15 @@ export function pipeBind3(index: number, slotOffset: number, v1: any, v2: any, v * @param v2 2nd argument to {@link PipeTransform#transform}. * @param v3 3rd argument to {@link PipeTransform#transform}. * @param v4 4th argument to {@link PipeTransform#transform}. + * + * @publicApi */ -export function pipeBind4( +export function ΔpipeBind4( index: number, slotOffset: number, v1: any, v2: any, v3: any, v4: any): any { - const pipeInstance = load(index); + const pipeInstance = Δload(index); return unwrapValue( isPure(index) ? - pureFunction4(slotOffset, pipeInstance.transform, v1, v2, v3, v4, pipeInstance) : + ΔpureFunction4(slotOffset, pipeInstance.transform, v1, v2, v3, v4, pipeInstance) : pipeInstance.transform(v1, v2, v3, v4)); } @@ -149,11 +162,13 @@ export function pipeBind4( * @param index Pipe index where the pipe was stored on creation. * @param slotOffset the offset in the reserved slot space * @param values Array of arguments to pass to {@link PipeTransform#transform} method. + * + * @publicApi */ -export function pipeBindV(index: number, slotOffset: number, values: any[]): any { - const pipeInstance = load(index); +export function ΔpipeBindV(index: number, slotOffset: number, values: any[]): any { + const pipeInstance = Δload(index); return unwrapValue( - isPure(index) ? pureFunctionV(slotOffset, pipeInstance.transform, values, pipeInstance) : + isPure(index) ? ΔpureFunctionV(slotOffset, pipeInstance.transform, values, pipeInstance) : pipeInstance.transform.apply(pipeInstance, values)); } diff --git a/packages/core/src/render3/pure_function.ts b/packages/core/src/render3/pure_function.ts index 6f78bf7ae7..849190df56 100644 --- a/packages/core/src/render3/pure_function.ts +++ b/packages/core/src/render3/pure_function.ts @@ -37,8 +37,10 @@ import {getBindingRoot, getLView, isCreationMode} from './state'; * @param pureFn Function that returns a value * @param thisArg Optional calling context of pureFn * @returns value + * + * @publicApi */ -export function pureFunction0(slotOffset: number, pureFn: () => T, thisArg?: any): T { +export function ΔpureFunction0(slotOffset: number, pureFn: () => T, thisArg?: any): T { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings const bindingIndex = getBindingRoot() + slotOffset; const lView = getLView(); @@ -56,8 +58,10 @@ export function pureFunction0(slotOffset: number, pureFn: () => T, thisArg?: * @param exp Updated expression value * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction1( +export function ΔpureFunction1( slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings const lView = getLView(); @@ -77,8 +81,10 @@ export function pureFunction1( * @param exp2 * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction2( +export function ΔpureFunction2( slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings @@ -102,8 +108,10 @@ export function pureFunction2( * @param exp3 * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction3( +export function ΔpureFunction3( slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings @@ -128,8 +136,10 @@ export function pureFunction3( * @param exp4 * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction4( +export function ΔpureFunction4( slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings @@ -155,8 +165,10 @@ export function pureFunction4( * @param exp5 * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction5( +export function ΔpureFunction5( slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, thisArg?: any): any { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings @@ -184,8 +196,10 @@ export function pureFunction5( * @param exp6 * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction6( +export function ΔpureFunction6( slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, thisArg?: any): any { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings @@ -215,8 +229,10 @@ export function pureFunction6( * @param exp7 * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction7( +export function ΔpureFunction7( slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, thisArg?: any): any { @@ -248,8 +264,10 @@ export function pureFunction7( * @param exp8 * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunction8( +export function ΔpureFunction8( slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any, v8: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, exp8: any, @@ -278,8 +296,10 @@ export function pureFunction8( * @param exps An array of binding values * @param thisArg Optional calling context of pureFn * @returns Updated or cached value + * + * @publicApi */ -export function pureFunctionV( +export function ΔpureFunctionV( slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any { // TODO(kara): use bindingRoot instead of bindingStartIndex when implementing host bindings let bindingIndex = getBindingRoot() + slotOffset; diff --git a/packages/core/src/render3/query.ts b/packages/core/src/render3/query.ts index abe0d52f43..2cfd097880 100644 --- a/packages/core/src/render3/query.ts +++ b/packages/core/src/render3/query.ts @@ -18,7 +18,7 @@ import {assertDataInRange, assertDefined, assertEqual} from '../util/assert'; import {assertPreviousIsParent} from './assert'; import {getNodeInjectable, locateDirectiveOrProvider} from './di'; import {NG_ELEMENT_ID} from './fields'; -import {load, store} from './instructions/all'; +import {store, Δload} from './instructions/all'; import {storeCleanupWithContext} from './instructions/shared'; import {unusedValueExportToPlacateAjd as unused1} from './interfaces/definition'; import {unusedValueExportToPlacateAjd as unused2} from './interfaces/injector'; @@ -369,8 +369,10 @@ export function query( * * @returns `true` if a query got dirty during change detection or if this is a static query * resolving in creation mode, `false` otherwise. + * + * @publicApi */ -export function queryRefresh(queryList: QueryList): boolean { +export function ΔqueryRefresh(queryList: QueryList): boolean { const queryListImpl = (queryList as any as QueryList_); const creationMode = isCreationMode(); @@ -389,11 +391,13 @@ export function queryRefresh(queryList: QueryList): boolean { * @param predicate The type for which the query will search * @param descend Whether or not to descend into children * @param read What to save in the query + * + * @publicApi */ -export function staticViewQuery( +export function ΔstaticViewQuery( // TODO(FW-486): "read" should be an AbstractType predicate: Type| string[], descend: boolean, read: any): void { - const queryList = viewQuery(predicate, descend, read) as QueryList_; + const queryList = ΔviewQuery(predicate, descend, read) as QueryList_; const tView = getLView()[TVIEW]; queryList._static = true; if (!tView.staticViewQueries) { @@ -408,8 +412,10 @@ export function staticViewQuery( * @param descend Whether or not to descend into children * @param read What to save in the query * @returns QueryList + * + * @publicApi */ -export function viewQuery( +export function ΔviewQuery( // TODO(FW-486): "read" should be an AbstractType predicate: Type| string[], descend: boolean, read: any): QueryList { const lView = getLView(); @@ -425,12 +431,14 @@ export function viewQuery( } /** -* Loads current View Query and moves the pointer/index to the next View Query in LView. -*/ -export function loadViewQuery(): T { + * Loads current View Query and moves the pointer/index to the next View Query in LView. + * + * @publicApi + */ +export function ΔloadViewQuery(): T { const index = getCurrentQueryIndex(); setCurrentQueryIndex(index + 1); - return load(index - HEADER_OFFSET); + return Δload(index - HEADER_OFFSET); } /** @@ -442,8 +450,10 @@ export function loadViewQuery(): T { * @param descend Whether or not to descend into children * @param read What to save in the query * @returns QueryList + * + * @publicApi */ -export function contentQuery( +export function ΔcontentQuery( directiveIndex: number, predicate: Type| string[], descend: boolean, // TODO(FW-486): "read" should be an AbstractType read: any): QueryList { @@ -471,12 +481,14 @@ export function contentQuery( * @param descend Whether or not to descend into children * @param read What to save in the query * @returns QueryList + * + * @publicApi */ -export function staticContentQuery( +export function ΔstaticContentQuery( directiveIndex: number, predicate: Type| string[], descend: boolean, // TODO(FW-486): "read" should be an AbstractType read: any): void { - const queryList = contentQuery(directiveIndex, predicate, descend, read) as QueryList_; + const queryList = ΔcontentQuery(directiveIndex, predicate, descend, read) as QueryList_; const tView = getLView()[TVIEW]; queryList._static = true; if (!tView.staticContentQueries) { @@ -484,7 +496,11 @@ export function staticContentQuery( } } -export function loadContentQuery(): QueryList { +/** + * + * @publicApi + */ +export function ΔloadContentQuery(): QueryList { const lView = getLView(); ngDevMode && assertDefined( diff --git a/packages/core/src/render3/state.ts b/packages/core/src/render3/state.ts index 3c5260b40a..2addeab633 100644 --- a/packages/core/src/render3/state.ts +++ b/packages/core/src/render3/state.ts @@ -82,15 +82,17 @@ export function getBindingsEnabled(): boolean { * Should match component / directive. * *
- * + * * * Should not match component / directive because we are in ngNonBindable. * - * + * *
* ``` + * + * @publicApi */ -export function enableBindings(): void { +export function ΔenableBindings(): void { bindingsEnabled = true; } @@ -103,15 +105,17 @@ export function enableBindings(): void { * Should match component / directive. * *
- * + * * * Should not match component / directive because we are in ngNonBindable. * - * + * *
* ``` + * + * @publicApi */ -export function disableBindings(): void { +export function ΔdisableBindings(): void { bindingsEnabled = false; } @@ -262,8 +266,10 @@ export function getActiveDirectiveSuperClassDepth() { * walking the declaration view tree in listeners to get vars from parent views. * * @param viewToRestore The OpaqueViewState instance to restore. + * + * @publicApi */ -export function restoreView(viewToRestore: OpaqueViewState) { +export function ΔrestoreView(viewToRestore: OpaqueViewState) { contextLView = viewToRestore as any as LView; } @@ -483,23 +489,29 @@ let _currentNamespace: string|null = null; /** * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state. + * + * @publicApi */ -export function namespaceSVG() { +export function ΔnamespaceSVG() { _currentNamespace = 'http://www.w3.org/2000/svg'; } /** * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state. + * + * @publicApi */ -export function namespaceMathML() { +export function ΔnamespaceMathML() { _currentNamespace = 'http://www.w3.org/1998/MathML/'; } /** * Sets the namespace used to create elements no `null`, which forces element creation to use * `createElement` rather than `createElementNS`. + * + * @publicApi */ -export function namespaceHTML() { +export function ΔnamespaceHTML() { _currentNamespace = null; } diff --git a/packages/core/src/render3/util/misc_utils.ts b/packages/core/src/render3/util/misc_utils.ts index 0306adf7ed..35988308eb 100644 --- a/packages/core/src/render3/util/misc_utils.ts +++ b/packages/core/src/render3/util/misc_utils.ts @@ -41,15 +41,27 @@ export const defaultScheduler = setTimeout // everything else ).bind(global); -export function resolveWindow(element: RElement & {ownerDocument: Document}) { +/** + * + * @publicApi + */ +export function ΔresolveWindow(element: RElement & {ownerDocument: Document}) { return {name: 'window', target: element.ownerDocument.defaultView}; } -export function resolveDocument(element: RElement & {ownerDocument: Document}) { +/** + * + * @publicApi + */ +export function ΔresolveDocument(element: RElement & {ownerDocument: Document}) { return {name: 'document', target: element.ownerDocument}; } -export function resolveBody(element: RElement & {ownerDocument: Document}) { +/** + * + * @publicApi + */ +export function ΔresolveBody(element: RElement & {ownerDocument: Document}) { return {name: 'body', target: element.ownerDocument.body}; } diff --git a/packages/core/src/render3/view_engine_compatibility_prebound.ts b/packages/core/src/render3/view_engine_compatibility_prebound.ts index 93842fa4a7..216fd6c3a4 100644 --- a/packages/core/src/render3/view_engine_compatibility_prebound.ts +++ b/packages/core/src/render3/view_engine_compatibility_prebound.ts @@ -19,7 +19,9 @@ import {createTemplateRef} from './view_engine_compatibility'; /** * Retrieves `TemplateRef` instance from `Injector` when a local reference is placed on the * `` element. + * + * @publicApi */ -export function templateRefExtractor(tNode: TNode, currentView: LView) { +export function ΔtemplateRefExtractor(tNode: TNode, currentView: LView) { return createTemplateRef(ViewEngine_TemplateRef, ViewEngine_ElementRef, tNode, currentView); } diff --git a/packages/core/src/sanitization/sanitization.ts b/packages/core/src/sanitization/sanitization.ts index f935d6f14d..5d5b4a3a5c 100644 --- a/packages/core/src/sanitization/sanitization.ts +++ b/packages/core/src/sanitization/sanitization.ts @@ -30,8 +30,10 @@ import {_sanitizeUrl as _sanitizeUrl} from './url_sanitizer'; * @param unsafeHtml untrusted `html`, typically from the user. * @returns `html` string which is safe to display to user, because all of the dangerous javascript * and urls have been removed. + * + * @publicApi */ -export function sanitizeHtml(unsafeHtml: any): string { +export function ΔsanitizeHtml(unsafeHtml: any): string { const sanitizer = getSanitizer(); if (sanitizer) { return sanitizer.sanitize(SecurityContext.HTML, unsafeHtml) || ''; @@ -54,8 +56,10 @@ export function sanitizeHtml(unsafeHtml: any): string { * @param unsafeStyle untrusted `style`, typically from the user. * @returns `style` string which is safe to bind to the `style` properties, because all of the * dangerous javascript and urls have been removed. + * + * @publicApi */ -export function sanitizeStyle(unsafeStyle: any): string { +export function ΔsanitizeStyle(unsafeStyle: any): string { const sanitizer = getSanitizer(); if (sanitizer) { return sanitizer.sanitize(SecurityContext.STYLE, unsafeStyle) || ''; @@ -79,8 +83,10 @@ export function sanitizeStyle(unsafeStyle: any): string { * @param unsafeUrl untrusted `url`, typically from the user. * @returns `url` string which is safe to bind to the `src` properties such as ``, because * all of the dangerous javascript has been removed. + * + * @publicApi */ -export function sanitizeUrl(unsafeUrl: any): string { +export function ΔsanitizeUrl(unsafeUrl: any): string { const sanitizer = getSanitizer(); if (sanitizer) { return sanitizer.sanitize(SecurityContext.URL, unsafeUrl) || ''; @@ -99,8 +105,10 @@ export function sanitizeUrl(unsafeUrl: any): string { * @param unsafeResourceUrl untrusted `url`, typically from the user. * @returns `url` string which is safe to bind to the `src` properties such as ``, because * only trusted `url`s have been allowed to pass. + * + * @publicApi */ -export function sanitizeResourceUrl(unsafeResourceUrl: any): string { +export function ΔsanitizeResourceUrl(unsafeResourceUrl: any): string { const sanitizer = getSanitizer(); if (sanitizer) { return sanitizer.sanitize(SecurityContext.RESOURCE_URL, unsafeResourceUrl) || ''; @@ -120,8 +128,10 @@ export function sanitizeResourceUrl(unsafeResourceUrl: any): string { * @param unsafeScript untrusted `script`, typically from the user. * @returns `url` string which is safe to bind to the ``); expect(s.lastSanitizedValue).toEqual(outputValue); }); @@ -539,7 +541,7 @@ describe('instructions', () => { const inputValue = s.bypassSecurityTrustResourceUrl('file://all-my-secrets.pdf'); const outputValue = 'file://all-my-secrets.pdf'; - t.update(() => elementAttribute(0, 'src', inputValue, sanitizeResourceUrl)); + t.update(() => ΔelementAttribute(0, 'src', inputValue, ΔsanitizeResourceUrl)); expect(t.html).toEqual(``); expect(s.lastSanitizedValue).toBeFalsy(); }); @@ -550,7 +552,7 @@ describe('instructions', () => { const inputValue = bypassSanitizationTrustResourceUrl('file://all-my-secrets.pdf'); const outputValue = 'file://all-my-secrets.pdf-ivy'; - t.update(() => elementAttribute(0, 'src', inputValue, sanitizeResourceUrl)); + t.update(() => ΔelementAttribute(0, 'src', inputValue, ΔsanitizeResourceUrl)); expect(t.html).toEqual(``); expect(s.lastSanitizedValue).toBeFalsy(); }); @@ -561,7 +563,7 @@ describe('instructions', () => { const inputValue = 'fn();'; const outputValue = 'fn(); //sanitized'; - t.update(() => elementProperty(0, 'innerHTML', inputValue, sanitizeScript)); + t.update(() => ΔelementProperty(0, 'innerHTML', inputValue, ΔsanitizeScript)); expect(t.html).toEqual(``); expect(s.lastSanitizedValue).toEqual(outputValue); }); @@ -572,7 +574,7 @@ describe('instructions', () => { const inputValue = s.bypassSecurityTrustScript('alert("bar")'); const outputValue = 'alert("bar")'; - t.update(() => elementProperty(0, 'innerHTML', inputValue, sanitizeScript)); + t.update(() => ΔelementProperty(0, 'innerHTML', inputValue, ΔsanitizeScript)); expect(t.html).toEqual(``); expect(s.lastSanitizedValue).toBeFalsy(); }); @@ -583,7 +585,7 @@ describe('instructions', () => { const inputValue = bypassSanitizationTrustScript('alert("bar")'); const outputValue = 'alert("bar")-ivy'; - t.update(() => elementProperty(0, 'innerHTML', inputValue, sanitizeScript)); + t.update(() => ΔelementProperty(0, 'innerHTML', inputValue, ΔsanitizeScript)); expect(t.html).toEqual(``); expect(s.lastSanitizedValue).toBeFalsy(); }); @@ -594,7 +596,7 @@ describe('instructions', () => { const inputValue = '
'; const outputValue = '
'; - t.update(() => elementProperty(0, 'innerHTML', inputValue, sanitizeHtml)); + t.update(() => ΔelementProperty(0, 'innerHTML', inputValue, ΔsanitizeHtml)); expect(t.html).toEqual(`
${outputValue}
`); expect(s.lastSanitizedValue).toEqual(outputValue); }); @@ -605,7 +607,7 @@ describe('instructions', () => { const inputValue = s.bypassSecurityTrustHtml('
'); const outputValue = '
'; - t.update(() => elementProperty(0, 'innerHTML', inputValue, sanitizeHtml)); + t.update(() => ΔelementProperty(0, 'innerHTML', inputValue, ΔsanitizeHtml)); expect(t.html).toEqual(`
${outputValue}
`); expect(s.lastSanitizedValue).toBeFalsy(); }); @@ -616,7 +618,7 @@ describe('instructions', () => { const inputValue = bypassSanitizationTrustHtml('
'); const outputValue = '
-ivy'; - t.update(() => elementProperty(0, 'innerHTML', inputValue, sanitizeHtml)); + t.update(() => ΔelementProperty(0, 'innerHTML', inputValue, ΔsanitizeHtml)); expect(t.html).toEqual(`
${outputValue}
`); expect(s.lastSanitizedValue).toBeFalsy(); }); @@ -661,7 +663,7 @@ class LocalMockSanitizer implements Sanitizer { class MockSanitizerInterceptor { public lastValue: string|null = null; constructor(private _interceptorFn?: ((value: any) => any)|null) {} - getStyleSanitizer() { return defaultStyleSanitizer; } + getStyleSanitizer() { return ΔdefaultStyleSanitizer; } sanitize(context: SecurityContext, value: LocalSanitizedValue|string|null|any): string|null { if (this._interceptorFn) { this._interceptorFn(value); diff --git a/packages/core/test/render3/integration_spec.ts b/packages/core/test/render3/integration_spec.ts index 008d18e935..8e7547cb29 100644 --- a/packages/core/test/render3/integration_spec.ts +++ b/packages/core/test/render3/integration_spec.ts @@ -9,21 +9,20 @@ import {ElementRef, TemplateRef, ViewContainerRef} from '@angular/core'; import {RendererType2} from '../../src/render/api'; -import {AttributeMarker, defineComponent, defineDirective, templateRefExtractor} from '../../src/render3/index'; - -import {allocHostVars, bind, container, containerRefreshEnd, containerRefreshStart, elementStart, elementAttribute, elementClassProp, elementContainerEnd, elementContainerStart, elementEnd, elementProperty, element, elementStyling, elementStylingApply, elementStyleProp, embeddedViewEnd, embeddedViewStart, interpolation1, interpolation2, interpolation3, interpolation4, interpolation5, interpolation6, interpolation7, interpolation8, interpolationV, projection, projectionDef, reference, text, textBinding, template, elementStylingMap, directiveInject, elementHostAttrs, elementHostStyleProp, elementHostStyling, elementHostClassProp, elementHostStylingApply, elementHostStylingMap} from '../../src/render3/instructions/all'; +import {getLContext} from '../../src/render3/context_discovery'; +import {AttributeMarker, ΔdefineComponent, ΔdefineDirective, ΔtemplateRefExtractor} from '../../src/render3/index'; +import {ΔallocHostVars, Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, ΔdirectiveInject, Δelement, ΔelementAttribute, ΔelementClassProp, ΔelementContainerEnd, ΔelementContainerStart, ΔelementEnd, ΔelementHostAttrs, ΔelementHostClassProp, ΔelementHostStyleProp, ΔelementHostStyling, ΔelementHostStylingApply, ΔelementHostStylingMap, ΔelementProperty, ΔelementStart, ΔelementStyleProp, ΔelementStyling, ΔelementStylingApply, ΔelementStylingMap, ΔembeddedViewEnd, ΔembeddedViewStart, Δinterpolation1, Δinterpolation2, Δinterpolation3, Δinterpolation4, Δinterpolation5, Δinterpolation6, Δinterpolation7, Δinterpolation8, ΔinterpolationV, Δprojection, ΔprojectionDef, Δreference, Δtemplate, Δtext, ΔtextBinding} from '../../src/render3/instructions/all'; +import {MONKEY_PATCH_KEY_NAME} from '../../src/render3/interfaces/context'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {RElement, Renderer3, RendererFactory3, domRendererFactory3} from '../../src/render3/interfaces/renderer'; -import {HEADER_OFFSET, CONTEXT} from '../../src/render3/interfaces/view'; -import {enableBindings, disableBindings} from '../../src/render3/state'; -import {sanitizeUrl} from '../../src/sanitization/sanitization'; +import {StylingIndex} from '../../src/render3/interfaces/styling'; +import {CONTEXT, HEADER_OFFSET} from '../../src/render3/interfaces/view'; +import {ΔdisableBindings, ΔenableBindings} from '../../src/render3/state'; +import {ΔsanitizeUrl} from '../../src/sanitization/sanitization'; import {Sanitizer, SecurityContext} from '../../src/sanitization/security'; import {NgIf} from './common_with_def'; import {ComponentFixture, MockRendererFactory, TemplateFixture, createComponent, renderToHtml} from './render_util'; -import {getLContext} from '../../src/render3/context_discovery'; -import {StylingIndex} from '../../src/render3/interfaces/styling'; -import {MONKEY_PATCH_KEY_NAME} from '../../src/render3/interfaces/context'; describe('render3 integration test', () => { @@ -34,9 +33,9 @@ describe('render3 integration test', () => { function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span', ['title', 'Hello']); - { text(1, 'Greetings'); } - elementEnd(); + ΔelementStart(0, 'span', ['title', 'Hello']); + { Δtext(1, 'Greetings'); } + ΔelementEnd(); } } expect(ngDevMode).toHaveProperties({ @@ -50,12 +49,12 @@ describe('render3 integration test', () => { it('should render and update basic "Hello, World" template', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'h1'); - { text(1); } - elementEnd(); + ΔelementStart(0, 'h1'); + { Δtext(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - textBinding(1, interpolation1('Hello, ', ctx.name, '!')); + ΔtextBinding(1, Δinterpolation1('Hello, ', ctx.name, '!')); } }, 2, 1); @@ -74,10 +73,10 @@ describe('render3 integration test', () => { it('should render "undefined" as "" when used with `bind()`', () => { function Template(rf: RenderFlags, name: string) { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, bind(name)); + ΔtextBinding(0, Δbind(name)); } } @@ -94,10 +93,10 @@ describe('render3 integration test', () => { it('should render "null" as "" when used with `bind()`', () => { function Template(rf: RenderFlags, name: string) { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, bind(name)); + ΔtextBinding(0, Δbind(name)); } } @@ -114,8 +113,8 @@ describe('render3 integration test', () => { it('should support creation-time values in text nodes', () => { function Template(rf: RenderFlags, value: string) { if (rf & RenderFlags.Create) { - text(0); - textBinding(0, value); + Δtext(0); + ΔtextBinding(0, value); } } expect(renderToHtml(Template, 'once', 1, 1)).toEqual('once'); @@ -141,18 +140,18 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'b', ['id', 'my-id'], ['myRef', '']); - disableBindings(); - elementStart(2, 'i'); - text(3, 'Hello {{ name }}!'); - elementEnd(); - enableBindings(); - elementEnd(); - text(4); + ΔelementStart(0, 'b', ['id', 'my-id'], ['myRef', '']); + ΔdisableBindings(); + ΔelementStart(2, 'i'); + Δtext(3, 'Hello {{ name }}!'); + ΔelementEnd(); + ΔenableBindings(); + ΔelementEnd(); + Δtext(4); } if (rf & RenderFlags.Update) { - const ref = reference(1) as any; - textBinding(4, interpolation1(' ', ref.id, ' ')); + const ref = Δreference(1) as any; + ΔtextBinding(4, Δinterpolation1(' ', ref.id, ' ')); } }, 5, 1); @@ -166,7 +165,7 @@ describe('render3 integration test', () => { class TestDirective { ngOnInit() { directiveInvoked = true; } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: TestDirective, selectors: [['', 'directive', '']], factory: () => new TestDirective() @@ -180,13 +179,13 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'b', ['directive', '']); - disableBindings(); - elementStart(1, 'i'); - text(2, 'Hello {{ name }}!'); - elementEnd(); - enableBindings(); - elementEnd(); + ΔelementStart(0, 'b', ['directive', '']); + ΔdisableBindings(); + ΔelementStart(1, 'i'); + Δtext(2, 'Hello {{ name }}!'); + ΔelementEnd(); + ΔenableBindings(); + ΔelementEnd(); } }, 3, 0, [TestDirective]); @@ -201,7 +200,7 @@ describe('render3 integration test', () => { class TestDirective { ngOnInit() { directiveInvoked = true; } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: TestDirective, selectors: [['', 'directive', '']], factory: () => new TestDirective() @@ -215,13 +214,13 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'b'); - disableBindings(); - elementStart(1, 'i', ['directive', '']); - text(2, 'Hello {{ name }}!'); - elementEnd(); - enableBindings(); - elementEnd(); + ΔelementStart(0, 'b'); + ΔdisableBindings(); + ΔelementStart(1, 'i', ['directive', '']); + Δtext(2, 'Hello {{ name }}!'); + ΔelementEnd(); + ΔenableBindings(); + ΔelementEnd(); } }, 3, 0, [TestDirective]); @@ -235,12 +234,12 @@ describe('render3 integration test', () => { it('should handle a flat list of static/bound text nodes', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'Hello '); - text(1); - text(2, '!'); + Δtext(0, 'Hello '); + Δtext(1); + Δtext(2, '!'); } if (rf & RenderFlags.Update) { - textBinding(1, bind(ctx.name)); + ΔtextBinding(1, Δbind(ctx.name)); } }, 3, 1); @@ -257,16 +256,16 @@ describe('render3 integration test', () => { it('should handle a list of static/bound text nodes as element children', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'b'); + ΔelementStart(0, 'b'); { - text(1, 'Hello '); - text(2); - text(3, '!'); + Δtext(1, 'Hello '); + Δtext(2); + Δtext(3, '!'); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - textBinding(2, bind(ctx.name)); + ΔtextBinding(2, Δbind(ctx.name)); } }, 4, 1); @@ -283,24 +282,24 @@ describe('render3 integration test', () => { it('should render/update text node as a child of a deep list of elements', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'b'); + ΔelementStart(0, 'b'); { - elementStart(1, 'b'); + ΔelementStart(1, 'b'); { - elementStart(2, 'b'); + ΔelementStart(2, 'b'); { - elementStart(3, 'b'); - { text(4); } - elementEnd(); + ΔelementStart(3, 'b'); + { Δtext(4); } + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - textBinding(4, interpolation1('Hello ', ctx.name, '!')); + ΔtextBinding(4, Δinterpolation1('Hello ', ctx.name, '!')); } }, 5, 1); @@ -317,17 +316,17 @@ describe('render3 integration test', () => { it('should update 2 sibling elements', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'b'); + ΔelementStart(0, 'b'); { - element(1, 'span'); - elementStart(2, 'span', ['class', 'foo']); + Δelement(1, 'span'); + ΔelementStart(2, 'span', ['class', 'foo']); {} - elementEnd(); + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementAttribute(2, 'id', bind(ctx.id)); + ΔelementAttribute(2, 'id', Δbind(ctx.id)); } }, 3, 1); @@ -344,10 +343,10 @@ describe('render3 integration test', () => { it('should handle sibling text node after element with child text node', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'p'); - { text(1, 'hello'); } - elementEnd(); - text(2, 'world'); + ΔelementStart(0, 'p'); + { Δtext(1, 'hello'); } + ΔelementEnd(); + Δtext(2, 'world'); } }, 3); @@ -361,22 +360,22 @@ describe('render3 integration test', () => { class TodoComponent { value = ' one'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: TodoComponent, selectors: [['todo']], consts: 3, vars: 1, template: function TodoTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'p'); + ΔelementStart(0, 'p'); { - text(1, 'Todo'); - text(2); + Δtext(1, 'Todo'); + Δtext(2); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - textBinding(2, bind(ctx.value)); + ΔtextBinding(2, Δbind(ctx.value)); } }, factory: () => new TodoComponent @@ -388,7 +387,7 @@ describe('render3 integration test', () => { it('should support a basic component template', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'todo'); + Δelement(0, 'todo'); } }, 1, 0, defs); @@ -399,8 +398,8 @@ describe('render3 integration test', () => { it('should support a component template with sibling', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'todo'); - text(1, 'two'); + Δelement(0, 'todo'); + Δtext(1, 'two'); } }, 2, 0, defs); @@ -415,8 +414,8 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'todo'); - element(1, 'todo'); + Δelement(0, 'todo'); + Δelement(1, 'todo'); } }, 2, 0, defs); @@ -429,7 +428,7 @@ describe('render3 integration test', () => { class TodoComponentHostBinding { title = 'one'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: TodoComponentHostBinding, selectors: [['todo']], consts: 1, @@ -437,20 +436,20 @@ describe('render3 integration test', () => { template: function TodoComponentHostBindingTemplate( rf: RenderFlags, ctx: TodoComponentHostBinding) { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, bind(ctx.title)); + ΔtextBinding(0, Δbind(ctx.title)); } }, factory: () => cmptInstance = new TodoComponentHostBinding, hostBindings: function(rf: RenderFlags, ctx: any, elementIndex: number): void { if (rf & RenderFlags.Create) { - allocHostVars(1); + ΔallocHostVars(1); } if (rf & RenderFlags.Update) { // host bindings - elementProperty(elementIndex, 'title', bind(ctx.title)); + ΔelementProperty(elementIndex, 'title', Δbind(ctx.title)); } } }); @@ -458,7 +457,7 @@ describe('render3 integration test', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'todo'); + Δelement(0, 'todo'); } }, 1, 0, [TodoComponentHostBinding]); @@ -472,7 +471,7 @@ describe('render3 integration test', () => { it('should support root component with host attribute', () => { class HostAttributeComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: HostAttributeComp, selectors: [['host-attr-comp']], factory: () => new HostAttributeComp(), @@ -480,7 +479,7 @@ describe('render3 integration test', () => { vars: 0, hostBindings: function(rf, ctx, elIndex) { if (rf & RenderFlags.Create) { - elementHostAttrs(['role', 'button']); + ΔelementHostAttrs(['role', 'button']); } }, template: (rf: RenderFlags, ctx: HostAttributeComp) => {}, @@ -495,19 +494,19 @@ describe('render3 integration test', () => { /**

{{ name }}

*/ class MyComp { name = 'Bess'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComp, selectors: [['comp']], consts: 2, vars: 1, template: function MyCompTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'p'); - { text(1); } - elementEnd(); + ΔelementStart(0, 'p'); + { Δtext(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - textBinding(1, bind(ctx.name)); + ΔtextBinding(1, Δbind(ctx.name)); } }, factory: () => new MyComp @@ -516,7 +515,7 @@ describe('render3 integration test', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } }, 1, 0, [MyComp]); @@ -533,29 +532,29 @@ describe('render3 integration test', () => { class MyComp { // TODO(issue/24571): remove '!'. condition !: boolean; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComp, selectors: [['comp']], consts: 1, vars: 0, template: function MyCompTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'div'); - { text(1, 'text'); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δtext(1, 'text'); } + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, factory: () => new MyComp, @@ -566,10 +565,10 @@ describe('render3 integration test', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'condition', bind(ctx.condition)); + ΔelementProperty(0, 'condition', Δbind(ctx.condition)); } }, 1, 1, [MyComp]); @@ -592,18 +591,18 @@ describe('render3 integration test', () => { *
before|Greetings|after
*/ function Template() { - elementStart(0, 'div'); + ΔelementStart(0, 'div'); { - text(1, 'before|'); - elementContainerStart(2); + Δtext(1, 'before|'); + ΔelementContainerStart(2); { - text(3, 'Greetings'); - element(4, 'span'); + Δtext(3, 'Greetings'); + Δelement(4, 'span'); } - elementContainerEnd(); - text(5, '|after'); + ΔelementContainerEnd(); + Δtext(5, '|after'); } - elementEnd(); + ΔelementEnd(); } const fixture = new TemplateFixture(Template, () => {}, 6); @@ -620,26 +619,26 @@ describe('render3 integration test', () => { */ const TestCmpt = createComponent('test-cmpt', function(rf: RenderFlags, ctx: {value: any}) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); if (ctx.value) { - let rf1 = embeddedViewStart(0, 3, 0); + let rf1 = ΔembeddedViewStart(0, 3, 0); { if (rf1 & RenderFlags.Create) { - elementStart(0, 'div'); + ΔelementStart(0, 'div'); { - elementContainerStart(1); - { text(2, 'content'); } - elementContainerEnd(); + ΔelementContainerStart(1); + { Δtext(2, 'content'); } + ΔelementContainerEnd(); } - elementEnd(); + ΔelementEnd(); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1); @@ -665,22 +664,22 @@ describe('render3 integration test', () => { const TestCmpt = createComponent('test-cmpt', function(rf: RenderFlags, ctx: {value: any}) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); if (ctx.value) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); { if (rf1 & RenderFlags.Create) { - elementContainerStart(0); - { text(1, 'content'); } - elementContainerEnd(); + ΔelementContainerStart(0); + { Δtext(1, 'content'); } + ΔelementContainerEnd(); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1); @@ -701,9 +700,9 @@ describe('render3 integration test', () => { function ngIfTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementContainerStart(0); - { text(1, 'content'); } - elementContainerEnd(); + ΔelementContainerStart(0); + { Δtext(1, 'content'); } + ΔelementContainerEnd(); } } @@ -721,10 +720,11 @@ describe('render3 integration test', () => { const TestCmpt = createComponent('test-cmpt', function(rf: RenderFlags, ctx: {value: any}) { if (rf & RenderFlags.Create) { - template(0, ngIfTemplate, 2, 0, 'ng-template', [AttributeMarker.Bindings, 'ngIf']); + Δtemplate( + 0, ngIfTemplate, 2, 0, 'ng-template', [AttributeMarker.Bindings, 'ngIf']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngIf', bind(ctx.value)); + ΔelementProperty(0, 'ngIf', Δbind(ctx.value)); } }, 1, 1, [NgIf]); @@ -751,21 +751,21 @@ describe('render3 integration test', () => { clear() { this._vcRef.clear(); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: TestDirective, selectors: [['', 'testDirective', '']], - factory: - () => testDirective = new TestDirective( - directiveInject(TemplateRef as any), directiveInject(ViewContainerRef as any)), + factory: () => testDirective = new TestDirective( + ΔdirectiveInject(TemplateRef as any), + ΔdirectiveInject(ViewContainerRef as any)), }); } function embeddedTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementContainerStart(0); - { text(1, 'content'); } - elementContainerEnd(); + ΔelementContainerStart(0); + { Δtext(1, 'content'); } + ΔelementContainerEnd(); } } @@ -779,7 +779,7 @@ describe('render3 integration test', () => {
`; const TestCmpt = createComponent('test-cmpt', function(rf: RenderFlags) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, embeddedTemplate, 2, 0, 'ng-template', [AttributeMarker.Bindings, 'testDirective']); } @@ -803,13 +803,13 @@ describe('render3 integration test', () => { */ const TestCmpt = createComponent('test-cmpt', function(rf: RenderFlags) { if (rf & RenderFlags.Create) { - elementContainerStart(0); - { text(1, 'component template'); } - elementContainerEnd(); + ΔelementContainerStart(0); + { Δtext(1, 'component template'); } + ΔelementContainerEnd(); } }, 2); - function App() { element(0, 'test-cmpt'); } + function App() { Δelement(0, 'test-cmpt'); } const fixture = new TemplateFixture(App, () => {}, 1, 0, [TestCmpt]); expect(fixture.html).toEqual('component template'); @@ -827,21 +827,21 @@ describe('render3 integration test', () => { */ const TestCmpt = createComponent('test-cmpt', function(rf: RenderFlags) { if (rf & RenderFlags.Create) { - elementContainerStart(0); + ΔelementContainerStart(0); { - elementContainerStart(1); + ΔelementContainerStart(1); { - elementContainerStart(2); - { text(3, 'content'); } - elementContainerEnd(); + ΔelementContainerStart(2); + { Δtext(3, 'content'); } + ΔelementContainerEnd(); } - elementContainerEnd(); + ΔelementContainerEnd(); } - elementContainerEnd(); + ΔelementContainerEnd(); } }, 4); - function App() { element(0, 'test-cmpt'); } + function App() { Δelement(0, 'test-cmpt'); } const fixture = new TemplateFixture(App, () => {}, 1, 0, [TestCmpt]); expect(fixture.html).toEqual('content'); @@ -857,29 +857,29 @@ describe('render3 integration test', () => { clear() { this._vcRef.clear(); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: TestDirective, selectors: [['', 'testDirective', '']], factory: () => testDirective = new TestDirective( - directiveInject(TemplateRef as any), directiveInject(ViewContainerRef as any)), + ΔdirectiveInject(TemplateRef as any), ΔdirectiveInject(ViewContainerRef as any)), }); } function embeddedTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementContainerStart(0); + ΔelementContainerStart(0); { - elementContainerStart(1); + ΔelementContainerStart(1); { - elementContainerStart(2); - { text(3, 'content'); } - elementContainerEnd(); + ΔelementContainerStart(2); + { Δtext(3, 'content'); } + ΔelementContainerEnd(); } - elementContainerEnd(); + ΔelementContainerEnd(); } - elementContainerEnd(); + ΔelementContainerEnd(); } } @@ -896,13 +896,13 @@ describe('render3 integration test', () => { */ const TestCmpt = createComponent('test-cmpt', function(rf: RenderFlags) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, embeddedTemplate, 4, 0, 'ng-template', [AttributeMarker.Bindings, 'testDirective']); } }, 1, 0, [TestDirective]); - function App() { element(0, 'test-cmpt'); } + function App() { Δelement(0, 'test-cmpt'); } const fixture = new ComponentFixture(TestCmpt); expect(fixture.html).toEqual(''); @@ -925,10 +925,10 @@ describe('render3 integration test', () => { class Directive { constructor(public elRef: ElementRef) {} - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Directive, selectors: [['', 'dir', '']], - factory: () => directive = new Directive(directiveInject(ElementRef)), + factory: () => directive = new Directive(ΔdirectiveInject(ElementRef)), }); } @@ -938,12 +938,12 @@ describe('render3 integration test', () => { *
*/ function Template() { - elementStart(0, 'div'); + ΔelementStart(0, 'div'); { - elementContainerStart(1, [AttributeMarker.Bindings, 'dir']); - elementContainerEnd(); + ΔelementContainerStart(1, [AttributeMarker.Bindings, 'dir']); + ΔelementContainerEnd(); } - elementEnd(); + ΔelementEnd(); } const fixture = new TemplateFixture(Template, () => {}, 2, 0, [Directive]); @@ -955,7 +955,7 @@ describe('render3 integration test', () => { function ContentTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'Content'); + Δtext(0, 'Content'); } } @@ -968,10 +968,10 @@ describe('render3 integration test', () => { clear() { this._vcRef.clear(); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Directive, selectors: [['', 'dir', '']], - factory: () => directive = new Directive(directiveInject(ViewContainerRef as any)), + factory: () => directive = new Directive(ΔdirectiveInject(ViewContainerRef as any)), inputs: {contentTpl: 'contentTpl'}, }); } @@ -985,14 +985,15 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags) { if (rf & RenderFlags.Create) { - elementContainerStart(0, [AttributeMarker.Bindings, 'dir']); - template( - 1, ContentTemplate, 1, 0, 'ng-template', null, ['content', ''], templateRefExtractor); - elementContainerEnd(); + ΔelementContainerStart(0, [AttributeMarker.Bindings, 'dir']); + Δtemplate( + 1, ContentTemplate, 1, 0, 'ng-template', null, ['content', ''], + ΔtemplateRefExtractor); + ΔelementContainerEnd(); } if (rf & RenderFlags.Update) { - const content = reference(2) as any; - elementProperty(0, 'contentTpl', bind(content)); + const content = Δreference(2) as any; + ΔelementProperty(0, 'contentTpl', Δbind(content)); } }, 3, 1, [Directive]); @@ -1012,7 +1013,7 @@ describe('render3 integration test', () => { it('should support ViewContainerRef on inside ', () => { function ContentTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'Content'); + Δtext(0, 'Content'); } } @@ -1023,12 +1024,12 @@ describe('render3 integration test', () => { clear() { this._vcRef.clear(); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Directive, selectors: [['', 'dir', '']], factory: () => directive = new Directive( - directiveInject(TemplateRef as any), directiveInject(ViewContainerRef as any)), + ΔdirectiveInject(TemplateRef as any), ΔdirectiveInject(ViewContainerRef as any)), }); } @@ -1041,11 +1042,11 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags) { if (rf & RenderFlags.Create) { - elementContainerStart(0); - template( + ΔelementContainerStart(0); + Δtemplate( 1, ContentTemplate, 1, 0, 'ng-template', [AttributeMarker.Bindings, 'dir'], [], - templateRefExtractor); - elementContainerEnd(); + ΔtemplateRefExtractor); + ΔelementContainerEnd(); } }, 2, 0, [Directive]); @@ -1067,12 +1068,12 @@ describe('render3 integration test', () => { *
*/ function Template() { - elementStart(0, 'div'); + ΔelementStart(0, 'div'); { - elementContainerStart(1, ['id', 'foo']); - elementContainerEnd(); + ΔelementContainerStart(1, ['id', 'foo']); + ΔelementContainerEnd(); } - elementEnd(); + ΔelementEnd(); } const fixture = new TemplateFixture(Template, () => {}, 2); @@ -1096,56 +1097,56 @@ describe('render3 integration test', () => { function showLabel(rf: RenderFlags, ctx: {label: string | undefined}) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.label != null) { - let rf1 = embeddedViewStart(0, 1, 1); + let rf1 = ΔembeddedViewStart(0, 1, 1); if (rf1 & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf1 & RenderFlags.Update) { - textBinding(0, bind(ctx.label)); + ΔtextBinding(0, Δbind(ctx.label)); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } function showTree(rf: RenderFlags, ctx: {tree: Tree}) { if (rf & RenderFlags.Create) { - container(0); - container(1); - container(2); + Δcontainer(0); + Δcontainer(1); + Δcontainer(2); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { - const rf0 = embeddedViewStart(0, 1, 0); + const rf0 = ΔembeddedViewStart(0, 1, 0); { showLabel(rf0, {label: ctx.tree.beforeLabel}); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); - containerRefreshStart(1); + ΔcontainerRefreshEnd(); + ΔcontainerRefreshStart(1); { for (let subTree of ctx.tree.subTrees || []) { - const rf0 = embeddedViewStart(0, 3, 0); + const rf0 = ΔembeddedViewStart(0, 3, 0); { showTree(rf0, {tree: subTree}); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); - containerRefreshStart(2); + ΔcontainerRefreshEnd(); + ΔcontainerRefreshStart(2); { - const rf0 = embeddedViewStart(0, 1, 0); + const rf0 = ΔembeddedViewStart(0, 1, 0); { showLabel(rf0, {label: ctx.tree.afterLabel}); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -1154,7 +1155,7 @@ describe('render3 integration test', () => { beforeTree !: Tree; // TODO(issue/24571): remove '!'. afterTree !: Tree; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ selectors: [['child']], type: ChildComponent, consts: 3, @@ -1162,26 +1163,26 @@ describe('render3 integration test', () => { template: function ChildComponentTemplate( rf: RenderFlags, ctx: {beforeTree: Tree, afterTree: Tree}) { if (rf & RenderFlags.Create) { - projectionDef(); - container(0); - projection(1); - container(2); + ΔprojectionDef(); + Δcontainer(0); + Δprojection(1); + Δcontainer(2); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { - const rf0 = embeddedViewStart(0, 3, 0); + const rf0 = ΔembeddedViewStart(0, 3, 0); { showTree(rf0, {tree: ctx.beforeTree}); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); - containerRefreshStart(2); + ΔcontainerRefreshEnd(); + ΔcontainerRefreshStart(2); { - const rf0 = embeddedViewStart(0, 3, 0); + const rf0 = ΔembeddedViewStart(0, 3, 0); { showTree(rf0, {tree: ctx.afterTree}); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, factory: () => new ChildComponent, @@ -1191,20 +1192,20 @@ describe('render3 integration test', () => { function parentTemplate(rf: RenderFlags, ctx: ParentCtx) { if (rf & RenderFlags.Create) { - elementStart(0, 'child'); - { container(1); } - elementEnd(); + ΔelementStart(0, 'child'); + { Δcontainer(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'beforeTree', bind(ctx.beforeTree)); - elementProperty(0, 'afterTree', bind(ctx.afterTree)); - containerRefreshStart(1); + ΔelementProperty(0, 'beforeTree', Δbind(ctx.beforeTree)); + ΔelementProperty(0, 'afterTree', Δbind(ctx.afterTree)); + ΔcontainerRefreshStart(1); { - const rf0 = embeddedViewStart(0, 3, 0); + const rf0 = ΔembeddedViewStart(0, 3, 0); { showTree(rf0, {tree: ctx.projectedTree}); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -1237,10 +1238,10 @@ describe('render3 integration test', () => { it('should support attribute bindings', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'span'); + Δelement(0, 'span'); } if (rf & RenderFlags.Update) { - elementAttribute(0, 'title', bind(ctx.title)); + ΔelementAttribute(0, 'title', Δbind(ctx.title)); } }, 1, 1); @@ -1264,10 +1265,10 @@ describe('render3 integration test', () => { it('should stringify values used attribute bindings', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'span'); + Δelement(0, 'span'); } if (rf & RenderFlags.Update) { - elementAttribute(0, 'title', bind(ctx.title)); + ΔelementAttribute(0, 'title', Δbind(ctx.title)); } }, 1, 1); @@ -1284,29 +1285,29 @@ describe('render3 integration test', () => { it('should update bindings', () => { function Template(rf: RenderFlags, c: any) { if (rf & RenderFlags.Create) { - element(0, 'b'); + Δelement(0, 'b'); } if (rf & RenderFlags.Update) { - elementAttribute(0, 'a', interpolationV(c)); - elementAttribute(0, 'a0', bind(c[1])); - elementAttribute(0, 'a1', interpolation1(c[0], c[1], c[16])); - elementAttribute(0, 'a2', interpolation2(c[0], c[1], c[2], c[3], c[16])); - elementAttribute(0, 'a3', interpolation3(c[0], c[1], c[2], c[3], c[4], c[5], c[16])); - elementAttribute( - 0, 'a4', interpolation4(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[16])); - elementAttribute( + ΔelementAttribute(0, 'a', ΔinterpolationV(c)); + ΔelementAttribute(0, 'a0', Δbind(c[1])); + ΔelementAttribute(0, 'a1', Δinterpolation1(c[0], c[1], c[16])); + ΔelementAttribute(0, 'a2', Δinterpolation2(c[0], c[1], c[2], c[3], c[16])); + ΔelementAttribute(0, 'a3', Δinterpolation3(c[0], c[1], c[2], c[3], c[4], c[5], c[16])); + ΔelementAttribute( + 0, 'a4', Δinterpolation4(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[16])); + ΔelementAttribute( 0, 'a5', - interpolation5(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[16])); - elementAttribute( - 0, 'a6', interpolation6( + Δinterpolation5(c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[16])); + ΔelementAttribute( + 0, 'a6', Δinterpolation6( c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10], c[11], c[16])); - elementAttribute( - 0, 'a7', interpolation7( + ΔelementAttribute( + 0, 'a7', Δinterpolation7( c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10], c[11], c[12], c[13], c[16])); - elementAttribute( - 0, 'a8', interpolation8( + ΔelementAttribute( + 0, 'a8', Δinterpolation8( c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10], c[11], c[12], c[13], c[14], c[15], c[16])); } @@ -1330,30 +1331,30 @@ describe('render3 integration test', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span'); - container(1); - elementEnd(); + ΔelementStart(0, 'span'); + Δcontainer(1); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementAttribute(0, 'title', bind(ctx.title)); - containerRefreshStart(1); + ΔelementAttribute(0, 'title', Δbind(ctx.title)); + ΔcontainerRefreshStart(1); { if (true) { - let rf1 = embeddedViewStart(1, 1, 1); + let rf1 = ΔembeddedViewStart(1, 1, 1); { if (rf1 & RenderFlags.Create) { - elementStart(0, 'b'); + ΔelementStart(0, 'b'); {} - elementEnd(); + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - elementAttribute(0, 'title', bind(ctx.title)); + ΔelementAttribute(0, 'title', Δbind(ctx.title)); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 2, 1); @@ -1381,7 +1382,7 @@ describe('render3 integration test', () => { /* @HostBinding('attr.aria-label') */ label = 'some label'; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: HostBindingDir, selectors: [['', 'hostBindingDir', '']], factory: function HostBindingDir_Factory() { @@ -1390,10 +1391,10 @@ describe('render3 integration test', () => { hostBindings: function HostBindingDir_HostBindings( rf: RenderFlags, ctx: any, elIndex: number) { if (rf & RenderFlags.Create) { - allocHostVars(1); + ΔallocHostVars(1); } if (rf & RenderFlags.Update) { - elementAttribute(elIndex, 'aria-label', bind(ctx.label)); + ΔelementAttribute(elIndex, 'aria-label', Δbind(ctx.label)); } } }); @@ -1401,7 +1402,7 @@ describe('render3 integration test', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['hostBindingDir', '']); + Δelement(0, 'div', ['hostBindingDir', '']); } }, 1, 0, [HostBindingDir]); @@ -1418,13 +1419,13 @@ describe('render3 integration test', () => { it('should support binding to styles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span'); - elementStyling(null, ['border-color']); - elementEnd(); + ΔelementStart(0, 'span'); + ΔelementStyling(null, ['border-color']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStyleProp(0, 0, ctx.color); - elementStylingApply(0); + ΔelementStyleProp(0, 0, ctx.color); + ΔelementStylingApply(0); } }, 1); @@ -1445,13 +1446,13 @@ describe('render3 integration test', () => { it('should support binding to styles with suffix', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span'); - elementStyling(null, ['font-size']); - elementEnd(); + ΔelementStart(0, 'span'); + ΔelementStyling(null, ['font-size']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStyleProp(0, 0, ctx.time, 'px'); - elementStylingApply(0); + ΔelementStyleProp(0, 0, ctx.time, 'px'); + ΔelementStylingApply(0); } }, 1); @@ -1479,13 +1480,13 @@ describe('render3 integration test', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span'); - elementStyling(['active']); - elementEnd(); + ΔelementStart(0, 'span'); + ΔelementStyling(['active']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementClassProp(0, 0, ctx.class); - elementStylingApply(0); + ΔelementClassProp(0, 0, ctx.class); + ΔelementStylingApply(0); } }, 1); @@ -1520,13 +1521,13 @@ describe('render3 integration test', () => { it('should work correctly with existing static classes', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span', [AttributeMarker.Classes, 'existing']); - elementStyling(['existing', 'active']); - elementEnd(); + ΔelementStart(0, 'span', [AttributeMarker.Classes, 'existing']); + ΔelementStyling(['existing', 'active']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementClassProp(0, 1, ctx.class); - elementStylingApply(0); + ΔelementClassProp(0, 1, ctx.class); + ΔelementStylingApply(0); } }, 1); @@ -1543,7 +1544,7 @@ describe('render3 integration test', () => { it('should apply classes properly when nodes are components', () => { const MyComp = createComponent('my-comp', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - text(0, 'Comp Content'); + Δtext(0, 'Comp Content'); } }, 1, 0, []); @@ -1552,13 +1553,13 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'my-comp'); - elementStyling(['active']); - elementEnd(); + ΔelementStart(0, 'my-comp'); + ΔelementStyling(['active']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementClassProp(0, 0, ctx.class); - elementStylingApply(0); + ΔelementClassProp(0, 0, ctx.class); + ΔelementStylingApply(0); } }, 1, 0, [MyComp]); @@ -1582,17 +1583,17 @@ describe('render3 integration test', () => { create() { this.vcr.createEmbeddedView(this.tmp); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuralComp, selectors: [['structural-comp']], factory: () => structuralComp = - new StructuralComp(directiveInject(ViewContainerRef as any)), + new StructuralComp(ΔdirectiveInject(ViewContainerRef as any)), inputs: {tmp: 'tmp'}, consts: 1, vars: 0, template: (rf: RenderFlags, ctx: StructuralComp) => { if (rf & RenderFlags.Create) { - text(0, 'Comp Content'); + Δtext(0, 'Comp Content'); } } }); @@ -1600,7 +1601,7 @@ describe('render3 integration test', () => { function FooTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'Temp Content'); + Δtext(0, 'Temp Content'); } } @@ -1612,16 +1613,17 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, FooTemplate, 1, 0, 'ng-template', null, ['foo', ''], templateRefExtractor); - elementStart(2, 'structural-comp'); - elementStyling(['active']); - elementEnd(); + Δtemplate( + 0, FooTemplate, 1, 0, 'ng-template', null, ['foo', ''], ΔtemplateRefExtractor); + ΔelementStart(2, 'structural-comp'); + ΔelementStyling(['active']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - const foo = reference(1) as any; - elementClassProp(2, 0, ctx.class); - elementStylingApply(2); - elementProperty(2, 'tmp', bind(foo)); + const foo = Δreference(1) as any; + ΔelementClassProp(2, 0, ctx.class); + ΔelementStylingApply(2); + ΔelementProperty(2, 'tmp', Δbind(foo)); } }, 3, 1, [StructuralComp]); @@ -1644,7 +1646,7 @@ describe('render3 integration test', () => { let mockClassDirective: DirWithClassDirective; class DirWithClassDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: DirWithClassDirective, selectors: [['', 'DirWithClass', '']], factory: () => mockClassDirective = new DirWithClassDirective(), @@ -1657,7 +1659,7 @@ describe('render3 integration test', () => { let mockStyleDirective: DirWithStyleDirective; class DirWithStyleDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: DirWithStyleDirective, selectors: [['', 'DirWithStyle', '']], factory: () => mockStyleDirective = new DirWithStyleDirective(), @@ -1675,14 +1677,14 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart( + ΔelementStart( 0, 'div', ['DirWithClass', '', AttributeMarker.Classes, 'apple', 'orange', 'banana']); - elementStyling(); - elementEnd(); + ΔelementStyling(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingApply(0); + ΔelementStylingApply(0); } }, 1, 0, [DirWithClassDirective]); @@ -1697,14 +1699,14 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', [ + ΔelementStart(0, 'div', [ 'DirWithStyle', '', AttributeMarker.Styles, 'width', '100px', 'height', '200px' ]); - elementStyling(); - elementEnd(); + ΔelementStyling(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingApply(0); + ΔelementStylingApply(0); } }, 1, 0, [DirWithStyleDirective]); @@ -1719,13 +1721,13 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['DirWithClass']); - elementStyling(); - elementEnd(); + ΔelementStart(0, 'div', ['DirWithClass']); + ΔelementStyling(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingMap(0, 'cucumber grape'); - elementStylingApply(0); + ΔelementStylingMap(0, 'cucumber grape'); + ΔelementStylingApply(0); } }, 1, 0, [DirWithClassDirective]); @@ -1740,13 +1742,13 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['DirWithStyle']); - elementStyling(); - elementEnd(); + ΔelementStart(0, 'div', ['DirWithStyle']); + ΔelementStyling(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingMap(0, null, {width: '200px', height: '500px'}); - elementStylingApply(0); + ΔelementStylingMap(0, null, {width: '200px', height: '500px'}); + ΔelementStylingApply(0); } }, 1, 0, [DirWithStyleDirective]); @@ -1757,14 +1759,14 @@ describe('render3 integration test', () => { it('should apply initial styling to the element that contains the directive with host styling', () => { class DirWithInitialStyling { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: DirWithInitialStyling, selectors: [['', 'DirWithInitialStyling', '']], factory: () => new DirWithInitialStyling(), hostBindings: function( rf: RenderFlags, ctx: DirWithInitialStyling, elementIndex: number) { if (rf & RenderFlags.Create) { - elementHostAttrs([ + ΔelementHostAttrs([ 'title', 'foo', AttributeMarker.Classes, 'heavy', 'golden', AttributeMarker.Styles, 'color', 'purple', 'font-weight', 'bold' ]); @@ -1782,7 +1784,7 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', [ + Δelement(0, 'div', [ 'DirWithInitialStyling', '', AttributeMarker.Classes, 'big', AttributeMarker.Styles, 'color', 'black', 'font-size', '200px' ]); @@ -1808,22 +1810,22 @@ describe('render3 integration test', () => { * [style.height]> */ class DirWithSingleStylingBindings { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: DirWithSingleStylingBindings, selectors: [['', 'DirWithSingleStylingBindings', '']], factory: () => dirInstance = new DirWithSingleStylingBindings(), hostBindings: function( rf: RenderFlags, ctx: DirWithSingleStylingBindings, elementIndex: number) { if (rf & RenderFlags.Create) { - elementHostAttrs( + ΔelementHostAttrs( [AttributeMarker.Classes, 'def', AttributeMarker.Styles, 'width', '555px']); - elementHostStyling(['xyz'], ['width', 'height']); + ΔelementHostStyling(['xyz'], ['width', 'height']); } if (rf & RenderFlags.Update) { - elementHostStyleProp(0, ctx.width); - elementHostStyleProp(1, ctx.height); - elementHostClassProp(0, ctx.activateXYZClass); - elementHostStylingApply(); + ΔelementHostStyleProp(0, ctx.width); + ΔelementHostStyleProp(1, ctx.height); + ΔelementHostClassProp(0, ctx.activateXYZClass); + ΔelementHostStylingApply(); } } }); @@ -1839,7 +1841,7 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', [ + Δelement(0, 'div', [ 'DirWithSingleStylingBindings', '', AttributeMarker.Classes, 'abc', AttributeMarker.Styles, 'width', '100px', 'height', '200px' ]); @@ -1884,17 +1886,17 @@ describe('render3 integration test', () => { * [style.width] */ class Dir1WithStyle { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Dir1WithStyle, selectors: [['', 'Dir1WithStyle', '']], factory: () => dir1Instance = new Dir1WithStyle(), hostBindings: function(rf: RenderFlags, ctx: Dir1WithStyle, elementIndex: number) { if (rf & RenderFlags.Create) { - elementHostStyling(null, ['width']); + ΔelementHostStyling(null, ['width']); } if (rf & RenderFlags.Update) { - elementHostStyleProp(0, ctx.width); - elementHostStylingApply(); + ΔelementHostStyleProp(0, ctx.width); + ΔelementHostStylingApply(); } } }); @@ -1908,18 +1910,18 @@ describe('render3 integration test', () => { * style="width:111px" */ class Dir2WithStyle { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Dir2WithStyle, selectors: [['', 'Dir2WithStyle', '']], factory: () => dir2Instance = new Dir2WithStyle(), hostBindings: function(rf: RenderFlags, ctx: Dir2WithStyle, elementIndex: number) { if (rf & RenderFlags.Create) { - elementHostAttrs([AttributeMarker.Styles, 'width', '111px']); - elementHostStyling(null, ['width']); + ΔelementHostAttrs([AttributeMarker.Styles, 'width', '111px']); + ΔelementHostStyling(null, ['width']); } if (rf & RenderFlags.Update) { - elementHostStyleProp(0, ctx.width); - elementHostStylingApply(); + ΔelementHostStyleProp(0, ctx.width); + ΔelementHostStylingApply(); } } }); @@ -1932,12 +1934,12 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['Dir1WithStyle', '', 'Dir2WithStyle', '']); - elementStyling(null, ['width']); + Δelement(0, 'div', ['Dir1WithStyle', '', 'Dir2WithStyle', '']); + ΔelementStyling(null, ['width']); } if (rf & RenderFlags.Update) { - elementStyleProp(0, 0, ctx.width); - elementStylingApply(0); + ΔelementStyleProp(0, 0, ctx.width); + ΔelementStylingApply(0); } }, 1, 0, [Dir1WithStyle, Dir2WithStyle]); @@ -1981,17 +1983,17 @@ describe('render3 integration test', () => { * [class] */ class Dir1WithStyling { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Dir1WithStyling, selectors: [['', 'Dir1WithStyling', '']], factory: () => dir1Instance = new Dir1WithStyling(), hostBindings: function(rf: RenderFlags, ctx: Dir1WithStyling, elementIndex: number) { if (rf & RenderFlags.Create) { - elementHostStyling(); + ΔelementHostStyling(); } if (rf & RenderFlags.Update) { - elementHostStylingMap(ctx.classesExp, ctx.stylesExp); - elementHostStylingApply(); + ΔelementHostStylingMap(ctx.classesExp, ctx.stylesExp); + ΔelementHostStylingApply(); } } }); @@ -2007,18 +2009,18 @@ describe('render3 integration test', () => { * style="width:111px" */ class Dir2WithStyling { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Dir2WithStyling, selectors: [['', 'Dir2WithStyling', '']], factory: () => dir2Instance = new Dir2WithStyling(), hostBindings: function(rf: RenderFlags, ctx: Dir2WithStyling, elementIndex: number) { if (rf & RenderFlags.Create) { - elementHostAttrs([AttributeMarker.Styles, 'width', '111px']); - elementHostStyling(); + ΔelementHostAttrs([AttributeMarker.Styles, 'width', '111px']); + ΔelementHostStyling(); } if (rf & RenderFlags.Update) { - elementHostStylingMap(null, ctx.stylesExp); - elementHostStylingApply(); + ΔelementHostStylingMap(null, ctx.stylesExp); + ΔelementHostStylingApply(); } } }); @@ -2032,12 +2034,12 @@ describe('render3 integration test', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['Dir1WithStyling', '', 'Dir2WithStyling', '']); - elementStyling(); + Δelement(0, 'div', ['Dir1WithStyling', '', 'Dir2WithStyling', '']); + ΔelementStyling(); } if (rf & RenderFlags.Update) { - elementStylingMap(0, ctx.classesExp, ctx.stylesExp); - elementStylingApply(0); + ΔelementStylingMap(0, ctx.classesExp, ctx.stylesExp); + ΔelementStylingApply(0); } }, 1, 0, [Dir1WithStyling, Dir2WithStyling]); @@ -2108,13 +2110,13 @@ describe('render3 integration test', () => { it('should properly handle and render interpolation for class attribute bindings', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - elementStyling(); - elementEnd(); + ΔelementStart(0, 'div'); + ΔelementStyling(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingMap(0, interpolation2('-', ctx.name, '-', ctx.age, '-')); - elementStylingApply(0); + ΔelementStylingMap(0, Δinterpolation2('-', ctx.name, '-', ctx.age, '-')); + ΔelementStylingApply(0); } }, 1, 2); @@ -2141,20 +2143,20 @@ describe('template data', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'div'); + Δelement(0, 'div'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -2184,7 +2186,7 @@ describe('template data', () => { describe('component styles', () => { it('should pass in the component styles directly into the underlying renderer', () => { class StyledComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StyledComp, styles: ['div { color: red; }'], consts: 1, @@ -2194,7 +2196,7 @@ describe('component styles', () => { factory: () => new StyledComp(), template: (rf: RenderFlags, ctx: StyledComp) => { if (rf & RenderFlags.Create) { - element(0, 'div'); + Δelement(0, 'div'); } } }); @@ -2212,7 +2214,7 @@ describe('component animations', () => { const animB = {name: 'b'}; class AnimComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AnimComp, consts: 0, vars: 0, @@ -2239,7 +2241,7 @@ describe('component animations', () => { it('should include animations in the renderType data array even if the array is empty', () => { class AnimComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AnimComp, consts: 0, vars: 0, @@ -2259,7 +2261,7 @@ describe('component animations', () => { it('should allow [@trigger] bindings to be picked up by the underlying renderer', () => { class AnimComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AnimComp, consts: 1, vars: 1, @@ -2267,10 +2269,10 @@ describe('component animations', () => { factory: () => new AnimComp(), template: (rf: RenderFlags, ctx: AnimComp) => { if (rf & RenderFlags.Create) { - element(0, 'div', [AttributeMarker.Bindings, '@fooAnimation']); + Δelement(0, 'div', [AttributeMarker.Bindings, '@fooAnimation']); } if (rf & RenderFlags.Update) { - elementAttribute(0, '@fooAnimation', bind(ctx.animationValue)); + ΔelementAttribute(0, '@fooAnimation', Δbind(ctx.animationValue)); } } }); @@ -2295,7 +2297,7 @@ describe('component animations', () => { it('should allow creation-level [@trigger] properties to be picked up by the underlying renderer', () => { class AnimComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AnimComp, consts: 1, vars: 1, @@ -2303,7 +2305,7 @@ describe('component animations', () => { factory: () => new AnimComp(), template: (rf: RenderFlags, ctx: AnimComp) => { if (rf & RenderFlags.Create) { - element(0, 'div', ['@fooAnimation', '']); + Δelement(0, 'div', ['@fooAnimation', '']); } } }); @@ -2322,13 +2324,13 @@ describe('component animations', () => { it('should allow host binding animations to be picked up and rendered', () => { class ChildCompWithAnim { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: ChildCompWithAnim, factory: () => new ChildCompWithAnim(), selectors: [['child-comp-with-anim']], hostBindings: function(rf: RenderFlags, ctx: any, elementIndex: number): void { if (rf & RenderFlags.Update) { - elementProperty(0, '@fooAnim', ctx.exp); + ΔelementProperty(0, '@fooAnim', ctx.exp); } }, }); @@ -2337,7 +2339,7 @@ describe('component animations', () => { } class ParentComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ParentComp, consts: 1, vars: 1, @@ -2345,7 +2347,7 @@ describe('component animations', () => { factory: () => new ParentComp(), template: (rf: RenderFlags, ctx: ParentComp) => { if (rf & RenderFlags.Create) { - element(0, 'child-comp-with-anim'); + Δelement(0, 'child-comp-with-anim'); } }, directives: [ChildCompWithAnim] @@ -2367,7 +2369,7 @@ describe('component animations', () => { describe('element discovery', () => { it('should only monkey-patch immediate child nodes in a component', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], factory: () => new StructuredComp(), @@ -2375,10 +2377,10 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - elementStart(1, 'p'); - elementEnd(); - elementEnd(); + ΔelementStart(0, 'div'); + ΔelementStart(1, 'p'); + ΔelementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { } @@ -2399,7 +2401,7 @@ describe('element discovery', () => { it('should only monkey-patch immediate child nodes in a sub component', () => { class ChildComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ChildComp, selectors: [['child-comp']], factory: () => new ChildComp(), @@ -2407,16 +2409,16 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ChildComp) => { if (rf & RenderFlags.Create) { - element(0, 'div'); - element(1, 'div'); - element(2, 'div'); + Δelement(0, 'div'); + Δelement(1, 'div'); + Δelement(2, 'div'); } } }); } class ParentComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ParentComp, selectors: [['parent-comp']], directives: [ChildComp], @@ -2425,10 +2427,10 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ParentComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'section'); - elementStart(1, 'child-comp'); - elementEnd(); - elementEnd(); + ΔelementStart(0, 'section'); + ΔelementStart(1, 'child-comp'); + ΔelementEnd(); + ΔelementEnd(); } } }); @@ -2449,7 +2451,7 @@ describe('element discovery', () => { it('should only monkey-patch immediate child nodes in an embedded template container', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], directives: [NgIf], @@ -2458,19 +2460,19 @@ describe('element discovery', () => { vars: 1, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'section'); - template(1, (rf, ctx) => { + ΔelementStart(0, 'section'); + Δtemplate(1, (rf, ctx) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - element(1, 'p'); - elementEnd(); - element(2, 'div'); + ΔelementStart(0, 'div'); + Δelement(1, 'p'); + ΔelementEnd(); + Δelement(2, 'div'); } }, 3, 0, 'ng-template', ['ngIf', '']); - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(1, 'ngIf', true); + ΔelementProperty(1, 'ngIf', true); } } }); @@ -2497,7 +2499,7 @@ describe('element discovery', () => { it('should return a context object from a given dom node', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], directives: [NgIf], @@ -2506,8 +2508,8 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - element(0, 'section'); - element(1, 'div'); + Δelement(0, 'section'); + Δelement(1, 'div'); } } }); @@ -2535,7 +2537,7 @@ describe('element discovery', () => { it('should cache the element context on a element was pre-emptively monkey-patched', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], factory: () => new StructuredComp(), @@ -2543,7 +2545,7 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - element(0, 'section'); + Δelement(0, 'section'); } } }); @@ -2567,7 +2569,7 @@ describe('element discovery', () => { it('should cache the element context on an intermediate element that isn\'t pre-emptively monkey-patched', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], factory: () => new StructuredComp(), @@ -2575,9 +2577,9 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'section'); - element(1, 'p'); - elementEnd(); + ΔelementStart(0, 'section'); + Δelement(1, 'p'); + ΔelementEnd(); } } }); @@ -2600,7 +2602,7 @@ describe('element discovery', () => { it('should be able to pull in element context data even if the element is decorated using styling', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], factory: () => new StructuredComp(), @@ -2608,12 +2610,12 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'section'); - elementStyling(['class-foo']); - elementEnd(); + ΔelementStart(0, 'section'); + ΔelementStyling(['class-foo']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingApply(0); + ΔelementStylingApply(0); } } }); @@ -2654,7 +2656,7 @@ describe('element discovery', () => { */ class ProjectorComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ProjectorComp, selectors: [['projector-comp']], factory: () => new ProjectorComp(), @@ -2662,13 +2664,13 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ProjectorComp) => { if (rf & RenderFlags.Create) { - projectionDef(); - text(0, 'welcome'); - elementStart(1, 'header'); - elementStart(2, 'h1'); - projection(3); - elementEnd(); - elementEnd(); + ΔprojectionDef(); + Δtext(0, 'welcome'); + ΔelementStart(1, 'header'); + ΔelementStart(2, 'h1'); + Δprojection(3); + ΔelementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { } @@ -2677,7 +2679,7 @@ describe('element discovery', () => { } class ParentComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ParentComp, selectors: [['parent-comp']], directives: [ProjectorComp], @@ -2686,14 +2688,14 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ParentComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'section'); - elementStart(1, 'projector-comp'); - elementStart(2, 'p'); - text(3, 'this content is projected'); - elementEnd(); - text(4, 'this content is projected also'); - elementEnd(); - elementEnd(); + ΔelementStart(0, 'section'); + ΔelementStart(1, 'projector-comp'); + ΔelementStart(2, 'p'); + Δtext(3, 'this content is projected'); + ΔelementEnd(); + Δtext(4, 'this content is projected also'); + ΔelementEnd(); + ΔelementEnd(); } } }); @@ -2751,7 +2753,7 @@ describe('element discovery', () => { it('should return `null` when an element context is retrieved that is a DOM node that was not created by Angular', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], factory: () => new StructuredComp(), @@ -2759,7 +2761,7 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - element(0, 'section'); + Δelement(0, 'section'); } } }); @@ -2778,7 +2780,7 @@ describe('element discovery', () => { it('should by default monkey-patch the bootstrap component with context details', () => { class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], factory: () => new StructuredComp(), @@ -2817,7 +2819,7 @@ describe('element discovery', () => { let myDir3Instance: MyDir2|null = null; class MyDir1 { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir1, selectors: [['', 'my-dir-1', '']], factory: () => myDir1Instance = new MyDir1() @@ -2825,7 +2827,7 @@ describe('element discovery', () => { } class MyDir2 { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir2, selectors: [['', 'my-dir-2', '']], factory: () => myDir2Instance = new MyDir2() @@ -2833,7 +2835,7 @@ describe('element discovery', () => { } class MyDir3 { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir3, selectors: [['', 'my-dir-3', '']], factory: () => myDir3Instance = new MyDir2() @@ -2841,7 +2843,7 @@ describe('element discovery', () => { } class StructuredComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: StructuredComp, selectors: [['structured-comp']], directives: [MyDir1, MyDir2, MyDir3], @@ -2850,8 +2852,8 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: StructuredComp) => { if (rf & RenderFlags.Create) { - element(0, 'div', ['my-dir-1', '', 'my-dir-2', '']); - element(1, 'div', ['my-dir-3']); + Δelement(0, 'div', ['my-dir-1', '', 'my-dir-2', '']); + Δelement(1, 'div', ['my-dir-3']); } } }); @@ -2906,7 +2908,7 @@ describe('element discovery', () => { let childComponentInstance: ChildComp|null = null; class MyDir1 { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir1, selectors: [['', 'my-dir-1', '']], factory: () => myDir1Instance = new MyDir1() @@ -2914,7 +2916,7 @@ describe('element discovery', () => { } class MyDir2 { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir2, selectors: [['', 'my-dir-2', '']], factory: () => myDir2Instance = new MyDir2() @@ -2922,7 +2924,7 @@ describe('element discovery', () => { } class ChildComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ChildComp, selectors: [['child-comp']], factory: () => childComponentInstance = new ChildComp(), @@ -2930,14 +2932,14 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ChildComp) => { if (rf & RenderFlags.Create) { - element(0, 'div'); + Δelement(0, 'div'); } } }); } class ParentComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ParentComp, selectors: [['parent-comp']], directives: [ChildComp, MyDir1, MyDir2], @@ -2946,7 +2948,7 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ParentComp) => { if (rf & RenderFlags.Create) { - element(0, 'child-comp', ['my-dir-1', '', 'my-dir-2', '']); + Δelement(0, 'child-comp', ['my-dir-1', '', 'my-dir-2', '']); } } }); @@ -2999,7 +3001,7 @@ describe('element discovery', () => { it('should monkey-patch sub components with the view data and then replace them with the context result once a lookup occurs', () => { class ChildComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ChildComp, selectors: [['child-comp']], factory: () => new ChildComp(), @@ -3007,16 +3009,16 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ChildComp) => { if (rf & RenderFlags.Create) { - element(0, 'div'); - element(1, 'div'); - element(2, 'div'); + Δelement(0, 'div'); + Δelement(1, 'div'); + Δelement(2, 'div'); } } }); } class ParentComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ParentComp, selectors: [['parent-comp']], directives: [ChildComp], @@ -3025,10 +3027,10 @@ describe('element discovery', () => { vars: 0, template: (rf: RenderFlags, ctx: ParentComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'section'); - elementStart(1, 'child-comp'); - elementEnd(); - elementEnd(); + ΔelementStart(0, 'section'); + ΔelementStart(1, 'child-comp'); + ΔelementEnd(); + ΔelementEnd(); } } }); @@ -3060,7 +3062,7 @@ describe('element discovery', () => { describe('sanitization', () => { it('should sanitize data using the provided sanitization interface', () => { class SanitizationComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SanitizationComp, selectors: [['sanitize-this']], factory: () => new SanitizationComp(), @@ -3068,10 +3070,10 @@ describe('sanitization', () => { vars: 1, template: (rf: RenderFlags, ctx: SanitizationComp) => { if (rf & RenderFlags.Create) { - element(0, 'a'); + Δelement(0, 'a'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'href', bind(ctx.href), sanitizeUrl); + ΔelementProperty(0, 'href', Δbind(ctx.href), ΔsanitizeUrl); } } }); @@ -3102,23 +3104,23 @@ describe('sanitization', () => { // @HostBinding() cite: any = 'http://cite-dir-value'; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: UnsafeUrlHostBindingDir, selectors: [['', 'unsafeUrlHostBindingDir', '']], factory: () => hostBindingDir = new UnsafeUrlHostBindingDir(), hostBindings: (rf: RenderFlags, ctx: any, elementIndex: number) => { if (rf & RenderFlags.Create) { - allocHostVars(1); + ΔallocHostVars(1); } if (rf & RenderFlags.Update) { - elementProperty(elementIndex, 'cite', bind(ctx.cite), sanitizeUrl, true); + ΔelementProperty(elementIndex, 'cite', Δbind(ctx.cite), ΔsanitizeUrl, true); } } }); } class SimpleComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SimpleComp, selectors: [['sanitize-this']], factory: () => new SimpleComp(), @@ -3126,7 +3128,7 @@ describe('sanitization', () => { vars: 0, template: (rf: RenderFlags, ctx: SimpleComp) => { if (rf & RenderFlags.Create) { - element(0, 'blockquote', ['unsafeUrlHostBindingDir', '']); + Δelement(0, 'blockquote', ['unsafeUrlHostBindingDir', '']); } }, directives: [UnsafeUrlHostBindingDir] diff --git a/packages/core/test/render3/ivy/jit_spec.ts b/packages/core/test/render3/ivy/jit_spec.ts index e6dae227f3..f782ef2d58 100644 --- a/packages/core/test/render3/ivy/jit_spec.ts +++ b/packages/core/test/render3/ivy/jit_spec.ts @@ -7,10 +7,10 @@ */ import 'reflect-metadata'; -import {ElementRef, QueryList, ɵsetComponentScope as setComponentScope} from '@angular/core'; +import {ElementRef, QueryList, ΔsetComponentScope as setComponentScope} from '@angular/core'; import {Injectable} from '@angular/core/src/di/injectable'; -import {inject, setCurrentInjector} from '@angular/core/src/di/injector_compatibility'; -import {InjectorDef, defineInjectable} from '@angular/core/src/di/interface/defs'; +import {setCurrentInjector, Δinject} from '@angular/core/src/di/injector_compatibility'; +import {ΔInjectorDef, ΔdefineInjectable} from '@angular/core/src/di/interface/defs'; import {ivyEnabled} from '@angular/core/src/ivy_switch'; import {ContentChild, ContentChildren, ViewChild, ViewChildren} from '@angular/core/src/metadata/di'; import {Component, Directive, HostBinding, HostListener, Input, Output, Pipe} from '@angular/core/src/metadata/directives'; @@ -45,7 +45,7 @@ ivyEnabled && describe('render3 jit', () => { expect(ServiceAny.ngInjectableDef).toBeDefined(); expect(ServiceAny.ngInjectableDef.providedIn).toBe('root'); - expect(inject(Service) instanceof Service).toBe(true); + expect(Δinject(Service) instanceof Service).toBe(true); }); it('compiles an injectable with a useValue provider', () => { @@ -53,7 +53,7 @@ ivyEnabled && describe('render3 jit', () => { class Service { } - expect(inject(Service)).toBe('test'); + expect(Δinject(Service)).toBe('test'); }); it('compiles an injectable with a useExisting provider', () => { @@ -65,7 +65,7 @@ ivyEnabled && describe('render3 jit', () => { class Service { } - expect(inject(Service)).toBe('test'); + expect(Δinject(Service)).toBe('test'); }); it('compiles an injectable with a useFactory provider, without deps', () => { @@ -74,7 +74,7 @@ ivyEnabled && describe('render3 jit', () => { class Service { } - expect(inject(Service)).toBe('test'); + expect(Δinject(Service)).toBe('test'); }); it('compiles an injectable with a useFactory provider, with deps', () => { @@ -86,7 +86,7 @@ ivyEnabled && describe('render3 jit', () => { class Service { } - expect(inject(Service)).toBe('test'); + expect(Δinject(Service)).toBe('test'); }); it('compiles an injectable with a useClass provider, with deps', () => { @@ -104,7 +104,7 @@ ivyEnabled && describe('render3 jit', () => { } const ServiceAny = Service as any; - expect(inject(Service).value).toBe('test'); + expect(Δinject(Service).value).toBe('test'); }); it('compiles an injectable with a useClass provider, without deps', () => { @@ -119,8 +119,8 @@ ivyEnabled && describe('render3 jit', () => { get value(): number { return 0; } } - expect(inject(Existing).value).toBe(1); - const injected = inject(Service); + expect(Δinject(Existing).value).toBe(1); + const injected = Δinject(Service); expect(injected instanceof Existing).toBe(true); expect(injected.value).toBe(2); }); @@ -139,7 +139,7 @@ ivyEnabled && describe('render3 jit', () => { class Child extends Base { } - expect(inject(Child).dep instanceof Dep).toBe(true); + expect(Δinject(Child).dep instanceof Dep).toBe(true); }); it('compiles a module to a definition', () => { @@ -167,7 +167,7 @@ ivyEnabled && describe('render3 jit', () => { it('compiles a module to an ngInjectorDef with the providers', () => { class Token { - static ngInjectableDef = defineInjectable({ + static ngInjectableDef = ΔdefineInjectable({ providedIn: 'root', factory: () => 'default', }); @@ -180,7 +180,7 @@ ivyEnabled && describe('render3 jit', () => { constructor(public token: Token) {} } - const injectorDef: InjectorDef = (Module as any).ngInjectorDef; + const injectorDef: ΔInjectorDef = (Module as any).ngInjectorDef; const instance = injectorDef.factory(); // Since the instance was created outside of an injector using the module, the diff --git a/packages/core/test/render3/jit_environment_spec.ts b/packages/core/test/render3/jit_environment_spec.ts index 5689b7f916..e256047c21 100644 --- a/packages/core/test/render3/jit_environment_spec.ts +++ b/packages/core/test/render3/jit_environment_spec.ts @@ -12,12 +12,12 @@ import {Identifiers} from '@angular/compiler/src/render3/r3_identifiers'; import {angularCoreEnv} from '../../src/render3/jit/environment'; const INTERFACE_EXCEPTIONS = new Set([ - 'ɵBaseDef', - 'ɵComponentDefWithMeta', - 'ɵDirectiveDefWithMeta', - 'ɵInjectorDef', - 'ɵNgModuleDefWithMeta', - 'ɵPipeDefWithMeta', + 'ΔBaseDef', + 'ΔComponentDefWithMeta', + 'ΔDirectiveDefWithMeta', + 'ΔInjectorDef', + 'ΔNgModuleDefWithMeta', + 'ΔPipeDefWithMeta', ]); describe('r3 jit environment', () => { diff --git a/packages/core/test/render3/lifecycle_spec.ts b/packages/core/test/render3/lifecycle_spec.ts index 2f03d5e32b..e543ef074b 100644 --- a/packages/core/test/render3/lifecycle_spec.ts +++ b/packages/core/test/render3/lifecycle_spec.ts @@ -7,9 +7,8 @@ */ import {ComponentFactoryResolver, OnDestroy, SimpleChange, SimpleChanges, ViewContainerRef} from '../../src/core'; -import {AttributeMarker, ComponentTemplate, LifecycleHooksFeature, NO_CHANGE, NgOnChangesFeature, defineComponent, defineDirective, injectComponentFactoryResolver} from '../../src/render3/index'; - -import {bind, container, containerRefreshEnd, containerRefreshStart, directiveInject, element, elementEnd, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, select, listener, markDirty, projection, projectionDef, store, template, text} from '../../src/render3/instructions/all'; +import {AttributeMarker, ComponentTemplate, LifecycleHooksFeature, NO_CHANGE, injectComponentFactoryResolver, ΔNgOnChangesFeature, ΔdefineComponent, ΔdefineDirective} from '../../src/render3/index'; +import {markDirty, store, Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, ΔdirectiveInject, Δelement, ΔelementEnd, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δlistener, Δprojection, ΔprojectionDef, Δselect, Δtemplate, Δtext} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {NgIf} from './common_with_def'; @@ -20,10 +19,10 @@ describe('lifecycles', () => { function getParentTemplate(name: string) { return (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - element(0, name); + Δelement(0, name); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', bind(ctx.val)); + ΔelementProperty(0, 'val', Δbind(ctx.val)); } }; } @@ -35,16 +34,16 @@ describe('lifecycles', () => { let Comp = createOnInitComponent('comp', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - projectionDef(); - elementStart(0, 'div'); - { projection(1); } - elementEnd(); + ΔprojectionDef(); + ΔelementStart(0, 'div'); + { Δprojection(1); } + ΔelementEnd(); } }, 2); let Parent = createOnInitComponent('parent', getParentTemplate('comp'), 1, 1, [Comp]); let ProjectedComp = createOnInitComponent('projected', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - text(0, 'content'); + Δtext(0, 'content'); } }, 1); @@ -58,7 +57,7 @@ describe('lifecycles', () => { events.push(`${name}${this.val}`); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], consts: consts, @@ -73,7 +72,7 @@ describe('lifecycles', () => { class Directive { ngOnInit() { events.push('dir'); } - static ngDirectiveDef = defineDirective( + static ngDirectiveDef = ΔdefineDirective( {type: Directive, selectors: [['', 'dir', '']], factory: () => new Directive()}); } @@ -84,10 +83,10 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', bind(ctx.val)); + ΔelementProperty(0, 'val', Δbind(ctx.val)); } }, 1, 1, directives); @@ -116,7 +115,7 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } }, 1, 0, directives); @@ -133,13 +132,13 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - element(1, 'parent'); + Δelement(0, 'parent'); + Δelement(1, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 2); } }, 2, 0, directives); @@ -156,20 +155,20 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, directives); @@ -190,17 +189,17 @@ describe('lifecycles', () => { function IfTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } } /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, IfTemplate, 1, 0, 'comp', [AttributeMarker.Template, 'ngIf']); + Δtemplate(0, IfTemplate, 1, 0, 'comp', [AttributeMarker.Template, 'ngIf']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngIf', bind(ctx.showing)); + ΔelementProperty(0, 'ngIf', Δbind(ctx.showing)); } }, 1, 0, directives); @@ -225,11 +224,11 @@ describe('lifecycles', () => { class ViewContainerComp { constructor(public vcr: ViewContainerRef, public cfr: ComponentFactoryResolver) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ViewContainerComp, selectors: [['view-container-comp']], factory: () => viewContainerComp = new ViewContainerComp( - directiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), + ΔdirectiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), consts: 0, vars: 0, template: (rf: RenderFlags, ctx: ViewContainerComp) => {} @@ -238,7 +237,7 @@ describe('lifecycles', () => { const DynamicComp = createComponent('dynamic-comp', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } }, 1, 0, [Comp]); @@ -259,9 +258,9 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { elementStart(1, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { ΔelementStart(1, 'projected'); } + ΔelementEnd(); } }, 2, 0, directives); @@ -280,21 +279,21 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { elementStart(1, 'projected'); } - elementEnd(); - elementStart(2, 'comp'); - { elementStart(3, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { ΔelementStart(1, 'projected'); } + ΔelementEnd(); + ΔelementStart(2, 'comp'); + { ΔelementStart(3, 'projected'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 1); - select(2); - elementProperty(2, 'val', 2); - select(3); - elementProperty(3, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 2); + Δselect(3); + ΔelementProperty(3, 'val', 2); } }, 4, 0, directives); @@ -306,7 +305,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp', ['dir', '']); + Δelement(0, 'comp', ['dir', '']); } }, 1, 0, directives); @@ -321,7 +320,7 @@ describe('lifecycles', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['dir', '']); + Δelement(0, 'div', ['dir', '']); } }, 1, 0, directives); @@ -342,28 +341,28 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); - container(1); - element(2, 'comp'); + Δelement(0, 'comp'); + Δcontainer(1); + Δelement(2, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(2); - elementProperty(2, 'val', 5); - containerRefreshStart(1); + ΔelementProperty(0, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 5); + ΔcontainerRefreshStart(1); { for (let j = 2; j < 5; j++) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', j); + ΔelementProperty(0, 'val', j); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 0, directives); @@ -383,28 +382,28 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - container(1); - element(2, 'parent'); + Δelement(0, 'parent'); + Δcontainer(1); + Δelement(2, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(2); - elementProperty(2, 'val', 5); - containerRefreshStart(1); + ΔelementProperty(0, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 5); + ΔcontainerRefreshStart(1); { for (let j = 2; j < 5; j++) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', j); + ΔelementProperty(0, 'val', j); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 0, directives); @@ -442,7 +441,7 @@ describe('lifecycles', () => { ngOnInit() { allEvents.push('init ' + name); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], factory: () => new Component(), template, @@ -457,7 +456,7 @@ describe('lifecycles', () => { class Directive { ngDoCheck() { events.push('dir'); } - static ngDirectiveDef = defineDirective( + static ngDirectiveDef = ΔdefineDirective( {type: Directive, selectors: [['', 'dir', '']], factory: () => new Directive()}); } @@ -467,7 +466,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } }, 1, 0, directives); @@ -494,7 +493,7 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } }, 1, 0, directives); @@ -506,7 +505,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } }, 1, 0, directives); @@ -521,7 +520,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp', ['dir', '']); + Δelement(0, 'comp', ['dir', '']); } }, 1, 0, directives); @@ -536,7 +535,7 @@ describe('lifecycles', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['dir', '']); + Δelement(0, 'div', ['dir', '']); } }, 1, 0, directives); @@ -560,27 +559,27 @@ describe('lifecycles', () => { let Comp = createAfterContentInitComp('comp', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - projectionDef(); - projection(0); + ΔprojectionDef(); + Δprojection(0); } }, 1); let Parent = createAfterContentInitComp('parent', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - projectionDef(); - elementStart(0, 'comp'); - { projection(1); } - elementEnd(); + ΔprojectionDef(); + ΔelementStart(0, 'comp'); + { Δprojection(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', bind(ctx.val)); + ΔelementProperty(0, 'val', Δbind(ctx.val)); } }, 2, 1, [Comp]); let ProjectedComp = createAfterContentInitComp('projected', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - projectionDef(); - projection(0); + ΔprojectionDef(); + Δprojection(0); } }, 1); @@ -595,7 +594,7 @@ describe('lifecycles', () => { } ngAfterContentChecked() { allEvents.push(`${name}${this.val} check`); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], factory: () => new Component(), @@ -612,40 +611,40 @@ describe('lifecycles', () => { ngAfterContentInit() { events.push('init'); } ngAfterContentChecked() { events.push('check'); } - static ngDirectiveDef = defineDirective( + static ngDirectiveDef = ΔdefineDirective( {type: Directive, selectors: [['', 'dir', '']], factory: () => new Directive()}); } function ForLoopWithChildrenTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'parent'); - { text(1, 'content'); } - elementEnd(); - container(2); - elementStart(3, 'parent'); - { text(4, 'content'); } - elementEnd(); + ΔelementStart(0, 'parent'); + { Δtext(1, 'content'); } + ΔelementEnd(); + Δcontainer(2); + ΔelementStart(3, 'parent'); + { Δtext(4, 'content'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(3); - elementProperty(3, 'val', 4); - containerRefreshStart(2); + ΔelementProperty(0, 'val', 1); + Δselect(3); + ΔelementProperty(3, 'val', 4); + ΔcontainerRefreshStart(2); { for (let i = 2; i < 4; i++) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'parent'); - { text(1, 'content'); } - elementEnd(); + ΔelementStart(0, 'parent'); + { Δtext(1, 'content'); } + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', i); + ΔelementProperty(0, 'val', i); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -655,9 +654,9 @@ describe('lifecycles', () => { /** content */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { text(1, 'content'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δtext(1, 'content'); } + ΔelementEnd(); } }, 2, 0, directives); @@ -685,22 +684,22 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'comp'); - { text(1, 'content'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δtext(1, 'content'); } + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, directives); @@ -724,9 +723,9 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'parent'); - { text(1, 'content'); } - elementEnd(); + ΔelementStart(0, 'parent'); + { Δtext(1, 'content'); } + ΔelementEnd(); } }, 2, 0, directives); @@ -743,17 +742,17 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'parent'); - { text(1, 'content'); } - elementEnd(); - elementStart(2, 'parent'); - { text(3, 'content'); } - elementEnd(); + ΔelementStart(0, 'parent'); + { Δtext(1, 'content'); } + ΔelementEnd(); + ΔelementStart(2, 'parent'); + { Δtext(3, 'content'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(2); - elementProperty(2, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 2); } }, 4, 0, directives); @@ -774,13 +773,13 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'parent'); + ΔelementStart(0, 'parent'); { - elementStart(1, 'projected'); - { text(2, 'content'); } - elementEnd(); + ΔelementStart(1, 'projected'); + { Δtext(2, 'content'); } + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } }, 3, 0, directives); @@ -804,29 +803,29 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'parent'); + ΔelementStart(0, 'parent'); { - elementStart(1, 'projected'); - { text(2, 'content'); } - elementEnd(); + ΔelementStart(1, 'projected'); + { Δtext(2, 'content'); } + ΔelementEnd(); } - elementEnd(); - elementStart(3, 'parent'); + ΔelementEnd(); + ΔelementStart(3, 'parent'); { - elementStart(4, 'projected'); - { text(5, 'content'); } - elementEnd(); + ΔelementStart(4, 'projected'); + { Δtext(5, 'content'); } + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 1); - select(3); - elementProperty(3, 'val', 2); - select(4); - elementProperty(4, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 1); + Δselect(3); + ΔelementProperty(3, 'val', 2); + Δselect(4); + ΔelementProperty(4, 'val', 2); } }, 6, 0, directives); @@ -844,34 +843,34 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { text(1, 'content'); } - elementEnd(); - container(2); - elementStart(3, 'comp'); - { text(4, 'content'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δtext(1, 'content'); } + ΔelementEnd(); + Δcontainer(2); + ΔelementStart(3, 'comp'); + { Δtext(4, 'content'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(3); - elementProperty(3, 'val', 4); - containerRefreshStart(2); + ΔelementProperty(0, 'val', 1); + Δselect(3); + ΔelementProperty(3, 'val', 4); + ΔcontainerRefreshStart(2); { for (let i = 2; i < 4; i++) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'comp'); - { text(1, 'content'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δtext(1, 'content'); } + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', i); + ΔelementProperty(0, 'val', i); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 5, 0, directives); @@ -899,9 +898,9 @@ describe('lifecycles', () => { /** content */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { text(1, 'content'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δtext(1, 'content'); } + ΔelementEnd(); } }, 2, 0, directives); @@ -928,7 +927,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp', ['dir', '']); + Δelement(0, 'comp', ['dir', '']); } }, 1, 0, directives); @@ -940,7 +939,7 @@ describe('lifecycles', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['dir', '']); + Δelement(0, 'div', ['dir', '']); } }, 1, 0, directives); @@ -961,17 +960,17 @@ describe('lifecycles', () => { let Comp = createAfterViewInitComponent('comp', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - projectionDef(); - elementStart(0, 'div'); - { projection(1); } - elementEnd(); + ΔprojectionDef(); + ΔelementStart(0, 'div'); + { Δprojection(1); } + ΔelementEnd(); } }, 2); let Parent = createAfterViewInitComponent('parent', getParentTemplate('comp'), 1, 1, [Comp]); let ProjectedComp = createAfterViewInitComponent('projected', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - text(0, 'content'); + Δtext(0, 'content'); } }, 1); @@ -987,7 +986,7 @@ describe('lifecycles', () => { } ngAfterViewChecked() { allEvents.push(`${name}${this.val} check`); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], consts: consts, @@ -1004,7 +1003,7 @@ describe('lifecycles', () => { ngAfterViewInit() { events.push('init'); } ngAfterViewChecked() { events.push('check'); } - static ngDirectiveDef = defineDirective( + static ngDirectiveDef = ΔdefineDirective( {type: Directive, selectors: [['', 'dir', '']], factory: () => new Directive()}); } @@ -1014,7 +1013,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } }, 1, 0, defs); @@ -1042,20 +1041,20 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1080,7 +1079,7 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } }, 1, 0, defs); @@ -1097,13 +1096,13 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - element(1, 'parent'); + Δelement(0, 'parent'); + Δelement(1, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 2); } }, 2, 0, defs); @@ -1120,9 +1119,9 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { element(1, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δelement(1, 'projected'); } + ΔelementEnd(); } }, 2, 0, defs); @@ -1141,21 +1140,21 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { element(1, 'projected'); } - elementEnd(); - elementStart(2, 'comp'); - { element(3, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δelement(1, 'projected'); } + ΔelementEnd(); + ΔelementStart(2, 'comp'); + { Δelement(3, 'projected'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 1); - select(2); - elementProperty(2, 'val', 2); - select(3); - elementProperty(3, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 2); + Δselect(3); + ΔelementProperty(3, 'val', 2); } }, 4, 0, defs); @@ -1171,14 +1170,14 @@ describe('lifecycles', () => { */ const ParentComp = createAfterViewInitComponent('parent', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { element(1, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δelement(1, 'projected'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', bind(ctx.val)); - select(1); - elementProperty(1, 'val', bind(ctx.val)); + ΔelementProperty(0, 'val', Δbind(ctx.val)); + Δselect(1); + ΔelementProperty(1, 'val', Δbind(ctx.val)); } }, 2, 2, [Comp, ProjectedComp]); @@ -1188,13 +1187,13 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - element(1, 'parent'); + Δelement(0, 'parent'); + Δelement(1, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 2); } }, 2, 0, [ParentComp]); @@ -1212,28 +1211,28 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); - container(1); - element(2, 'comp'); + Δelement(0, 'comp'); + Δcontainer(1); + Δelement(2, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(2); - elementProperty(2, 'val', 4); - containerRefreshStart(1); + ΔelementProperty(0, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 4); + ΔcontainerRefreshStart(1); { for (let i = 2; i < 4; i++) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', i); + ΔelementProperty(0, 'val', i); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 0, defs); @@ -1252,28 +1251,28 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - container(1); - element(2, 'parent'); + Δelement(0, 'parent'); + Δcontainer(1); + Δelement(2, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(2); - elementProperty(2, 'val', 4); - containerRefreshStart(1); + ΔelementProperty(0, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 4); + ΔcontainerRefreshStart(1); { for (let i = 2; i < 4; i++) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', i); + ΔelementProperty(0, 'val', i); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 0, defs); @@ -1289,7 +1288,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } }, 1, 0, defs); @@ -1313,10 +1312,10 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', bind(ctx.myVal)); + ΔelementProperty(0, 'val', Δbind(ctx.myVal)); } }, 1, 1, defs); @@ -1338,28 +1337,28 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - container(1); - element(2, 'parent'); + Δelement(0, 'parent'); + Δcontainer(1); + Δelement(2, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(2); - elementProperty(2, 'val', 4); - containerRefreshStart(1); + ΔelementProperty(0, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 4); + ΔcontainerRefreshStart(1); { for (let i = 2; i < 4; i++) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', i); + ΔelementProperty(0, 'val', i); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 0, defs); @@ -1379,7 +1378,7 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp', ['dir', '']); + Δelement(0, 'comp', ['dir', '']); } }, 1, 0, defs); @@ -1391,7 +1390,7 @@ describe('lifecycles', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['dir', '']); + Δelement(0, 'div', ['dir', '']); } }, 1, 0, defs); @@ -1408,8 +1407,8 @@ describe('lifecycles', () => { let Comp = createOnDestroyComponent('comp', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - projectionDef(); - projection(0); + ΔprojectionDef(); + Δprojection(0); } }, 1); let Parent = createOnDestroyComponent('parent', getParentTemplate('comp'), 1, 1, [Comp]); @@ -1421,7 +1420,7 @@ describe('lifecycles', () => { val: string = ''; ngOnDestroy() { events.push(`${name}${this.val}`); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], factory: () => new Component(), @@ -1436,7 +1435,7 @@ describe('lifecycles', () => { let Grandparent = createOnDestroyComponent('grandparent', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } }, 1, 0, [Parent]); @@ -1445,7 +1444,7 @@ describe('lifecycles', () => { class Directive { ngOnDestroy() { events.push('dir'); } - static ngDirectiveDef = defineDirective( + static ngDirectiveDef = ΔdefineDirective( {type: Directive, selectors: [['', 'dir', '']], factory: () => new Directive()}); } @@ -1460,20 +1459,20 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1493,26 +1492,26 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 2, 2); + let rf1 = ΔembeddedViewStart(0, 2, 2); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); - element(1, 'comp'); + Δelement(0, 'comp'); + Δelement(1, 'comp'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', bind('1')); - select(1); - elementProperty(1, 'val', bind('2')); + ΔelementProperty(0, 'val', Δbind('1')); + Δselect(1); + ΔelementProperty(1, 'val', Δbind('2')); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1534,20 +1533,20 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1569,20 +1568,20 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'grandparent'); + Δelement(0, 'grandparent'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1606,34 +1605,34 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (!ctx.skip) { - let rf1 = embeddedViewStart(0, 4, 0); + let rf1 = ΔembeddedViewStart(0, 4, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'comp'); - { element(1, 'projected'); } - elementEnd(); - elementStart(2, 'comp'); - { element(3, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { Δelement(1, 'projected'); } + ΔelementEnd(); + ΔelementStart(2, 'comp'); + { Δelement(3, 'projected'); } + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 1); - select(2); - elementProperty(2, 'val', 2); - select(3); - elementProperty(3, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 1); + Δselect(2); + ΔelementProperty(2, 'val', 2); + Δselect(3); + ΔelementProperty(3, 'val', 2); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1658,41 +1657,41 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 3, 2); + let rf1 = ΔembeddedViewStart(0, 3, 2); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); - container(1); - element(2, 'comp'); + Δelement(0, 'comp'); + Δcontainer(1); + Δelement(2, 'comp'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', bind('1')); - select(2); - elementProperty(2, 'val', bind('3')); - containerRefreshStart(1); + ΔelementProperty(0, 'val', Δbind('1')); + Δselect(2); + ΔelementProperty(2, 'val', Δbind('3')); + ΔcontainerRefreshStart(1); { if (ctx.condition2) { - let rf2 = embeddedViewStart(0, 1, 1); + let rf2 = ΔembeddedViewStart(0, 1, 1); if (rf2 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf2 & RenderFlags.Update) { - elementProperty(0, 'val', bind('2')); + ΔelementProperty(0, 'val', Δbind('2')); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1752,41 +1751,41 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 3, 2); + let rf1 = ΔembeddedViewStart(0, 3, 2); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); - container(1); - element(2, 'comp'); + Δelement(0, 'comp'); + Δcontainer(1); + Δelement(2, 'comp'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val', bind('1')); - select(2); - elementProperty(2, 'val', bind('5')); - containerRefreshStart(1); + ΔelementProperty(0, 'val', Δbind('1')); + Δselect(2); + ΔelementProperty(2, 'val', Δbind('5')); + ΔcontainerRefreshStart(1); { for (let j = 2; j < ctx.len; j++) { - let rf2 = embeddedViewStart(0, 1, 1); + let rf2 = ΔembeddedViewStart(0, 1, 1); if (rf2 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf2 & RenderFlags.Update) { - elementProperty(0, 'val', bind(j)); + ΔelementProperty(0, 'val', Δbind(j)); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1843,32 +1842,32 @@ describe('lifecycles', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 5, 0); + let rf1 = ΔembeddedViewStart(0, 5, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', ctx.onClick.bind(ctx)); - text(1, 'Click me'); + Δlistener('click', ctx.onClick.bind(ctx)); + Δtext(1, 'Click me'); } - elementEnd(); - element(2, 'comp'); - elementStart(3, 'button'); + ΔelementEnd(); + Δelement(2, 'comp'); + ΔelementStart(3, 'button'); { - listener('click', ctx.onClick.bind(ctx)); - text(4, 'Click me'); + Δlistener('click', ctx.onClick.bind(ctx)); + Δtext(4, 'Click me'); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -1903,20 +1902,20 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp', ['dir', '']); + Δelement(0, 'comp', ['dir', '']); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1939,20 +1938,20 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'div', ['dir', '']); + Δelement(0, 'div', ['dir', '']); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -1980,10 +1979,10 @@ describe('lifecycles', () => { */ const Comp = createOnChangesComponent('comp', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - projectionDef(); - elementStart(0, 'div'); - { projection(1); } - elementEnd(); + ΔprojectionDef(); + ΔelementStart(0, 'div'); + { Δprojection(1); } + ΔelementEnd(); } }, 2); @@ -1992,17 +1991,17 @@ describe('lifecycles', () => { */ const Parent = createOnChangesComponent('parent', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(ctx.a)); - elementProperty(0, 'publicVal2', bind(ctx.b)); + ΔelementProperty(0, 'val1', Δbind(ctx.a)); + ΔelementProperty(0, 'publicVal2', Δbind(ctx.b)); } }, 1, 2, [Comp]); const ProjectedComp = createOnChangesComponent('projected', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - text(0, 'content'); + Δtext(0, 'content'); } }, 1); @@ -2027,7 +2026,7 @@ describe('lifecycles', () => { events.push({type: 'onChanges', name: 'comp - ' + name, changes}); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], factory: () => new Component(), @@ -2035,7 +2034,7 @@ describe('lifecycles', () => { vars: vars, inputs: {a: 'val1', b: ['publicVal2', 'val2']}, template, directives: directives, - features: [NgOnChangesFeature()], + features: [ΔNgOnChangesFeature()], }); }; } @@ -2049,12 +2048,12 @@ describe('lifecycles', () => { events.push({type: 'onChanges', name: 'dir - dir', changes}); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Directive, selectors: [['', 'dir', '']], factory: () => new Directive(), inputs: {a: 'val1', b: ['publicVal2', 'val2']}, - features: [NgOnChangesFeature()], + features: [ΔNgOnChangesFeature()], }); } @@ -2064,11 +2063,11 @@ describe('lifecycles', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(ctx.val1)); - elementProperty(0, 'publicVal2', bind(ctx.val2)); + ΔelementProperty(0, 'val1', Δbind(ctx.val1)); + ΔelementProperty(0, 'publicVal2', Δbind(ctx.val2)); } }, 1, 2, defs); @@ -2110,11 +2109,11 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(ctx.val1)); - elementProperty(0, 'publicVal2', bind(ctx.val2)); + ΔelementProperty(0, 'val1', Δbind(ctx.val1)); + ΔelementProperty(0, 'publicVal2', Δbind(ctx.val2)); } }, 1, 2, defs); @@ -2154,15 +2153,15 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - element(1, 'parent'); + Δelement(0, 'parent'); + Δelement(1, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); - select(1); - elementProperty(1, 'val1', bind(2)); - elementProperty(1, 'publicVal2', bind(2)); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); + Δselect(1); + ΔelementProperty(1, 'val1', Δbind(2)); + ΔelementProperty(1, 'publicVal2', Δbind(2)); } }, 2, 4, defs); @@ -2213,24 +2212,24 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 2); + let rf1 = ΔembeddedViewStart(0, 1, 2); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, defs); @@ -2291,16 +2290,16 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { elementStart(1, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { ΔelementStart(1, 'projected'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); - select(1); - elementProperty(1, 'val1', bind(2)); - elementProperty(1, 'publicVal2', bind(2)); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); + Δselect(1); + ΔelementProperty(1, 'val1', Δbind(2)); + ΔelementProperty(1, 'publicVal2', Δbind(2)); } }, 2, 4, defs); @@ -2336,25 +2335,25 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'comp'); - { elementStart(1, 'projected'); } - elementEnd(); - elementStart(2, 'comp'); - { elementStart(3, 'projected'); } - elementEnd(); + ΔelementStart(0, 'comp'); + { ΔelementStart(1, 'projected'); } + ΔelementEnd(); + ΔelementStart(2, 'comp'); + { ΔelementStart(3, 'projected'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); - select(1); - elementProperty(1, 'val1', bind(2)); - elementProperty(1, 'publicVal2', bind(2)); - select(2); - elementProperty(2, 'val1', bind(3)); - elementProperty(2, 'publicVal2', bind(3)); - select(3); - elementProperty(3, 'val1', bind(4)); - elementProperty(3, 'publicVal2', bind(4)); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); + Δselect(1); + ΔelementProperty(1, 'val1', Δbind(2)); + ΔelementProperty(1, 'publicVal2', Δbind(2)); + Δselect(2); + ΔelementProperty(2, 'val1', Δbind(3)); + ΔelementProperty(2, 'publicVal2', Δbind(3)); + Δselect(3); + ΔelementProperty(3, 'val1', Δbind(4)); + ΔelementProperty(3, 'publicVal2', Δbind(4)); } }, 4, 8, defs); @@ -2401,11 +2400,11 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp', ['dir', '']); + Δelement(0, 'comp', ['dir', '']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); } }, 1, 2, defs); @@ -2442,11 +2441,11 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['dir', '']); + Δelement(0, 'div', ['dir', '']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); } }, 1, 2, defs); @@ -2476,31 +2475,31 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); - container(1); - element(2, 'comp'); + Δelement(0, 'comp'); + Δcontainer(1); + Δelement(2, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); - select(2); - elementProperty(2, 'val1', bind(5)); - elementProperty(2, 'publicVal2', bind(5)); - containerRefreshStart(1); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); + Δselect(2); + ΔelementProperty(2, 'val1', Δbind(5)); + ΔelementProperty(2, 'publicVal2', Δbind(5)); + ΔcontainerRefreshStart(1); { for (let j = 2; j < 5; j++) { - let rf1 = embeddedViewStart(0, 1, 2); + let rf1 = ΔembeddedViewStart(0, 1, 2); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val1', bind(j)); - elementProperty(0, 'publicVal2', bind(j)); + ΔelementProperty(0, 'val1', Δbind(j)); + ΔelementProperty(0, 'publicVal2', Δbind(j)); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 4, defs); @@ -2563,31 +2562,31 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - container(1); - element(2, 'parent'); + Δelement(0, 'parent'); + Δcontainer(1); + Δelement(2, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val1', bind(1)); - elementProperty(0, 'publicVal2', bind(1)); - select(2); - elementProperty(2, 'val1', bind(5)); - elementProperty(2, 'publicVal2', bind(5)); - containerRefreshStart(1); + ΔelementProperty(0, 'val1', Δbind(1)); + ΔelementProperty(0, 'publicVal2', Δbind(1)); + Δselect(2); + ΔelementProperty(2, 'val1', Δbind(5)); + ΔelementProperty(2, 'publicVal2', Δbind(5)); + ΔcontainerRefreshStart(1); { for (let j = 2; j < 5; j++) { - let rf1 = embeddedViewStart(0, 1, 2); + let rf1 = ΔembeddedViewStart(0, 1, 2); if (rf1 & RenderFlags.Create) { - element(0, 'parent'); + Δelement(0, 'parent'); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'val1', bind(j)); - elementProperty(0, 'publicVal2', bind(j)); + ΔelementProperty(0, 'val1', Δbind(j)); + ΔelementProperty(0, 'publicVal2', Δbind(j)); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 4, defs); @@ -2687,7 +2686,7 @@ describe('lifecycles', () => { ngOnChanges(changes: SimpleChanges) { events.push(changes); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComp, factory: () => { // Capture the instance so we can test setting the property directly @@ -2696,10 +2695,10 @@ describe('lifecycles', () => { }, template: (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - element(0, 'div'); + Δelement(0, 'div'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind(ctx.a)); + ΔelementProperty(0, 'id', Δbind(ctx.a)); } }, selectors: [['my-comp']], @@ -2717,10 +2716,10 @@ describe('lifecycles', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'my-comp'); + Δelement(0, 'my-comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'value', bind(1)); + ΔelementProperty(0, 'value', Δbind(1)); } }, 1, 1, [MyComp]); @@ -2758,7 +2757,7 @@ describe('lifecycles', () => { ngAfterViewInit() { events.push(`viewInit ${name}${this.val}`); } ngAfterViewChecked() { events.push(`viewCheck ${name}${this.val}`); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], factory: () => new Component(), @@ -2766,7 +2765,7 @@ describe('lifecycles', () => { vars: vars, inputs: {val: 'val'}, template, directives: directives, - features: [NgOnChangesFeature()], + features: [ΔNgOnChangesFeature()], }); }; } @@ -2780,8 +2779,8 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); - element(1, 'comp'); + Δelement(0, 'comp'); + Δelement(1, 'comp'); } // This template function is a little weird in that the `elementProperty` calls // below are directly setting values `1` and `2`, where normally there would be @@ -2789,9 +2788,9 @@ describe('lifecycles', () => { // This means when `fixture.update()` is called below, ngOnChanges should fire, // even though the *value* itself never changed. if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 2); } }, 2, 0, [Comp]); @@ -2816,10 +2815,10 @@ describe('lifecycles', () => { /** */ const Parent = createAllHooksComponent('parent', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', bind(ctx.val)); + ΔelementProperty(0, 'val', Δbind(ctx.val)); } }, 1, 1, [Comp]); @@ -2829,13 +2828,13 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent'); - element(1, 'parent'); + Δelement(0, 'parent'); + Δelement(1, 'parent'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', 1); - select(1); - elementProperty(1, 'val', 2); + ΔelementProperty(0, 'val', 1); + Δselect(1); + ΔelementProperty(1, 'val', 2); } }, 2, 0, [Parent]); @@ -2873,13 +2872,13 @@ describe('lifecycles', () => { /** */ const Parent = createAllHooksComponent('parent', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - projectionDef(); - projection(0); - element(1, 'view'); + ΔprojectionDef(); + Δprojection(0); + Δelement(1, 'view'); } if (rf & RenderFlags.Update) { - select(1); - elementProperty(1, 'val', bind(ctx.val)); + Δselect(1); + ΔelementProperty(1, 'val', Δbind(ctx.val)); } }, 2, 1, [View]); @@ -2893,21 +2892,21 @@ describe('lifecycles', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'parent'); - { element(1, 'content'); } - elementEnd(); - elementStart(2, 'parent'); - { element(3, 'content'); } - elementEnd(); + ΔelementStart(0, 'parent'); + { Δelement(1, 'content'); } + ΔelementEnd(); + ΔelementStart(2, 'parent'); + { Δelement(3, 'content'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'val', bind(1)); - select(1); - elementProperty(1, 'val', bind(1)); - select(2); - elementProperty(2, 'val', bind(2)); - select(3); - elementProperty(3, 'val', bind(2)); + ΔelementProperty(0, 'val', Δbind(1)); + Δselect(1); + ΔelementProperty(1, 'val', Δbind(1)); + Δselect(2); + ΔelementProperty(2, 'val', Δbind(2)); + Δselect(3); + ΔelementProperty(3, 'val', Δbind(2)); } }, 4, 4, [Parent, Content]); @@ -2958,7 +2957,7 @@ describe('lifecycles', () => { class OnDestroyDirective implements OnDestroy { ngOnDestroy() { destroyed = true; } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: OnDestroyDirective, selectors: [['', 'onDestroyDirective', '']], factory: () => new OnDestroyDirective() @@ -2968,7 +2967,7 @@ describe('lifecycles', () => { function conditionTpl(rf: RenderFlags, ctx: Cmpt) { if (rf & RenderFlags.Create) { - template(0, null, 0, 1, 'ng-template', [AttributeMarker.Bindings, 'onDestroyDirective']); + Δtemplate(0, null, 0, 1, 'ng-template', [AttributeMarker.Bindings, 'onDestroyDirective']); } } @@ -2979,16 +2978,16 @@ describe('lifecycles', () => { */ function cmptTpl(rf: RenderFlags, cmpt: Cmpt) { if (rf & RenderFlags.Create) { - template(0, conditionTpl, 1, 1, 'ng-template', [AttributeMarker.Bindings, 'ngIf']); + Δtemplate(0, conditionTpl, 1, 1, 'ng-template', [AttributeMarker.Bindings, 'ngIf']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngIf', bind(cmpt.showing)); + ΔelementProperty(0, 'ngIf', Δbind(cmpt.showing)); } } class Cmpt { showing = true; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Cmpt, factory: () => new Cmpt(), selectors: [['cmpt']], diff --git a/packages/core/test/render3/listeners_spec.ts b/packages/core/test/render3/listeners_spec.ts index 75468d3a5f..b37695351e 100644 --- a/packages/core/test/render3/listeners_spec.ts +++ b/packages/core/test/render3/listeners_spec.ts @@ -8,11 +8,11 @@ import {dispatchEvent} from '@angular/platform-browser/testing/src/browser_util'; -import {bind, defineComponent, defineDirective, markDirty, reference, resolveBody, resolveDocument, textBinding} from '../../src/render3/index'; -import {container, containerRefreshEnd, containerRefreshStart, element, elementEnd, elementStart, embeddedViewEnd, embeddedViewStart, getCurrentView, listener, text} from '../../src/render3/instructions/all'; +import {markDirty, Δbind, ΔdefineComponent, ΔdefineDirective, Δreference, ΔresolveBody, ΔresolveDocument, ΔtextBinding} from '../../src/render3/index'; +import {Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, Δelement, ΔelementEnd, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, ΔgetCurrentView, Δlistener, Δtext} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {GlobalTargetResolver} from '../../src/render3/interfaces/renderer'; -import {restoreView} from '../../src/render3/state'; +import {ΔrestoreView} from '../../src/render3/state'; import {getRendererFactory2} from './imported_renderer2'; import {ComponentFixture, TemplateFixture, containerEl, createComponent, getDirectiveOnNode, renderToHtml, requestAnimationFrame} from './render_util'; @@ -28,7 +28,7 @@ describe('event listeners', () => { onClick() { this.counter++; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComp, selectors: [['comp']], consts: 2, @@ -36,12 +36,12 @@ describe('event listeners', () => { /** */ template: function CompTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(); }); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } }, factory: () => { @@ -59,14 +59,14 @@ describe('event listeners', () => { /* @HostListener('body:click') */ onBodyClick() { events.push('component - body:click'); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyCompWithGlobalListeners, selectors: [['comp']], consts: 1, vars: 0, template: function CompTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'Some text'); + Δtext(0, 'Some text'); } }, factory: () => { @@ -77,12 +77,12 @@ describe('event listeners', () => { hostBindings: function HostListenerDir_HostBindings( rf: RenderFlags, ctx: any, elIndex: number) { if (rf & RenderFlags.Create) { - listener('custom', function() { + Δlistener('custom', function() { return ctx.onDocumentCustomEvent(); - }, false, resolveDocument as GlobalTargetResolver); - listener('click', function() { + }, false, ΔresolveDocument as GlobalTargetResolver); + Δlistener('click', function() { return ctx.onBodyClick(); - }, false, resolveBody as GlobalTargetResolver); + }, false, ΔresolveBody as GlobalTargetResolver); } } }); @@ -95,19 +95,19 @@ describe('event listeners', () => { /* @HostListener('body:click') */ onBodyClick() { events.push('directive - body:click'); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: GlobalHostListenerDir, selectors: [['', 'hostListenerDir', '']], factory: function HostListenerDir_Factory() { return new GlobalHostListenerDir(); }, hostBindings: function HostListenerDir_HostBindings( rf: RenderFlags, ctx: any, elIndex: number) { if (rf & RenderFlags.Create) { - listener('custom', function() { + Δlistener('custom', function() { return ctx.onDocumentCustomEvent(); - }, false, resolveDocument as GlobalTargetResolver); - listener('click', function() { + }, false, ΔresolveDocument as GlobalTargetResolver); + Δlistener('click', function() { return ctx.onBodyClick(); - }, false, resolveBody as GlobalTargetResolver); + }, false, ΔresolveBody as GlobalTargetResolver); } } }); @@ -129,7 +129,7 @@ describe('event listeners', () => { return this.handlerReturnValue; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: PreventDefaultComp, selectors: [['prevent-default-comp']], factory: () => new PreventDefaultComp(), @@ -138,12 +138,12 @@ describe('event listeners', () => { /** */ template: (rf: RenderFlags, ctx: PreventDefaultComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function($event: any) { return ctx.onClick($event); }); - text(1, 'Click'); + Δlistener('click', function($event: any) { return ctx.onClick($event); }); + Δtext(1, 'Click'); } - elementEnd(); + ΔelementEnd(); } } }); @@ -205,15 +205,15 @@ describe('event listeners', () => { /** */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { + Δlistener('click', function() { ctx.onClick(); return ctx.onClick2(); }); - text(1, 'Click me'); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } } @@ -240,12 +240,12 @@ describe('event listeners', () => { /** */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.showing = !ctx.showing; }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.showing = !ctx.showing; }); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } } @@ -269,24 +269,24 @@ describe('event listeners', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.showing) { - if (embeddedViewStart(1, 2, 0)) { - elementStart(0, 'button'); + if (ΔembeddedViewStart(1, 2, 0)) { + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(); }); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -320,7 +320,7 @@ describe('event listeners', () => { onClick() { this.counter++; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppComp, selectors: [['app-comp']], factory: () => new AppComp(), @@ -328,24 +328,24 @@ describe('event listeners', () => { vars: 0, template: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.showing) { - if (embeddedViewStart(0, 2, 0)) { - elementStart(0, 'button'); + if (ΔembeddedViewStart(0, 2, 0)) { + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(); }); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } }); @@ -381,7 +381,7 @@ describe('event listeners', () => { onClick(index: number) { this.counters[index]++; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppComp, selectors: [['app-comp']], factory: () => new AppComp(), @@ -389,24 +389,24 @@ describe('event listeners', () => { vars: 0, template: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { for (let i = 0; i < ctx.buttons; i++) { - if (embeddedViewStart(0, 2, 0)) { - elementStart(0, 'button'); + if (ΔembeddedViewStart(0, 2, 0)) { + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(i); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(i); }); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } }); @@ -445,7 +445,7 @@ describe('event listeners', () => { onClick(index: number) { this.counters[index]++; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppComp, selectors: [['app-comp']], factory: () => new AppComp(), @@ -453,31 +453,31 @@ describe('event listeners', () => { vars: 0, template: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { for (let i = 0; i < ctx.buttons; i++) { - const rf1 = embeddedViewStart(1, 4, 1); + const rf1 = ΔembeddedViewStart(1, 4, 1); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(i); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(i); }); + Δtext(1, 'Click me'); } - elementEnd(); - elementStart(2, 'div'); - { text(3); } - elementEnd(); + ΔelementEnd(); + ΔelementStart(2, 'div'); + { Δtext(3); } + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - textBinding(3, bind(ctx.counters[i])); + ΔtextBinding(3, Δbind(ctx.counters[i])); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } }); @@ -523,21 +523,21 @@ describe('event listeners', () => { /* @HostListener('click') */ onClick() { events.push('click!'); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComp, selectors: [['comp']], consts: 1, vars: 0, template: function CompTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'Some text'); + Δtext(0, 'Some text'); } }, factory: () => { return new MyComp(); }, hostBindings: function HostListenerDir_HostBindings( rf: RenderFlags, ctx: any, elIndex: number) { if (rf & RenderFlags.Create) { - listener('click', function() { return ctx.onClick(); }); + Δlistener('click', function() { return ctx.onClick(); }); } } }); @@ -574,23 +574,23 @@ describe('event listeners', () => { /* @HostListener('click') */ onClick() { events.push('click!'); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: HostListenerDir, selectors: [['', 'hostListenerDir', '']], factory: function HostListenerDir_Factory() { return new HostListenerDir(); }, hostBindings: function HostListenerDir_HostBindings( rf: RenderFlags, ctx: any, elIndex: number) { if (rf & RenderFlags.Create) { - listener('click', function() { return ctx.onClick(); }); + Δlistener('click', function() { return ctx.onClick(); }); } } }); } const fixture = new TemplateFixture(() => { - elementStart(0, 'button', ['hostListenerDir', '']); - text(1, 'Click'); - elementEnd(); + ΔelementStart(0, 'button', ['hostListenerDir', '']); + Δtext(1, 'Click'); + ΔelementEnd(); }, () => {}, 2, 0, [HostListenerDir]); const button = fixture.hostElement.querySelector('button') !; @@ -604,7 +604,7 @@ describe('event listeners', () => { it('should support global host listeners on directives', () => { const fixture = new TemplateFixture(() => { - element(0, 'div', ['hostListenerDir', '']); + Δelement(0, 'div', ['hostListenerDir', '']); }, () => {}, 1, 0, [GlobalHostListenerDir]); const doc = fixture.hostElement.ownerDocument !; @@ -626,7 +626,7 @@ describe('event listeners', () => { onClick(a: any, b: any) { this.counter += a + b; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComp, selectors: [['comp']], consts: 2, @@ -634,12 +634,12 @@ describe('event listeners', () => { /** */ template: function CompTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(ctx.data.a, ctx.data.b); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(ctx.data.a, ctx.data.b); }); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } }, factory: () => new MyComp() @@ -669,39 +669,39 @@ describe('event listeners', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.showing) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - text(0, 'Hello'); - container(1); + Δtext(0, 'Hello'); + Δcontainer(1); } if (rf1 & RenderFlags.Update) { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { if (ctx.button) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(); }); - text(1, 'Click'); + Δlistener('click', function() { return ctx.onClick(); }); + Δtext(1, 'Click'); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -733,22 +733,22 @@ describe('event listeners', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.showing) { - let rf1 = embeddedViewStart(0, 3, 0); + let rf1 = ΔembeddedViewStart(0, 3, 0); if (rf1 & RenderFlags.Create) { - text(0, 'Hello'); - element(1, 'comp'); - element(2, 'comp'); + Δtext(0, 'Hello'); + Δelement(1, 'comp'); + Δelement(2, 'comp'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -775,19 +775,19 @@ describe('event listeners', () => { const ctx = {showing: true}; const fixture = new TemplateFixture( - () => { container(0); }, + () => { Δcontainer(0); }, () => { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.showing) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); }, 1, 0, [MyCompWithGlobalListeners]); @@ -820,56 +820,56 @@ describe('event listeners', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 3, 0); + let rf1 = ΔembeddedViewStart(0, 3, 0); if (rf1 & RenderFlags.Create) { - text(0, 'Hello'); - container(1); - container(2); + Δtext(0, 'Hello'); + Δcontainer(1); + Δcontainer(2); } if (rf1 & RenderFlags.Update) { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { if (ctx.sub1) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.counter1++; }); - text(1, 'Click'); + Δlistener('click', function() { return ctx.counter1++; }); + Δtext(1, 'Click'); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); - containerRefreshStart(2); + ΔcontainerRefreshEnd(); + ΔcontainerRefreshStart(2); { if (ctx.sub2) { - let rf1 = embeddedViewStart(0, 2, 0); + let rf1 = ΔembeddedViewStart(0, 2, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.counter2++; }); - text(1, 'Click'); + Δlistener('click', function() { return ctx.counter2++; }); + Δtext(1, 'Click'); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -907,7 +907,7 @@ describe('event listeners', () => { onClick(comp: any) { this.comp = comp; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: App, selectors: [['app']], factory: () => new App(), @@ -915,17 +915,17 @@ describe('event listeners', () => { vars: 0, template: (rf: RenderFlags, ctx: App) => { if (rf & RenderFlags.Create) { - const state = getCurrentView(); - element(0, 'comp', null, ['comp', '']); - elementStart(2, 'button'); + const state = ΔgetCurrentView(); + Δelement(0, 'comp', null, ['comp', '']); + ΔelementStart(2, 'button'); { - listener('click', function() { - restoreView(state); - const comp = reference(1); + Δlistener('click', function() { + ΔrestoreView(state); + const comp = Δreference(1); return ctx.onClick(comp); }); } - elementEnd(); + ΔelementEnd(); } // testing only diff --git a/packages/core/test/render3/outputs_spec.ts b/packages/core/test/render3/outputs_spec.ts index af3754ff97..17ec22575d 100644 --- a/packages/core/test/render3/outputs_spec.ts +++ b/packages/core/test/render3/outputs_spec.ts @@ -8,8 +8,8 @@ import {EventEmitter} from '@angular/core'; -import {defineComponent, defineDirective} from '../../src/render3/index'; -import {bind, container, containerRefreshEnd, containerRefreshStart, element, elementEnd, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, listener, text} from '../../src/render3/instructions/all'; +import {ΔdefineComponent, ΔdefineDirective} from '../../src/render3/index'; +import {Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, Δelement, ΔelementEnd, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δlistener, Δtext} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {containerEl, renderToHtml} from './render_util'; @@ -23,7 +23,7 @@ describe('outputs', () => { change = new EventEmitter(); resetStream = new EventEmitter(); - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ButtonToggle, selectors: [['button-toggle']], template: function(rf: RenderFlags, ctx: any) {}, @@ -39,7 +39,7 @@ describe('outputs', () => { class OtherDir { changeStream = new EventEmitter(); - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: OtherDir, selectors: [['', 'otherDir', '']], factory: () => otherDir = new OtherDir, @@ -51,7 +51,7 @@ describe('outputs', () => { events: string[] = []; ngOnDestroy() { this.events.push('destroy'); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: DestroyComp, selectors: [['destroy-comp']], consts: 0, @@ -65,7 +65,7 @@ describe('outputs', () => { class MyButton { click = new EventEmitter(); - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyButton, selectors: [['', 'myButton', '']], factory: () => buttonDir = new MyButton, @@ -80,11 +80,11 @@ describe('outputs', () => { /** */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button-toggle'); + ΔelementStart(0, 'button-toggle'); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); + ΔelementEnd(); } } @@ -103,12 +103,12 @@ describe('outputs', () => { /** */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button-toggle'); + ΔelementStart(0, 'button-toggle'); { - listener('change', function() { return ctx.onChange(); }); - listener('reset', function() { return ctx.onReset(); }); + Δlistener('change', function() { return ctx.onChange(); }); + Δlistener('reset', function() { return ctx.onReset(); }); } - elementEnd(); + ΔelementEnd(); } } @@ -128,11 +128,11 @@ describe('outputs', () => { /** */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button-toggle'); + ΔelementStart(0, 'button-toggle'); { - listener('change', function() { return ctx.counter++; }); + Δlistener('change', function() { return ctx.counter++; }); } - elementEnd(); + ΔelementEnd(); } } @@ -155,24 +155,24 @@ describe('outputs', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button-toggle'); + ΔelementStart(0, 'button-toggle'); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -201,35 +201,35 @@ describe('outputs', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - container(0); + Δcontainer(0); } - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition2) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button-toggle'); + ΔelementStart(0, 'button-toggle'); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); - embeddedViewEnd(); + ΔcontainerRefreshEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -257,31 +257,31 @@ describe('outputs', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 4, 0); + let rf1 = ΔembeddedViewStart(0, 4, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(); }); + Δtext(1, 'Click me'); } - elementEnd(); - elementStart(2, 'button-toggle'); + ΔelementEnd(); + ΔelementStart(2, 'button-toggle'); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); - element(3, 'destroy-comp'); + ΔelementEnd(); + Δelement(3, 'destroy-comp'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -313,11 +313,11 @@ describe('outputs', () => { it('should fire event listeners along with outputs if they match', () => { function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button', ['myButton', '']); + ΔelementStart(0, 'button', ['myButton', '']); { - listener('click', function() { return ctx.onClick(); }); + Δlistener('click', function() { return ctx.onClick(); }); } - elementEnd(); + ΔelementEnd(); } } @@ -338,11 +338,11 @@ describe('outputs', () => { /** */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button-toggle', ['otherDir', '']); + ΔelementStart(0, 'button-toggle', ['otherDir', '']); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); + ΔelementEnd(); } } @@ -363,7 +363,7 @@ describe('outputs', () => { // TODO(issue/24571): remove '!'. change !: boolean; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: OtherChangeDir, selectors: [['', 'otherChangeDir', '']], factory: () => otherDir = new OtherChangeDir, @@ -374,14 +374,14 @@ describe('outputs', () => { /** */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button-toggle', ['otherChangeDir', '']); + ΔelementStart(0, 'button-toggle', ['otherChangeDir', '']); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'change', bind(ctx.change)); + ΔelementProperty(0, 'change', Δbind(ctx.change)); } } @@ -409,39 +409,39 @@ describe('outputs', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(); }); + Δtext(1, 'Click me'); } - elementEnd(); - container(2); + ΔelementEnd(); + Δcontainer(2); } if (rf & RenderFlags.Update) { - containerRefreshStart(2); + ΔcontainerRefreshStart(2); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button-toggle'); + ΔelementStart(0, 'button-toggle'); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } else { - if (embeddedViewStart(1, 1, 0)) { - elementStart(0, 'div', ['otherDir', '']); + if (ΔembeddedViewStart(1, 1, 0)) { + ΔelementStart(0, 'div', ['otherDir', '']); { - listener('change', function() { return ctx.onChange(); }); + Δlistener('change', function() { return ctx.onChange(); }); } - elementEnd(); + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } diff --git a/packages/core/test/render3/pipe_spec.ts b/packages/core/test/render3/pipe_spec.ts index 06da5ce61d..5f1ff5ae63 100644 --- a/packages/core/test/render3/pipe_spec.ts +++ b/packages/core/test/render3/pipe_spec.ts @@ -6,14 +6,14 @@ * found in the LICENSE file at https://angular.io/license */ -import {Directive as _Directive, InjectionToken, OnChanges, OnDestroy, Pipe as _Pipe, PipeTransform, WrappedValue, defineInjectable, defineInjector, ɵNgModuleDef as NgModuleDef, ɵdefineComponent as defineComponent, ɵdirectiveInject as directiveInject} from '@angular/core'; +import {Directive as _Directive, InjectionToken, OnChanges, OnDestroy, Pipe as _Pipe, PipeTransform, WrappedValue, ɵNgModuleDef as NgModuleDef, ΔdefineComponent as defineComponent, ΔdefineInjectable, ΔdefineInjector, ΔdirectiveInject as directiveInject} from '@angular/core'; import {expect} from '@angular/platform-browser/testing/src/matchers'; import {createInjector} from '../../src/di/r3_injector'; -import {defineDirective, definePipe} from '../../src/render3/definition'; -import {bind, container, containerRefreshEnd, containerRefreshStart, elementEnd, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, interpolation1, load, text, textBinding} from '../../src/render3/instructions/all'; +import {ΔdefineDirective, ΔdefinePipe} from '../../src/render3/definition'; +import {Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, ΔelementEnd, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δinterpolation1, Δload, Δtext, ΔtextBinding} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; -import {pipe, pipeBind1, pipeBind3, pipeBind4, pipeBindV} from '../../src/render3/pipe'; +import {Δpipe, ΔpipeBind1, ΔpipeBind3, ΔpipeBind4, ΔpipeBindV} from '../../src/render3/pipe'; import {RenderLog, getRendererFactory2, patchLoggingRenderer2} from './imported_renderer2'; import {ComponentFixture, TemplateFixture, createComponent, getDirectiveOnNode, renderToHtml} from './render_util'; @@ -46,11 +46,11 @@ describe('pipe', () => { it('should support interpolation', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - text(0); - pipe(1, 'countingPipe'); + Δtext(0); + Δpipe(1, 'countingPipe'); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', pipeBind1(1, 1, person.name), '')); + ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, person.name), '')); } } @@ -61,11 +61,11 @@ describe('pipe', () => { it('should throw if pipe is not found', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0); - pipe(1, 'randomPipeName'); + Δtext(0); + Δpipe(1, 'randomPipeName'); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', pipeBind1(1, 1, ctx.value), '')); + ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, ctx.value), '')); } }, 2, 3, [], pipes); @@ -83,7 +83,7 @@ describe('pipe', () => { constructor() { this.dirProp = ''; } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir, selectors: [['', 'myDir', '']], factory: () => new MyDir(), @@ -95,7 +95,7 @@ describe('pipe', () => { class DoublePipe implements PipeTransform { transform(value: any) { return `${value}${value}`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'double', type: DoublePipe, factory: function DoublePipe_Factory() { return new DoublePipe(); }, @@ -104,12 +104,12 @@ describe('pipe', () => { function Template(rf: RenderFlags, ctx: string) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['myDir', '']); - pipe(1, 'double'); - elementEnd(); + ΔelementStart(0, 'div', ['myDir', '']); + Δpipe(1, 'double'); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'elprop', bind(pipeBind1(1, 1, ctx))); + ΔelementProperty(0, 'elprop', Δbind(ΔpipeBind1(1, 1, ctx))); directive = getDirectiveOnNode(0); } } @@ -120,12 +120,13 @@ describe('pipe', () => { it('should support arguments in pipes', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - text(0); - pipe(1, 'multiArgPipe'); + Δtext(0); + Δpipe(1, 'multiArgPipe'); } if (rf & RenderFlags.Update) { - textBinding( - 0, interpolation1('', pipeBind3(1, 1, person.name, 'one', person.address !.city), '')); + ΔtextBinding( + 0, + Δinterpolation1('', ΔpipeBind3(1, 1, person.name, 'one', person.address !.city), '')); } } @@ -136,14 +137,14 @@ describe('pipe', () => { it('should support calling pipes with different number of arguments', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - text(0); - pipe(1, 'multiArgPipe'); - pipe(2, 'multiArgPipe'); + Δtext(0); + Δpipe(1, 'multiArgPipe'); + Δpipe(2, 'multiArgPipe'); } if (rf & RenderFlags.Update) { - textBinding( - 0, interpolation1( - '', pipeBind4(2, 5, pipeBindV(1, 1, [person.name, 'a', 'b']), 0, 1, 2), '')); + ΔtextBinding( + 0, Δinterpolation1( + '', ΔpipeBind4(2, 5, ΔpipeBindV(1, 1, [person.name, 'a', 'b']), 0, 1, 2), '')); } } @@ -156,7 +157,7 @@ describe('pipe', () => { class IdentityPipe implements PipeTransform { transform(value: any) { return value; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'identityPipe', type: IdentityPipe, factory: function IdentityPipe_Factory() { return new IdentityPipe(); }, @@ -165,12 +166,12 @@ describe('pipe', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - pipe(1, 'identityPipe'); - elementEnd(); + ΔelementStart(0, 'div'); + Δpipe(1, 'identityPipe'); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind(pipeBind1(1, 1, 'Megatron'))); + ΔelementProperty(0, 'id', Δbind(ΔpipeBind1(1, 1, 'Megatron'))); } } @@ -185,11 +186,11 @@ describe('pipe', () => { it('should support duplicates by using the later entry', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - text(0); - pipe(1, 'duplicatePipe'); + Δtext(0); + Δpipe(1, 'duplicatePipe'); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', pipeBind1(1, 1, person.name), '')); + ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, person.name), '')); } } @@ -201,11 +202,11 @@ describe('pipe', () => { it('should call pure pipes only if the arguments change', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - text(0); - pipe(1, 'countingPipe'); + Δtext(0); + Δpipe(1, 'countingPipe'); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', pipeBind1(1, 1, person.name), '')); + ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, person.name), '')); } } @@ -230,11 +231,11 @@ describe('pipe', () => { it('should call impure pipes on each change detection run', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - text(0); - pipe(1, 'countingImpurePipe'); + Δtext(0); + Δpipe(1, 'countingImpurePipe'); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', pipeBind1(1, 1, person.name), '')); + ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, person.name), '')); } } @@ -246,37 +247,37 @@ describe('pipe', () => { it('should not cache impure pipes', () => { function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - pipe(1, 'countingImpurePipe'); - elementEnd(); - elementStart(2, 'div'); - pipe(3, 'countingImpurePipe'); - elementEnd(); - container(4); + ΔelementStart(0, 'div'); + Δpipe(1, 'countingImpurePipe'); + ΔelementEnd(); + ΔelementStart(2, 'div'); + Δpipe(3, 'countingImpurePipe'); + ΔelementEnd(); + Δcontainer(4); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind(pipeBind1(1, 2, true))); - elementProperty(2, 'id', bind(pipeBind1(3, 4, true))); - pipeInstances.push(load(1), load(3)); - containerRefreshStart(4); + ΔelementProperty(0, 'id', Δbind(ΔpipeBind1(1, 2, true))); + ΔelementProperty(2, 'id', Δbind(ΔpipeBind1(3, 4, true))); + pipeInstances.push(Δload(1), Δload(3)); + ΔcontainerRefreshStart(4); { for (let i of [1, 2]) { - let rf1 = embeddedViewStart(1, 2, 3); + let rf1 = ΔembeddedViewStart(1, 2, 3); { if (rf1 & RenderFlags.Create) { - elementStart(0, 'div'); - pipe(1, 'countingImpurePipe'); - elementEnd(); + ΔelementStart(0, 'div'); + Δpipe(1, 'countingImpurePipe'); + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'id', bind(pipeBind1(1, 1, true))); - pipeInstances.push(load(1)); + ΔelementProperty(0, 'id', Δbind(ΔpipeBind1(1, 1, true))); + pipeInstances.push(Δload(1)); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } @@ -300,7 +301,7 @@ describe('pipe', () => { transform(value: any): any { return null; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'pipeWithOnDestroy', type: PipeWithOnDestroy, factory: function PipeWithOnDestroy_Factory() { return new PipeWithOnDestroy(); }, @@ -310,26 +311,26 @@ describe('pipe', () => { it('should call ngOnDestroy on pipes', () => { function Template(rf: RenderFlags, person: Person) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (person.age > 20) { - let rf1 = embeddedViewStart(1, 2, 3); + let rf1 = ΔembeddedViewStart(1, 2, 3); { if (rf1 & RenderFlags.Create) { - text(0); - pipe(1, 'pipeWithOnDestroy'); + Δtext(0); + Δpipe(1, 'pipeWithOnDestroy'); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', pipeBind1(1, 1, person.age), '')); + ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, person.age), '')); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } const pipes = [PipeWithOnDestroy]; @@ -362,11 +363,11 @@ describe('pipe', () => { title = 'ServiceB Title'; static ngInjectableDef = - defineInjectable({providedIn: 'root', factory: () => new ServiceB()}); + ΔdefineInjectable({providedIn: 'root', factory: () => new ServiceB()}); } class ModuleA { - static ngInjectorDef = defineInjector({factory: () => new ModuleA(), providers: [ServiceA]}); + static ngInjectorDef = ΔdefineInjector({factory: () => new ModuleA(), providers: [ServiceA]}); static ngModuleDef: NgModuleDef = { bootstrap: [] } as any; } @@ -376,7 +377,7 @@ describe('pipe', () => { transform(value: string): string { return `${value} - ${this.obj.title}`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'myConcatPipe', type: MyConcatPipe, factory: () => new MyConcatPipe(directiveInject(InjectionType)), @@ -398,11 +399,11 @@ describe('pipe', () => { // '{{ title | myConcatPipe }}' template: (rf: RenderFlags, ctx: MyComponent) => { if (rf & 1) { - text(0); - pipe(1, 'myConcatPipe'); + Δtext(0); + Δpipe(1, 'myConcatPipe'); } if (rf & 2) { - textBinding(0, interpolation1('', pipeBind1(1, 1, ctx.title), '')); + ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, ctx.title), '')); } }, ...overrides @@ -438,7 +439,7 @@ describe('pipe', () => { class WrappingPipe implements PipeTransform { transform(value: any) { return new WrappedValue('Bar'); } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'wrappingPipe', type: WrappingPipe, factory: function WrappingPipe_Factory() { return new WrappingPipe(); }, @@ -447,11 +448,11 @@ describe('pipe', () => { } function createTemplate() { - text(0); - pipe(1, 'wrappingPipe'); + Δtext(0); + Δpipe(1, 'wrappingPipe'); } - function updateTemplate() { textBinding(0, interpolation1('', pipeBind1(1, 1, null), '')); } + function updateTemplate() { ΔtextBinding(0, Δinterpolation1('', ΔpipeBind1(1, 1, null), '')); } it('should unwrap', () => { const fixture = @@ -480,7 +481,7 @@ class CountingPipe implements PipeTransform { transform(value: any) { return `${value} state:${this.state++}`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'countingPipe', type: CountingPipe, factory: function CountingPipe_Factory() { return new CountingPipe(); }, @@ -493,7 +494,7 @@ class CountingImpurePipe implements PipeTransform { transform(value: any) { return `${value} state:${this.state++}`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'countingImpurePipe', type: CountingImpurePipe, factory: function CountingImpurePipe_Factory() { return new CountingImpurePipe(); }, @@ -507,7 +508,7 @@ class MultiArgPipe implements PipeTransform { return `${value} ${arg1} ${arg2} ${arg3}`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'multiArgPipe', type: MultiArgPipe, factory: function MultiArgPipe_Factory() { return new MultiArgPipe(); }, @@ -518,7 +519,7 @@ class MultiArgPipe implements PipeTransform { class DuplicatePipe1 implements PipeTransform { transform(value: any) { return `${value} from duplicate 1`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'duplicatePipe', type: DuplicatePipe1, factory: function DuplicatePipe1_Factory() { return new DuplicatePipe1(); }, @@ -529,7 +530,7 @@ class DuplicatePipe1 implements PipeTransform { class DuplicatePipe2 implements PipeTransform { transform(value: any) { return `${value} from duplicate 2`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'duplicatePipe', type: DuplicatePipe2, factory: function DuplicatePipe2_Factory() { return new DuplicatePipe2(); }, diff --git a/packages/core/test/render3/properties_spec.ts b/packages/core/test/render3/properties_spec.ts index bc37727ecc..fc28b0d203 100644 --- a/packages/core/test/render3/properties_spec.ts +++ b/packages/core/test/render3/properties_spec.ts @@ -8,8 +8,8 @@ import {EventEmitter} from '@angular/core'; -import {defineComponent, defineDirective} from '../../src/render3/index'; -import {bind, container, containerRefreshEnd, containerRefreshStart, element, elementEnd, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, interpolation1, listener, load, reference, text, textBinding} from '../../src/render3/instructions/all'; +import {ΔdefineComponent, ΔdefineDirective} from '../../src/render3/index'; +import {Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, Δelement, ΔelementEnd, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δinterpolation1, Δlistener, Δload, Δreference, Δtext, ΔtextBinding} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {ComponentFixture, createComponent, renderToHtml} from './render_util'; @@ -19,10 +19,10 @@ describe('elementProperty', () => { it('should support bindings to properties', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'span'); + Δelement(0, 'span'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind(ctx.id)); + ΔelementProperty(0, 'id', Δbind(ctx.id)); } }, 1, 1); @@ -47,8 +47,8 @@ describe('elementProperty', () => { function Template(rf: RenderFlags, ctx: string) { if (rf & RenderFlags.Create) { - element(0, 'span'); - elementProperty(0, 'id', expensive(ctx)); + Δelement(0, 'span'); + ΔelementProperty(0, 'id', expensive(ctx)); } } @@ -59,10 +59,10 @@ describe('elementProperty', () => { it('should support interpolation for properties', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'span'); + Δelement(0, 'span'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', interpolation1('_', ctx.id, '_')); + ΔelementProperty(0, 'id', Δinterpolation1('_', ctx.id, '_')); } }, 1, 1); @@ -86,7 +86,7 @@ describe('elementProperty', () => { // TODO(issue/24571): remove '!'. disabled !: boolean; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyButton, selectors: [['', 'myButton', '']], factory: () => button = new MyButton(), @@ -99,7 +99,7 @@ describe('elementProperty', () => { id !: number; clickStream = new EventEmitter(); - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: OtherDir, selectors: [['', 'otherDir', '']], factory: () => otherDir = new OtherDir(), @@ -112,7 +112,7 @@ describe('elementProperty', () => { // TODO(issue/24571): remove '!'. disabled !: boolean; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: OtherDisabledDir, selectors: [['', 'otherDisabledDir', '']], factory: () => otherDisabledDir = new OtherDisabledDir(), @@ -124,7 +124,7 @@ describe('elementProperty', () => { // TODO(issue/24571): remove '!'. idNumber !: string; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: IdDir, selectors: [['', 'idDir', '']], factory: () => idDir = new IdDir(), @@ -140,13 +140,13 @@ describe('elementProperty', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button', ['otherDir', '', 'myButton', '']); - { text(1, 'Click me'); } - elementEnd(); + ΔelementStart(0, 'button', ['otherDir', '', 'myButton', '']); + { Δtext(1, 'Click me'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'disabled', bind(ctx.isDisabled)); - elementProperty(0, 'id', bind(ctx.id)); + ΔelementProperty(0, 'disabled', Δbind(ctx.isDisabled)); + ΔelementProperty(0, 'id', Δbind(ctx.id)); } }, 2, 2, deps); @@ -171,13 +171,13 @@ describe('elementProperty', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button', ['myButton', '']); - { text(1, 'Click me'); } - elementEnd(); + ΔelementStart(0, 'button', ['myButton', '']); + { Δtext(1, 'Click me'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'disabled', bind(ctx.isDisabled)); - elementProperty(0, 'id', bind(ctx.id)); + ΔelementProperty(0, 'disabled', Δbind(ctx.isDisabled)); + ΔelementProperty(0, 'id', Δbind(ctx.id)); } }, 2, 2, deps); @@ -203,7 +203,7 @@ describe('elementProperty', () => { // TODO(issue/24571): remove '!'. id !: number; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, selectors: [['comp']], consts: 0, @@ -217,10 +217,10 @@ describe('elementProperty', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind(ctx.id)); + ΔelementProperty(0, 'id', Δbind(ctx.id)); } }, 1, 1, [Comp]); @@ -241,12 +241,12 @@ describe('elementProperty', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button', ['myButton', '', 'otherDisabledDir', '']); - { text(1, 'Click me'); } - elementEnd(); + ΔelementStart(0, 'button', ['myButton', '', 'otherDisabledDir', '']); + { Δtext(1, 'Click me'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'disabled', bind(ctx.isDisabled)); + ΔelementProperty(0, 'disabled', Δbind(ctx.isDisabled)); } }, 2, 1, deps); @@ -268,15 +268,15 @@ describe('elementProperty', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button', ['otherDir', '']); + ΔelementStart(0, 'button', ['otherDir', '']); { - listener('click', () => ctx.onClick()); - text(1, 'Click me'); + Δlistener('click', () => ctx.onClick()); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind(ctx.id)); + ΔelementProperty(0, 'id', Δbind(ctx.id)); } }, 2, 1, deps); @@ -308,40 +308,40 @@ describe('elementProperty', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button', ['idDir', '']); - { text(1, 'Click me'); } - elementEnd(); - container(2); + ΔelementStart(0, 'button', ['idDir', '']); + { Δtext(1, 'Click me'); } + ΔelementEnd(); + Δcontainer(2); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind(ctx.id1)); - containerRefreshStart(2); + ΔelementProperty(0, 'id', Δbind(ctx.id1)); + ΔcontainerRefreshStart(2); { if (ctx.condition) { - let rf0 = embeddedViewStart(0, 2, 1); + let rf0 = ΔembeddedViewStart(0, 2, 1); if (rf0 & RenderFlags.Create) { - elementStart(0, 'button'); - { text(1, 'Click me too'); } - elementEnd(); + ΔelementStart(0, 'button'); + { Δtext(1, 'Click me too'); } + ΔelementEnd(); } if (rf0 & RenderFlags.Update) { - elementProperty(0, 'id', bind(ctx.id2)); + ΔelementProperty(0, 'id', Δbind(ctx.id2)); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } else { - let rf1 = embeddedViewStart(1, 2, 1); + let rf1 = ΔembeddedViewStart(1, 2, 1); if (rf1 & RenderFlags.Create) { - elementStart(0, 'button', ['otherDir', '']); - { text(1, 'Click me too'); } - elementEnd(); + ΔelementStart(0, 'button', ['otherDir', '']); + { Δtext(1, 'Click me too'); } + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'id', bind(ctx.id3)); + ΔelementProperty(0, 'id', Δbind(ctx.id3)); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 1, deps); @@ -375,7 +375,7 @@ describe('elementProperty', () => { direction !: string; changeStream = new EventEmitter(); - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir, selectors: [['', 'myDir', '']], factory: () => myDir = new MyDir(), @@ -390,7 +390,7 @@ describe('elementProperty', () => { // TODO(issue/24571): remove '!'. roleB !: string; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDirB, selectors: [['', 'myDirB', '']], factory: () => dirB = new MyDirB(), @@ -405,7 +405,7 @@ describe('elementProperty', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['role', 'button', 'myDir', '']); + Δelement(0, 'div', ['role', 'button', 'myDir', '']); } }, 1, 0, deps); @@ -419,10 +419,10 @@ describe('elementProperty', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['role', 'button', 'myDir', '']); + Δelement(0, 'div', ['role', 'button', 'myDir', '']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'role', bind(ctx.role)); + ΔelementProperty(0, 'role', Δbind(ctx.role)); } }, 1, 1, deps); @@ -442,7 +442,7 @@ describe('elementProperty', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['role', 'button', 'myDir', '', 'myDirB', '']); + Δelement(0, 'div', ['role', 'button', 'myDir', '', 'myDirB', '']); } }, 1, 0, deps); @@ -457,7 +457,7 @@ describe('elementProperty', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['role', 'button', 'dir', 'rtl', 'myDir', '']); + Δelement(0, 'div', ['role', 'button', 'dir', 'rtl', 'myDir', '']); } }, 1, 0, deps); @@ -472,9 +472,9 @@ describe('elementProperty', () => { /**
*/ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['role', 'button', 'myDir', '']); - { listener('change', () => ctx.onChange()); } - elementEnd(); + ΔelementStart(0, 'div', ['role', 'button', 'myDir', '']); + { Δlistener('change', () => ctx.onChange()); } + ΔelementEnd(); } }, 1, 0, deps); @@ -497,8 +497,8 @@ describe('elementProperty', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['role', 'button', 'dir', 'rtl', 'myDir', '']); - element(1, 'div', ['role', 'listbox', 'myDirB', '']); + Δelement(0, 'div', ['role', 'button', 'dir', 'rtl', 'myDir', '']); + Δelement(1, 'div', ['role', 'listbox', 'myDirB', '']); } }, 2, 0, deps); @@ -523,27 +523,27 @@ describe('elementProperty', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['role', 'listbox', 'myDir', '']); - container(1); + Δelement(0, 'div', ['role', 'listbox', 'myDir', '']); + Δcontainer(1); } if (rf & RenderFlags.Update) { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { if (ctx.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'div', ['role', 'button', 'myDirB', '']); + Δelement(0, 'div', ['role', 'button', 'myDirB', '']); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } else { - let rf2 = embeddedViewStart(1, 1, 0); + let rf2 = ΔembeddedViewStart(1, 1, 0); if (rf2 & RenderFlags.Create) { - element(0, 'div', ['role', 'menu']); + Δelement(0, 'div', ['role', 'menu']); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 2, 0, deps); @@ -565,7 +565,7 @@ describe('elementProperty', () => { it('should process attributes properly inside a for loop', () => { class Comp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, selectors: [['comp']], consts: 3, @@ -573,12 +573,12 @@ describe('elementProperty', () => { /**
{{ dir.role }} */ template: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['role', 'button', 'myDir', ''], ['dir', 'myDir']); - text(2); + Δelement(0, 'div', ['role', 'button', 'myDir', ''], ['dir', 'myDir']); + Δtext(2); } if (rf & RenderFlags.Update) { - const tmp = reference(1) as any; - textBinding(2, bind(tmp.role)); + const tmp = Δreference(1) as any; + ΔtextBinding(2, Δbind(tmp.role)); } }, factory: () => new Comp(), @@ -593,20 +593,20 @@ describe('elementProperty', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { for (let i = 0; i < 2; i++) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); if (rf1 & RenderFlags.Create) { - element(0, 'comp'); + Δelement(0, 'comp'); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, [Comp]); diff --git a/packages/core/test/render3/providers_spec.ts b/packages/core/test/render3/providers_spec.ts index a3e8637a70..3dbd6372d5 100644 --- a/packages/core/test/render3/providers_spec.ts +++ b/packages/core/test/render3/providers_spec.ts @@ -6,11 +6,11 @@ * found in the LICENSE file at https://angular.io/license */ -import {Component as _Component, ComponentFactoryResolver, ElementRef, InjectFlags, Injectable as _Injectable, InjectionToken, InjectorType, Provider, RendererFactory2, ViewContainerRef, defineInjectable, defineInjector, inject, ɵNgModuleDef as NgModuleDef} from '../../src/core'; +import {Component as _Component, ComponentFactoryResolver, ElementRef, InjectFlags, Injectable as _Injectable, InjectionToken, InjectorType, Provider, RendererFactory2, ViewContainerRef, ɵNgModuleDef as NgModuleDef, ΔdefineInjectable, ΔdefineInjector, Δinject} from '../../src/core'; import {forwardRef} from '../../src/di/forward_ref'; import {createInjector} from '../../src/di/r3_injector'; -import {ProvidersFeature, defineComponent, defineDirective, directiveInject, injectComponentFactoryResolver} from '../../src/render3/index'; -import {bind, container, containerRefreshEnd, containerRefreshStart, element, elementEnd, elementStart, embeddedViewEnd, embeddedViewStart, interpolation1, text, textBinding} from '../../src/render3/instructions/all'; +import {injectComponentFactoryResolver, ΔProvidersFeature, ΔdefineComponent, ΔdefineDirective, ΔdirectiveInject} from '../../src/render3/index'; +import {Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, Δelement, ΔelementEnd, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δinterpolation1, Δtext, ΔtextBinding} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {NgModuleFactory} from '../../src/render3/ng_module_ref'; import {getInjector} from '../../src/render3/util/discovery_utils'; @@ -59,7 +59,7 @@ describe('providers', () => { constructor(private provider: GreeterProvider) { this.greet = this.provider.provide(); } static ngInjectableDef = - defineInjectable({factory: () => new GreeterInj(inject(GreeterProvider as any))}); + ΔdefineInjectable({factory: () => new GreeterInj(Δinject(GreeterProvider as any))}); } it('TypeProvider', () => { @@ -67,7 +67,7 @@ describe('providers', () => { parent: { providers: [GreeterClass], componentAssertion: - () => { expect(directiveInject(GreeterClass).greet).toEqual('Class'); } + () => { expect(ΔdirectiveInject(GreeterClass).greet).toEqual('Class'); } } }); }); @@ -76,7 +76,7 @@ describe('providers', () => { expectProvidersScenario({ parent: { providers: [{provide: GREETER, useValue: {greet: 'Value'}}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Value'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Value'); } } }); }); @@ -85,7 +85,7 @@ describe('providers', () => { expectProvidersScenario({ parent: { providers: [{provide: GREETER, useClass: GreeterClass}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Class'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Class'); } } }); }); @@ -94,7 +94,7 @@ describe('providers', () => { expectProvidersScenario({ parent: { providers: [GreeterClass, {provide: GREETER, useExisting: GreeterClass}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Class'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Class'); } } }); }); @@ -103,7 +103,7 @@ describe('providers', () => { expectProvidersScenario({ parent: { providers: [GreeterClass, {provide: GREETER, useFactory: () => new GreeterClass()}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Class'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Class'); } } }); }); @@ -117,7 +117,7 @@ describe('providers', () => { {provide: MESSAGE, useValue: 'Message'}, {provide: GREETER, useClass: GreeterDeps, deps: [MESSAGE]} ], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Message'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Message'); } } }); }); @@ -130,7 +130,7 @@ describe('providers', () => { {provide: GREETER, useClass: GreeterBuiltInDeps, deps: [MESSAGE, ElementRef]} ], componentAssertion: - () => { expect(directiveInject(GREETER).greet).toEqual('Message from PARENT'); } + () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Message from PARENT'); } } }); }); @@ -142,7 +142,7 @@ describe('providers', () => { {provide: MESSAGE, useValue: 'Message'}, {provide: GREETER, useFactory: (msg: string) => new GreeterDeps(msg), deps: [MESSAGE]} ], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Message'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Message'); } } }); }); @@ -159,7 +159,7 @@ describe('providers', () => { } ], componentAssertion: - () => { expect(directiveInject(GREETER).greet).toEqual('Message from PARENT'); } + () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Message from PARENT'); } } }); }); @@ -168,7 +168,7 @@ describe('providers', () => { expectProvidersScenario({ parent: { providers: [GreeterProvider, {provide: GREETER, useClass: GreeterInj}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Provided'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Provided'); } } }); }); @@ -180,7 +180,7 @@ describe('providers', () => { parent: { providers: [forwardRef(() => ForLater)], componentAssertion: - () => { expect(directiveInject(ForLater) instanceof ForLater).toBeTruthy(); } + () => { expect(ΔdirectiveInject(ForLater) instanceof ForLater).toBeTruthy(); } } }); done(); @@ -195,7 +195,7 @@ describe('providers', () => { parent: { providers: [{provide: GREETER, useValue: forwardRef(() => { return {greet: 'Value'}; })}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Value'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Value'); } } }); }); @@ -204,7 +204,7 @@ describe('providers', () => { expectProvidersScenario({ parent: { providers: [{provide: GREETER, useClass: forwardRef(() => GreeterClass)}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Class'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Class'); } } }); }); @@ -214,7 +214,7 @@ describe('providers', () => { parent: { providers: [GreeterClass, {provide: GREETER, useExisting: forwardRef(() => GreeterClass)}], - componentAssertion: () => { expect(directiveInject(GREETER).greet).toEqual('Class'); } + componentAssertion: () => { expect(ΔdirectiveInject(GREETER).greet).toEqual('Class'); } } }); }); @@ -224,8 +224,9 @@ describe('providers', () => { expectProvidersScenario({ parent: { providers: [{provide: GREETER, useValue: {greet: 'Value'}}], - componentAssertion: - () => { expect(directiveInject(forwardRef(() => GREETER)).greet).toEqual('Value'); } + componentAssertion: () => { + expect(ΔdirectiveInject(forwardRef(() => GREETER)).greet).toEqual('Value'); + } } }); }); @@ -254,7 +255,7 @@ describe('providers', () => { parent: { providers: [{provide: String, useValue: 'Message 1'}], directiveProviders: [{provide: String, useValue: 'Message 2'}], - componentAssertion: () => { expect(directiveInject(String)).toEqual('Message 2'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('Message 2'); } } }); }); @@ -264,7 +265,7 @@ describe('providers', () => { parent: { providers: [{provide: String, useValue: 'Message 1'}], viewProviders: [{provide: String, useValue: 'Message 2'}], - componentAssertion: () => { expect(directiveInject(String)).toEqual('Message 2'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('Message 2'); } } }); }); @@ -274,7 +275,7 @@ describe('providers', () => { parent: { directiveProviders: [{provide: String, useValue: 'Message 1'}], viewProviders: [{provide: String, useValue: 'Message 2'}], - componentAssertion: () => { expect(directiveInject(String)).toEqual('Message 2'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('Message 2'); } } }); }); @@ -284,7 +285,7 @@ describe('providers', () => { parent: { directive2Providers: [{provide: String, useValue: 'Message 1'}], directiveProviders: [{provide: String, useValue: 'Message 2'}], - componentAssertion: () => { expect(directiveInject(String)).toEqual('Message 2'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('Message 2'); } } }); }); @@ -294,7 +295,7 @@ describe('providers', () => { parent: { providers: [{provide: String, useValue: 'Message 1'}, {provide: String, useValue: 'Message 2'}], - componentAssertion: () => { expect(directiveInject(String)).toEqual('Message 2'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('Message 2'); } } }); }); @@ -304,7 +305,7 @@ describe('providers', () => { parent: { viewProviders: [{provide: String, useValue: 'Message 1'}, {provide: String, useValue: 'Message 2'}], - componentAssertion: () => { expect(directiveInject(String)).toEqual('Message 2'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('Message 2'); } } }); }); @@ -314,7 +315,7 @@ describe('providers', () => { parent: { directiveProviders: [{provide: String, useValue: 'Message 1'}, {provide: String, useValue: 'Message 2'}], - componentAssertion: () => { expect(directiveInject(String)).toEqual('Message 2'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('Message 2'); } } }); }); @@ -322,7 +323,7 @@ describe('providers', () => { describe('single', () => { class MyModule { - static ngInjectorDef = defineInjector( + static ngInjectorDef = ΔdefineInjector( {factory: () => new MyModule(), providers: [{provide: String, useValue: 'From module'}]}); } @@ -330,16 +331,16 @@ describe('providers', () => { it('should work without providers nor viewProviders in component', () => { expectProvidersScenario({ parent: { - componentAssertion: () => { expect(directiveInject(String)).toEqual('From module'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From module'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); } }, viewChild: { - componentAssertion: () => { expect(directiveInject(String)).toEqual('From module'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From module'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); } }, contentChild: { - componentAssertion: () => { expect(directiveInject(String)).toEqual('From module'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From module'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); } }, ngModule: MyModule }); @@ -350,18 +351,21 @@ describe('providers', () => { parent: { providers: [{provide: String, useValue: 'From providers'}], componentAssertion: - () => { expect(directiveInject(String)).toEqual('From providers'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From providers'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From providers'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From providers'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From providers'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From providers'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); } }, ngModule: MyModule }); @@ -372,18 +376,18 @@ describe('providers', () => { parent: { viewProviders: [{provide: String, useValue: 'From viewProviders'}], componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From module'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); } }, contentChild: { - componentAssertion: () => { expect(directiveInject(String)).toEqual('From module'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From module'); } + componentAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual('From module'); } }, ngModule: MyModule }); @@ -395,19 +399,21 @@ describe('providers', () => { providers: [{provide: String, useValue: 'From providers'}], viewProviders: [{provide: String, useValue: 'From viewProviders'}], componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From providers'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From providers'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From providers'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From providers'); } }, ngModule: MyModule }); @@ -421,18 +427,21 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive'}], directive2Providers: [{provide: String, useValue: 'Never'}], componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, ngModule: MyModule }); @@ -445,18 +454,21 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive'}], directive2Providers: [{provide: String, useValue: 'Never'}], componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, ngModule: MyModule }); @@ -469,19 +481,21 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive'}], directive2Providers: [{provide: String, useValue: 'Never'}], componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, ngModule: MyModule }); @@ -495,19 +509,21 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive'}], directive2Providers: [{provide: String, useValue: 'Never'}], componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); }, + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual('From viewProviders'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From viewProviders'); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual('From directive'); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual('From directive'); } + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); }, + directiveAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual('From directive'); } }, ngModule: MyModule }); @@ -517,7 +533,7 @@ describe('providers', () => { describe('multi', () => { class MyModule { - static ngInjectorDef = defineInjector({ + static ngInjectorDef = ΔdefineInjector({ factory: () => new MyModule(), providers: [{provide: String, useValue: 'From module', multi: true}] }); @@ -527,16 +543,19 @@ describe('providers', () => { it('should work without providers nor viewProviders in component', () => { expectProvidersScenario({ parent: { - componentAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); } + componentAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); } }, viewChild: { - componentAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); } + componentAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); } }, contentChild: { - componentAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); } + componentAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); } }, ngModule: MyModule }); @@ -547,21 +566,21 @@ describe('providers', () => { parent: { providers: [{provide: String, useValue: 'From providers', multi: true}], componentAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); }, + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); } + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); }, + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); } + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); }, + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); } + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); } }, ngModule: MyModule }); @@ -572,18 +591,19 @@ describe('providers', () => { parent: { viewProviders: [{provide: String, useValue: 'From viewProviders', multi: true}], componentAssertion: - () => { expect(directiveInject(String)).toEqual(['From viewProviders']); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); } + () => { expect(ΔdirectiveInject(String)).toEqual(['From viewProviders']); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); } }, viewChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual(['From viewProviders']); }, + () => { expect(ΔdirectiveInject(String)).toEqual(['From viewProviders']); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual(['From viewProviders']); } + () => { expect(ΔdirectiveInject(String)).toEqual(['From viewProviders']); } }, contentChild: { - componentAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); }, - directiveAssertion: () => { expect(directiveInject(String)).toEqual(['From module']); } + componentAssertion: + () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); }, + directiveAssertion: () => { expect(ΔdirectiveInject(String)).toEqual(['From module']); } }, ngModule: MyModule }); @@ -595,24 +615,24 @@ describe('providers', () => { providers: [{provide: String, useValue: 'From providers', multi: true}], viewProviders: [{provide: String, useValue: 'From viewProviders', multi: true}], componentAssertion: () => { - expect(directiveInject(String)).toEqual(['From providers', 'From viewProviders']); + expect(ΔdirectiveInject(String)).toEqual(['From providers', 'From viewProviders']); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); } + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); } }, viewChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual(['From providers', 'From viewProviders']); + expect(ΔdirectiveInject(String)).toEqual(['From providers', 'From viewProviders']); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual(['From providers', 'From viewProviders']); + expect(ΔdirectiveInject(String)).toEqual(['From providers', 'From viewProviders']); } }, contentChild: { componentAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); }, + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); }, directiveAssertion: - () => { expect(directiveInject(String)).toEqual(['From providers']); } + () => { expect(ΔdirectiveInject(String)).toEqual(['From providers']); } }, ngModule: MyModule }); @@ -626,26 +646,26 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive 1', multi: true}], directive2Providers: [{provide: String, useValue: 'From directive 2', multi: true}], componentAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); } }, viewChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); } }, contentChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); } }, ngModule: MyModule @@ -659,36 +679,36 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive 1', multi: true}], directive2Providers: [{provide: String, useValue: 'From directive 2', multi: true}], componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); } }, viewChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); } }, contentChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); } @@ -704,32 +724,32 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive 1', multi: true}], directive2Providers: [{provide: String, useValue: 'From directive 2', multi: true}], componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From viewProviders', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); } }, viewChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From viewProviders', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From viewProviders', 'From directive 2', 'From directive 1' ]); } }, contentChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual(['From directive 2', 'From directive 1']); + expect(ΔdirectiveInject(String)).toEqual(['From directive 2', 'From directive 1']); } }, ngModule: MyModule @@ -744,36 +764,36 @@ describe('providers', () => { directiveProviders: [{provide: String, useValue: 'From directive 1', multi: true}], directive2Providers: [{provide: String, useValue: 'From directive 2', multi: true}], componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From viewProviders', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); } }, viewChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From viewProviders', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From viewProviders', 'From directive 2', 'From directive 1' ]); } }, contentChild: { componentAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); }, directiveAssertion: () => { - expect(directiveInject(String)).toEqual([ + expect(ΔdirectiveInject(String)).toEqual([ 'From providers', 'From directive 2', 'From directive 1' ]); } @@ -789,20 +809,20 @@ describe('providers', () => { @Injectable({providedIn: 'root'}) class FooForRoot { static ngInjectableDef = - defineInjectable({factory: () => new FooForRoot(), providedIn: 'root'}); + ΔdefineInjectable({factory: () => new FooForRoot(), providedIn: 'root'}); } expectProvidersScenario({ parent: { componentAssertion: - () => { expect(directiveInject(FooForRoot) instanceof FooForRoot).toBeTruthy(); } + () => { expect(ΔdirectiveInject(FooForRoot) instanceof FooForRoot).toBeTruthy(); } } }); }); it('should work with a module', () => { class MyModule { - static ngInjectorDef = defineInjector({ + static ngInjectorDef = ΔdefineInjector({ factory: () => new MyModule(), providers: [{provide: String, useValue: 'From module'}] }); @@ -811,13 +831,13 @@ describe('providers', () => { @Injectable({providedIn: MyModule}) class FooForModule { static ngInjectableDef = - defineInjectable({factory: () => new FooForModule(), providedIn: MyModule}); + ΔdefineInjectable({factory: () => new FooForModule(), providedIn: MyModule}); } expectProvidersScenario({ parent: { componentAssertion: - () => { expect(directiveInject(FooForModule) instanceof FooForModule).toBeTruthy(); } + () => { expect(ΔdirectiveInject(FooForModule) instanceof FooForModule).toBeTruthy(); } }, ngModule: MyModule }); @@ -832,20 +852,20 @@ describe('providers', () => { class Repeated { constructor(private s: String, private n: Number) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Repeated, selectors: [['repeated']], - factory: () => new Repeated(directiveInject(String), directiveInject(Number)), + factory: () => new Repeated(ΔdirectiveInject(String), ΔdirectiveInject(Number)), consts: 2, vars: 2, template: function(fs: RenderFlags, ctx: Repeated) { if (fs & RenderFlags.Create) { - text(0); - text(1); + Δtext(0); + Δtext(1); } if (fs & RenderFlags.Update) { - textBinding(0, bind(ctx.s)); - textBinding(1, bind(ctx.n)); + ΔtextBinding(0, Δbind(ctx.s)); + ΔtextBinding(1, Δbind(ctx.n)); } } }); @@ -862,7 +882,7 @@ describe('providers', () => { [{provide: String, useValue: 'foo'}, {provide: Number, useValue: 2, multi: true}], }) class ComponentWithProviders { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ComponentWithProviders, selectors: [['component-with-providers']], factory: () => new ComponentWithProviders(), @@ -870,28 +890,28 @@ describe('providers', () => { vars: 0, template: function(fs: RenderFlags, ctx: ComponentWithProviders) { if (fs & RenderFlags.Create) { - elementStart(0, 'div'); - { container(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δcontainer(1); } + ΔelementEnd(); } if (fs & RenderFlags.Update) { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { for (let i = 0; i < 3; i++) { - let rf1 = embeddedViewStart(1, 1, 0); + let rf1 = ΔembeddedViewStart(1, 1, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'repeated'); + Δelement(0, 'repeated'); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, features: [ - ProvidersFeature( + ΔProvidersFeature( [{provide: Number, useValue: 1, multi: true}], [{provide: String, useValue: 'foo'}, {provide: Number, useValue: 2, multi: true}]), ], @@ -915,24 +935,24 @@ describe('providers', () => { class Repeated { constructor(private s: String, private n: Number) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Repeated, selectors: [['repeated']], - factory: () => new Repeated(directiveInject(String), directiveInject(Number)), + factory: () => new Repeated(ΔdirectiveInject(String), ΔdirectiveInject(Number)), consts: 2, vars: 2, template: function(fs: RenderFlags, ctx: Repeated) { if (fs & RenderFlags.Create) { - text(0); - text(1); + Δtext(0); + Δtext(1); } if (fs & RenderFlags.Update) { - textBinding(0, bind(ctx.s)); - textBinding(1, bind(ctx.n)); + ΔtextBinding(0, Δbind(ctx.s)); + ΔtextBinding(1, Δbind(ctx.n)); } }, features: [ - ProvidersFeature( + ΔProvidersFeature( [{provide: Number, useValue: 1, multi: true}], [{provide: String, useValue: 'bar'}, {provide: Number, useValue: 2, multi: true}]), ], @@ -948,7 +968,7 @@ describe('providers', () => { viewProviders: [{provide: toString, useValue: 'foo'}], }) class ComponentWithProviders { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ComponentWithProviders, selectors: [['component-with-providers']], factory: () => new ComponentWithProviders(), @@ -956,27 +976,27 @@ describe('providers', () => { vars: 0, template: function(fs: RenderFlags, ctx: ComponentWithProviders) { if (fs & RenderFlags.Create) { - elementStart(0, 'div'); - { container(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δcontainer(1); } + ΔelementEnd(); } if (fs & RenderFlags.Update) { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { for (let i = 0; i < 3; i++) { - let rf1 = embeddedViewStart(1, 1, 0); + let rf1 = ΔembeddedViewStart(1, 1, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'repeated'); + Δelement(0, 'repeated'); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, - features: [ProvidersFeature([], [{provide: String, useValue: 'foo'}])], + features: [ΔProvidersFeature([], [{provide: String, useValue: 'foo'}])], directives: [Repeated] }); } @@ -997,18 +1017,18 @@ describe('providers', () => { class EmbeddedComponent { constructor(private s: String) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: EmbeddedComponent, selectors: [['embedded-cmp']], - factory: () => new EmbeddedComponent(directiveInject(String)), + factory: () => new EmbeddedComponent(ΔdirectiveInject(String)), consts: 1, vars: 1, template: (rf: RenderFlags, cmp: EmbeddedComponent) => { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', cmp.s, '')); + ΔtextBinding(0, Δinterpolation1('', cmp.s, '')); } } }); @@ -1018,20 +1038,20 @@ describe('providers', () => { class HostComponent { constructor(public vcref: ViewContainerRef, public cfr: ComponentFactoryResolver) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: HostComponent, selectors: [['host-cmp']], factory: () => hostComponent = new HostComponent( - directiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), + ΔdirectiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), consts: 1, vars: 0, template: (rf: RenderFlags, cmp: HostComponent) => { if (rf & RenderFlags.Create) { - text(0, 'foo'); + Δtext(0, 'foo'); } }, features: [ - ProvidersFeature([{provide: String, useValue: 'From host component'}]), + ΔProvidersFeature([{provide: String, useValue: 'From host component'}]), ], }); } @@ -1043,7 +1063,7 @@ describe('providers', () => { class AppComponent { constructor() {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppComponent, selectors: [['app-cmp']], factory: () => new AppComponent(), @@ -1051,11 +1071,11 @@ describe('providers', () => { vars: 0, template: (rf: RenderFlags, cmp: AppComponent) => { if (rf & RenderFlags.Create) { - element(0, 'host-cmp'); + Δelement(0, 'host-cmp'); } }, features: [ - ProvidersFeature([{provide: String, useValue: 'From app component'}]), + ΔProvidersFeature([{provide: String, useValue: 'From app component'}]), ], directives: [HostComponent] }); @@ -1084,7 +1104,7 @@ describe('providers', () => { expect(fixture.html).toEqual('foo'); class MyAppModule { - static ngInjectorDef = defineInjector({ + static ngInjectorDef = ΔdefineInjector({ factory: () => new MyAppModule(), imports: [], providers: [ @@ -1127,7 +1147,7 @@ describe('providers', () => { constructor(public value: String) {} static ngInjectableDef = - defineInjectable({factory: () => new MyService(inject(String))}); + ΔdefineInjectable({factory: () => new MyService(Δinject(String))}); } expectProvidersScenario({ @@ -1135,8 +1155,8 @@ describe('providers', () => { providers: [MyService, {provide: String, useValue: 'providers'}], viewProviders: [{provide: String, useValue: 'viewProviders'}], componentAssertion: () => { - expect(directiveInject(String)).toEqual('viewProviders'); - expect(directiveInject(MyService).value).toEqual('providers'); + expect(ΔdirectiveInject(String)).toEqual('viewProviders'); + expect(ΔdirectiveInject(MyService).value).toEqual('providers'); } } }); @@ -1144,7 +1164,7 @@ describe('providers', () => { it('should make sure that parent service does not see overrides in child directives', () => { class Greeter { - static ngInjectableDef = defineInjectable({factory: () => new Greeter(inject(String))}); + static ngInjectableDef = ΔdefineInjectable({factory: () => new Greeter(Δinject(String))}); constructor(public greeting: String) {} } @@ -1155,7 +1175,7 @@ describe('providers', () => { viewChild: { providers: [{provide: String, useValue: 'view'}], componentAssertion: - () => { expect(directiveInject(Greeter).greeting).toEqual('parent'); }, + () => { expect(ΔdirectiveInject(Greeter).greeting).toEqual('parent'); }, }, }); }); @@ -1163,7 +1183,7 @@ describe('providers', () => { describe('injection flags', () => { class MyModule { - static ngInjectorDef = defineInjector( + static ngInjectorDef = ΔdefineInjector( {factory: () => new MyModule(), providers: [{provide: String, useValue: 'Module'}]}); } it('should not fall through to ModuleInjector if flags limit the scope', () => { @@ -1171,9 +1191,9 @@ describe('providers', () => { ngModule: MyModule, parent: { componentAssertion: () => { - expect(directiveInject(String)).toEqual('Module'); - expect(directiveInject(String, InjectFlags.Optional | InjectFlags.Self)).toBeNull(); - expect(directiveInject(String, InjectFlags.Optional | InjectFlags.Host)).toBeNull(); + expect(ΔdirectiveInject(String)).toEqual('Module'); + expect(ΔdirectiveInject(String, InjectFlags.Optional | InjectFlags.Self)).toBeNull(); + expect(ΔdirectiveInject(String, InjectFlags.Optional | InjectFlags.Host)).toBeNull(); } } }); @@ -1186,7 +1206,7 @@ describe('providers', () => { class SomeInj implements Some { constructor(public location: String) {} - static ngInjectableDef = defineInjectable({factory: () => new SomeInj(inject(String))}); + static ngInjectableDef = ΔdefineInjectable({factory: () => new SomeInj(Δinject(String))}); } @Component({ @@ -1197,7 +1217,7 @@ describe('providers', () => { class MyComponent { constructor() {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComponent, selectors: [['my-cmp']], factory: () => new MyComponent(), @@ -1205,11 +1225,11 @@ describe('providers', () => { vars: 0, template: (rf: RenderFlags, cmp: MyComponent) => { if (rf & RenderFlags.Create) { - element(0, 'p'); + Δelement(0, 'p'); } }, features: [ - ProvidersFeature( + ΔProvidersFeature( [{provide: String, useValue: 'From my component'}], [{provide: Number, useValue: 123}]), ], @@ -1224,7 +1244,7 @@ describe('providers', () => { class AppComponent { constructor() {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppComponent, selectors: [['app-cmp']], factory: () => new AppComponent(), @@ -1232,11 +1252,11 @@ describe('providers', () => { vars: 0, template: (rf: RenderFlags, cmp: AppComponent) => { if (rf & RenderFlags.Create) { - element(0, 'my-cmp'); + Δelement(0, 'my-cmp'); } }, features: [ - ProvidersFeature([ + ΔProvidersFeature([ {provide: String, useValue: 'From app component'}, {provide: Some, useClass: SomeInj} ]), ], @@ -1287,18 +1307,18 @@ describe('providers', () => { class MyComponent { constructor(foo: InjectableWithLifeCycleHooks) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComponent, selectors: [['my-comp']], - factory: () => new MyComponent(directiveInject(InjectableWithLifeCycleHooks)), + factory: () => new MyComponent(ΔdirectiveInject(InjectableWithLifeCycleHooks)), consts: 1, vars: 0, template: (rf: RenderFlags, ctx: MyComponent) => { if (rf & RenderFlags.Create) { - element(0, 'span'); + Δelement(0, 'span'); } }, - features: [ProvidersFeature([InjectableWithLifeCycleHooks])] + features: [ΔProvidersFeature([InjectableWithLifeCycleHooks])] }); } @@ -1314,7 +1334,7 @@ describe('providers', () => { class App { public condition = true; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: App, selectors: [['app-cmp']], factory: () => new App(), @@ -1322,24 +1342,24 @@ describe('providers', () => { vars: 0, template: (rf: RenderFlags, ctx: App) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - { container(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δcontainer(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { if (ctx.condition) { - let rf1 = embeddedViewStart(1, 2, 1); + let rf1 = ΔembeddedViewStart(1, 2, 1); { if (rf1 & RenderFlags.Create) { - element(0, 'my-comp'); + Δelement(0, 'my-comp'); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, directives: [MyComponent] @@ -1389,7 +1409,7 @@ function expectProvidersScenario(defs: { } class ViewChildComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ViewChildComponent, selectors: [['view-child']], consts: 1, @@ -1397,27 +1417,27 @@ function expectProvidersScenario(defs: { factory: () => testComponentInjection(defs.viewChild, new ViewChildComponent()), template: function(fs: RenderFlags, ctx: ViewChildComponent) { if (fs & RenderFlags.Create) { - text(0, 'view-child'); + Δtext(0, 'view-child'); } }, features: defs.viewChild && [ - ProvidersFeature(defs.viewChild.providers || [], defs.viewChild.viewProviders || []), + ΔProvidersFeature(defs.viewChild.providers || [], defs.viewChild.viewProviders || []), ], }); } class ViewChildDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: ViewChildDirective, selectors: [['view-child']], factory: () => testDirectiveInjection(defs.viewChild, new ViewChildDirective()), - features: defs.viewChild && [ProvidersFeature(defs.viewChild.directiveProviders || [])], + features: defs.viewChild && [ΔProvidersFeature(defs.viewChild.directiveProviders || [])], }); } class ContentChildComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ContentChildComponent, selectors: [['content-child']], consts: 1, @@ -1425,27 +1445,28 @@ function expectProvidersScenario(defs: { factory: () => testComponentInjection(defs.contentChild, new ContentChildComponent()), template: function(fs: RenderFlags, ctx: ParentComponent) { if (fs & RenderFlags.Create) { - text(0, 'content-child'); + Δtext(0, 'content-child'); } }, features: defs.contentChild && - [ProvidersFeature( + [ΔProvidersFeature( defs.contentChild.providers || [], defs.contentChild.viewProviders || [])], }); } class ContentChildDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: ContentChildDirective, selectors: [['content-child']], factory: () => testDirectiveInjection(defs.contentChild, new ContentChildDirective()), - features: defs.contentChild && [ProvidersFeature(defs.contentChild.directiveProviders || [])], + features: + defs.contentChild && [ΔProvidersFeature(defs.contentChild.directiveProviders || [])], }); } class ParentComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ParentComponent, selectors: [['parent']], consts: 1, @@ -1453,36 +1474,36 @@ function expectProvidersScenario(defs: { factory: () => testComponentInjection(defs.parent, new ParentComponent()), template: function(fs: RenderFlags, ctx: ParentComponent) { if (fs & RenderFlags.Create) { - element(0, 'view-child'); + Δelement(0, 'view-child'); } }, features: defs.parent && - [ProvidersFeature(defs.parent.providers || [], defs.parent.viewProviders || [])], + [ΔProvidersFeature(defs.parent.providers || [], defs.parent.viewProviders || [])], directives: [ViewChildComponent, ViewChildDirective] }); } class ParentDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: ParentDirective, selectors: [['parent']], factory: () => testDirectiveInjection(defs.parent, new ParentDirective()), - features: defs.parent && [ProvidersFeature(defs.parent.directiveProviders || [])], + features: defs.parent && [ΔProvidersFeature(defs.parent.directiveProviders || [])], }); } class ParentDirective2 { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: ParentDirective2, selectors: [['parent']], factory: () => testDirectiveInjection(defs.parent, new ParentDirective2()), - features: defs.parent && [ProvidersFeature(defs.parent.directive2Providers || [])], + features: defs.parent && [ΔProvidersFeature(defs.parent.directive2Providers || [])], }); } class App { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: App, selectors: [['app']], consts: 2, @@ -1490,13 +1511,13 @@ function expectProvidersScenario(defs: { factory: () => testComponentInjection(defs.app, new App()), template: function(fs: RenderFlags, ctx: App) { if (fs & RenderFlags.Create) { - elementStart(0, 'parent'); - element(1, 'content-child'); - elementEnd(); + ΔelementStart(0, 'parent'); + Δelement(1, 'content-child'); + ΔelementEnd(); } }, features: - defs.app && [ProvidersFeature(defs.app.providers || [], defs.app.viewProviders || [])], + defs.app && [ΔProvidersFeature(defs.app.providers || [], defs.app.viewProviders || [])], directives: [ ParentComponent, ParentDirective2, ParentDirective, ContentChildComponent, ContentChildDirective diff --git a/packages/core/test/render3/pure_function_spec.ts b/packages/core/test/render3/pure_function_spec.ts index e4d1207778..a8978585a8 100644 --- a/packages/core/test/render3/pure_function_spec.ts +++ b/packages/core/test/render3/pure_function_spec.ts @@ -5,11 +5,12 @@ * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ -import {AttributeMarker, defineComponent, template} from '../../src/render3/index'; -import {bind, container, containerRefreshEnd, containerRefreshStart, element, elementEnd, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, nextContext} from '../../src/render3/instructions/all'; +import {AttributeMarker, ΔdefineComponent, Δtemplate} from '../../src/render3/index'; +import {Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, Δelement, ΔelementEnd, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, ΔnextContext} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; -import {pureFunction1, pureFunction2, pureFunction3, pureFunction4, pureFunction5, pureFunction6, pureFunction7, pureFunction8, pureFunctionV} from '../../src/render3/pure_function'; +import {ΔpureFunction1, ΔpureFunction2, ΔpureFunction3, ΔpureFunction4, ΔpureFunction5, ΔpureFunction6, ΔpureFunction7, ΔpureFunction8, ΔpureFunctionV} from '../../src/render3/pure_function'; import {ComponentFixture, createComponent, getDirectiveOnNode, renderToHtml} from '../../test/render3/render_util'; + import {NgIf} from './common_with_def'; describe('array literals', () => { @@ -19,7 +20,7 @@ describe('array literals', () => { // TODO(issue/24571): remove '!'. names !: string[]; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyComp, selectors: [['my-comp']], factory: function MyComp_Factory() { return myComp = new MyComp(); }, @@ -38,10 +39,10 @@ describe('array literals', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'my-comp'); + Δelement(0, 'my-comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'names', bind(pureFunction1(1, e0_ff, ctx.customName))); + ΔelementProperty(0, 'names', Δbind(ΔpureFunction1(1, e0_ff, ctx.customName))); } }, 1, 3, directives); @@ -74,11 +75,11 @@ describe('array literals', () => { function IfTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'my-comp'); + Δelement(0, 'my-comp'); } if (rf & RenderFlags.Update) { - const comp = nextContext(); - elementProperty(0, 'names', bind(pureFunction1(1, e0_ff, comp.customName))); + const comp = ΔnextContext(); + ΔelementProperty(0, 'names', Δbind(ΔpureFunction1(1, e0_ff, comp.customName))); } } @@ -87,12 +88,12 @@ describe('array literals', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, IfTemplate, 1, 3, 'my-comp', [AttributeMarker.Bindings, 'names', AttributeMarker.Template, 'ngIf']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngIf', bind(ctx.showing)); + ΔelementProperty(0, 'ngIf', Δbind(ctx.showing)); } }, 1, 1, [MyComp, NgIf]); @@ -113,7 +114,7 @@ describe('array literals', () => { // TODO(issue/24571): remove '!'. names2 !: string[]; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ManyPropComp, selectors: [['many-prop-comp']], factory: function ManyPropComp_Factory() { return manyPropComp = new ManyPropComp(); }, @@ -133,11 +134,11 @@ describe('array literals', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'many-prop-comp'); + Δelement(0, 'many-prop-comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'names1', bind(pureFunction1(2, e0_ff, ctx.customName))); - elementProperty(0, 'names2', bind(pureFunction1(4, e0_ff_1, ctx.customName2))); + ΔelementProperty(0, 'names1', Δbind(ΔpureFunction1(2, e0_ff, ctx.customName))); + ΔelementProperty(0, 'names2', Δbind(ΔpureFunction1(4, e0_ff_1, ctx.customName2))); } }, 1, 6, [ManyPropComp]); @@ -169,7 +170,7 @@ describe('array literals', () => { return arr; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ParentComp, selectors: [['parent-comp']], factory: () => new ParentComp(), @@ -177,12 +178,13 @@ describe('array literals', () => { vars: 3, template: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'my-comp'); + ΔelementStart(0, 'my-comp'); myComps.push(getDirectiveOnNode(0)); - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'names', bind(ctx.someFn(pureFunction1(1, e0_ff, ctx.customName)))); + ΔelementProperty( + 0, 'names', Δbind(ctx.someFn(ΔpureFunction1(1, e0_ff, ctx.customName)))); } }, directives: directives @@ -191,8 +193,8 @@ describe('array literals', () => { const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'parent-comp'); - element(1, 'parent-comp'); + Δelement(0, 'parent-comp'); + Δelement(1, 'parent-comp'); } }, 2, 0, [ParentComp]); @@ -216,10 +218,11 @@ describe('array literals', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'my-comp'); + Δelement(0, 'my-comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'names', bind(pureFunction2(1, e0_ff, ctx.customName, ctx.customName2))); + ΔelementProperty( + 0, 'names', Δbind(ΔpureFunction2(1, e0_ff, ctx.customName, ctx.customName2))); } }, 1, 4, directives); @@ -276,36 +279,37 @@ describe('array literals', () => { function Template(rf: RenderFlags, c: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'my-comp'); + ΔelementStart(0, 'my-comp'); f3Comp = getDirectiveOnNode(0); - elementEnd(); - elementStart(1, 'my-comp'); + ΔelementEnd(); + ΔelementStart(1, 'my-comp'); f4Comp = getDirectiveOnNode(1); - elementEnd(); - elementStart(2, 'my-comp'); + ΔelementEnd(); + ΔelementStart(2, 'my-comp'); f5Comp = getDirectiveOnNode(2); - elementEnd(); - elementStart(3, 'my-comp'); + ΔelementEnd(); + ΔelementStart(3, 'my-comp'); f6Comp = getDirectiveOnNode(3); - elementEnd(); - elementStart(4, 'my-comp'); + ΔelementEnd(); + ΔelementStart(4, 'my-comp'); f7Comp = getDirectiveOnNode(4); - elementEnd(); - elementStart(5, 'my-comp'); + ΔelementEnd(); + ΔelementStart(5, 'my-comp'); f8Comp = getDirectiveOnNode(5); - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'names', bind(pureFunction3(6, e0_ff, c[5], c[6], c[7]))); - elementProperty(1, 'names', bind(pureFunction4(10, e2_ff, c[4], c[5], c[6], c[7]))); - elementProperty(2, 'names', bind(pureFunction5(15, e4_ff, c[3], c[4], c[5], c[6], c[7]))); - elementProperty( - 3, 'names', bind(pureFunction6(21, e6_ff, c[2], c[3], c[4], c[5], c[6], c[7]))); - elementProperty( - 4, 'names', bind(pureFunction7(28, e8_ff, c[1], c[2], c[3], c[4], c[5], c[6], c[7]))); - elementProperty( + ΔelementProperty(0, 'names', Δbind(ΔpureFunction3(6, e0_ff, c[5], c[6], c[7]))); + ΔelementProperty(1, 'names', Δbind(ΔpureFunction4(10, e2_ff, c[4], c[5], c[6], c[7]))); + ΔelementProperty( + 2, 'names', Δbind(ΔpureFunction5(15, e4_ff, c[3], c[4], c[5], c[6], c[7]))); + ΔelementProperty( + 3, 'names', Δbind(ΔpureFunction6(21, e6_ff, c[2], c[3], c[4], c[5], c[6], c[7]))); + ΔelementProperty( + 4, 'names', Δbind(ΔpureFunction7(28, e8_ff, c[1], c[2], c[3], c[4], c[5], c[6], c[7]))); + ΔelementProperty( 5, 'names', - bind(pureFunction8(36, e10_ff, c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]))); + Δbind(ΔpureFunction8(36, e10_ff, c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7]))); } } @@ -348,12 +352,12 @@ describe('array literals', () => { */ function Template(rf: RenderFlags, c: any) { if (rf & RenderFlags.Create) { - element(0, 'my-comp'); + Δelement(0, 'my-comp'); } if (rf & RenderFlags.Update) { - elementProperty( - 0, 'names', bind(pureFunctionV(3, e0_ff, [ - c[0], c[1], c[2], c[3], pureFunction1(1, e0_ff_1, c[4]), c[5], c[6], c[7], c[8] + ΔelementProperty( + 0, 'names', Δbind(ΔpureFunctionV(3, e0_ff, [ + c[0], c[1], c[2], c[3], ΔpureFunction1(1, e0_ff_1, c[4]), c[5], c[6], c[7], c[8] ]))); } } @@ -382,7 +386,7 @@ describe('object literals', () => { // TODO(issue/24571): remove '!'. config !: {[key: string]: any}; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ObjectComp, selectors: [['object-comp']], factory: function ObjectComp_Factory() { return objectComp = new ObjectComp(); }, @@ -401,10 +405,10 @@ describe('object literals', () => { /** */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'object-comp'); + Δelement(0, 'object-comp'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'config', bind(pureFunction1(1, e0_ff, ctx.name))); + ΔelementProperty(0, 'config', Δbind(ΔpureFunction1(1, e0_ff, ctx.name))); } }, 1, 3, defs); @@ -438,13 +442,14 @@ describe('object literals', () => { */ const App = createComponent('app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'object-comp'); + Δelement(0, 'object-comp'); } if (rf & RenderFlags.Update) { - elementProperty( - 0, 'config', bind(pureFunction2( - 5, e0_ff, ctx.name, - pureFunction1(3, e0_ff_1, pureFunction1(1, e0_ff_2, ctx.duration))))); + ΔelementProperty( + 0, 'config', + Δbind(ΔpureFunction2( + 5, e0_ff, ctx.name, + ΔpureFunction1(3, e0_ff_1, ΔpureFunction1(1, e0_ff_2, ctx.duration))))); } }, 1, 8, defs); @@ -506,27 +511,27 @@ describe('object literals', () => { */ function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { for (let i = 0; i < 2; i++) { - let rf1 = embeddedViewStart(0, 1, 4); + let rf1 = ΔembeddedViewStart(0, 1, 4); if (rf1 & RenderFlags.Create) { - elementStart(0, 'object-comp'); + ΔelementStart(0, 'object-comp'); objectComps.push(getDirectiveOnNode(0)); - elementEnd(); + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - elementProperty( + ΔelementProperty( 0, 'config', - bind(pureFunction2(1, e0_ff, ctx.configs[i].opacity, ctx.configs[i].duration))); + Δbind(ΔpureFunction2(1, e0_ff, ctx.configs[i].opacity, ctx.configs[i].duration))); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } diff --git a/packages/core/test/render3/query_spec.ts b/packages/core/test/render3/query_spec.ts index 78cf528f65..033fc2ea72 100644 --- a/packages/core/test/render3/query_spec.ts +++ b/packages/core/test/render3/query_spec.ts @@ -10,17 +10,16 @@ import {NgForOfContext} from '@angular/common'; import {ElementRef, QueryList, TemplateRef, ViewContainerRef} from '@angular/core'; import {EventEmitter} from '../..'; -import {AttributeMarker, ProvidersFeature, defineComponent, defineDirective, detectChanges} from '../../src/render3/index'; -import {getNativeByIndex} from '../../src/render3/util/view_utils'; - -import {bind, container, containerRefreshEnd, containerRefreshStart, directiveInject, element, elementContainerEnd, elementContainerStart, elementEnd, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, load, reference, template, text} from '../../src/render3/instructions/all'; +import {AttributeMarker, detectChanges, ΔProvidersFeature, ΔdefineComponent, ΔdefineDirective} from '../../src/render3/index'; +import {Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, ΔdirectiveInject, Δelement, ΔelementContainerEnd, ΔelementContainerStart, ΔelementEnd, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δload, Δreference, Δtemplate, Δtext} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; -import {queryRefresh, viewQuery, loadViewQuery, contentQuery, loadContentQuery, query} from '../../src/render3/query'; +import {query, ΔcontentQuery, ΔloadContentQuery, ΔloadViewQuery, ΔqueryRefresh, ΔviewQuery} from '../../src/render3/query'; import {getLView} from '../../src/render3/state'; -import {templateRefExtractor} from '../../src/render3/view_engine_compatibility_prebound'; +import {getNativeByIndex} from '../../src/render3/util/view_utils'; +import {ΔtemplateRefExtractor} from '../../src/render3/view_engine_compatibility_prebound'; import {NgForOf, NgIf, NgTemplateOutlet} from './common_with_def'; -import {ComponentFixture, TemplateFixture, createComponent, createDirective, renderComponent, getDirectiveOnNode} from './render_util'; +import {ComponentFixture, TemplateFixture, createComponent, createDirective, getDirectiveOnNode, renderComponent} from './render_util'; @@ -71,9 +70,9 @@ describe('query', () => { * } */ if (rf & RenderFlags.Create) { - elementStart(0, 'child'); - { element(1, 'child'); } - elementEnd(); + ΔelementStart(0, 'child'); + { Δelement(1, 'child'); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { child1 = getDirectiveOnNode(0); @@ -83,14 +82,14 @@ describe('query', () => { 2, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(Child, false, null); - viewQuery(Child, true, null); + ΔviewQuery(Child, false, null); + ΔviewQuery(Child, true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query0 = tmp as QueryList); - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query1 = tmp as QueryList); } }); @@ -116,18 +115,18 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', '']); + Δelement(0, 'div', ['child', '']); elToQuery = getNativeByIndex(0, getLView()); } }, 1, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(Child, false, ElementRef); + ΔviewQuery(Child, false, ElementRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -153,19 +152,19 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['child', '', 'otherChild', '']); + ΔelementStart(0, 'div', ['child', '', 'otherChild', '']); { otherChildInstance = getDirectiveOnNode(0, 1); } - elementEnd(); + ΔelementEnd(); } }, 1, 0, [Child, OtherChild], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(Child, false, OtherChild); + ΔviewQuery(Child, false, OtherChild); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -189,17 +188,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', '']); + Δelement(0, 'div', ['child', '']); } }, 1, 0, [Child, OtherChild], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(Child, false, OtherChild); + ΔviewQuery(Child, false, OtherChild); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -220,13 +219,13 @@ describe('query', () => { class MyDirective { constructor(public service: Service) {} - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDirective, selectors: [['', 'myDir', '']], factory: function MyDirective_Factory() { - return directive = new MyDirective(directiveInject(Service)); + return directive = new MyDirective(ΔdirectiveInject(Service)); }, - features: [ProvidersFeature([Service, {provide: Alias, useExisting: Service}])], + features: [ΔProvidersFeature([Service, {provide: Alias, useExisting: Service}])], }); } @@ -248,7 +247,7 @@ describe('query', () => { service?: Service; alias?: Alias; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: App, selectors: [['app']], consts: 1, @@ -256,20 +255,21 @@ describe('query', () => { factory: function App_Factory() { return new App(); }, template: function App_Template(rf: RenderFlags, ctx: App) { if (rf & RenderFlags.Create) { - element(0, 'div', ['myDir']); + Δelement(0, 'div', ['myDir']); } }, viewQuery: function(rf: RenderFlags, ctx: App) { if (rf & RenderFlags.Create) { - viewQuery(MyDirective, false, null); - viewQuery(Service, false, null); - viewQuery(Alias, false, null); + ΔviewQuery(MyDirective, false, null); + ΔviewQuery(Service, false, null); + ΔviewQuery(Alias, false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && (ctx.directive = tmp.first); - queryRefresh(tmp = loadViewQuery>()) && (ctx.service = tmp.first); - queryRefresh(tmp = loadViewQuery>()) && (ctx.alias = tmp.first); + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && + (ctx.directive = tmp.first); + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.service = tmp.first); + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.alias = tmp.first); } }, directives: [MyDirective] @@ -293,7 +293,7 @@ describe('query', () => { class App { service?: Service; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: App, selectors: [['app']], consts: 1, @@ -301,16 +301,16 @@ describe('query', () => { factory: function App_Factory() { return new App(); }, template: function App_Template(rf: RenderFlags, ctx: App) { if (rf & RenderFlags.Create) { - element(0, 'div', ['myDir']); + Δelement(0, 'div', ['myDir']); } }, viewQuery: function(rf: RenderFlags, ctx: App) { let tmp: any; if (rf & RenderFlags.Create) { - viewQuery(MyDirective, false, Alias); + ΔviewQuery(MyDirective, false, Alias); } if (rf & RenderFlags.Update) { - queryRefresh(tmp = loadViewQuery>()) && (ctx.service = tmp.first); + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.service = tmp.first); } }, directives: [MyDirective] @@ -339,19 +339,19 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); elToQuery = getNativeByIndex(0, getLView()); - element(2, 'div'); + Δelement(2, 'div'); } }, 3, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, null); + ΔviewQuery(['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -377,22 +377,22 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '', 'bar', '']); + Δelement(0, 'div', null, ['foo', '', 'bar', '']); elToQuery = getNativeByIndex(0, getLView()); - element(3, 'div'); + Δelement(3, 'div'); } }, 4, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, null); - viewQuery(['bar'], false, null); + ΔviewQuery(['foo'], false, null); + ΔviewQuery(['bar'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.fooQuery = tmp as QueryList); - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.barQuery = tmp as QueryList); } }); @@ -424,21 +424,21 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); el1ToQuery = getNativeByIndex(0, getLView()); - element(2, 'div'); - element(3, 'div', null, ['bar', '']); + Δelement(2, 'div'); + Δelement(3, 'div', null, ['bar', '']); el2ToQuery = getNativeByIndex(3, getLView()); } }, 5, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo', 'bar'], false, null); + ΔviewQuery(['foo', 'bar'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -464,19 +464,19 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); elToQuery = getNativeByIndex(0, getLView()); - element(2, 'div'); + Δelement(2, 'div'); } }, 3, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, null); + ΔviewQuery(['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -501,19 +501,19 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementContainerStart(0, null, ['foo', '']); + ΔelementContainerStart(0, null, ['foo', '']); elToQuery = getNativeByIndex(0, getLView()); - elementContainerEnd(); + ΔelementContainerEnd(); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, ElementRef); + ΔviewQuery(['foo'], false, ElementRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -537,19 +537,19 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementContainerStart(0, null, ['foo', '']); + ΔelementContainerStart(0, null, ['foo', '']); elToQuery = getNativeByIndex(0, getLView()); - elementContainerEnd(); + ΔelementContainerEnd(); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -599,25 +599,25 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementContainerStart(0); + ΔelementContainerStart(0); { - element(1, 'div', null, ['foo', '']); + Δelement(1, 'div', null, ['foo', '']); elToQuery = getNativeByIndex(3, getLView()); } - elementContainerEnd(); + ΔelementContainerEnd(); } }, 3, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, ElementRef); - viewQuery(['foo'], false, ElementRef); + ΔviewQuery(['foo'], true, ElementRef); + ΔviewQuery(['foo'], false, ElementRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.deep = tmp as QueryList); - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.shallow = tmp as QueryList); } }); @@ -640,17 +640,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, ViewContainerRef); + ΔviewQuery(['foo'], false, ViewContainerRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -672,17 +672,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, null, 0, 0, 'ng-template', null, ['foo', '']); + Δtemplate(0, null, 0, 0, 'ng-template', null, ['foo', '']); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, ViewContainerRef); + ΔviewQuery(['foo'], false, ViewContainerRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -705,18 +705,18 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, null, 0, 0, 'ng-template', null, ['foo', '']); + Δtemplate(0, null, 0, 0, 'ng-template', null, ['foo', '']); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, ElementRef); + ΔviewQuery(['foo'], false, ElementRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -740,17 +740,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, null, 0, 0, 'ng-template', null, ['foo', '']); + Δtemplate(0, null, 0, 0, 'ng-template', null, ['foo', '']); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, null); + ΔviewQuery(['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -773,17 +773,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, null, 0, 0, 'ng-template', null, ['foo', '']); + Δtemplate(0, null, 0, 0, 'ng-template', null, ['foo', '']); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, TemplateRef); + ΔviewQuery(['foo'], false, TemplateRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -808,7 +808,7 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'child', null, ['foo', '']); + Δelement(0, 'child', null, ['foo', '']); } if (rf & RenderFlags.Update) { childInstance = getDirectiveOnNode(0); @@ -817,11 +817,11 @@ describe('query', () => { 2, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -836,7 +836,7 @@ describe('query', () => { let childInstance: Child; class Child { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Child, selectors: [['child']], factory: () => childInstance = new Child(), @@ -857,17 +857,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'child', null, ['foo', 'child']); + Δelement(0, 'child', null, ['foo', 'child']); } }, 2, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -893,7 +893,7 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', ''], ['foo', 'child']); + Δelement(0, 'div', ['child', ''], ['foo', 'child']); } if (rf & RenderFlags.Update) { childInstance = getDirectiveOnNode(0); @@ -902,11 +902,11 @@ describe('query', () => { 2, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -932,7 +932,8 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child1', '', 'child2', ''], ['foo', 'child1', 'bar', 'child2']); + Δelement( + 0, 'div', ['child1', '', 'child2', ''], ['foo', 'child1', 'bar', 'child2']); } if (rf & RenderFlags.Update) { child1Instance = getDirectiveOnNode(0, 0); @@ -942,11 +943,11 @@ describe('query', () => { 3, 0, [Child1, Child2], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo', 'bar'], true, null); + ΔviewQuery(['foo', 'bar'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -973,7 +974,7 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', ''], ['foo', 'child', 'bar', 'child']); + Δelement(0, 'div', ['child', ''], ['foo', 'child', 'bar', 'child']); } if (rf & RenderFlags.Update) { childInstance = getDirectiveOnNode(0); @@ -982,14 +983,14 @@ describe('query', () => { 3, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); - viewQuery(['bar'], true, null); + ΔviewQuery(['foo'], true, null); + ΔviewQuery(['bar'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.fooQuery = tmp as QueryList); - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.barQuery = tmp as QueryList); } }); @@ -1019,18 +1020,18 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', ''], ['foo', 'child']); + Δelement(0, 'div', ['child', ''], ['foo', 'child']); div = getNativeByIndex(0, getLView()); } }, 2, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, ElementRef); + ΔviewQuery(['foo'], false, ElementRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1055,7 +1056,7 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', ''], ['foo', '', 'bar', 'child']); + Δelement(0, 'div', ['child', ''], ['foo', '', 'bar', 'child']); div = getNativeByIndex(0, getLView()); } if (rf & RenderFlags.Update) { @@ -1065,11 +1066,11 @@ describe('query', () => { 3, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo', 'bar'], false, null); + ΔviewQuery(['foo', 'bar'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1094,17 +1095,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['foo', '']); + Δelement(0, 'div', ['foo', '']); } }, 2, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, Child); + ΔviewQuery(['foo'], false, Child); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1128,17 +1129,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', '']); + Δelement(0, 'div', ['child', '']); } }, 1, 0, [Child, OtherChild], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(Child, false, OtherChild); + ΔviewQuery(Child, false, OtherChild); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1162,17 +1163,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', '']); + Δelement(0, 'div', ['child', '']); } }, 1, 0, [Child, OtherChild], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(OtherChild, false, Child); + ΔviewQuery(OtherChild, false, Child); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1193,17 +1194,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div'); + Δelement(0, 'div'); } }, 1, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(TemplateRef as any, false, ElementRef); + ΔviewQuery(TemplateRef as any, false, ElementRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1226,17 +1227,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', ''], ['foo', '']); + Δelement(0, 'div', ['child', ''], ['foo', '']); } }, 2, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, Child); + ΔviewQuery(['foo'], false, Child); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1260,17 +1261,17 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['child', '']); + Δelement(0, 'div', ['child', '']); } }, 1, 0, [Child], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(TemplateRef as any, false, null); + ΔviewQuery(TemplateRef as any, false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1283,9 +1284,9 @@ describe('query', () => { it('should query templates if the type is TemplateRef (and respect "read" option)', () => { function Cmpt_Template_1(rf: RenderFlags, ctx1: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - text(1, 'Test'); - elementEnd(); + ΔelementStart(0, 'div'); + Δtext(1, 'Test'); + ΔelementEnd(); } } /** @@ -1301,28 +1302,28 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, Cmpt_Template_1, 2, 0, 'ng-template', null, ['foo', ''], - templateRefExtractor); - template( + ΔtemplateRefExtractor); + Δtemplate( 2, Cmpt_Template_1, 2, 0, 'ng-template', null, ['bar', ''], - templateRefExtractor); - template( + ΔtemplateRefExtractor); + Δtemplate( 4, Cmpt_Template_1, 2, 0, 'ng-template', null, ['baz', ''], - templateRefExtractor); + ΔtemplateRefExtractor); } }, 6, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(TemplateRef as any, false, null); - viewQuery(TemplateRef as any, false, ElementRef); + ΔviewQuery(TemplateRef as any, false, null); + ΔviewQuery(TemplateRef as any, false, ElementRef); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.tmplQuery = tmp as QueryList); - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.elemQuery = tmp as QueryList); } }); @@ -1350,12 +1351,12 @@ describe('query', () => { let directiveInstances: ViewContainerManipulatorDirective[] = []; class ViewContainerManipulatorDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: ViewContainerManipulatorDirective, selectors: [['', 'vc', '']], factory: () => { const directiveInstance = - new ViewContainerManipulatorDirective(directiveInject(ViewContainerRef as any)); + new ViewContainerManipulatorDirective(ΔdirectiveInject(ViewContainerRef as any)); directiveInstances.push(directiveInstance); return directiveInstance; } @@ -1376,7 +1377,7 @@ describe('query', () => { function Cmpt_Template_1(rf: RenderFlags, ctx1: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } } @@ -1392,21 +1393,21 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, Cmpt_Template_1, 2, 0, 'ng-template', [AttributeMarker.Bindings, 'ngIf']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngIf', bind(ctx.value)); + ΔelementProperty(0, 'ngIf', Δbind(ctx.value)); } }, 2, 1, [NgIf], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1428,10 +1429,10 @@ describe('query', () => { function Cmpt_Template_1(rf1: RenderFlags, row: NgForOfContext) { if (rf1 & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } if (rf1 & RenderFlags.Update) { - elementProperty(0, 'id', bind(row.$implicit)); + ΔelementProperty(0, 'id', Δbind(row.$implicit)); } } @@ -1447,7 +1448,7 @@ describe('query', () => { // TODO(issue/24571): remove '!'. value !: string[]; query: any; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Cmpt, factory: () => new Cmpt(), selectors: [['my-app']], @@ -1455,19 +1456,19 @@ describe('query', () => { vars: 1, template: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, Cmpt_Template_1, 2, 1, 'ng-template', ['ngForOf', '']); + Δtemplate(0, Cmpt_Template_1, 2, 1, 'ng-template', ['ngForOf', '']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngForOf', bind(ctx.value)); + ΔelementProperty(0, 'ngForOf', Δbind(ctx.value)); } }, viewQuery: function(rf: RenderFlags, ctx: Cmpt) { let tmp: any; if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }, @@ -1501,19 +1502,19 @@ describe('query', () => { function Cmpt_Template_1(rf: RenderFlags, ctx: {idx: number}) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind('foo1_' + ctx.idx)); + ΔelementProperty(0, 'id', Δbind('foo1_' + ctx.idx)); } } function Cmpt_Template_5(rf: RenderFlags, ctx: {idx: number}) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind('foo2_' + ctx.idx)); + ΔelementProperty(0, 'id', Δbind('foo2_' + ctx.idx)); } } @@ -1534,30 +1535,30 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, Cmpt_Template_1, 2, 1, 'ng-template', null, ['tpl1', ''], - templateRefExtractor); - element(2, 'div', ['id', 'middle'], ['foo', '']); - template( + ΔtemplateRefExtractor); + Δelement(2, 'div', ['id', 'middle'], ['foo', '']); + Δtemplate( 4, Cmpt_Template_5, 2, 1, 'ng-template', null, ['tpl2', ''], - templateRefExtractor); - template(6, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'vc']); + ΔtemplateRefExtractor); + Δtemplate(6, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'vc']); } if (rf & RenderFlags.Update) { - tpl1 = reference(1); - tpl2 = reference(5); + tpl1 = Δreference(1); + tpl2 = Δreference(5); } }, 8, 0, [ViewContainerManipulatorDirective], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1610,10 +1611,10 @@ describe('query', () => { function Cmpt_Template_1(rf: RenderFlags, ctx: {idx: number, container_idx: number}) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'id', bind('foo_' + ctx.container_idx + '_' + ctx.idx)); + ΔelementProperty(0, 'id', Δbind('foo_' + ctx.container_idx + '_' + ctx.idx)); } } @@ -1627,7 +1628,7 @@ describe('query', () => { */ class Cmpt { query: any; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Cmpt, factory: () => new Cmpt(), selectors: [['my-app']], @@ -1636,25 +1637,25 @@ describe('query', () => { template: function(rf: RenderFlags, ctx: any) { let tmp: any; if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, Cmpt_Template_1, 2, 1, 'ng-template', [], ['tpl', ''], - templateRefExtractor); - template(2, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'vc']); - template(3, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'vc']); + ΔtemplateRefExtractor); + Δtemplate(2, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'vc']); + Δtemplate(3, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'vc']); } if (rf & RenderFlags.Update) { - tpl = reference(1); + tpl = Δreference(1); } }, viewQuery: (rf: RenderFlags, cmpt: Cmpt) => { let tmp: any; if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (cmpt.query = tmp as QueryList); } }, @@ -1690,14 +1691,14 @@ describe('query', () => { function MyApp_Template_1(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'span', ['id', 'from_tpl'], ['foo', '']); + Δelement(0, 'span', ['id', 'from_tpl'], ['foo', '']); } } class MyApp { show = false; query: any; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: MyApp, factory: () => new MyApp(), selectors: [['my-app']], @@ -1709,25 +1710,25 @@ describe('query', () => { */ template: (rf: RenderFlags, myApp: MyApp) => { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, MyApp_Template_1, 2, 0, 'ng-template', undefined, ['tpl', ''], - templateRefExtractor); - template( + ΔtemplateRefExtractor); + Δtemplate( 2, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'ngTemplateOutlet']); } if (rf & RenderFlags.Update) { - const tplRef = reference(1); - elementProperty(2, 'ngTemplateOutlet', bind(myApp.show ? tplRef : null)); + const tplRef = Δreference(1); + ΔelementProperty(2, 'ngTemplateOutlet', Δbind(myApp.show ? tplRef : null)); } }, directives: () => [NgTemplateOutlet], viewQuery: (rf: RenderFlags, myApp: MyApp) => { let tmp: any; if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (myApp.query = tmp as QueryList); } } @@ -1767,33 +1768,33 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.exp) { - let rf1 = embeddedViewStart(1, 2, 0); + let rf1 = ΔembeddedViewStart(1, 2, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); firstEl = getNativeByIndex(0, getLView()); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1829,37 +1830,37 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'span', null, ['foo', '']); + Δelement(0, 'span', null, ['foo', '']); firstEl = getNativeByIndex(0, getLView()); - container(2); - element(3, 'span', null, ['foo', '']); + Δcontainer(2); + Δelement(3, 'span', null, ['foo', '']); lastEl = getNativeByIndex(3, getLView()); } if (rf & RenderFlags.Update) { - containerRefreshStart(2); + ΔcontainerRefreshStart(2); { if (ctx.exp) { - let rf1 = embeddedViewStart(1, 2, 0); + let rf1 = ΔembeddedViewStart(1, 2, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); viewEl = getNativeByIndex(0, getLView()); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 5, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1900,43 +1901,43 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.exp1) { - let rf0 = embeddedViewStart(0, 2, 0); + let rf0 = ΔembeddedViewStart(0, 2, 0); { if (rf0 & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); firstEl = getNativeByIndex(0, getLView()); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } if (ctx.exp2) { - let rf1 = embeddedViewStart(1, 2, 0); + let rf1 = ΔembeddedViewStart(1, 2, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'span', null, ['foo', '']); + Δelement(0, 'span', null, ['foo', '']); lastEl = getNativeByIndex(0, getLView()); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -1974,50 +1975,50 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.exp1) { - let rf0 = embeddedViewStart(0, 3, 0); + let rf0 = ΔembeddedViewStart(0, 3, 0); { if (rf0 & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); firstEl = getNativeByIndex(0, getLView()); - container(2); + Δcontainer(2); } if (rf0 & RenderFlags.Update) { - containerRefreshStart(2); + ΔcontainerRefreshStart(2); { if (ctx.exp2) { - let rf2 = embeddedViewStart(0, 2, 0); + let rf2 = ΔembeddedViewStart(0, 2, 0); { if (rf2) { - element(0, 'span', null, ['foo', '']); + Δelement(0, 'span', null, ['foo', '']); lastEl = getNativeByIndex(0, getLView()); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -2059,38 +2060,38 @@ describe('query', () => { 'cmpt', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); - element(1, 'span', null, ['foo', '']); + Δcontainer(0); + Δelement(1, 'span', null, ['foo', '']); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (ctx.exp) { - let rf0 = embeddedViewStart(0, 4, 0); + let rf0 = ΔembeddedViewStart(0, 4, 0); { if (rf0 & RenderFlags.Create) { - elementStart(0, 'div', null, ['foo', '']); - { element(2, 'div', null, ['foo', '']); } - elementEnd(); + ΔelementStart(0, 'div', null, ['foo', '']); + { Δelement(2, 'div', null, ['foo', '']); } + ΔelementEnd(); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 3, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); - viewQuery(['foo'], false, null); + ΔviewQuery(['foo'], true, null); + ΔviewQuery(['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.deep = tmp as QueryList); - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.shallow = tmp as QueryList); } }); @@ -2129,37 +2130,37 @@ describe('query', () => { 'some-component-with-query', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } }, 2, 0, [], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], false, null); + ΔviewQuery(['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = queryInstance = tmp as QueryList); } }); - function createTemplate() { container(0); } + function createTemplate() { Δcontainer(0); } function updateTemplate() { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { if (condition) { - let rf1 = embeddedViewStart(1, 1, 0); + let rf1 = ΔembeddedViewStart(1, 1, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'some-component-with-query'); + Δelement(0, 'some-component-with-query'); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } /** @@ -2186,17 +2187,18 @@ describe('query', () => { this.vcr.createEmbeddedView(this.temp); } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: SomeDir, selectors: [['', 'someDir', '']], - factory: () => new SomeDir( - directiveInject(ViewContainerRef as any), directiveInject(TemplateRef as any)) + factory: + () => new SomeDir( + ΔdirectiveInject(ViewContainerRef as any), ΔdirectiveInject(TemplateRef as any)) }); } function AppComponent_Template_1(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div'); + Δelement(0, 'div'); } } @@ -2208,19 +2210,19 @@ describe('query', () => { 'app', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, AppComponent_Template_1, 1, 0, 'div', [AttributeMarker.Template, 'someDir']); - element(1, 'div', null, ['foo', '']); + Δelement(1, 'div', null, ['foo', '']); } }, 3, 0, [SomeDir], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.query = tmp as QueryList); } }); @@ -2250,17 +2252,17 @@ describe('query', () => { this.contentCheckedQuerySnapshot = this.foos ? this.foos.length : 0; } - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: WithContentDirective, selectors: [['', 'with-content', '']], factory: () => withContentInstance = new WithContentDirective(), contentQueries: (rf: RenderFlags, ctx: any, dirIndex: number) => { if (rf & RenderFlags.Create) { - contentQuery(dirIndex, ['foo'], true, null); + ΔcontentQuery(dirIndex, ['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.foos = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.foos = tmp); } } }); @@ -2270,7 +2272,7 @@ describe('query', () => { // @ContentChildren('foo', {descendants: false}) foos !: QueryList; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ShallowComp, selectors: [['shallow-comp']], factory: () => shallowCompInstance = new ShallowComp(), @@ -2279,11 +2281,11 @@ describe('query', () => { vars: 0, contentQueries: (rf: RenderFlags, ctx: any, dirIndex: number) => { if (rf & RenderFlags.Create) { - contentQuery(dirIndex, ['foo'], false, null); + ΔcontentQuery(dirIndex, ['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.foos = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.foos = tmp); } } }); @@ -2297,9 +2299,9 @@ describe('query', () => { */ const AppComponent = createComponent('app-component', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', [AttributeMarker.Bindings, 'with-content']); - { element(1, 'span', null, ['foo', '']); } - elementEnd(); + ΔelementStart(0, 'div', [AttributeMarker.Bindings, 'with-content']); + { Δelement(1, 'span', null, ['foo', '']); } + ΔelementEnd(); } }, 3, 0, [WithContentDirective]); @@ -2328,23 +2330,23 @@ describe('query', () => { */ const AppComponent = createComponent('app-component', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - container(0); + Δcontainer(0); } if (rf & RenderFlags.Update) { - containerRefreshStart(0); + ΔcontainerRefreshStart(0); { for (let i = 0; i < 3; i++) { - let rf = embeddedViewStart(1, 3, 0); + let rf = ΔembeddedViewStart(1, 3, 0); if (rf & RenderFlags.Create) { - elementStart(0, 'div', [AttributeMarker.Bindings, 'with-content']); - { element(1, 'span', null, ['foo', '']); } - elementEnd(); + ΔelementStart(0, 'div', [AttributeMarker.Bindings, 'with-content']); + { Δelement(1, 'span', null, ['foo', '']); } + ΔelementEnd(); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, 1, 0, [WithContentDirective]); @@ -2370,7 +2372,7 @@ describe('query', () => { */ const AppComponent = createComponent('app-component', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', ['with-content', ''], ['foo', '']); + Δelement(0, 'div', ['with-content', ''], ['foo', '']); } }, 2, 0, [WithContentDirective]); @@ -2382,7 +2384,7 @@ describe('query', () => { it('should match shallow content queries in views inserted / removed by ngIf', () => { function IfTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div', null, ['foo', '']); + Δelement(0, 'div', null, ['foo', '']); } } @@ -2393,12 +2395,12 @@ describe('query', () => { */ const AppComponent = createComponent('app-component', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'shallow-comp'); - { template(1, IfTemplate, 2, 0, 'div', [AttributeMarker.Template, 'ngIf', '']); } - elementEnd(); + ΔelementStart(0, 'shallow-comp'); + { Δtemplate(1, IfTemplate, 2, 0, 'div', [AttributeMarker.Template, 'ngIf', '']); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(1, 'ngIf', bind(ctx.showing)); + ΔelementProperty(1, 'ngIf', Δbind(ctx.showing)); } }, 2, 1, [ShallowComp, NgIf]); @@ -2431,20 +2433,20 @@ describe('query', () => { 'app-component', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['with-content', '']); - { element(1, 'div', null, ['foo', '']); } - elementEnd(); - element(3, 'div', ['id', 'after'], ['bar', '']); + ΔelementStart(0, 'div', ['with-content', '']); + { Δelement(1, 'div', null, ['foo', '']); } + ΔelementEnd(); + Δelement(3, 'div', ['id', 'after'], ['bar', '']); } }, 5, 0, [WithContentDirective], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo', 'bar'], true, null); + ΔviewQuery(['foo', 'bar'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.foos = tmp as QueryList); } }); @@ -2472,20 +2474,20 @@ describe('query', () => { 'app-component', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['with-content', '']); - { element(1, 'div', ['id', 'yes'], ['foo', '']); } - elementEnd(); - element(3, 'div', null, ['foo', '']); + ΔelementStart(0, 'div', ['with-content', '']); + { Δelement(1, 'div', ['id', 'yes'], ['foo', '']); } + ΔelementEnd(); + Δelement(3, 'div', null, ['foo', '']); } }, 5, 0, [WithContentDirective], [], function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['bar'], true, null); + ΔviewQuery(['bar'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.bars = tmp as QueryList); } }); @@ -2498,7 +2500,7 @@ describe('query', () => { it('should report results to appropriate queries where deep content queries are nested', () => { class QueryDirective { fooBars: any; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: QueryDirective, selectors: [['', 'query', '']], exportAs: ['query'], @@ -2507,11 +2509,11 @@ describe('query', () => { // @ContentChildren('foo, bar, baz', {descendants: true}) // fooBars: QueryList; if (rf & RenderFlags.Create) { - contentQuery(dirIndex, ['foo', 'bar', 'baz'], true, null); + ΔcontentQuery(dirIndex, ['foo', 'bar', 'baz'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.fooBars = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.fooBars = tmp); } } }); @@ -2533,19 +2535,19 @@ describe('query', () => { */ function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', [AttributeMarker.Bindings, 'query'], ['out', 'query']); + ΔelementStart(0, 'div', [AttributeMarker.Bindings, 'query'], ['out', 'query']); { - element(2, 'span', ['id', 'foo'], ['foo', '']); - elementStart(4, 'div', [AttributeMarker.Bindings, 'query'], ['in', 'query']); - { element(6, 'span', ['id', 'bar'], ['bar', '']); } - elementEnd(); - element(8, 'span', ['id', 'baz'], ['baz', '']); + Δelement(2, 'span', ['id', 'foo'], ['foo', '']); + ΔelementStart(4, 'div', [AttributeMarker.Bindings, 'query'], ['in', 'query']); + { Δelement(6, 'span', ['id', 'bar'], ['bar', '']); } + ΔelementEnd(); + Δelement(8, 'span', ['id', 'baz'], ['baz', '']); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - outInstance = load(1); - inInstance = load(5); + outInstance = Δload(1); + inInstance = Δload(5); } }, 10, 0, [QueryDirective]); @@ -2562,7 +2564,7 @@ describe('query', () => { class QueryDirective { fooBars: any; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: QueryDirective, selectors: [['', 'query', '']], exportAs: ['query'], @@ -2571,11 +2573,11 @@ describe('query', () => { // @ContentChildren('foo', {descendants: true}) // fooBars: QueryList; if (rf & RenderFlags.Create) { - contentQuery(dirIndex, ['foo'], false, null); + ΔcontentQuery(dirIndex, ['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.fooBars = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.fooBars = tmp); } } }); @@ -2592,17 +2594,17 @@ describe('query', () => { */ function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['query', ''], ['out', 'query']); + ΔelementStart(0, 'div', ['query', ''], ['out', 'query']); { - elementStart(2, 'div', ['query', ''], ['in', 'query', 'foo', '']); - { element(5, 'span', ['id', 'bar'], ['foo', '']); } - elementEnd(); + ΔelementStart(2, 'div', ['query', ''], ['in', 'query', 'foo', '']); + { Δelement(5, 'span', ['id', 'bar'], ['foo', '']); } + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - outInstance = load(1); - inInstance = load(3); + outInstance = Δload(1); + inInstance = Δload(3); } }, 7, 0, [QueryDirective]); @@ -2618,7 +2620,7 @@ describe('query', () => { class QueryDirective { fooBars: any; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: QueryDirective, selectors: [['', 'query', '']], exportAs: ['query'], @@ -2627,11 +2629,11 @@ describe('query', () => { // @ContentChildren('foo', {descendants: true}) // fooBars: QueryList; if (rf & RenderFlags.Create) { - contentQuery(dirIndex, ['foo'], false, null); + ΔcontentQuery(dirIndex, ['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.fooBars = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.fooBars = tmp); } } }); @@ -2648,17 +2650,17 @@ describe('query', () => { */ function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['query', ''], ['out', 'query']); + ΔelementStart(0, 'div', ['query', ''], ['out', 'query']); { - elementStart(2, 'div', ['query', ''], ['in', 'query', 'foo', '']); - { element(5, 'span', ['id', 'bar'], ['foo', '']); } - elementEnd(); + ΔelementStart(2, 'div', ['query', ''], ['in', 'query', 'foo', '']); + { Δelement(5, 'span', ['id', 'bar'], ['foo', '']); } + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - outInstance = load(1); - inInstance = load(3); + outInstance = Δload(1); + inInstance = Δload(3); } }, 7, 0, [QueryDirective]); @@ -2678,7 +2680,7 @@ describe('query', () => { () => { class ShallowQueryDirective { foos: any; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: ShallowQueryDirective, selectors: [['', 'shallow-query', '']], exportAs: ['shallow-query'], @@ -2687,11 +2689,11 @@ describe('query', () => { // @ContentChildren('foo', {descendants: false}) // foos: QueryList; if (rf & RenderFlags.Create) { - contentQuery(dirIndex, ['foo'], false, null); + ΔcontentQuery(dirIndex, ['foo'], false, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.foos = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.foos = tmp); } } }); @@ -2699,7 +2701,7 @@ describe('query', () => { class DeepQueryDirective { foos: any; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: DeepQueryDirective, selectors: [['', 'deep-query', '']], exportAs: ['deep-query'], @@ -2708,11 +2710,11 @@ describe('query', () => { // @ContentChildren('foo', {descendants: true}) // foos: QueryList; if (rf & RenderFlags.Create) { - contentQuery(dirIndex, ['foo'], true, null); + ΔcontentQuery(dirIndex, ['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.foos = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.foos = tmp); } } }); @@ -2733,20 +2735,20 @@ describe('query', () => { */ function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart( + ΔelementStart( 0, 'div', [AttributeMarker.Bindings, 'shallow-query', 'deep-query'], ['shallow', 'shallow-query', 'deep', 'deep-query']); { - element(3, 'span', null, ['foo', '']); - elementStart(5, 'div'); - { element(6, 'span', null, ['foo', '']); } - elementEnd(); + Δelement(3, 'span', null, ['foo', '']); + ΔelementStart(5, 'div'); + { Δelement(6, 'span', null, ['foo', '']); } + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - shallowInstance = load(1); - deepInstance = load(2); + shallowInstance = Δload(1); + deepInstance = Δload(2); } }, 8, 0, [ShallowQueryDirective, DeepQueryDirective]); @@ -2761,7 +2763,7 @@ describe('query', () => { class TextDirective { value !: string; - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: TextDirective, selectors: [['', 'text', '']], factory: () => new TextDirective(), @@ -2776,7 +2778,7 @@ describe('query', () => { // @ContentChildren(TextDirective) texts !: QueryList; - static ngComponentDef = defineDirective({ + static ngComponentDef = ΔdefineDirective({ type: ContentQueryDirective, selectors: [['', 'content-query', '']], factory: () => contentQueryDirective = new ContentQueryDirective(), @@ -2784,11 +2786,11 @@ describe('query', () => { // @ContentChildren(TextDirective, {descendants: true}) // texts: QueryList; if (rf & RenderFlags.Create) { - contentQuery(dirIndex, TextDirective, true, null); + ΔcontentQuery(dirIndex, TextDirective, true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadContentQuery()) && (ctx.texts = tmp); + ΔqueryRefresh(tmp = ΔloadContentQuery()) && (ctx.texts = tmp); } } }); @@ -2809,17 +2811,17 @@ describe('query', () => { */ function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['content-query']); + ΔelementStart(0, 'div', ['content-query']); { - element(1, 'span', ['text', 'A']); - elementStart(2, 'div', ['text', 'B']); - elementStart(3, 'span', ['text', 'C']); - { element(4, 'span', ['text', 'D']); } - elementEnd(); - elementEnd(); - element(5, 'span', ['text', 'E']); + Δelement(1, 'span', ['text', 'A']); + ΔelementStart(2, 'div', ['text', 'B']); + ΔelementStart(3, 'span', ['text', 'C']); + { Δelement(4, 'span', ['text', 'D']); } + ΔelementEnd(); + ΔelementEnd(); + Δelement(5, 'span', ['text', 'E']); } - elementEnd(); + ΔelementEnd(); } }, 6, 0, [TextDirective, ContentQueryDirective]); @@ -2844,19 +2846,19 @@ describe('query', () => { // @ViewChildren(TextDirective) texts !: QueryList; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ViewQueryComponent, selectors: [['view-query']], factory: () => new ViewQueryComponent(), template: function(rf: RenderFlags, ctx: ViewQueryComponent) { if (rf & RenderFlags.Create) { - element(0, 'span', ['text', 'A']); - elementStart(1, 'div', ['text', 'B']); - elementStart(2, 'span', ['text', 'C']); - { element(3, 'span', ['text', 'D']); } - elementEnd(); - elementEnd(); - element(4, 'span', ['text', 'E']); + Δelement(0, 'span', ['text', 'A']); + ΔelementStart(1, 'div', ['text', 'B']); + ΔelementStart(2, 'span', ['text', 'C']); + { Δelement(3, 'span', ['text', 'D']); } + ΔelementEnd(); + ΔelementEnd(); + Δelement(4, 'span', ['text', 'E']); } }, consts: 5, @@ -2864,10 +2866,10 @@ describe('query', () => { viewQuery: function(rf: RenderFlags, ctx: ViewQueryComponent) { let tmp: any; if (rf & RenderFlags.Create) { - viewQuery(TextDirective, true, null); + ΔviewQuery(TextDirective, true, null); } if (rf & RenderFlags.Update) { - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.texts = tmp as QueryList); } }, diff --git a/packages/core/test/render3/render_util.ts b/packages/core/test/render3/render_util.ts index b56876e96f..f52e1e6409 100644 --- a/packages/core/test/render3/render_util.ts +++ b/packages/core/test/render3/render_util.ts @@ -27,7 +27,7 @@ import {CreateComponentOptions} from '../../src/render3/component'; import {getDirectivesAtNodeIndex, getLContext, isComponentInstance} from '../../src/render3/context_discovery'; import {extractDirectiveDef, extractPipeDef} from '../../src/render3/definition'; import {NG_ELEMENT_ID} from '../../src/render3/fields'; -import {ComponentTemplate, ComponentType, DirectiveDef, DirectiveType, ProvidersFeature, RenderFlags, defineComponent, defineDirective, renderComponent as _renderComponent, tick} from '../../src/render3/index'; +import {ComponentTemplate, ComponentType, DirectiveDef, DirectiveType, RenderFlags, renderComponent as _renderComponent, tick, ΔProvidersFeature, ΔdefineComponent, ΔdefineDirective} from '../../src/render3/index'; import {DirectiveDefList, DirectiveTypesOrFactory, HostBindingsFunction, PipeDef, PipeDefList, PipeTypesOrFactory} from '../../src/render3/interfaces/definition'; import {PlayerHandler} from '../../src/render3/interfaces/player'; import {ProceduralRenderer3, RComment, RElement, RNode, RText, Renderer3, RendererFactory3, RendererStyleFlags3, domRendererFactory3} from '../../src/render3/interfaces/renderer'; @@ -317,7 +317,7 @@ export function createComponent( viewProviders: Provider[] = [], hostBindings?: HostBindingsFunction): ComponentType { return class Component { value: any; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Component, selectors: [[name]], consts: consts, @@ -328,7 +328,7 @@ export function createComponent( directives: directives, hostBindings, pipes: pipes, features: (providers.length > 0 || viewProviders.length > 0)? - [ProvidersFeature(providers || [], viewProviders || [])]: [] + [ΔProvidersFeature(providers || [], viewProviders || [])]: [] }); }; } @@ -336,7 +336,7 @@ export function createComponent( export function createDirective( name: string, {exportAs}: {exportAs?: string[]} = {}): DirectiveType { return class Directive { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: Directive, selectors: [['', name, '']], factory: () => new Directive(), diff --git a/packages/core/test/render3/renderer_factory_spec.ts b/packages/core/test/render3/renderer_factory_spec.ts index d046111783..82a4708aae 100644 --- a/packages/core/test/render3/renderer_factory_spec.ts +++ b/packages/core/test/render3/renderer_factory_spec.ts @@ -10,8 +10,8 @@ import {AnimationEvent} from '@angular/animations'; import {MockAnimationDriver, MockAnimationPlayer} from '@angular/animations/browser/testing'; import {RendererType2, ViewEncapsulation} from '../../src/core'; -import {defineComponent} from '../../src/render3/index'; -import {bind, container, containerRefreshEnd, containerRefreshStart, element, elementEnd, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, listener, text, tick} from '../../src/render3/instructions/all'; +import {ΔdefineComponent} from '../../src/render3/index'; +import {tick, Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, Δelement, ΔelementEnd, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δlistener, Δtext} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {getAnimationRendererFactory2, getRendererFactory2} from './imported_renderer2'; @@ -29,7 +29,7 @@ describe('renderer factory lifecycle', () => { rendererFactory.end = () => logs.push('end'); class SomeComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SomeComponent, encapsulation: ViewEncapsulation.None, selectors: [['some-component']], @@ -38,7 +38,7 @@ describe('renderer factory lifecycle', () => { template: function(rf: RenderFlags, ctx: SomeComponent) { if (rf & RenderFlags.Create) { logs.push('component create'); - text(0, 'foo'); + Δtext(0, 'foo'); } if (rf & RenderFlags.Update) { logs.push('component update'); @@ -49,7 +49,7 @@ describe('renderer factory lifecycle', () => { } class SomeComponentWhichThrows { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SomeComponentWhichThrows, encapsulation: ViewEncapsulation.None, selectors: [['some-component-with-Error']], @@ -65,7 +65,7 @@ describe('renderer factory lifecycle', () => { function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { logs.push('function create'); - text(0, 'bar'); + Δtext(0, 'bar'); } if (rf & RenderFlags.Update) { logs.push('function update'); @@ -77,8 +77,8 @@ describe('renderer factory lifecycle', () => { function TemplateWithComponent(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { logs.push('function_with_component create'); - text(0, 'bar'); - element(1, 'some-component'); + Δtext(0, 'bar'); + Δelement(1, 'some-component'); } if (rf & RenderFlags.Update) { logs.push('function_with_component update'); @@ -139,7 +139,7 @@ describe('animation renderer factory', () => { }); class SomeComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SomeComponent, encapsulation: ViewEncapsulation.None, selectors: [['some-component']], @@ -147,7 +147,7 @@ describe('animation renderer factory', () => { vars: 0, template: function(rf: RenderFlags, ctx: SomeComponent) { if (rf & RenderFlags.Create) { - text(0, 'foo'); + Δtext(0, 'foo'); } }, factory: () => new SomeComponent @@ -160,23 +160,23 @@ describe('animation renderer factory', () => { callback(event: AnimationEvent) { eventLogs.push(`${event.fromState ? event.fromState : event.toState} - ${event.phaseName}`); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SomeComponentWithAnimation, selectors: [['some-component']], consts: 2, vars: 1, template: function(rf: RenderFlags, ctx: SomeComponentWithAnimation) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); + ΔelementStart(0, 'div'); { - listener('@myAnimation.start', ctx.callback.bind(ctx)); - listener('@myAnimation.done', ctx.callback.bind(ctx)); - text(1, 'foo'); + Δlistener('@myAnimation.start', ctx.callback.bind(ctx)); + Δlistener('@myAnimation.done', ctx.callback.bind(ctx)); + Δtext(1, 'foo'); } - elementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, '@myAnimation', bind(ctx.exp)); + ΔelementProperty(0, '@myAnimation', Δbind(ctx.exp)); } }, factory: () => new SomeComponentWithAnimation, @@ -234,27 +234,27 @@ describe('Renderer2 destruction hooks', () => { let condition = true; function createTemplate() { - elementStart(0, 'div'); - { container(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δcontainer(1); } + ΔelementEnd(); } function updateTemplate() { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { if (condition) { - let rf1 = embeddedViewStart(1, 3, 0); + let rf1 = ΔembeddedViewStart(1, 3, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'span'); - element(1, 'span'); - element(2, 'span'); + Δelement(0, 'span'); + Δelement(1, 'span'); + Δelement(2, 'span'); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } const t = new TemplateFixture( @@ -270,7 +270,7 @@ describe('Renderer2 destruction hooks', () => { it('should call renderer.destroy for each component destroyed', () => { class SimpleComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SimpleComponent, encapsulation: ViewEncapsulation.None, selectors: [['simple']], @@ -278,7 +278,7 @@ describe('Renderer2 destruction hooks', () => { vars: 0, template: function(rf: RenderFlags, ctx: SimpleComponent) { if (rf & RenderFlags.Create) { - element(0, 'span'); + Δelement(0, 'span'); } }, factory: () => new SimpleComponent, @@ -288,27 +288,27 @@ describe('Renderer2 destruction hooks', () => { let condition = true; function createTemplate() { - elementStart(0, 'div'); - { container(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δcontainer(1); } + ΔelementEnd(); } function updateTemplate() { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); { if (condition) { - let rf1 = embeddedViewStart(1, 3, 0); + let rf1 = ΔembeddedViewStart(1, 3, 0); { if (rf1 & RenderFlags.Create) { - element(0, 'simple'); - element(1, 'span'); - element(2, 'simple'); + Δelement(0, 'simple'); + Δelement(1, 'span'); + Δelement(2, 'simple'); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } const t = new TemplateFixture( diff --git a/packages/core/test/render3/styling/class_and_style_bindings_spec.ts b/packages/core/test/render3/styling/class_and_style_bindings_spec.ts index 68e8688656..83294c6fa6 100644 --- a/packages/core/test/render3/styling/class_and_style_bindings_spec.ts +++ b/packages/core/test/render3/styling/class_and_style_bindings_spec.ts @@ -9,7 +9,7 @@ import {createLView, createTView} from '@angular/core/src/render3/instructions/s import {createRootContext} from '../../../src/render3/component'; import {getLContext} from '../../../src/render3/context_discovery'; -import {defineComponent, defineDirective, elementClassProp, elementEnd, elementHostClassProp, elementHostStyleProp, elementHostStyling, elementHostStylingApply, elementStart, elementStyleProp, elementStyling, elementStylingApply, elementStylingMap, namespaceSVG} from '../../../src/render3/index'; +import {ΔdefineComponent, ΔdefineDirective, ΔelementClassProp, ΔelementEnd, ΔelementHostClassProp, ΔelementHostStyleProp, ΔelementHostStyling, ΔelementHostStylingApply, ΔelementStart, ΔelementStyleProp, ΔelementStyling, ΔelementStylingApply, ΔelementStylingMap, ΔnamespaceSVG} from '../../../src/render3/index'; import {RenderFlags} from '../../../src/render3/interfaces/definition'; import {AttributeMarker, TAttributes} from '../../../src/render3/interfaces/node'; import {BindingStore, BindingType, PlayState, Player, PlayerContext, PlayerFactory, PlayerHandler} from '../../../src/render3/interfaces/player'; @@ -22,7 +22,7 @@ import {CorePlayerHandler} from '../../../src/render3/styling/core_player_handle import {registerHostDirective} from '../../../src/render3/styling/host_instructions_queue'; import {BoundPlayerFactory, bindPlayerFactory} from '../../../src/render3/styling/player_factory'; import {allocStylingContext, createEmptyStylingContext} from '../../../src/render3/styling/util'; -import {defaultStyleSanitizer} from '../../../src/sanitization/sanitization'; +import {ΔdefaultStyleSanitizer} from '../../../src/sanitization/sanitization'; import {StyleSanitizeFn} from '../../../src/sanitization/style_sanitizer'; import {ComponentFixture, renderToHtml} from '../render_util'; @@ -376,7 +376,7 @@ describe('style and class based bindings', () => { () => { function Template(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span', [ + ΔelementStart(0, 'span', [ AttributeMarker.Styles, 'width', '200px', @@ -385,13 +385,13 @@ describe('style and class based bindings', () => { 'opacity', '0.5', ]); - elementStyling(null, ['width']); - elementEnd(); + ΔelementStyling(null, ['width']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingMap(0, null, ctx.myStyles); - elementStyleProp(0, 0, ctx.myWidth); - elementStylingApply(0); + ΔelementStylingMap(0, null, ctx.myStyles); + ΔelementStyleProp(0, 0, ctx.myWidth); + ΔelementStylingApply(0); } } @@ -411,7 +411,7 @@ describe('style and class based bindings', () => { class Comp { diameter: number = 100; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, selectors: [['comp']], factory: () => new Comp(), @@ -419,17 +419,17 @@ describe('style and class based bindings', () => { vars: 0, template: (rf: RenderFlags, ctx: Comp) => { if (rf & RenderFlags.Create) { - namespaceSVG(); - elementStart(0, 'svg'); - elementStyling(null, ['width', 'height']); - elementStart(1, 'circle', ['stroke', 'green', 'fill', 'yellow']); - elementEnd(); - elementEnd(); + ΔnamespaceSVG(); + ΔelementStart(0, 'svg'); + ΔelementStyling(null, ['width', 'height']); + ΔelementStart(1, 'circle', ['stroke', 'green', 'fill', 'yellow']); + ΔelementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStyleProp(0, 0, ctx.diameter, 'px'); - elementStyleProp(0, 1, ctx.diameter, 'px'); - elementStylingApply(0); + ΔelementStyleProp(0, 0, ctx.diameter, 'px'); + ΔelementStyleProp(0, 1, ctx.diameter, 'px'); + ΔelementStylingApply(0); } } }); @@ -453,7 +453,7 @@ describe('style and class based bindings', () => { borderWidth: string = '3px'; borderColor: string = 'red'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, selectors: [['comp']], factory: () => new Comp(), @@ -461,14 +461,14 @@ describe('style and class based bindings', () => { vars: 0, template: (rf: RenderFlags, ctx: Comp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - elementStyling(null, ['borderWidth', 'border-color']); - elementEnd(); + ΔelementStart(0, 'div'); + ΔelementStyling(null, ['borderWidth', 'border-color']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStyleProp(0, 0, ctx.borderWidth); - elementStyleProp(0, 1, ctx.borderColor); - elementStylingApply(0); + ΔelementStyleProp(0, 0, ctx.borderWidth); + ΔelementStyleProp(0, 1, ctx.borderColor); + ΔelementStylingApply(0); } } }); @@ -1269,7 +1269,7 @@ describe('style and class based bindings', () => { () => { const getStyles = trackStylesFactory(); const styleBindings = ['border-image', 'border-width']; - const styleSanitizer = defaultStyleSanitizer; + const styleSanitizer = ΔdefaultStyleSanitizer; const stylingContext = createStylingContext(null, styleBindings, null, null, styleSanitizer); @@ -3086,7 +3086,7 @@ describe('style and class based bindings', () => { const fooFactory = bindPlayerFactory(classBuildFn, true); class Comp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, selectors: [['comp']], directives: [Comp], @@ -3095,15 +3095,15 @@ describe('style and class based bindings', () => { vars: 0, template: (rf: RenderFlags, ctx: Comp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - elementStyling(['foo'], ['width']); - elementEnd(); + ΔelementStart(0, 'div'); + ΔelementStyling(['foo'], ['width']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingMap(0, classMapFactory, styleMapFactory); - elementStyleProp(0, 0, widthFactory); - elementClassProp(0, 0, fooFactory); - elementStylingApply(0); + ΔelementStylingMap(0, classMapFactory, styleMapFactory); + ΔelementStyleProp(0, 0, widthFactory); + ΔelementClassProp(0, 0, fooFactory); + ΔelementStylingApply(0); } } }); @@ -3159,7 +3159,7 @@ describe('style and class based bindings', () => { let fooFactory = bindPlayerFactory(buildFn, true) as BoundPlayerFactory; class Comp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, selectors: [['comp']], directives: [Comp], @@ -3168,15 +3168,15 @@ describe('style and class based bindings', () => { vars: 0, template: (rf: RenderFlags, ctx: Comp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - elementStyling(['foo'], ['width']); - elementEnd(); + ΔelementStart(0, 'div'); + ΔelementStyling(['foo'], ['width']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingMap(0, classMapFactory, styleMapFactory); - elementStyleProp(0, 0, widthFactory); - elementClassProp(0, 0, fooFactory); - elementStylingApply(0); + ΔelementStylingMap(0, classMapFactory, styleMapFactory); + ΔelementStyleProp(0, 0, widthFactory); + ΔelementClassProp(0, 0, fooFactory); + ΔelementStylingApply(0); } } }); @@ -3234,18 +3234,18 @@ describe('style and class based bindings', () => { const fooFactory2 = bindPlayerFactory(classBuildFn, true); class MyDir { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: MyDir, selectors: [['', 'my-dir', '']], factory: () => new MyDir(), hostBindings: function(rf: RenderFlags, ctx: MyDir, elementIndex: number) { if (rf & RenderFlags.Create) { - elementHostStyling(['foo'], ['width']); + ΔelementHostStyling(['foo'], ['width']); } if (rf & RenderFlags.Update) { - elementHostStyleProp(0, ctx.widthFactory); - elementHostClassProp(0, ctx.fooFactory); - elementHostStylingApply(); + ΔelementHostStyleProp(0, ctx.widthFactory); + ΔelementHostClassProp(0, ctx.fooFactory); + ΔelementHostStylingApply(); } } }); @@ -3255,7 +3255,7 @@ describe('style and class based bindings', () => { } class Comp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, selectors: [['comp']], directives: [Comp, MyDir], @@ -3264,14 +3264,14 @@ describe('style and class based bindings', () => { vars: 0, template: (rf: RenderFlags, ctx: Comp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div', ['my-dir', '']); - elementStyling(['foo'], ['width']); - elementEnd(); + ΔelementStart(0, 'div', ['my-dir', '']); + ΔelementStyling(['foo'], ['width']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStyleProp(0, 0, ctx.widthFactory); - elementClassProp(0, 0, ctx.fooFactory); - elementStylingApply(0); + ΔelementStyleProp(0, 0, ctx.widthFactory); + ΔelementClassProp(0, 0, ctx.fooFactory); + ΔelementStylingApply(0); } } }); diff --git a/packages/core/test/render3/styling/players_spec.ts b/packages/core/test/render3/styling/players_spec.ts index 768d8daebd..1cf5d8d934 100644 --- a/packages/core/test/render3/styling/players_spec.ts +++ b/packages/core/test/render3/styling/players_spec.ts @@ -8,12 +8,12 @@ import {QueryList} from '@angular/core'; import {RenderFlags} from '@angular/core/src/render3'; -import {defineComponent, getHostElement, loadViewQuery, viewQuery} from '../../../src/render3/index'; -import {element, elementEnd, elementStart, elementStyling, elementStylingApply, markDirty} from '../../../src/render3/instructions/all'; +import {getHostElement, ΔdefineComponent, ΔloadViewQuery, ΔviewQuery} from '../../../src/render3/index'; +import {markDirty, Δelement, ΔelementEnd, ΔelementStart, ΔelementStyling, ΔelementStylingApply} from '../../../src/render3/instructions/all'; import {PlayState, Player, PlayerHandler} from '../../../src/render3/interfaces/player'; import {RElement} from '../../../src/render3/interfaces/renderer'; import {addPlayer, getPlayers} from '../../../src/render3/players'; -import {queryRefresh} from '../../../src/render3/query'; +import {ΔqueryRefresh} from '../../../src/render3/query'; import {getOrCreatePlayerContext} from '../../../src/render3/styling/util'; import {ComponentFixture} from '../render_util'; @@ -228,7 +228,7 @@ function buildElementWithStyling() { } class Comp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Comp, exportAs: ['child'], selectors: [['child-comp']], @@ -237,7 +237,7 @@ class Comp { vars: 0, template: (rf: RenderFlags, ctx: Comp) => { if (rf & RenderFlags.Create) { - element(0, 'div'); + Δelement(0, 'div'); } ctx.logger(); } @@ -248,7 +248,7 @@ class Comp { } class CompWithStyling { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: CompWithStyling, exportAs: ['child-styled'], selectors: [['child-styled-comp']], @@ -257,12 +257,12 @@ class CompWithStyling { vars: 0, template: (rf: RenderFlags, ctx: CompWithStyling) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - elementStyling(['fooClass']); - elementEnd(); + ΔelementStart(0, 'div'); + ΔelementStyling(['fooClass']); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementStylingApply(0); + ΔelementStylingApply(0); } } }); @@ -271,7 +271,7 @@ class CompWithStyling { } class SuperComp { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SuperComp, selectors: [['super-comp']], factory: () => new SuperComp(), @@ -279,18 +279,19 @@ class SuperComp { vars: 0, template: (rf: RenderFlags, ctx: SuperComp) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - element(1, 'child-comp', ['child', ''], ['child', 'child']); - elementEnd(); + ΔelementStart(0, 'div'); + Δelement(1, 'child-comp', ['child', ''], ['child', 'child']); + ΔelementEnd(); } }, viewQuery: function(rf: RenderFlags, ctx: SuperComp) { if (rf & RenderFlags.Create) { - viewQuery(['child'], true, null); + ΔviewQuery(['child'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && (ctx.query = tmp as QueryList); + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && + (ctx.query = tmp as QueryList); } }, directives: [Comp] diff --git a/packages/core/test/render3/template_ref_spec.ts b/packages/core/test/render3/template_ref_spec.ts index aaa4ee793b..d5059f366e 100644 --- a/packages/core/test/render3/template_ref_spec.ts +++ b/packages/core/test/render3/template_ref_spec.ts @@ -8,21 +8,21 @@ import {TemplateRef} from '@angular/core'; -import {ComponentFixture, createComponent, getDirectiveOnNode} from './render_util'; -import {bind, directiveInject, element, elementContainerStart, elementContainerEnd, elementProperty, template, text} from '../../src/render3/instructions/all'; -import {RenderFlags, defineDirective, AttributeMarker} from '../../src/render3/index'; +import {AttributeMarker, RenderFlags, ΔdefineDirective} from '../../src/render3/index'; +import {Δbind, ΔdirectiveInject, Δelement, ΔelementContainerEnd, ΔelementContainerStart, ΔelementProperty, Δtemplate, Δtext} from '../../src/render3/instructions/all'; import {NgIf} from './common_with_def'; +import {ComponentFixture, createComponent, getDirectiveOnNode} from './render_util'; describe('TemplateRef', () => { describe('rootNodes', () => { class DirectiveWithTplRef { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: DirectiveWithTplRef, selectors: [['', 'tplRef', '']], - factory: () => new DirectiveWithTplRef(directiveInject(TemplateRef as any)) + factory: () => new DirectiveWithTplRef(ΔdirectiveInject(TemplateRef as any)) }); // injecting a ViewContainerRef to create a dynamic container in which embedded views will be @@ -35,9 +35,9 @@ describe('TemplateRef', () => { function embeddedTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'div'); - text(1, 'some text'); - element(2, 'span'); + Δelement(0, 'div'); + Δtext(1, 'some text'); + Δelement(2, 'span'); } } @@ -50,7 +50,7 @@ describe('TemplateRef', () => { */ const AppComponent = createComponent('app-cmp', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, embeddedTemplate, 3, 0, 'ng-template', ['tplRef', '']); + Δtemplate(0, embeddedTemplate, 3, 0, 'ng-template', ['tplRef', '']); directiveWithTplRef = getDirectiveOnNode(0, 0); } }, 1, 0, [DirectiveWithTplRef]); @@ -79,7 +79,7 @@ describe('TemplateRef', () => { */ const AppComponent = createComponent('app-cmp', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, () => {}, 0, 0, 'ng-template', ['tplRef', '']); + Δtemplate(0, () => {}, 0, 0, 'ng-template', ['tplRef', '']); directiveWithTplRef = getDirectiveOnNode(0, 0); } }, 1, 0, [DirectiveWithTplRef]); @@ -102,16 +102,16 @@ describe('TemplateRef', () => { function ngIfTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'text'); + Δtext(0, 'text'); } } function embeddedTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, ngIfTemplate, 1, 0, 'ng-template', [AttributeMarker.Bindings, 'ngIf']); + Δtemplate(0, ngIfTemplate, 1, 0, 'ng-template', [AttributeMarker.Bindings, 'ngIf']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngIf', bind(ctx.showing)); + ΔelementProperty(0, 'ngIf', Δbind(ctx.showing)); } } @@ -120,7 +120,7 @@ describe('TemplateRef', () => { */ const AppComponent = createComponent('app-cmp', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, embeddedTemplate, 1, 1, 'ng-template', ['tplRef', '']); + Δtemplate(0, embeddedTemplate, 1, 1, 'ng-template', ['tplRef', '']); directiveWithTplRef = getDirectiveOnNode(0, 0); } }, 1, 0, [DirectiveWithTplRef, NgIf]); @@ -147,9 +147,9 @@ describe('TemplateRef', () => { function embeddedTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementContainerStart(0); - { text(1, 'text'); } - elementContainerEnd(); + ΔelementContainerStart(0); + { Δtext(1, 'text'); } + ΔelementContainerEnd(); } } @@ -158,7 +158,7 @@ describe('TemplateRef', () => { */ const AppComponent = createComponent('app-cmp', function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template(0, embeddedTemplate, 2, 0, 'ng-template', ['tplRef', '']); + Δtemplate(0, embeddedTemplate, 2, 0, 'ng-template', ['tplRef', '']); directiveWithTplRef = getDirectiveOnNode(0, 0); } }, 1, 0, [DirectiveWithTplRef]); @@ -175,4 +175,4 @@ describe('TemplateRef', () => { expect(viewRef.rootNodes[1].nodeType).toBe(3); // a text node }); }); -}); \ No newline at end of file +}); diff --git a/packages/core/test/render3/view_container_ref_spec.ts b/packages/core/test/render3/view_container_ref_spec.ts index 6d5ec4a39b..4819ef35e0 100644 --- a/packages/core/test/render3/view_container_ref_spec.ts +++ b/packages/core/test/render3/view_container_ref_spec.ts @@ -6,19 +6,19 @@ * found in the LICENSE file at https://angular.io/license */ -import {ChangeDetectorRef, Component as _Component, ComponentFactoryResolver, ComponentRef, defineInjector, ElementRef, EmbeddedViewRef, NgModuleRef, Pipe, PipeTransform, QueryList, RendererFactory2, TemplateRef, ViewContainerRef, ViewRef, ɵAPP_ROOT as APP_ROOT, ɵNgModuleDef as NgModuleDef,} from '../../src/core'; +import {ChangeDetectorRef, Component as _Component, ComponentFactoryResolver, ComponentRef, ΔdefineInjector, ElementRef, EmbeddedViewRef, NgModuleRef, Pipe, PipeTransform, QueryList, RendererFactory2, TemplateRef, ViewContainerRef, ViewRef, ɵAPP_ROOT as APP_ROOT, ɵNgModuleDef as NgModuleDef,} from '../../src/core'; import {createInjector} from '../../src/di/r3_injector'; import {ViewEncapsulation} from '../../src/metadata'; -import {AttributeMarker, defineComponent, defineDirective, definePipe, injectComponentFactoryResolver, listener, loadViewQuery, NgOnChangesFeature, queryRefresh, viewQuery,} from '../../src/render3/index'; +import {AttributeMarker, ΔdefineComponent, ΔdefineDirective, ΔdefinePipe, injectComponentFactoryResolver, Δlistener, ΔloadViewQuery, ΔNgOnChangesFeature, ΔqueryRefresh, ΔviewQuery,} from '../../src/render3/index'; -import {allocHostVars, bind, container, containerRefreshEnd, containerRefreshStart, directiveInject, element, elementEnd, elementHostAttrs, elementProperty, elementStart, embeddedViewEnd, embeddedViewStart, interpolation1, interpolation3, nextContext, projection, projectionDef, reference, template, text, textBinding,} from '../../src/render3/instructions/all'; +import {ΔallocHostVars, Δbind, Δcontainer, ΔcontainerRefreshEnd, ΔcontainerRefreshStart, ΔdirectiveInject, Δelement, ΔelementEnd, ΔelementHostAttrs, ΔelementProperty, ΔelementStart, ΔembeddedViewEnd, ΔembeddedViewStart, Δinterpolation1, Δinterpolation3, ΔnextContext, Δprojection, ΔprojectionDef, Δreference, Δtemplate, Δtext, ΔtextBinding,} from '../../src/render3/instructions/all'; import {RenderFlags} from '../../src/render3/interfaces/definition'; import {RElement} from '../../src/render3/interfaces/renderer'; import {NgModuleFactory} from '../../src/render3/ng_module_ref'; -import {pipe, pipeBind1} from '../../src/render3/pipe'; +import {Δpipe, ΔpipeBind1} from '../../src/render3/pipe'; import {getLView} from '../../src/render3/state'; import {getNativeByIndex} from '../../src/render3/util/view_utils'; -import {templateRefExtractor} from '../../src/render3/view_engine_compatibility_prebound'; +import {ΔtemplateRefExtractor} from '../../src/render3/view_engine_compatibility_prebound'; import {NgForOf} from '../../test/render3/common_with_def'; import {getRendererFactory2} from './imported_renderer2'; @@ -36,12 +36,12 @@ describe('ViewContainerRef', () => { beforeEach(() => directiveInstance = null); class DirectiveWithVCRef { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: DirectiveWithVCRef, selectors: [['', 'vcref', '']], factory: () => directiveInstance = new DirectiveWithVCRef( - directiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), + ΔdirectiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), inputs: {tplRef: 'tplRef', name: 'name'} }); @@ -61,10 +61,10 @@ describe('ViewContainerRef', () => { */ function embeddedTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, bind(ctx.name)); + ΔtextBinding(0, Δbind(ctx.name)); } } @@ -78,14 +78,14 @@ describe('ViewContainerRef', () => { *

*/ function createTemplate() { - template( - 0, embeddedTemplate, 1, 1, 'ng-template', null, ['tplRef', ''], templateRefExtractor); - element(2, 'p', ['vcref', '']); + Δtemplate( + 0, embeddedTemplate, 1, 1, 'ng-template', null, ['tplRef', ''], ΔtemplateRefExtractor); + Δelement(2, 'p', ['vcref', '']); } function updateTemplate() { - const tplRef = reference(1); - elementProperty(2, 'tplRef', bind(tplRef)); + const tplRef = Δreference(1); + ΔelementProperty(2, 'tplRef', Δbind(tplRef)); } describe('createEmbeddedView (incl. insert)', () => { @@ -96,10 +96,11 @@ describe('ViewContainerRef', () => { *
*/ function createTemplate() { - template( - 0, embeddedTemplate, 1, 1, 'ng-template', null, ['tplRef', ''], templateRefExtractor); - element(2, 'header', ['vcref', '']); - element(3, 'footer'); + Δtemplate( + 0, embeddedTemplate, 1, 1, 'ng-template', null, ['tplRef', ''], + ΔtemplateRefExtractor); + Δelement(2, 'header', ['vcref', '']); + Δelement(3, 'footer'); } const fixture = @@ -133,10 +134,10 @@ describe('ViewContainerRef', () => { *
*/ function createTemplate() { - template( - 0, embeddedTemplate, 1, 1, 'ng-template', [], ['tplRef', ''], templateRefExtractor); - element(2, 'header-cmp', ['vcref', '']); - element(3, 'footer'); + Δtemplate( + 0, embeddedTemplate, 1, 1, 'ng-template', [], ['tplRef', ''], ΔtemplateRefExtractor); + Δelement(2, 'header-cmp', ['vcref', '']); + Δelement(3, 'footer'); } const fixture = new TemplateFixture( @@ -170,10 +171,11 @@ describe('ViewContainerRef', () => { *
*/ function createTemplate() { - template( - 0, embeddedTemplate, 1, 1, 'ng-template', null, ['tplRef', ''], templateRefExtractor); - element(2, 'div', ['vcref', '']); - element(3, 'div', ['vcref', '']); + Δtemplate( + 0, embeddedTemplate, 1, 1, 'ng-template', null, ['tplRef', ''], + ΔtemplateRefExtractor); + Δelement(2, 'div', ['vcref', '']); + Δelement(3, 'div', ['vcref', '']); // for testing only: firstDir = getDirectiveOnNode(2); @@ -181,9 +183,9 @@ describe('ViewContainerRef', () => { } function update() { - const tplRef = reference(1); - elementProperty(2, 'tplRef', bind(tplRef)); - elementProperty(3, 'tplRef', bind(tplRef)); + const tplRef = Δreference(1); + ΔelementProperty(2, 'tplRef', Δbind(tplRef)); + ΔelementProperty(3, 'tplRef', Δbind(tplRef)); } const fixture = new TemplateFixture(createTemplate, update, 4, 2, [DirectiveWithVCRef]); @@ -201,15 +203,15 @@ describe('ViewContainerRef', () => { *
*/ function createTemplate() { - template( + Δtemplate( 0, embeddedTemplate, 1, 1, 'ng-template', ['vcref', ''], ['tplRef', ''], - templateRefExtractor); - element(2, 'footer'); + ΔtemplateRefExtractor); + Δelement(2, 'footer'); } function updateTemplate() { - const tplRef = reference(1); - elementProperty(0, 'tplRef', bind(tplRef)); + const tplRef = Δreference(1); + ΔelementProperty(0, 'tplRef', Δbind(tplRef)); } const fixture = @@ -238,12 +240,13 @@ describe('ViewContainerRef', () => { let directiveInstances: TestDirective[] = []; class TestDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: TestDirective, selectors: [['', 'testdir', '']], factory: () => { const instance = new TestDirective( - directiveInject(ViewContainerRef as any), directiveInject(TemplateRef as any)); + ΔdirectiveInject(ViewContainerRef as any), + ΔdirectiveInject(TemplateRef as any)); directiveInstances.push(instance); @@ -260,13 +263,13 @@ describe('ViewContainerRef', () => { function EmbeddedTemplateA(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'A'); + Δtext(0, 'A'); } } function EmbeddedTemplateB(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'B'); + Δtext(0, 'B'); } } @@ -279,7 +282,7 @@ describe('ViewContainerRef', () => { class TestComponent { // TODO(issue/24571): remove '!'. testDir !: TestDirective; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: TestComponent, encapsulation: ViewEncapsulation.None, selectors: [['test-cmp']], @@ -288,10 +291,10 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, cmp: TestComponent) => { if (rf & RenderFlags.Create) { - text(0, 'before|'); - template(1, EmbeddedTemplateA, 1, 0, 'ng-template', ['testdir', '']); - template(2, EmbeddedTemplateB, 1, 0, 'ng-template', ['testdir', '']); - text(3, '|after'); + Δtext(0, 'before|'); + Δtemplate(1, EmbeddedTemplateA, 1, 0, 'ng-template', ['testdir', '']); + Δtemplate(2, EmbeddedTemplateB, 1, 0, 'ng-template', ['testdir', '']); + Δtext(3, '|after'); } }, directives: [TestDirective] @@ -314,12 +317,12 @@ describe('ViewContainerRef', () => { let directiveInstance: TestDirective; class TestDirective { - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: TestDirective, selectors: [['', 'testdir', '']], factory: () => directiveInstance = new TestDirective( - directiveInject(ViewContainerRef as any), - directiveInject(TemplateRef as any)) + ΔdirectiveInject(ViewContainerRef as any), + ΔdirectiveInject(TemplateRef as any)) }); constructor(private _vcRef: ViewContainerRef, private _tplRef: TemplateRef<{}>) {} @@ -336,7 +339,7 @@ describe('ViewContainerRef', () => { function EmbeddedTemplateA(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - text(0, 'A'); + Δtext(0, 'A'); } } @@ -352,7 +355,7 @@ describe('ViewContainerRef', () => { condition = false; // TODO(issue/24571): remove '!'. testDir !: TestDirective; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: TestComponent, encapsulation: ViewEncapsulation.None, selectors: [['test-cmp']], @@ -361,25 +364,25 @@ describe('ViewContainerRef', () => { factory: () => new TestComponent(), template: (rf: RenderFlags, cmp: TestComponent) => { if (rf & RenderFlags.Create) { - text(0, 'before|'); - template(1, EmbeddedTemplateA, 1, 0, 'ng-template', ['testdir', '']); - container(2); - text(3, '|after'); + Δtext(0, 'before|'); + Δtemplate(1, EmbeddedTemplateA, 1, 0, 'ng-template', ['testdir', '']); + Δcontainer(2); + Δtext(3, '|after'); } if (rf & RenderFlags.Update) { - containerRefreshStart(2); + ΔcontainerRefreshStart(2); { if (cmp.condition) { - let rf1 = embeddedViewStart(0, 1, 0); + let rf1 = ΔembeddedViewStart(0, 1, 0); { if (rf1 & RenderFlags.Create) { - text(0, 'B'); + Δtext(0, 'B'); } } - embeddedViewEnd(); + ΔembeddedViewEnd(); } } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } }, directives: [TestDirective] @@ -414,7 +417,7 @@ describe('ViewContainerRef', () => { // TODO(issue/24571): remove '!'. name !: string; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Child, encapsulation: ViewEncapsulation.None, selectors: [['child']], @@ -423,10 +426,10 @@ describe('ViewContainerRef', () => { vars: 1, template: (rf: RenderFlags, cmp: Child) => { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', cmp.name, '')); + ΔtextBinding(0, Δinterpolation1('', cmp.name, '')); } }, inputs: {name: 'name'} @@ -437,7 +440,7 @@ describe('ViewContainerRef', () => { class StarPipe implements PipeTransform { transform(value: any) { return `**${value}**`; } - static ngPipeDef = definePipe({ + static ngPipeDef = ΔdefinePipe({ name: 'starPipe', type: StarPipe, factory: function StarPipe_Factory() { return new StarPipe(); }, @@ -446,11 +449,11 @@ describe('ViewContainerRef', () => { function SomeComponent_Template_0(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'child'); - pipe(1, 'starPipe'); + Δelement(0, 'child'); + Δpipe(1, 'starPipe'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'name', bind(pipeBind1(1, 1, 'C'))); + ΔelementProperty(0, 'name', Δbind(ΔpipeBind1(1, 1, 'C'))); } } @@ -464,7 +467,7 @@ describe('ViewContainerRef', () => { ` }) class SomeComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SomeComponent, encapsulation: ViewEncapsulation.None, selectors: [['some-comp']], @@ -473,19 +476,19 @@ describe('ViewContainerRef', () => { vars: 7, template: (rf: RenderFlags, cmp: SomeComponent) => { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, SomeComponent_Template_0, 2, 3, 'ng-template', [], ['foo', ''], - templateRefExtractor); - pipe(2, 'starPipe'); - element(3, 'child', ['vcref', '']); - pipe(4, 'starPipe'); - element(5, 'child'); + ΔtemplateRefExtractor); + Δpipe(2, 'starPipe'); + Δelement(3, 'child', ['vcref', '']); + Δpipe(4, 'starPipe'); + Δelement(5, 'child'); } if (rf & RenderFlags.Update) { - const tplRef = reference(1); - elementProperty(3, 'tplRef', bind(tplRef)); - elementProperty(3, 'name', bind(pipeBind1(2, 3, 'A'))); - elementProperty(5, 'name', bind(pipeBind1(4, 5, 'B'))); + const tplRef = Δreference(1); + ΔelementProperty(3, 'tplRef', Δbind(tplRef)); + ΔelementProperty(3, 'name', Δbind(ΔpipeBind1(2, 3, 'A'))); + ΔelementProperty(5, 'name', Δbind(ΔpipeBind1(4, 5, 'B'))); } }, directives: [Child, DirectiveWithVCRef], @@ -512,10 +515,10 @@ describe('ViewContainerRef', () => { constructor(public vcr: ViewContainerRef) {} - static ngDirectiveDef = defineDirective({ + static ngDirectiveDef = ΔdefineDirective({ type: InsertionDir, selectors: [['', 'tplDir', '']], - factory: () => new InsertionDir(directiveInject(ViewContainerRef as any)), + factory: () => new InsertionDir(ΔdirectiveInject(ViewContainerRef as any)), inputs: {tplDir: 'tplDir'} }); } @@ -533,7 +536,7 @@ describe('ViewContainerRef', () => { name = 'Child'; tpl: TemplateRef|null = null; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Child, encapsulation: ViewEncapsulation.None, selectors: [['child']], @@ -542,13 +545,13 @@ describe('ViewContainerRef', () => { vars: 2, template: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div', [AttributeMarker.Bindings, 'tplDir']); - { text(1); } - elementEnd(); + ΔelementStart(0, 'div', [AttributeMarker.Bindings, 'tplDir']); + { Δtext(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - elementProperty(0, 'tplDir', bind(ctx.tpl)); - textBinding(1, bind(ctx.name)); + ΔelementProperty(0, 'tplDir', Δbind(ctx.tpl)); + ΔtextBinding(1, Δbind(ctx.name)); } }, inputs: {tpl: 'tpl'}, @@ -566,27 +569,27 @@ describe('ViewContainerRef', () => { */ const Parent = createComponent('parent', function(rf: RenderFlags, parent: any) { if (rf & RenderFlags.Create) { - template( - 0, fooTemplate, 2, 1, 'ng-template', null, ['foo', ''], templateRefExtractor); - element(2, 'child'); + Δtemplate( + 0, fooTemplate, 2, 1, 'ng-template', null, ['foo', ''], ΔtemplateRefExtractor); + Δelement(2, 'child'); } if (rf & RenderFlags.Update) { - const tplRef = reference(1); - elementProperty(2, 'tpl', bind(tplRef)); + const tplRef = Δreference(1); + ΔelementProperty(2, 'tpl', Δbind(tplRef)); } }, 3, 1, [Child]); function fooTemplate(rf1: RenderFlags, ctx: any) { if (rf1 & RenderFlags.Create) { - elementStart(0, 'div'); - { text(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δtext(1); } + ΔelementEnd(); } if (rf1 & RenderFlags.Update) { - const parent = nextContext(); - textBinding(1, bind(parent.name)); + const parent = ΔnextContext(); + ΔtextBinding(1, Δbind(parent.name)); } } @@ -619,7 +622,7 @@ describe('ViewContainerRef', () => { // @Input() rows !: any[]; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: LoopComp, encapsulation: ViewEncapsulation.None, selectors: [['loop-comp']], @@ -628,12 +631,12 @@ describe('ViewContainerRef', () => { vars: 2, template: function(rf: RenderFlags, loop: any) { if (rf & RenderFlags.Create) { - template(0, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'ngForOf']); + Δtemplate(0, null, 0, 0, 'ng-template', [AttributeMarker.Bindings, 'ngForOf']); } if (rf & RenderFlags.Update) { - elementProperty(0, 'ngForOf', bind(loop.rows)); - elementProperty(0, 'ngForTemplate', bind(loop.tpl)); + ΔelementProperty(0, 'ngForOf', Δbind(loop.rows)); + ΔelementProperty(0, 'ngForTemplate', Δbind(loop.tpl)); } }, inputs: {tpl: 'tpl', rows: 'rows'}, @@ -658,48 +661,48 @@ describe('ViewContainerRef', () => { */ const Parent = createComponent('parent', function(rf: RenderFlags, parent: any) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, rowTemplate, 3, 2, 'ng-template', null, ['rowTemplate', ''], - templateRefExtractor); - element(2, 'loop-comp'); + ΔtemplateRefExtractor); + Δelement(2, 'loop-comp'); } if (rf & RenderFlags.Update) { - const rowTemplateRef = reference(1); - elementProperty(2, 'tpl', bind(rowTemplateRef)); - elementProperty(2, 'rows', bind(parent.rows)); + const rowTemplateRef = Δreference(1); + ΔelementProperty(2, 'tpl', Δbind(rowTemplateRef)); + ΔelementProperty(2, 'rows', Δbind(parent.rows)); } }, 3, 2, [LoopComp]); function rowTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, cellTemplate, 2, 3, 'ng-template', null, ['cellTemplate', ''], - templateRefExtractor); - element(2, 'loop-comp'); + ΔtemplateRefExtractor); + Δelement(2, 'loop-comp'); } if (rf & RenderFlags.Update) { const row = ctx.$implicit as any; - const cellTemplateRef = reference(1); - elementProperty(2, 'tpl', bind(cellTemplateRef)); - elementProperty(2, 'rows', bind(row.data)); + const cellTemplateRef = Δreference(1); + ΔelementProperty(2, 'tpl', Δbind(cellTemplateRef)); + ΔelementProperty(2, 'rows', Δbind(row.data)); } } function cellTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - { text(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δtext(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { const cell = ctx.$implicit as any; - const row = nextContext().$implicit as any; - const parent = nextContext(); - textBinding(1, interpolation3('', cell, ' - ', row.value, ' - ', parent.name, '')); + const row = ΔnextContext().$implicit as any; + const parent = ΔnextContext(); + ΔtextBinding(1, Δinterpolation3('', cell, ' - ', row.value, ' - ', parent.name, '')); } } @@ -940,7 +943,7 @@ describe('ViewContainerRef', () => { class EmbeddedComponent { constructor() {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: EmbeddedComponent, encapsulation: ViewEncapsulation.None, selectors: [['embedded-cmp']], @@ -950,7 +953,7 @@ describe('ViewContainerRef', () => { template: (rf: RenderFlags, cmp: EmbeddedComponent) => { templateExecutionCounter++; if (rf & RenderFlags.Create) { - text(0, 'foo'); + Δtext(0, 'foo'); } } }); @@ -983,24 +986,24 @@ describe('ViewContainerRef', () => { class EmbeddedComponent { constructor(public s: String) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: EmbeddedComponent, encapsulation: ViewEncapsulation.None, selectors: [['embedded-cmp']], - factory: () => new EmbeddedComponent(directiveInject(String)), + factory: () => new EmbeddedComponent(ΔdirectiveInject(String)), consts: 1, vars: 0, template: (rf: RenderFlags, cmp: EmbeddedComponent) => { templateExecutionCounter++; if (rf & RenderFlags.Create) { - text(0, 'foo'); + Δtext(0, 'foo'); } } }); } class MyAppModule { - static ngInjectorDef = defineInjector({ + static ngInjectorDef = ΔdefineInjector({ factory: () => new MyAppModule(), imports: [], providers: [ @@ -1015,7 +1018,7 @@ describe('ViewContainerRef', () => { const ngModuleRef = myAppModuleFactory.create(null); class SomeModule { - static ngInjectorDef = defineInjector({ + static ngInjectorDef = ΔdefineInjector({ factory: () => new SomeModule(), providers: [ {provide: NgModuleRef, useValue: ngModuleRef}, @@ -1054,12 +1057,12 @@ describe('ViewContainerRef', () => { class AppComp { constructor(public vcr: ViewContainerRef, public cfr: ComponentFactoryResolver) {} - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppComp, selectors: [['app-comp']], factory: () => new AppComp( - directiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), + ΔdirectiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), consts: 0, vars: 0, template: (rf: RenderFlags, cmp: AppComp) => {} @@ -1071,7 +1074,7 @@ describe('ViewContainerRef', () => { ngDoCheck() { this.doCheckCount++; } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: DynamicComp, selectors: [['dynamic-comp']], factory: () => dynamicComp = new DynamicComp(), @@ -1128,7 +1131,7 @@ describe('ViewContainerRef', () => { }); class EmbeddedComponentWithNgContent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: EmbeddedComponentWithNgContent, encapsulation: ViewEncapsulation.None, selectors: [['embedded-cmp-with-ngcontent']], @@ -1137,10 +1140,10 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, cmp: EmbeddedComponentWithNgContent) => { if (rf & RenderFlags.Create) { - projectionDef(); - projection(0, 0); - element(1, 'hr'); - projection(2, 1); + ΔprojectionDef(); + Δprojection(0, 0); + Δelement(1, 'hr'); + Δprojection(2, 1); } } }); @@ -1168,7 +1171,7 @@ describe('ViewContainerRef', () => { it('should support reprojection of projectable nodes', () => { class Reprojector { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Reprojector, encapsulation: ViewEncapsulation.None, selectors: [['reprojector']], @@ -1177,10 +1180,10 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, cmp: Reprojector) => { if (rf & RenderFlags.Create) { - projectionDef(); - elementStart(0, 'embedded-cmp-with-ngcontent'); - { projection(1, 0); } - elementEnd(); + ΔprojectionDef(); + ΔelementStart(0, 'embedded-cmp-with-ngcontent'); + { Δprojection(1, 0); } + ΔelementEnd(); } }, directives: [EmbeddedComponentWithNgContent] @@ -1226,8 +1229,8 @@ describe('ViewContainerRef', () => { describe('getters', () => { it('should work on elements', () => { function createTemplate() { - element(0, 'header', ['vcref', '']); - element(1, 'footer'); + Δelement(0, 'header', ['vcref', '']); + Δelement(1, 'footer'); } new TemplateFixture(createTemplate, undefined, 2, 0, [DirectiveWithVCRef]); @@ -1245,8 +1248,8 @@ describe('ViewContainerRef', () => { createComponent('header-cmp', function(rf: RenderFlags, ctx: any) {}); function createTemplate() { - element(0, 'header-cmp', ['vcref', '']); - element(1, 'footer'); + Δelement(0, 'header-cmp', ['vcref', '']); + Δelement(1, 'footer'); } new TemplateFixture(createTemplate, undefined, 2, 0, [HeaderComponent, DirectiveWithVCRef]); @@ -1261,8 +1264,8 @@ describe('ViewContainerRef', () => { it('should work on templates', () => { function createTemplate() { - template(0, embeddedTemplate, 1, 1, 'ng-template', ['vcref', '']); - element(1, 'footer'); + Δtemplate(0, embeddedTemplate, 1, 1, 'ng-template', ['vcref', '']); + Δelement(1, 'footer'); } new TemplateFixture(createTemplate, () => {}, 2, 0, [DirectiveWithVCRef]); @@ -1277,19 +1280,19 @@ describe('ViewContainerRef', () => { describe('projection', () => { function embeddedTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'span'); - text(1); - elementEnd(); + ΔelementStart(0, 'span'); + Δtext(1); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - textBinding(1, ctx.name); + ΔtextBinding(1, ctx.name); } } it('should project the ViewContainerRef content along its host, in an element', () => { @Component({selector: 'child', template: '
'}) class Child { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Child, encapsulation: ViewEncapsulation.None, selectors: [['child']], @@ -1298,10 +1301,10 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, cmp: Child) => { if (rf & RenderFlags.Create) { - projectionDef(); - elementStart(0, 'div'); - { projection(1); } - elementEnd(); + ΔprojectionDef(); + ΔelementStart(0, 'div'); + { Δprojection(1); } + ΔelementEnd(); } } }); @@ -1317,7 +1320,7 @@ describe('ViewContainerRef', () => { }) class Parent { name: string = 'bar'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Parent, encapsulation: ViewEncapsulation.None, selectors: [['parent']], @@ -1326,22 +1329,22 @@ describe('ViewContainerRef', () => { vars: 2, template: (rf: RenderFlags, cmp: Parent) => { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, embeddedTemplate, 2, 1, 'ng-template', null, ['foo', ''], - templateRefExtractor); - elementStart(2, 'child'); + ΔtemplateRefExtractor); + ΔelementStart(2, 'child'); { - elementStart(3, 'header', ['vcref', '']); - { text(4, 'blah'); } - elementEnd(); + ΔelementStart(3, 'header', ['vcref', '']); + { Δtext(4, 'blah'); } + ΔelementEnd(); } - elementEnd(); + ΔelementEnd(); } let tplRef: any; if (rf & RenderFlags.Update) { - tplRef = reference(1); - elementProperty(3, 'tplRef', bind(tplRef)); - elementProperty(3, 'name', bind(cmp.name)); + tplRef = Δreference(1); + ΔelementProperty(3, 'tplRef', Δbind(tplRef)); + ΔelementProperty(3, 'name', Δbind(cmp.name)); } }, directives: [Child, DirectiveWithVCRef] @@ -1370,7 +1373,7 @@ describe('ViewContainerRef', () => { }) class ChildWithView { show: boolean = true; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ChildWithView, encapsulation: ViewEncapsulation.None, selectors: [['child-with-view']], @@ -1379,21 +1382,21 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, cmp: ChildWithView) => { if (rf & RenderFlags.Create) { - projectionDef(); - text(0, 'Before (inside)-'); - container(1); - text(2, 'After (inside)'); + ΔprojectionDef(); + Δtext(0, 'Before (inside)-'); + Δcontainer(1); + Δtext(2, 'After (inside)'); } if (rf & RenderFlags.Update) { - containerRefreshStart(1); + ΔcontainerRefreshStart(1); if (cmp.show) { - let rf0 = embeddedViewStart(0, 1, 0); + let rf0 = ΔembeddedViewStart(0, 1, 0); if (rf0 & RenderFlags.Create) { - projection(0); + Δprojection(0); } - embeddedViewEnd(); + ΔembeddedViewEnd(); } - containerRefreshEnd(); + ΔcontainerRefreshEnd(); } } }); @@ -1413,7 +1416,7 @@ describe('ViewContainerRef', () => { }) class Parent { name: string = 'bar'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Parent, encapsulation: ViewEncapsulation.None, selectors: [['parent']], @@ -1422,21 +1425,21 @@ describe('ViewContainerRef', () => { vars: 2, template: (rf: RenderFlags, cmp: Parent) => { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, embeddedTemplate, 2, 1, 'ng-template', undefined, ['foo', ''], - templateRefExtractor); - elementStart(2, 'child-with-view'); - text(3, 'Before projected'); - elementStart(4, 'header', ['vcref', '']); - text(5, 'blah'); - elementEnd(); - text(6, 'After projected-'); - elementEnd(); + ΔtemplateRefExtractor); + ΔelementStart(2, 'child-with-view'); + Δtext(3, 'Before projected'); + ΔelementStart(4, 'header', ['vcref', '']); + Δtext(5, 'blah'); + ΔelementEnd(); + Δtext(6, 'After projected-'); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - const tplRef = reference(1); - elementProperty(4, 'tplRef', bind(tplRef)); - elementProperty(4, 'name', bind(cmp.name)); + const tplRef = Δreference(1); + ΔelementProperty(4, 'tplRef', Δbind(tplRef)); + ΔelementProperty(4, 'name', Δbind(cmp.name)); } }, directives: [ChildWithView, DirectiveWithVCRef] @@ -1463,7 +1466,7 @@ describe('ViewContainerRef', () => { ` }) class ChildWithSelector { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ChildWithSelector, encapsulation: ViewEncapsulation.None, selectors: [['child-with-selector']], @@ -1472,13 +1475,13 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, cmp: ChildWithSelector) => { if (rf & RenderFlags.Create) { - projectionDef([[['header']]], ['header']); - elementStart(0, 'first'); - { projection(1, 1); } - elementEnd(); - elementStart(2, 'second'); - { projection(3); } - elementEnd(); + ΔprojectionDef([[['header']]], ['header']); + ΔelementStart(0, 'first'); + { Δprojection(1, 1); } + ΔelementEnd(); + ΔelementStart(2, 'second'); + { Δprojection(3); } + ΔelementEnd(); } }, directives: [ChildWithSelector, DirectiveWithVCRef] @@ -1497,7 +1500,7 @@ describe('ViewContainerRef', () => { }) class Parent { name: string = 'bar'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Parent, encapsulation: ViewEncapsulation.None, selectors: [['parent']], @@ -1507,19 +1510,19 @@ describe('ViewContainerRef', () => { template: (rf: RenderFlags, cmp: Parent) => { let tplRef: any; if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, embeddedTemplate, 2, 1, 'ng-template', null, ['foo', ''], - templateRefExtractor); - elementStart(2, 'child-with-selector'); - elementStart(3, 'header', ['vcref', '']); - text(4, 'blah'); - elementEnd(); - elementEnd(); + ΔtemplateRefExtractor); + ΔelementStart(2, 'child-with-selector'); + ΔelementStart(3, 'header', ['vcref', '']); + Δtext(4, 'blah'); + ΔelementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - tplRef = reference(1); - elementProperty(3, 'tplRef', bind(tplRef)); - elementProperty(3, 'name', bind(cmp.name)); + tplRef = Δreference(1); + ΔelementProperty(3, 'tplRef', Δbind(tplRef)); + ΔelementProperty(3, 'name', Δbind(cmp.name)); } }, directives: [ChildWithSelector, DirectiveWithVCRef] @@ -1551,7 +1554,7 @@ describe('ViewContainerRef', () => { }) class Parent { name: string = 'bar'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: Parent, encapsulation: ViewEncapsulation.None, selectors: [['parent']], @@ -1561,19 +1564,19 @@ describe('ViewContainerRef', () => { template: (rf: RenderFlags, cmp: Parent) => { let tplRef: any; if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, embeddedTemplate, 2, 1, 'ng-template', null, ['foo', ''], - templateRefExtractor); - elementStart(2, 'child-with-selector'); - elementStart(3, 'footer', ['vcref', '']); - text(4, 'blah'); - elementEnd(); - elementEnd(); + ΔtemplateRefExtractor); + ΔelementStart(2, 'child-with-selector'); + ΔelementStart(3, 'footer', ['vcref', '']); + Δtext(4, 'blah'); + ΔelementEnd(); + ΔelementEnd(); } if (rf & RenderFlags.Update) { - tplRef = reference(1); - elementProperty(3, 'tplRef', bind(tplRef)); - elementProperty(3, 'name', bind(cmp.name)); + tplRef = Δreference(1); + ΔelementProperty(3, 'tplRef', Δbind(tplRef)); + ΔelementProperty(3, 'name', Δbind(cmp.name)); } }, directives: [ChildWithSelector, DirectiveWithVCRef] @@ -1619,7 +1622,7 @@ describe('ViewContainerRef', () => { ngOnDestroy() { this.log('onDestroy-' + this.name); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: ComponentWithHooks, encapsulation: ViewEncapsulation.None, selectors: [['hooks']], @@ -1628,13 +1631,13 @@ describe('ViewContainerRef', () => { vars: 1, template: (rf: RenderFlags, cmp: ComponentWithHooks) => { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('', cmp.name, '')); + ΔtextBinding(0, Δinterpolation1('', cmp.name, '')); } }, - features: [NgOnChangesFeature()], + features: [ΔNgOnChangesFeature()], inputs: {name: 'name'} }); } @@ -1642,10 +1645,10 @@ describe('ViewContainerRef', () => { it('should call all hooks in correct order when creating with createEmbeddedView', () => { function SomeComponent_Template_0(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - element(0, 'hooks'); + Δelement(0, 'hooks'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'name', bind('C')); + ΔelementProperty(0, 'name', Δbind('C')); } } @@ -1659,7 +1662,7 @@ describe('ViewContainerRef', () => { ` }) class SomeComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SomeComponent, selectors: [['some-comp']], factory: () => new SomeComponent(), @@ -1667,21 +1670,21 @@ describe('ViewContainerRef', () => { vars: 3, template: (rf: RenderFlags, cmp: SomeComponent) => { if (rf & RenderFlags.Create) { - template( + Δtemplate( 0, SomeComponent_Template_0, 1, 1, 'ng-template', [], ['foo', ''], - templateRefExtractor); - element(2, 'hooks', ['vcref', '']); - element(3, 'hooks'); + ΔtemplateRefExtractor); + Δelement(2, 'hooks', ['vcref', '']); + Δelement(3, 'hooks'); } if (rf & RenderFlags.Update) { - const tplRef = reference(1); - elementProperty(2, 'tplRef', bind(tplRef)); - elementProperty(2, 'name', bind('A')); - elementProperty(3, 'name', bind('B')); + const tplRef = Δreference(1); + ΔelementProperty(2, 'tplRef', Δbind(tplRef)); + ΔelementProperty(2, 'name', Δbind('A')); + ΔelementProperty(3, 'name', Δbind('B')); } }, directives: [ComponentWithHooks, DirectiveWithVCRef], - features: [NgOnChangesFeature()], + features: [ΔNgOnChangesFeature()], }); } @@ -1756,7 +1759,7 @@ describe('ViewContainerRef', () => { ` }) class SomeComponent { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: SomeComponent, encapsulation: ViewEncapsulation.None, selectors: [['some-comp']], @@ -1765,16 +1768,16 @@ describe('ViewContainerRef', () => { vars: 2, template: (rf: RenderFlags, cmp: SomeComponent) => { if (rf & RenderFlags.Create) { - element(0, 'hooks', ['vcref', '']); - element(1, 'hooks'); + Δelement(0, 'hooks', ['vcref', '']); + Δelement(1, 'hooks'); } if (rf & RenderFlags.Update) { - elementProperty(0, 'name', bind('A')); - elementProperty(1, 'name', bind('B')); + ΔelementProperty(0, 'name', Δbind('A')); + ΔelementProperty(1, 'name', Δbind('B')); } }, directives: [ComponentWithHooks, DirectiveWithVCRef], - features: [NgOnChangesFeature()], + features: [ΔNgOnChangesFeature()], }); } @@ -1853,7 +1856,7 @@ describe('ViewContainerRef', () => { class HostBindingCmpt { title = 'initial'; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: HostBindingCmpt, selectors: [['host-bindings']], factory: () => new HostBindingCmpt(), @@ -1862,11 +1865,11 @@ describe('ViewContainerRef', () => { template: (rf: RenderFlags, cmp: HostBindingCmpt) => {}, hostBindings: function(rf: RenderFlags, ctx: HostBindingCmpt, elIndex: number) { if (rf & RenderFlags.Create) { - elementHostAttrs(['id', 'attribute']); - allocHostVars(1); + ΔelementHostAttrs(['id', 'attribute']); + ΔallocHostVars(1); } if (rf & RenderFlags.Update) { - elementProperty(elIndex, 'title', bind(ctx.title)); + ΔelementProperty(elIndex, 'title', Δbind(ctx.title)); } }, }); @@ -1878,7 +1881,7 @@ describe('ViewContainerRef', () => { ` }) class AppCmpt { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppCmpt, selectors: [['app']], factory: () => new AppCmpt(), @@ -1886,7 +1889,7 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, cmp: AppCmpt) => { if (rf & RenderFlags.Create) { - template(0, null, 0, 0, 'ng-template', ['vcref', '']); + Δtemplate(0, null, 0, 0, 'ng-template', ['vcref', '']); } }, directives: [HostBindingCmpt, DirectiveWithVCRef] @@ -1913,11 +1916,11 @@ describe('ViewContainerRef', () => { @Component({selector: 'app', template: ''}) class AppCmpt { - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: AppCmpt, selectors: [['app']], factory: () => new AppCmpt( - directiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), + ΔdirectiveInject(ViewContainerRef as any), injectComponentFactoryResolver()), consts: 0, vars: 0, template: (rf: RenderFlags, cmp: AppCmpt) => {} @@ -1941,7 +1944,7 @@ describe('ViewContainerRef', () => { const DynamicComponent = createComponent('dynamic-cmpt', function(rf: RenderFlags, parent: any) { if (rf & RenderFlags.Create) { - text(0, 'inserted dynamically'); + Δtext(0, 'inserted dynamically'); } }, 1, 0); @@ -1981,7 +1984,7 @@ describe('ViewContainerRef', () => { ngDoCheck() { this.checkCount++; } /** check count: {{ checkCount }} */ - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: DynamicCompWithBindings, selectors: [['dynamic-cmpt-with-bindings']], factory: () => new DynamicCompWithBindings(), @@ -1989,10 +1992,10 @@ describe('ViewContainerRef', () => { vars: 1, template: (rf: RenderFlags, ctx: DynamicCompWithBindings) => { if (rf & RenderFlags.Create) { - text(0); + Δtext(0); } if (rf & RenderFlags.Update) { - textBinding(0, interpolation1('check count: ', ctx.checkCount, '')); + ΔtextBinding(0, Δinterpolation1('check count: ', ctx.checkCount, '')); } } }); @@ -2017,19 +2020,19 @@ describe('ViewContainerRef', () => { let name = 'text'; const Child = createComponent('child', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - elementStart(0, 'div'); - { text(1); } - elementEnd(); + ΔelementStart(0, 'div'); + { Δtext(1); } + ΔelementEnd(); } if (rf & RenderFlags.Update) { - textBinding(1, bind(name)); + ΔtextBinding(1, Δbind(name)); } }, 2, 1); const DynamicCompWithChildren = createComponent('dynamic-cmpt-with-children', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - element(0, 'child'); + Δelement(0, 'child'); } }, 1, 0, [Child]); @@ -2055,7 +2058,7 @@ describe('ViewContainerRef', () => { // @ViewChildren('foo') foo !: QueryList; - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: DynamicCompWithViewQueries, selectors: [['dynamic-cmpt-with-view-queries']], factory: () => dynamicComp = new DynamicCompWithViewQueries(), @@ -2063,18 +2066,18 @@ describe('ViewContainerRef', () => { vars: 0, template: (rf: RenderFlags, ctx: DynamicCompWithViewQueries) => { if (rf & RenderFlags.Create) { - element(0, 'div', ['bar', ''], ['foo', '']); + Δelement(0, 'div', ['bar', ''], ['foo', '']); } // testing only fooEl = getNativeByIndex(0, getLView()) as RElement; }, viewQuery: function(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - viewQuery(['foo'], true, null); + ΔviewQuery(['foo'], true, null); } if (rf & RenderFlags.Update) { let tmp: any; - queryRefresh(tmp = loadViewQuery>()) && + ΔqueryRefresh(tmp = ΔloadViewQuery>()) && (ctx.foo = tmp as QueryList); } } @@ -2099,7 +2102,7 @@ describe('ViewContainerRef', () => { ngOnDestroy() { this.viewRef.destroy(); } - static ngComponentDef = defineComponent({ + static ngComponentDef = ΔdefineComponent({ type: CompWithListenerThatDestroysItself, selectors: [['comp-with-listener-and-on-destroy']], consts: 2, @@ -2107,18 +2110,18 @@ describe('ViewContainerRef', () => { /** */ template: function CompTemplate(rf: RenderFlags, ctx: any) { if (rf & RenderFlags.Create) { - elementStart(0, 'button'); + ΔelementStart(0, 'button'); { - listener('click', function() { return ctx.onClick(); }); - text(1, 'Click me'); + Δlistener('click', function() { return ctx.onClick(); }); + Δtext(1, 'Click me'); } - elementEnd(); + ΔelementEnd(); } }, // We want the ViewRef, so we rely on the knowledge that `ViewRef` is actually given // when injecting `ChangeDetectorRef`. - factory: - () => new CompWithListenerThatDestroysItself(directiveInject(ChangeDetectorRef as any)), + factory: () => new CompWithListenerThatDestroysItself( + ΔdirectiveInject(ChangeDetectorRef as any)), }); } @@ -2126,7 +2129,7 @@ describe('ViewContainerRef', () => { it('should not error when destroying a view with listeners twice', () => { const CompWithChildListener = createComponent('test-app', (rf: RenderFlags, ctx: any) => { if (rf & RenderFlags.Create) { - element(0, 'comp-with-listener-and-on-destroy'); + Δelement(0, 'comp-with-listener-and-on-destroy'); } }, 1, 0, [CompWithListenerThatDestroysItself]); diff --git a/packages/core/test/sanitization/sanatization_spec.ts b/packages/core/test/sanitization/sanatization_spec.ts index e774521033..2b5b2eee51 100644 --- a/packages/core/test/sanitization/sanatization_spec.ts +++ b/packages/core/test/sanitization/sanatization_spec.ts @@ -12,7 +12,7 @@ import {HEADER_OFFSET, LView} from '@angular/core/src/render3/interfaces/view'; import {setTNodeAndViewData} from '@angular/core/src/render3/state'; import {bypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript, bypassSanitizationTrustStyle, bypassSanitizationTrustUrl} from '../../src/sanitization/bypass'; -import {getUrlSanitizer, sanitizeHtml, sanitizeResourceUrl, sanitizeScript, sanitizeStyle, sanitizeUrl, sanitizeUrlOrResourceUrl} from '../../src/sanitization/sanitization'; +import {getUrlSanitizer, ΔsanitizeHtml, ΔsanitizeResourceUrl, ΔsanitizeScript, ΔsanitizeStyle, ΔsanitizeUrl, ΔsanitizeUrlOrResourceUrl} from '../../src/sanitization/sanitization'; import {SecurityContext} from '../../src/sanitization/security'; function fakeLView(): LView { @@ -27,54 +27,54 @@ describe('sanitization', () => { toString() { return this.value; } } it('should sanitize html', () => { - expect(sanitizeHtml('
')).toEqual('
'); - expect(sanitizeHtml(new Wrap('
'))).toEqual('
'); - expect(sanitizeHtml('')) + expect(ΔsanitizeHtml('
')).toEqual('
'); + expect(ΔsanitizeHtml(new Wrap('
'))).toEqual('
'); + expect(ΔsanitizeHtml('')) .toEqual(''); - expect(sanitizeHtml(new Wrap(''))) + expect(ΔsanitizeHtml(new Wrap(''))) .toEqual(''); - expect(sanitizeHtml(bypassSanitizationTrustUrl(''))) + expect(ΔsanitizeHtml(bypassSanitizationTrustUrl(''))) .toEqual(''); - expect(sanitizeHtml(bypassSanitizationTrustHtml(''))) + expect(ΔsanitizeHtml(bypassSanitizationTrustHtml(''))) .toEqual(''); }); it('should sanitize url', () => { - expect(sanitizeUrl('http://server')).toEqual('http://server'); - expect(sanitizeUrl(new Wrap('http://server'))).toEqual('http://server'); - expect(sanitizeUrl('javascript:true')).toEqual('unsafe:javascript:true'); - expect(sanitizeUrl(new Wrap('javascript:true'))).toEqual('unsafe:javascript:true'); - expect(sanitizeUrl(bypassSanitizationTrustHtml('javascript:true'))) + expect(ΔsanitizeUrl('http://server')).toEqual('http://server'); + expect(ΔsanitizeUrl(new Wrap('http://server'))).toEqual('http://server'); + expect(ΔsanitizeUrl('javascript:true')).toEqual('unsafe:javascript:true'); + expect(ΔsanitizeUrl(new Wrap('javascript:true'))).toEqual('unsafe:javascript:true'); + expect(ΔsanitizeUrl(bypassSanitizationTrustHtml('javascript:true'))) .toEqual('unsafe:javascript:true'); - expect(sanitizeUrl(bypassSanitizationTrustUrl('javascript:true'))).toEqual('javascript:true'); + expect(ΔsanitizeUrl(bypassSanitizationTrustUrl('javascript:true'))).toEqual('javascript:true'); }); it('should sanitize resourceUrl', () => { const ERROR = 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)'; - expect(() => sanitizeResourceUrl('http://server')).toThrowError(ERROR); - expect(() => sanitizeResourceUrl('javascript:true')).toThrowError(ERROR); - expect(() => sanitizeResourceUrl(bypassSanitizationTrustHtml('javascript:true'))) + expect(() => ΔsanitizeResourceUrl('http://server')).toThrowError(ERROR); + expect(() => ΔsanitizeResourceUrl('javascript:true')).toThrowError(ERROR); + expect(() => ΔsanitizeResourceUrl(bypassSanitizationTrustHtml('javascript:true'))) .toThrowError(ERROR); - expect(sanitizeResourceUrl(bypassSanitizationTrustResourceUrl('javascript:true'))) + expect(ΔsanitizeResourceUrl(bypassSanitizationTrustResourceUrl('javascript:true'))) .toEqual('javascript:true'); }); it('should sanitize style', () => { - expect(sanitizeStyle('red')).toEqual('red'); - expect(sanitizeStyle(new Wrap('red'))).toEqual('red'); - expect(sanitizeStyle('url("http://server")')).toEqual('unsafe'); - expect(sanitizeStyle(new Wrap('url("http://server")'))).toEqual('unsafe'); - expect(sanitizeStyle(bypassSanitizationTrustHtml('url("http://server")'))).toEqual('unsafe'); - expect(sanitizeStyle(bypassSanitizationTrustStyle('url("http://server")'))) + expect(ΔsanitizeStyle('red')).toEqual('red'); + expect(ΔsanitizeStyle(new Wrap('red'))).toEqual('red'); + expect(ΔsanitizeStyle('url("http://server")')).toEqual('unsafe'); + expect(ΔsanitizeStyle(new Wrap('url("http://server")'))).toEqual('unsafe'); + expect(ΔsanitizeStyle(bypassSanitizationTrustHtml('url("http://server")'))).toEqual('unsafe'); + expect(ΔsanitizeStyle(bypassSanitizationTrustStyle('url("http://server")'))) .toEqual('url("http://server")'); }); it('should sanitize script', () => { const ERROR = 'unsafe value used in a script context'; - expect(() => sanitizeScript('true')).toThrowError(ERROR); - expect(() => sanitizeScript('true')).toThrowError(ERROR); - expect(() => sanitizeScript(bypassSanitizationTrustHtml('true'))).toThrowError(ERROR); - expect(sanitizeScript(bypassSanitizationTrustScript('true'))).toEqual('true'); + expect(() => ΔsanitizeScript('true')).toThrowError(ERROR); + expect(() => ΔsanitizeScript('true')).toThrowError(ERROR); + expect(() => ΔsanitizeScript(bypassSanitizationTrustHtml('true'))).toThrowError(ERROR); + expect(ΔsanitizeScript(bypassSanitizationTrustScript('true'))).toEqual('true'); }); it('should select correct sanitizer for URL props', () => { @@ -82,8 +82,8 @@ describe('sanitization', () => { // runtime function definition const schema = SECURITY_SCHEMA(); const contextsByProp: Map> = new Map(); - const sanitizerNameByContext: Map = new Map([ - [SecurityContext.URL, 'sanitizeUrl'], [SecurityContext.RESOURCE_URL, 'sanitizeResourceUrl'] + const sanitizerNameByContext: Map = new Map([ + [SecurityContext.URL, ΔsanitizeUrl], [SecurityContext.RESOURCE_URL, ΔsanitizeResourceUrl] ]); Object.keys(schema).forEach(key => { const context = schema[key]; @@ -94,7 +94,7 @@ describe('sanitization', () => { contextsByProp.set(prop, contexts); // check only in case a prop can be a part of both URL contexts if (contexts.size === 2) { - expect(getUrlSanitizer(tag, prop).name).toEqual(sanitizerNameByContext.get(context) !); + expect(getUrlSanitizer(tag, prop)).toEqual(sanitizerNameByContext.get(context) !); } } }); @@ -102,28 +102,28 @@ describe('sanitization', () => { it('should sanitize resourceUrls via sanitizeUrlOrResourceUrl', () => { const ERROR = 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)'; - expect(() => sanitizeUrlOrResourceUrl('http://server', 'iframe', 'src')).toThrowError(ERROR); - expect(() => sanitizeUrlOrResourceUrl('javascript:true', 'iframe', 'src')).toThrowError(ERROR); + expect(() => ΔsanitizeUrlOrResourceUrl('http://server', 'iframe', 'src')).toThrowError(ERROR); + expect(() => ΔsanitizeUrlOrResourceUrl('javascript:true', 'iframe', 'src')).toThrowError(ERROR); expect( - () => sanitizeUrlOrResourceUrl( + () => ΔsanitizeUrlOrResourceUrl( bypassSanitizationTrustHtml('javascript:true'), 'iframe', 'src')) .toThrowError(ERROR); - expect(sanitizeUrlOrResourceUrl( + expect(ΔsanitizeUrlOrResourceUrl( bypassSanitizationTrustResourceUrl('javascript:true'), 'iframe', 'src')) .toEqual('javascript:true'); }); it('should sanitize urls via sanitizeUrlOrResourceUrl', () => { - expect(sanitizeUrlOrResourceUrl('http://server', 'a', 'href')).toEqual('http://server'); - expect(sanitizeUrlOrResourceUrl(new Wrap('http://server'), 'a', 'href')) + expect(ΔsanitizeUrlOrResourceUrl('http://server', 'a', 'href')).toEqual('http://server'); + expect(ΔsanitizeUrlOrResourceUrl(new Wrap('http://server'), 'a', 'href')) .toEqual('http://server'); - expect(sanitizeUrlOrResourceUrl('javascript:true', 'a', 'href')) + expect(ΔsanitizeUrlOrResourceUrl('javascript:true', 'a', 'href')) .toEqual('unsafe:javascript:true'); - expect(sanitizeUrlOrResourceUrl(new Wrap('javascript:true'), 'a', 'href')) + expect(ΔsanitizeUrlOrResourceUrl(new Wrap('javascript:true'), 'a', 'href')) .toEqual('unsafe:javascript:true'); - expect(sanitizeUrlOrResourceUrl(bypassSanitizationTrustHtml('javascript:true'), 'a', 'href')) + expect(ΔsanitizeUrlOrResourceUrl(bypassSanitizationTrustHtml('javascript:true'), 'a', 'href')) .toEqual('unsafe:javascript:true'); - expect(sanitizeUrlOrResourceUrl(bypassSanitizationTrustUrl('javascript:true'), 'a', 'href')) + expect(ΔsanitizeUrlOrResourceUrl(bypassSanitizationTrustUrl('javascript:true'), 'a', 'href')) .toEqual('javascript:true'); }); }); diff --git a/packages/core/test/strict_types/inheritance_spec.ts b/packages/core/test/strict_types/inheritance_spec.ts index 4600737d38..39693adc84 100644 --- a/packages/core/test/strict_types/inheritance_spec.ts +++ b/packages/core/test/strict_types/inheritance_spec.ts @@ -6,10 +6,10 @@ * found in the LICENSE file at https://angular.io/license */ -import {ɵComponentDefWithMeta as ComponentDefWithMeta, ɵPipeDefWithMeta as PipeDefWithMeta} from '@angular/core'; +import {ΔComponentDefWithMeta, ΔPipeDefWithMeta as PipeDefWithMeta} from '@angular/core'; declare class SuperComponent { - static ngComponentDef: ComponentDefWithMeta; + static ngComponentDef: ΔComponentDefWithMeta; } declare class SubComponent extends SuperComponent { @@ -18,7 +18,7 @@ declare class SubComponent extends SuperComponent { // would produce type errors when the "strictFunctionTypes" option is enabled. onlyInSubtype: string; - static ngComponentDef: ComponentDefWithMeta; + static ngComponentDef: ΔComponentDefWithMeta; } declare class SuperPipe { static ngPipeDef: PipeDefWithMeta; } diff --git a/packages/core/test/test_bed_spec.ts b/packages/core/test/test_bed_spec.ts index ac989deb5b..ecae7a035d 100644 --- a/packages/core/test/test_bed_spec.ts +++ b/packages/core/test/test_bed_spec.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {Component, Directive, ErrorHandler, Inject, Injectable, InjectionToken, NgModule, Optional, Pipe, ɵdefineComponent as defineComponent, ɵsetClassMetadata as setClassMetadata, ɵtext as text} from '@angular/core'; +import {Component, Directive, ErrorHandler, Inject, Injectable, InjectionToken, NgModule, Optional, Pipe, ɵsetClassMetadata as setClassMetadata, ΔdefineComponent as defineComponent, Δtext as text} from '@angular/core'; import {TestBed, getTestBed} from '@angular/core/testing/src/test_bed'; import {By} from '@angular/platform-browser'; import {expect} from '@angular/platform-browser/testing/src/matchers'; diff --git a/packages/core/test/view/ng_module_spec.ts b/packages/core/test/view/ng_module_spec.ts index ce8d13ce9e..fe8e7bae96 100644 --- a/packages/core/test/view/ng_module_spec.ts +++ b/packages/core/test/view/ng_module_spec.ts @@ -9,7 +9,7 @@ import {NgModuleRef} from '@angular/core'; import {InjectFlags, inject} from '@angular/core/src/di'; import {INJECTOR, Injector} from '@angular/core/src/di/injector'; -import {InjectableDef, defineInjectable} from '@angular/core/src/di/interface/defs'; +import {ΔInjectableDef, ΔdefineInjectable} from '@angular/core/src/di/interface/defs'; import {NgModuleDefinition, NgModuleProviderDef, NodeFlags} from '@angular/core/src/view'; import {moduleDef} from '@angular/core/src/view/ng_module'; import {createNgModuleRef} from '@angular/core/src/view/refs'; @@ -26,14 +26,14 @@ class MyChildModule {} class NotMyModule {} class Bar { - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new Bar(), providedIn: MyModule, }); } class Baz { - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new Baz(), providedIn: NotMyModule, }); @@ -42,7 +42,7 @@ class Baz { class HasNormalDep { constructor(public foo: Foo) {} - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new HasNormalDep(inject(Foo)), providedIn: MyModule, }); @@ -51,7 +51,7 @@ class HasNormalDep { class HasDefinedDep { constructor(public bar: Bar) {} - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new HasDefinedDep(inject(Bar)), providedIn: MyModule, }); @@ -60,14 +60,14 @@ class HasDefinedDep { class HasOptionalDep { constructor(public baz: Baz|null) {} - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new HasOptionalDep(inject(Baz, InjectFlags.Optional)), providedIn: MyModule, }); } class ChildDep { - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new ChildDep(), providedIn: MyChildModule, }); @@ -75,7 +75,7 @@ class ChildDep { class FromChildWithOptionalDep { constructor(public baz: Baz|null) {} - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new FromChildWithOptionalDep(inject(Baz, InjectFlags.Default)), providedIn: MyChildModule, }); @@ -85,7 +85,7 @@ class FromChildWithSkipSelfDep { constructor( public skipSelfChildDep: ChildDep|null, public selfChildDep: ChildDep|null, public optionalSelfBar: Bar|null) {} - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new FromChildWithSkipSelfDep( inject(ChildDep, InjectFlags.SkipSelf|InjectFlags.Optional), inject(ChildDep, InjectFlags.Self), @@ -208,7 +208,7 @@ describe('NgModuleRef_ injector', () => { ngOnDestroy(): void { Service.destroyed++; } - static ngInjectableDef: InjectableDef = defineInjectable({ + static ngInjectableDef: ΔInjectableDef = ΔdefineInjectable({ factory: () => new Service(), providedIn: 'root', }); diff --git a/packages/core/testing/src/r3_test_bed_compiler.ts b/packages/core/testing/src/r3_test_bed_compiler.ts index 3a607f5851..8fdb0b4873 100644 --- a/packages/core/testing/src/r3_test_bed_compiler.ts +++ b/packages/core/testing/src/r3_test_bed_compiler.ts @@ -6,44 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -// clang-format off -import { - ApplicationInitStatus, - COMPILER_OPTIONS, - Compiler, - Component, - Directive, - ErrorHandler, - ModuleWithComponentFactories, - NgModule, - NgModuleFactory, - NgZone, - Injector, - Pipe, - PlatformRef, - Provider, - Type, - ɵcompileComponent as compileComponent, - ɵcompileDirective as compileDirective, - ɵcompileNgModuleDefs as compileNgModuleDefs, - ɵcompilePipe as compilePipe, - ɵgetInjectableDef as getInjectableDef, - ɵNG_COMPONENT_DEF as NG_COMPONENT_DEF, - ɵNG_DIRECTIVE_DEF as NG_DIRECTIVE_DEF, - ɵNG_INJECTOR_DEF as NG_INJECTOR_DEF, - ɵNG_MODULE_DEF as NG_MODULE_DEF, - ɵNG_PIPE_DEF as NG_PIPE_DEF, - ɵRender3ComponentFactory as ComponentFactory, - ɵRender3NgModuleRef as NgModuleRef, - ɵInjectableDef as InjectableDef, - ɵNgModuleFactory as R3NgModuleFactory, - ɵNgModuleTransitiveScopes as NgModuleTransitiveScopes, - ɵNgModuleType as NgModuleType, - ɵDirectiveDef as DirectiveDef, - ɵpatchComponentDefWithScope as patchComponentDefWithScope, - ɵtransitiveScopesFor as transitiveScopesFor, -} from '@angular/core'; -// clang-format on +import {ApplicationInitStatus, COMPILER_OPTIONS, Compiler, Component, Directive, ErrorHandler, ModuleWithComponentFactories, NgModule, NgModuleFactory, NgZone, Injector, Pipe, PlatformRef, Provider, Type, ɵcompileComponent as compileComponent, ɵcompileDirective as compileDirective, ɵcompileNgModuleDefs as compileNgModuleDefs, ɵcompilePipe as compilePipe, ɵgetInjectableDef as getInjectableDef, ɵNG_COMPONENT_DEF as NG_COMPONENT_DEF, ɵNG_DIRECTIVE_DEF as NG_DIRECTIVE_DEF, ɵNG_INJECTOR_DEF as NG_INJECTOR_DEF, ɵNG_MODULE_DEF as NG_MODULE_DEF, ɵNG_PIPE_DEF as NG_PIPE_DEF, ɵRender3ComponentFactory as ComponentFactory, ɵRender3NgModuleRef as NgModuleRef, ΔInjectableDef as InjectableDef, ɵNgModuleFactory as R3NgModuleFactory, ɵNgModuleTransitiveScopes as NgModuleTransitiveScopes, ɵNgModuleType as NgModuleType, ɵDirectiveDef as DirectiveDef, ɵpatchComponentDefWithScope as patchComponentDefWithScope, ɵtransitiveScopesFor as transitiveScopesFor,} from '@angular/core'; import {ResourceLoader} from '@angular/compiler'; import {clearResolutionOfComponentResourcesQueue, restoreComponentResolutionQueue, resolveComponentResources, isComponentDefPendingResolution} from '../../src/metadata/resource_loading'; @@ -709,4 +672,4 @@ class R3TestCompiler implements Compiler { const meta = this.testBed._getModuleResolver().resolve(moduleType); return meta && meta.id || undefined; } -} \ No newline at end of file +} diff --git a/packages/core/testing/src/test_bed.ts b/packages/core/testing/src/test_bed.ts index 44e7c21355..880e1ae3da 100644 --- a/packages/core/testing/src/test_bed.ts +++ b/packages/core/testing/src/test_bed.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {ApplicationInitStatus, CompilerOptions, Component, Directive, InjectFlags, InjectionToken, Injector, NgModule, NgModuleFactory, NgModuleRef, NgZone, Optional, Pipe, PlatformRef, Provider, SchemaMetadata, SkipSelf, StaticProvider, Type, ɵAPP_ROOT as APP_ROOT, ɵDepFlags as DepFlags, ɵInjectableDef as InjectableDef, ɵNodeFlags as NodeFlags, ɵclearOverrides as clearOverrides, ɵgetInjectableDef as getInjectableDef, ɵivyEnabled as ivyEnabled, ɵoverrideComponentView as overrideComponentView, ɵoverrideProvider as overrideProvider, ɵstringify as stringify} from '@angular/core'; +import {ApplicationInitStatus, CompilerOptions, Component, Directive, InjectFlags, InjectionToken, Injector, NgModule, NgModuleFactory, NgModuleRef, NgZone, Optional, Pipe, PlatformRef, Provider, SchemaMetadata, SkipSelf, StaticProvider, Type, ɵAPP_ROOT as APP_ROOT, ɵDepFlags as DepFlags, ɵNodeFlags as NodeFlags, ɵclearOverrides as clearOverrides, ɵgetInjectableDef as getInjectableDef, ɵivyEnabled as ivyEnabled, ɵoverrideComponentView as overrideComponentView, ɵoverrideProvider as overrideProvider, ɵstringify as stringify, ΔInjectableDef} from '@angular/core'; import {AsyncTestCompleter} from './async_test_completer'; import {ComponentFixture} from './component_fixture'; @@ -559,7 +559,7 @@ export class TestBedViewEngine implements Injector, TestBed { deps?: any[], }, deprecated = false): void { - let def: InjectableDef|null = null; + let def: ΔInjectableDef|null = null; if (typeof token !== 'string' && (def = getInjectableDef(token)) && def.providedIn === 'root') { if (provider.useFactory) { this._rootProviderOverrides.push( diff --git a/packages/language-service/test/definitions_spec.ts b/packages/language-service/test/definitions_spec.ts index 0d027618c6..03395b40b4 100644 --- a/packages/language-service/test/definitions_spec.ts +++ b/packages/language-service/test/definitions_spec.ts @@ -26,22 +26,22 @@ describe('definitions', () => { it('should be able to find field in an interpolation', () => { localReference( - ` @Component({template: '{{«name»}}'}) export class MyComponent { «∆name∆: string;» }`); + ` @Component({template: '{{«name»}}'}) export class MyComponent { «ΔnameΔ: string;» }`); }); it('should be able to find a field in a attribute reference', () => { localReference( - ` @Component({template: ''}) export class MyComponent { «∆name∆: string;» }`); + ` @Component({template: ''}) export class MyComponent { «ΔnameΔ: string;» }`); }); it('should be able to find a method from a call', () => { localReference( - ` @Component({template: '
'}) export class MyComponent { «∆myClick∆() { }»}`); + ` @Component({template: '
'}) export class MyComponent { «ΔmyClickΔ() { }»}`); }); it('should be able to find a field reference in an *ngIf', () => { localReference( - ` @Component({template: '
'}) export class MyComponent { «∆include∆ = true;»}`); + ` @Component({template: '
'}) export class MyComponent { «ΔincludeΔ = true;»}`); }); it('should be able to find a reference to a component', () => { diff --git a/packages/language-service/test/hover_spec.ts b/packages/language-service/test/hover_spec.ts index b07ecb79c5..41bf242dd1 100644 --- a/packages/language-service/test/hover_spec.ts +++ b/packages/language-service/test/hover_spec.ts @@ -40,7 +40,7 @@ describe('hover', () => { it('should be able to find a method from a call', () => { hover( - ` @Component({template: '
'}) export class MyComponent { myClick() { }}`, + ` @Component({template: '
'}) export class MyComponent { myClick() { }}`, 'method myClick of MyComponent'); }); @@ -52,19 +52,19 @@ describe('hover', () => { it('should be able to find a reference to a component', () => { hover( - ` @Component({template: '«<∆test∆-comp>»'}) export class MyComponent { }`, + ` @Component({template: '«<ΔtestΔ-comp>»'}) export class MyComponent { }`, 'component TestComponent'); }); it('should be able to find an event provider', () => { hover( - ` @Component({template: '
'}) export class MyComponent { myHandler() {} }`, + ` @Component({template: '
'}) export class MyComponent { myHandler() {} }`, 'event testEvent of TestComponent'); }); it('should be able to find an input provider', () => { hover( - ` @Component({template: ''}) export class MyComponent { name = 'my name'; }`, + ` @Component({template: ''}) export class MyComponent { name = 'my name'; }`, 'property name of TestComponent'); }); diff --git a/packages/language-service/test/test_data.ts b/packages/language-service/test/test_data.ts index 55c6255298..10b4c7843e 100644 --- a/packages/language-service/test/test_data.ts +++ b/packages/language-service/test/test_data.ts @@ -143,8 +143,8 @@ export class References {} @Component({selector: 'test-comp', template: '
Testing: {{name}}
'}) export class TestComponent { - «@Input('∆tcName∆') name = 'test';» - «@Output('∆test∆') testEvent = new EventEmitter();» + «@Input('ΔtcNameΔ') name = 'test';» + «@Output('ΔtestΔ') testEvent = new EventEmitter();» } @Component({templateUrl: 'test.ng'}) diff --git a/packages/language-service/test/test_utils.ts b/packages/language-service/test/test_utils.ts index 17ff5acbbf..38bf0c1754 100644 --- a/packages/language-service/test/test_utils.ts +++ b/packages/language-service/test/test_utils.ts @@ -278,7 +278,7 @@ function getLocationMarkers(value: string): {[name: string]: number} { return result; } -const referenceMarker = /«(((\w|\-)+)|([^∆]*∆(\w+)∆.[^»]*))»/g; +const referenceMarker = /«(((\w|\-)+)|([^Δ]*Δ(\w+)Δ.[^»]*))»/g; const definitionMarkerGroup = 1; const nameMarkerGroup = 2; @@ -300,7 +300,7 @@ function getReferenceMarkers(value: string): ReferenceResult { const text = value.replace( referenceMarker, (match: string, text: string, reference: string, _: string, definition: string, definitionName: string, index: number): string => { - const result = reference ? text : text.replace(/∆/g, ''); + const result = reference ? text : text.replace(/Δ/g, ''); const span: Span = {start: index - adjustment, end: index - adjustment + result.length}; const markers = reference ? references : definitions; const name = reference || definitionName; @@ -313,7 +313,7 @@ function getReferenceMarkers(value: string): ReferenceResult { } function removeReferenceMarkers(value: string): string { - return value.replace(referenceMarker, (match, text) => text.replace(/∆/g, '')); + return value.replace(referenceMarker, (match, text) => text.replace(/Δ/g, '')); } export function noDiagnostics(diagnostics: Diagnostics) { diff --git a/packages/platform-browser-dynamic/src/compiler_reflector.ts b/packages/platform-browser-dynamic/src/compiler_reflector.ts index 857a85e528..da2ec859d2 100644 --- a/packages/platform-browser-dynamic/src/compiler_reflector.ts +++ b/packages/platform-browser-dynamic/src/compiler_reflector.ts @@ -99,4 +99,4 @@ function createBuiltinExternalReferencesMap() { map.set(Identifiers.createRendererType2, ɵcrt); map.set(Identifiers.createComponentFactory, ɵccf); return map; -} \ No newline at end of file +} diff --git a/packages/platform-browser/src/browser/meta.ts b/packages/platform-browser/src/browser/meta.ts index 2b8b30d041..e32b984a46 100644 --- a/packages/platform-browser/src/browser/meta.ts +++ b/packages/platform-browser/src/browser/meta.ts @@ -7,7 +7,7 @@ */ import {DOCUMENT} from '@angular/common'; -import {Inject, Injectable, inject} from '@angular/core'; +import {Inject, Injectable, Δinject} from '@angular/core'; import {DomAdapter, getDOM} from '../dom/dom_adapter'; @@ -34,7 +34,7 @@ export type MetaDefinition = { * Factory to create Meta service. */ export function createMeta() { - return new Meta(inject(DOCUMENT)); + return new Meta(Δinject(DOCUMENT)); } /** diff --git a/packages/platform-browser/src/browser/title.ts b/packages/platform-browser/src/browser/title.ts index 83a2bb2c2f..a5f7b807fa 100644 --- a/packages/platform-browser/src/browser/title.ts +++ b/packages/platform-browser/src/browser/title.ts @@ -7,7 +7,7 @@ */ import {DOCUMENT} from '@angular/common'; -import {Inject, Injectable, inject} from '@angular/core'; +import {Inject, Injectable, Δinject} from '@angular/core'; import {getDOM} from '../dom/dom_adapter'; @@ -15,7 +15,7 @@ import {getDOM} from '../dom/dom_adapter'; * Factory to create Title service. */ export function createTitle() { - return new Title(inject(DOCUMENT)); + return new Title(Δinject(DOCUMENT)); } /** diff --git a/tools/public_api_guard/core/core.d.ts b/tools/public_api_guard/core/core.d.ts index 8e4d861e77..9142125b0b 100644 --- a/tools/public_api_guard/core/core.d.ts +++ b/tools/public_api_guard/core/core.d.ts @@ -259,16 +259,8 @@ export declare class DefaultIterableDiffer implements IterableDiffer, Iter onDestroy(): void; } -export declare function defineInjectable(opts: { - providedIn?: Type | 'root' | 'any' | null; - factory: () => T; -}): never; - -export declare function defineInjector(options: { - factory: () => any; - providers?: any[]; - imports?: any[]; -}): never; +/** @deprecated */ +export declare const defineInjectable: typeof ΔdefineInjectable; export declare function destroyPlatform(): void; @@ -385,8 +377,8 @@ export interface HostListenerDecorator { new (eventName: string, args?: string[]): any; } -export declare function inject(token: Type | InjectionToken): T; -export declare function inject(token: Type | InjectionToken, flags?: InjectFlags): T | null; +/** @deprecated */ +export declare const inject: typeof Δinject; export interface Inject { token: any; @@ -1051,3 +1043,361 @@ export interface WtfScopeFn { } export declare const wtfStartTimeRange: (rangeType: string, action: string) => any; + +export declare function ΔallocHostVars(count: number): void; + +export interface ΔBaseDef { + /** @deprecated */ readonly declaredInputs: { + [P in keyof T]: string; + }; + readonly inputs: { + [P in keyof T]: string; + }; + readonly outputs: { + [P in keyof T]: string; + }; +} + +export declare function Δbind(value: T): T | NO_CHANGE; + +export declare type ΔComponentDefWithMeta = ComponentDef; + +export declare function ΔcomponentHostSyntheticListener(eventName: string, listenerFn: (e?: any) => any, useCapture?: boolean, eventTargetResolver?: GlobalTargetResolver): void; + +export declare function ΔcomponentHostSyntheticProperty(index: number, propName: string, value: T | NO_CHANGE, sanitizer?: SanitizerFn | null, nativeOnly?: boolean): void; + +export declare function Δcontainer(index: number): void; + +export declare function ΔcontainerRefreshEnd(): void; + +export declare function ΔcontainerRefreshStart(index: number): void; + +export declare function ΔcontentQuery(directiveIndex: number, predicate: Type | string[], descend: boolean, read: any): QueryList; + +export declare const ΔdefaultStyleSanitizer: StyleSanitizeFn; + +export declare function ΔdefineBase(baseDefinition: { + inputs?: { + [P in keyof T]?: string | [string, string]; + }; + outputs?: { + [P in keyof T]?: string; + }; +}): ΔBaseDef; + +export declare function ΔdefineComponent(componentDefinition: { + type: Type; + selectors: CssSelectorList; + factory: FactoryFn; + consts: number; + vars: number; + inputs?: { + [P in keyof T]?: string | [string, string]; + }; + outputs?: { + [P in keyof T]?: string; + }; + hostBindings?: HostBindingsFunction; + contentQueries?: ContentQueriesFunction; + exportAs?: string[]; + template: ComponentTemplate; + ngContentSelectors?: string[]; + viewQuery?: ViewQueriesFunction | null; + features?: ComponentDefFeature[]; + encapsulation?: ViewEncapsulation; + data?: { + [kind: string]: any; + }; + styles?: string[]; + changeDetection?: ChangeDetectionStrategy; + directives?: DirectiveTypesOrFactory | null; + pipes?: PipeTypesOrFactory | null; + schemas?: SchemaMetadata[] | null; +}): never; + +export declare const ΔdefineDirective: (directiveDefinition: { + type: Type; + selectors: (string | SelectorFlags)[][]; + factory: FactoryFn; + inputs?: { [P in keyof T]?: string | [string, string] | undefined; } | undefined; + outputs?: { [P in keyof T]?: string | undefined; } | undefined; + features?: DirectiveDefFeature[] | undefined; + hostBindings?: HostBindingsFunction | undefined; + contentQueries?: ContentQueriesFunction | undefined; + viewQuery?: ViewQueriesFunction | null | undefined; + exportAs?: string[] | undefined; +}) => never; + +export declare function ΔdefineInjectable(opts: { + providedIn?: Type | 'root' | 'any' | null; + factory: () => T; +}): never; + +export declare function ΔdefineInjector(options: { + factory: () => any; + providers?: any[]; + imports?: any[]; +}): never; + +export declare function ΔdefineNgModule(def: { + type: T; + bootstrap?: Type[] | (() => Type[]); + declarations?: Type[] | (() => Type[]); + imports?: Type[] | (() => Type[]); + exports?: Type[] | (() => Type[]); + schemas?: SchemaMetadata[] | null; +}): never; + +export declare function ΔdefinePipe(pipeDef: { + name: string; + type: Type; + factory: FactoryFn; + pure?: boolean; +}): never; + +export declare type ΔDirectiveDefWithMeta = DirectiveDef; + +export declare function ΔdirectiveInject(token: Type | InjectionToken): T; +export declare function ΔdirectiveInject(token: Type | InjectionToken, flags: InjectFlags): T; + +export declare function ΔdisableBindings(): void; + +export declare function Δelement(index: number, name: string, attrs?: TAttributes | null, localRefs?: string[] | null): void; + +export declare function ΔelementAttribute(index: number, name: string, value: any, sanitizer?: SanitizerFn | null, namespace?: string): void; + +export declare function ΔelementClassProp(index: number, classIndex: number, value: boolean | PlayerFactory, forceOverride?: boolean): void; + +export declare function ΔelementContainerEnd(): void; + +export declare function ΔelementContainerStart(index: number, attrs?: TAttributes | null, localRefs?: string[] | null): void; + +export declare function ΔelementEnd(): void; + +export declare function ΔelementHostAttrs(attrs: TAttributes): void; + +export declare function ΔelementHostClassProp(classIndex: number, value: boolean | PlayerFactory, forceOverride?: boolean): void; + +export declare function ΔelementHostStyleProp(styleIndex: number, value: string | number | String | PlayerFactory | null, suffix?: string | null, forceOverride?: boolean): void; + +export declare function ΔelementHostStyling(classBindingNames?: string[] | null, styleBindingNames?: string[] | null, styleSanitizer?: StyleSanitizeFn | null): void; + +export declare function ΔelementHostStylingApply(): void; + +export declare function ΔelementHostStylingMap(classes: { + [key: string]: any; +} | string | NO_CHANGE | null, styles?: { + [styleName: string]: any; +} | NO_CHANGE | null): void; + +export declare function ΔelementProperty(index: number, propName: string, value: T | NO_CHANGE, sanitizer?: SanitizerFn | null, nativeOnly?: boolean): void; + +export declare function ΔelementStart(index: number, name: string, attrs?: TAttributes | null, localRefs?: string[] | null): void; + +export declare function ΔelementStyleProp(index: number, styleIndex: number, value: string | number | String | PlayerFactory | null, suffix?: string | null, forceOverride?: boolean): void; + +export declare function ΔelementStyling(classBindingNames?: string[] | null, styleBindingNames?: string[] | null, styleSanitizer?: StyleSanitizeFn | null): void; + +export declare function ΔelementStylingApply(index: number): void; + +export declare function ΔelementStylingMap(index: number, classes: { + [key: string]: any; +} | string | NO_CHANGE | null, styles?: { + [styleName: string]: any; +} | NO_CHANGE | null): void; + +export declare function ΔembeddedViewEnd(): void; + +export declare function ΔembeddedViewStart(viewBlockId: number, consts: number, vars: number): RenderFlags; + +export declare function ΔenableBindings(): void; + +export declare function ΔgetCurrentView(): OpaqueViewState; + +export declare function ΔgetFactoryOf(type: Type): ((type: Type | null) => T) | null; + +export declare function ΔgetInheritedFactory(type: Type): (type: Type) => T; + +export declare function Δi18n(index: number, message: string, subTemplateIndex?: number): void; + +export declare function Δi18nApply(index: number): void; + +export declare function Δi18nAttributes(index: number, values: string[]): void; + +export declare function Δi18nEnd(): void; + +export declare function Δi18nExp(expression: T | NO_CHANGE): void; + +export declare function Δi18nPostprocess(message: string, replacements?: { + [key: string]: (string | string[]); +}): string; + +export declare function Δi18nStart(index: number, message: string, subTemplateIndex?: number): void; + +export declare function ΔInheritDefinitionFeature(definition: DirectiveDef | ComponentDef): void; + +export declare function Δinject(token: Type | InjectionToken): T; +export declare function Δinject(token: Type | InjectionToken, flags?: InjectFlags): T | null; + +export interface ΔInjectableDef { + factory: () => T; + providedIn: InjectorType | 'root' | 'any' | null; + value: T | undefined; +} + +export declare function ΔinjectAttribute(attrNameToInject: string): string | null; + +export interface ΔInjectorDef { + factory: () => T; + imports: (InjectorType | InjectorTypeWithProviders)[]; + providers: (Type | ValueProvider | ExistingProvider | FactoryProvider | ConstructorProvider | StaticClassProvider | ClassProvider | any[])[]; +} + +export declare function Δinterpolation1(prefix: string, v0: any, suffix: string): string | NO_CHANGE; + +export declare function Δinterpolation2(prefix: string, v0: any, i0: string, v1: any, suffix: string): string | NO_CHANGE; + +export declare function Δinterpolation3(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, suffix: string): string | NO_CHANGE; + +export declare function Δinterpolation4(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, suffix: string): string | NO_CHANGE; + +export declare function Δinterpolation5(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, suffix: string): string | NO_CHANGE; + +export declare function Δinterpolation6(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, suffix: string): string | NO_CHANGE; + +export declare function Δinterpolation7(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, suffix: string): string | NO_CHANGE; + +export declare function Δinterpolation8(prefix: string, v0: any, i0: string, v1: any, i1: string, v2: any, i2: string, v3: any, i3: string, v4: any, i4: string, v5: any, i5: string, v6: any, i6: string, v7: any, suffix: string): string | NO_CHANGE; + +export declare function ΔinterpolationV(values: any[]): string | NO_CHANGE; + +export declare function Δlistener(eventName: string, listenerFn: (e?: any) => any, useCapture?: boolean, eventTargetResolver?: GlobalTargetResolver): void; + +export declare function Δload(index: number): T; + +export declare function ΔloadContentQuery(): QueryList; + +export declare function ΔloadViewQuery(): T; + +export declare function ΔnamespaceHTML(): void; + +export declare function ΔnamespaceMathML(): void; + +export declare function ΔnamespaceSVG(): void; + +export declare function ΔnextContext(level?: number): T; + +export declare type ΔNgModuleDefWithMeta = NgModuleDef; + +export declare function ΔNgOnChangesFeature(): DirectiveDefFeature; + +export declare function Δpipe(index: number, pipeName: string): any; + +export declare function ΔpipeBind1(index: number, slotOffset: number, v1: any): any; + +export declare function ΔpipeBind2(index: number, slotOffset: number, v1: any, v2: any): any; + +export declare function ΔpipeBind3(index: number, slotOffset: number, v1: any, v2: any, v3: any): any; + +export declare function ΔpipeBind4(index: number, slotOffset: number, v1: any, v2: any, v3: any, v4: any): any; + +export declare function ΔpipeBindV(index: number, slotOffset: number, values: any[]): any; + +export declare type ΔPipeDefWithMeta = PipeDef; + +export declare function Δprojection(nodeIndex: number, selectorIndex?: number, attrs?: string[]): void; + +export declare function ΔprojectionDef(selectors?: CssSelectorList[], textSelectors?: string[]): void; + +export declare function ΔProvidersFeature(providers: Provider[], viewProviders?: Provider[]): (definition: DirectiveDef) => void; + +export declare function ΔpureFunction0(slotOffset: number, pureFn: () => T, thisArg?: any): T; + +export declare function ΔpureFunction1(slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any; + +export declare function ΔpureFunction2(slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any; + +export declare function ΔpureFunction3(slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any; + +export declare function ΔpureFunction4(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any; + +export declare function ΔpureFunction5(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, thisArg?: any): any; + +export declare function ΔpureFunction6(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, thisArg?: any): any; + +export declare function ΔpureFunction7(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, thisArg?: any): any; + +export declare function ΔpureFunction8(slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, v7: any, v8: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, exp5: any, exp6: any, exp7: any, exp8: any, thisArg?: any): any; + +export declare function ΔpureFunctionV(slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any; + +export declare function ΔqueryRefresh(queryList: QueryList): boolean; + +export declare function Δreference(index: number): T; + +export declare function ΔresolveBody(element: RElement & { + ownerDocument: Document; +}): { + name: string; + target: HTMLElement; +}; + +export declare function ΔresolveDocument(element: RElement & { + ownerDocument: Document; +}): { + name: string; + target: Document; +}; + +export declare function ΔresolveWindow(element: RElement & { + ownerDocument: Document; +}): { + name: string; + target: Window | null; +}; + +export declare function ΔrestoreView(viewToRestore: OpaqueViewState): void; + +export declare function ΔsanitizeHtml(unsafeHtml: any): string; + +export declare function ΔsanitizeResourceUrl(unsafeResourceUrl: any): string; + +export declare function ΔsanitizeScript(unsafeScript: any): string; + +export declare function ΔsanitizeStyle(unsafeStyle: any): string; + +export declare function ΔsanitizeUrl(unsafeUrl: any): string; + +export declare function ΔsanitizeUrlOrResourceUrl(unsafeUrl: any, tag: string, prop: string): any; + +export declare function Δselect(index: number): void; + +export declare function ΔsetComponentScope(type: ComponentType, directives: Type[], pipes: Type[]): void; + +export declare function ΔsetNgModuleScope(type: any, scope: { + declarations?: Type[] | (() => Type[]); + imports?: Type[] | (() => Type[]); + exports?: Type[] | (() => Type[]); +}): void; + +export declare function ΔstaticContentQuery(directiveIndex: number, predicate: Type | string[], descend: boolean, read: any): void; + +export declare function ΔstaticViewQuery(predicate: Type | string[], descend: boolean, read: any): void; + +export declare function Δtemplate(index: number, templateFn: ComponentTemplate | null, consts: number, vars: number, tagName?: string | null, attrs?: TAttributes | null, localRefs?: string[] | null, localRefExtractor?: LocalRefExtractor): void; + +export declare function ΔtemplateRefExtractor(tNode: TNode, currentView: LView): ViewEngine_TemplateRef<{}> | null; + +export declare function Δtext(index: number, value?: any): void; + +export declare function ΔtextBinding(index: number, value: T | NO_CHANGE): void; + +export declare function ΔviewQuery(predicate: Type | string[], descend: boolean, read: any): QueryList;