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§
- Comparison
Handler - Handles comparison and logical operations for the VM