From 16f9dfd4a1a1989c06d8e5d88a23d306c0813b68 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 22 Nov 2019 02:18:06 -0500 Subject: start using seed on the web side --- Cargo.lock | 111 +++++- teleterm-web/Cargo.toml | 2 + teleterm-web/src/lib.rs | 99 +++--- teleterm-web/src/prelude.rs | 2 + teleterm-web/src/ws.rs | 55 +++ teleterm/static/index.html | 6 +- teleterm/static/teleterm_web.js | 630 +++++++++++++++++++++++++++++++++-- teleterm/static/teleterm_web_bg.wasm | Bin 26093 -> 304649 bytes 8 files changed, 837 insertions(+), 68 deletions(-) create mode 100644 teleterm-web/src/prelude.rs create mode 100644 teleterm-web/src/ws.rs diff --git a/Cargo.lock b/Cargo.lock index 0b4fdd2..69e2815 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -315,6 +315,16 @@ dependencies = [ "toml", ] +[[package]] +name = "console_error_panic_hook" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + [[package]] name = "constant_time_eq" version = "0.1.4" @@ -474,6 +484,15 @@ dependencies = [ "syn 1.0.7", ] +[[package]] +name = "dbg" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4677188513e0e9d7adced5997cf9a1e7a3c996c994f90093325c5332c1a8b221" +dependencies = [ + "version_check 0.1.5", +] + [[package]] name = "digest" version = "0.7.6" @@ -532,6 +551,12 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" +[[package]] +name = "enclose" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1056f553da426e9c025a662efa48b52e62e0a3a7648aa2d15aeaaf7f0d329357" + [[package]] name = "encoding_rs" version = "0.8.20" @@ -583,7 +608,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9" dependencies = [ "backtrace", - "version_check", + "version_check 0.1.5", ] [[package]] @@ -722,6 +747,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "getopts" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +dependencies = [ + "unicode-width", +] + [[package]] name = "getrandom" version = "0.1.13" @@ -739,6 +773,17 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" +[[package]] +name = "gloo-timers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e1136fb2586cee1d7eeea23a85eab15f9336294bb8fccafac62fa3410a1f28" +dependencies = [ + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "gotham" version = "0.5.0-dev" @@ -1163,7 +1208,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" dependencies = [ "memchr", - "version_check", + "version_check 0.1.5", ] [[package]] @@ -1360,6 +1405,18 @@ dependencies = [ "bitflags", ] +[[package]] +name = "pulldown-cmark" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77043da1282374688ee212dc44b3f37ff929431de9c9adc3053bd3cee5630357" +dependencies = [ + "bitflags", + "getopts", + "memchr", + "unicase", +] + [[package]] name = "quick-error" version = "1.2.2" @@ -1765,6 +1822,29 @@ dependencies = [ "core-foundation-sys", ] +[[package]] +name = "seed" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6c7a232f602b6ff24f090ef43dd71527ad4cd12cb29e028c5e597565bc5c426" +dependencies = [ + "console_error_panic_hook", + "cookie", + "dbg", + "enclose", + "futures", + "gloo-timers", + "indexmap", + "js-sys", + "pulldown-cmark 0.5.3", + "serde", + "serde_json", + "version_check 0.9.1", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "semver" version = "0.9.0" @@ -1884,7 +1964,7 @@ dependencies = [ "cargo_metadata", "error-chain", "glob", - "pulldown-cmark", + "pulldown-cmark 0.2.0", "serde_json", "tempdir", "walkdir", @@ -2047,6 +2127,8 @@ dependencies = [ name = "teleterm-web" version = "0.1.0" dependencies = [ + "js-sys", + "seed", "wasm-bindgen", "web-sys", ] @@ -2496,7 +2578,7 @@ version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e2e6bd1e59e56598518beb94fd6db628ded570326f0a98c679a304bd9f00150" dependencies = [ - "version_check", + "version_check 0.1.5", ] [[package]] @@ -2626,6 +2708,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" +[[package]] +name = "version_check" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" + [[package]] name = "vt100" version = "0.6.3" @@ -2684,6 +2772,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4568ae1b4e07ca907b1a4de41174eaa3e5be4066c024475586b7842725f69a9" dependencies = [ "cfg-if", + "serde", + "serde_json", "wasm-bindgen-macro", ] @@ -2702,6 +2792,19 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83420b37346c311b9ed822af41ec2e82839bfe99867ec6c54e2da43b7538771c" +dependencies = [ + "cfg-if", + "futures", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.54" diff --git a/teleterm-web/Cargo.toml b/teleterm-web/Cargo.toml index be9fed2..7a9a7f9 100644 --- a/teleterm-web/Cargo.toml +++ b/teleterm-web/Cargo.toml @@ -11,5 +11,7 @@ publish = false crate-type = ["cdylib", "rlib"] [dependencies] +js-sys = "0.3" +seed = "0.4" wasm-bindgen = "0.2" web-sys = { version = "0.3", features = ["ErrorEvent", "MessageEvent", "WebSocket"] } diff --git a/teleterm-web/src/lib.rs b/teleterm-web/src/lib.rs index 4d3e84d..8b770a5 100644 --- a/teleterm-web/src/lib.rs +++ b/teleterm-web/src/lib.rs @@ -1,5 +1,7 @@ -use wasm_bindgen::prelude::*; -use wasm_bindgen::JsCast as _; +mod prelude; +mod ws; + +use crate::prelude::*; #[wasm_bindgen] extern "C" { @@ -7,44 +9,65 @@ extern "C" { fn log(s: &str); } -#[wasm_bindgen(start)] -pub fn main() -> Result<(), JsValue> { - log("loaded"); - - let ws = web_sys::WebSocket::new("ws://127.0.0.1:4145/watch")?; - - let msg_cb = - Closure::wrap(Box::new(move |event: web_sys::MessageEvent| { - log(&format!("message {:?}", event)); - }) as Box); - ws.set_onmessage(Some(msg_cb.as_ref().unchecked_ref())); - msg_cb.forget(); - - let err_cb = Closure::wrap(Box::new(move |event: web_sys::ErrorEvent| { - log(&format!("error {:?}", event)); - }) as Box); - ws.set_onerror(Some(err_cb.as_ref().unchecked_ref())); - err_cb.forget(); - - let cloned_ws = ws.clone(); - let open_cb = Closure::wrap(Box::new(move |_| { - log("opened"); - match cloned_ws.send_with_str("ping1") { - Ok(_) => log("sent ping1 successfully"), - Err(e) => { - log(&format!("error sending ping: {:?}", e)); - return; +const WATCH_URL: &str = "ws://127.0.0.1:4145/watch"; + +#[derive(Clone)] +enum Msg { + Connected(JsValue), + Disconnected(JsValue), + Message(MessageEvent), + Error(JsValue), +} + +struct Model { + ws: WebSocket, +} + +fn init(_: Url, orders: &mut impl Orders) -> Init { + log("init"); + let ws = ws::connect(WATCH_URL, orders); + log("created ws"); + Init::new(Model { ws }) +} + +fn update(msg: Msg, model: &mut Model, _orders: &mut impl Orders) { + log("update"); + match msg { + Msg::Connected(_) => { + log("connected"); + match model.ws.send_with_str("ping1") { + Ok(_) => log("sent ping1 successfully"), + Err(e) => { + log(&format!("error sending ping: {:?}", e)); + return; + } } - } - match cloned_ws.send_with_str("ping2") { - Ok(_) => log("sent ping2 successfully"), - Err(e) => { - log(&format!("error sending ping: {:?}", e)); + match model.ws.send_with_str("ping2") { + Ok(_) => log("sent ping2 successfully"), + Err(e) => { + log(&format!("error sending ping: {:?}", e)); + } } } - }) as Box); - ws.set_onopen(Some(open_cb.as_ref().unchecked_ref())); - open_cb.forget(); + Msg::Disconnected(_) => { + log("disconnected"); + } + Msg::Message(msg) => { + log(&format!("message {:?}", msg)); + } + Msg::Error(e) => { + log(&format!("error {:?}", e)); + } + } +} + +fn view(_model: &Model) -> impl View { + log("view"); + vec![seed::h1!["it's a seed app"]] +} - Ok(()) +#[wasm_bindgen(start)] +pub fn start() { + log("start"); + seed::App::build(init, update, view).build_and_start(); } diff --git a/teleterm-web/src/prelude.rs b/teleterm-web/src/prelude.rs new file mode 100644 index 0000000..369318c --- /dev/null +++ b/teleterm-web/src/prelude.rs @@ -0,0 +1,2 @@ +pub use seed::prelude::*; +pub use web_sys::*; diff --git a/teleterm-web/src/ws.rs b/teleterm-web/src/ws.rs new file mode 100644 index 0000000..a2ab566 --- /dev/null +++ b/teleterm-web/src/ws.rs @@ -0,0 +1,55 @@ +use crate::prelude::*; +use wasm_bindgen::JsCast as _; + +pub(crate) fn connect( + url: &str, + orders: &mut impl Orders, +) -> WebSocket { + let ws = WebSocket::new(url).unwrap(); + + register_ws_handler( + WebSocket::set_onopen, + crate::Msg::Connected, + &ws, + orders, + ); + register_ws_handler( + WebSocket::set_onclose, + crate::Msg::Disconnected, + &ws, + orders, + ); + register_ws_handler( + WebSocket::set_onmessage, + crate::Msg::Message, + &ws, + orders, + ); + register_ws_handler( + WebSocket::set_onerror, + crate::Msg::Error, + &ws, + orders, + ); + + ws +} + +fn register_ws_handler( + ws_cb_setter: fn(&WebSocket, Option<&js_sys::Function>), + msg: F, + ws: &web_sys::WebSocket, + orders: &mut impl Orders, +) where + T: wasm_bindgen::convert::FromWasmAbi + 'static, + F: Fn(T) -> crate::Msg + 'static, +{ + let (app, msg_mapper) = (orders.clone_app(), orders.msg_mapper()); + + let closure = Closure::new(move |data| { + app.update(msg_mapper(msg(data))); + }); + + ws_cb_setter(ws, Some(closure.as_ref().unchecked_ref())); + closure.forget(); +} diff --git a/teleterm/static/index.html b/teleterm/static/index.html index 58a7c36..2b8e30e 100644 --- a/teleterm/static/index.html +++ b/teleterm/static/index.html @@ -1,12 +1,10 @@ - + +
- - -

it's a page

diff --git a/teleterm/static/teleterm_web.js b/teleterm/static/teleterm_web.js index 824d843..b553b27 100644 --- a/teleterm/static/teleterm_web.js +++ b/teleterm/static/teleterm_web.js @@ -18,18 +18,30 @@ function addHeapObject(obj) { return idx; } function __wbg_elem_binding0(arg0, arg1, arg2) { - wasm.__wbg_function_table.get(2)(arg0, arg1, addHeapObject(arg2)); + wasm.__wbg_function_table.get(19)(arg0, arg1, addHeapObject(arg2)); } function __wbg_elem_binding1(arg0, arg1, arg2) { - wasm.__wbg_function_table.get(2)(arg0, arg1, addHeapObject(arg2)); + wasm.__wbg_function_table.get(19)(arg0, arg1, addHeapObject(arg2)); } function __wbg_elem_binding2(arg0, arg1, arg2) { - wasm.__wbg_function_table.get(2)(arg0, arg1, addHeapObject(arg2)); + wasm.__wbg_function_table.get(19)(arg0, arg1, addHeapObject(arg2)); +} +function __wbg_elem_binding3(arg0, arg1, arg2) { + wasm.__wbg_function_table.get(23)(arg0, arg1, arg2); +} +function __wbg_elem_binding4(arg0, arg1, arg2) { + wasm.__wbg_function_table.get(143)(arg0, arg1, addHeapObject(arg2)); +} +function __wbg_elem_binding5(arg0, arg1, arg2, arg3, arg4) { + wasm.__wbg_function_table.get(170)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4)); +} +function __wbg_elem_binding6(arg0, arg1, arg2, arg3) { + wasm.__wbg_function_table.get(174)(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); } /** */ -export function main() { - wasm.main(); +export function start() { + wasm.start(); } function getObject(idx) { return heap[idx]; } @@ -62,10 +74,6 @@ function getStringFromWasm(ptr, len) { return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len)); } -function handleError(e) { - wasm.__wbindgen_exn_store(addHeapObject(e)); -} - let WASM_VECTOR_LEN = 0; let cachedTextEncoder = new TextEncoder('utf-8'); @@ -121,6 +129,22 @@ function getInt32Memory() { return cachegetInt32Memory; } +function handleError(e) { + wasm.__wbindgen_exn_store(addHeapObject(e)); +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +let cachegetUint32Memory = null; +function getUint32Memory() { + if (cachegetUint32Memory === null || cachegetUint32Memory.buffer !== wasm.memory.buffer) { + cachegetUint32Memory = new Uint32Array(wasm.memory.buffer); + } + return cachegetUint32Memory; +} + function debugString(val) { // primitive types const type = typeof val; @@ -193,19 +217,400 @@ function init(module) { let result; const imports = {}; imports.wbg = {}; + imports.wbg.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); + }; imports.wbg.__wbindgen_cb_forget = function(arg0) { takeObject(arg0); }; + imports.wbg.__wbindgen_cb_drop = function(arg0) { + const obj = takeObject(arg0).original; + if (obj.cnt-- == 1) { + obj.a = 0; + return true; + } + const ret = false; + return ret; + }; + imports.wbg.__wbindgen_json_parse = function(arg0, arg1) { + const ret = JSON.parse(getStringFromWasm(arg0, arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_string_new = function(arg0, arg1) { + const ret = getStringFromWasm(arg0, arg1); + return addHeapObject(ret); + }; imports.wbg.__wbg_log_93d35dab6e237612 = function(arg0, arg1) { console.log(getStringFromWasm(arg0, arg1)); }; - imports.wbg.__wbindgen_object_drop_ref = function(arg0) { - takeObject(arg0); - }; imports.wbg.__wbindgen_object_clone_ref = function(arg0) { const ret = getObject(arg0); return addHeapObject(ret); }; + imports.wbg.__wbg_new_59cb74e423758ede = function() { + const ret = new Error(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_stack_558ba5917b466edd = function(arg0, arg1) { + const ret = getObject(arg1).stack; + const ret0 = passStringToWasm(ret); + const ret1 = WASM_VECTOR_LEN; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + }; + imports.wbg.__wbg_error_4bb6c2a97407129a = function(arg0, arg1) { + const v0 = getStringFromWasm(arg0, arg1).slice(); + wasm.__wbindgen_free(arg0, arg1 * 1); + console.error(v0); + }; + imports.wbg.__widl_instanceof_Window = function(arg0) { + const ret = getObject(arg0) instanceof Window; + return ret; + }; + imports.wbg.__widl_f_create_element_Document = function(arg0, arg1, arg2) { + try { + const ret = getObject(arg0).createElement(getStringFromWasm(arg1, arg2)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_create_element_ns_Document = function(arg0, arg1, arg2, arg3, arg4) { + try { + const ret = getObject(arg0).createElementNS(arg1 === 0 ? undefined : getStringFromWasm(arg1, arg2), getStringFromWasm(arg3, arg4)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_create_text_node_Document = function(arg0, arg1, arg2) { + const ret = getObject(arg0).createTextNode(getStringFromWasm(arg1, arg2)); + return addHeapObject(ret); + }; + imports.wbg.__widl_f_get_element_by_id_Document = function(arg0, arg1, arg2) { + const ret = getObject(arg0).getElementById(getStringFromWasm(arg1, arg2)); + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__widl_f_query_selector_Document = function(arg0, arg1, arg2) { + try { + const ret = getObject(arg0).querySelector(getStringFromWasm(arg1, arg2)); + return isLikeNone(ret) ? 0 : addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_instanceof_Element = function(arg0) { + const ret = getObject(arg0) instanceof Element; + return ret; + }; + imports.wbg.__widl_f_closest_Element = function(arg0, arg1, arg2) { + try { + const ret = getObject(arg0).closest(getStringFromWasm(arg1, arg2)); + return isLikeNone(ret) ? 0 : addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_get_attribute_Element = function(arg0, arg1, arg2, arg3) { + const ret = getObject(arg1).getAttribute(getStringFromWasm(arg2, arg3)); + const ptr0 = isLikeNone(ret) ? 0 : passStringToWasm(ret); + const len0 = WASM_VECTOR_LEN; + const ret0 = ptr0; + const ret1 = len0; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + }; + imports.wbg.__widl_f_get_attribute_names_Element = function(arg0) { + const ret = getObject(arg0).getAttributeNames(); + return addHeapObject(ret); + }; + imports.wbg.__widl_f_remove_attribute_Element = function(arg0, arg1, arg2) { + try { + getObject(arg0).removeAttribute(getStringFromWasm(arg1, arg2)); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_set_attribute_Element = function(arg0, arg1, arg2, arg3, arg4) { + try { + getObject(arg0).setAttribute(getStringFromWasm(arg1, arg2), getStringFromWasm(arg3, arg4)); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_namespace_uri_Element = function(arg0, arg1) { + const ret = getObject(arg1).namespaceURI; + const ptr0 = isLikeNone(ret) ? 0 : passStringToWasm(ret); + const len0 = WASM_VECTOR_LEN; + const ret0 = ptr0; + const ret1 = len0; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + }; + imports.wbg.__widl_f_tag_name_Element = function(arg0, arg1) { + const ret = getObject(arg1).tagName; + const ret0 = passStringToWasm(ret); + const ret1 = WASM_VECTOR_LEN; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + }; + imports.wbg.__widl_f_prevent_default_Event = function(arg0) { + getObject(arg0).preventDefault(); + }; + imports.wbg.__widl_f_target_Event = function(arg0) { + const ret = getObject(arg0).target; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__widl_f_add_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) { + try { + getObject(arg0).addEventListener(getStringFromWasm(arg1, arg2), getObject(arg3)); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_remove_event_listener_with_callback_EventTarget = function(arg0, arg1, arg2, arg3) { + try { + getObject(arg0).removeEventListener(getStringFromWasm(arg1, arg2), getObject(arg3)); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_instanceof_HTMLButtonElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLButtonElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLButtonElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HTMLDataElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLDataElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLDataElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HTMLElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLElement; + return ret; + }; + imports.wbg.__widl_f_focus_HTMLElement = function(arg0) { + try { + getObject(arg0).focus(); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_instanceof_HTMLInputElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLInputElement; + return ret; + }; + imports.wbg.__widl_f_set_checked_HTMLInputElement = function(arg0, arg1) { + getObject(arg0).checked = arg1 !== 0; + }; + imports.wbg.__widl_f_type_HTMLInputElement = function(arg0, arg1) { + const ret = getObject(arg1).type; + const ret0 = passStringToWasm(ret); + const ret1 = WASM_VECTOR_LEN; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + }; + imports.wbg.__widl_f_set_value_HTMLInputElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HTMLLIElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLLIElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLLIElement = function(arg0, arg1) { + getObject(arg0).value = arg1; + }; + imports.wbg.__widl_instanceof_HTMLMenuItemElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLMenuItemElement; + return ret; + }; + imports.wbg.__widl_f_set_checked_HTMLMenuItemElement = function(arg0, arg1) { + getObject(arg0).checked = arg1 !== 0; + }; + imports.wbg.__widl_instanceof_HTMLMeterElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLMeterElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLMeterElement = function(arg0, arg1) { + getObject(arg0).value = arg1; + }; + imports.wbg.__widl_instanceof_HTMLOptionElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLOptionElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLOptionElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HTMLOutputElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLOutputElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLOutputElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HTMLParamElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLParamElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLParamElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HTMLProgressElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLProgressElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLProgressElement = function(arg0, arg1) { + getObject(arg0).value = arg1; + }; + imports.wbg.__widl_instanceof_HTMLSelectElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLSelectElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLSelectElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HTMLTextAreaElement = function(arg0) { + const ret = getObject(arg0) instanceof HTMLTextAreaElement; + return ret; + }; + imports.wbg.__widl_f_set_value_HTMLTextAreaElement = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_instanceof_HashChangeEvent = function(arg0) { + const ret = getObject(arg0) instanceof HashChangeEvent; + return ret; + }; + imports.wbg.__widl_f_new_url_HashChangeEvent = function(arg0, arg1) { + const ret = getObject(arg1).newURL; + const ret0 = passStringToWasm(ret); + const ret1 = WASM_VECTOR_LEN; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + }; + imports.wbg.__widl_f_push_state_with_url_History = function(arg0, arg1, arg2, arg3, arg4, arg5) { + try { + getObject(arg0).pushState(getObject(arg1), getStringFromWasm(arg2, arg3), arg4 === 0 ? undefined : getStringFromWasm(arg4, arg5)); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_pathname_Location = function(arg0, arg1) { + try { + const ret = getObject(arg1).pathname; + const ret0 = passStringToWasm(ret); + const ret1 = WASM_VECTOR_LEN; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_search_Location = function(arg0, arg1) { + try { + const ret = getObject(arg1).search; + const ret0 = passStringToWasm(ret); + const ret1 = WASM_VECTOR_LEN; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_hash_Location = function(arg0, arg1) { + try { + const ret = getObject(arg1).hash; + const ret0 = passStringToWasm(ret); + const ret1 = WASM_VECTOR_LEN; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_instanceof_Node = function(arg0) { + const ret = getObject(arg0) instanceof Node; + return ret; + }; + imports.wbg.__widl_f_append_child_Node = function(arg0, arg1) { + try { + const ret = getObject(arg0).appendChild(getObject(arg1)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_insert_before_Node = function(arg0, arg1, arg2) { + try { + const ret = getObject(arg0).insertBefore(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_remove_child_Node = function(arg0, arg1) { + try { + const ret = getObject(arg0).removeChild(getObject(arg1)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_replace_child_Node = function(arg0, arg1, arg2) { + try { + const ret = getObject(arg0).replaceChild(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_node_type_Node = function(arg0) { + const ret = getObject(arg0).nodeType; + return ret; + }; + imports.wbg.__widl_f_child_nodes_Node = function(arg0) { + const ret = getObject(arg0).childNodes; + return addHeapObject(ret); + }; + imports.wbg.__widl_f_first_child_Node = function(arg0) { + const ret = getObject(arg0).firstChild; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__widl_f_next_sibling_Node = function(arg0) { + const ret = getObject(arg0).nextSibling; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__widl_f_text_content_Node = function(arg0, arg1) { + const ret = getObject(arg1).textContent; + const ptr0 = isLikeNone(ret) ? 0 : passStringToWasm(ret); + const len0 = WASM_VECTOR_LEN; + const ret0 = ptr0; + const ret1 = len0; + getInt32Memory()[arg0 / 4 + 0] = ret0; + getInt32Memory()[arg0 / 4 + 1] = ret1; + }; + imports.wbg.__widl_f_set_text_content_Node = function(arg0, arg1, arg2) { + getObject(arg0).textContent = arg1 === 0 ? undefined : getStringFromWasm(arg1, arg2); + }; + imports.wbg.__widl_f_get_NodeList = function(arg0, arg1) { + const ret = getObject(arg0)[arg1 >>> 0]; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__widl_f_length_NodeList = function(arg0) { + const ret = getObject(arg0).length; + return ret; + }; + imports.wbg.__widl_instanceof_PopStateEvent = function(arg0) { + const ret = getObject(arg0) instanceof PopStateEvent; + return ret; + }; + imports.wbg.__widl_f_state_PopStateEvent = function(arg0) { + const ret = getObject(arg0).state; + return addHeapObject(ret); + }; imports.wbg.__widl_f_new_WebSocket = function(arg0, arg1) { try { const ret = new WebSocket(getStringFromWasm(arg0, arg1)); @@ -227,9 +632,157 @@ function init(module) { imports.wbg.__widl_f_set_onerror_WebSocket = function(arg0, arg1) { getObject(arg0).onerror = getObject(arg1); }; + imports.wbg.__widl_f_set_onclose_WebSocket = function(arg0, arg1) { + getObject(arg0).onclose = getObject(arg1); + }; imports.wbg.__widl_f_set_onmessage_WebSocket = function(arg0, arg1) { getObject(arg0).onmessage = getObject(arg1); }; + imports.wbg.__widl_f_cancel_animation_frame_Window = function(arg0, arg1) { + try { + getObject(arg0).cancelAnimationFrame(arg1); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_request_animation_frame_Window = function(arg0, arg1) { + try { + const ret = getObject(arg0).requestAnimationFrame(getObject(arg1)); + return ret; + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_document_Window = function(arg0) { + const ret = getObject(arg0).document; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__widl_f_location_Window = function(arg0) { + const ret = getObject(arg0).location; + return addHeapObject(ret); + }; + imports.wbg.__widl_f_history_Window = function(arg0) { + try { + const ret = getObject(arg0).history; + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__widl_f_error_1_ = function(arg0) { + console.error(getObject(arg0)); + }; + imports.wbg.__wbg_call_aa56d0132fec7569 = function(arg0, arg1) { + try { + const ret = getObject(arg0).call(getObject(arg1)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__wbg_forEach_e651488daf2c21cc = function(arg0, arg1, arg2) { + const state0 = {a: arg1, b: arg2}; + const cb0 = (arg0, arg1, arg2) => { + const a = state0.a; + state0.a = 0; + try { + return __wbg_elem_binding5(a, state0.b, arg0, arg1, arg2); + } finally { + state0.a = a; + } + }; + try { + getObject(arg0).forEach(cb0); + } finally { + state0.a = state0.b = 0; + } + }; + imports.wbg.__wbg_newnoargs_0c3c518a7f7c56bf = function(arg0, arg1) { + const ret = new Function(getStringFromWasm(arg0, arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_call_34f87007c5d2a397 = function(arg0, arg1, arg2) { + try { + const ret = getObject(arg0).call(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__wbg_new_5e8d465c199e6ff3 = function(arg0, arg1) { + const state0 = {a: arg0, b: arg1}; + const cb0 = (arg0, arg1) => { + const a = state0.a; + state0.a = 0; + try { + return __wbg_elem_binding6(a, state0.b, arg0, arg1); + } finally { + state0.a = a; + } + }; + try { + const ret = new Promise(cb0); + return addHeapObject(ret); + } finally { + state0.a = state0.b = 0; + } + }; + imports.wbg.__wbg_resolve_04ca3cb0d333a4f0 = function(arg0) { + const ret = Promise.resolve(getObject(arg0)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_then_1fa2e92ee4bdbc93 = function(arg0, arg1) { + const ret = getObject(arg0).then(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_then_486e2e2b1fb1bbf4 = function(arg0, arg1, arg2) { + const ret = getObject(arg0).then(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_globalThis_4fa2faeae7a7a380 = function() { + try { + const ret = globalThis.globalThis; + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__wbg_self_ed02073ec1d8fef4 = function() { + try { + const ret = self.self; + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__wbg_window_356847be61f4a80f = function() { + try { + const ret = window.window; + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__wbg_global_6580a67633b0dbc1 = function() { + try { + const ret = global.global; + return addHeapObject(ret); + } catch (e) { + handleError(e) + } + }; + imports.wbg.__wbindgen_is_undefined = function(arg0) { + const ret = getObject(arg0) === undefined; + return ret; + }; + imports.wbg.__wbindgen_string_get = function(arg0, arg1) { + const obj = getObject(arg0); + if (typeof(obj) !== 'string') return 0; + const ptr = passStringToWasm(obj); + getUint32Memory()[arg1 / 4] = WASM_VECTOR_LEN; + const ret = ptr; + return ret; + }; imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { const ret = debugString(getObject(arg1)); const ret0 = passStringToWasm(ret); @@ -240,10 +793,7 @@ function init(module) { imports.wbg.__wbindgen_throw = function(arg0, arg1) { throw new Error(getStringFromWasm(arg0, arg1)); }; - imports.wbg.__wbindgen_rethrow = function(arg0) { - throw takeObject(arg0); - }; - imports.wbg.__wbindgen_closure_wrapper17 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper163 = function(arg0, arg1, arg2) { const state = { a: arg0, b: arg1, cnt: 1 }; const real = (arg0) => { state.cnt++; @@ -252,7 +802,7 @@ function init(module) { try { return __wbg_elem_binding0(a, state.b, arg0); } finally { - if (--state.cnt === 0) wasm.__wbg_function_table.get(3)(a, state.b); + if (--state.cnt === 0) wasm.__wbg_function_table.get(20)(a, state.b); else state.a = a; } } @@ -261,16 +811,16 @@ function init(module) { const ret = real; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper19 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper159 = function(arg0, arg1, arg2) { const state = { a: arg0, b: arg1, cnt: 1 }; const real = (arg0) => { state.cnt++; const a = state.a; state.a = 0; try { - return __wbg_elem_binding1(a, state.b, arg0); + return __wbg_elem_binding3(a, state.b, arg0); } finally { - if (--state.cnt === 0) wasm.__wbg_function_table.get(3)(a, state.b); + if (--state.cnt === 0) wasm.__wbg_function_table.get(20)(a, state.b); else state.a = a; } } @@ -279,7 +829,25 @@ function init(module) { const ret = real; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper21 = function(arg0, arg1, arg2) { + imports.wbg.__wbindgen_closure_wrapper692 = function(arg0, arg1, arg2) { + const state = { a: arg0, b: arg1, cnt: 1 }; + const real = (arg0) => { + state.cnt++; + const a = state.a; + state.a = 0; + try { + return __wbg_elem_binding4(a, state.b, arg0); + } finally { + if (--state.cnt === 0) wasm.__wbg_function_table.get(144)(a, state.b); + else state.a = a; + } + } + ; + real.original = state; + const ret = real; + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper157 = function(arg0, arg1, arg2) { const state = { a: arg0, b: arg1, cnt: 1 }; const real = (arg0) => { state.cnt++; @@ -288,7 +856,25 @@ function init(module) { try { return __wbg_elem_binding2(a, state.b, arg0); } finally { - if (--state.cnt === 0) wasm.__wbg_function_table.get(3)(a, state.b); + if (--state.cnt === 0) wasm.__wbg_function_table.get(20)(a, state.b); + else state.a = a; + } + } + ; + real.original = state; + const ret = real; + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper161 = function(arg0, arg1, arg2) { + const state = { a: arg0, b: arg1, cnt: 1 }; + const real = (arg0) => { + state.cnt++; + const a = state.a; + state.a = 0; + try { + return __wbg_elem_binding1(a, state.b, arg0); + } finally { + if (--state.cnt === 0) wasm.__wbg_function_table.get(20)(a, state.b); else state.a = a; } } diff --git a/teleterm/static/teleterm_web_bg.wasm b/teleterm/static/teleterm_web_bg.wasm index 37ef254..9070ad9 100644 Binary files a/teleterm/static/teleterm_web_bg.wasm and b/teleterm/static/teleterm_web_bg.wasm differ -- cgit v1.2.3-54-g00ecf