Commit Graph

184 Commits

Author SHA1 Message Date
Andrew Morris
b5ecc10b65 Add benchmarking 2023-06-21 15:07:05 +10:00
Andrew Morris
5969d344c4 Fix test - implement TargetAccessor for wrapper expressions 2023-06-21 11:00:20 +10:00
Andrew Morris
748769b039 Implement var hoisting for missing stmt types 2023-06-21 10:17:28 +10:00
Andrew Morris
72f9fbf0f7 Represent register taking 2023-06-20 16:57:49 +10:00
Andrew Morris
80786cc080 Implement yield* using a yield loop 2023-06-02 09:41:12 +10:00
Andrew Morris
9786625d97 Update playground to use generators 2023-06-01 13:18:35 +10:00
Andrew Morris
7e22dbeba0 Update this-mutability of yield* 2023-06-01 12:01:56 +10:00
Andrew Morris
76f78eb8ec Add unimplemented yield* instruction 2023-06-01 09:05:55 +10:00
Andrew Morris
81c613a836 Assemble generator functions 2023-05-31 14:57:21 +10:00
Andrew Morris
d0f446b901 Parse function* 2023-05-31 14:55:00 +10:00
Andrew Morris
38b1bcfba2 Represent generators in assembly 2023-05-31 14:49:08 +10:00
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