From 4284aed79a36d43191998329204d73c68f62a2fe Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Mon, 14 Sep 2026 10:56:32 +0000 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=E9=94=AE=E5=9F=9F?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E6=8E=A2=E9=92=88=E4=B8=8E=E6=AD=BB=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=B9=B6=E4=BF=AE=E6=AD=A3=E5=8A=A8=E6=80=81=E6=BA=90?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/oxide_builtins/src/object.rs | 12 ------------ crates/oxide_vm/src/vm.rs | 12 +++--------- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/crates/oxide_builtins/src/object.rs b/crates/oxide_builtins/src/object.rs index 32cb81aa..f3b01005 100644 --- a/crates/oxide_builtins/src/object.rs +++ b/crates/oxide_builtins/src/object.rs @@ -87,18 +87,6 @@ fn int_or_string_index(vm: &H, si: u32) -> Option { is_integer_index(key).then(|| key.parse::().unwrap()) } -/// 键 si 物化为字符串文本:整数键反解数字串,其余查 interner。 -/// -/// 注意返回的是**键空间文本**(孤立 surrogate 为 FFFD+hex4 转义形态),仅可用于 -/// 键比较/数字判定等键空间用途;产 JS 可见串值用 `key_si_to_js_value`。 -pub fn key_si_to_string(vm: &H, si: u32) -> String { - if is_int_key(si) { - int_key_value(si).to_string() - } else { - vm.kernel_core().perm_interner().lookup(si).unwrap_or("").to_string() - } -} - /// 键 si 物化为 JS 可见字符串值(Object.keys / ownKeys / entries 族): /// 整数键反解数字串,字符串键经 `decode_key` 还原单元序列(孤立 surrogate /// 物化为 FlatU16,良形键与旧行为逐位一致)。 diff --git a/crates/oxide_vm/src/vm.rs b/crates/oxide_vm/src/vm.rs index 3df06421..bc08ba90 100644 --- a/crates/oxide_vm/src/vm.rs +++ b/crates/oxide_vm/src/vm.rs @@ -1422,14 +1422,7 @@ impl Vm { // 其它原始值(BigInt 等):ToPropertyKey 一律转字符串并走规范化,避免与 // 数字键区间分裂(`o[5n]` 与 `o["5"]`/`o[5]` 必须同键)。 let units = oxide_runtime_api::to_units_full(val, self)?; - if std::env::var("OXIDE_KEY_PROBE").is_ok() { - eprintln!("[KEYPROBE] tail fallback units={:?}", units); - } - let si = self.string_key_units(&units); - if std::env::var("OXIDE_KEY_PROBE").is_ok() { - eprintln!("[KEYPROBE] tail result si={}", si); - } - Ok(si) + Ok(self.string_key_units(&units)) } /// 从良形文本串推导属性键 si(`property_key_si` Flat 分支与 `string_key_si` @@ -2746,7 +2739,8 @@ impl Vm { let program = oxide_parser::parse(&allocator, &source) .map_err(|errs| errs.into_iter().map(|e| e.message).collect::>().join("\n"))?; // 动态路径源契约:调用方以源码域转义(`string_forge::source_escape`) - // 形态传源;正则字面量源文本常量与静态同路径(`pool_key_plain`)。 + // 形态传源;正则字面量源切片经 `source_escape_to_key` 还原注入 + // marker 后入池(编码源口径,区别于静态源的 `pool_key_plain`)。 let mut module = oxide_compiler::compiler::Compiler::new() .with_source_encoded(true) .compile(&program)?;