diff --git a/crates/cli-support/src/js/js2rust.rs b/crates/cli-support/src/js/js2rust.rs index d90fb5e3a9c..1ed37c910ee 100644 --- a/crates/cli-support/src/js/js2rust.rs +++ b/crates/cli-support/src/js/js2rust.rs @@ -85,7 +85,7 @@ impl<'a, 'b> Js2Rust<'a, 'b> { if self.cx.config.debug { self.prelude( "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!( "\ 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, 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)); } return Ok(self); diff --git a/tests/wasm/classes.js b/tests/wasm/classes.js index 1b47d3788ba..325ae72cddc 100644 --- a/tests/wasm/classes.js +++ b/tests/wasm/classes.js @@ -124,7 +124,7 @@ exports.js_readonly_fields = () => { exports.js_double_consume = () => { const r = new wasm.DoubleConsume(); - assert.throws(() => r.consume(r), /Attempt to use a moved value/); + assert.throws(() => r.consume(r)); };