feat: TLA 模块求值 emit 侧编译为合成异步函数

This commit is contained in:
2026-10-13 17:36:47 +00:00
parent 009a049288
commit 75cece2ad9
7 changed files with 575 additions and 34 deletions
@@ -1,6 +1,13 @@
use oxide_runtime_api::NativeResult;
use oxide_types::object::JsObject;
use crate::bindings::{apply_binding_table, BindEnv};
use crate::vm::Vm;
/// `__moduleWaitAll` 原生入口:委托 `Vm::module_wait_all`(聚合 gate,见 promise 模块)。
fn module_wait_all(vm: &mut Vm, args: &[u8]) -> NativeResult {
vm.module_wait_all(args)
}
/// 把普通全局函数(`isNaN`、`parseInt`、`decodeURIComponent` 等)绑定到 global。
pub fn bind_global(env: BindEnv<'_>, global: &mut JsObject) {
@@ -56,6 +63,7 @@ pub fn bind_global(env: BindEnv<'_>, global: &mut JsObject) {
2,
),
("__moduleData", oxide_builtins::module::module_data::<crate::vm::Vm> as *const (), 2),
("__moduleWaitAll", module_wait_all as *const (), 0),
("eval", oxide_builtins::eval::eval::<crate::vm::Vm> as *const (), 1),
(
"structuredClone",