From 6093fd29d1fe81ca227b6bab062a69803b744e57 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 8 Nov 2018 13:06:03 -0800 Subject: [PATCH] Don't convert boolean arguments going to wasm The wasm spec defines boolean conversion when crossing to the wasm type i32 as 1 for `true` and 0 for `false`, so no need for us to do it ourselves! --- crates/cli-support/src/js/js2rust.rs | 2 +- crates/cli-support/src/js/rust2js.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/cli-support/src/js/js2rust.rs b/crates/cli-support/src/js/js2rust.rs index d90fb5e3..701edeeb 100644 --- a/crates/cli-support/src/js/js2rust.rs +++ b/crates/cli-support/src/js/js2rust.rs @@ -401,7 +401,7 @@ impl<'a, 'b> Js2Rust<'a, 'b> { name = name )); } - self.rust_arguments.push(format!("{} ? 1 : 0", name)); + self.rust_arguments.push(format!("{}", name)); } Descriptor::Char => { self.js_arguments.push((name.clone(), "string".to_string())); diff --git a/crates/cli-support/src/js/rust2js.rs b/crates/cli-support/src/js/rust2js.rs index 769df33c..6e6cc246 100644 --- a/crates/cli-support/src/js/rust2js.rs +++ b/crates/cli-support/src/js/rust2js.rs @@ -489,7 +489,7 @@ impl<'a, 'b> Rust2Js<'a, 'b> { } self.ret_expr = match *ty { - Descriptor::Boolean => "return JS ? 1 : 0;".to_string(), + Descriptor::Boolean => "return JS;".to_string(), Descriptor::Char => "return JS.codePointAt(0);".to_string(), _ => bail!( "unsupported return type for calling JS function from Rust: {:?}",