perf: distrubute smaller bundled code and include es2015 bundle
TypeScript compiler will now build to ES2015 code and modules. Babili is used to minify ES2015 code, providing an initial optimization that we couldn't previously get just from Uglify. Uses Babel to convert ES2015 to UMD/ES5 code, and Uglify to minimize the output.
This commit is contained in:
@ -6,7 +6,10 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ChangeDetectionStrategy, ComponentFactory, ComponentRenderTypeV2, SchemaMetadata, Type, ViewEncapsulation, ɵLifecycleHooks, ɵreflector} from '@angular/core';
|
||||
import {
|
||||
ChangeDetectionStrategy, ComponentFactory, SchemaMetadata, Type, ViewEncapsulation, ɵLifecycleHooks, ɵreflector,
|
||||
RendererTypeV2
|
||||
} from '@angular/core';
|
||||
|
||||
import {StaticSymbol} from './aot/static_symbol';
|
||||
import {ListWrapper} from './facade/collection';
|
||||
|
70
modules/@angular/compiler/src/compiler.ts
Normal file
70
modules/@angular/compiler/src/compiler.ts
Normal file
@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google Inc. All Rights Reserved.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
/**
|
||||
* @module
|
||||
* @description
|
||||
* Entry point for all APIs of the compiler package.
|
||||
*
|
||||
* <div class="callout is-critical">
|
||||
* <header>Unstable APIs</header>
|
||||
* <p>
|
||||
* All compiler apis are currently considered experimental and private!
|
||||
* </p>
|
||||
* <p>
|
||||
* We expect the APIs in this package to keep on changing. Do not rely on them.
|
||||
* </p>
|
||||
* </div>
|
||||
*/
|
||||
export {VERSION} from './version';
|
||||
export * from './template_parser/template_ast';
|
||||
export {TEMPLATE_TRANSFORMS} from './template_parser/template_parser';
|
||||
export {CompilerConfig, RenderTypes} from './config';
|
||||
export * from './compile_metadata';
|
||||
export * from './aot/compiler_factory';
|
||||
export * from './aot/compiler';
|
||||
export * from './aot/compiler_host';
|
||||
export * from './aot/static_reflector';
|
||||
export * from './aot/static_reflection_capabilities';
|
||||
export * from './aot/static_symbol';
|
||||
export * from './aot/static_symbol_resolver';
|
||||
export * from './aot/summary_resolver';
|
||||
export * from './summary_resolver';
|
||||
export {JitCompiler} from './jit/compiler';
|
||||
export * from './jit/compiler_factory';
|
||||
export * from './url_resolver';
|
||||
export * from './resource_loader';
|
||||
export {DirectiveResolver} from './directive_resolver';
|
||||
export {PipeResolver} from './pipe_resolver';
|
||||
export {NgModuleResolver} from './ng_module_resolver';
|
||||
export {DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig} from './ml_parser/interpolation_config';
|
||||
export * from './schema/element_schema_registry';
|
||||
export * from './i18n/index';
|
||||
export * from './directive_normalizer';
|
||||
export * from './expression_parser/ast';
|
||||
export * from './expression_parser/lexer';
|
||||
export * from './expression_parser/parser';
|
||||
export * from './metadata_resolver';
|
||||
export * from './ml_parser/ast';
|
||||
export * from './ml_parser/html_parser';
|
||||
export * from './ml_parser/html_tags';
|
||||
export * from './ml_parser/interpolation_config';
|
||||
export * from './ml_parser/tags';
|
||||
export {NgModuleCompiler} from './ng_module_compiler';
|
||||
export {DirectiveWrapperCompiler} from './directive_wrapper_compiler';
|
||||
export * from './output/path_util';
|
||||
export * from './output/ts_emitter';
|
||||
export * from './parse_util';
|
||||
export * from './schema/dom_element_schema_registry';
|
||||
export * from './selector';
|
||||
export * from './style_compiler';
|
||||
export * from './template_parser/template_parser';
|
||||
export {ViewCompiler} from './view_compiler/view_compiler';
|
||||
export {AnimationParser} from './animation/animation_parser';
|
||||
export {isSyntaxError, syntaxError} from './util';
|
||||
// This file only reexports content of the `src` folder. Keep it that way.
|
@ -6,7 +6,7 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ANALYZE_FOR_ENTRY_COMPONENTS, ChangeDetectionStrategy, ChangeDetectorRef, ComponentFactory, ComponentFactoryResolver, ComponentRef, ElementRef, Injector, LOCALE_ID, NgModuleFactory, QueryList, RenderComponentType, Renderer, RendererTypeV2, SecurityContext, SimpleChange, TRANSLATIONS_FORMAT, TemplateRef, ViewContainerRef, ViewEncapsulation, ɵAnimationGroupPlayer, ɵAnimationKeyframe, ɵAnimationSequencePlayer, ɵAnimationStyles, ɵAnimationTransition, ɵAppView, ɵChangeDetectorStatus, ɵCodegenComponentFactoryResolver, ɵComponentRef_, ɵDebugAppView, ɵDebugContext, ɵNgModuleInjector, ɵNoOpAnimationPlayer, ɵStaticNodeDebugInfo, ɵTemplateRef_, ɵValueUnwrapper, ɵViewContainer, ɵViewType, ɵbalanceAnimationKeyframes, ɵclearStyles, ɵcollectAndResolveStyles, ɵdevModeEqual, ɵprepareFinalAnimationStyles, ɵreflector, ɵregisterModuleFactory, ɵrenderStyles, ɵviewEngine, ɵview_utils} from '@angular/core';
|
||||
import {ANALYZE_FOR_ENTRY_COMPONENTS, ChangeDetectionStrategy, ChangeDetectorRef, ComponentFactory, ComponentFactoryResolver, ComponentRef, ElementRef, Injector, LOCALE_ID, NgModuleFactory, QueryList, RenderComponentType, Renderer, SecurityContext, SimpleChange, TRANSLATIONS_FORMAT, TemplateRef, ViewContainerRef, ViewEncapsulation, ɵAnimationGroupPlayer, ɵAnimationKeyframe, ɵAnimationSequencePlayer, ɵAnimationStyles, ɵAnimationTransition, ɵAppView, ɵChangeDetectorStatus, ɵCodegenComponentFactoryResolver, ɵComponentRef_, ɵDebugAppView, ɵDebugContext, ɵEMPTY_ARRAY, ɵEMPTY_INLINE_ARRAY, ɵEMPTY_MAP, ɵInlineArray16, ɵInlineArray2, ɵInlineArray4, ɵInlineArray8, ɵInlineArrayDynamic, ɵNgModuleInjector, ɵNoOpAnimationPlayer, ɵStaticNodeDebugInfo, ɵTemplateRef_, ɵValueUnwrapper, ɵViewContainer, ɵViewType, ɵViewUtils, ɵanchorDef, ɵbalanceAnimationKeyframes, ɵcastByValue, ɵcheckBinding, ɵcheckBindingChange, ɵcheckRenderAttribute, ɵcheckRenderClass, ɵcheckRenderProperty, ɵcheckRenderStyle, ɵcheckRenderText, ɵclearStyles, ɵcollectAndResolveStyles, ɵcreateRendererTypeV2, ɵcreateRenderComponentType, ɵcreateRenderElement, ɵdevModeEqual, ɵdirectiveDef, ɵelementDef, ɵinlineInterpolate, ɵinterpolate, ɵngContentDef, ɵnodeValue, ɵnoop, ɵpipeDef, ɵprepareFinalAnimationStyles, ɵproviderDef, ɵpureArrayDef, ɵpureObjectDef, ɵpurePipeDef, ɵpureProxy1, ɵpureProxy10, ɵpureProxy2, ɵpureProxy3, ɵpureProxy4, ɵpureProxy5, ɵpureProxy6, ɵpureProxy7, ɵpureProxy8, ɵpureProxy9, ɵqueryDef, ɵreflector, ɵregisterModuleFactory, ɵrenderStyles, ɵselectOrCreateRenderHostElement, ɵsetBindingDebugInfo, ɵsetBindingDebugInfoForChanges, ɵsubscribeToRenderElement, ɵtextDef, ɵunwrapValue, ɵviewDef} from '@angular/core';
|
||||
|
||||
import {CompileIdentifierMetadata, CompileTokenMetadata} from './compile_metadata';
|
||||
|
||||
@ -16,7 +16,6 @@ const VIEW_UTILS_MODULE_URL = assetUrl('core', 'linker/view_utils');
|
||||
export interface IdentifierSpec {
|
||||
name: string;
|
||||
moduleUrl: string;
|
||||
member?: string;
|
||||
runtime: any;
|
||||
}
|
||||
|
||||
@ -26,8 +25,7 @@ export class Identifiers {
|
||||
moduleUrl: CORE,
|
||||
runtime: ANALYZE_FOR_ENTRY_COMPONENTS
|
||||
};
|
||||
static ViewUtils: IdentifierSpec =
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'ViewUtils', runtime: ɵview_utils.ViewUtils};
|
||||
static ViewUtils: IdentifierSpec = {name: 'ɵViewUtils', moduleUrl: CORE, runtime: ɵViewUtils};
|
||||
static AppView: IdentifierSpec = {name: 'ɵAppView', moduleUrl: CORE, runtime: ɵAppView};
|
||||
static DebugAppView:
|
||||
IdentifierSpec = {name: 'ɵDebugAppView', moduleUrl: CORE, runtime: ɵDebugAppView};
|
||||
@ -101,100 +99,59 @@ export class Identifiers {
|
||||
moduleUrl: CORE,
|
||||
runtime: ɵChangeDetectorStatus
|
||||
};
|
||||
static checkBinding: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'checkBinding',
|
||||
runtime: ɵview_utils.checkBinding
|
||||
};
|
||||
static checkBindingChange: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'checkBindingChange',
|
||||
runtime: ɵview_utils.checkBindingChange
|
||||
};
|
||||
static checkRenderText: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'checkRenderText',
|
||||
runtime: ɵview_utils.checkRenderText
|
||||
};
|
||||
static checkBinding:
|
||||
IdentifierSpec = {name: 'ɵcheckBinding', moduleUrl: CORE, runtime: ɵcheckBinding};
|
||||
static checkBindingChange:
|
||||
IdentifierSpec = {name: 'ɵcheckBindingChange', moduleUrl: CORE, runtime: ɵcheckBindingChange};
|
||||
static checkRenderText:
|
||||
IdentifierSpec = {name: 'ɵcheckRenderText', moduleUrl: CORE, runtime: ɵcheckRenderText};
|
||||
static checkRenderProperty: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵcheckRenderProperty',
|
||||
moduleUrl: CORE,
|
||||
member: 'checkRenderProperty',
|
||||
runtime: ɵview_utils.checkRenderProperty
|
||||
runtime: ɵcheckRenderProperty
|
||||
};
|
||||
static checkRenderAttribute: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵcheckRenderAttribute',
|
||||
moduleUrl: CORE,
|
||||
member: 'checkRenderAttribute',
|
||||
runtime: ɵview_utils.checkRenderAttribute
|
||||
};
|
||||
static checkRenderClass: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'checkRenderClass',
|
||||
runtime: ɵview_utils.checkRenderClass
|
||||
};
|
||||
static checkRenderStyle: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'checkRenderStyle',
|
||||
runtime: ɵview_utils.checkRenderStyle
|
||||
runtime: ɵcheckRenderAttribute
|
||||
};
|
||||
static checkRenderClass:
|
||||
IdentifierSpec = {name: 'ɵcheckRenderClass', moduleUrl: CORE, runtime: ɵcheckRenderClass};
|
||||
static checkRenderStyle:
|
||||
IdentifierSpec = {name: 'ɵcheckRenderStyle', moduleUrl: CORE, runtime: ɵcheckRenderStyle};
|
||||
static devModeEqual:
|
||||
IdentifierSpec = {name: 'ɵdevModeEqual', moduleUrl: CORE, runtime: ɵdevModeEqual};
|
||||
static inlineInterpolate: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'inlineInterpolate',
|
||||
runtime: ɵview_utils.inlineInterpolate
|
||||
};
|
||||
static interpolate: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'interpolate',
|
||||
runtime: ɵview_utils.interpolate
|
||||
};
|
||||
static castByValue: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'castByValue',
|
||||
runtime: ɵview_utils.castByValue
|
||||
};
|
||||
static EMPTY_ARRAY: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'EMPTY_ARRAY',
|
||||
runtime: ɵview_utils.EMPTY_ARRAY
|
||||
};
|
||||
static EMPTY_MAP: IdentifierSpec =
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'EMPTY_MAP', runtime: ɵview_utils.EMPTY_MAP};
|
||||
static inlineInterpolate:
|
||||
IdentifierSpec = {name: 'ɵinlineInterpolate', moduleUrl: CORE, runtime: ɵinlineInterpolate};
|
||||
static interpolate:
|
||||
IdentifierSpec = {name: 'ɵinterpolate', moduleUrl: CORE, runtime: ɵinterpolate};
|
||||
static castByValue:
|
||||
IdentifierSpec = {name: 'ɵcastByValue', moduleUrl: CORE, runtime: ɵcastByValue};
|
||||
static EMPTY_ARRAY:
|
||||
IdentifierSpec = {name: 'ɵEMPTY_ARRAY', moduleUrl: CORE, runtime: ɵEMPTY_ARRAY};
|
||||
static EMPTY_MAP: IdentifierSpec = {name: 'ɵEMPTY_MAP', moduleUrl: CORE, runtime: ɵEMPTY_MAP};
|
||||
static createRenderElement: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵcreateRenderElement',
|
||||
moduleUrl: CORE,
|
||||
member: 'createRenderElement',
|
||||
runtime: ɵview_utils.createRenderElement
|
||||
runtime: ɵcreateRenderElement
|
||||
};
|
||||
static selectOrCreateRenderHostElement: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵselectOrCreateRenderHostElement',
|
||||
moduleUrl: CORE,
|
||||
member: 'selectOrCreateRenderHostElement',
|
||||
runtime: ɵview_utils.selectOrCreateRenderHostElement
|
||||
runtime: ɵselectOrCreateRenderHostElement
|
||||
};
|
||||
static pureProxies: IdentifierSpec[] = [
|
||||
null,
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy1', runtime: ɵview_utils.pureProxy1},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy2', runtime: ɵview_utils.pureProxy2},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy3', runtime: ɵview_utils.pureProxy3},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy4', runtime: ɵview_utils.pureProxy4},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy5', runtime: ɵview_utils.pureProxy5},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy6', runtime: ɵview_utils.pureProxy6},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy7', runtime: ɵview_utils.pureProxy7},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy8', runtime: ɵview_utils.pureProxy8},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy9', runtime: ɵview_utils.pureProxy9},
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'pureProxy10', runtime: ɵview_utils.pureProxy10},
|
||||
{name: 'ɵpureProxy1', moduleUrl: CORE, runtime: ɵpureProxy1},
|
||||
{name: 'ɵpureProxy2', moduleUrl: CORE, runtime: ɵpureProxy2},
|
||||
{name: 'ɵpureProxy3', moduleUrl: CORE, runtime: ɵpureProxy3},
|
||||
{name: 'ɵpureProxy4', moduleUrl: CORE, runtime: ɵpureProxy4},
|
||||
{name: 'ɵpureProxy5', moduleUrl: CORE, runtime: ɵpureProxy5},
|
||||
{name: 'ɵpureProxy6', moduleUrl: CORE, runtime: ɵpureProxy6},
|
||||
{name: 'ɵpureProxy7', moduleUrl: CORE, runtime: ɵpureProxy7},
|
||||
{name: 'ɵpureProxy8', moduleUrl: CORE, runtime: ɵpureProxy8},
|
||||
{name: 'ɵpureProxy9', moduleUrl: CORE, runtime: ɵpureProxy9},
|
||||
{name: 'ɵpureProxy10', moduleUrl: CORE, runtime: ɵpureProxy10},
|
||||
];
|
||||
static SecurityContext: IdentifierSpec = {
|
||||
name: 'SecurityContext',
|
||||
@ -243,16 +200,14 @@ export class Identifiers {
|
||||
static TRANSLATIONS_FORMAT:
|
||||
IdentifierSpec = {name: 'TRANSLATIONS_FORMAT', moduleUrl: CORE, runtime: TRANSLATIONS_FORMAT};
|
||||
static setBindingDebugInfo: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵsetBindingDebugInfo',
|
||||
moduleUrl: CORE,
|
||||
member: 'setBindingDebugInfo',
|
||||
runtime: ɵview_utils.setBindingDebugInfo
|
||||
runtime: ɵsetBindingDebugInfo
|
||||
};
|
||||
static setBindingDebugInfoForChanges: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵsetBindingDebugInfoForChanges',
|
||||
moduleUrl: CORE,
|
||||
member: 'setBindingDebugInfoForChanges',
|
||||
runtime: ɵview_utils.setBindingDebugInfoForChanges
|
||||
runtime: ɵsetBindingDebugInfoForChanges
|
||||
};
|
||||
static AnimationTransition: IdentifierSpec = {
|
||||
name: 'ɵAnimationTransition',
|
||||
@ -264,127 +219,55 @@ export class Identifiers {
|
||||
static InlineArray:
|
||||
IdentifierSpec = {name: 'InlineArray', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: null};
|
||||
static inlineArrays: IdentifierSpec[] = [
|
||||
{
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'InlineArray2',
|
||||
runtime: ɵview_utils.InlineArray2
|
||||
},
|
||||
{
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'InlineArray2',
|
||||
runtime: ɵview_utils.InlineArray2
|
||||
},
|
||||
{
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'InlineArray4',
|
||||
runtime: ɵview_utils.InlineArray4
|
||||
},
|
||||
{
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'InlineArray8',
|
||||
runtime: ɵview_utils.InlineArray8
|
||||
},
|
||||
{
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'InlineArray16',
|
||||
runtime: ɵview_utils.InlineArray16
|
||||
},
|
||||
{name: 'ɵInlineArray2', moduleUrl: CORE, runtime: ɵInlineArray2},
|
||||
{name: 'ɵInlineArray2', moduleUrl: CORE, runtime: ɵInlineArray2},
|
||||
{name: 'ɵInlineArray4', moduleUrl: CORE, runtime: ɵInlineArray4},
|
||||
{name: 'ɵInlineArray8', moduleUrl: CORE, runtime: ɵInlineArray8},
|
||||
{name: 'ɵInlineArray16', moduleUrl: CORE, runtime: ɵInlineArray16},
|
||||
];
|
||||
static EMPTY_INLINE_ARRAY: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'EMPTY_INLINE_ARRAY',
|
||||
runtime: ɵview_utils.EMPTY_INLINE_ARRAY
|
||||
};
|
||||
static InlineArrayDynamic: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
moduleUrl: CORE,
|
||||
member: 'InlineArrayDynamic',
|
||||
runtime: ɵview_utils.InlineArrayDynamic
|
||||
};
|
||||
static EMPTY_INLINE_ARRAY:
|
||||
IdentifierSpec = {name: 'ɵEMPTY_INLINE_ARRAY', moduleUrl: CORE, runtime: ɵEMPTY_INLINE_ARRAY};
|
||||
static InlineArrayDynamic:
|
||||
IdentifierSpec = {name: 'ɵInlineArrayDynamic', moduleUrl: CORE, runtime: ɵInlineArrayDynamic};
|
||||
static subscribeToRenderElement: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵsubscribeToRenderElement',
|
||||
moduleUrl: CORE,
|
||||
member: 'subscribeToRenderElement',
|
||||
runtime: ɵview_utils.subscribeToRenderElement
|
||||
runtime: ɵsubscribeToRenderElement
|
||||
};
|
||||
static createRenderComponentType: IdentifierSpec = {
|
||||
name: 'ɵview_utils',
|
||||
name: 'ɵcreateRenderComponentType',
|
||||
moduleUrl: CORE,
|
||||
member: 'createRenderComponentType',
|
||||
runtime: ɵview_utils.createRenderComponentType
|
||||
runtime: ɵcreateRenderComponentType
|
||||
};
|
||||
|
||||
|
||||
static noop: IdentifierSpec =
|
||||
{name: 'ɵview_utils', moduleUrl: CORE, member: 'noop', runtime: ɵview_utils.noop};
|
||||
static noop: IdentifierSpec = {name: 'ɵnoop', moduleUrl: CORE, runtime: ɵnoop};
|
||||
|
||||
static viewDef: IdentifierSpec =
|
||||
{name: 'ɵviewEngine', moduleUrl: CORE, member: 'viewDef', runtime: ɵviewEngine.viewDef};
|
||||
static elementDef: IdentifierSpec =
|
||||
{name: 'ɵviewEngine', moduleUrl: CORE, member: 'elementDef', runtime: ɵviewEngine.elementDef};
|
||||
static anchorDef: IdentifierSpec =
|
||||
{name: 'ɵviewEngine', moduleUrl: CORE, member: 'anchorDef', runtime: ɵviewEngine.anchorDef};
|
||||
static textDef: IdentifierSpec =
|
||||
{name: 'ɵviewEngine', moduleUrl: CORE, member: 'textDef', runtime: ɵviewEngine.textDef};
|
||||
static directiveDef: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
moduleUrl: CORE,
|
||||
member: 'directiveDef',
|
||||
runtime: ɵviewEngine.directiveDef
|
||||
};
|
||||
static providerDef: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
moduleUrl: CORE,
|
||||
member: 'providerDef',
|
||||
runtime: ɵviewEngine.providerDef
|
||||
};
|
||||
static queryDef: IdentifierSpec =
|
||||
{name: 'ɵviewEngine', moduleUrl: CORE, member: 'queryDef', runtime: ɵviewEngine.queryDef};
|
||||
static pureArrayDef: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
moduleUrl: CORE,
|
||||
member: 'pureArrayDef',
|
||||
runtime: ɵviewEngine.pureArrayDef
|
||||
};
|
||||
static pureObjectDef: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
moduleUrl: CORE,
|
||||
member: 'pureObjectDef',
|
||||
runtime: ɵviewEngine.pureObjectDef
|
||||
};
|
||||
static purePipeDef: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
moduleUrl: CORE,
|
||||
member: 'purePipeDef',
|
||||
runtime: ɵviewEngine.purePipeDef
|
||||
};
|
||||
static pipeDef: IdentifierSpec =
|
||||
{name: 'ɵviewEngine', moduleUrl: CORE, member: 'pipeDef', runtime: ɵviewEngine.pipeDef};
|
||||
static nodeValue: IdentifierSpec =
|
||||
{name: 'ɵviewEngine', moduleUrl: CORE, member: 'nodeValue', runtime: ɵviewEngine.nodeValue};
|
||||
static ngContentDef: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
moduleUrl: CORE,
|
||||
member: 'ngContentDef',
|
||||
runtime: ɵviewEngine.ngContentDef
|
||||
};
|
||||
static unwrapValue: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
moduleUrl: CORE,
|
||||
member: 'unwrapValue',
|
||||
runtime: ɵviewEngine.unwrapValue
|
||||
};
|
||||
static viewDef: IdentifierSpec = {name: 'ɵviewDef', moduleUrl: CORE, runtime: ɵviewDef};
|
||||
static elementDef: IdentifierSpec = {name: 'ɵelementDef', moduleUrl: CORE, runtime: ɵelementDef};
|
||||
static anchorDef: IdentifierSpec = {name: 'ɵanchorDef', moduleUrl: CORE, runtime: ɵanchorDef};
|
||||
static textDef: IdentifierSpec = {name: 'ɵtextDef', moduleUrl: CORE, runtime: ɵtextDef};
|
||||
static directiveDef:
|
||||
IdentifierSpec = {name: 'ɵdirectiveDef', moduleUrl: CORE, runtime: ɵdirectiveDef};
|
||||
static providerDef:
|
||||
IdentifierSpec = {name: 'ɵproviderDef', moduleUrl: CORE, runtime: ɵproviderDef};
|
||||
static queryDef: IdentifierSpec = {name: 'ɵqueryDef', moduleUrl: CORE, runtime: ɵqueryDef};
|
||||
static pureArrayDef:
|
||||
IdentifierSpec = {name: 'ɵpureArrayDef', moduleUrl: CORE, runtime: ɵpureArrayDef};
|
||||
static pureObjectDef:
|
||||
IdentifierSpec = {name: 'ɵpureObjectRef', moduleUrl: CORE, runtime: ɵpureObjectDef};
|
||||
static purePipeDef:
|
||||
IdentifierSpec = {name: 'ɵpurePipeDef', moduleUrl: CORE, runtime: ɵpurePipeDef};
|
||||
static pipeDef: IdentifierSpec = {name: 'ɵpipeDef', moduleUrl: CORE, runtime: ɵpipeDef};
|
||||
static nodeValue: IdentifierSpec = {name: 'ɵnodeValue', moduleUrl: CORE, runtime: ɵnodeValue};
|
||||
static ngContentDef:
|
||||
IdentifierSpec = {name: 'ɵngContentDef', moduleUrl: CORE, runtime: ɵngContentDef};
|
||||
static unwrapValue:
|
||||
IdentifierSpec = {name: 'ɵunwrapValue', moduleUrl: CORE, runtime: ɵunwrapValue};
|
||||
static createRendererTypeV2: IdentifierSpec = {
|
||||
name: 'ɵviewEngine',
|
||||
name: 'ɵcreateRendererTypeV2',
|
||||
moduleUrl: CORE,
|
||||
member: 'createRendererTypeV2',
|
||||
runtime: ɵviewEngine.createRendererTypeV2
|
||||
runtime: ɵcreateRendererTypeV2
|
||||
};
|
||||
static RendererTypeV2: IdentifierSpec = {
|
||||
name: 'RendererTypeV2',
|
||||
@ -417,8 +300,7 @@ export function assetUrl(pkg: string, path: string = null, type: string = 'src')
|
||||
|
||||
export function resolveIdentifier(identifier: IdentifierSpec) {
|
||||
let name = identifier.name;
|
||||
let members = identifier.member && [identifier.member];
|
||||
return ɵreflector.resolveIdentifier(name, identifier.moduleUrl, members, identifier.runtime);
|
||||
return ɵreflector.resolveIdentifier(name, identifier.moduleUrl, null, identifier.runtime);
|
||||
}
|
||||
|
||||
export function createIdentifier(identifier: IdentifierSpec): CompileIdentifierMetadata {
|
||||
|
@ -10,6 +10,7 @@
|
||||
* A replacement for @Injectable to be used in the compiler, so that
|
||||
* we don't try to evaluate the metadata in the compiler during AoT.
|
||||
* This decorator is enough to make the compiler work with the ReflectiveInjector though.
|
||||
* @Annotation
|
||||
*/
|
||||
export function CompilerInjectable(): (data: any) => any {
|
||||
return (x) => x;
|
||||
|
@ -6,7 +6,7 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {Compiler, ComponentFactory, ComponentRenderTypeV2, Inject, Injector, ModuleWithComponentFactories, NgModuleFactory, Type, ɵview_utils as view_utils} from '@angular/core';
|
||||
import {Compiler, ComponentFactory, Inject, Injector, ModuleWithComponentFactories, NgModuleFactory, Type, ɵgetComponentFactoryViewClass as getComponentFactoryViewClass} from '@angular/core';
|
||||
|
||||
import {AnimationCompiler} from '../animation/animation_compiler';
|
||||
import {AnimationParser} from '../animation/animation_parser';
|
||||
@ -221,7 +221,7 @@ export class JitCompiler implements Compiler {
|
||||
const componentFactory = <ComponentFactory<any>>compMeta.componentFactory;
|
||||
const hostClass = this._metadataResolver.getHostComponentType(compType);
|
||||
const hostMeta = createHostComponentMeta(
|
||||
hostClass, compMeta, <any>view_utils.getComponentFactoryViewClass(componentFactory));
|
||||
hostClass, compMeta, <any>getComponentFactoryViewClass(componentFactory));
|
||||
compiledTemplate =
|
||||
new CompiledTemplate(true, compMeta.type, hostMeta, ngModule, [compMeta.type]);
|
||||
this._compiledHostTemplateCache.set(compType, compiledTemplate);
|
||||
|
@ -6,7 +6,14 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {AnimationAnimateMetadata, AnimationEntryMetadata, AnimationGroupMetadata, AnimationKeyframesSequenceMetadata, AnimationMetadata, AnimationStateDeclarationMetadata, AnimationStateMetadata, AnimationStateTransitionMetadata, AnimationStyleMetadata, AnimationWithStepsMetadata, Attribute, ChangeDetectionStrategy, Component, ComponentFactory, ComponentRenderTypeV2, Directive, Host, Inject, Injectable, InjectionToken, ModuleWithProviders, Optional, Provider, Query, SchemaMetadata, Self, SkipSelf, Type, resolveForwardRef, ɵERROR_COMPONENT_TYPE, ɵLIFECYCLE_HOOKS_VALUES, ɵReflectorReader, ɵreflector, ɵviewEngine} from '@angular/core';
|
||||
import {
|
||||
AnimationAnimateMetadata, AnimationEntryMetadata, AnimationGroupMetadata, AnimationKeyframesSequenceMetadata,
|
||||
AnimationMetadata, AnimationStateDeclarationMetadata, AnimationStateMetadata, AnimationStateTransitionMetadata,
|
||||
AnimationStyleMetadata, AnimationWithStepsMetadata, Attribute, ChangeDetectionStrategy, Component, ComponentFactory,
|
||||
Directive, Host, Inject, Injectable, InjectionToken, ModuleWithProviders, Optional, Provider, Query, SchemaMetadata,
|
||||
Self, SkipSelf, Type, resolveForwardRef, ɵERROR_COMPONENT_TYPE, ɵLIFECYCLE_HOOKS_VALUES, ɵReflectorReader,
|
||||
ɵcreateComponentFactory as createComponentFactory, ɵreflector, RendererTypeV2
|
||||
} from '@angular/core';
|
||||
|
||||
import {StaticSymbol, StaticSymbolCache} from './aot/static_symbol';
|
||||
import {ngfactoryFilePath} from './aot/util';
|
||||
@ -151,7 +158,7 @@ export class CompileMetadataResolver {
|
||||
} else {
|
||||
const hostView = this.getHostComponentViewClass(dirType);
|
||||
if (this._config.useViewEngine) {
|
||||
return ɵviewEngine.createComponentFactory(selector, dirType, <any>hostView);
|
||||
return createComponentFactory(selector, dirType, <any>hostView);
|
||||
} else {
|
||||
return new ComponentFactory(selector, <any>hostView, dirType);
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
import {ChangeDetectionStrategy, ViewEncapsulation, ɵLifecycleHooks as LifecycleHooks, ɵviewEngine as viewEngine} from '@angular/core';
|
||||
import {ChangeDetectionStrategy, ViewEncapsulation, ɵArgumentType as ArgumentType, ɵBindingType as BindingType, ɵDepFlags as DepFlags, ɵLifecycleHooks as LifecycleHooks, ɵNodeFlags as NodeFlags, ɵProviderType as ProviderType, ɵQueryBindingType as QueryBindingType, ɵQueryValueType as QueryValueType, ɵViewFlags as ViewFlags, ɵelementEventFullName as elementEventFullName} from '@angular/core';
|
||||
|
||||
import {AnimationEntryCompileResult} from '../animation/animation_compiler';
|
||||
import {CompileDiDependencyMetadata, CompileDirectiveMetadata, CompileDirectiveSummary, CompilePipeSummary, CompileProviderMetadata, CompileTokenMetadata, CompileTypeMetadata, identifierModuleUrl, identifierName, rendererTypeName, tokenReference, viewClassName} from '../compile_metadata';
|
||||
@ -130,12 +130,12 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
// Note: queries start with id 1 so we can use the number in a Bloom filter!
|
||||
const queryId = queryIndex + 1;
|
||||
const bindingType =
|
||||
query.first ? viewEngine.QueryBindingType.First : viewEngine.QueryBindingType.All;
|
||||
let flags = viewEngine.NodeFlags.HasViewQuery;
|
||||
query.first ? QueryBindingType.First : QueryBindingType.All;
|
||||
let flags = NodeFlags.HasViewQuery;
|
||||
if (queryIds.staticQueryIds.has(queryId)) {
|
||||
flags |= viewEngine.NodeFlags.HasStaticQuery;
|
||||
flags |= NodeFlags.HasStaticQuery;
|
||||
} else {
|
||||
flags |= viewEngine.NodeFlags.HasDynamicQuery;
|
||||
flags |= NodeFlags.HasDynamicQuery;
|
||||
}
|
||||
this.nodeDefs.push(() => o.importExpr(createIdentifier(Identifiers.queryDef)).callFn([
|
||||
o.literal(flags), o.literal(queryId),
|
||||
@ -149,7 +149,7 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
// if the view is empty, or an embedded view has a view container as last root nde,
|
||||
// create an additional root node.
|
||||
this.nodeDefs.push(() => o.importExpr(createIdentifier(Identifiers.anchorDef)).callFn([
|
||||
o.literal(viewEngine.NodeFlags.None), o.NULL_EXPR, o.NULL_EXPR, o.literal(0)
|
||||
o.literal(NodeFlags.None), o.NULL_EXPR, o.NULL_EXPR, o.literal(0)
|
||||
]));
|
||||
}
|
||||
}
|
||||
@ -161,9 +161,9 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
const updateRendererFn = this._createUpdateFn(this.updateRendererExpressions);
|
||||
|
||||
|
||||
let viewFlags = viewEngine.ViewFlags.None;
|
||||
let viewFlags = ViewFlags.None;
|
||||
if (!this.parent && this.component.changeDetection === ChangeDetectionStrategy.OnPush) {
|
||||
viewFlags |= viewEngine.ViewFlags.OnPush;
|
||||
viewFlags |= ViewFlags.OnPush;
|
||||
}
|
||||
const viewFactory = new o.DeclareFunctionStmt(
|
||||
this.viewName, [],
|
||||
@ -342,19 +342,17 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
hostBindings: {value: AST, context: o.Expression}[],
|
||||
hostEvents: {context: o.Expression, eventAst: BoundEventAst}[],
|
||||
} {
|
||||
let flags = viewEngine.NodeFlags.None;
|
||||
let flags = NodeFlags.None;
|
||||
if (ast.hasViewContainer) {
|
||||
flags |= viewEngine.NodeFlags.HasEmbeddedViews;
|
||||
flags |= NodeFlags.HasEmbeddedViews;
|
||||
}
|
||||
const usedEvents = new Map<string, [string, string]>();
|
||||
ast.outputs.forEach((event) => {
|
||||
usedEvents.set(
|
||||
viewEngine.elementEventFullName(event.target, event.name), [event.target, event.name]);
|
||||
usedEvents.set(elementEventFullName(event.target, event.name), [event.target, event.name]);
|
||||
});
|
||||
ast.directives.forEach((dirAst) => {
|
||||
dirAst.hostEvents.forEach((event) => {
|
||||
usedEvents.set(
|
||||
viewEngine.elementEventFullName(event.target, event.name), [event.target, event.name]);
|
||||
usedEvents.set(elementEventFullName(event.target, event.name), [event.target, event.name]);
|
||||
});
|
||||
});
|
||||
const hostBindings: {value: AST, context: o.Expression}[] = [];
|
||||
@ -388,11 +386,11 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
ast.queryMatches.forEach((match) => {
|
||||
let valueType: number;
|
||||
if (tokenReference(match.value) === resolveIdentifier(Identifiers.ElementRef)) {
|
||||
valueType = viewEngine.QueryValueType.ElementRef;
|
||||
valueType = QueryValueType.ElementRef;
|
||||
} else if (tokenReference(match.value) === resolveIdentifier(Identifiers.ViewContainerRef)) {
|
||||
valueType = viewEngine.QueryValueType.ViewContainerRef;
|
||||
valueType = QueryValueType.ViewContainerRef;
|
||||
} else if (tokenReference(match.value) === resolveIdentifier(Identifiers.TemplateRef)) {
|
||||
valueType = viewEngine.QueryValueType.TemplateRef;
|
||||
valueType = QueryValueType.TemplateRef;
|
||||
}
|
||||
if (valueType != null) {
|
||||
queryMatchExprs.push(o.literalArr([o.literal(match.queryId), o.literal(valueType)]));
|
||||
@ -401,9 +399,9 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
ast.references.forEach((ref) => {
|
||||
let valueType: number;
|
||||
if (!ref.value) {
|
||||
valueType = viewEngine.QueryValueType.RenderElement;
|
||||
valueType = QueryValueType.RenderElement;
|
||||
} else if (tokenReference(ref.value) === resolveIdentifier(Identifiers.TemplateRef)) {
|
||||
valueType = viewEngine.QueryValueType.TemplateRef;
|
||||
valueType = QueryValueType.TemplateRef;
|
||||
}
|
||||
if (valueType != null) {
|
||||
this.refNodeIndices[ref.name] = nodeIndex;
|
||||
@ -434,15 +432,15 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
this.nodeDefs.push(null);
|
||||
|
||||
directiveAst.directive.queries.forEach((query, queryIndex) => {
|
||||
let flags = viewEngine.NodeFlags.HasContentQuery;
|
||||
let flags = NodeFlags.HasContentQuery;
|
||||
const queryId = directiveAst.contentQueryStartId + queryIndex;
|
||||
if (queryIds.staticQueryIds.has(queryId)) {
|
||||
flags |= viewEngine.NodeFlags.HasStaticQuery;
|
||||
flags |= NodeFlags.HasStaticQuery;
|
||||
} else {
|
||||
flags |= viewEngine.NodeFlags.HasDynamicQuery;
|
||||
flags |= NodeFlags.HasDynamicQuery;
|
||||
}
|
||||
const bindingType =
|
||||
query.first ? viewEngine.QueryBindingType.First : viewEngine.QueryBindingType.All;
|
||||
query.first ? QueryBindingType.First : QueryBindingType.All;
|
||||
this.nodeDefs.push(() => o.importExpr(createIdentifier(Identifiers.queryDef)).callFn([
|
||||
o.literal(flags), o.literal(queryId),
|
||||
new o.LiteralMapExpr([new o.LiteralMapEntry(query.propertyName, o.literal(bindingType))])
|
||||
@ -462,7 +460,7 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
if (ref.value && tokenReference(ref.value) === tokenReference(providerAst.token)) {
|
||||
this.refNodeIndices[ref.name] = nodeIndex;
|
||||
queryMatchExprs.push(
|
||||
o.literalArr([o.literal(ref.name), o.literal(viewEngine.QueryValueType.Provider)]));
|
||||
o.literalArr([o.literal(ref.name), o.literal(QueryValueType.Provider)]));
|
||||
}
|
||||
});
|
||||
|
||||
@ -489,7 +487,7 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
}
|
||||
});
|
||||
if (directiveAst.inputs.length ||
|
||||
(flags & (viewEngine.NodeFlags.DoCheck | viewEngine.NodeFlags.OnInit)) > 0) {
|
||||
(flags & (NodeFlags.DoCheck | NodeFlags.OnInit)) > 0) {
|
||||
this._addUpdateExpressions(
|
||||
nodeIndex,
|
||||
directiveAst.inputs.map((input) => { return {context: COMP_VAR, value: input.value}; }),
|
||||
@ -551,12 +549,12 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
providerType: number,
|
||||
depsExpr: o.Expression
|
||||
} {
|
||||
let flags = viewEngine.NodeFlags.None;
|
||||
let flags = NodeFlags.None;
|
||||
if (!providerAst.eager) {
|
||||
flags |= viewEngine.NodeFlags.LazyProvider;
|
||||
flags |= NodeFlags.LazyProvider;
|
||||
}
|
||||
if (providerAst.providerType === ProviderAstType.PrivateService) {
|
||||
flags |= viewEngine.NodeFlags.PrivateProvider;
|
||||
flags |= NodeFlags.PrivateProvider;
|
||||
}
|
||||
providerAst.lifecycleHooks.forEach((lifecycleHook) => {
|
||||
// for regular providers, we only support ngOnDestroy
|
||||
@ -570,8 +568,8 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
|
||||
queryMatches.forEach((match) => {
|
||||
if (tokenReference(match.value) === tokenReference(providerAst.token)) {
|
||||
queryMatchExprs.push(o.literalArr(
|
||||
[o.literal(match.queryId), o.literal(viewEngine.QueryValueType.Provider)]));
|
||||
queryMatchExprs.push(
|
||||
o.literalArr([o.literal(match.queryId), o.literal(QueryValueType.Provider)]));
|
||||
}
|
||||
});
|
||||
const {providerExpr, providerType, depsExpr} = providerDef(providerAst);
|
||||
@ -672,7 +670,7 @@ class ViewBuilder implements TemplateAstVisitor, LocalResolver, BuiltinConverter
|
||||
|
||||
private _createPipe(pipe: CompilePipeSummary): number {
|
||||
const nodeIndex = this.nodeDefs.length;
|
||||
let flags = viewEngine.NodeFlags.None;
|
||||
let flags = NodeFlags.None;
|
||||
pipe.type.lifecycleHooks.forEach((lifecycleHook) => {
|
||||
// for pipes, we only support ngOnDestroy
|
||||
if (lifecycleHook === LifecycleHooks.OnDestroy) {
|
||||
@ -782,7 +780,7 @@ function multiProviderDef(providers: CompileProviderMetadata[]):
|
||||
o.fn(allParams, [new o.ReturnStatement(o.literalArr(exprs))], o.INFERRED_TYPE);
|
||||
return {
|
||||
providerExpr,
|
||||
providerType: viewEngine.ProviderType.Factory,
|
||||
providerType: ProviderType.Factory,
|
||||
depsExpr: o.literalArr(allDepDefs)
|
||||
};
|
||||
|
||||
@ -803,19 +801,19 @@ function singleProviderDef(providerMeta: CompileProviderMetadata):
|
||||
let deps: CompileDiDependencyMetadata[];
|
||||
if (providerMeta.useClass) {
|
||||
providerExpr = o.importExpr(providerMeta.useClass);
|
||||
providerType = viewEngine.ProviderType.Class;
|
||||
providerType = ProviderType.Class;
|
||||
deps = providerMeta.deps || providerMeta.useClass.diDeps;
|
||||
} else if (providerMeta.useFactory) {
|
||||
providerExpr = o.importExpr(providerMeta.useFactory);
|
||||
providerType = viewEngine.ProviderType.Factory;
|
||||
providerType = ProviderType.Factory;
|
||||
deps = providerMeta.deps || providerMeta.useFactory.diDeps;
|
||||
} else if (providerMeta.useExisting) {
|
||||
providerExpr = o.NULL_EXPR;
|
||||
providerType = viewEngine.ProviderType.UseExisting;
|
||||
providerType = ProviderType.UseExisting;
|
||||
deps = [{token: providerMeta.useExisting}];
|
||||
} else {
|
||||
providerExpr = convertValueToOutputAst(providerMeta.useValue);
|
||||
providerType = viewEngine.ProviderType.Value;
|
||||
providerType = ProviderType.Value;
|
||||
deps = [];
|
||||
}
|
||||
const depsExpr = o.literalArr(deps.map(dep => depDef(dep)));
|
||||
@ -830,17 +828,17 @@ function depDef(dep: CompileDiDependencyMetadata): o.Expression {
|
||||
// Note: the following fields have already been normalized out by provider_analyzer:
|
||||
// - isAttribute, isSelf, isHost
|
||||
const expr = dep.isValue ? convertValueToOutputAst(dep.value) : tokenExpr(dep.token);
|
||||
let flags = viewEngine.DepFlags.None;
|
||||
let flags = DepFlags.None;
|
||||
if (dep.isSkipSelf) {
|
||||
flags |= viewEngine.DepFlags.SkipSelf;
|
||||
flags |= DepFlags.SkipSelf;
|
||||
}
|
||||
if (dep.isOptional) {
|
||||
flags |= viewEngine.DepFlags.Optional;
|
||||
flags |= DepFlags.Optional;
|
||||
}
|
||||
if (dep.isValue) {
|
||||
flags |= viewEngine.DepFlags.Value;
|
||||
flags |= DepFlags.Value;
|
||||
}
|
||||
return flags === viewEngine.DepFlags.None ? expr : o.literalArr([o.literal(flags), expr]);
|
||||
return flags === DepFlags.None ? expr : o.literalArr([o.literal(flags), expr]);
|
||||
}
|
||||
|
||||
function needsAdditionalRootNode(ast: TemplateAst): boolean {
|
||||
@ -859,31 +857,31 @@ function needsAdditionalRootNode(ast: TemplateAst): boolean {
|
||||
}
|
||||
|
||||
function lifecycleHookToNodeFlag(lifecycleHook: LifecycleHooks): number {
|
||||
let nodeFlag = viewEngine.NodeFlags.None;
|
||||
let nodeFlag = NodeFlags.None;
|
||||
switch (lifecycleHook) {
|
||||
case LifecycleHooks.AfterContentChecked:
|
||||
nodeFlag = viewEngine.NodeFlags.AfterContentChecked;
|
||||
nodeFlag = NodeFlags.AfterContentChecked;
|
||||
break;
|
||||
case LifecycleHooks.AfterContentInit:
|
||||
nodeFlag = viewEngine.NodeFlags.AfterContentInit;
|
||||
nodeFlag = NodeFlags.AfterContentInit;
|
||||
break;
|
||||
case LifecycleHooks.AfterViewChecked:
|
||||
nodeFlag = viewEngine.NodeFlags.AfterViewChecked;
|
||||
nodeFlag = NodeFlags.AfterViewChecked;
|
||||
break;
|
||||
case LifecycleHooks.AfterViewInit:
|
||||
nodeFlag = viewEngine.NodeFlags.AfterViewInit;
|
||||
nodeFlag = NodeFlags.AfterViewInit;
|
||||
break;
|
||||
case LifecycleHooks.DoCheck:
|
||||
nodeFlag = viewEngine.NodeFlags.DoCheck;
|
||||
nodeFlag = NodeFlags.DoCheck;
|
||||
break;
|
||||
case LifecycleHooks.OnChanges:
|
||||
nodeFlag = viewEngine.NodeFlags.OnChanges;
|
||||
nodeFlag = NodeFlags.OnChanges;
|
||||
break;
|
||||
case LifecycleHooks.OnDestroy:
|
||||
nodeFlag = viewEngine.NodeFlags.OnDestroy;
|
||||
nodeFlag = NodeFlags.OnDestroy;
|
||||
break;
|
||||
case LifecycleHooks.OnInit:
|
||||
nodeFlag = viewEngine.NodeFlags.OnInit;
|
||||
nodeFlag = NodeFlags.OnInit;
|
||||
break;
|
||||
}
|
||||
return nodeFlag;
|
||||
@ -894,12 +892,12 @@ function elementBindingDefs(inputAsts: BoundElementPropertyAst[]): o.Expression[
|
||||
switch (inputAst.type) {
|
||||
case PropertyBindingType.Attribute:
|
||||
return o.literalArr([
|
||||
o.literal(viewEngine.BindingType.ElementAttribute), o.literal(inputAst.name),
|
||||
o.literal(BindingType.ElementAttribute), o.literal(inputAst.name),
|
||||
o.literal(inputAst.securityContext)
|
||||
]);
|
||||
case PropertyBindingType.Property:
|
||||
return o.literalArr([
|
||||
o.literal(viewEngine.BindingType.ElementProperty), o.literal(inputAst.name),
|
||||
o.literal(BindingType.ElementProperty), o.literal(inputAst.name),
|
||||
o.literal(inputAst.securityContext)
|
||||
]);
|
||||
case PropertyBindingType.Animation:
|
||||
@ -908,12 +906,10 @@ function elementBindingDefs(inputAsts: BoundElementPropertyAst[]): o.Expression[
|
||||
o.literal(inputAst.securityContext)
|
||||
]);
|
||||
case PropertyBindingType.Class:
|
||||
return o.literalArr(
|
||||
[o.literal(viewEngine.BindingType.ElementClass), o.literal(inputAst.name)]);
|
||||
return o.literalArr([o.literal(BindingType.ElementClass), o.literal(inputAst.name)]);
|
||||
case PropertyBindingType.Style:
|
||||
return o.literalArr([
|
||||
o.literal(viewEngine.BindingType.ElementStyle), o.literal(inputAst.name),
|
||||
o.literal(inputAst.unit)
|
||||
o.literal(BindingType.ElementStyle), o.literal(inputAst.name), o.literal(inputAst.unit)
|
||||
]);
|
||||
}
|
||||
});
|
||||
@ -947,13 +943,11 @@ function mergeAttributeValue(attrName: string, attrValue1: string, attrValue2: s
|
||||
|
||||
function callCheckStmt(nodeIndex: number, exprs: o.Expression[]): o.Expression {
|
||||
if (exprs.length > 10) {
|
||||
return CHECK_VAR.callFn([
|
||||
VIEW_VAR, o.literal(nodeIndex), o.literal(viewEngine.ArgumentType.Dynamic),
|
||||
o.literalArr(exprs)
|
||||
]);
|
||||
return CHECK_VAR.callFn(
|
||||
[VIEW_VAR, o.literal(nodeIndex), o.literal(ArgumentType.Dynamic), o.literalArr(exprs)]);
|
||||
} else {
|
||||
return CHECK_VAR.callFn(
|
||||
[VIEW_VAR, o.literal(nodeIndex), o.literal(viewEngine.ArgumentType.Inline), ...exprs]);
|
||||
[VIEW_VAR, o.literal(nodeIndex), o.literal(ArgumentType.Inline), ...exprs]);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user