3ef1a8e806
[oden-js] Value construction functions
...
Makes building composites a lot easier
2023-09-27 16:44:04 -07:00
a0afae092a
[oden-js] Value implements AsRef
...
Makes working with temporaries a lot easier
2023-09-27 16:43:41 -07: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