Skip to content

Commit

Permalink
Merge pull request #1024 from alexcrichton/remove-names
Browse files Browse the repository at this point in the history
Add a flag to remove the wasm name section
  • Loading branch information
alexcrichton committed Nov 9, 2018
2 parents 02cd0c5 + 12fc09a commit 406581d
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
10 changes: 9 additions & 1 deletion crates/cli-support/src/js/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ impl<'a> Context<'a> {
}

pub fn finalize(&mut self, module_name: &str) -> Result<(String, String), Error> {
self.parse_wasm_names();
self.write_classes()?;

self.bind("__wbindgen_object_clone_ref", &|me| {
Expand Down Expand Up @@ -1692,7 +1693,6 @@ impl<'a> Context<'a> {
}

fn gc(&mut self) {
self.parse_wasm_names();
gc::Config::new()
.demangle(self.config.demangle)
.keep_debug(self.config.keep_debug || self.config.debug)
Expand All @@ -1703,6 +1703,14 @@ impl<'a> Context<'a> {
let module = mem::replace(self.module, Module::default());
let module = module.parse_names().unwrap_or_else(|p| p.1);
*self.module = module;
if self.config.remove_name_section {
self.module.sections_mut().retain(|s| {
match s {
Section::Name(_) => false,
_ => true,
}
});
}
}

fn describe(&mut self, name: &str) -> Option<Descriptor> {
Expand Down
7 changes: 7 additions & 0 deletions crates/cli-support/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ pub struct Bindgen {
typescript: bool,
demangle: bool,
keep_debug: bool,
remove_name_section: bool,
// Experimental support for `WeakRefGroup`, an upcoming ECMAScript feature.
// Currently only enable-able through an env var.
weak_refs: bool,
Expand Down Expand Up @@ -62,6 +63,7 @@ impl Bindgen {
typescript: false,
demangle: true,
keep_debug: false,
remove_name_section: false,
weak_refs: env::var("WASM_BINDGEN_WEAKREF").is_ok(),
threads: threads_config(),
}
Expand Down Expand Up @@ -124,6 +126,11 @@ impl Bindgen {
self
}

pub fn remove_name_section(&mut self, remove: bool) -> &mut Bindgen {
self.remove_name_section = remove;
self
}

pub fn generate<P: AsRef<Path>>(&mut self, path: P) -> Result<(), Error> {
self._generate(path.as_ref())
}
Expand Down
3 changes: 3 additions & 0 deletions crates/cli/src/bin/wasm-bindgen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Options:
--debug Include otherwise-extraneous debug checks in output
--no-demangle Don't demangle Rust symbol names
--keep-debug Keep debug sections in wasm files
--remove-name-section Remove the debugging `name` section of the file
-V --version Print the version number of wasm-bindgen
";

Expand All @@ -52,6 +53,7 @@ struct Args {
flag_version: bool,
flag_no_demangle: bool,
flag_no_modules_global: Option<String>,
flag_remove_name_section: bool,
flag_keep_debug: bool,
arg_input: Option<PathBuf>,
}
Expand Down Expand Up @@ -92,6 +94,7 @@ fn rmain(args: &Args) -> Result<(), Error> {
.debug(args.flag_debug)
.demangle(!args.flag_no_demangle)
.keep_debug(args.flag_keep_debug)
.remove_name_section(args.flag_remove_name_section)
.typescript(typescript);
if let Some(ref name) = args.flag_no_modules_global {
b.no_modules_global(name);
Expand Down

0 comments on commit 406581d

Please sign in to comment.