From 2ef4b74ca6992b4c6266d84b8996ce12bf23ace4 Mon Sep 17 00:00:00 2001 From: Sendil Kumar Date: Sat, 21 Jul 2018 23:06:36 +0200 Subject: [PATCH] add unescape --- crates/js-sys/src/lib.rs | 9 +++++++++ crates/js-sys/tests/wasm/global_fns.rs | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/crates/js-sys/src/lib.rs b/crates/js-sys/src/lib.rs index 43e2efb2..7630dbbf 100644 --- a/crates/js-sys/src/lib.rs +++ b/crates/js-sys/src/lib.rs @@ -111,6 +111,15 @@ extern "C" { /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape #[wasm_bindgen] pub fn escape(string: &str) -> JsString; + + /// The unescape() function computes a new string in which hexadecimal escape + /// sequences are replaced with the character that it represents. The escape sequences might + /// be introduced by a function like escape. Usually, decodeURI or decodeURIComponent + /// are preferred over unescape. + /// + /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape + #[wasm_bindgen] + pub fn unescape(string: &str) -> JsString; } // Array diff --git a/crates/js-sys/tests/wasm/global_fns.rs b/crates/js-sys/tests/wasm/global_fns.rs index 0e1c9903..ec0e2a67 100644 --- a/crates/js-sys/tests/wasm/global_fns.rs +++ b/crates/js-sys/tests/wasm/global_fns.rs @@ -80,3 +80,11 @@ fn test_escape() { assert_eq!(String::from(escape("ć")), "%u0107"); assert_eq!(String::from(escape("@*_+-./")), "@*_+-./"); } + +#[wasm_bindgen_test] +fn test_unescape() { + assert_eq!(String::from(unescape("abc123")), "abc123"); + assert_eq!(String::from(unescape("%E4%F6%FC")), "äöü"); + assert_eq!(String::from(unescape("%u0107")), "ć"); + assert_eq!(String::from(unescape("@*_+-./")), "@*_+-./"); +}