diff --git a/crates/oxide_compiler/src/counter.rs b/crates/oxide_compiler/src/counter.rs index bb7848c9..1238aa11 100644 --- a/crates/oxide_compiler/src/counter.rs +++ b/crates/oxide_compiler/src/counter.rs @@ -205,9 +205,8 @@ impl Compiler { } Expression::StaticMemberExpression(member) => { self.count_expression(&member.object, ctx); - ctx.alloc_reg(); // key register + ctx.alloc_reg(); ctx.projected_pc += 1; // LOAD_CONST key - ctx.alloc_reg(); // result register ctx.projected_pc += 1; // IC_GET_PROP ctx.projected_pc += 1; // IC ext word } diff --git a/crates/oxide_compiler/src/emitter.rs b/crates/oxide_compiler/src/emitter.rs index 980f0b5a..2eee4990 100644 --- a/crates/oxide_compiler/src/emitter.rs +++ b/crates/oxide_compiler/src/emitter.rs @@ -382,15 +382,14 @@ impl Compiler { (idx & 0xFF) as u8, ((idx >> 8) & 0xFF) as u8, )); - let result_reg = ctx.alloc_reg(); ctx.emit(opcode::encode( OpCode::IC_GET_PROP, - result_reg, + 0, obj_reg, key_reg, )); ctx.emit(0); - Ok(result_reg) + Ok(obj_reg) } Expression::ComputedMemberExpression(member) => { let obj_reg = self.emit_expression(&member.object, ctx)?;