Commit Graph

47 Commits

Author SHA1 Message Date
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
0bc3269d66 Move Scope into its own file 2023-03-31 10:59:26 +11:00
Andrew Morris
81f944355a Snapshot variables mutated by method calls 2023-03-30 11:45:40 +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
5f5398b566 Ignore non-register captures, set self.owner_id correctly 2023-03-24 12:32:21 +11:00
Andrew Morris
026c3e1619 Lookup returns option, enabling diagnostics, include ref when inserting name 2023-03-24 10:06:19 +11:00
Andrew Morris
ec14f657e9 wiiiip 2023-03-24 09:24:17 +11:00
Andrew Morris
64e79cf13b oof wip 2023-03-23 21:14:05 +11:00
Andrew Morris
1d1c4496b3 wip 2023-03-23 21:14:00 +11:00
Andrew Morris
e86b2b6127 More tests and fixes 2023-03-23 17:17:27 +11:00
Andrew Morris
2e500692bf Compile try-catch 2023-03-23 14:12:35 +11:00
Andrew Morris
7594eeeadd Replace capture_finder with scope_analysis data 2023-03-22 14:27:06 +11:00
Andrew Morris
f43e83cffe Compile throw expressions 2023-03-21 14:29:38 +11:00
Andrew Morris
549e7e546a NaN, Infinity 2023-03-20 11:34:48 +11:00
Andrew Morris
e5232e933c For-of loops 2023-03-12 20:38:43 +11:00
Andrew Morris
cec98637ea Move control cases into functions 2023-03-12 18:51:00 +11:00
Andrew Morris
b4e450abcd Simplifiy todo diagnostics 2023-03-07 10:54:12 +11:00
Andrew Morris
eae0f1090e Use numbering for tmp registers 2023-03-06 19:39:34 +11:00
Andrew Morris
812b51dbba Fix inputs/passing/projEuler/p15.ts 2023-03-06 19:38:19 +11:00
Andrew Morris
88cac1fbe2 Removed remaining inline assembly 2023-03-06 18:29:56 +11:00
Andrew Morris
508f00e95c Simpler api for pushing instructions and labels 2023-03-06 17:16:44 +11:00
Andrew Morris
0e9682592e Use asm::Instruction in function_compiler 2023-03-06 16:39:59 +11:00
Andrew Morris
eaf26f7a88 Prefer to_string 2023-03-06 15:05:38 +11:00
Andrew Morris
8c98da80be Use asm::Value in CompiledExpression 2023-03-06 14:59:56 +11:00
Andrew Morris
3093016344 Use asm::Pointer during compilation 2023-03-06 14:02:27 +11:00
Andrew Morris
082591da5c Replace register strings with Register throughout function_compiler 2023-03-06 13:21:54 +11:00
Andrew Morris
6be70c189b Replace register strings with Register throughout expression_compiler 2023-03-06 12:48:41 +11:00
Andrew Morris
e77667bd7d Move patterns into expression compiler 2023-03-02 17:39:12 +11:00
Andrew Morris
42c3ce706b decl_or_param_pat -> pat 2023-03-02 17:17:02 +11:00
Andrew Morris
cae818a3c7 Enable more destructuring 2023-03-02 17:14:45 +11:00
Andrew Morris
16fed23c66 AssignTarget::from_pat_or_expr 2023-03-02 11:34:30 +11:00
Andrew Morris
8fdd4ca9ee Fix multiAssignment 2023-03-01 18:02:07 +11:00
Andrew Morris
266ff3a611 Fix nested assignment 2023-03-01 17:05:18 +11:00
Andrew Morris
f684d6b65e Destructuring for declarations 2023-03-01 12:35:11 +11:00
Andrew Morris
06bff78ed2 Split out parameter scope from gathering parameter registers, add param destructuring tests 2023-03-01 11:29:01 +11:00
Andrew Morris
6bfccda220 Rename, param reorder 2023-03-01 09:49:27 +11:00
Andrew Morris
419ca62a03 Avoid default match cases 2023-03-01 09:10:26 +11:00
Andrew Morris
f7f70bf89f Apply lint suggestion 2023-03-01 08:39:02 +11:00
Andrew Morris
cf2a54d332 Simplify nested registers 2023-02-28 13:41:13 +11:00
Andrew Morris
9791cee579 Object destructuring for parameters 2023-02-27 19:04:30 +11:00
Andrew Morris
90a1610683 Array destructuring for parameters 2023-02-27 17:50:39 +11:00
Andrew Morris
2de3b8e650 Implement parameter defaults 2023-02-27 17:22:09 +11:00
Andrew Morris
44759d16a8 Reorganize using workspaces 2023-02-27 12:35:37 +11:00