| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
TypeScript Bot (@typescript-bot) perf test this faster |
Sorry, something went wrong.
|
Heya Daniel Rosenwasser (@DanielRosenwasser), I've started to run the abridged perf test suite on this PR at 450cfe1. You can monitor the build here. |
Sorry, something went wrong.
|
TypeScript Bot (@typescript-bot) perf test this faster |
Sorry, something went wrong.
|
Heya Daniel Rosenwasser (@DanielRosenwasser), I've started to run the abridged perf test suite on this PR at cd8b3a6. You can monitor the build here. Update: The results are in! |
Sorry, something went wrong.
|
Daniel Rosenwasser (@DanielRosenwasser) Comparison Report - main..52832
System
Hosts
Scenarios
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sorry, something went wrong.
|
Yay!!! |
Sorry, something went wrong.
|
Aside: is it just the scanner? Can we revert parser and test only the scanner? Is it a specific variable? That would be very interesting to know. |
Sorry, something went wrong.
There was a problem hiding this comment.
![]()
Sorry, something went wrong.
| scanRange, | ||
| }; | ||
|
|
||
| /* eslint-disable no-var */ |
There was a problem hiding this comment.
Drive-by - was this maybe supposed to be eslint-enable? It's already disabled above, and below there's no new vars.
Sorry, something went wrong.
There was a problem hiding this comment.
Uh oh, sure was!
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
This pull request regains some of the performance we lost in #51387 when we switched our emit from ES5 to ES2018 - a significant part due to TDZ checks that engines need to perform. These TDZ checks can often be eliminated, but engines probably have a hard time knowing whether a function can eliminate these checks.
By switching many of the top-level shared closure variables in the parser and scanner from let/const to var, we're able to eliminate those checks. Doing so should be fairly safe, since our functions follow the same initialization mechanism of declaring variables, and then calling the "workhorse" function afterwards.