From 98f737efd37f0c0ad5ffe70295607bd93cb5f79a Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Thu, 8 Oct 2026 06:40:12 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=97=A0=E5=AF=84=E5=AD=98=E5=99=A8?= =?UTF-8?q?=E5=88=86=E9=85=8D=E6=97=97=E6=A0=87=E5=9C=A8=20test262=20scrip?= =?UTF-8?q?t=20=E8=87=82=E5=A4=B1=E6=95=88=EF=BC=8C=E4=B8=A4=E8=87=82?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=20compiler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 38 +++++++++++++++--------------- Cargo.toml | 2 +- crates/oxide_test262/src/runner.rs | 10 ++++---- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 95ddc702..a029afa3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1160,7 +1160,7 @@ dependencies = [ [[package]] name = "oxide_builtins" -version = "0.8.70" +version = "0.8.71" dependencies = [ "chrono", "fast-float", @@ -1185,7 +1185,7 @@ dependencies = [ [[package]] name = "oxide_bytecode" -version = "0.8.70" +version = "0.8.71" dependencies = [ "num-bigint", "oxide_log", @@ -1193,7 +1193,7 @@ dependencies = [ [[package]] name = "oxide_cfg" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_emit", @@ -1204,7 +1204,7 @@ dependencies = [ [[package]] name = "oxide_cli" -version = "0.8.70" +version = "0.8.71" dependencies = [ "ansi_term", "bumpalo", @@ -1226,7 +1226,7 @@ dependencies = [ [[package]] name = "oxide_code_cache" -version = "0.8.70" +version = "0.8.71" dependencies = [ "lru", "oxide_bytecode", @@ -1235,7 +1235,7 @@ dependencies = [ [[package]] name = "oxide_compiler" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_cfg", @@ -1255,7 +1255,7 @@ dependencies = [ [[package]] name = "oxide_dce" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_cfg", @@ -1269,7 +1269,7 @@ dependencies = [ [[package]] name = "oxide_emit" -version = "0.8.70" +version = "0.8.71" dependencies = [ "num-bigint", "oxc_allocator", @@ -1284,7 +1284,7 @@ dependencies = [ [[package]] name = "oxide_engine" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_compiler", @@ -1296,7 +1296,7 @@ dependencies = [ [[package]] name = "oxide_ir" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_log", @@ -1305,7 +1305,7 @@ dependencies = [ [[package]] name = "oxide_kernel" -version = "0.8.70" +version = "0.8.71" dependencies = [ "bumpalo", "dashmap", @@ -1319,7 +1319,7 @@ dependencies = [ [[package]] name = "oxide_liveness" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_cfg", @@ -1331,7 +1331,7 @@ dependencies = [ [[package]] name = "oxide_log" -version = "0.8.70" +version = "0.8.71" dependencies = [ "tracing", "tracing-appender", @@ -1340,7 +1340,7 @@ dependencies = [ [[package]] name = "oxide_parser" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxc_allocator", "oxc_ast", @@ -1355,7 +1355,7 @@ dependencies = [ [[package]] name = "oxide_regalloc" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_cfg", @@ -1371,7 +1371,7 @@ dependencies = [ [[package]] name = "oxide_runtime_api" -version = "0.8.70" +version = "0.8.71" dependencies = [ "num-bigint", "num-traits", @@ -1384,7 +1384,7 @@ dependencies = [ [[package]] name = "oxide_test262" -version = "0.8.70" +version = "0.8.71" dependencies = [ "oxide_bytecode", "oxide_compiler", @@ -1402,7 +1402,7 @@ dependencies = [ [[package]] name = "oxide_types" -version = "0.8.70" +version = "0.8.71" dependencies = [ "bumpalo", "dashmap", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "oxide_vm" -version = "0.8.70" +version = "0.8.71" dependencies = [ "bumpalo", "chrono", diff --git a/Cargo.toml b/Cargo.toml index e468f06b..3108b79a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ members = [ ] [workspace.package] -version = "0.8.70" +version = "0.8.71" edition = "2021" license = "MIT" rust-version = "1.80" diff --git a/crates/oxide_test262/src/runner.rs b/crates/oxide_test262/src/runner.rs index 198b835d..918f91e5 100644 --- a/crates/oxide_test262/src/runner.rs +++ b/crates/oxide_test262/src/runner.rs @@ -97,8 +97,9 @@ impl oxide_emit::module::ModuleSourceLoader for Test262ModuleLoader { /// 单测执行主流程:拼 harness 前缀 → parse → compile → run; /// 依据 `negative` 元数据校验期望错误,未实现特性按 no_skip 选择跳过或失败。 /// -/// script 臂经 `Engine::compile` 便捷路径(parse + CodeForge 缓存);module 臂 +/// script 臂经 `Engine::compile_with` 便捷路径(parse + CodeForge 缓存);module 臂 /// 保留本模块的 `parse_module` + 依赖加载器(引擎暂不吸收 module 加载器面)。 +/// 两臂共享同一 compiler,`no_regalloc` 旗标对两臂同口径生效。 #[expect(clippy::too_many_arguments)] fn run_test_inner( path: &Path, source: &str, meta: &TestMeta, engine: &Engine, harness: &HarnessSources, @@ -139,7 +140,9 @@ fn run_test_inner( }; // module 臂保留本模块的 parse_module + 依赖加载器;script 臂经引擎 - // 便捷路径(parse + CodeForge 缓存)。 + // 便捷路径(parse + CodeForge 缓存)。compiler 由两臂共享, + // no_regalloc 旗标对两臂同口径生效。 + let compiler = if no_regalloc { Compiler::new().with_regalloc(false) } else { Compiler::new() }; let module_result = if is_module { let alloc = oxide_parser::Allocator::default(); let program = match oxide_parser::parse_module(&alloc, &code) { @@ -153,13 +156,12 @@ fn run_test_inner( return TestResult::fail(path.to_path_buf(), dur, msg); } }; - let compiler = if no_regalloc { Compiler::new().with_regalloc(false) } else { Compiler::new() }; let mut loader = Test262ModuleLoader; compiler .compile_module(&program, path.to_string_lossy().as_ref(), &mut loader) .map(Arc::new) } else { - engine.compile(&code) + engine.compile_with(&code, &compiler) }; let module = match module_result {