This change replaces the parsing of HTML that we perform during the code generation phase, which parsing of HTML during the IR lowering phase. The main benefit of this change is that the structure of the HTML is reflected in the IR tree, allowing us to do more more advance transformations. As an example, see how the the handling of `<script>` tags is now a separate pass. As an aside from this I also redesigned the structure of component IR nodes to match the new HTML element nodes. Passes are now more easily aware of the nodes they are expected to handle and are more easily aware of the difference between a component and element. This still isn't as clean as I would like, but I think it's a reasonable improvement. Another benefit of this is that the code generation is much simpler and requires much less bookkeeping and statefulness. |
||
|---|---|---|
| .. | ||
| InitializeTestFileAttribute.cs | ||
| IntermediateNodeSerializer.cs | ||
| IntermediateNodeVerifier.cs | ||
| IntermediateNodeWriter.cs | ||
| NotFoundProjectItem.cs | ||
| RazorDiagnosticSerializer.cs | ||
| SourceMappingsSerializer.cs | ||
| TestFile.cs | ||
| TestProject.cs | ||
| VirtualProjectFileSystem.cs | ||
| VirtualProjectItem.cs | ||