test(ivy): Have more descriptive names for LView
(#33449)
When debugging `LView`s it is easy to get lost since all of them have the same name. This change does three things: 1. It makes `TView` have an explicit type: - `Host`: for the top level `TView` for bootstrap - `Component`: for the `TView` which represents components template - `Embedded`: for the `TView` which represents an embedded template 2. It changes the name of `LView` to `LHostView`, `LComponentView`, and `LEmbeddedView` depending on the `TView` type. 3. For `LComponentView` and `LEmbeddedView` we also append the name of of the `context` constructor. The result is that we have `LView`s which are name as: `LComponentView_MyComponent` and `LEmbeddedView_NgIfContext`. The above changes will make it easier to understand the structure of the application when debugging. NOTE: All of these are behind `ngDevMode` and will get removed in production application. PR Close #33449
This commit is contained in:

committed by
Andrew Scott

parent
10583f951d
commit
c25503b142
@ -370,3 +370,20 @@ export function getDebugNode(element: Node): DebugNode|null {
|
||||
|
||||
return debugNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the component `LView` from component/element.
|
||||
*
|
||||
* NOTE: `LView` is a private and should not be leaked outside.
|
||||
* Don't export this method to `ng.*` on window.
|
||||
*
|
||||
* @param target Component or Element instance.
|
||||
*/
|
||||
export function getComponentLView(target: any): LView {
|
||||
const lContext = loadLContext(target);
|
||||
const nodeIndx = lContext.nodeIndex;
|
||||
const lView = lContext.lView;
|
||||
const componentLView = lView[nodeIndx];
|
||||
ngDevMode && assertLView(componentLView);
|
||||
return componentLView;
|
||||
}
|
||||
|
Reference in New Issue
Block a user