From 3985484da507a3befe65c2ae70bc53fbc90039a6 Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Sat, 6 Jun 2026 21:58:14 +0800 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_compiler/src/emitter.rs | 54 ++++++++++++++-------------- crates/oxide_test262/src/main.rs | 7 +++- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/crates/oxide_compiler/src/emitter.rs b/crates/oxide_compiler/src/emitter.rs index 185d655e..95af8ba5 100644 --- a/crates/oxide_compiler/src/emitter.rs +++ b/crates/oxide_compiler/src/emitter.rs @@ -646,33 +646,33 @@ impl Compiler { &assign.left { if assign.operator != AssignmentOperator::Assign { - if assign.operator == AssignmentOperator::Addition - || assign.operator == AssignmentOperator::Subtraction - || assign.operator == AssignmentOperator::Multiplication - || assign.operator == AssignmentOperator::Division - || assign.operator == AssignmentOperator::Remainder - || assign.operator == AssignmentOperator::Exponential - { - let rhs = self.emit_expression(&assign.right, ctx)?; - let name = id_ref.name.as_str(); - let var_reg = ctx.lookup_or_global(name); - let op = match assign.operator { - AssignmentOperator::Addition => OpCode::COMPOUND_ADD, - AssignmentOperator::Subtraction => OpCode::COMPOUND_SUB, - AssignmentOperator::Multiplication => OpCode::COMPOUND_MUL, - AssignmentOperator::Division => OpCode::COMPOUND_DIV, - AssignmentOperator::Remainder => OpCode::COMPOUND_MOD, - AssignmentOperator::Exponential => OpCode::COMPOUND_EXP, - _ => unreachable!(), - }; - ctx.emit(opcode::encode(op, var_reg, rhs, 0)); - Ok(var_reg) - } else { - return Err(format!( - "compound assignment operator {:?} not supported", - assign.operator - )); - } + if assign.operator == AssignmentOperator::Addition + || assign.operator == AssignmentOperator::Subtraction + || assign.operator == AssignmentOperator::Multiplication + || assign.operator == AssignmentOperator::Division + || assign.operator == AssignmentOperator::Remainder + || assign.operator == AssignmentOperator::Exponential + { + let rhs = self.emit_expression(&assign.right, ctx)?; + let name = id_ref.name.as_str(); + let var_reg = ctx.lookup_or_global(name); + let op = match assign.operator { + AssignmentOperator::Addition => OpCode::COMPOUND_ADD, + AssignmentOperator::Subtraction => OpCode::COMPOUND_SUB, + AssignmentOperator::Multiplication => OpCode::COMPOUND_MUL, + AssignmentOperator::Division => OpCode::COMPOUND_DIV, + AssignmentOperator::Remainder => OpCode::COMPOUND_MOD, + AssignmentOperator::Exponential => OpCode::COMPOUND_EXP, + _ => unreachable!(), + }; + ctx.emit(opcode::encode(op, var_reg, rhs, 0)); + Ok(var_reg) + } else { + return Err(format!( + "compound assignment operator {:?} not supported", + assign.operator + )); + } } else { let val_reg = self.emit_expression(&assign.right, ctx)?; let name = id_ref.name.as_str(); diff --git a/crates/oxide_test262/src/main.rs b/crates/oxide_test262/src/main.rs index 341caecd..4854965f 100644 --- a/crates/oxide_test262/src/main.rs +++ b/crates/oxide_test262/src/main.rs @@ -199,7 +199,12 @@ fn run_test(path: &Path, source: &str, meta: &TestMeta, kernel: &Arc) -> TestResult { +fn run_test_inner( + path: &Path, + source: &str, + meta: &TestMeta, + kernel: &Arc, +) -> TestResult { let start = std::time::Instant::now(); let code = strip_meta(source);