diff --git a/tests/wasm/imports.js b/tests/wasm/imports.js index 131ea9a3..a97c8be6 100644 --- a/tests/wasm/imports.js +++ b/tests/wasm/imports.js @@ -101,3 +101,6 @@ exports.assert_dead_import_not_generated = function() { const bindings = fs.readFileSync(filename); assert.ok(!bindings.includes("unused_import")); }; + +exports.import_inside_function_works = function() {}; +exports.import_inside_private_module = function() {}; diff --git a/tests/wasm/imports.rs b/tests/wasm/imports.rs index fec06281..c2d3a800 100644 --- a/tests/wasm/imports.rs +++ b/tests/wasm/imports.rs @@ -175,3 +175,31 @@ fn rename_static_with_string() { fn dead_imports_not_generated() { assert_dead_import_not_generated(); } + +#[wasm_bindgen_test] +#[cfg(feature = "nightly")] +fn import_inside_function_works() { + #[wasm_bindgen(module = "tests/wasm/imports.js")] + extern { + fn import_inside_function_works(); + } + import_inside_function_works(); +} + +#[wasm_bindgen_test] +#[cfg(feature = "nightly")] +fn private_module_imports_work() { + private::foo(); +} + +mod private { + use wasm_bindgen::prelude::*; + + pub fn foo() { + #[wasm_bindgen(module = "tests/wasm/imports.js")] + extern { + fn import_inside_private_module(); + } + import_inside_private_module(); + } +}