Commit graph

29 commits

Author SHA1 Message Date
5deceec006 chore: reorganize as a workspace 2024-03-08 10:16:54 -08:00
c96a1a4979 [quickjs][oden][oden-js] Source maps
The worst support but it should cost very little if nobody is using
them (psst we're using them)
2023-09-21 01:51:55 -05:00
1cb30034f8 [oden] Move scaling entirely into JavaScript
Now the game controls its own resolution. We might want to further
copy Love2D and generate resize events, I don't know.
2023-09-02 09:58:58 -07:00
22732c2b05 [oden] Catch and render script errors, stop crashing
This is kinda nice actually
2023-08-31 21:14:27 -07:00
a850c3cc58 [oden] Hot-reload script files 2023-08-19 16:54:50 -07:00
6200ed31b6 [oden-js] Fix cross-platform conversions
Lots of places were assuming that bool and c int were interchangeable,
but of course on windows a c int is 32 bits and that confused
everybody. Tighten up the definitions in static-functions, which
causes us to fix boolean conversion. Also add tests for boolean
conversion, and also add better debug formatting of JS values.
2023-08-19 07:38:15 -07:00
22327a71b3 [oden-js] Track rejected promises, panic on unhandled rejections 2023-07-25 06:39:01 -07:00
17c701a7d6 [oden] IO: Load Strings
It's useful. The stock JS way is bad.
2023-07-08 17:55:37 -07:00
f7ed78ce3b [oden-js] ArrayBuffer values 2023-06-30 06:26:53 -07:00
b77e7eba3e [oden-js] Promise completion needs to be more robust
As predicted.
2023-06-30 06:26:16 -07:00
44c39b1740 [oden-js] Promise completion should be FnOnce 2023-06-30 05:52:32 -07:00
3b2af4bb14 Comments and a bug fix 2023-06-29 10:14:10 -07:00
a2dafeea12 Promises, promises 2023-06-29 10:10:40 -07:00
5be0ffa08f Starting to mess with promises
Going to want async IO, I think. And it's a fun detail that I guess
I'm in charge of deciding when to run promise completion functions. :D
2023-06-28 15:54:13 -07:00
17805fa4a6 [oden] Garbage assets, need to rewrite to IO 2023-06-27 17:16:37 -07:00
82c386fd0f [oden-js] Fix bug with repeated arguments 2023-06-24 23:02:43 -07:00
b6f6d908d2 [oden] OK now everything is TS and it type-checks 2023-06-24 17:49:41 -07:00
3968aabdb1 [oden] Load typescript kinda 2023-06-24 14:21:47 -07:00
9e685bc569 [oden-js] Fix various bugs in module loader 2023-06-24 11:03:07 -07:00
db8a5f8eed [oden][oden-js] Rework modules
Damn this is a lot
2023-06-24 08:45:39 -07:00
c7903382a0 [oden-js] Convert Option<> 2023-06-23 05:48:26 -07:00
af12dccd5d [oden-js] Functions up to 8 args 2023-06-23 05:42:05 -07:00
e36ab17235 [oden-js] Ensure callbacks have 'static lifetime
Because we smuggle them through we need to make sure they're not
holding references that will go invalid- we can make no promises about
how long they stay alive. Although maybe bounding to context lifetime
is OK? But anyway.
2023-06-21 22:04:17 -07:00
c574fd8cb8 [oden] Native Modules 2023-06-21 06:19:14 -07:00
83a0950153 [oden-js] TryFromValue for Value 2023-06-20 06:17:34 -07:00
8d7dd789ed [oden] JavaScript, god help me 2023-06-19 13:46:09 -07:00
16e6f1304c [oden-js] Get module exports 2023-06-19 13:24:35 -07:00
9f808cea31 [oden] The big lifetime removal
It turns out that rust can't really reason about the relationship
between the runtime lifetime and the context lifetime in a way that is
actually usable. This removes the lifetime stuff in favor of reference
counting the runtime itself, via a block that we embed in the
pointer. This, I think, it the least worst option here.
2023-06-19 08:28:26 -07:00
898b1fe129 [oden] Grab my incomplete QuickJS wrapper 2023-06-18 06:31:37 -07:00