Commit Graph

208 Commits

Author SHA1 Message Date
Andrew Morris
76995eaf2d Split out optimization dir 2023-06-29 15:22:06 +10:00
Andrew Morris
f5fa17ed25 Fix pointer ordering, extract constant arrays and objects 2023-06-29 15:03:21 +10:00
Andrew Morris
b315f07903 Extract optimize.rs 2023-06-29 12:03:43 +10:00
Andrew Morris
4642f22344 Make todos more descriptive 2023-06-28 15:59:17 +10:00
Andrew Morris
b798304070 Implement cond expressions 2023-06-28 15:49:44 +10:00
Andrew Morris
e49b1ff3da Implement yield* instruction 2023-06-27 14:38:42 +10:00
Andrew Morris
fb7f925bfb Use module constants in richards.ts 2023-06-23 16:11:22 +10:00
Andrew Morris
50369d18f3 Partial support for module constants 2023-06-23 15:41:16 +10:00
Andrew Morris
9135181634 Mark most module statements as not supported 2023-06-23 14:17:10 +10:00
Andrew Morris
a03aecedac Add static eval for literals 2023-06-23 14:10:37 +10:00
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