Add JsString <-> char conversions

These are pretty common and already supported via ABI conversions, yet pretty easy to get wrong when converting them manually.

Fixes #1363.
This commit is contained in:
Ingvar Stepanyan
2019-04-18 14:01:13 +01:00
parent ac7230b678
commit bc4a98d146
2 changed files with 54 additions and 0 deletions

View File

@ -553,3 +553,14 @@ fn is_valid_utf16() {
assert!(!JsString::from_char_code1(0xd800).is_valid_utf16());
assert!(!JsString::from_char_code1(0xdc00).is_valid_utf16());
}
#[wasm_bindgen_test]
fn as_char() {
assert_eq!(JsString::from('a').as_char(), Some('a'));
assert_eq!(JsString::from('🥑').as_char(), Some('🥑'));
assert_eq!(JsString::from("").as_char(), None);
assert_eq!(JsString::from("ab").as_char(), None);
assert_eq!(JsString::from_char_code1(0xd800).as_char(), None);
assert_eq!(JsString::from_char_code1(0xdc00).as_char(), None);
assert_eq!(JsString::from_char_code1(0xdfff).as_char(), None);
}