Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't elide imports when transforming JS files #50404

Merged
merged 11 commits into from Sep 19, 2022
Merged

Don't elide imports when transforming JS files #50404

merged 11 commits into from Sep 19, 2022

Conversation

gabritto
Copy link
Member

@gabritto gabritto commented Aug 22, 2022

Fixes #48588.

The fix, as discussed in the design meeting, is to never elide imports when transforming JS files.

Note that this breaks some assumptions that were being made by further transforms, such as looking up only value symbols when finding whether an identifier was an import.

Also note: this change is when transforming JS files only. And it only updates our transforms to not eliding imports. Exports in JS files will still be elided as before.

@typescript-bot typescript-bot added Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Aug 22, 2022
@gabritto
Copy link
Member Author

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Aug 22, 2022

Heya @gabritto, I've started to run the perf test suite on this PR at 2aa5bfe. You can monitor the build here.

Update: The results are in!

@typescript-bot
Copy link
Collaborator

@gabritto
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..50404
Metric main 50404 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 361,790k (± 0.02%) 361,708k (± 0.02%) -82k (- 0.02%) 361,565k 361,852k
Parse Time 2.09s (± 0.31%) 2.10s (± 0.45%) +0.01s (+ 0.38%) 2.08s 2.12s
Bind Time 0.79s (± 0.75%) 0.80s (± 1.10%) +0.01s (+ 0.76%) 0.78s 0.82s
Check Time 6.01s (± 0.40%) 6.01s (± 0.41%) -0.01s (- 0.10%) 5.93s 6.05s
Emit Time 6.01s (± 0.38%) 6.41s (± 0.52%) +0.40s (+ 6.64%) 6.31s 6.47s
Total Time 14.91s (± 0.27%) 15.31s (± 0.42%) +0.41s (+ 2.72%) 15.11s 15.47s
Compiler-Unions - node (v10.16.3, x64)
Memory used 205,940k (± 0.04%) 205,870k (± 0.02%) -70k (- 0.03%) 205,765k 205,967k
Parse Time 0.83s (± 0.70%) 0.83s (± 0.99%) +0.00s (+ 0.12%) 0.81s 0.85s
Bind Time 0.47s (± 1.44%) 0.47s (± 1.10%) -0.00s (- 0.63%) 0.46s 0.48s
Check Time 7.36s (± 0.34%) 7.32s (± 0.72%) -0.04s (- 0.53%) 7.21s 7.48s
Emit Time 2.43s (± 1.18%) 2.80s (± 0.82%) +0.37s (+15.23%) 2.76s 2.85s
Total Time 11.10s (± 0.38%) 11.43s (± 0.57%) +0.33s (+ 2.96%) 11.28s 11.60s
Monaco - node (v10.16.3, x64)
Memory used 344,301k (± 0.02%) 344,287k (± 0.02%) -14k (- 0.00%) 344,167k 344,444k
Parse Time 1.61s (± 0.44%) 1.61s (± 0.63%) -0.00s (- 0.19%) 1.58s 1.63s
Bind Time 0.70s (± 0.68%) 0.69s (± 0.53%) -0.00s (- 0.29%) 0.69s 0.70s
Check Time 6.01s (± 0.76%) 5.97s (± 0.40%) -0.05s (- 0.80%) 5.91s 6.01s
Emit Time 3.26s (± 0.99%) 3.50s (± 0.85%) +0.25s (+ 7.52%) 3.43s 3.58s
Total Time 11.58s (± 0.56%) 11.77s (± 0.34%) +0.19s (+ 1.65%) 11.71s 11.89s
TFS - node (v10.16.3, x64)
Memory used 305,385k (± 0.02%) 305,475k (± 0.02%) +90k (+ 0.03%) 305,366k 305,650k
Parse Time 1.29s (± 0.58%) 1.28s (± 0.53%) -0.00s (- 0.23%) 1.27s 1.30s
Bind Time 0.68s (± 0.73%) 0.67s (± 0.50%) -0.01s (- 0.89%) 0.66s 0.68s
Check Time 5.42s (± 0.50%) 5.41s (± 0.38%) -0.01s (- 0.13%) 5.37s 5.46s
Emit Time 3.45s (± 1.17%) 3.80s (± 0.74%) +0.36s (+10.36%) 3.75s 3.88s
Total Time 10.83s (± 0.43%) 11.17s (± 0.36%) +0.34s (+ 3.18%) 11.08s 11.27s
material-ui - node (v10.16.3, x64)
Memory used 473,089k (± 0.02%) 473,102k (± 0.02%) +13k (+ 0.00%) 472,937k 473,326k
Parse Time 1.83s (± 0.47%) 1.84s (± 0.55%) +0.01s (+ 0.44%) 1.82s 1.86s
Bind Time 0.59s (± 1.52%) 0.58s (± 2.14%) -0.00s (- 0.34%) 0.56s 0.61s
Check Time 14.68s (± 0.69%) 14.69s (± 0.79%) +0.01s (+ 0.07%) 14.45s 14.88s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 17.10s (± 0.63%) 17.11s (± 0.68%) +0.01s (+ 0.08%) 16.87s 17.32s
xstate - node (v10.16.3, x64)
Memory used 583,176k (± 0.02%) 583,265k (± 0.02%) +89k (+ 0.02%) 583,056k 583,494k
Parse Time 2.61s (± 0.19%) 2.61s (± 0.44%) +0.00s (+ 0.04%) 2.58s 2.63s
Bind Time 0.90s (± 1.17%) 0.91s (± 1.18%) +0.00s (+ 0.55%) 0.88s 0.93s
Check Time 1.58s (± 0.60%) 1.59s (± 0.63%) +0.01s (+ 0.63%) 1.56s 1.60s
Emit Time 0.07s (± 3.14%) 0.07s (± 4.95%) +0.00s (+ 5.63%) 0.07s 0.08s
Total Time 5.15s (± 0.34%) 5.17s (± 0.41%) +0.02s (+ 0.39%) 5.12s 5.20s
Angular - node (v12.1.0, x64)
Memory used 339,184k (± 0.08%) 339,346k (± 0.02%) +162k (+ 0.05%) 339,243k 339,490k
Parse Time 2.08s (± 0.62%) 2.10s (± 0.69%) +0.01s (+ 0.58%) 2.06s 2.12s
Bind Time 0.77s (± 0.61%) 0.77s (± 0.52%) -0.00s (- 0.13%) 0.76s 0.78s
Check Time 5.83s (± 0.63%) 5.83s (± 0.47%) -0.00s (- 0.02%) 5.76s 5.88s
Emit Time 6.24s (± 0.78%) 6.64s (± 0.65%) +0.40s (+ 6.49%) 6.55s 6.77s
Total Time 14.92s (± 0.56%) 15.34s (± 0.38%) +0.42s (+ 2.79%) 15.23s 15.46s
Compiler-Unions - node (v12.1.0, x64)
Memory used 193,468k (± 0.14%) 193,620k (± 0.03%) +152k (+ 0.08%) 193,509k 193,768k
Parse Time 0.82s (± 0.60%) 0.83s (± 1.02%) +0.01s (+ 0.61%) 0.81s 0.84s
Bind Time 0.48s (± 1.35%) 0.47s (± 1.05%) -0.00s (- 0.63%) 0.47s 0.49s
Check Time 6.90s (± 0.69%) 6.90s (± 0.31%) -0.01s (- 0.14%) 6.85s 6.95s
Emit Time 2.46s (± 1.12%) 2.82s (± 1.01%) +0.36s (+14.51%) 2.75s 2.89s
Total Time 10.67s (± 0.67%) 11.02s (± 0.34%) +0.35s (+ 3.30%) 10.94s 11.10s
Monaco - node (v12.1.0, x64)
Memory used 327,279k (± 0.03%) 327,229k (± 0.03%) -51k (- 0.02%) 327,027k 327,435k
Parse Time 1.58s (± 1.02%) 1.59s (± 1.22%) +0.01s (+ 0.70%) 1.56s 1.63s
Bind Time 0.70s (± 0.72%) 0.69s (± 0.49%) -0.00s (- 0.29%) 0.69s 0.70s
Check Time 5.82s (± 0.44%) 5.81s (± 0.48%) -0.00s (- 0.09%) 5.76s 5.88s
Emit Time 3.33s (± 1.16%) 3.58s (± 0.33%) +0.25s (+ 7.45%) 3.54s 3.59s
Total Time 11.41s (± 0.49%) 11.67s (± 0.39%) +0.26s (+ 2.25%) 11.59s 11.77s
TFS - node (v12.1.0, x64)
Memory used 289,907k (± 0.07%) 290,096k (± 0.02%) +190k (+ 0.07%) 290,009k 290,204k
Parse Time 1.30s (± 0.51%) 1.30s (± 0.85%) +0.00s (+ 0.00%) 1.27s 1.32s
Bind Time 0.66s (± 0.72%) 0.66s (± 0.79%) -0.00s (- 0.60%) 0.65s 0.67s
Check Time 5.37s (± 0.34%) 5.38s (± 0.45%) +0.01s (+ 0.15%) 5.32s 5.44s
Emit Time 3.50s (± 0.52%) 3.89s (± 0.74%) +0.40s (+11.30%) 3.84s 3.94s
Total Time 10.83s (± 0.27%) 11.23s (± 0.49%) +0.40s (+ 3.70%) 11.10s 11.37s
material-ui - node (v12.1.0, x64)
Memory used 452,294k (± 0.01%) 452,274k (± 0.01%) -20k (- 0.00%) 452,220k 452,359k
Parse Time 1.82s (± 0.41%) 1.82s (± 0.34%) -0.00s (- 0.22%) 1.81s 1.84s
Bind Time 0.55s (± 0.73%) 0.55s (± 0.95%) -0.00s (- 0.36%) 0.54s 0.56s
Check Time 13.15s (± 1.02%) 13.18s (± 0.64%) +0.03s (+ 0.21%) 13.04s 13.39s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.52s (± 0.87%) 15.54s (± 0.58%) +0.02s (+ 0.14%) 15.40s 15.77s
xstate - node (v12.1.0, x64)
Memory used 548,336k (± 0.01%) 548,368k (± 0.01%) +33k (+ 0.01%) 548,211k 548,615k
Parse Time 2.54s (± 0.38%) 2.53s (± 0.37%) -0.00s (- 0.08%) 2.51s 2.56s
Bind Time 0.90s (± 0.85%) 0.89s (± 0.53%) -0.01s (- 0.56%) 0.88s 0.90s
Check Time 1.52s (± 0.62%) 1.51s (± 0.61%) -0.00s (- 0.33%) 1.49s 1.53s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 5.02s (± 0.30%) 5.01s (± 0.38%) -0.01s (- 0.26%) 4.96s 5.05s
Angular - node (v14.15.1, x64)
Memory used 337,196k (± 0.07%) 337,348k (± 0.01%) +152k (+ 0.05%) 337,299k 337,414k
Parse Time 2.06s (± 0.51%) 2.05s (± 0.58%) -0.02s (- 0.78%) 2.02s 2.08s
Bind Time 0.79s (± 0.78%) 0.79s (± 0.38%) +0.00s (+ 0.13%) 0.79s 0.80s
Check Time 5.84s (± 0.90%) 5.81s (± 0.58%) -0.04s (- 0.62%) 5.72s 5.88s
Emit Time 6.24s (± 0.88%) 6.60s (± 0.95%) +0.36s (+ 5.83%) 6.49s 6.70s
Total Time 14.94s (± 0.72%) 15.25s (± 0.56%) +0.31s (+ 2.10%) 15.11s 15.42s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,138k (± 0.02%) 192,781k (± 0.51%) +643k (+ 0.33%) 192,085k 195,456k
Parse Time 0.85s (± 0.78%) 0.86s (± 0.85%) +0.01s (+ 0.94%) 0.84s 0.87s
Bind Time 0.49s (± 0.70%) 0.49s (± 1.01%) -0.00s (- 0.21%) 0.48s 0.50s
Check Time 6.87s (± 0.74%) 6.89s (± 0.67%) +0.02s (+ 0.31%) 6.75s 6.98s
Emit Time 2.40s (± 0.41%) 2.72s (± 0.60%) +0.32s (+13.41%) 2.69s 2.76s
Total Time 10.61s (± 0.46%) 10.96s (± 0.47%) +0.35s (+ 3.32%) 10.84s 11.08s
Monaco - node (v14.15.1, x64)
Memory used 326,027k (± 0.01%) 326,044k (± 0.01%) +17k (+ 0.01%) 326,002k 326,098k
Parse Time 1.57s (± 0.35%) 1.57s (± 0.45%) +0.00s (+ 0.19%) 1.56s 1.59s
Bind Time 0.72s (± 0.51%) 0.72s (± 0.80%) +0.01s (+ 0.98%) 0.71s 0.74s
Check Time 5.71s (± 0.53%) 5.68s (± 0.49%) -0.03s (- 0.46%) 5.63s 5.74s
Emit Time 3.34s (± 0.62%) 3.62s (± 0.60%) +0.28s (+ 8.29%) 3.56s 3.65s
Total Time 11.33s (± 0.42%) 11.59s (± 0.44%) +0.26s (+ 2.29%) 11.47s 11.69s
TFS - node (v14.15.1, x64)
Memory used 289,112k (± 0.01%) 289,068k (± 0.01%) -44k (- 0.02%) 289,035k 289,107k
Parse Time 1.34s (± 1.75%) 1.32s (± 1.40%) -0.02s (- 1.19%) 1.28s 1.36s
Bind Time 0.71s (± 5.13%) 0.70s (± 5.19%) -0.01s (- 1.83%) 0.66s 0.80s
Check Time 5.33s (± 0.56%) 5.33s (± 0.35%) -0.00s (- 0.06%) 5.30s 5.38s
Emit Time 3.57s (± 1.85%) 3.91s (± 2.12%) +0.34s (+ 9.46%) 3.76s 4.05s
Total Time 10.96s (± 0.68%) 11.27s (± 0.89%) +0.31s (+ 2.84%) 11.07s 11.50s
material-ui - node (v14.15.1, x64)
Memory used 450,407k (± 0.06%) 450,538k (± 0.00%) +130k (+ 0.03%) 450,488k 450,571k
Parse Time 1.87s (± 0.86%) 1.86s (± 0.72%) -0.01s (- 0.38%) 1.84s 1.90s
Bind Time 0.58s (± 0.38%) 0.58s (± 0.77%) -0.00s (- 0.52%) 0.57s 0.59s
Check Time 13.27s (± 0.98%) 13.15s (± 0.49%) -0.12s (- 0.89%) 13.01s 13.27s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.71s (± 0.81%) 15.59s (± 0.40%) -0.12s (- 0.78%) 15.46s 15.70s
xstate - node (v14.15.1, x64)
Memory used 546,054k (± 0.00%) 546,055k (± 0.01%) +2k (+ 0.00%) 545,989k 546,137k
Parse Time 2.61s (± 0.40%) 2.60s (± 0.39%) -0.01s (- 0.50%) 2.58s 2.62s
Bind Time 0.98s (± 1.12%) 0.99s (± 0.74%) +0.01s (+ 1.02%) 0.97s 1.00s
Check Time 1.56s (± 0.37%) 1.55s (± 0.57%) -0.01s (- 0.64%) 1.54s 1.57s
Emit Time 0.07s (± 3.14%) 0.07s (± 3.14%) 0.00s ( 0.00%) 0.07s 0.08s
Total Time 5.23s (± 0.44%) 5.21s (± 0.31%) -0.02s (- 0.34%) 5.18s 5.25s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v10.16.3, x64)
  • xstate - node (v12.1.0, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50404 10
Baseline main 10

TSServer

Comparison Report - main..50404
Metric main 50404 Delta Best Worst
Compiler-UnionsTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,406ms (± 0.63%) 1,405ms (± 0.48%) -1ms (- 0.06%) 1,391ms 1,423ms
Req 2 - geterr 3,757ms (± 0.56%) 3,736ms (± 0.42%) -21ms (- 0.56%) 3,697ms 3,774ms
Req 3 - references 230ms (± 0.97%) 229ms (± 0.71%) -1ms (- 0.39%) 225ms 232ms
Req 4 - navto 172ms (± 1.27%) 172ms (± 1.32%) +0ms (+ 0.23%) 169ms 179ms
Req 5 - completionInfo count 1,355 (± 0.00%) 1,355 (± 0.00%) 0 ( 0.00%) 1,355 1,355
Req 5 - completionInfo 64ms (± 4.83%) 65ms (± 3.76%) +2ms (+ 2.52%) 59ms 69ms
CompilerTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,501ms (± 0.54%) 1,502ms (± 0.47%) +1ms (+ 0.04%) 1,487ms 1,519ms
Req 2 - geterr 2,225ms (± 0.52%) 2,225ms (± 0.53%) -1ms (- 0.02%) 2,207ms 2,259ms
Req 3 - references 242ms (± 0.53%) 242ms (± 0.43%) 0ms ( 0.00%) 239ms 244ms
Req 4 - navto 186ms (± 1.12%) 186ms (± 0.92%) -1ms (- 0.32%) 182ms 188ms
Req 5 - completionInfo count 1,517 (± 0.00%) 1,517 (± 0.00%) 0 ( 0.00%) 1,517 1,517
Req 5 - completionInfo 69ms (± 2.28%) 69ms (± 1.18%) +0ms (+ 0.29%) 67ms 71ms
xstateTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 2,071ms (± 0.40%) 2,072ms (± 0.57%) +0ms (+ 0.02%) 2,043ms 2,100ms
Req 2 - geterr 778ms (± 0.53%) 781ms (± 0.39%) +3ms (+ 0.32%) 776ms 790ms
Req 3 - references 101ms (± 1.48%) 101ms (± 1.52%) -0ms (- 0.10%) 98ms 106ms
Req 4 - navto 231ms (± 0.92%) 232ms (± 1.10%) +0ms (+ 0.09%) 228ms 239ms
Req 5 - completionInfo count 3,293 (± 0.00%) 3,293 (± 0.00%) 0 ( 0.00%) 3,293 3,293
Req 5 - completionInfo 270ms (± 1.20%) 272ms (± 1.14%) +3ms (+ 0.96%) 265ms 281ms
Compiler-UnionsTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,418ms (± 0.68%) 1,405ms (± 1.01%) -13ms (- 0.90%) 1,382ms 1,437ms
Req 2 - geterr 3,522ms (± 0.79%) 3,498ms (± 0.61%) -23ms (- 0.66%) 3,447ms 3,540ms
Req 3 - references 220ms (± 0.66%) 221ms (± 0.57%) +2ms (+ 0.73%) 219ms 225ms
Req 4 - navto 163ms (± 1.50%) 161ms (± 1.54%) -2ms (- 0.98%) 156ms 167ms
Req 5 - completionInfo count 1,355 (± 0.00%) 1,355 (± 0.00%) 0 ( 0.00%) 1,355 1,355
Req 5 - completionInfo 58ms (± 3.61%) 57ms (± 3.76%) -0ms (- 0.35%) 54ms 64ms
CompilerTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,499ms (± 0.56%) 1,502ms (± 0.53%) +3ms (+ 0.20%) 1,482ms 1,520ms
Req 2 - geterr 2,163ms (± 0.66%) 2,167ms (± 0.35%) +3ms (+ 0.16%) 2,152ms 2,192ms
Req 3 - references 234ms (± 0.45%) 233ms (± 1.51%) -0ms (- 0.17%) 228ms 246ms
Req 4 - navto 172ms (± 1.20%) 173ms (± 1.55%) +1ms (+ 0.52%) 168ms 182ms
Req 5 - completionInfo count 1,517 (± 0.00%) 1,517 (± 0.00%) 0 ( 0.00%) 1,517 1,517
Req 5 - completionInfo 65ms (± 3.02%) 64ms (± 1.78%) -1ms (- 0.93%) 62ms 66ms
xstateTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 2,025ms (± 0.68%) 2,024ms (± 0.42%) -1ms (- 0.07%) 2,005ms 2,040ms
Req 2 - geterr 756ms (± 0.45%) 756ms (± 0.53%) -0ms (- 0.01%) 749ms 770ms
Req 3 - references 68ms (± 0.89%) 67ms (± 1.11%) -1ms (- 0.74%) 65ms 68ms
Req 4 - navto 222ms (± 1.53%) 223ms (± 2.06%) +1ms (+ 0.27%) 212ms 231ms
Req 5 - completionInfo count 3,293 (± 0.00%) 3,293 (± 0.00%) 0 ( 0.00%) 3,293 3,293
Req 5 - completionInfo 266ms (± 0.84%) 269ms (± 0.77%) +3ms (+ 1.13%) 263ms 274ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,445ms (± 0.43%) 1,441ms (± 0.48%) -4ms (- 0.30%) 1,429ms 1,463ms
Req 2 - geterr 3,633ms (± 0.66%) 3,627ms (± 0.50%) -5ms (- 0.14%) 3,596ms 3,674ms
Req 3 - references 229ms (± 0.50%) 228ms (± 0.72%) -1ms (- 0.57%) 225ms 231ms
Req 4 - navto 171ms (± 0.87%) 170ms (± 0.63%) -1ms (- 0.70%) 168ms 173ms
Req 5 - completionInfo count 1,355 (± 0.00%) 1,355 (± 0.00%) 0 ( 0.00%) 1,355 1,355
Req 5 - completionInfo 58ms (± 1.88%) 59ms (± 3.02%) +1ms (+ 1.89%) 58ms 66ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,523ms (± 0.54%) 1,519ms (± 0.57%) -4ms (- 0.28%) 1,501ms 1,538ms
Req 2 - geterr 2,307ms (± 0.54%) 2,299ms (± 0.38%) -8ms (- 0.34%) 2,284ms 2,317ms
Req 3 - references 244ms (± 1.06%) 241ms (± 0.58%) -3ms (- 1.23%) 238ms 244ms
Req 4 - navto 181ms (± 0.67%) 179ms (± 0.59%) -1ms (- 0.66%) 177ms 182ms
Req 5 - completionInfo count 1,517 (± 0.00%) 1,517 (± 0.00%) 0 ( 0.00%) 1,517 1,517
Req 5 - completionInfo 54ms (± 1.39%) 54ms (± 1.11%) -0ms (- 0.19%) 53ms 55ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,129ms (± 0.29%) 2,131ms (± 0.24%) +2ms (+ 0.07%) 2,121ms 2,143ms
Req 2 - geterr 777ms (± 0.67%) 779ms (± 0.38%) +2ms (+ 0.24%) 774ms 788ms
Req 3 - references 66ms (± 1.01%) 67ms (± 1.04%) +1ms (+ 1.21%) 66ms 68ms
Req 4 - navto 228ms (± 0.56%) 229ms (± 0.65%) +1ms (+ 0.31%) 226ms 232ms
Req 5 - completionInfo count 3,293 (± 0.00%) 3,293 (± 0.00%) 0 ( 0.00%) 3,293 3,293
Req 5 - completionInfo 270ms (± 0.60%) 270ms (± 0.62%) +0ms (+ 0.04%) 267ms 274ms
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v10.16.3, x64)
  • Compiler-UnionsTSServer - node (v12.1.0, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v10.16.3, x64)
  • CompilerTSServer - node (v12.1.0, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v10.16.3, x64)
  • xstateTSServer - node (v12.1.0, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50404 10
Baseline main 10

Developer Information:

Download Benchmark


//// [caller.js]
import * as fs from 'fs';
import TruffleContract from '@truffle/contract'; // Runtime err: this import is elided in transform
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import used to be elided, but now it isn't.

!!! error TS2307: Cannot find module 'fs' or its corresponding type declarations.
import TruffleContract from '@truffle/contract'; // Runtime err: this import is elided in transform
~~~~~~~~~~~~~~~
!!! error TS18042: 'TruffleContract' is a type and cannot be imported in JavaScript files. Use 'import("@truffle/contract").TruffleContract' in a JSDoc type annotation.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that if checkJs is true, the user will still get the errors because we believe TruffleContract is a type and not a value.

@@ -45,7 +45,7 @@ b_1["default"];
"use strict";
exports.__esModule = true;
var x = { x: "" };
zzz;
a_1["default"];
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change looks weird, but it is correct. However, there should be an import a_1 = require("./a") here, which is elided because of another bug: #50455

@@ -1850,7 +1851,8 @@ namespace ts {
isUse: boolean,
excludeGlobals: boolean,
getSpellingSuggestions: boolean,
lookup: typeof getSymbol): Symbol | undefined {
lookup: typeof getSymbol,
reportErrors = true): Symbol | undefined {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resolveNameHelper used to report errors even if nameNotFoundMessage was undefined. Since we now call resolveNameHelper in getReferencedValueOrAliasSymbol when skipping the cached resolved symbol, without this change we would get different number of pre-emit and post-emit reported errors, and they'd be useless/repeated errors anyways.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resolveEntityName already takes an ignoreErrors flag and is seemingly what we use to resolve type names elsewhere - it just passes an undefined nameNotFoundMessage in those cases. Instead of adding a new parameter that also needs to be passed in at the resolveEntityName and maybe other callsites, maybe checking the existing nameNotFoundMessage parameter in more places works?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the existing code in the checker somehow relying on the fact that we report some errors even when nameNotFoundMessage is undefined? I thought this was intentional and the check for an undefined nameNotFoundMessage just kept us from reporting some "not found" errors.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably not. I'd change it and see if it breaks anything.

* This is because when caching the resolved symbol, we only consider value symbols, but here
* we want to also get an alias symbol if one exists.
*/
function getReferencedSymbol(reference: Identifier, startInDeclarationContainer?: boolean): Symbol | undefined {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to call resolveName here when the resolved symbol is unknown (i.e. there's a cache miss), because the resolved symbol is cached by doing a call to resolveName that only looks for symbols that have a value meaning.
Since we stopped eliding imports in JS files, that means some of the import symbols we want to find won't have a value meaning, but we still want to find them anyways, e.g. imports of types. Since those are imports, they'll have an alias meaning, hence we call resolveName with value or alias meaning.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we know during cache construction whether we'll eventually want alias symbols? Would that interfere with other cache consumers?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For (1), I think maybe that could be done. We want aliases for every identifier that goes through a module transform, worst case we need it for every identifier that survived the type erasure transform. But for (2) I think we would need a different cache, because changing it to cache alias-meaning symbols would interfere with the way the checker uses this cache.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably not worth the extra complexity of maintaining another cache (conditional on no-emit?), especially before we measure a problem.

// @esModuleInterop: true
// @isolatedModules: true
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think those compiler options work ok with my current changes, but I am not sure. I also don't think any other compiler option could interact badly with this change, but I have limited knowledge of the many things that could go wrong with emit and imports, so please, let me know if there's something else I should be testing here.

@typescript-bot typescript-bot added For Milestone Bug PRs that fix a bug with a specific milestone and removed For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Sep 6, 2022
return resolvedSymbol;
}

return resolveName(
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we're calling resolveName if the cache returns unknownSymbol, there could be a perf increase in emit time for JS files. I'm not sure if that is a big concern, or how to measure it, or even how to address it, so I'm looking for opinions here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this new call happen in any scenario that wasn't broken before your change?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand the change correctly (dubious), it sounds like the worst case is a file containing only unused imports? If so, could you make such a file with the top 100 npm packages and then measure before and after tsc time?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not unused imports, but identifiers that would resolve to unknown symbol in the cache before, which I think means identifiers that either don't have a value meaning (I guess in JS that would be imports we think refer to types), or identifiers that we couldn't resolve (i.e. imports we couldn't resolve).

By file with the top 100 npm packages do you mean a file that imports from the top 100 npm packages?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not unused imports, but identifiers that would resolve to unknown symbol in the cache before, which I think means identifiers that either don't have a value meaning (I guess in JS that would be imports we think refer to types), or identifiers that we couldn't resolve (i.e. imports we couldn't resolve).

From your tests, it looks like you could just typeof each imported symbol?

By file with the top 100 npm packages do you mean a file that imports from the top 100 npm packages?

Yes, that's what I meant.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gabritto What does your thumbs-up above mean? "No, it can't happen"?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, yes, I meant it can happen. But now that I'm thinking about it again, I guess both scenarios I pointed out in my comment above are considered "broken" (both imports that refer to types only and imports we couldn't resolve). So I guess the answer is no.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Turns out I was wrong, and we hit the cache for unresolved imports. We don't hit the cache for unresolved identifiers.

@gabritto
Copy link
Member Author

gabritto commented Sep 6, 2022

@typescript-bot perf test this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 6, 2022

Heya @gabritto, I've started to run the perf test suite on this PR at 3b2c300. You can monitor the build here.

Update: The results are in!

@gabritto gabritto changed the title Gabritto/jsemit Don't elide imports when transforming JS files Sep 6, 2022
@gabritto gabritto marked this pull request as ready for review Sep 6, 2022
@typescript-bot
Copy link
Collaborator

@gabritto
The results of the perf run you requested are in!

Here they are:

Compiler

Comparison Report - main..50404
Metric main 50404 Delta Best Worst
Angular - node (v10.16.3, x64)
Memory used 363,232k (± 0.01%) 363,214k (± 0.01%) -18k (- 0.00%) 363,132k 363,327k
Parse Time 2.09s (± 0.85%) 2.08s (± 1.06%) -0.00s (- 0.24%) 2.05s 2.15s
Bind Time 0.79s (± 0.63%) 0.78s (± 0.97%) -0.00s (- 0.13%) 0.77s 0.80s
Check Time 6.20s (± 0.58%) 6.19s (± 0.45%) -0.01s (- 0.13%) 6.12s 6.25s
Emit Time 5.99s (± 0.77%) 5.98s (± 0.84%) -0.01s (- 0.08%) 5.91s 6.09s
Total Time 15.05s (± 0.52%) 15.03s (± 0.58%) -0.02s (- 0.13%) 14.89s 15.22s
Compiler-Unions - node (v10.16.3, x64)
Memory used 206,165k (± 0.06%) 206,178k (± 0.04%) +13k (+ 0.01%) 206,034k 206,319k
Parse Time 0.83s (± 0.93%) 0.83s (± 0.71%) +0.00s (+ 0.36%) 0.82s 0.85s
Bind Time 0.46s (± 1.07%) 0.47s (± 1.00%) +0.00s (+ 1.08%) 0.46s 0.48s
Check Time 8.46s (± 0.62%) 8.50s (± 0.65%) +0.05s (+ 0.54%) 8.38s 8.59s
Emit Time 2.48s (± 1.21%) 2.47s (± 1.62%) -0.00s (- 0.20%) 2.39s 2.61s
Total Time 12.23s (± 0.51%) 12.28s (± 0.59%) +0.05s (+ 0.40%) 12.11s 12.43s
Monaco - node (v10.16.3, x64)
Memory used 344,732k (± 0.02%) 344,701k (± 0.01%) -31k (- 0.01%) 344,610k 344,797k
Parse Time 1.60s (± 0.53%) 1.61s (± 0.69%) +0.01s (+ 0.37%) 1.59s 1.64s
Bind Time 0.70s (± 0.67%) 0.70s (± 0.53%) -0.01s (- 0.71%) 0.69s 0.70s
Check Time 6.23s (± 0.42%) 6.23s (± 0.49%) +0.00s (+ 0.00%) 6.18s 6.31s
Emit Time 3.22s (± 0.92%) 3.22s (± 0.96%) -0.00s (- 0.03%) 3.16s 3.30s
Total Time 11.75s (± 0.49%) 11.76s (± 0.53%) +0.01s (+ 0.04%) 11.65s 11.87s
TFS - node (v10.16.3, x64)
Memory used 305,931k (± 0.02%) 305,940k (± 0.03%) +9k (+ 0.00%) 305,615k 306,082k
Parse Time 1.29s (± 0.50%) 1.29s (± 0.63%) -0.00s (- 0.08%) 1.27s 1.31s
Bind Time 0.67s (± 0.74%) 0.67s (± 0.73%) +0.01s (+ 1.20%) 0.66s 0.68s
Check Time 5.48s (± 0.33%) 5.51s (± 0.34%) +0.03s (+ 0.47%) 5.46s 5.55s
Emit Time 3.39s (± 0.58%) 3.44s (± 1.55%) +0.05s (+ 1.48%) 3.32s 3.54s
Total Time 10.82s (± 0.23%) 10.90s (± 0.58%) +0.08s (+ 0.77%) 10.72s 11.02s
material-ui - node (v10.16.3, x64)
Memory used 459,026k (± 0.02%) 458,996k (± 0.01%) -30k (- 0.01%) 458,879k 459,138k
Parse Time 1.82s (± 0.40%) 1.81s (± 0.56%) -0.01s (- 0.71%) 1.79s 1.83s
Bind Time 0.58s (± 1.81%) 0.58s (± 1.70%) -0.01s (- 0.86%) 0.56s 0.60s
Check Time 15.66s (± 0.60%) 15.56s (± 0.65%) -0.10s (- 0.63%) 15.40s 15.87s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 18.07s (± 0.56%) 17.95s (± 0.58%) -0.12s (- 0.65%) 17.78s 18.27s
xstate - node (v10.16.3, x64)
Memory used 583,755k (± 0.01%) 587,005k (± 1.22%) +3,251k (+ 0.56%) 583,655k 615,932k
Parse Time 2.61s (± 0.28%) 2.60s (± 0.50%) -0.01s (- 0.23%) 2.58s 2.64s
Bind Time 0.91s (± 0.52%) 0.92s (± 0.54%) +0.00s (+ 0.33%) 0.91s 0.93s
Check Time 1.62s (± 0.89%) 1.60s (± 0.80%) -0.02s (- 1.24%) 1.57s 1.63s
Emit Time 0.07s (± 4.13%) 0.07s (± 3.14%) -0.00s (- 1.39%) 0.07s 0.08s
Total Time 5.21s (± 0.40%) 5.19s (± 0.38%) -0.02s (- 0.33%) 5.16s 5.24s
Angular - node (v12.1.0, x64)
Memory used 340,661k (± 0.03%) 340,673k (± 0.02%) +12k (+ 0.00%) 340,505k 340,807k
Parse Time 2.07s (± 0.69%) 2.07s (± 0.46%) -0.01s (- 0.24%) 2.05s 2.09s
Bind Time 0.77s (± 0.61%) 0.77s (± 0.62%) -0.00s (- 0.39%) 0.76s 0.78s
Check Time 5.85s (± 0.54%) 5.81s (± 0.47%) -0.04s (- 0.70%) 5.76s 5.87s
Emit Time 6.21s (± 0.65%) 6.20s (± 0.51%) -0.01s (- 0.16%) 6.13s 6.25s
Total Time 14.90s (± 0.46%) 14.84s (± 0.27%) -0.07s (- 0.44%) 14.75s 14.93s
Compiler-Unions - node (v12.1.0, x64)
Memory used 193,893k (± 0.14%) 193,523k (± 0.37%) -370k (- 0.19%) 190,766k 194,136k
Parse Time 0.82s (± 0.49%) 0.83s (± 1.05%) +0.01s (+ 0.85%) 0.81s 0.85s
Bind Time 0.47s (± 1.18%) 0.47s (± 0.63%) -0.00s (- 0.00%) 0.47s 0.48s
Check Time 6.73s (± 0.73%) 6.71s (± 0.63%) -0.03s (- 0.39%) 6.63s 6.81s
Emit Time 2.48s (± 0.79%) 2.48s (± 1.60%) -0.00s (- 0.04%) 2.41s 2.57s
Total Time 10.51s (± 0.51%) 10.49s (± 0.49%) -0.02s (- 0.20%) 10.35s 10.56s
Monaco - node (v12.1.0, x64)
Memory used 327,733k (± 0.02%) 327,708k (± 0.02%) -25k (- 0.01%) 327,566k 327,861k
Parse Time 1.57s (± 0.73%) 1.58s (± 0.48%) +0.01s (+ 0.32%) 1.56s 1.59s
Bind Time 0.70s (± 0.72%) 0.70s (± 0.83%) +0.00s (+ 0.29%) 0.69s 0.71s
Check Time 5.81s (± 0.39%) 5.82s (± 0.37%) +0.02s (+ 0.29%) 5.78s 5.88s
Emit Time 3.28s (± 0.84%) 3.28s (± 0.52%) 0.00s ( 0.00%) 3.25s 3.33s
Total Time 11.35s (± 0.32%) 11.38s (± 0.34%) +0.03s (+ 0.22%) 11.32s 11.50s
TFS - node (v12.1.0, x64)
Memory used 290,570k (± 0.02%) 290,459k (± 0.07%) -111k (- 0.04%) 289,675k 290,679k
Parse Time 1.29s (± 0.83%) 1.28s (± 0.73%) -0.01s (- 0.62%) 1.26s 1.30s
Bind Time 0.67s (± 1.31%) 0.67s (± 1.60%) +0.00s (+ 0.15%) 0.65s 0.69s
Check Time 5.39s (± 0.28%) 5.38s (± 0.48%) -0.01s (- 0.22%) 5.30s 5.43s
Emit Time 3.48s (± 1.20%) 3.48s (± 0.54%) -0.00s (- 0.03%) 3.44s 3.52s
Total Time 10.83s (± 0.44%) 10.81s (± 0.32%) -0.02s (- 0.17%) 10.73s 10.88s
material-ui - node (v12.1.0, x64)
Memory used 438,111k (± 0.06%) 438,334k (± 0.01%) +223k (+ 0.05%) 438,228k 438,485k
Parse Time 1.81s (± 0.39%) 1.82s (± 0.59%) +0.01s (+ 0.55%) 1.79s 1.84s
Bind Time 0.55s (± 1.28%) 0.55s (± 1.01%) -0.00s (- 0.18%) 0.54s 0.56s
Check Time 12.82s (± 0.83%) 12.79s (± 0.64%) -0.04s (- 0.28%) 12.62s 12.99s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.18s (± 0.75%) 15.15s (± 0.53%) -0.03s (- 0.19%) 14.98s 15.36s
xstate - node (v12.1.0, x64)
Memory used 552,079k (± 1.27%) 548,978k (± 0.01%) -3,101k (- 0.56%) 548,816k 549,108k
Parse Time 2.54s (± 0.61%) 2.54s (± 0.40%) -0.00s (- 0.20%) 2.52s 2.56s
Bind Time 0.89s (± 0.65%) 0.89s (± 0.84%) -0.00s (- 0.34%) 0.88s 0.91s
Check Time 1.48s (± 0.59%) 1.48s (± 0.39%) -0.00s (- 0.07%) 1.47s 1.49s
Emit Time 0.07s (± 0.00%) 0.07s (± 0.00%) 0.00s ( 0.00%) 0.07s 0.07s
Total Time 4.98s (± 0.49%) 4.97s (± 0.19%) -0.01s (- 0.18%) 4.95s 5.00s
Angular - node (v14.15.1, x64)
Memory used 338,729k (± 0.01%) 338,756k (± 0.01%) +27k (+ 0.01%) 338,677k 338,809k
Parse Time 2.06s (± 0.99%) 2.09s (± 1.13%) +0.03s (+ 1.21%) 2.04s 2.15s
Bind Time 0.79s (± 0.43%) 0.79s (± 0.73%) 0.00s ( 0.00%) 0.78s 0.81s
Check Time 5.83s (± 0.71%) 5.82s (± 0.54%) -0.00s (- 0.07%) 5.76s 5.91s
Emit Time 6.15s (± 0.61%) 6.22s (± 0.41%) +0.07s (+ 1.19%) 6.15s 6.30s
Total Time 14.83s (± 0.45%) 14.92s (± 0.31%) +0.09s (+ 0.62%) 14.81s 15.01s
Compiler-Unions - node (v14.15.1, x64)
Memory used 192,893k (± 0.40%) 192,654k (± 0.01%) -240k (- 0.12%) 192,611k 192,709k
Parse Time 0.85s (± 0.61%) 0.86s (± 0.69%) +0.00s (+ 0.59%) 0.84s 0.87s
Bind Time 0.49s (± 0.82%) 0.49s (± 1.01%) -0.00s (- 0.61%) 0.48s 0.50s
Check Time 6.75s (± 0.40%) 6.73s (± 0.54%) -0.02s (- 0.28%) 6.68s 6.86s
Emit Time 2.42s (± 1.18%) 2.42s (± 0.61%) +0.00s (+ 0.08%) 2.38s 2.44s
Total Time 10.51s (± 0.30%) 10.49s (± 0.33%) -0.02s (- 0.18%) 10.43s 10.59s
Monaco - node (v14.15.1, x64)
Memory used 326,527k (± 0.00%) 326,530k (± 0.01%) +3k (+ 0.00%) 326,483k 326,605k
Parse Time 1.57s (± 0.75%) 1.56s (± 0.57%) -0.01s (- 0.45%) 1.54s 1.58s
Bind Time 0.72s (± 0.62%) 0.73s (± 0.47%) +0.01s (+ 0.69%) 0.72s 0.73s
Check Time 5.71s (± 0.25%) 5.71s (± 0.57%) -0.00s (- 0.07%) 5.64s 5.78s
Emit Time 3.29s (± 0.51%) 3.32s (± 0.64%) +0.03s (+ 0.79%) 3.28s 3.37s
Total Time 11.30s (± 0.15%) 11.32s (± 0.47%) +0.02s (+ 0.18%) 11.21s 11.44s
TFS - node (v14.15.1, x64)
Memory used 289,655k (± 0.00%) 289,662k (± 0.01%) +6k (+ 0.00%) 289,621k 289,704k
Parse Time 1.31s (± 0.85%) 1.30s (± 0.34%) -0.01s (- 0.54%) 1.29s 1.31s
Bind Time 0.79s (± 0.89%) 0.78s (± 1.42%) -0.00s (- 0.63%) 0.74s 0.79s
Check Time 5.35s (± 0.42%) 5.35s (± 0.51%) -0.01s (- 0.13%) 5.30s 5.44s
Emit Time 3.58s (± 0.75%) 3.58s (± 0.49%) -0.00s (- 0.03%) 3.55s 3.61s
Total Time 11.02s (± 0.34%) 11.00s (± 0.25%) -0.02s (- 0.18%) 10.94s 11.08s
material-ui - node (v14.15.1, x64)
Memory used 436,347k (± 0.06%) 436,453k (± 0.00%) +106k (+ 0.02%) 436,415k 436,502k
Parse Time 1.86s (± 0.42%) 1.86s (± 0.60%) 0.00s ( 0.00%) 1.84s 1.90s
Bind Time 0.58s (± 0.99%) 0.58s (± 0.69%) -0.00s (- 0.17%) 0.57s 0.59s
Check Time 12.86s (± 0.58%) 12.86s (± 0.67%) +0.00s (+ 0.03%) 12.69s 13.05s
Emit Time 0.00s (± 0.00%) 0.00s (± 0.00%) 0.00s ( NaN%) 0.00s 0.00s
Total Time 15.29s (± 0.49%) 15.30s (± 0.60%) +0.00s (+ 0.02%) 15.11s 15.49s
xstate - node (v14.15.1, x64)
Memory used 546,738k (± 0.00%) 546,752k (± 0.00%) +14k (+ 0.00%) 546,728k 546,781k
Parse Time 2.58s (± 0.29%) 2.59s (± 0.39%) +0.01s (+ 0.35%) 2.58s 2.62s
Bind Time 0.96s (± 0.38%) 0.97s (± 0.46%) +0.00s (+ 0.31%) 0.96s 0.98s
Check Time 1.52s (± 0.29%) 1.52s (± 0.34%) +0.00s (+ 0.07%) 1.51s 1.53s
Emit Time 0.07s (± 4.13%) 0.07s (± 3.14%) -0.00s (- 1.39%) 0.07s 0.08s
Total Time 5.14s (± 0.19%) 5.15s (± 0.26%) +0.01s (+ 0.25%) 5.12s 5.18s
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Angular - node (v10.16.3, x64)
  • Angular - node (v12.1.0, x64)
  • Angular - node (v14.15.1, x64)
  • Compiler-Unions - node (v10.16.3, x64)
  • Compiler-Unions - node (v12.1.0, x64)
  • Compiler-Unions - node (v14.15.1, x64)
  • Monaco - node (v10.16.3, x64)
  • Monaco - node (v12.1.0, x64)
  • Monaco - node (v14.15.1, x64)
  • TFS - node (v10.16.3, x64)
  • TFS - node (v12.1.0, x64)
  • TFS - node (v14.15.1, x64)
  • material-ui - node (v10.16.3, x64)
  • material-ui - node (v12.1.0, x64)
  • material-ui - node (v14.15.1, x64)
  • xstate - node (v10.16.3, x64)
  • xstate - node (v12.1.0, x64)
  • xstate - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50404 10
Baseline main 10

TSServer

Comparison Report - main..50404
Metric main 50404 Delta Best Worst
Compiler-UnionsTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,404ms (± 0.41%) 1,398ms (± 0.54%) -7ms (- 0.48%) 1,375ms 1,413ms
Req 2 - geterr 4,129ms (± 0.78%) 4,092ms (± 0.85%) -37ms (- 0.89%) 4,022ms 4,196ms
Req 3 - references 231ms (± 0.37%) 230ms (± 0.66%) -1ms (- 0.52%) 227ms 233ms
Req 4 - navto 174ms (± 0.69%) 172ms (± 1.08%) -3ms (- 1.44%) 168ms 177ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 96ms (± 1.46%) 93ms (± 7.75%) 🟩-3ms (- 3.43%) 64ms 98ms
CompilerTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 1,505ms (± 0.59%) 1,495ms (± 0.60%) -10ms (- 0.66%) 1,475ms 1,521ms
Req 2 - geterr 2,262ms (± 0.32%) 2,262ms (± 0.56%) -0ms (- 0.01%) 2,235ms 2,287ms
Req 3 - references 244ms (± 0.74%) 244ms (± 0.80%) -0ms (- 0.16%) 239ms 249ms
Req 4 - navto 187ms (± 0.78%) 186ms (± 1.19%) -1ms (- 0.54%) 180ms 191ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 63ms (± 3.48%) 61ms (± 1.20%) 🟩-2ms (- 3.80%) 59ms 62ms
xstateTSServer - node (v10.16.3, x64)
Req 1 - updateOpen 2,099ms (± 0.44%) 2,080ms (± 0.22%) -19ms (- 0.91%) 2,072ms 2,088ms
Req 2 - geterr 799ms (± 0.75%) 794ms (± 0.58%) -5ms (- 0.63%) 779ms 802ms
Req 3 - references 101ms (± 3.00%) 100ms (± 1.59%) -1ms (- 0.99%) 95ms 103ms
Req 4 - navto 232ms (± 0.86%) 231ms (± 1.00%) -1ms (- 0.34%) 228ms 238ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 279ms (± 0.96%) 278ms (± 0.96%) -1ms (- 0.43%) 273ms 285ms
Compiler-UnionsTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,411ms (± 0.82%) 1,400ms (± 0.79%) -11ms (- 0.79%) 1,374ms 1,424ms
Req 2 - geterr 3,384ms (± 0.67%) 3,363ms (± 0.67%) -21ms (- 0.62%) 3,320ms 3,413ms
Req 3 - references 222ms (± 1.22%) 220ms (± 0.38%) -2ms (- 0.68%) 218ms 222ms
Req 4 - navto 162ms (± 0.99%) 160ms (± 0.79%) -2ms (- 1.11%) 158ms 163ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 62ms (± 4.55%) 62ms (± 3.01%) +0ms (+ 0.16%) 57ms 67ms
CompilerTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 1,491ms (± 0.50%) 1,492ms (± 0.52%) +1ms (+ 0.09%) 1,479ms 1,513ms
Req 2 - geterr 2,162ms (± 0.49%) 2,155ms (± 0.43%) -7ms (- 0.34%) 2,141ms 2,184ms
Req 3 - references 235ms (± 0.95%) 235ms (± 0.56%) -0ms (- 0.17%) 231ms 238ms
Req 4 - navto 172ms (± 1.15%) 170ms (± 0.98%) -2ms (- 1.28%) 164ms 173ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 61ms (± 3.34%) 62ms (± 3.37%) +1ms (+ 1.63%) 58ms 66ms
xstateTSServer - node (v12.1.0, x64)
Req 1 - updateOpen 2,035ms (± 0.66%) 2,035ms (± 0.61%) +0ms (+ 0.01%) 2,007ms 2,062ms
Req 2 - geterr 747ms (± 0.58%) 746ms (± 0.43%) -2ms (- 0.21%) 738ms 751ms
Req 3 - references 67ms (± 0.67%) 67ms (± 1.44%) +0ms (+ 0.15%) 65ms 69ms
Req 4 - navto 223ms (± 1.60%) 225ms (± 0.61%) +3ms (+ 1.12%) 223ms 229ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 278ms (± 1.01%) 273ms (± 0.94%) -6ms (- 2.05%) 269ms 278ms
Compiler-UnionsTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,452ms (± 0.79%) 1,447ms (± 0.48%) -5ms (- 0.36%) 1,437ms 1,465ms
Req 2 - geterr 3,516ms (± 0.58%) 3,490ms (± 0.52%) -27ms (- 0.75%) 3,460ms 3,545ms
Req 3 - references 232ms (± 0.38%) 231ms (± 0.75%) -2ms (- 0.65%) 227ms 234ms
Req 4 - navto 171ms (± 0.64%) 170ms (± 1.15%) -1ms (- 0.76%) 166ms 174ms
Req 5 - completionInfo count 1,356 (± 0.00%) 1,356 (± 0.00%) 0 ( 0.00%) 1,356 1,356
Req 5 - completionInfo 55ms (± 1.33%) 55ms (± 1.54%) +0ms (+ 0.18%) 53ms 57ms
CompilerTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 1,511ms (± 0.38%) 1,511ms (± 0.40%) +0ms (+ 0.02%) 1,498ms 1,525ms
Req 2 - geterr 2,309ms (± 0.37%) 2,301ms (± 0.54%) -9ms (- 0.39%) 2,276ms 2,329ms
Req 3 - references 242ms (± 0.43%) 242ms (± 0.46%) -0ms (- 0.12%) 239ms 244ms
Req 4 - navto 178ms (± 0.67%) 178ms (± 0.42%) -1ms (- 0.28%) 176ms 179ms
Req 5 - completionInfo count 1,518 (± 0.00%) 1,518 (± 0.00%) 0 ( 0.00%) 1,518 1,518
Req 5 - completionInfo 55ms (± 0.90%) 54ms (± 1.07%) -1ms (- 1.10%) 53ms 55ms
xstateTSServer - node (v14.15.1, x64)
Req 1 - updateOpen 2,133ms (± 0.36%) 2,132ms (± 0.33%) -1ms (- 0.05%) 2,112ms 2,146ms
Req 2 - geterr 769ms (± 0.43%) 765ms (± 0.45%) -4ms (- 0.52%) 757ms 772ms
Req 3 - references 66ms (± 1.57%) 65ms (± 1.89%) -1ms (- 1.51%) 63ms 68ms
Req 4 - navto 229ms (± 0.38%) 228ms (± 0.55%) -1ms (- 0.61%) 225ms 232ms
Req 5 - completionInfo count 3,301 (± 0.00%) 3,301 (± 0.00%) 0 ( 0.00%) 3,301 3,301
Req 5 - completionInfo 279ms (± 0.58%) 279ms (± 0.40%) -1ms (- 0.29%) 275ms 280ms
System
Machine Namets-ci-ubuntu
Platformlinux 4.4.0-210-generic
Architecturex64
Available Memory16 GB
Available Memory15 GB
CPUs4 × Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
Hosts
  • node (v10.16.3, x64)
  • node (v12.1.0, x64)
  • node (v14.15.1, x64)
Scenarios
  • Compiler-UnionsTSServer - node (v10.16.3, x64)
  • Compiler-UnionsTSServer - node (v12.1.0, x64)
  • Compiler-UnionsTSServer - node (v14.15.1, x64)
  • CompilerTSServer - node (v10.16.3, x64)
  • CompilerTSServer - node (v12.1.0, x64)
  • CompilerTSServer - node (v14.15.1, x64)
  • xstateTSServer - node (v10.16.3, x64)
  • xstateTSServer - node (v12.1.0, x64)
  • xstateTSServer - node (v14.15.1, x64)
Benchmark Name Iterations
Current 50404 10
Baseline main 10

Developer Information:

Download Benchmark

@andrewbranch
Copy link
Member

Exports in JS files will still be elided as before.

Can you give an example of an export that would be elided?

@gabritto
Copy link
Member Author

gabritto commented Sep 6, 2022

Exports in JS files will still be elided as before.

Can you give an example of an export that would be elided?

It's the same rule as for TS files, since we don't seem to distinguish between JS and TS when transforming. If there's an export for something that resolves to a symbol that doesn't have a value meaning, then we elide it. If you consider the example from the issue/in elideJSImport.ts test, if you have something like this:

// @Filename: caller.js
import * as fs from 'fs';
import TruffleContract from '@truffle/contract'; // TruffleContract resolves to a namespace only
console.log(fs);
console.log('TruffleContract is ', typeof TruffleContract, TruffleContract);
export { TruffleContract }; // This export will be elided

so the TruffleContract export will be elided since TruffleContract resolves to a namespace, i.e. no value meaning.

Copy link
Member

@andrewbranch andrewbranch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Would like to run the reportErrors change by @weswigham before merging.

@gabritto gabritto requested a review from amcasey Sep 12, 2022
@gabritto
Copy link
Member Author

@amcasey I'm interested in your opinions on this change because it affects emit perf.

@sandersn sandersn added this to Not started in PR Backlog Sep 12, 2022
PR Backlog automation moved this from Not started to Needs merge Sep 13, 2022
src/compiler/transformers/ts.ts Show resolved Hide resolved
* This is because when caching the resolved symbol, we only consider value symbols, but here
* we want to also get an alias symbol if one exists.
*/
function getReferencedSymbol(reference: Identifier, startInDeclarationContainer?: boolean): Symbol | undefined {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we know during cache construction whether we'll eventually want alias symbols? Would that interfere with other cache consumers?

return resolvedSymbol;
}

return resolveName(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this new call happen in any scenario that wasn't broken before your change?

return resolvedSymbol;
}

return resolveName(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand the change correctly (dubious), it sounds like the worst case is a file containing only unused imports? If so, could you make such a file with the top 100 npm packages and then measure before and after tsc time?

@gabritto
Copy link
Member Author

@typescript-bot pack this

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 16, 2022

Heya @gabritto, I've started to run the tarball bundle task on this PR at c2c4fd8. You can monitor the build here.

@typescript-bot
Copy link
Collaborator

typescript-bot commented Sep 16, 2022

Hey @gabritto, I've packed this into an installable tgz. You can install it for testing by referencing it in your package.json like so:

{
    "devDependencies": {
        "typescript": "https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/_apis/build/builds/134404/artifacts?artifactName=tgz&fileId=746983E79147FE39E0DB8D60A560F55525001D4CBDD3BFB052C6A0FDEA7D6D9D02&fileName=/typescript-4.9.0-insiders.20220916.tgz"
    }
}

and then running npm install.


There is also a playground for this build and an npm module you can use via "typescript": "npm:@typescript-deploys/pr-build@4.9.0-pr-50404-15".;

@gabritto gabritto merged commit 3014dec into main Sep 19, 2022
13 checks passed
PR Backlog automation moved this from Needs merge to Done Sep 19, 2022
@gabritto gabritto deleted the gabritto/jsemit branch Sep 19, 2022
@gabritto gabritto restored the gabritto/jsemit branch Sep 19, 2022
@DanielRosenwasser DanielRosenwasser deleted the gabritto/jsemit branch Sep 19, 2022
@gabritto gabritto restored the gabritto/jsemit branch Sep 19, 2022
@gabritto gabritto deleted the gabritto/jsemit branch Sep 19, 2022
@gabritto gabritto restored the gabritto/jsemit branch Sep 19, 2022
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Jan 12, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [typescript](https://www.typescriptlang.org/) ([source](https://github.com/Microsoft/TypeScript)) | devDependencies | minor | [`4.8.4` -> `4.9.4`](https://renovatebot.com/diffs/npm/typescript/4.8.4/4.9.4) |

---

### Release Notes

<details>
<summary>Microsoft/TypeScript</summary>

### [`v4.9.4`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.4): TypeScript 4.9.4

[Compare Source](https://github.com/Microsoft/TypeScript/compare/v4.9.3...v4.9.4)

For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9).

For the complete list of fixed issues, check out the

-   [fixed issues query for Typescript v4.9.4](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+4.9.4%22+is%3Aclosed+).

Downloads are available on:

-   [npm](https://www.npmjs.com/package/typescript)
-   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

#### Changes:

-   [`e286821`](https://github.com/Microsoft/TypeScript/commit/e2868216f637e875a74c675845625eb15dcfe9a2) Bump version to 4.9.4 and LKG.
-   [`eb5419f`](https://github.com/Microsoft/TypeScript/commit/eb5419fc8d980859b98553586dfb5f40d811a745) Cherry-pick [#&#8203;51704](https://github.com/Microsoft/TypeScript/issues/51704) to release 4.9 ([#&#8203;51712](https://github.com/Microsoft/TypeScript/issues/51712))
-   [`b4d382b`](https://github.com/Microsoft/TypeScript/commit/b4d382b9b12460adf2da4cc0d1429cf19f8dc8be) Cherry-pick changes for narrowing to tagged literal types.
-   [`e7a02f4`](https://github.com/Microsoft/TypeScript/commit/e7a02f43fce47e1a39259ada5460bcc33c8e98b5) Port of [#&#8203;51626](https://github.com/Microsoft/TypeScript/issues/51626) and [#&#8203;51689](https://github.com/Microsoft/TypeScript/issues/51689) to release-4.9 ([#&#8203;51627](https://github.com/Microsoft/TypeScript/issues/51627))
-   [`1727912`](https://github.com/Microsoft/TypeScript/commit/1727912f0437a7f367d90040fc4b0b4f3efd017a) Cherry-pick fix around `visitEachChild` to release-4.9. ([#&#8203;51544](https://github.com/Microsoft/TypeScript/issues/51544))

This list of changes was [auto generated](https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/\_release?releaseId=117&\_a=release-summary).

### [`v4.9.3`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.3): TypeScript 4.9

[Compare Source](https://github.com/Microsoft/TypeScript/compare/v4.8.4...v4.9.3)

For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/).

Downloads are available on:

-   [npm](https://www.npmjs.com/package/typescript)
-   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

#### Changes:

-   [`93bd577`](https://github.com/Microsoft/TypeScript/commit/93bd577458d55cd720b2677705feab5c91eb12ce) Bump version to 4.9.3 and LKG.
-   [`107f832`](https://github.com/Microsoft/TypeScript/commit/107f832b80df2dc97748021cb00af2b6813db75b) Update LKG.
-   [`31bee56`](https://github.com/Microsoft/TypeScript/commit/31bee5682df130a14ffdd5742f994dbe7313dd0e) Cherry-pick PR [#&#8203;50977](https://github.com/Microsoft/TypeScript/issues/50977) into release-4.9 ([#&#8203;51363](https://github.com/Microsoft/TypeScript/issues/51363)) \[ [#&#8203;50872](https://github.com/Microsoft/TypeScript/issues/50872) ]
-   [`1e2fa7a`](https://github.com/Microsoft/TypeScript/commit/1e2fa7ae15f8530910fef8b916ec8a4ed0b59c45) Update version to 4.9.2-rc and LKG.
-   [`7ab89e5`](https://github.com/Microsoft/TypeScript/commit/7ab89e5c6e401d161f31f28a6c555a3ba530910e) Merge remote-tracking branch 'origin/main' into release-4.9
-   [`e5cd686`](https://github.com/Microsoft/TypeScript/commit/e5cd686defb1a4cbdb36bd012357ba5bed28f371) Update package-lock.json
-   [`8d40dc1`](https://github.com/Microsoft/TypeScript/commit/8d40dc15d1b9945837e7860320fdccfe27c40cad) Update package-lock.json
-   [`5cfb3a2`](https://github.com/Microsoft/TypeScript/commit/5cfb3a2fe344a5350734305193e6cc99516285ca) Only call return() for an abrupt completion in user code ([#&#8203;51297](https://github.com/Microsoft/TypeScript/issues/51297))
-   [`a7a9d15`](https://github.com/Microsoft/TypeScript/commit/a7a9d158e817fcb0e94dc1c24e0a401b21be0cc9) Fix for broken baseline in yieldInForInInDownlevelGenerator ([#&#8203;51345](https://github.com/Microsoft/TypeScript/issues/51345))
-   [`7f8426f`](https://github.com/Microsoft/TypeScript/commit/7f8426f4df0d0a7dd8b72079dafc3e60164a23b1) fix for-in enumeration containing yield in generator ([#&#8203;51295](https://github.com/Microsoft/TypeScript/issues/51295))

<details><summary><b>See More</b></summary>

-   [`3d2b401`](https://github.com/Microsoft/TypeScript/commit/3d2b4017eb6b9a2b94bc673291e56ae95e8beddd) Fix assertion functions accessed via wildcard imports ([#&#8203;51324](https://github.com/Microsoft/TypeScript/issues/51324))
-   [`64d0d5a`](https://github.com/Microsoft/TypeScript/commit/64d0d5ae140b7b26a09e75114517b418d6bcaa9f) fix(51301): Fixing an unused import at the end of a line removes the newline ([#&#8203;51320](https://github.com/Microsoft/TypeScript/issues/51320))
-   [`754eeb2`](https://github.com/Microsoft/TypeScript/commit/754eeb2986bde30d5926e0fa99c87dda9266d01b) Update CodeQL workflow and configuration, fix found bugs ([#&#8203;51263](https://github.com/Microsoft/TypeScript/issues/51263))
-   [`d8aad26`](https://github.com/Microsoft/TypeScript/commit/d8aad262006ad2d2c91aa7a0e4449b4b83c57f7b) Update package-lock.json
-   [`d4f26c8`](https://github.com/Microsoft/TypeScript/commit/d4f26c840b1db76c0b25a405c8e73830a2b45cbc) fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure ([#&#8203;51256](https://github.com/Microsoft/TypeScript/issues/51256))
-   [`16faf45`](https://github.com/Microsoft/TypeScript/commit/16faf45682173ea437a50330feb4785578923d7f) Update package-lock.json
-   [`8b1ecdb`](https://github.com/Microsoft/TypeScript/commit/8b1ecdb701e2a2e19e9f8bcdd6b2beac087eabee) fix(50654): "Move to a new file" breaks the declaration of referenced variable ([#&#8203;50681](https://github.com/Microsoft/TypeScript/issues/50681))
-   [`170a17f`](https://github.com/Microsoft/TypeScript/commit/170a17fad57eae619c5ef2b7bdb3ac00d6c32c47) Dom update 2022-10-25 ([#&#8203;51300](https://github.com/Microsoft/TypeScript/issues/51300))
-   [`9c4e14d`](https://github.com/Microsoft/TypeScript/commit/9c4e14d75174432f6a4dc5967a09712a6784ab88) Remove "No type information for this code" from baseline ([#&#8203;51311](https://github.com/Microsoft/TypeScript/issues/51311))
-   [`88d25b4`](https://github.com/Microsoft/TypeScript/commit/88d25b4f232929df59729156dfda6b65277affec) fix(50068): Refactors trigger debug failure when JSX text has a ' and a tag on the same line. ([#&#8203;51299](https://github.com/Microsoft/TypeScript/issues/51299))
-   [`8bee69a`](https://github.com/Microsoft/TypeScript/commit/8bee69acf410d4986cb0cc102b949e2d133d5380) Update package-lock.json
-   [`702de1e`](https://github.com/Microsoft/TypeScript/commit/702de1eeaaef88a189e4d06e5a2aae287853790a) Fix early call to return/throw on generator ([#&#8203;51294](https://github.com/Microsoft/TypeScript/issues/51294))
-   [`2c12b14`](https://github.com/Microsoft/TypeScript/commit/2c12b1499908ad7718e65d20e264561207c22375) Add a GH Action to file a new issue if we go a week without seeing a typescript-error-deltas issue ([#&#8203;51271](https://github.com/Microsoft/TypeScript/issues/51271))
-   [`6af270d`](https://github.com/Microsoft/TypeScript/commit/6af270dee09d62516f6dc02ec102a745ffebc037) Update package-lock.json
-   [`2cc4c16`](https://github.com/Microsoft/TypeScript/commit/2cc4c16a26672a7ba6c97ba16309fcf334db7cae) Update package-lock.json
-   [`6093491`](https://github.com/Microsoft/TypeScript/commit/60934915d9ccc4ca9c0fb2cd060d7ec81601942b) Fix apparent typo in getStringMappingType ([#&#8203;51248](https://github.com/Microsoft/TypeScript/issues/51248))
-   [`61c2609`](https://github.com/Microsoft/TypeScript/commit/61c26096e3373719ece686b84c698423890e9a5f) Update package-lock.json
-   [`ef69116`](https://github.com/Microsoft/TypeScript/commit/ef69116c41cb6805f89e6592eacb0ccb7f02207d) Generate shortest `rootDirs` module specifier instead of first possible ([#&#8203;51244](https://github.com/Microsoft/TypeScript/issues/51244))
-   [`bbb42f4`](https://github.com/Microsoft/TypeScript/commit/bbb42f453dc684e03d977c5b70391124d57543a9) Fix typo in canWatchDirectoryOrFile found by CodeQL ([#&#8203;51262](https://github.com/Microsoft/TypeScript/issues/51262))
-   [`a56b254`](https://github.com/Microsoft/TypeScript/commit/a56b254ad3c52b598bc5d44f83f3d0a1cf806068) Include 'this' type parameter in isRelatedTo fast path ([#&#8203;51230](https://github.com/Microsoft/TypeScript/issues/51230))
-   [`3abd351`](https://github.com/Microsoft/TypeScript/commit/3abd351c0eea55758f27ee5558a4a1525b77f45b) Fix super property transform in async arrow in method ([#&#8203;51240](https://github.com/Microsoft/TypeScript/issues/51240))
-   [`eed0511`](https://github.com/Microsoft/TypeScript/commit/eed05112180e0d94f78aa02d676d49468f15dc31) Update package-lock.json
-   [`2625c1f`](https://github.com/Microsoft/TypeScript/commit/2625c1feae25aede35465ca835440fc57bf13d52) Make the init config category order predictable ([#&#8203;51247](https://github.com/Microsoft/TypeScript/issues/51247))
-   [`1ca99b3`](https://github.com/Microsoft/TypeScript/commit/1ca99b34029dafad2c18af7bdc0711f4abf7e522) fix(50551): Destructuring assignment with var bypasses "variable is used before being assigned" check (2454) ([#&#8203;50560](https://github.com/Microsoft/TypeScript/issues/50560))
-   [`3f28fa1`](https://github.com/Microsoft/TypeScript/commit/3f28fa12dfecb8dfd66ce4684bf26f64e1f092f1) Update package-lock.json
-   [`906ebe4`](https://github.com/Microsoft/TypeScript/commit/906ebe49334a3a9c2dbd73cd3c902898bc712b66) Revert structuredTypeRelatedTo change and fix isUnitLikeType ([#&#8203;51076](https://github.com/Microsoft/TypeScript/issues/51076))
-   [`8ac4652`](https://github.com/Microsoft/TypeScript/commit/8ac465239f52de1da3ada8cdc4c3f107f4d62e45) change type ([#&#8203;51231](https://github.com/Microsoft/TypeScript/issues/51231))
-   [`245a02c`](https://github.com/Microsoft/TypeScript/commit/245a02cbed7ad50a21289730159abc8d19a66f40) fix(51222): Go-to-definition on return statements should jump to the containing function declaration ([#&#8203;51227](https://github.com/Microsoft/TypeScript/issues/51227))
-   [`2dff34e`](https://github.com/Microsoft/TypeScript/commit/2dff34e8c4a91c0005ca9ccfb7e045e225b6f2e4) markAliasReferenced should include ExportValue as well ([#&#8203;51219](https://github.com/Microsoft/TypeScript/issues/51219))
-   [`5ef2634`](https://github.com/Microsoft/TypeScript/commit/5ef2634f3df138323383c7f2e5a05163a924ee86) Update package-lock.json
-   [`d0f0e35`](https://github.com/Microsoft/TypeScript/commit/d0f0e35c88ae017fc4c1213eb2f83303ee22ebde) Remove old tslint comments ([#&#8203;51220](https://github.com/Microsoft/TypeScript/issues/51220))
-   [`85d405a`](https://github.com/Microsoft/TypeScript/commit/85d405a1d74c0730a9d8d6307b26e8d6f3f75421) Fixed a false positive "await has no effect on the type" diagnostic with mixed generic union ([#&#8203;50833](https://github.com/Microsoft/TypeScript/issues/50833))
-   [`1f8959f`](https://github.com/Microsoft/TypeScript/commit/1f8959f5dc04b2b2c2fc8a7dc53b6ac761e1f754) fix: avoid downleveled dynamic import closing over specifier expression ([#&#8203;49663](https://github.com/Microsoft/TypeScript/issues/49663))
-   [`11066b2`](https://github.com/Microsoft/TypeScript/commit/11066b264f5d30fb5ac1f6c2f3a155c0190e75d2) Rename internal functions to `narrowTypeBySwitchOnTypeOf` and `narrowTypeByInKeyword` ([#&#8203;51215](https://github.com/Microsoft/TypeScript/issues/51215))
-   [`4c9afe8`](https://github.com/Microsoft/TypeScript/commit/4c9afe8812fcdb4658472ccbced4a5cd4bae70ea) Update package-lock.json
-   [`f25bcb7`](https://github.com/Microsoft/TypeScript/commit/f25bcb7c27d78ce89e9c9356d27058cf86dbfb5c) fix(49196): add jsdoc snippet for interface member functions ([#&#8203;51135](https://github.com/Microsoft/TypeScript/issues/51135))
-   [`7406ee9`](https://github.com/Microsoft/TypeScript/commit/7406ee9c145cd7d6117391818d5a1eca2d66ca8f) fix(51170): Completing an unimplemented property overwrites rest of line ([#&#8203;51175](https://github.com/Microsoft/TypeScript/issues/51175))
-   [`a1d82fc`](https://github.com/Microsoft/TypeScript/commit/a1d82fc9dcced6ca6bde6e21c385d152d083679f) Remove some unnecessary code discovered by rollup ([#&#8203;51204](https://github.com/Microsoft/TypeScript/issues/51204))
-   [`0481773`](https://github.com/Microsoft/TypeScript/commit/0481773a27fc6a0132c34502fd2a3b0c73cf63a3) LEGO: Merge pull request 51200
-   [`98c19cb`](https://github.com/Microsoft/TypeScript/commit/98c19cbbbe83c2ae3c89a4e08317a4b9ccbcb206) LEGO: Merge pull request 51190
-   [`13c9b05`](https://github.com/Microsoft/TypeScript/commit/13c9b05384544262363f3fd8b942b36aeb84fc61) Update package-lock.json
-   [`673475e`](https://github.com/Microsoft/TypeScript/commit/673475e1c5e582f2fd0bf8d89e33c7708607c8d8) Update package-lock.json
-   [`f6cf510`](https://github.com/Microsoft/TypeScript/commit/f6cf51053e024714dd6b8463fe6f8e7e33461e6b) Add more tracing to node16/nodenext resolution ([#&#8203;51168](https://github.com/Microsoft/TypeScript/issues/51168))
-   [`83c5581`](https://github.com/Microsoft/TypeScript/commit/83c5581588f660247bd9648bafe67b49de060a55) Update package-lock.json
-   [`be5f0fe`](https://github.com/Microsoft/TypeScript/commit/be5f0fe5acfed5146514ebe7c1b65529def8e490) Add an extra regression test for awaited unresolvable recursive union ([#&#8203;51167](https://github.com/Microsoft/TypeScript/issues/51167))
-   [`2cb7e77`](https://github.com/Microsoft/TypeScript/commit/2cb7e779d70d57ef0d46dd3f768e646b8bbe783a) fix(50416): correctly names disabled export refactors ([#&#8203;50663](https://github.com/Microsoft/TypeScript/issues/50663)) \[ [#&#8203;50416](https://github.com/Microsoft/TypeScript/issues/50416) ]
-   [`2bcfed0`](https://github.com/Microsoft/TypeScript/commit/2bcfed01f3458996e71ce37af43e3495cb7e4950) feat(37440): Provide a quick-fix for non-exported types ([#&#8203;51038](https://github.com/Microsoft/TypeScript/issues/51038))
-   [`a24201c`](https://github.com/Microsoft/TypeScript/commit/a24201c8ef6f82b5729ab677b7a1a1d6d745fcb8) Remove VSDevMode.ps1 and createPlaygroundBuild ([#&#8203;51166](https://github.com/Microsoft/TypeScript/issues/51166))
-   [`2da62a7`](https://github.com/Microsoft/TypeScript/commit/2da62a784bbba237b8239e84c8629cfafb0f595e) fix(51112): omit parameter names that precede the type ([#&#8203;51142](https://github.com/Microsoft/TypeScript/issues/51142))
-   [`cf1b6b7`](https://github.com/Microsoft/TypeScript/commit/cf1b6b73330eab2dd484d71cbdb662a83b3c726f) feat(51163): show QF to fill in the missing properties for the mapped type. ([#&#8203;51165](https://github.com/Microsoft/TypeScript/issues/51165))
-   [`bdcc240`](https://github.com/Microsoft/TypeScript/commit/bdcc240d68245e4be865b385bd6a8fd8fa546f56) Remove bug-causing carve-out in conditional type instantiation that hopefully is no longer required ([#&#8203;51151](https://github.com/Microsoft/TypeScript/issues/51151))
-   [`37317a2`](https://github.com/Microsoft/TypeScript/commit/37317a208f34c141b64e26d0e92b3aed346e531f) Check nested weak types in intersections on target side of relation ([#&#8203;51140](https://github.com/Microsoft/TypeScript/issues/51140))
-   [`9f49f9c`](https://github.com/Microsoft/TypeScript/commit/9f49f9ccb05a7bb56b8ca84b8036a3ad4e0e7c2b) Update package-lock.json
-   [`4f54e7e`](https://github.com/Microsoft/TypeScript/commit/4f54e7e947298162d29f3104265e74dcfbc90d82) Fix isExhaustiveSwitchStatement to better handle circularities ([#&#8203;51095](https://github.com/Microsoft/TypeScript/issues/51095))
-   [`503604c`](https://github.com/Microsoft/TypeScript/commit/503604c884bd0557c851b11b699ef98cdb65b93b) Overloads shouldn't gain [@&#8203;deprecated](https://github.com/deprecated) tags of other overloads in quick info ([#&#8203;50904](https://github.com/Microsoft/TypeScript/issues/50904))
-   [`e14a229`](https://github.com/Microsoft/TypeScript/commit/e14a2298c5add93816c6f487bcfc5ac72e3a4c59) Update package-lock.json
-   [`67256e5`](https://github.com/Microsoft/TypeScript/commit/67256e50c41aa9178a60c52de8416477f070b190) Remove unused declarations array in extractSymbol's TargetRange ([#&#8203;51091](https://github.com/Microsoft/TypeScript/issues/51091))
-   [`9c87ded`](https://github.com/Microsoft/TypeScript/commit/9c87ded2b3fc4ba4a9a7656e9be39d5e404e6ab6) fix(51100): ensure tsserver shuts down when parent process is killed ([#&#8203;51107](https://github.com/Microsoft/TypeScript/issues/51107))
-   [`c01ae01`](https://github.com/Microsoft/TypeScript/commit/c01ae01fac37268bac3362fb6e6d26db730f7ed5) Fix nightly publish oops in Gulpfile ([#&#8203;51131](https://github.com/Microsoft/TypeScript/issues/51131))
-   [`a7d10f1`](https://github.com/Microsoft/TypeScript/commit/a7d10f15bbd28166b869ae00482214e360891613) Update package-lock.json
-   [`d0bfd8c`](https://github.com/Microsoft/TypeScript/commit/d0bfd8caed521bfd24fc44960d9936a891744bb7) fix(51072): ts.preProcessFile finds import in template string after conditional expression with template strings ([#&#8203;51082](https://github.com/Microsoft/TypeScript/issues/51082))
-   [`ad56b5c`](https://github.com/Microsoft/TypeScript/commit/ad56b5ca56b763ab377e07121ecfebb457a2e810) Convert scripts/Gulpfile to checked mjs/cjs so they can run without compilation ([#&#8203;50988](https://github.com/Microsoft/TypeScript/issues/50988))
-   [`dbeae5d`](https://github.com/Microsoft/TypeScript/commit/dbeae5d943c784661862c52b8e215a2907c31a33) fix(51017): Make lineText in the references response opt-out ([#&#8203;51081](https://github.com/Microsoft/TypeScript/issues/51081))
-   [`d06a592`](https://github.com/Microsoft/TypeScript/commit/d06a592d02955822a7407b70969fb7a82bc17d59) Properly defer resolution of mapped types with generic `as` clauses ([#&#8203;51050](https://github.com/Microsoft/TypeScript/issues/51050))
-   [`42b1049`](https://github.com/Microsoft/TypeScript/commit/42b1049aee8c655631cb4f0065de86ec1023d20a) Update package-lock.json
-   [`5f3e6cc`](https://github.com/Microsoft/TypeScript/commit/5f3e6cc4980d26af5d8a8f463e59b2c3338165c6) Plugin probe location is higher priority than peer node_modules ([#&#8203;51079](https://github.com/Microsoft/TypeScript/issues/51079)) \[ [#&#8203;34616](https://github.com/Microsoft/TypeScript/issues/34616) ]
-   [`2648f6a`](https://github.com/Microsoft/TypeScript/commit/2648f6ab09e3176c7da2c07c54066d3a3433a298) Plugins in project were adding up after every config file reload ([#&#8203;51087](https://github.com/Microsoft/TypeScript/issues/51087))
-   [`c18791c`](https://github.com/Microsoft/TypeScript/commit/c18791ccf165672df3b55f5bdd4a8655f33be26c) Fix incorrect options type to WatchOptions ([#&#8203;51064](https://github.com/Microsoft/TypeScript/issues/51064))
-   [`b0795e9`](https://github.com/Microsoft/TypeScript/commit/b0795e9c94757a8ee78077d160cde8819a9801ea) Update package-lock.json
-   [`43c6fd4`](https://github.com/Microsoft/TypeScript/commit/43c6fd4c09464204bc6a6e1c6c1d32fa12270414) Covert some of the config testing to baselines for easy validation ([#&#8203;51063](https://github.com/Microsoft/TypeScript/issues/51063))
-   [`fc5e72b`](https://github.com/Microsoft/TypeScript/commit/fc5e72b92cb8ea13c5e0f2cfc35d8b2cbfd1fe36) Remove unused defaultWatchFileKind method since useFsEvents is default for tsserver and tsc ([#&#8203;51044](https://github.com/Microsoft/TypeScript/issues/51044))
-   [`8af9a93`](https://github.com/Microsoft/TypeScript/commit/8af9a936b5240398370887c22cacaff65fee707b) Use typescript.d.ts in APISample tests ([#&#8203;51061](https://github.com/Microsoft/TypeScript/issues/51061))
-   [`4953316`](https://github.com/Microsoft/TypeScript/commit/49533168dbb4e19f243b9dbdfd6a3aac69f5b3dd) Remove configureLanguageServiceBuild, instrumenter ([#&#8203;51048](https://github.com/Microsoft/TypeScript/issues/51048))
-   [`9dfffd0`](https://github.com/Microsoft/TypeScript/commit/9dfffd0fbb406d7f2e5e2ca85768624ca388a7bf) Update GitHub Actions ([#&#8203;51045](https://github.com/Microsoft/TypeScript/issues/51045))
-   [`4635a5c`](https://github.com/Microsoft/TypeScript/commit/4635a5cef9aefa9aa847ef7ce2e6767ddf4f54c2) Update package-lock.json
-   [`33a34e5`](https://github.com/Microsoft/TypeScript/commit/33a34e5b96bfe086266f4765ab9789a2a02507f9) Adding a JSDoc comment to the es5 type declarations to describe the functionality of Date.now() ([#&#8203;50630](https://github.com/Microsoft/TypeScript/issues/50630))
-   [`299745c`](https://github.com/Microsoft/TypeScript/commit/299745cb217c2fc061f75b3735f8420d78b8360a) Fix crash in goto-def on `@override` ([#&#8203;51016](https://github.com/Microsoft/TypeScript/issues/51016))
-   [`7dcf11f`](https://github.com/Microsoft/TypeScript/commit/7dcf11f13985be927886ebea353d282a9b3418e0) fix(50750): Object type literal with string literal property in contextual typing position causes language service error on all literal type references ([#&#8203;50757](https://github.com/Microsoft/TypeScript/issues/50757))
-   [`5cd49f6`](https://github.com/Microsoft/TypeScript/commit/5cd49f6cbcd2effe9d425dee3a39cb49209bb656) Update package-lock.json
-   [`8a1b858`](https://github.com/Microsoft/TypeScript/commit/8a1b85880f89c9cff606c5844e8883e5f483c7db) Update package-lock.json
-   [`96894db`](https://github.com/Microsoft/TypeScript/commit/96894db6cb5b7af6857b4d0c7f70f7d8ac782d51) Include type parameter defaults in contextual typing ([#&#8203;50994](https://github.com/Microsoft/TypeScript/issues/50994)) \[ [#&#8203;51002](https://github.com/Microsoft/TypeScript/issues/51002) ]
-   [`0d0a793`](https://github.com/Microsoft/TypeScript/commit/0d0a79371471d627ae298a145f8009b05cbccb72) Allow Unicode extended escapes in ES5 and earlier ([#&#8203;50918](https://github.com/Microsoft/TypeScript/issues/50918))
-   [`58bae8d`](https://github.com/Microsoft/TypeScript/commit/58bae8db69b275a3efa57b14b486778c55185552) Update package-lock.json
-   [`0ce72ef`](https://github.com/Microsoft/TypeScript/commit/0ce72ef6c8b39cd2d07e5b0eb3a0c144a7783ad2) Add option to OrganizeImports for removal only ([#&#8203;50931](https://github.com/Microsoft/TypeScript/issues/50931))
-   [`42f9143`](https://github.com/Microsoft/TypeScript/commit/42f9143e114c5c07f40df83ed07ffeb3cbaf2101) feat: codefix for `for await of` ([#&#8203;50623](https://github.com/Microsoft/TypeScript/issues/50623))
-   [`ecf50e8`](https://github.com/Microsoft/TypeScript/commit/ecf50e81a7a9cccd9bf5ea7598764082981faab0) Properly compute `SymbolFlags.Optional` for intersected properties ([#&#8203;50958](https://github.com/Microsoft/TypeScript/issues/50958))
-   [`d1586de`](https://github.com/Microsoft/TypeScript/commit/d1586de0434567b998876929eb8229235b85b350) Fully resolve aliases when checking symbol flags ([#&#8203;50853](https://github.com/Microsoft/TypeScript/issues/50853))
-   [`45148dd`](https://github.com/Microsoft/TypeScript/commit/45148dd715a7c3776840778b4df41e7e0bd0bf12) Update LKG to 4.8.4 ([#&#8203;50987](https://github.com/Microsoft/TypeScript/issues/50987))
-   [`9a83f25`](https://github.com/Microsoft/TypeScript/commit/9a83f2551ded0d88a0ba0ec9af260f83eb3568cd) Update package-lock.json
-   [`865848f`](https://github.com/Microsoft/TypeScript/commit/865848fcfb9e6ce7dd64be563fc09f83d4bc9df5) Fix `<=` and `>` comparisons when compared against prerelease versions ([#&#8203;50915](https://github.com/Microsoft/TypeScript/issues/50915))
-   [`fbfe934`](https://github.com/Microsoft/TypeScript/commit/fbfe9340a90777dee03b30f736fab44056123be0) Fix comparability between type parameters related by a union constraint ([#&#8203;50978](https://github.com/Microsoft/TypeScript/issues/50978))
-   [`b09e93d`](https://github.com/Microsoft/TypeScript/commit/b09e93d3f6d3e999df001b53984954974c25b81f) Merge pull request [#&#8203;50041](https://github.com/Microsoft/TypeScript/issues/50041) from microsoft/fix/47969
-   [`0ac12bb`](https://github.com/Microsoft/TypeScript/commit/0ac12bbe7a410238ca992a42f41816a97f6906f4) Update package-lock.json
-   [`8192d55`](https://github.com/Microsoft/TypeScript/commit/8192d550496d884263e292488e325ae96893dc78) Pick correct compilerOptions when checking if we can share emitSignatures ([#&#8203;50910](https://github.com/Microsoft/TypeScript/issues/50910)) \[ [#&#8203;50902](https://github.com/Microsoft/TypeScript/issues/50902) ]
-   [`16faef1`](https://github.com/Microsoft/TypeScript/commit/16faef1d8d522b66b6c672bdd15b4026e2018a62) During uptodate ness check with buildInfo, check if there are errors explicitly with noEmit ([#&#8203;50974](https://github.com/Microsoft/TypeScript/issues/50974)) \[ [#&#8203;50959](https://github.com/Microsoft/TypeScript/issues/50959) ]
-   [`63791f5`](https://github.com/Microsoft/TypeScript/commit/63791f52d4e7a3bf461b974e94abd8cbb6b546c5) Update package-lock.json
-   [`09368bc`](https://github.com/Microsoft/TypeScript/commit/09368bcbaebd157d1e66859ab6f5b30c2fd6eaff) Handle if project for open file will get recollected because of pending cleanup from closed script info ([#&#8203;50908](https://github.com/Microsoft/TypeScript/issues/50908)) \[ [#&#8203;50868](https://github.com/Microsoft/TypeScript/issues/50868) ]
-   [`c81bf4d`](https://github.com/Microsoft/TypeScript/commit/c81bf4d8b0c12410a082d6598fcc24cc721b6e9e) fix(49594): Typescript 4.7.3 bracketed class property compilation error strictPropertyInitialization:true ([#&#8203;49619](https://github.com/Microsoft/TypeScript/issues/49619))
-   [`bc9cbbe`](https://github.com/Microsoft/TypeScript/commit/bc9cbbef421ae907f7dfd5a84ca69c4f68a8935b) Merge pull request [#&#8203;49912](https://github.com/Microsoft/TypeScript/issues/49912) from microsoft/fix/47508
-   [`5a10f46`](https://github.com/Microsoft/TypeScript/commit/5a10f46c0028790120cb85c826efa4248707a964) Update package-lock.json
-   [`8e71f42`](https://github.com/Microsoft/TypeScript/commit/8e71f429c811ac7811533d7b0e02c32bad5a1b47) Fixing pr comments
-   [`c100c64`](https://github.com/Microsoft/TypeScript/commit/c100c6488db0482dcc1455290f456dece91cac0a) Update package-lock.json
-   [`2a91107`](https://github.com/Microsoft/TypeScript/commit/2a91107f7548eeb5e32673e76277d27264ea88e2) Update package-lock.json
-   [`4ab9e76`](https://github.com/Microsoft/TypeScript/commit/4ab9e76fb748b08712f9d0017dd8f0ba74d1859f) Use paths in package.json 'files' array that work with npm 6 and later. ([#&#8203;50930](https://github.com/Microsoft/TypeScript/issues/50930))
-   [`549b542`](https://github.com/Microsoft/TypeScript/commit/549b5429d4837344e8c99657109bb6538fd2dbb5) Use paths in package.json 'files' array that work with npm 6 and later.
-   [`7f37d25`](https://github.com/Microsoft/TypeScript/commit/7f37d251fc69da34659e4c60792177e1e9a8e7a6) Update version to 4.9.1-beta and LKG.
-   [`f16ca7d`](https://github.com/Microsoft/TypeScript/commit/f16ca7dd364e57ee7ce337f987b20dbc1e34941f) Remove 'async' dependency, used only in errorCheck.ts, modernize file ([#&#8203;50667](https://github.com/Microsoft/TypeScript/issues/50667))
-   [`c6bef3f`](https://github.com/Microsoft/TypeScript/commit/c6bef3f02874bddf6df120aa4f0d130c58478468) LEGO: Merge pull request 50921
-   [`6753027`](https://github.com/Microsoft/TypeScript/commit/675302730b8ca525d47c910bf2d3174bd3b66a1b) Update package-lock.json
-   [`9740bcc`](https://github.com/Microsoft/TypeScript/commit/9740bcc53418e8792a4dbb978059ff5a02b55c91) Pluralized `hasInvalidatedResolution` -> `hasInvalidatedResolutions` ([#&#8203;50912](https://github.com/Microsoft/TypeScript/issues/50912))
-   [`84c29cd`](https://github.com/Microsoft/TypeScript/commit/84c29cd576fd1facb9b3a353d5342df04acdb184) 🤖 Pick PR [#&#8203;50912](https://github.com/Microsoft/TypeScript/issues/50912) (Pluralized \`hasInvalidatedResolutio...) into release-4.9 ([#&#8203;50913](https://github.com/Microsoft/TypeScript/issues/50913))
-   [`a26f634`](https://github.com/Microsoft/TypeScript/commit/a26f63424de249bb106804dfc9a024bb525de93e) Merge remote-tracking branch 'origin/main' into release-4.9
-   [`a455955`](https://github.com/Microsoft/TypeScript/commit/a455955aac85ecc5b2182fe50b83670188955feb) Make hasInvalidatedResolution non internal for program and add it watchApi ([#&#8203;50776](https://github.com/Microsoft/TypeScript/issues/50776)) \[ [#&#8203;48057](https://github.com/Microsoft/TypeScript/issues/48057) ]
-   [`645d1cd`](https://github.com/Microsoft/TypeScript/commit/645d1cd7c1ee1d65a87b2183b173611467256a09) Fix assert in addIndirectUser in FAR ([#&#8203;50905](https://github.com/Microsoft/TypeScript/issues/50905))
-   [`bbec17d`](https://github.com/Microsoft/TypeScript/commit/bbec17d9003246fa00d6bf676bb4ce7c54ff2be4) LEGO: Merge pull request 50900
-   [`a9ecc67`](https://github.com/Microsoft/TypeScript/commit/a9ecc675d636c3bbca697bc4881b019e8645a7a6) Update package-lock.json
-   [`221cf55`](https://github.com/Microsoft/TypeScript/commit/221cf55a21e448bd3fe2cf26a754c9c0dda3dca3) package.json `exports` should have priority over `typesVersions` ([#&#8203;50890](https://github.com/Microsoft/TypeScript/issues/50890))
-   [`acb8977`](https://github.com/Microsoft/TypeScript/commit/acb89771901f8c81c6046fa7c16361a83388ddab) Remove .github/tsc.json ([#&#8203;50664](https://github.com/Microsoft/TypeScript/issues/50664))
-   [`7a3de81`](https://github.com/Microsoft/TypeScript/commit/7a3de819bfb93fb27ef7ea8305d2df069866c380) fix(49993): skip the quick fix for an expression with an enum type ([#&#8203;50625](https://github.com/Microsoft/TypeScript/issues/50625))
-   [`2644f28`](https://github.com/Microsoft/TypeScript/commit/2644f2867734d77a3a3939c55d5cc0a5004df0ed) fix(49200): skip duplicated method declarations ([#&#8203;50609](https://github.com/Microsoft/TypeScript/issues/50609))
-   [`98652a3`](https://github.com/Microsoft/TypeScript/commit/98652a349a67be718e8e8b5fcf590972eb62a104) Bump version to 4.9.0-beta and LKG.
-   [`4d91204`](https://github.com/Microsoft/TypeScript/commit/4d91204c9d9f27756785f62fade44d93824d47f4) fix(37030): Expand Selection in function and arrow function skips body block ([#&#8203;50711](https://github.com/Microsoft/TypeScript/issues/50711))
-   [`e2dd508`](https://github.com/Microsoft/TypeScript/commit/e2dd5084f75ac37a78102d212b67d36595596137) DOM update 2022/09/21 ([#&#8203;50884](https://github.com/Microsoft/TypeScript/issues/50884))
-   [`1d9ab83`](https://github.com/Microsoft/TypeScript/commit/1d9ab83914a551936ce5ef80340ee65cfd1422ba) fix(50866): emit modifiers from export declarations ([#&#8203;50874](https://github.com/Microsoft/TypeScript/issues/50874))
-   [`92a1b12`](https://github.com/Microsoft/TypeScript/commit/92a1b124c178e1ff4871b29cb9abc00307e21742) LEGO: Merge pull request 50877
-   [`e383db6`](https://github.com/Microsoft/TypeScript/commit/e383db692eb44561333c1bbe353788b337aebc99) Fix debug.ts \__debugKind check ([#&#8203;50871](https://github.com/Microsoft/TypeScript/issues/50871))
-   [`01054e0`](https://github.com/Microsoft/TypeScript/commit/01054e05ab7638e96515619c4ce62200fdf4e0fd) Consistently add undefined/missing to optional tuple element types ([#&#8203;50831](https://github.com/Microsoft/TypeScript/issues/50831))
-   [`d90795e`](https://github.com/Microsoft/TypeScript/commit/d90795e799ca8e41aabd6d0852abb585138200ef) Improve escape sequence handling in private names ([#&#8203;50856](https://github.com/Microsoft/TypeScript/issues/50856))
-   [`938a69a`](https://github.com/Microsoft/TypeScript/commit/938a69a526166ca4e7880fa140fba432936f0fe3) Fix import statement completions followed by interface declaration ([#&#8203;50350](https://github.com/Microsoft/TypeScript/issues/50350))
-   [`e002159`](https://github.com/Microsoft/TypeScript/commit/e002159ad133a024bae48a2e190e54ad93f6b52d) feat(49962): Disallow comparison against NaN  ([#&#8203;50626](https://github.com/Microsoft/TypeScript/issues/50626))
-   [`80ae43d`](https://github.com/Microsoft/TypeScript/commit/80ae43d2399503a04651e3705823137d36148b00) Fixing spaces
-   [`abc58bd`](https://github.com/Microsoft/TypeScript/commit/abc58bdabcf536bd5204fbc84fb7f45d75f1a9ad) Fixing baseline errors
-   [`305f4bd`](https://github.com/Microsoft/TypeScript/commit/305f4bd420bf9edc0239fd3a740aa83fbdeb9ba2) Merge branch 'main' into fix/47969
-   [`23746af`](https://github.com/Microsoft/TypeScript/commit/23746af766b53fcc3afecfa16478809a5a36628a) fix(50591): RangeError: Maximum call stack size exceeded ([#&#8203;50594](https://github.com/Microsoft/TypeScript/issues/50594))
-   [`168186f`](https://github.com/Microsoft/TypeScript/commit/168186f93d23ae59dbea3fea2adba453527343fd) Allow a union property of a private/protected member and an intersection property including that same member ([#&#8203;50328](https://github.com/Microsoft/TypeScript/issues/50328))
-   [`812ebcf`](https://github.com/Microsoft/TypeScript/commit/812ebcf6e3aebfa72b976a6ae4d65929759a2867) Update package-lock.json
-   [`16156b1`](https://github.com/Microsoft/TypeScript/commit/16156b1baf26a39ce428423f7106f3ef2b4e98bb) Add rules from eslint's recommended set that triggered good lints ([#&#8203;50422](https://github.com/Microsoft/TypeScript/issues/50422))
-   [`a11c416`](https://github.com/Microsoft/TypeScript/commit/a11c41621bbbab100a391dd348651c6661549663) Improve checking of `in` operator ([#&#8203;50666](https://github.com/Microsoft/TypeScript/issues/50666))
-   [`67f2b62`](https://github.com/Microsoft/TypeScript/commit/67f2b62ed2bd1de0299781ba659fa638346bcecf) Gabritto/jsemitfixsilly ([#&#8203;50849](https://github.com/Microsoft/TypeScript/issues/50849))
-   [`3014dec`](https://github.com/Microsoft/TypeScript/commit/3014dec8878a9ff8d86186a6ac3fd9fad4f3b739) Don't elide imports when transforming JS files ([#&#8203;50404](https://github.com/Microsoft/TypeScript/issues/50404))
-   [`57c7aa7`](https://github.com/Microsoft/TypeScript/commit/57c7aa755ca3028ff13eb6a37d91775a6fac71e3) LEGO: Merge pull request 50842
-   [`48a8e89`](https://github.com/Microsoft/TypeScript/commit/48a8e8953a1e609970dc85e08f99ac499bfe8356) Improve check of whether type query node possibly contains reference to type parameter ([#&#8203;50070](https://github.com/Microsoft/TypeScript/issues/50070))
-   [`af9ced1`](https://github.com/Microsoft/TypeScript/commit/af9ced11f50c8ac15079d2f88f8961f1e5b62f7f) LEGO: Merge pull request 50825
-   [`a8e13f7`](https://github.com/Microsoft/TypeScript/commit/a8e13f7340c5229426072d443fa511bba82a0054) Fixed an issue with destructured bindings from a generic union constraint not being narrowed correctly ([#&#8203;50221](https://github.com/Microsoft/TypeScript/issues/50221))
-   [`08af0b6`](https://github.com/Microsoft/TypeScript/commit/08af0b6bf0041fef52ca8c1b69d6d4a3db439196) Update package-lock.json
-   [`0df46e8`](https://github.com/Microsoft/TypeScript/commit/0df46e873322b8eeb271a442eaf034d91ae68770) Fix test around RegExp match vs. exec results ([#&#8203;50813](https://github.com/Microsoft/TypeScript/issues/50813))
-   [`906510e`](https://github.com/Microsoft/TypeScript/commit/906510e0f30590a4c8fdc892905ccb8dbe512e3d) Fixes for pr
-   [`2970c5d`](https://github.com/Microsoft/TypeScript/commit/2970c5d1671b2376711cd55594c4597d6da7d8c3) make `RegExpExecArray` always include index 0 ([#&#8203;50713](https://github.com/Microsoft/TypeScript/issues/50713))
-   [`0507192`](https://github.com/Microsoft/TypeScript/commit/05071920a03f8ea530fe01f79f2537c999ec8b02) Accepting baselines
-   [`29e50b3`](https://github.com/Microsoft/TypeScript/commit/29e50b314900d22b08f6472918f59ae2b40aba08) Rewording documentation
-   [`01cae69`](https://github.com/Microsoft/TypeScript/commit/01cae69e3403a831bc5c752b95c8b7547dd95821) fix(50796): omit questionToken in object literal method completions ([#&#8203;50802](https://github.com/Microsoft/TypeScript/issues/50802))
-   [`3b84f76`](https://github.com/Microsoft/TypeScript/commit/3b84f76fb23bd39d14c7243e5cd495fd207916c0) Fix crash caused by incorrect bounds check (regression in 4.8) ([#&#8203;50797](https://github.com/Microsoft/TypeScript/issues/50797))
-   [`7e51306`](https://github.com/Microsoft/TypeScript/commit/7e51306d30b72ce474054c3f3047f57d90dca41a) Update package-lock.json
-   [`8b35c13`](https://github.com/Microsoft/TypeScript/commit/8b35c1300e14ebc026b4f1621db8f6f1bba30833) The error "Object is possibly null or undefined" is ambiguous. ([#&#8203;49797](https://github.com/Microsoft/TypeScript/issues/49797))
-   [`a3f51b3`](https://github.com/Microsoft/TypeScript/commit/a3f51b3b8278b7dc5f59d83f35458338f57c81c7) Update user baselines +cc [@&#8203;sandersn](https://github.com/sandersn) ([#&#8203;43554](https://github.com/Microsoft/TypeScript/issues/43554))
-   [`ba10a0d`](https://github.com/Microsoft/TypeScript/commit/ba10a0d7c06df259e620645a8d6fd9a5262d8b5d) Removing duplicated code
-   [`ec6ae1c`](https://github.com/Microsoft/TypeScript/commit/ec6ae1c4d0f48f15cd01b1502d0b2e5ac387dcf5) Partially revert [#&#8203;41044](https://github.com/Microsoft/TypeScript/issues/41044), restoring parameter destructurings in d.ts files ([#&#8203;50779](https://github.com/Microsoft/TypeScript/issues/50779))
-   [`28232ca`](https://github.com/Microsoft/TypeScript/commit/28232ca4b8833957cdf8d592f085fb80d97ef604) LEGO: Merge pull request 50783
-   [`49cfa1d`](https://github.com/Microsoft/TypeScript/commit/49cfa1db17b593191601736a11cbf165d42510a0) Update package-lock.json
-   [`4110b80`](https://github.com/Microsoft/TypeScript/commit/4110b80fbb24f2ac6dd284ef3511ca69ac6db517) Fix equality narrowing and comparable relation for intersections with {} ([#&#8203;50735](https://github.com/Microsoft/TypeScript/issues/50735))
-   [`b23f1d6`](https://github.com/Microsoft/TypeScript/commit/b23f1d6b59beabde1072d14b7fb65781ce209c15) LEGO: Merge pull request 50771
-   [`618fb2d`](https://github.com/Microsoft/TypeScript/commit/618fb2d8b92357d564ddb8596296ecaba5468002) Update package-lock.json
-   [`08b91f6`](https://github.com/Microsoft/TypeScript/commit/08b91f6b827e9ee98407c0eb969579ab77fa9f0c) fix(50717): tsc crashes when it sees a JSDoc tag inside an [@&#8203;override](https://github.com/override) annotation ([#&#8203;50724](https://github.com/Microsoft/TypeScript/issues/50724))
-   [`60963d7`](https://github.com/Microsoft/TypeScript/commit/60963d7216266bca6ef3236f43913de703fe5c7a) Discriminant of type `never` should never be matched ([#&#8203;50755](https://github.com/Microsoft/TypeScript/issues/50755))
-   [`e37ea53`](https://github.com/Microsoft/TypeScript/commit/e37ea53715a725dd13699dc1be5190c6ebd0d8f8) Update package-lock.json
-   [`a88c366`](https://github.com/Microsoft/TypeScript/commit/a88c36655b575d3039f187e64016b971efc0f173) Fix test baselining for tsserver host timeouts ([#&#8203;50748](https://github.com/Microsoft/TypeScript/issues/50748))
-   [`6d38487`](https://github.com/Microsoft/TypeScript/commit/6d384876e5adeffd6e04cf4e6dd7ea5fc0dd0584) Fix workflow typo ([#&#8203;50746](https://github.com/Microsoft/TypeScript/issues/50746))
-   [`6b890f9`](https://github.com/Microsoft/TypeScript/commit/6b890f93c491d3496dfd7909592c1df8a771fcd0) Handle more places where package direcroy is converted to canonical file path ([#&#8203;50740](https://github.com/Microsoft/TypeScript/issues/50740))
-   [`f5f2923`](https://github.com/Microsoft/TypeScript/commit/f5f2923c7d0f0963a78b9c5f233b635d4e78ae91) Revert removal of nonInferrableAnyType ([#&#8203;50691](https://github.com/Microsoft/TypeScript/issues/50691))
-   [`7120b52`](https://github.com/Microsoft/TypeScript/commit/7120b520cfe7b92d2b4bbfd679f1f5bd0c559c2c) Update twoslash workflow ([#&#8203;50738](https://github.com/Microsoft/TypeScript/issues/50738))
-   [`68d526c`](https://github.com/Microsoft/TypeScript/commit/68d526c200a0a5c51024586890b2473c9819c6ea) Don't run linter after tests runs ([#&#8203;50597](https://github.com/Microsoft/TypeScript/issues/50597))
-   [`8e5e2e0`](https://github.com/Microsoft/TypeScript/commit/8e5e2e08ead119910d6eb177eab9beb84e3ab311) Fix backticks in our JSDoc comments ([#&#8203;50737](https://github.com/Microsoft/TypeScript/issues/50737))
-   [`a4cabe7`](https://github.com/Microsoft/TypeScript/commit/a4cabe725b413f154f738b48c1fe2f053cff7d26) Support for auto-accessor fields from the Stage 3 Decorators proposal ([#&#8203;49705](https://github.com/Microsoft/TypeScript/issues/49705))
-   [`7737473`](https://github.com/Microsoft/TypeScript/commit/77374732df82c9d5c1319677dc595868bbc648b5) Update package-lock.json
-   [`12ab0fe`](https://github.com/Microsoft/TypeScript/commit/12ab0fea9f45c48ea644c8273bedde235c8bcc61) Update package-lock.json
-   [`eb40134`](https://github.com/Microsoft/TypeScript/commit/eb40134373cc524bd15432e15490d4e369754c50) Don't leave space for property access on non-integer literals ([#&#8203;50703](https://github.com/Microsoft/TypeScript/issues/50703))
-   [`a70bb9d`](https://github.com/Microsoft/TypeScript/commit/a70bb9d3ff102e044e83d2db43e585105e9a1761) Preserve special intersections in mapped types ([#&#8203;50704](https://github.com/Microsoft/TypeScript/issues/50704))
-   [`1a1c271`](https://github.com/Microsoft/TypeScript/commit/1a1c27167536e005a4d241ef84c43c0c0ca0aaf9) Don't remove space before dot if in property access on numeric literal ([#&#8203;50695](https://github.com/Microsoft/TypeScript/issues/50695))
-   [`7c918fb`](https://github.com/Microsoft/TypeScript/commit/7c918fb76682e79e8fd460cf1c2da9f2f22c91a3) Baseline host state when baselining tsserver tests ([#&#8203;50678](https://github.com/Microsoft/TypeScript/issues/50678))
-   [`2f1ba45`](https://github.com/Microsoft/TypeScript/commit/2f1ba45cbaca5e95959f9fd43c42edd64bc5638c) Update LKG and devDep of typescript to v4.8.3 ([#&#8203;50689](https://github.com/Microsoft/TypeScript/issues/50689))
-   [`be4e9ba`](https://github.com/Microsoft/TypeScript/commit/be4e9bac8ff66174d4e856dae06f69aa4ef7e479) Update package-lock.json
-   [`f46a680`](https://github.com/Microsoft/TypeScript/commit/f46a680863d7ecf7b7aa46b5e056acfe702b78bb) Remove error message in node16 ([#&#8203;50673](https://github.com/Microsoft/TypeScript/issues/50673))
-   [`ab831d0`](https://github.com/Microsoft/TypeScript/commit/ab831d018030304b886590fc4253f9dab593ddb0) Ignore `--help` and `-?` in `tsc init` generated `compilerOptions` ([#&#8203;50628](https://github.com/Microsoft/TypeScript/issues/50628))
-   [`bb6f36f`](https://github.com/Microsoft/TypeScript/commit/bb6f36f7c80c290b98759823445dae73ebfd3eb2) Forward intersection state flag to conditional type target check ([#&#8203;50620](https://github.com/Microsoft/TypeScript/issues/50620))
-   [`b58721f`](https://github.com/Microsoft/TypeScript/commit/b58721fe15a9d58aa9c2b53b6e6fdb7966f56d2c) Update package-lock.json
-   [`3c3820b`](https://github.com/Microsoft/TypeScript/commit/3c3820b1a4033de90a6f9369b3e714ba58231e99) Simplify CI detection ([#&#8203;50661](https://github.com/Microsoft/TypeScript/issues/50661))
-   [`9ac1fce`](https://github.com/Microsoft/TypeScript/commit/9ac1fce1175964f71117f6574d96eda127282bf4) Fix eslint not looking at certain scripts, fix lints ([#&#8203;50660](https://github.com/Microsoft/TypeScript/issues/50660))
-   [`fd05c0c`](https://github.com/Microsoft/TypeScript/commit/fd05c0cc6da676c5b9183ad2a7ced7ce363b855a) Make useFsEvents as default strategy for the watching ([#&#8203;50366](https://github.com/Microsoft/TypeScript/issues/50366))
-   [`5c2f770`](https://github.com/Microsoft/TypeScript/commit/5c2f770d9714276567e6ef9ec805368756539725) Remove unused cancellation from build ([#&#8203;50658](https://github.com/Microsoft/TypeScript/issues/50658))
-   [`66fbf05`](https://github.com/Microsoft/TypeScript/commit/66fbf058ece7882f2a964aeeda81bc352e4a6329) Update package-lock.json
-   [`7910c50`](https://github.com/Microsoft/TypeScript/commit/7910c509c4545517489d6264571bb6c05248fb4a) Update package-lock.json
-   [`fd3a84c`](https://github.com/Microsoft/TypeScript/commit/fd3a84c3f0c80cb201c47399a055625f919a9b91) Report every instance of TS1208 ([#&#8203;50101](https://github.com/Microsoft/TypeScript/issues/50101))
-   [`62f980a`](https://github.com/Microsoft/TypeScript/commit/62f980aff82ac8b5939bc9b65cf6e55d122b42d9) Check if its same buildinfo only for directly referenced projects and not recursively ([#&#8203;50617](https://github.com/Microsoft/TypeScript/issues/50617)) \[ [#&#8203;50545](https://github.com/Microsoft/TypeScript/issues/50545) ]
-   [`856c7c5`](https://github.com/Microsoft/TypeScript/commit/856c7c5fdd25833dbb0e1e67071200cd706eae4f) Allow `{}` to narrow in same special cases as `unknown` ([#&#8203;50601](https://github.com/Microsoft/TypeScript/issues/50601))
-   [`854d448`](https://github.com/Microsoft/TypeScript/commit/854d448e5ccf542a05d0b5dcb97e1b925905e258) `in` operator shouldn't narrow `{}` originating in `unknown` ([#&#8203;50610](https://github.com/Microsoft/TypeScript/issues/50610))
-   [`549e61d`](https://github.com/Microsoft/TypeScript/commit/549e61d0af1ba885be29d69f341e7d3a00686071) Update package-lock.json
-   [`bcf9949`](https://github.com/Microsoft/TypeScript/commit/bcf994996ea0ddd8ca7daadd6b5fbc712eb5ce6b) fix(50079): show deprecated on JSX attributes ([#&#8203;50084](https://github.com/Microsoft/TypeScript/issues/50084))
-   [`5df09a5`](https://github.com/Microsoft/TypeScript/commit/5df09a514c99010d3126d8a9f11aa00ecbd0bd21) Use bidirectional comparability in narrowing ([#&#8203;50592](https://github.com/Microsoft/TypeScript/issues/50592))
-   [`891cdc5`](https://github.com/Microsoft/TypeScript/commit/891cdc58aa4005d7197e76ec0a48afcbc3b44ac3) Remove unused baselines ([#&#8203;50593](https://github.com/Microsoft/TypeScript/issues/50593))
-   [`6db2c88`](https://github.com/Microsoft/TypeScript/commit/6db2c882f389c95c526df0e890354205b5696a7d) {} & null and {} & undefined should always be never  ([#&#8203;50553](https://github.com/Microsoft/TypeScript/issues/50553))
-   [`238c341`](https://github.com/Microsoft/TypeScript/commit/238c341701439a95d5eb71a4cf421c0574d0ee47) Defer distributing index over generic object types ([#&#8203;50540](https://github.com/Microsoft/TypeScript/issues/50540))
-   [`2983092`](https://github.com/Microsoft/TypeScript/commit/298309271bc526b9753c10c1c916bfe9d5c89a8b) Do not canonicalize the file names when getting absolute paths during nodenext resolution ([#&#8203;50557](https://github.com/Microsoft/TypeScript/issues/50557)) \[ [#&#8203;50544](https://github.com/Microsoft/TypeScript/issues/50544) ]
-   [`dcade77`](https://github.com/Microsoft/TypeScript/commit/dcade7732c142abba88eecae78c115fa37b95e01) Update package-lock.json
-   [`a9797d2`](https://github.com/Microsoft/TypeScript/commit/a9797d218d34fefc61b823d0e1dd24f6eb5363c8) fix(50340): typeof ... === "undefined" check on discriminated union of undefined and object type doesn't narrow correctly ([#&#8203;50344](https://github.com/Microsoft/TypeScript/issues/50344))
-   [`43f8ae6`](https://github.com/Microsoft/TypeScript/commit/43f8ae6df4ffefb7e4795808b94bcfbf74628682) Only normalize intersections that include {} ([#&#8203;50535](https://github.com/Microsoft/TypeScript/issues/50535))
-   [`d293e72`](https://github.com/Microsoft/TypeScript/commit/d293e723a20cdba258238397097e9a4e409bc41f) Rename API to importPlugin ([#&#8203;50554](https://github.com/Microsoft/TypeScript/issues/50554))
-   [`cd312d3`](https://github.com/Microsoft/TypeScript/commit/cd312d3076c054cdf9ed6f33c2d3e3995bca92eb) Managing control flow
-   [`19defbf`](https://github.com/Microsoft/TypeScript/commit/19defbfe576f3f2da32b5372274e4664b66ec00d) Update package-lock.json
-   [`f071d30`](https://github.com/Microsoft/TypeScript/commit/f071d303c182c2a776da1471a3ec9ef05297a9d8) Move contributing related info out of README to CONTRIBUTING ([#&#8203;50543](https://github.com/Microsoft/TypeScript/issues/50543))
-   [`488d0ee`](https://github.com/Microsoft/TypeScript/commit/488d0eebd0556fcc6e5f4cfc69c2ef7e5c2708ed) Retain name and propertyName in declaration emit copies of binding patterns if property name is a keyword ([#&#8203;50537](https://github.com/Microsoft/TypeScript/issues/50537))
-   [`8b482b5`](https://github.com/Microsoft/TypeScript/commit/8b482b513d87c6fcda8ece18b99f8a01cff5c605) Update package-lock.json
-   [`c89f355`](https://github.com/Microsoft/TypeScript/commit/c89f355a41b18c96eccb67dade04fce8c330068b) Remove redundant pretest script ([#&#8203;50518](https://github.com/Microsoft/TypeScript/issues/50518))
-   [`6d170b4`](https://github.com/Microsoft/TypeScript/commit/6d170b490d5ff5f881f6cbf8cd749e0103ee5d1f) Handle intersections in isGenericTypeWithoutNullableConstraint ([#&#8203;50497](https://github.com/Microsoft/TypeScript/issues/50497))
-   [`ed6889c`](https://github.com/Microsoft/TypeScript/commit/ed6889cd5b61b9fa5156018362d867def18e281d) LEGO: Merge pull request 50506
-   [`29cbfe9`](https://github.com/Microsoft/TypeScript/commit/29cbfe9a2504cfae30bae938bdb2be6081ccc5c8) LEGO: Merge pull request 50493
-   [`6faa291`](https://github.com/Microsoft/TypeScript/commit/6faa291b453987192d996517b4376b14980b25c4) LEGO: Merge pull request 50484
-   [`71b2ba6`](https://github.com/Microsoft/TypeScript/commit/71b2ba6111e934f2b4ee112bc4d8d2f47ced22f5) Reuse computed type of condition expressions ([#&#8203;49881](https://github.com/Microsoft/TypeScript/issues/49881))
-   [`8778c1d`](https://github.com/Microsoft/TypeScript/commit/8778c1ded3a1955dce1063d72caf4523bec37c90) Update package-lock.json
-   [`4579245`](https://github.com/Microsoft/TypeScript/commit/4579245f36d9c3deccb097da9d5545f9c5c1ab26) fix(50427): allow convert function expressions ([#&#8203;50430](https://github.com/Microsoft/TypeScript/issues/50430))
-   [`cbc0b17`](https://github.com/Microsoft/TypeScript/commit/cbc0b17eac1fcb011a66f0544c813968cdf065c4) Push package-lock.json updates via typescript-bot token ([#&#8203;50476](https://github.com/Microsoft/TypeScript/issues/50476))
-   [`bb3a7ae`](https://github.com/Microsoft/TypeScript/commit/bb3a7aec11a20afb30c5098a75e001d1a4eb08f9) fix(50415): Language server debug failure - Did not expect GetAccessor to have an Identifier in its trivia ([#&#8203;50470](https://github.com/Microsoft/TypeScript/issues/50470))
-   [`3557092`](https://github.com/Microsoft/TypeScript/commit/3557092b1474bc3405a29da93bd15c108ab2f8b3) Rephrase error message to be 100% technically correct ([#&#8203;50471](https://github.com/Microsoft/TypeScript/issues/50471))
-   [`71d1911`](https://github.com/Microsoft/TypeScript/commit/71d19115031ae1c48fa34a24636dfae5e87e1b08) add unknown to DateTimeFormatTypes ([#&#8203;50402](https://github.com/Microsoft/TypeScript/issues/50402))
-   [`8f89599`](https://github.com/Microsoft/TypeScript/commit/8f895997d2cb79deb937d50fa1bed1c470528025) Don't include .gitattributes in package ([#&#8203;50475](https://github.com/Microsoft/TypeScript/issues/50475))
-   [`6e8337e`](https://github.com/Microsoft/TypeScript/commit/6e8337ef70e4a36a4df76a3362a41cbcac0dcb84) Optimize substitution types ([#&#8203;50397](https://github.com/Microsoft/TypeScript/issues/50397))
-   [`226dd0b`](https://github.com/Microsoft/TypeScript/commit/226dd0b7bf5cb5e5bb4dc34ab0e8e14f408f3e20) Fix typechecking related lints that changed post 4.8, update LKG to 4.8.2 ([#&#8203;50472](https://github.com/Microsoft/TypeScript/issues/50472))
-   [`164dddc`](https://github.com/Microsoft/TypeScript/commit/164dddc48e1eaa83780b8e72bc7afeebe768437b) feat(7481): Operator to ensure an expression is contextually typed by, and satisfies, some type ([#&#8203;46827](https://github.com/Microsoft/TypeScript/issues/46827))
-   [`0715791`](https://github.com/Microsoft/TypeScript/commit/07157914eb26a6e9abdcda7255c4094c9efff4cd) Update package-lock.json
-   [`e675ea8`](https://github.com/Microsoft/TypeScript/commit/e675ea8dd83aaed018a67534323305c36d373b40) Remove AUTHORS.md, .mailmap, authors.ts script ([#&#8203;50410](https://github.com/Microsoft/TypeScript/issues/50410))
-   [`38076df`](https://github.com/Microsoft/TypeScript/commit/38076df3465af555051db06006bbf30323af0e2d) Fix auto import crash due to difference in `paths` handling ([#&#8203;50419](https://github.com/Microsoft/TypeScript/issues/50419))
-   [`12eb519`](https://github.com/Microsoft/TypeScript/commit/12eb519b3f81d0999bbc4ce9a845744f4dfc215e) fix(50435): Duplicate seeming Code Actions for convert const to let ([#&#8203;50442](https://github.com/Microsoft/TypeScript/issues/50442))
-   [`a08b045`](https://github.com/Microsoft/TypeScript/commit/a08b045d2b22c87a6341a0c1d1318271d14acc86) Jsdoc property description ([#&#8203;50269](https://github.com/Microsoft/TypeScript/issues/50269)) \[ [#&#8203;47933](https://github.com/Microsoft/TypeScript/issues/47933) ]
-   [`5ba22e0`](https://github.com/Microsoft/TypeScript/commit/5ba22e05a96538498a78ab206e1b9892f420e7a1) Remove top level loc folder ([#&#8203;50421](https://github.com/Microsoft/TypeScript/issues/50421))
-   [`c4eb37c`](https://github.com/Microsoft/TypeScript/commit/c4eb37c8a0d5915d64e3992a91a34724aab19fe6) Update package-lock.json
-   [`8d7ad8c`](https://github.com/Microsoft/TypeScript/commit/8d7ad8c3aee4130e2b8cc6438e03e12a39cd398a) fix(50375): Errors for missing enum-named properties should attempt to preserve names ([#&#8203;50382](https://github.com/Microsoft/TypeScript/issues/50382))
-   [`fb717df`](https://github.com/Microsoft/TypeScript/commit/fb717df6bf85318c3d1e833a1dde6789d394cdb2) Discard union types before considering weak type checks on unit-like types ([#&#8203;50423](https://github.com/Microsoft/TypeScript/issues/50423))
-   [`b9a5bbc`](https://github.com/Microsoft/TypeScript/commit/b9a5bbc9afe9fa231aba5162c258bf1e2fa1e82e) Syntax operations also need to ensure project is present for the open script infos since update could be pending to make sure open script info has project ([#&#8203;50418](https://github.com/Microsoft/TypeScript/issues/50418)) \[ [#&#8203;50131](https://github.com/Microsoft/TypeScript/issues/50131) ]
-   [`1d4fbbb`](https://github.com/Microsoft/TypeScript/commit/1d4fbbb529d183b1e6988447e6744cfa7750b9f6) Update package-lock.json
-   [`44ce3cf`](https://github.com/Microsoft/TypeScript/commit/44ce3cff70cb79d1a45b48def04413db5303a151) fix(50224): Intellisense for strings within a type's Union doesn't work properly for JSX ([#&#8203;50231](https://github.com/Microsoft/TypeScript/issues/50231))
-   [`6ee5db9`](https://github.com/Microsoft/TypeScript/commit/6ee5db95c2ad4fee74ad02368afa1d2cc693407e) Use package.json files array instead of .npmignore ([#&#8203;50408](https://github.com/Microsoft/TypeScript/issues/50408))

This list of changes was [auto generated](https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/\_release?releaseId=116&\_a=release-summary).</details>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4xIiwidXBkYXRlZEluVmVyIjoiMzQuOTkuMiJ9-->

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1642
Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org>
Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Milestone Bug PRs that fix a bug with a specific milestone
Projects
PR Backlog
  
Done
Development

Successfully merging this pull request may close these issues.

Used import elided from emit where source is JavaScript
5 participants