Skip JIT for lambdas with closure bindings
The closure merging in jit_compile_lambda (copying globals + injecting closure bindings into vm_env_ref) produces incorrect variable resolution for inner functions. Symptoms: sx-parse's read-list-loop mishandles closing parens (siblings become children), parser produces wrong ASTs. Fix: vm_call skips JIT compilation for lambdas with non-empty closures. These run on CEK which handles closures correctly. Top-level defines (empty closure) are still JIT-compiled. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -439,6 +439,7 @@ class OcamlBridge:
|
||||
skipped += 1
|
||||
_logger.warning("OCaml load skipped %s: %s",
|
||||
filepath, e)
|
||||
|
||||
# SSR overrides: effect is a no-op on the server (prevents
|
||||
# reactive loops during island SSR — effects are DOM side-effects)
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user