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:
@ -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)? {
|
||||
|
||||
Reference in New Issue
Block a user