diff --git a/Cargo.lock b/Cargo.lock index a7e9cfbd866..7f2ab802ecf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -538,8 +538,8 @@ dependencies = [ "lz4_flex", "proc-macro2", "quote", - "syn 2.0.119", - "synstructure", + "syn 3.0.4", + "synstructure 0.14.0", "test-case", ] @@ -778,9 +778,9 @@ checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" [[package]] name = "chacha20" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [ "cfg-if", "cpufeatures", @@ -935,9 +935,9 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.2.2" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958c5d6ecf1f214b4c2bbbbf6ab9523a864bd136dcf71a7e8904799acfe1ad47" +checksum = "136c8c4c3823846e8ba6d4bda011b4e5d5827b8bb0ac26c31f9ab31abe9f54f2" dependencies = [ "unicode-segmentation", "unicode-width", @@ -1137,7 +1137,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.119", - "synstructure", + "synstructure 0.13.2", ] [[package]] @@ -1635,17 +1635,6 @@ dependencies = [ "foldhash 0.1.5", ] -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", -] - [[package]] name = "hashbrown" version = "0.17.1" @@ -2816,9 +2805,9 @@ dependencies = [ [[package]] name = "owo-colors" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" +checksum = "13c45bb4a6ae1280ec0803b1ef9d3455eb50f01efbbe1447ab020f1d54fba9d8" [[package]] name = "page_size" @@ -3159,11 +3148,10 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "regress" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "158a764437582235e3501f683b93a0a6f8d825d04a789dbe5ed30b8799b8908a" +checksum = "32eef8b209c3c1c15dbad02c1f30f9539f00dc7253e0cbcdaae442a50a09d7c1" dependencies = [ - "hashbrown 0.16.1", "memchr", ] @@ -3825,6 +3813,17 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "synstructure" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.4", +] + [[package]] name = "sys-locale" version = "0.3.2" @@ -4290,9 +4289,9 @@ dependencies = [ [[package]] name = "twox-hash" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8464ec13c3691491391d9fce00f6416c9a48e46972f72d7865688be2080192c9" +checksum = "5283634e518fe9e82c7b20520bb4bc209009fd16c82077c802f8111ecbb0117a" [[package]] name = "typeid" @@ -4907,7 +4906,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.119", - "synstructure", + "synstructure 0.13.2", ] [[package]] @@ -4948,7 +4947,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.119", - "synstructure", + "synstructure 0.13.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 1047859847f..a0a0fd5842b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,95 +53,95 @@ small_btree = { version = "~0.1.0", path = "utils/small_btree" } # Shared deps arbitrary = "1" -base64 = "0.23.0" -bitflags = "2.13.0" -clap = "4.6.1" +base64 = "0.23.1" +bitflags = "2.13.1" +clap = "4.6.6" colored = "3.1.1" cow-utils = "0.1.3" -fast-float2 = "0.2.3" +fast-float2 = "0.2.4" hashbrown = "0.17.1" -http = { version = "1.4.1" } +http = { version = "1.5.0" } iana-time-zone = "0.1.65" indexmap = { version = "2.14.0", default-features = false } indoc = "2.0.7" itoa = "1.0.18" jemallocator = "0.5.4" -mimalloc-safe = "0.1.62" +mimalloc-safe = "0.1.65" lz4_flex = "0.14.0" -num-bigint = "0.5.0" +num-bigint = "0.5.1" num-traits = "0.2.19" -once_cell = { version = "1.21.3", default-features = false } +once_cell = { version = "1.21.4", default-features = false } oneshot = "0.2.1" phf = { version = "0.14.0", default-features = false } -pollster = "0.4.0" -regex = "1.12.3" -regress = { version = "0.11.1", features = ["utf16"] } +pollster = "1.0.1" +regex = "1.13.1" +regress = { version = "0.12.0", features = ["utf16"] } reqwest = { version = "0.13.4", default-features = false, features = ["rustls-no-provider"] } -rustls = { version = "0.23.40", default-features = false, features = ["ring"] } -rustc-hash = { version = "2.1.2", default-features = false } -serde_json = "1.0.150" -serde = "1.0.219" +rustls = { version = "0.23.43", default-features = false, features = ["ring"] } +rustc-hash = { version = "2.1.3", default-features = false } +serde_json = "1.0.151" +serde = "1.0.229" static_assertions = "1.1.0" textwrap = "0.16.2" -thin-vec = "0.2.18" -time = { version = "0.3.47", default-features = false, features = [ +thin-vec = "0.2.19" +time = { version = "0.3.55", default-features = false, features = [ "local-offset", "large-dates", "parsing", "formatting", "macros", ] } -log = "0.4.32" -simple_logger = "5.1.0" +log = "0.4.34" +simple_logger = "5.2.0" cargo_metadata = "0.23.1" -trybuild = "1.0.116" +trybuild = "1.0.120" rayon = "1.12.0" -toml = "1.1.2" -color-eyre = "0.6.3" -comfy-table = { version = "7.2.2", default-features = false } -serde_repr = "0.1.20" +toml = "1.1.4" +color-eyre = "0.6.5" +comfy-table = { version = "8.0.0", default-features = false } +serde_repr = "0.1.21" bus = "2.4.1" -wasm-bindgen = { version = "0.2.97", default-features = false } -getrandom = { version = "0.4.2", default-features = false } +wasm-bindgen = { version = "0.2.127", default-features = false } +getrandom = { version = "0.4.3", default-features = false } console_error_panic_hook = "0.1.7" -wasm-bindgen-test = "0.3.65" +wasm-bindgen-test = "0.3.77" smol = "2.0.2" -rustyline = { version = "18.0.0", default-features = false } +rustyline = { version = "18.0.1", default-features = false } dhat = "0.3.3" -quote = "1.0.45" -syn = { version = "2.0.116", default-features = false } +quote = "1.0.47" +syn = { version = "3.0.4", default-features = false } proc-macro2 = "1.0" -synstructure = "0.13" +synstructure = "0.14" measureme = "12.0.3" pastey = "0.2.3" -rand = "0.10.1" -num-integer = "0.1.46" -ryu-js = "1.0.2" +rand = "0.10.2" +num-integer = "0.1.47" +ryu-js = "1.0.3" tap = "1.0.1" -thiserror = { version = "2.0.18", default-features = false } +thiserror = { version = "2.0.20", default-features = false } dashmap = "6.2.1" num_enum = "0.7.6" itertools = { version = "0.15.0", default-features = false } -portable-atomic = "1.13.1" -bytemuck = { version = "1.25.0", default-features = false } -arrayvec = "0.7.6" -intrusive-collections = "0.10.1" +portable-atomic = "1.15.0" +bytemuck = { version = "1.25.2", default-features = false } +arrayvec = "0.7.8" +intrusive-collections = "0.10.3" cfg-if = "1.0.4" -either = "1.16.0" +either = "1.18.0" sys-locale = "0.3.2" -timezone_provider = { version = "0.2.3" } -temporal_rs = { version = "0.2.3", default-features = false, features = ["float64_representable_durations"] } +timezone_provider = { version = "0.2.6" } +temporal_rs = { version = "0.2.6", default-features = false, features = ["float64_representable_durations"] } web-time = "1.1.0" -criterion = "0.8.1" +criterion = "0.8.2" float-cmp = "0.10.0" futures-lite = "2.6.1" test-case = "3.3.1" rstest = "0.26.1" url = "2.5.8" -tokio = { version = "1.52.3", default-features = false } +tokio = { version = "1.53.1", default-features = false } futures-concurrency = "7.7.1" dynify = "0.1.2" -futures-channel = "0.3.32" +futures-channel = "0.3.34" aligned-vec = "0.6.4" temp-env = "0.3.6" strum = { version = "0.28", features = ["derive"] } diff --git a/core/macros/src/class.rs b/core/macros/src/class.rs index 2a74be2dbc3..82cddbb61d6 100644 --- a/core/macros/src/class.rs +++ b/core/macros/src/class.rs @@ -13,7 +13,8 @@ use syn::spanned::Spanned; use syn::visit_mut::VisitMut; use syn::{ Attribute, ConstParam, Expr, FnArg, GenericParam, Ident, ImplItemFn, ItemImpl, LifetimeParam, - Lit, Meta, MetaNameValue, PatType, Receiver, ReturnType, Signature, Token, Type, TypeParam, + Lit, Meta, MetaNameValue, PatType, Receiver, ReceiverKind, ReturnType, Signature, Token, Type, + TypeParam, }; /// The name of a method or accessor, which can be either a string property key or a @@ -106,7 +107,7 @@ impl Function { .unwrap_or("Invalid class for type".to_string()); // `&mut self` - let downcast = if receiver.mutability.is_some() { + let downcast = if let ReceiverKind::Reference(_, _, Some(_)) = receiver.kind { quote! { let object = this.as_object(); let self_ = &mut *object.as_ref().and_then(|o| o.downcast_mut::< #class_ty >()) @@ -115,7 +116,7 @@ impl Function { } else { quote! { let object = this.as_object(); - let self_ = &*object.as_ref().and_then(|o| o.downcast_ref::< #class_ty >()) + let self_ = &mut *object.as_ref().and_then(|o| o.downcast_mut::< #class_ty >()) .ok_or( boa_engine::js_error!( #err ))?; } }; @@ -140,7 +141,11 @@ impl Function { mutability: Some(_), .. }) => match elem.as_ref() { - Type::Path(syn::TypePath { qself: _, path }) => { + Type::Path(syn::TypePath { + qself: _, + attrs: _, + path, + }) => { if let Some(maybe_ctx) = path.segments.last() { maybe_ctx.ident == "Context" } else { diff --git a/core/wintertc/src/console/mod.rs b/core/wintertc/src/console/mod.rs index 7774107913c..e658261502c 100644 --- a/core/wintertc/src/console/mod.rs +++ b/core/wintertc/src/console/mod.rs @@ -115,7 +115,7 @@ pub trait Logger: Trace { /// Returning an error will throw an exception in JavaScript. fn table(&self, data: TableData, state: &ConsoleState, context: &mut Context) -> JsResult<()> { let mut table = Table::new(); - table.load_preset(comfy_table::presets::UTF8_FULL); + table.load_style(comfy_table::presets::UTF8_FULL); table.set_content_arrangement(comfy_table::ContentArrangement::Dynamic); table.set_header(&data.col_names); diff --git a/test262_config.toml b/test262_config.toml index 01a3fecca09..c1d8691e29c 100644 --- a/test262_config.toml +++ b/test262_config.toml @@ -1,4 +1,4 @@ -commit = "5c8206929d81b2d3d727ca6aac56c18358c8d790" +commit = "d86b2294eb0a17eaa281ff12c73c473ec864c72f" [ignored] # Not implemented yet: @@ -21,7 +21,6 @@ features = [ # https://github.com/tc39/proposal-import-bytes "import-bytes", - # https://github.com/tc39/proposal-intl-locale-info "Intl.Locale-info", @@ -49,6 +48,22 @@ features = [ # https://github.com/tc39/proposal-immutable-arraybuffer "immutable-arraybuffer", + # Iterator Includes + # https://github.com/tc39/proposal-iterator-includes + "iterator-includes", + + # Iterator Chunking + # https://github.com/tc39/proposal-iterator-chunking + "iterator-chunking", + + # Iterator Join + # https://github.com/tc39/proposal-iterator-join + "Iterator.prototype.join", + + # Error Stack Accessor + # https://github.com/tc39/proposal-error-stack-accessor + "error-stack-accessor", + ### Non-standard "caller", ] diff --git a/tests/fuzz/Cargo.toml b/tests/fuzz/Cargo.toml index 4896ad8e830..01e81fc512c 100644 --- a/tests/fuzz/Cargo.toml +++ b/tests/fuzz/Cargo.toml @@ -8,9 +8,9 @@ edition = "2021" cargo-fuzz = true [dependencies] -libfuzzer-sys = "0.4.7" +libfuzzer-sys = "0.4.13" -arbitrary = "1.3.2" +arbitrary = "1.4.2" boa_ast = { path = "../../core/ast", features = ["arbitrary"] } boa_engine = { path = "../../core/engine", features = ["fuzz"] } boa_interner = { path = "../../core/interner", features = ["arbitrary"] } diff --git a/tests/tester/src/edition.rs b/tests/tester/src/edition.rs index 957eae5a6fb..b3847bf3a0e 100644 --- a/tests/tester/src/edition.rs +++ b/tests/tester/src/edition.rs @@ -87,6 +87,22 @@ static FEATURE_EDITION: phf::Map<&'static str, SpecEdition> = phf::phf_map! { // https://github.com/tc39/proposal-joint-iteration "joint-iteration" => SpecEdition::ESNext, + // Iterator Includes + // https://github.com/tc39/proposal-iterator-includes + "iterator-includes" => SpecEdition::ESNext, + + // Iterator Chunking + // https://github.com/tc39/proposal-iterator-chunking + "iterator-chunking" => SpecEdition::ESNext, + + // Iterator Join + // https://github.com/tc39/proposal-iterator-join + "Iterator.prototype.join" => SpecEdition::ESNext, + + // Error Stack Accessor + // https://github.com/tc39/proposal-error-stack-accessor + "error-stack-accessor" => SpecEdition::ESNext, + // ============================ Next ES version ============================ // Error.isError diff --git a/tests/tester/src/main.rs b/tests/tester/src/main.rs index c630674723e..10247e3b73e 100644 --- a/tests/tester/src/main.rs +++ b/tests/tester/src/main.rs @@ -452,7 +452,7 @@ fn run_test_suite( if versioned { let mut table = comfy_table::Table::new(); - table.load_preset(comfy_table::presets::UTF8_HORIZONTAL_ONLY); + table.load_style(comfy_table::presets::UTF8_HORIZONTAL_ONLY); table.set_header(vec![ "Edition", "Total", "Passed", "Ignored", "Failed", "Panics", "%", ]);