mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-16 18:20:51 +00:00
Merge pull request #1617 from alexcrichton/fix-gc
Be sure to GC our imports as well as the module
This commit is contained in:
commit
7f55067fa0
@ -204,8 +204,18 @@ impl<'a> Context<'a> {
|
|||||||
// After all we've done, especially
|
// After all we've done, especially
|
||||||
// `unexport_unused_internal_exports()`, we probably have a bunch of
|
// `unexport_unused_internal_exports()`, we probably have a bunch of
|
||||||
// garbage in the module that's no longer necessary, so delete
|
// garbage in the module that's no longer necessary, so delete
|
||||||
// everything that we don't actually need.
|
// everything that we don't actually need. Afterwards make sure we don't
|
||||||
|
// try to emit bindings for now-nonexistent imports by pruning our
|
||||||
|
// `wasm_import_definitions` set.
|
||||||
walrus::passes::gc::run(self.module);
|
walrus::passes::gc::run(self.module);
|
||||||
|
let remaining_imports = self
|
||||||
|
.module
|
||||||
|
.imports
|
||||||
|
.iter()
|
||||||
|
.map(|i| i.id())
|
||||||
|
.collect::<HashSet<_>>();
|
||||||
|
self.wasm_import_definitions
|
||||||
|
.retain(|id, _| remaining_imports.contains(id));
|
||||||
|
|
||||||
// Cause any future calls to `should_write_global` to panic, making sure
|
// Cause any future calls to `should_write_global` to panic, making sure
|
||||||
// we don't ask for items which we can no longer emit.
|
// we don't ask for items which we can no longer emit.
|
||||||
|
@ -136,3 +136,18 @@ fn works_on_empty_project() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mod npm;
|
mod npm;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn one_export_works() {
|
||||||
|
let (mut cmd, _out_dir) = Project::new("one_export_works")
|
||||||
|
.file(
|
||||||
|
"src/lib.rs",
|
||||||
|
r#"
|
||||||
|
use wasm_bindgen::prelude::*;
|
||||||
|
#[wasm_bindgen]
|
||||||
|
pub fn foo() {}
|
||||||
|
"#,
|
||||||
|
)
|
||||||
|
.wasm_bindgen("");
|
||||||
|
cmd.assert().success();
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user