From 7e7ee4f8232a674442e26dc481d6c514e98accd2 Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Mon, 12 Oct 2026 15:19:09 +0000 Subject: [PATCH] =?UTF-8?q?style:=20=E8=87=AA=E5=8A=A8=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/oxide_fold/src/fold_table.rs | 3 +-- crates/oxide_fold/src/propagate.rs | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/crates/oxide_fold/src/fold_table.rs b/crates/oxide_fold/src/fold_table.rs index e5d7d0b5..e7bdf417 100644 --- a/crates/oxide_fold/src/fold_table.rs +++ b/crates/oxide_fold/src/fold_table.rs @@ -27,8 +27,7 @@ use oxide_bytecode::module::Constant; use oxide_bytecode::opcode::OpCode; use oxide_runtime_api::{ - abstract_eq_primitives, relational_compare, strict_equality, to_boolean, to_int32, to_number, - to_uint32, + abstract_eq_primitives, relational_compare, strict_equality, to_boolean, to_int32, to_number, to_uint32, }; use oxide_types::string_forge::encode_key; use oxide_types::value::JsValue; diff --git a/crates/oxide_fold/src/propagate.rs b/crates/oxide_fold/src/propagate.rs index d72e6e45..c7530b74 100644 --- a/crates/oxide_fold/src/propagate.rs +++ b/crates/oxide_fold/src/propagate.rs @@ -116,9 +116,20 @@ pub fn fold_function(f: &mut IRFunction) -> bool { } // C 组位运算与比较:两操作数须为已知寄存器且均在四变体域 // (BigInt/String/Undefined 操作数由表内守卫不折)。 - OpCode::BIT_AND | OpCode::BIT_OR | OpCode::BIT_XOR | OpCode::SHL | OpCode::SHR - | OpCode::USHR | OpCode::LT | OpCode::GT | OpCode::LTE | OpCode::GTE | OpCode::EQ - | OpCode::NEQ | OpCode::STRICT_EQ | OpCode::STRICT_NEQ => match (inst.a, inst.b) { + OpCode::BIT_AND + | OpCode::BIT_OR + | OpCode::BIT_XOR + | OpCode::SHL + | OpCode::SHR + | OpCode::USHR + | OpCode::LT + | OpCode::GT + | OpCode::LTE + | OpCode::GTE + | OpCode::EQ + | OpCode::NEQ + | OpCode::STRICT_EQ + | OpCode::STRICT_NEQ => match (inst.a, inst.b) { (Operand::Reg(x), Operand::Reg(y)) => match ( known.get(x as usize).and_then(|c| c.as_ref()), known.get(y as usize).and_then(|c| c.as_ref()),