Commit Graph

198 Commits

Author SHA1 Message Date
Andrew Morris
c880dda7c9 Extract string constants 2023-06-23 13:48:58 +10:00
Andrew Morris
540b25225a Compile static methods 2023-06-23 10:02:32 +10:00
Andrew Morris
41a6a20573 Include static in class assembly and bytecode 2023-06-23 09:47:12 +10:00
Andrew Morris
b3b5887d8b methods -> prototype 2023-06-23 09:23:48 +10:00
Andrew Morris
fdae0c5ff4 Use take on iter_res 2023-06-22 19:49:54 +10:00
Andrew Morris
62aaa57b7d Fix unnecessary binds 2023-06-22 17:46:05 +10:00
Andrew Morris
a4291204cb Remove unnecessary mov 2023-06-22 16:41:26 +10:00
Andrew Morris
f12e3ea11b Fix redundant mov in preincrements 2023-06-22 16:14:46 +10:00
Andrew Morris
6e1be5a929 Add Empty and Comment options to FnLine 2023-06-22 15:54:00 +10:00
Andrew Morris
48433d650e Refactor - stop assuming assignment to target_register 2023-06-22 13:08:08 +10:00
Andrew Morris
70c695016e Tweaks 2023-06-22 10:50:27 +10:00
Andrew Morris
0f3b02c2c5 Fix nested register for mov 2023-06-22 09:30:40 +10:00
Andrew Morris
1917bb51c6 When a value is just a nested register, take it 2023-06-22 08:55:52 +10:00
Andrew Morris
c1c5bd6f82 Default to take:false, add take() 2023-06-22 08:32:38 +10:00
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