Demangle Rust symbols by default

This commit is contained in:
Alex Crichton 2018-04-11 11:43:18 -07:00
parent d1a4bffb3a
commit b9b8756cd0
3 changed files with 11 additions and 1 deletions

View File

@ -1171,7 +1171,7 @@ impl<'a> Context<'a> {
let module = mem::replace(self.module, Module::default()); let module = mem::replace(self.module, Module::default());
let wasm_bytes = parity_wasm::serialize(module).unwrap(); let wasm_bytes = parity_wasm::serialize(module).unwrap();
let bytes = wasm_gc::Config::new() let bytes = wasm_gc::Config::new()
.demangle(false) .demangle(self.config.demangle)
.gc(&wasm_bytes) .gc(&wasm_bytes)
.unwrap(); .unwrap();
*self.module = deserialize_buffer(&bytes).unwrap(); *self.module = deserialize_buffer(&bytes).unwrap();

View File

@ -19,6 +19,7 @@ pub struct Bindgen {
browser: bool, browser: bool,
debug: bool, debug: bool,
typescript: bool, typescript: bool,
demangle: bool,
} }
#[derive(Debug)] #[derive(Debug)]
@ -38,6 +39,7 @@ impl Bindgen {
browser: false, browser: false,
debug: false, debug: false,
typescript: false, typescript: false,
demangle: true,
} }
} }
@ -66,6 +68,11 @@ impl Bindgen {
self self
} }
pub fn demangle(&mut self, demangle: bool) -> &mut Bindgen {
self.demangle = demangle;
self
}
pub fn generate<P: AsRef<Path>>(&mut self, path: P) -> Result<(), Error> { pub fn generate<P: AsRef<Path>>(&mut self, path: P) -> Result<(), Error> {
self._generate(path.as_ref()) self._generate(path.as_ref())
} }

View File

@ -24,6 +24,7 @@ Options:
--browser Generate output that only works in a browser --browser Generate output that only works in a browser
--typescript Output a TypeScript definition file --typescript Output a TypeScript definition file
--debug Include otherwise-extraneous debug checks in output --debug Include otherwise-extraneous debug checks in output
--no-demangle Don't demangle Rust symbol names
-V --version Print the version number of wasm-bindgen -V --version Print the version number of wasm-bindgen
"; ";
@ -35,6 +36,7 @@ struct Args {
flag_out_dir: Option<PathBuf>, flag_out_dir: Option<PathBuf>,
flag_debug: bool, flag_debug: bool,
flag_version: bool, flag_version: bool,
flag_no_demangle: bool,
arg_input: Option<PathBuf>, arg_input: Option<PathBuf>,
} }
@ -58,6 +60,7 @@ fn main() {
.nodejs(args.flag_nodejs) .nodejs(args.flag_nodejs)
.browser(args.flag_browser) .browser(args.flag_browser)
.debug(args.flag_debug) .debug(args.flag_debug)
.demangle(!args.flag_no_demangle)
.typescript(args.flag_typescript); .typescript(args.flag_typescript);
let out_dir = match args.flag_out_dir { let out_dir = match args.flag_out_dir {