Skip to content

Commit

Permalink
fix: imports mappings (#325)
Browse files Browse the repository at this point in the history
  • Loading branch information
guybedford authored Dec 28, 2023
1 parent 9c28f4a commit b2cd1f3
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 13 deletions.
24 changes: 12 additions & 12 deletions crates/js-component-bindgen/src/transpile_bindgen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1696,20 +1696,20 @@ fn map_import(map: &Option<HashMap<String, String>>, impt: &str) -> (String, Opt
};
if let Some(map) = map.as_ref() {
if let Some(mapping) = map.get(impt) {
return if let Some(hash_idx) = mapping.find('#') {
return if let Some(hash_idx) = mapping[1..].find('#') {
(
mapping[0..hash_idx].to_string(),
Some(mapping[hash_idx + 1..].into()),
mapping[0..hash_idx + 1].to_string(),
Some(mapping[hash_idx + 2..].into()),
)
} else {
(mapping.into(), None)
};
}
if let Some(mapping) = map.get(impt_sans_version) {
return if let Some(hash_idx) = mapping.find('#') {
return if let Some(hash_idx) = mapping[1..].find('#') {
(
mapping[0..hash_idx].to_string(),
Some(mapping[hash_idx + 1..].into()),
mapping[0..hash_idx + 1].to_string(),
Some(mapping[hash_idx + 2..].into()),
)
} else {
(mapping.into(), None)
Expand All @@ -1723,10 +1723,10 @@ fn map_import(map: &Option<HashMap<String, String>>, impt: &str) -> (String, Opt
let matched = &impt_sans_version[wildcard_idx
..wildcard_idx + impt_sans_version.len() - lhs.len() - rhs.len()];
let mapping = mapping.replace('*', matched);
return if let Some(hash_idx) = mapping.find('#') {
return if let Some(hash_idx) = mapping[1..].find('#') {
(
mapping[0..hash_idx].to_string(),
Some(mapping[hash_idx + 1..].into()),
mapping[0..hash_idx + 1].to_string(),
Some(mapping[hash_idx + 2..].into()),
)
} else {
(mapping, None)
Expand All @@ -1736,10 +1736,10 @@ fn map_import(map: &Option<HashMap<String, String>>, impt: &str) -> (String, Opt
let matched =
&impt[wildcard_idx..wildcard_idx + impt.len() - lhs.len() - rhs.len()];
let mapping = mapping.replace('*', matched);
return if let Some(hash_idx) = mapping.find('#') {
return if let Some(hash_idx) = mapping[1..].find('#') {
(
mapping[0..hash_idx].to_string(),
Some(mapping[hash_idx + 1..].into()),
mapping[0..hash_idx + 1].to_string(),
Some(mapping[hash_idx + 2..].into()),
)
} else {
(mapping, None)
Expand Down
2 changes: 1 addition & 1 deletion submodules/wasmtime
Submodule wasmtime updated 51 files
+11 −27 .github/workflows/main.yml
+113 −34 Cargo.lock
+1 −1 Cargo.toml
+1 −1 RELEASES.md
+0 −57 ci/run-wasi-nn-example.sh
+2 −2 cranelift/codegen/src/isa/aarch64/lower/isle.rs
+1 −9 cranelift/codegen/src/isle_prelude.rs
+70 −0 cranelift/codegen/src/opts.rs
+1 −1 cranelift/codegen/src/opts/arithmetic.isle
+17 −13 cranelift/codegen/src/opts/bitops.isle
+11 −11 cranelift/codegen/src/opts/cprop.isle
+11 −2 cranelift/codegen/src/opts/extends.isle
+24 −24 cranelift/codegen/src/opts/icmp.isle
+13 −12 cranelift/codegen/src/opts/selects.isle
+27 −30 cranelift/codegen/src/opts/shifts.isle
+54 −73 cranelift/codegen/src/opts/spaceship.isle
+28 −0 cranelift/codegen/src/prelude_opt.isle
+1 −0 cranelift/filetests/filetests/egraph/extends.clif
+129 −4 cranelift/filetests/filetests/egraph/i128-opts.clif
+16 −0 cranelift/filetests/filetests/egraph/icmp.clif
+25 −2 cranelift/filetests/filetests/egraph/select.clif
+100 −52 cranelift/filetests/filetests/egraph/spaceship.clif
+63 −0 cranelift/filetests/filetests/isa/x64/bmask.clif
+6 −0 cranelift/filetests/filetests/pcc/succeed/const.clif
+4 −4 crates/component-macro/src/bindgen.rs
+7 −2 crates/runtime/src/sys/windows/mmap.rs
+1 −0 crates/test-programs/Cargo.toml
+13 −8 crates/test-programs/artifacts/build.rs
+38 −13 crates/test-programs/src/bin/api_proxy_streaming.rs
+59 −0 crates/test-programs/src/bin/nn_image_classification.rs
+53 −0 crates/test-programs/src/bin/nn_image_classification_named.rs
+50 −15 crates/test-programs/src/bin/preview2_tcp_bind.rs
+4 −12 crates/test-programs/src/bin/preview2_udp_bind.rs
+9 −66 crates/test-programs/src/bin/proxy_echo.rs
+59 −159 crates/test-programs/src/bin/proxy_hash.rs
+35 −0 crates/test-programs/src/sockets.rs
+1 −0 crates/wasi-common/src/snapshots/preview_1/error.rs
+5 −0 crates/wasi-http/wit/deps/sockets/tcp.wit
+6 −0 crates/wasi-nn/Cargo.toml
+0 −6 crates/wasi-nn/README.md
+1 −0 crates/wasi-nn/src/lib.rs
+97 −0 crates/wasi-nn/src/testing.rs
+92 −0 crates/wasi-nn/tests/all.rs
+86 −27 crates/wasi/src/preview2/host/network.rs
+31 −31 crates/wasi/src/preview2/host/tcp.rs
+10 −15 crates/wasi/src/preview2/host/udp.rs
+14 −18 crates/wasi/src/preview2/tcp.rs
+12 −13 crates/wasi/src/preview2/udp.rs
+5 −0 crates/wasi/wit/deps/sockets/tcp.wit
+1 −1 docs/stability-tiers.md
+6 −0 supply-chain/audits.toml
15 changes: 15 additions & 0 deletions test/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,21 @@ export async function apiTest (fixtures) {
ok(source.includes(exports[i][0]));
});

test('Transpile map into package imports', async () => {
const name = 'flavorful';
const component = await readFile(`test/fixtures/components/${name}.component.wasm`);
const { files, imports } = await transpile(component, {
name,
map: {
'testwasi': '#testimport'
},
});
strictEqual(imports.length, 2);
strictEqual(imports[0], '#testimport');
const source = Buffer.from(files[name + '.js']).toString();
ok(source.includes('\'#testimport\''));
});

test('Optimize', async () => {
const component = await readFile(`test/fixtures/components/flavorful.component.wasm`);
const { component: optimizedComponent } = await opt(component);
Expand Down

0 comments on commit b2cd1f3

Please sign in to comment.