Fix bytecode call-site semantics

This commit is contained in:
sergeych committed 2026-01-26 04:09:49 +03:00
1 parent 059e366787
commit 72901d9d4c
13 files changed
+480 -25

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
# Bytecode call-site PIC + fallback gating
Changes
- Added method call PIC path in bytecode VM with new CALL_SLOT/CALL_VIRTUAL opcodes.
- Fixed FieldRef property/delegate resolution to avoid bypassing ObjRecord delegation.
- Prevent delegated ObjRecord mutation by returning a resolved copy.
- Restricted bytecode call compilation to args that are ExpressionStatement (no splat/named/tail-block), fallback otherwise.
Rationale
- Fixes JVM test regressions and avoids premature evaluation of Statement args.
- Keeps delegated/property semantics identical to interpreter.
Tests
- ./gradlew :lynglib:jvmTest
- ./gradlew :lynglib:allTests -x :lynglib:jvmTest