Commit Graph

173 Commits

Author SHA1 Message Date
Andrew Morris
56c8229d74 Compile yield expressions 2023-05-31 14:34:57 +10:00
Andrew Morris
12bfe5bf7f Add unimplemented yield instruction 2023-05-31 14:20:45 +10:00
Andrew Morris
1ee2bc30da Implement spreading for calls, news, and methods 2023-05-31 11:33:12 +10:00
Andrew Morris
383fcddfa1 Split out TargetAccessor 2023-05-31 10:03:22 +10:00
Andrew Morris
cd1ca27be8 Avoid trailing empty segment 2023-05-30 15:34:28 +10:00
Andrew Morris
4c20945c3a Enable spreading in array expressions 2023-05-30 15:09:07 +10:00
Andrew Morris
4729d006a3 Handle iterators in CatStackFrame 2023-05-30 14:00:51 +10:00
Andrew Morris
4164f44ece Cat instruction with limited implementation 2023-05-30 11:22:50 +10:00
Andrew Morris
21a0d182b2 Test custom iterator 2023-05-29 16:27:42 +10:00
Andrew Morris
87dfda4855 Compile for-of using iteration instead of indexing 2023-05-29 16:07:31 +10:00
Andrew Morris
b949027501 Enable defining Symbol.iterator on classes 2023-05-29 15:38:22 +10:00
Andrew Morris
79b8523758 Add $SymbolIterator 2023-05-29 14:52:29 +10:00
Andrew Morris
161ed1c6de Add next and unpack_iter_res instructions (unimplemented) 2023-05-29 13:19:04 +10:00
Andrew Morris
ac868be23c Replace VsPointer with cached decoding 2023-05-26 17:50:35 +10:00
Andrew Morris
bc89575eae Replace val_to_string with to_string (via fmt::Display) 2023-05-26 13:17:31 +10:00
Andrew Morris
cb7af7c8a3 Ignore type-only imports 2023-04-15 17:38:26 +09:00
Andrew Morris
f0685828de Allow leaving out whitespace 2023-04-15 17:18:32 +09:00
Andrew Morris
0785fe0c5e Add args param 2023-04-15 16:45:40 +09:00
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