Skip to content

Commit 866ac45

Browse files
authored
deps: upgrade Jco, StarlingMonkey (#123)
1 parent d6fef24 commit 866ac45

File tree

13 files changed

+417
-364
lines changed

13 files changed

+417
-364
lines changed

Cargo.lock

+285-167
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+12-19
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,25 @@
11
[workspace]
22
members = ["crates/spidermonkey-embedding-splicer"]
3-
exclude = [
4-
"deps/js-compute-runtime/runtime/js-compute-runtime/rust-url",
5-
"deps/js-compute-runtime/runtime/js-compute-runtime/rust-encoding",
6-
"StarlingMonkey/crates/rust-encoding",
7-
"StarlingMonkey/crates/rust-url"
8-
]
3+
exclude = ["StarlingMonkey/crates/rust-url"]
94
resolver = "2"
105

116
[workspace.package]
127
edition = "2021"
138
version = "0.1.0"
149

1510
[workspace.dependencies]
16-
anyhow = "1.0.81"
17-
base64 = "0.22.0"
18-
bitflags = "2.5.0"
19-
env_logger = "0.11.3"
11+
anyhow = "1.0.86"
12+
base64 = "0.22.1"
2013
heck = "0.5"
21-
js-component-bindgen = { version = "1.1.1", no-default-features = ["transpile-bindgen"] }
14+
js-component-bindgen = { git = "https://github.com/bytecodealliance/jco", rev = "3946278b4471961f2d3a6b80576097996472bc07" }
2215
pulldown-cmark = { version = "0.10", default-features = false }
2316
rand = "0.8"
2417
walrus = "0.20.3"
25-
wasm-encoder = "0.201.0"
26-
wasmparser = "0.201.0"
27-
wasmprinter = "0.201.0"
28-
wat = "1.201.0"
29-
wit-bindgen = "0.22.0"
30-
wit-bindgen-core = "0.22.0"
31-
wit-component = { version = "0.201.0", features = ["dummy-module"] }
32-
wit-parser = "0.201.0"
18+
wasm-encoder = "0.212.0"
19+
wasmparser = "0.212.0"
20+
wasmprinter = "0.212.0"
21+
wat = "1.212.0"
22+
wit-bindgen = "0.27.0"
23+
wit-bindgen-core = "0.27.0"
24+
wit-component = { version = "0.212.0", features = ["dummy-module"] }
25+
wit-parser = "0.212.0"

StarlingMonkey

Submodule StarlingMonkey updated 121 files

crates/spidermonkey-embedding-splicer/src/bindgen.rs

+16-5
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,11 @@ pub fn componentize_bindgen(
234234
let mut finalization_registries = Vec::new();
235235
for (key, export) in &resolve.worlds[id].exports {
236236
let key_name = resolve.name_world_key(key);
237-
if let WorldItem::Interface(iface_id) = export {
237+
if let WorldItem::Interface {
238+
id: iface_id,
239+
stability: _,
240+
} = export
241+
{
238242
let iface = &resolve.interfaces[*iface_id];
239243
for ty_id in iface.types.values() {
240244
let ty = &resolve.types[*ty_id];
@@ -277,7 +281,11 @@ pub fn componentize_bindgen(
277281
let mut imported_resource_modules = HashMap::new();
278282
for (key, import) in &resolve.worlds[id].imports {
279283
let key_name = resolve.name_world_key(key);
280-
if let WorldItem::Interface(iface_id) = import {
284+
if let WorldItem::Interface {
285+
id: iface_id,
286+
stability: _,
287+
} = import
288+
{
281289
let iface = &resolve.interfaces[*iface_id];
282290
for ty_id in iface.types.values() {
283291
let ty = &resolve.types[*ty_id];
@@ -441,7 +449,7 @@ impl JsBindgen<'_> {
441449
func.name.to_lower_camel_case(),
442450
);
443451
}
444-
WorldItem::Interface(id) => {
452+
WorldItem::Interface { id, stability: _ } => {
445453
let iface = &self.resolve.interfaces[*id];
446454
for id in iface.types.values() {
447455
if let TypeDefKind::Resource = &self.resolve.types[*id].kind {
@@ -520,7 +528,10 @@ impl JsBindgen<'_> {
520528
WorldItem::Function(f) => {
521529
self.import_bindgen(import_name, f, false, None);
522530
}
523-
WorldItem::Interface(i) => {
531+
WorldItem::Interface {
532+
id: i,
533+
stability: _,
534+
} => {
524535
let iface = &self.resolve.interfaces[*i];
525536
for id in iface.types.values() {
526537
if let TypeDefKind::Resource = &self.resolve.types[*id].kind {
@@ -836,7 +847,7 @@ impl JsBindgen<'_> {
836847
},
837848
src: Source::default(),
838849
resource_map: &resource_map,
839-
cur_resource_borrows: Vec::new(),
850+
cur_resource_borrows: false,
840851
resolve: self.resolve,
841852
callee_resource_dynamic: false,
842853
};

crates/spidermonkey-embedding-splicer/src/lib.rs

+11-13
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use wit_component::{
1616
metadata::{decode, Bindgen},
1717
StringEncoding,
1818
};
19-
use wit_parser::{PackageId, Resolve, UnresolvedPackage};
19+
use wit_parser::{PackageId, Resolve};
2020

2121
wit_bindgen::generate!({
2222
world: "spidermonkey-embedding-splicer",
@@ -79,9 +79,9 @@ fn map_core_fn(cfn: &bindgen::CoreFn) -> CoreFn {
7979
}
8080
}
8181

82-
fn parse_wit(path: &Path) -> Result<(Resolve, PackageId)> {
82+
fn parse_wit(path: &Path) -> Result<(Resolve, Vec<PackageId>)> {
8383
let mut resolve = Resolve::default();
84-
let id = if path.is_dir() {
84+
let ids = if path.is_dir() {
8585
resolve.push_dir(&path)?.0
8686
} else {
8787
let contents =
@@ -90,10 +90,9 @@ fn parse_wit(path: &Path) -> Result<(Resolve, PackageId)> {
9090
Ok(s) => s,
9191
Err(_) => bail!("input file is not valid utf-8"),
9292
};
93-
let pkg = UnresolvedPackage::parse(&path, text)?;
94-
resolve.push(pkg)?
93+
resolve.push_str(&path, text)?
9594
};
96-
Ok((resolve, id))
95+
Ok((resolve, ids))
9796
}
9897

9998
impl Guest for SpidermonkeyEmbeddingSplicerComponent {
@@ -120,20 +119,19 @@ impl Guest for SpidermonkeyEmbeddingSplicerComponent {
120119
) -> Result<SpliceResult, String> {
121120
let source_name = source_name.unwrap_or("source.js".to_string());
122121

123-
let (mut resolve, id) = if let Some(wit_source) = wit_source {
122+
let (mut resolve, ids) = if let Some(wit_source) = wit_source {
124123
let mut resolve = Resolve::default();
125124
let path = PathBuf::from("component.wit");
126-
let pkg = UnresolvedPackage::parse(&path, &wit_source).map_err(|e| e.to_string())?;
127-
128-
let id = resolve.push(pkg).map_err(|e| e.to_string())?;
129-
130-
(resolve, id)
125+
let ids = resolve
126+
.push_str(&path, &wit_source)
127+
.map_err(|e| e.to_string())?;
128+
(resolve, ids)
131129
} else {
132130
parse_wit(&PathBuf::from(wit_path.unwrap())).map_err(|e| format!("{:?}", e))?
133131
};
134132

135133
let world = resolve
136-
.select_world(id, world_name.as_deref())
134+
.select_world(&ids, world_name.as_deref())
137135
.map_err(|e| e.to_string())?;
138136

139137
let mut wasm_bytes = wit_component::dummy_module(&resolve, world);

crates/spidermonkey-embedding-splicer/src/stub_wasi.rs

+5-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use walrus::{
99
Function, FunctionBuilder, FunctionId, FunctionKind, ImportKind, ImportedFunction, InitExpr,
1010
InstrSeqBuilder, LocalId, Module, ValType,
1111
};
12-
use wit_parser::{Resolve, UnresolvedPackage};
12+
use wit_parser::Resolve;
1313

1414
use crate::{parse_wit, Features};
1515

@@ -64,19 +64,17 @@ pub fn stub_wasi(
6464
wit_path: Option<String>,
6565
world_name: Option<String>,
6666
) -> Result<Vec<u8>> {
67-
let (resolve, id) = if let Some(wit_source) = wit_source {
67+
let (resolve, ids) = if let Some(wit_source) = wit_source {
6868
let mut resolve = Resolve::default();
6969
let path = PathBuf::from("component.wit");
70-
let pkg = UnresolvedPackage::parse(&path, &wit_source)?;
70+
let ids = resolve.push_str(&path, &wit_source)?;
7171

72-
let id = resolve.push(pkg)?;
73-
74-
(resolve, id)
72+
(resolve, ids)
7573
} else {
7674
parse_wit(&PathBuf::from(wit_path.unwrap()))?
7775
};
7876

79-
let world = resolve.select_world(id, world_name.as_deref())?;
77+
let world = resolve.select_world(&ids, world_name.as_deref())?;
8078

8179
let target_world = &resolve.worlds[world];
8280
let mut target_world_imports = HashSet::new();

0 commit comments

Comments
 (0)