runtime: print raw values for console handle shims (#135)

This commit is contained in:
moe-charm
2025-09-11 03:54:35 +09:00
committed by GitHub
parent 4201c63001
commit f124731764

View File

@ -2386,50 +2386,66 @@ pub extern "C" fn nyash_console_log_export(ptr: *const i8) -> i64 {
0 0
} }
// Exported as: nyash.console.log_handle(i64 handle) -> i64 // Exported as: nyash.console.log_handle(i64 handle) -> i64
#[export_name = "nyash.console.log_handle"] #[export_name = "nyash.console.log_handle"]
pub extern "C" fn nyash_console_log_handle(handle: i64) -> i64 { pub extern "C" fn nyash_console_log_handle(handle: i64) -> i64 {
if handle <= 0 { return 0; } if handle <= 0 {
return 0;
}
if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) { if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) {
let s = obj.to_string_box().value; // 既存の統一文字列変換メソッド let s = obj.to_string_box().value; // 既存の統一文字列変換メソッド
println!("{}", s); println!("{}", s);
} else {
println!("{}", handle);
} }
0 0
} }
// Exported as: nyash.console.warn_handle(i64 handle) -> i64 // Exported as: nyash.console.warn_handle(i64 handle) -> i64
#[export_name = "nyash.console.warn_handle"] #[export_name = "nyash.console.warn_handle"]
pub extern "C" fn nyash_console_warn_handle(handle: i64) -> i64 { pub extern "C" fn nyash_console_warn_handle(handle: i64) -> i64 {
if handle <= 0 { return 0; } if handle <= 0 {
return 0;
}
if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) { if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) {
let s = obj.to_string_box().value; let s = obj.to_string_box().value;
eprintln!("WARN: {}", s); eprintln!("WARN: {}", s);
} else {
eprintln!("WARN: {}", handle);
} }
0 0
} }
// Exported as: nyash.console.error_handle(i64 handle) -> i64 // Exported as: nyash.console.error_handle(i64 handle) -> i64
#[export_name = "nyash.console.error_handle"] #[export_name = "nyash.console.error_handle"]
pub extern "C" fn nyash_console_error_handle(handle: i64) -> i64 { pub extern "C" fn nyash_console_error_handle(handle: i64) -> i64 {
if handle <= 0 { return 0; } if handle <= 0 {
return 0;
}
if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) { if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) {
let s = obj.to_string_box().value; let s = obj.to_string_box().value;
eprintln!("ERROR: {}", s); eprintln!("ERROR: {}", s);
} else {
eprintln!("ERROR: {}", handle);
} }
0 0
} }
// Exported as: nyash.debug.trace_handle(i64 handle) -> i64 // Exported as: nyash.debug.trace_handle(i64 handle) -> i64
#[export_name = "nyash.debug.trace_handle"] #[export_name = "nyash.debug.trace_handle"]
pub extern "C" fn nyash_debug_trace_handle(handle: i64) -> i64 { pub extern "C" fn nyash_debug_trace_handle(handle: i64) -> i64 {
if handle <= 0 { return 0; } if handle <= 0 {
return 0;
}
if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) { if let Some(obj) = nyash_rust::jit::rt::handles::get(handle as u64) {
let s = obj.to_string_box().value; let s = obj.to_string_box().value;
eprintln!("TRACE: {}", s); eprintln!("TRACE: {}", s);
} else {
eprintln!("TRACE: {}", handle);
} }
0 0
} }