Gate‑C(Core) OOB strict fail‑fast; String VM handler normalization; JSON lint Stage‑B root fixes via scanner field boxing and BinOp operand slotify; docs + smokes update

This commit is contained in:
nyash-codex
2025-11-01 18:45:26 +09:00
parent c331296552
commit 47bd2d2ee2
15 changed files with 280 additions and 107 deletions

View File

@ -134,6 +134,9 @@ impl MirInterpreter {
};
self.box_trace_emit_call(&cls, method, args.len());
}
if std::env::var("NYASH_VM_TRACE").ok().as_deref() == Some("1") && method == "trim" {
eprintln!("[vm-trace] handle_box_call: method=trim (pre-dispatch)");
}
// Debug: trace length dispatch receiver type before any handler resolution
if method == "length" && std::env::var("NYASH_VM_TRACE").ok().as_deref() == Some("1") {
let recv = self.reg_load(box_val).unwrap_or(VMValue::Void);
@ -202,8 +205,14 @@ impl MirInterpreter {
trace_dispatch!(method, "instance_box");
return Ok(());
}
if std::env::var("NYASH_VM_TRACE").ok().as_deref() == Some("1") && method == "trim" {
eprintln!("[vm-trace] dispatch trying boxes_string");
}
if super::boxes_string::try_handle_string_box(self, dst, box_val, method, args)? {
trace_dispatch!(method, "string_box");
if std::env::var("NYASH_VM_TRACE").ok().as_deref() == Some("1") && method == "trim" {
eprintln!("[vm-trace] dispatch handled by boxes_string");
}
return Ok(());
}
if super::boxes_array::try_handle_array_box(self, dst, box_val, method, args)? {