mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-04-30 16:12:16 +00:00
Add failing immutable slice test
This commit is contained in:
parent
177ef22673
commit
1d0c2fee9e
@ -151,6 +151,11 @@ export function new_title() {
|
|||||||
return document.createElement("title");
|
return document.createElement("title");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function new_webgl_rendering_context() {
|
||||||
|
const canvas = document.createElement('canvas');
|
||||||
|
return canvas.getContext('webgl');
|
||||||
|
}
|
||||||
|
|
||||||
export function new_xpath_result() {
|
export function new_xpath_result() {
|
||||||
let xmlDoc = new DOMParser().parseFromString("<root><value>tomato</value></root>", "application/xml");
|
let xmlDoc = new DOMParser().parseFromString("<root><value>tomato</value></root>", "application/xml");
|
||||||
let xpathResult = xmlDoc.evaluate("/root//value", xmlDoc, null, XPathResult.ANY_TYPE, null);
|
let xpathResult = xmlDoc.evaluate("/root//value", xmlDoc, null, XPathResult.ANY_TYPE, null);
|
||||||
|
26
crates/web-sys/tests/wasm/immutable_slices.rs
Normal file
26
crates/web-sys/tests/wasm/immutable_slices.rs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//! When generating our web_sys APIs we default to setting slice references that
|
||||||
|
//! get passed to JS as mutable in case they get mutated in JS.
|
||||||
|
//!
|
||||||
|
//! In certain cases we know for sure that the slice will not get mutated - for
|
||||||
|
//! example when working with the WebGlRenderingContext APIs.
|
||||||
|
//!
|
||||||
|
//! These tests ensure that whitelisted methods do indeed accept mutable slices.
|
||||||
|
//!
|
||||||
|
//! @see https://github.com/rustwasm/wasm-bindgen/issues/1005
|
||||||
|
|
||||||
|
use wasm_bindgen::prelude::*;
|
||||||
|
use wasm_bindgen_test::*;
|
||||||
|
use web_sys::WebGlRenderingContext;
|
||||||
|
|
||||||
|
#[wasm_bindgen(module = "./tests/wasm/element.js")]
|
||||||
|
extern "C" {
|
||||||
|
fn new_webgl_rendering_context() -> WebGlRenderingContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure that our whitelisted WebGlRenderingContext methods work
|
||||||
|
#[wasm_bindgen_test]
|
||||||
|
fn test_webgl_rendering_context_immutable_slices() {
|
||||||
|
let gl = new_webgl_rendering_context();
|
||||||
|
|
||||||
|
gl.vertex_attrib1fv_with_f32_array(0, &[5000.]);
|
||||||
|
}
|
@ -56,6 +56,7 @@ pub mod style_element;
|
|||||||
pub mod table_element;
|
pub mod table_element;
|
||||||
pub mod title_element;
|
pub mod title_element;
|
||||||
pub mod xpath_result;
|
pub mod xpath_result;
|
||||||
|
pub mod immutable_slices;
|
||||||
|
|
||||||
#[wasm_bindgen_test]
|
#[wasm_bindgen_test]
|
||||||
fn deref_works() {
|
fn deref_works() {
|
||||||
|
@ -1 +1,3 @@
|
|||||||
// intentionally left blank
|
// intentionally left blank
|
||||||
|
|
||||||
|
// QUESTION FOR REVIEWER: WHY? (I'll include this context in the comment)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user