mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-04-02 02:11:06 +00:00
Only emit JS glue assertions for move arguments in debug mode
This commit is contained in:
parent
d646b29bb7
commit
75c18f0916
@ -85,7 +85,7 @@ impl<'a, 'b> Js2Rust<'a, 'b> {
|
|||||||
if self.cx.config.debug {
|
if self.cx.config.debug {
|
||||||
self.prelude(
|
self.prelude(
|
||||||
"if (this.ptr === 0) {
|
"if (this.ptr === 0) {
|
||||||
throw new Error('Attempt to use a moved value');
|
throw new Error('Attempt to use a moved value');
|
||||||
}",
|
}",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -330,14 +330,26 @@ impl<'a, 'b> Js2Rust<'a, 'b> {
|
|||||||
self.prelude(&format!(
|
self.prelude(&format!(
|
||||||
"\
|
"\
|
||||||
const ptr{i} = {arg}.ptr;\n\
|
const ptr{i} = {arg}.ptr;\n\
|
||||||
if (ptr{i} === 0) {{
|
",
|
||||||
throw new Error('Attempt to use a moved value');
|
|
||||||
}}
|
|
||||||
{arg}.ptr = 0;\n\
|
|
||||||
",
|
|
||||||
i = i,
|
i = i,
|
||||||
arg = name
|
arg = name
|
||||||
));
|
));
|
||||||
|
if self.cx.config.debug {
|
||||||
|
self.prelude(&format!(
|
||||||
|
"\
|
||||||
|
if (ptr{i} === 0) {{
|
||||||
|
throw new Error('Attempt to use a moved value');
|
||||||
|
}}
|
||||||
|
",
|
||||||
|
i = i,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
self.prelude(&format!(
|
||||||
|
"\
|
||||||
|
{arg}.ptr = 0;\n\
|
||||||
|
",
|
||||||
|
arg = name
|
||||||
|
));
|
||||||
self.rust_arguments.push(format!("ptr{}", i));
|
self.rust_arguments.push(format!("ptr{}", i));
|
||||||
}
|
}
|
||||||
return Ok(self);
|
return Ok(self);
|
||||||
|
@ -124,7 +124,7 @@ exports.js_readonly_fields = () => {
|
|||||||
|
|
||||||
exports.js_double_consume = () => {
|
exports.js_double_consume = () => {
|
||||||
const r = new wasm.DoubleConsume();
|
const r = new wasm.DoubleConsume();
|
||||||
assert.throws(() => r.consume(r), /Attempt to use a moved value/);
|
assert.throws(() => r.consume(r));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user