* Space Lua: `<close>` attribute, `__close` metamethod and extensive tests
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
* Space Lua: Align arithmetical error messages with Lua 5.4
**Fixes:**
- Tighten `tonumber` semantics to accept hex floats like `0x1.2` while
keeping plain hex as integers.
- Improve Lua compatibility by fixing relational `>`/`>=` operand
ordering to preserve correct error type direction.
**Changes:**
- Update concatenation errors to include the operand type.
- Add `LuaStringCoercionError` from numeric coercion and handle it
in `luaOp()` to emit correct messages (or fallback).
- Raise
> `bad argument #2 to 'tonumber' (base out of range)`
for invalid bases.
- Update test suite
**Notes:**
- The `arithmetic_test.lua` test suite now passes if run with Lua 5.4.
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
* Run `make fmt`
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
* Rename `assert_throws` to `assertThrows` in Lua test suite
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
* Replace `LuaStringCoercionError` class with sentinel constant
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
---------
Signed-off-by: Matouš Jan Fialka <mjf@mjf.cz>
* Add result-or-promise (RP) exec model to interpreter (async-first).
* Add centralized table property access with fast misses.
* Update table string keys to be object map.
* Update error contexts to be more consistent and precise.
* Update evaluator to return either values or _Promises_.
* Update func calls, unary and bin operations, and expression lists.
* Update _stdlib_ to the changes and improve errors.
* Add tests to validate async control flow and error contexts.
* Add dedicated benches that isolate the _runtime_ from parsing.