@@ -27,6 +27,9 @@ extern "C" {
2727
2828 #[wasm_bindgen(js_namespace = console)]
2929 fn log(s: &str);
30+
31+ #[wasm_bindgen(js_namespace = console)]
32+ fn error(s: &str);
3033}
3134
3235struct WockApp {
@@ -86,19 +89,25 @@ fn render_sail<'a>(ctx: &mut RenderContext<'a>, manx: Rc<Noun>) -> Node<'a> {
8689
8790 let sig = ctx.nouns.sig.clone();
8891
89− let new_model = slam(
92+ let event = cell(&value, &sig);
93+
94+ match slam(
9095 &mut ctx,
9196 &app.nock,
9297 &cell(
9398 &Rc::new(Noun::from_bytes(b"move")),
94− &cell(&app.model, &cell(&value, &sig)),
99+ &cell(&app.model, &event),
95100 ),
96− )
97− .unwrap();
98−
99− app.model = new_model;
100−
101− vdom.schedule_render();
101+ ) {
102+ Ok(new_model) => {
103+ app.model = new_model;
104+ vdom.schedule_render();
105+ }
106+ Err(_) => error(&*format!(
107+ "Application failed to process event: {}",
108+ event
109+ )),
110+ };
102111 },
103112 )
104113 },