Commit 3cd6c95
committed
Reinstate the lambda lifting after the CPS transform
This is to avoid too many nested function definitions, which can cause
stack overflows in JS parsers. There are now two lambda lifting passes
in total: one before and one after CPS-transforming the code. The
pre-CPS-transform lifting is done to avoid nesting functions that are
doubly-translated, which would be both costly in code size and incorrect
in terms of closure environment capture.1 parent c1f7911 commit 3cd6c95
2 files changed
+6
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
| 91 | + | |
90 | 92 | | |
91 | 93 | | |
92 | 94 | | |
93 | 95 | | |
94 | | - | |
| 96 | + | |
95 | 97 | | |
96 | 98 | | |
97 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
41 | 40 | | |
42 | 41 | | |
43 | 42 | | |
| |||
0 commit comments