Expand description
Operator primitives shared across execution engines.
These are pure functions over Value — no interpreter state, no AST.
The tree-walking evaluator, the bytecode VM, and AOT-Rust output all
dispatch to these so the language-level semantics of +, *, ==,
etc. live in exactly one place.
Short-circuiting operators (&&, ||) are NOT here: they depend on
evaluation order and are the engine’s responsibility.