feat(core): speed up view creation via code gen for view factories.

BREAKING CHANGE:
- Platform pipes can only contain types and arrays of types,
  but no bindings any more.
- When using transformers, platform pipes need to be specified explicitly
  in the pubspec.yaml via the new config option
  `platform_pipes`.
- `Compiler.compileInHost` now returns a `HostViewFactoryRef`
- Component view is not yet created when component constructor is called.
  -> use `onInit` lifecycle callback to access the view of a component
- `ViewRef#setLocal` has been moved to new type `EmbeddedViewRef`
- `internalView` is gone, use `EmbeddedViewRef.rootNodes` to access
  the root nodes of an embedded view
- `renderer.setElementProperty`, `..setElementStyle`, `..setElementAttribute` now
  take a native element instead of an ElementRef
- `Renderer` interface now operates on plain native nodes,
  instead of `RenderElementRef`s or `RenderViewRef`s

Closes #5993
This commit is contained in:
Tobias Bosch
2015-12-02 10:35:51 -08:00
parent a08f50badd
commit 7ae23adaff
191 changed files with 6476 additions and 10232 deletions

View File

@ -594,6 +594,7 @@ var NG_COMPILER = [
"SourceModule.moduleUrl=",
"SourceModule.sourceWithModuleRefs",
"SourceModule.sourceWithModuleRefs=",
"SourceModule#getSourceWithoutImports()",
"SourceWithImports.imports",
"SourceWithImports.imports=",
"SourceWithImports.source",
@ -690,9 +691,9 @@ var NG_CORE = [
'AbstractProviderError.message=',
'AbstractProviderError.stackTrace',
'AppViewManager:js',
'AppViewManager.getHostElement():js',
/*
Abstract methods
'AppViewManager.getHostElement()',
'AppViewManager.attachViewInContainer()',
'AppViewManager.createEmbeddedViewInContainer()',
'AppViewManager.createHostViewInContainer()',
@ -948,15 +949,14 @@ var NG_CORE = [
'DynamicComponentLoader.loadNextToLocation()',
*/
'ElementRef',
'ElementRef.boundElementIndex',
'ElementRef.boundElementIndex=',
'ElementRef.nativeElement',
'ElementRef.parentView',
'ElementRef.parentView=',
'ElementRef.renderView',
'ErrorHandlingFn:dart',
'Output',
'Output.bindingPropertyName',
'EmbeddedViewRef:dart',
'EmbeddedViewRef.changeDetectorRef',
'EmbeddedViewRef.destroyed',
'EmbeddedViewRef.rootNodes',
'EventEmitter',
/*
Dart Stream/EventEmitter
@ -1026,6 +1026,7 @@ var NG_CORE = [
'HostListenerMetadata.args',
'HostListenerMetadata.eventName',
'HostMetadata',
'HostViewFactoryRef:dart',
'Inject',
'Inject.token',
'InjectMetadata',
@ -1043,6 +1044,7 @@ var NG_CORE = [
'Injector.get()',
'Injector.getAt()',
'Injector.getOptional()',
'Injector.hostBoundary',
'Injector.instantiateResolved()',
'Injector.internalStrategy',
'Injector.parent',
@ -1137,7 +1139,6 @@ var NG_CORE = [
'Input.bindingPropertyName',
'InputMetadata',
'InputMetadata.bindingPropertyName',
'ProtoViewRef',
'Query',
'Query.descendants',
'Query.first',
@ -1185,36 +1186,15 @@ var NG_CORE = [
'QueryMetadata.selector',
'QueryMetadata.token',
'QueryMetadata.varBindings',
'RenderFragmentRef',
'RenderProtoViewRef',
'RenderViewRef',
'RenderViewWithFragments',
'RenderViewWithFragments.fragmentRefs',
'RenderViewWithFragments.fragmentRefs=',
'RenderViewWithFragments.viewRef',
'RenderViewWithFragments.viewRef=',
'Renderer',
/*
Abstract methods
'Renderer.attachFragmentAfterElement()',
'Renderer.attachFragmentAfterFragment()',
'Renderer.createProtoView()',
'Renderer.registerComponentTemplate()',
'Renderer.createRootHostView()',
'Renderer.createView()',
'Renderer.dehydrateView()',
'Renderer.destroyView()',
'Renderer.detachFragment()',
'Renderer.getNativeElementSync()',
'Renderer.hydrateView()',
'Renderer.invokeElementMethod()',
'Renderer.setElementAttribute()',
'Renderer.setElementClass()',
'Renderer.setElementProperty()',
'Renderer.setElementStyle()',
'Renderer.setEventDispatcher()',
'Renderer.setText()',
*/
'RootRenderer',
'RenderComponentType',
'RenderComponentType.encapsulation',
'RenderComponentType.encapsulation=',
'RenderComponentType.id',
'RenderComponentType.id=',
'RenderComponentType.styles',
'RenderComponentType.styles=',
'ResolvedBinding:dart',
'ResolvedProvider:dart',
'ResolvedProvider.key:dart',
@ -1318,7 +1298,6 @@ var NG_CORE = [
'ViewContainerRef.detach()',
*/
'ViewContainerRef.element',
'ViewContainerRef.element=',
/*
'ViewContainerRef.get()',
'ViewContainerRef.indexOf()',
@ -1355,9 +1334,6 @@ var NG_CORE = [
'ViewQueryMetadata.selector',
'ViewQueryMetadata.token',
'ViewQueryMetadata.varBindings',
'ViewRef',
'ViewRef.changeDetectorRef',
'ViewRef.changeDetectorRef=',
/*
Abstract method
'ViewRef.setLocal()',
@ -1391,7 +1367,8 @@ var NG_CORE = [
'DoCheck:dart',
'HostViewRef:dart',
'HostViewRef.changeDetectorRef',
'HostViewRef.changeDetectorRef=',
'HostViewRef.destroyed',
'HostViewRef.rootNodes',
'IterableDifferFactory:dart',
'IterableDiffer:dart',
'KeyValueDifferFactory:dart',
@ -1401,56 +1378,6 @@ var NG_CORE = [
'OnInit:dart',
'PipeTransform:dart',
'reflector',
'RenderBeginCmd:dart',
'RenderBeginCmd.isBound',
'RenderBeginCmd.ngContentIndex',
'RenderBeginComponentCmd:dart',
'RenderBeginComponentCmd.attrNameAndValues',
'RenderBeginComponentCmd.eventTargetAndNames',
'RenderBeginComponentCmd.isBound',
'RenderBeginComponentCmd.name',
'RenderBeginComponentCmd.ngContentIndex',
'RenderBeginComponentCmd.templateId',
'RenderBeginElementCmd:dart',
'RenderBeginElementCmd.attrNameAndValues',
'RenderBeginElementCmd.isBound',
'RenderBeginElementCmd.eventTargetAndNames',
'RenderBeginElementCmd.name',
'RenderBeginElementCmd.ngContentIndex',
'RenderCommandVisitor:dart',
'RenderEmbeddedTemplateCmd:dart',
'RenderEmbeddedTemplateCmd.attrNameAndValues',
'RenderEmbeddedTemplateCmd.children',
'RenderEmbeddedTemplateCmd.eventTargetAndNames',
'RenderEmbeddedTemplateCmd.isBound',
'RenderEmbeddedTemplateCmd.isMerged',
'RenderEmbeddedTemplateCmd.name',
'RenderEmbeddedTemplateCmd.ngContentIndex',
'RenderNgContentCmd:dart',
'RenderNgContentCmd.ngContentIndex',
'RenderTemplateCmd:dart',
'RenderTextCmd:dart',
'RenderTextCmd.isBound',
'RenderTextCmd.ngContentIndex',
'RenderTextCmd.value',
'RenderElementRef:dart',
'RenderElementRef.boundElementIndex',
'RenderElementRef.boundElementIndex=',
'RenderElementRef.renderView',
'RenderElementRef.renderView=',
'RenderEventDispatcher:dart',
'RenderNgContentCmd.index',
'RenderComponentTemplate',
'RenderComponentTemplate.commands',
'RenderComponentTemplate.commands=',
'RenderComponentTemplate.encapsulation',
'RenderComponentTemplate.encapsulation=',
'RenderComponentTemplate.id',
'RenderComponentTemplate.id=',
'RenderComponentTemplate.shortId',
'RenderComponentTemplate.shortId=',
'RenderComponentTemplate.styles',
'RenderComponentTemplate.styles=',
'Stream:dart',
'Stream.any():dart',
'Stream.asBroadcastStream():dart',
@ -1532,7 +1459,10 @@ var NG_CORE = [
'Reflector.registerType():dart',
'Reflector.setter():dart',
'Reflector.trackUsage():dart',
'SetterFn:dart'
'SetterFn:dart',
'ViewRef:dart',
'ViewRef.changeDetectorRef',
'ViewRef.destroyed',
];
var NG_INSTRUMENTATION = [