Commit Graph

971 Commits

Author SHA1 Message Date
Andrew Morris
46eccda083 Compile seq expressions 2023-07-06 22:01:09 +10:00
Andrew Morris
4339f562f7 Use ~ in constant 2023-07-06 21:55:15 +10:00
Andrew Morris
6615ea79d2 Support more static expressions 2023-07-06 21:52:08 +10:00
Andrew Morris
5a72e7c3bf Support static eval for object literals 2023-07-06 20:33:39 +10:00
Andrew Morris
dce4d50506 Support static eval for array literals 2023-07-06 20:20:20 +10:00
Andrew Morris
12d83fad18 Still emit assembly even if there are errors 2023-07-06 20:12:06 +10:00
Andrew Morris
c29b6d64ae Don't skip code generation when static eval fails 2023-07-06 20:11:46 +10:00
Andrew Morris
90c276d915 Remove outdated comment 2023-07-06 18:27:09 +10:00
Andrew Morris
d9ce30d2d1 Use padStart 2023-07-06 18:21:51 +10:00
Andrew Morris
2f0db65d30 Fix template string bug 2023-07-06 18:18:19 +10:00
Andrew Morris
37c9f09c2f Add failing test 2023-07-06 18:11:02 +10:00
Andrew Morris
2ee11752ad Extract bigint constants, update p25 example 2023-07-06 17:58:28 +10:00
Andrew Morris
385d63374d Implement string.length for Kal 2023-07-06 17:46:17 +10:00
Andrew Morris
5a6d11c980 Implement string indexing for Kal 2023-07-06 17:38:08 +10:00
Andrew Morris
4e2fb4b0d4 Remove completed TODO 2023-07-06 17:30:22 +10:00
Andrew Morris
34d6a21aab Rc<String> -> Rc<str> 2023-07-06 17:25:24 +10:00
Andrew Morris
711ad1e762 Use param props in examples 2023-07-06 17:13:52 +10:00
Andrew Morris
57b3a6b543 Implement typescript param props 2023-07-06 16:30:24 +10:00
Andrew Morris
d3e1338599 Add failing test 2023-07-06 16:04:34 +10:00
Andrew Morris
5cdd45b133 Use in operator 2023-07-06 15:58:42 +10:00
Andrew Morris
814fb09159 Implement in operator 2023-07-06 15:56:04 +10:00
Andrew Morris
eb95deeb5d Implement negative indexes for Range.at 2023-07-06 14:36:29 +10:00
Andrew Morris
fcc140c46c Fix throw %!e 2023-07-06 14:27:01 +10:00
Andrew Morris
262ac430f4 Simplify get_pattern_register 2023-07-06 14:17:52 +10:00
Andrew Morris
2952d69698 Fix this params 2023-07-06 14:06:51 +10:00
Andrew Morris
a3ae60eca7 Add failing test 2023-07-06 13:44:11 +10:00
Andrew Morris
557355091a Fix mergeSortStepper 2023-07-06 13:30:21 +10:00
Andrew Morris
6c18165a5e Formatting 2023-07-06 11:49:18 +10:00
Andrew Morris
9000487b2f Fix switch tests 2023-07-06 10:27:41 +10:00
Andrew Morris
ced2b3cee6 Implement switch 2023-07-06 10:22:05 +10:00
Andrew Morris
5b7626735d Remove mov where arg and dst are the same 2023-07-05 12:24:45 +10:00
Andrew Morris
70102961c6 Fix test 2023-07-05 12:22:17 +10:00
Andrew Morris
55c51d0fa7 Add failing test 2023-07-05 12:01:57 +10:00
Andrew Morris
3f63091e07 Use return register when a variable is always returned 2023-07-05 11:44:14 +10:00
Andrew Morris
d38abb7377 Collapse jump to jump 2023-07-04 22:50:13 +10:00
Andrew Morris
063ab365a7 Remove unused registers 2023-07-04 11:01:07 +10:00
Andrew Morris
31b62c9f7b Remove outdated disclaimer 2023-07-03 12:39:49 +10:00
Andrew Morris
0366d098c0 Remove redundant ends, fix next_instruction_index 2023-07-03 12:19:51 +10:00
Andrew Morris
07e299614f Simplify jumps 2023-07-03 11:59:04 +10:00
Andrew Morris
eca2cda3d5 Use half indentation for labels 2023-07-03 11:16:34 +10:00
Andrew Morris
9b9b342110 Use 4 space indentation for assembly 2023-07-03 11:15:36 +10:00
Andrew Morris
ca01d8169d Remove empty lines before labels 2023-07-03 11:12:19 +10:00
Andrew Morris
d89103de79 Optimize after removing unused labels 2023-07-03 10:48:57 +10:00
Andrew Morris
b7d5101bf4 Remove unused labels 2023-07-03 10:45:20 +10:00
Andrew Morris
0413219abb Print individual benchmark scores 2023-07-03 10:14:33 +10:00
Andrew Morris
29835bf732 Replace negate+jmpif with jmpif_not 2023-07-03 09:56:00 +10:00
Andrew Morris
d217f60967 Add jmpif_not instruction 2023-07-03 09:33:47 +10:00
Andrew Morris
adce30305f jmpif true label -> jmp label 2023-07-02 09:55:38 +10:00
Andrew Morris
571c5760a4 Allow sub instructions to be simplified to mov 2023-07-02 09:20:59 +10:00
Andrew Morris
74ed734847 Fix missed substitution bug 2023-07-02 08:59:49 +10:00