diff --git a/el-compiler/src/codegen-js.el b/el-compiler/src/codegen-js.el index 6cd27ea..7717eaa 100644 --- a/el-compiler/src/codegen-js.el +++ b/el-compiler/src/codegen-js.el @@ -812,6 +812,19 @@ fn js_cg_stmt(stmt: Map, indent: String, declared: [String]) -> [St if kind == "TypeDef" { return declared } if kind == "EnumDef" { return declared } if kind == "Import" { return declared } + + if kind == "TryCatch" { + let try_body = stmt["try_body"] + let catch_name: String = stmt["catch_name"] + let catch_body = stmt["catch_body"] + js_emit_line(indent + "try {") + js_cg_stmts(try_body, indent + " ", native_list_clone(declared)) + js_emit_line(indent + "} catch (" + catch_name + ") {") + js_cg_stmts(catch_body, indent + " ", native_list_clone(declared)) + js_emit_line(indent + "}") + return declared + } + // ExternFn: the function exists in the JS environment (loaded via