4769987b20
A host word signals failure by throwing across the JS boundary, and the
browser runtime reported that exception with its Debug form, so an
empty-stack RESIZE surfaced as
call_func(134) failed: JsValue(Error: Stack underflow ...)
with the engine's JS stack trace glued on. The thrown message IS the
Forth message, so take it verbatim: 'Stack underflow', the same text the
native CLI prints. Exceptions without a message keep the call context --
those are genuine runtime faults, not Forth throws.
CATCH is unaffected: it reads the throw code from its own channel rather
than parsing messages. Verified against a fresh VM in Node (initSync +
WaferRepl): host-word underflow, compiled-guard underflow, THROW,
unknown word and ' RESIZE CATCH . all match the native CLI.
Ships as v0.2.4.
24 lines
543 B
TOML
24 lines
543 B
TOML
[package]
|
|
name = "wafer-web"
|
|
description = "WAFER browser REPL — WebAssembly Forth in the browser"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
wafer-core = { path = "../core", version = "0.2.4", default-features = false, features = ["crypto"] }
|
|
wasm-bindgen = "0.2"
|
|
js-sys = "0.3"
|
|
send_wrapper = { workspace = true }
|
|
wasm-encoder = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
wasm-bindgen-test = "0.3"
|