155 Commits

Author SHA1 Message Date
Andrew Morris
c9b0991907 Use this_subcall and avoid require_mutable_this when packing up those calls 2023-04-05 10:55:17 +10:00
Andrew Morris
0ee1f473ce this_subcall 2023-04-05 10:31:05 +10:00
Andrew Morris
dc685f5892 require_mutable_this 2023-04-05 10:15:19 +10:00
Andrew Morris
f2db17ef27 Use .effectively_const to exclude from TargetAccessor, producing const_subcall 2023-04-04 14:55:32 +10:00
Andrew Morris
f728509db9 const_subcall, more tests 2023-04-04 13:49:46 +10:00
Andrew Morris
c25ebe2e14 Copy pre-increment values into registers 2023-03-31 17:39:32 +11:00
Andrew Morris
eaa5616193 Limit register copying to only variables that are mutated 2023-03-31 17:05:09 +11:00
Andrew Morris
a5a861d570 Use extra register for every identifier 2023-03-31 16:44:22 +11:00
Andrew Morris
c4c348a231 Fix captureShadowed.ts 2023-03-31 14:35:34 +11:00
Andrew Morris
67b8825f99 Fix false positive tdz capture issues by analyzing binds instead 2023-03-31 14:24:36 +11:00
Andrew Morris
f17ec376d5 Implement TDZ for captures 2023-03-31 13:25:19 +11:00
Andrew Morris
d46e823d4b More tdz capture tests 2023-03-31 12:21:48 +11:00
Andrew Morris
0bc3269d66 Move Scope into its own file 2023-03-31 10:59:26 +11:00
Andrew Morris
10974444bb Implement basic TDZ (not including captures) 2023-03-31 10:50:41 +11:00
Andrew Morris
b59e19ad9b XScope -> Scope 2023-03-31 10:03:29 +11:00
Andrew Morris
a48783af81 Fix register release for args of new expressions 2023-03-30 12:16:22 +11:00
Andrew Morris
382d2174c6 Fix const (basic) 2023-03-30 11:57:22 +11:00
Andrew Morris
81f944355a Snapshot variables mutated by method calls 2023-03-30 11:45:40 +11:00
Andrew Morris
1960b43a1a Fix duplicate name insertion 2023-03-29 08:24:44 +11:00
Andrew Morris
08d7773314 Fix duplicate scope analysis 2023-03-29 08:13:27 +11:00
Andrew Morris
c199d3bb8e Make compile link files 2023-03-28 16:36:33 +11:00
Andrew Morris
aaf89e2cab Add and use run_linked 2023-03-28 16:25:30 +11:00
Andrew Morris
7b5f1de302 Revert variables on catch 2023-03-24 18:31:38 +11:00
Andrew Morris
c8d5143bc9 Fix transitive captures 2023-03-24 17:44:50 +11:00
Andrew Morris
36e0b0d2cc Fix capturing for function declarations 2023-03-24 16:25:27 +11:00
Andrew Morris
a7ced2eb76 Fix nested function declarations 2023-03-24 15:31:24 +11:00
Andrew Morris
bb2c49d9a7 Fix p5 by (correctly) skipping declares 2023-03-24 15:15:22 +11:00
Andrew Morris
9efd517980 Only bind register captures 2023-03-24 14:40:31 +11:00
Andrew Morris
5931d8a8f9 Only allocate register for capture if original name is a register 2023-03-24 14:32:12 +11:00
Andrew Morris
57a95798cd Include more expressions 2023-03-24 14:16:15 +11:00
Andrew Morris
c811d0944e Improve diagnostic 2023-03-24 14:02:20 +11:00
Andrew Morris
e2886d209d Include prop_key of object patterns 2023-03-24 13:45:00 +11:00
Andrew Morris
64cad76081 Only process scope of local exports 2023-03-24 13:17:34 +11:00
Andrew Morris
d3391028ba Include ModuleDecl::ExportNamed 2023-03-24 12:47:28 +11:00
Andrew Morris
5f5398b566 Ignore non-register captures, set self.owner_id correctly 2023-03-24 12:32:21 +11:00
Andrew Morris
1164de3f3f Include member.prop 2023-03-24 11:41:39 +11:00
Andrew Morris
6a87fbb2c2 Include non-mutations in assignment 2023-03-24 11:16:48 +11:00
Andrew Morris
fe2e281d0b Improve diagnostic 2023-03-24 10:55:08 +11:00
Andrew Morris
f878dbbae9 Insert each mutation as a ref 2023-03-24 10:19:44 +11:00
Andrew Morris
026c3e1619 Lookup returns option, enabling diagnostics, include ref when inserting name 2023-03-24 10:06:19 +11:00
Andrew Morris
ec14f657e9 wiiiip 2023-03-24 09:24:17 +11:00
Andrew Morris
64e79cf13b oof wip 2023-03-23 21:14:05 +11:00
Andrew Morris
1d1c4496b3 wip 2023-03-23 21:14:00 +11:00
Andrew Morris
b95c32f45b Avoid allocating special registers in RegAllocator 2023-03-23 19:38:01 +11:00
Andrew Morris
b273bf1091 associate values during scope analysis, add .lookup 2023-03-23 19:35:42 +11:00
Andrew Morris
e86b2b6127 More tests and fixes 2023-03-23 17:17:27 +11:00
Andrew Morris
2e500692bf Compile try-catch 2023-03-23 14:12:35 +11:00
Andrew Morris
337c5c5296 Add set_catch, unset_catch instructions 2023-03-23 09:35:33 +11:00
Andrew Morris
56f6ce5922 Add limited comment support in assembly 2023-03-23 08:59:57 +11:00
Andrew Morris
55fceb80cb Store mutations by span 2023-03-22 14:39:32 +11:00