Commit f6683d6
committed
Refactor closure capture analysis and recompilation logic
Replaces the pre-scan approach for closure variable capture with a single-pass, on-demand capture analysis that supports late discovery and recompilation of function bodies when captures are detected after initial compilation. This change simplifies closure handling, ensures correct environment slot assignment, and improves support for complex nested closure scenarios. Updates related logic for local variable tracking, anonymous function naming, and closure environment allocation.1 parent bc725a4 commit f6683d6
File tree
12 files changed
+11138
-1180
lines changed- src
- tests/compiler
12 files changed
+11138
-1180
lines changedLarge diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3639 | 3639 | | |
3640 | 3640 | | |
3641 | 3641 | | |
| 3642 | + | |
| 3643 | + | |
| 3644 | + | |
3642 | 3645 | | |
3643 | 3646 | | |
3644 | 3647 | | |
| |||
3814 | 3817 | | |
3815 | 3818 | | |
3816 | 3819 | | |
3817 | | - | |
3818 | | - | |
| 3820 | + | |
| 3821 | + | |
3819 | 3822 | | |
3820 | 3823 | | |
3821 | 3824 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2511 | 2511 | | |
2512 | 2512 | | |
2513 | 2513 | | |
2514 | | - | |
| 2514 | + | |
2515 | 2515 | | |
2516 | 2516 | | |
2517 | | - | |
| 2517 | + | |
2518 | 2518 | | |
2519 | 2519 | | |
2520 | | - | |
| 2520 | + | |
2521 | 2521 | | |
2522 | 2522 | | |
2523 | 2523 | | |
| |||
3654 | 3654 | | |
3655 | 3655 | | |
3656 | 3656 | | |
3657 | | - | |
| 3657 | + | |
3658 | 3658 | | |
3659 | 3659 | | |
3660 | | - | |
| 3660 | + | |
3661 | 3661 | | |
3662 | 3662 | | |
3663 | 3663 | | |
| |||
3682 | 3682 | | |
3683 | 3683 | | |
3684 | 3684 | | |
3685 | | - | |
| 3685 | + | |
3686 | 3686 | | |
3687 | 3687 | | |
3688 | | - | |
| 3688 | + | |
3689 | 3689 | | |
3690 | 3690 | | |
3691 | 3691 | | |
| |||
5898 | 5898 | | |
5899 | 5899 | | |
5900 | 5900 | | |
5901 | | - | |
| 5901 | + | |
5902 | 5902 | | |
5903 | 5903 | | |
5904 | 5904 | | |
5905 | 5905 | | |
5906 | | - | |
| 5906 | + | |
5907 | 5907 | | |
5908 | 5908 | | |
5909 | 5909 | | |
5910 | 5910 | | |
5911 | 5911 | | |
5912 | 5912 | | |
5913 | | - | |
| 5913 | + | |
5914 | 5914 | | |
5915 | 5915 | | |
5916 | 5916 | | |
5917 | 5917 | | |
5918 | 5918 | | |
5919 | 5919 | | |
5920 | 5920 | | |
5921 | | - | |
| 5921 | + | |
5922 | 5922 | | |
5923 | 5923 | | |
5924 | 5924 | | |
5925 | 5925 | | |
5926 | | - | |
| 5926 | + | |
5927 | 5927 | | |
5928 | 5928 | | |
5929 | 5929 | | |
5930 | 5930 | | |
5931 | | - | |
| 5931 | + | |
5932 | 5932 | | |
5933 | 5933 | | |
5934 | 5934 | | |
5935 | 5935 | | |
5936 | 5936 | | |
5937 | 5937 | | |
5938 | | - | |
| 5938 | + | |
5939 | 5939 | | |
5940 | 5940 | | |
5941 | 5941 | | |
5942 | 5942 | | |
5943 | 5943 | | |
5944 | 5944 | | |
5945 | 5945 | | |
5946 | | - | |
| 5946 | + | |
5947 | 5947 | | |
5948 | 5948 | | |
5949 | 5949 | | |
5950 | 5950 | | |
5951 | | - | |
| 5951 | + | |
5952 | 5952 | | |
5953 | 5953 | | |
5954 | 5954 | | |
5955 | 5955 | | |
5956 | | - | |
| 5956 | + | |
5957 | 5957 | | |
5958 | 5958 | | |
5959 | 5959 | | |
5960 | 5960 | | |
5961 | 5961 | | |
5962 | 5962 | | |
5963 | | - | |
| 5963 | + | |
5964 | 5964 | | |
5965 | 5965 | | |
5966 | 5966 | | |
5967 | 5967 | | |
5968 | 5968 | | |
5969 | 5969 | | |
5970 | 5970 | | |
5971 | | - | |
| 5971 | + | |
5972 | 5972 | | |
5973 | 5973 | | |
5974 | 5974 | | |
5975 | 5975 | | |
5976 | 5976 | | |
5977 | 5977 | | |
5978 | | - | |
| 5978 | + | |
5979 | 5979 | | |
5980 | 5980 | | |
5981 | 5981 | | |
| |||
10358 | 10358 | | |
10359 | 10359 | | |
10360 | 10360 | | |
10361 | | - | |
| 10361 | + | |
10362 | 10362 | | |
10363 | 10363 | | |
10364 | 10364 | | |
10365 | 10365 | | |
10366 | 10366 | | |
10367 | 10367 | | |
10368 | | - | |
| 10368 | + | |
10369 | 10369 | | |
10370 | 10370 | | |
10371 | 10371 | | |
10372 | 10372 | | |
10373 | 10373 | | |
10374 | 10374 | | |
10375 | 10375 | | |
10376 | | - | |
| 10376 | + | |
10377 | 10377 | | |
10378 | 10378 | | |
10379 | 10379 | | |
10380 | | - | |
| 10380 | + | |
10381 | 10381 | | |
10382 | 10382 | | |
10383 | 10383 | | |
| |||
10400 | 10400 | | |
10401 | 10401 | | |
10402 | 10402 | | |
10403 | | - | |
| 10403 | + | |
10404 | 10404 | | |
10405 | 10405 | | |
10406 | 10406 | | |
10407 | 10407 | | |
10408 | 10408 | | |
10409 | 10409 | | |
10410 | | - | |
| 10410 | + | |
10411 | 10411 | | |
10412 | 10412 | | |
10413 | 10413 | | |
10414 | 10414 | | |
10415 | 10415 | | |
10416 | 10416 | | |
10417 | 10417 | | |
10418 | | - | |
| 10418 | + | |
10419 | 10419 | | |
10420 | 10420 | | |
10421 | 10421 | | |
10422 | | - | |
| 10422 | + | |
10423 | 10423 | | |
10424 | 10424 | | |
10425 | 10425 | | |
| |||
10819 | 10819 | | |
10820 | 10820 | | |
10821 | 10821 | | |
| 10822 | + | |
10822 | 10823 | | |
10823 | 10824 | | |
10824 | 10825 | | |
10825 | 10826 | | |
10826 | | - | |
10827 | 10827 | | |
10828 | 10828 | | |
10829 | 10829 | | |
| |||
10969 | 10969 | | |
10970 | 10970 | | |
10971 | 10971 | | |
| 10972 | + | |
10972 | 10973 | | |
10973 | 10974 | | |
10974 | 10975 | | |
10975 | | - | |
| 10976 | + | |
10976 | 10977 | | |
10977 | | - | |
10978 | 10978 | | |
10979 | 10979 | | |
10980 | 10980 | | |
| |||
11023 | 11023 | | |
11024 | 11024 | | |
11025 | 11025 | | |
11026 | | - | |
| 11026 | + | |
11027 | 11027 | | |
11028 | | - | |
| 11028 | + | |
11029 | 11029 | | |
11030 | 11030 | | |
11031 | | - | |
| 11031 | + | |
11032 | 11032 | | |
11033 | 11033 | | |
11034 | 11034 | | |
| |||
0 commit comments