diff --git a/examples/guide-supported-types-examples/js_value.js b/examples/guide-supported-types-examples/js_value.js new file mode 100644 index 00000000..f5bb9a51 --- /dev/null +++ b/examples/guide-supported-types-examples/js_value.js @@ -0,0 +1,10 @@ +import { + take_js_value_by_value, + take_js_value_by_shared_ref, + return_js_value, +} from './guide_supported_types_examples'; + +take_js_value_by_value(42); +take_js_value_by_shared_ref('hello'); + +let v = return_js_value(); diff --git a/examples/guide-supported-types-examples/src/js_value.rs b/examples/guide-supported-types-examples/src/js_value.rs new file mode 100644 index 00000000..5d03d2f3 --- /dev/null +++ b/examples/guide-supported-types-examples/src/js_value.rs @@ -0,0 +1,12 @@ +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +pub fn take_js_value_by_value(x: JsValue) {} + +#[wasm_bindgen] +pub fn take_js_value_by_shared_ref(x: &JsValue) {} + +#[wasm_bindgen] +pub fn return_js_value() -> JsValue { + JsValue::NULL +} diff --git a/examples/guide-supported-types-examples/src/lib.rs b/examples/guide-supported-types-examples/src/lib.rs index 0ed9d397..cfaea27e 100755 --- a/examples/guide-supported-types-examples/src/lib.rs +++ b/examples/guide-supported-types-examples/src/lib.rs @@ -9,3 +9,4 @@ pub mod str; pub mod string; pub mod char; pub mod bool; +pub mod js_value; diff --git a/guide/src/reference/types.md b/guide/src/reference/types.md index f15ae3be..e28105ee 100644 --- a/guide/src/reference/types.md +++ b/guide/src/reference/types.md @@ -125,7 +125,19 @@ garbage-collected heap and the Wasm linear memory with `TextDecoder` and | `T` parameter | `&T` parameter | `&mut T` parameter | `T` return value | `Option` parameter | `Option` return value | JavaScript representation | |:---:|:---:|:---:|:---:|:---:|:---:|:---:| -| Yes | Yes | Yes | Yes | No | No | Any JavaScript value | +| Yes | Yes | No | Yes | No | No | Any JavaScript value | + +### Example Rust Usage + +```rust +{{#include ../../../examples/guide-supported-types-examples/src/js_value.rs}} +``` + +### Example JavaScript Usage + +```js +{{#include ../../../examples/guide-supported-types-examples/js_value.js}} +``` ## `Box<[JsValue]>`