- Normalized newlines for code generation tests. We default all tests to use \r\n. This way we can have a consistent test experience cross plat.
- For tests that expected indexes that were affected by new lines I modified them to account for cross plat scenarios.
- Added a few test classes to ensure we could normalize newlines for codegen tests.
#106
- #EngineeringDay
- Total replaced: 506 Matching files: 118
Did not change any files under test/Microsoft.AspNet.Razor.Test/TestFiles
- avoiding need to redo hashes
GetSourceLocation is frequently called to determine the location mappings
between the original document and the generated code.
The old implementation did a number of ToString and replace operations to
simplify the math on tracking the position - which put it front and center
in our performance measurements - about 25% of all execution time in a
sampling profile of our perf test.
The new code tracks position as code is written, and avoids allocations.
After these changes GetSourceLocation doesn't show up in the profile.