Module comparison

Source
Expand description

§Comparison Handler

Handles all comparison and logical operations in the VM including equality checks, relational comparisons, and logical operations.

§Operations Supported

  • Equality: equal, not_equal, strict_equal, strict_not_equal
  • Relational: less_than, less_equal, greater_than, greater_equal
  • Logical: logical_and, logical_or, logical_not
  • Bitwise: bitwise_and, bitwise_or, bitwise_xor, bitwise_not

§Comparison Rules

  • Loose Equality: Uses JavaScript-like type coercion
  • Strict Equality: No type coercion, exact value comparison
  • Relational: Numeric comparison with type coercion
  • Logical: Boolean operations with truthy/falsy conversion

§Usage

use jetcrab::vm::executor::instruction_handlers::ComparisonHandler;
use jetcrab::vm::executor::traits::StackOperations;

let mut stack = MyStack::new();
stack.push(Value::Number(5.0));
stack.push(Value::Number(3.0));
ComparisonHandler::greater_than(&mut stack)?;
// Stack now contains: [true]

Structs§

ComparisonHandler
Handles comparison and logical operations for the VM