Commit Graph

253 Commits

Author SHA1 Message Date
Andrew Morris
431e797f21 Simplify filter with generalized mapping frame 2022-05-30 12:59:17 +10:00
Andrew Morris
c1543ed62c Array.prototype.find 2022-05-30 12:12:00 +10:00
Andrew Morris
bb38559cba Array.prototype.filter 2022-05-30 12:05:06 +10:00
Andrew Morris
e2daaad3f9 Array.prototype.some 2022-05-30 11:42:27 +10:00
Andrew Morris
e38a499e73 Fix bug in every that skipped first element 2022-05-30 11:34:58 +10:00
Andrew Morris
2279c137c2 Allow declare vars in modules 2022-05-30 11:32:39 +10:00
Andrew Morris
aa81a777ed Add object shorthand 2022-05-30 11:25:51 +10:00
Andrew Morris
fe823a8644 Add Debug.log 2022-05-30 11:16:07 +10:00
Andrew Morris
8ad6802289 wip Array.prototype.every 2022-05-30 11:08:47 +10:00
Andrew Morris
84d4a28916 Pass in array to Array.prototype.map 2022-05-30 10:49:30 +10:00
Andrew Morris
6e95e1c250 Implement index and this_arg for Array.prototype.map 2022-05-30 10:46:40 +10:00
Andrew Morris
92f0c5391a Preserve array holes in Array.prototype.map 2022-05-30 10:34:49 +10:00
Andrew Morris
928d9f7503 Array.prototype.map 2022-05-30 10:31:43 +10:00
Andrew Morris
c5e8317985 Box<dyn StackFrameTrait> -> StackFrame 2022-05-30 09:51:55 +10:00
Andrew Morris
ae64a31bb4 plain->bytecode stack frame 2022-05-30 09:32:52 +10:00
Andrew Morris
97e39df07d Refactor stack frames to be box<dyn> 2022-05-30 09:31:17 +10:00
Andrew Morris
a3015d394b Add binary tree example 2022-05-27 16:54:19 +10:00
Andrew Morris
f9539cd464 Fix typescript error in sample 2022-05-27 16:34:41 +10:00
Andrew Morris
6cb70eebbc Fix void constructors 2022-05-27 16:33:56 +10:00
Andrew Morris
f49b78aae6 Compile new expressions 2022-05-27 16:32:05 +10:00
Andrew Morris
b80d290b45 Compile methods 2022-05-27 16:24:43 +10:00
Andrew Morris
83e4eb8e01 Start compiling classes 2022-05-27 16:00:39 +10:00
Andrew Morris
e356acf2c8 Allow constructor to be void 2022-05-27 15:15:06 +10:00
Andrew Morris
d492040d21 Fix up some minor things to make classes work (assembly-based) 2022-05-27 14:39:15 +10:00
Andrew Morris
8ed8bbff0a Decode classes 2022-05-27 14:34:01 +10:00
Andrew Morris
ddb52dbce5 Assemble classes 2022-05-27 14:31:07 +10:00
Andrew Morris
f19d1094b6 Implement new instruction 2022-05-27 14:09:18 +10:00
Andrew Morris
7d58ba3c34 Use self.frame instead of top of stack 2022-05-27 13:18:01 +10:00
Andrew Morris
cf4e95456e Add unimplemented new instruction 2022-05-27 12:46:48 +10:00
Andrew Morris
d978dd8004 Add placeholder names at top-level to ignore list 2022-05-27 12:05:55 +10:00
Andrew Morris
00729d0334 Use trunc instead of signum+abs+floor 2022-05-22 21:43:15 +10:00
Andrew Morris
d1cfbd9dfe Add math functions 2022-05-22 21:37:19 +10:00
Andrew Morris
1075f23906 Add stubs for math functions 2022-05-22 21:14:40 +10:00
Andrew Morris
980466b9d7 Add more math constants 2022-05-22 20:59:32 +10:00
Andrew Morris
9a1f0cc931 Add builtins, Math.E 2022-05-22 20:56:06 +10:00
Andrew Morris
0cb891b8c4 Use direct impl instead of trait 2022-05-22 19:47:38 +10:00
Andrew Morris
e65b366f8e Remove completed TODO 2022-05-22 16:22:37 +10:00
Andrew Morris
141cf92bb4 Enable method calls on non-lvalues 2022-05-22 16:18:11 +10:00
Andrew Morris
c7c9913444 Array.prototype.splice 2022-05-22 16:00:57 +10:00
Andrew Morris
921f13452a toString 2022-05-22 12:34:12 +10:00
Andrew Morris
2cc7ea317d sort (without custom comparison fn) 2022-05-22 12:29:21 +10:00
Andrew Morris
691a3258e2 slice 2022-05-22 12:15:17 +10:00
Andrew Morris
f48b7abb5f reverse 2022-05-22 12:03:02 +10:00
Andrew Morris
d2873abda9 lastIndexOf 2022-05-22 11:51:22 +10:00
Andrew Morris
d40e9e3733 indexOf, join 2022-05-22 11:49:08 +10:00
Andrew Morris
a5d0e2a46f Fix undefined elements in array toString 2022-05-22 11:39:16 +10:00
Andrew Morris
8a97ad7c38 Add stubs for remaining array methods 2022-05-22 11:26:44 +10:00
Andrew Morris
cc6f7f4eb6 Alphabetize array methods 2022-05-21 18:09:53 +10:00
Andrew Morris
8706929c25 Array.prototype.flat (without depth param) 2022-05-21 18:07:37 +10:00
Andrew Morris
b7d5d66a7c Array.prototype.fill 2022-05-21 17:53:44 +10:00