What's Changed
- avm2: Fixes to Error's prototype by @Lord-McSweeney in #23719
- aur: Update maintainers for ruffle-nightly-bin by @kjarosh in #23727
- Add testutils CLI by @Dinnerbone in #23677
- ci: Use correct npm dist-tag for nightly and stable releases by @kjarosh in #23728
- desktop: Add Rust stack trace to panic reports by @kjarosh in #23714
- avm2: Fix new Video(0, 0) to use default size by @1bugproof in #23708
- avm2: Stop assuming Object is an enum by @SuchAFuriousDeath in #23725
- Enable jpegxr on Linux Nightlies by @Fancy2209 in #23741
- avm1: Fix behavior of
Soundownership by @ChrisCPI in #23733 - chore: Bump the npm-minor group in /web with 7 updates by @dependabot[bot] in #23748
- chore: Bump enumset to 1.1.13 by @torokati44 in #23753
- chore: Bump cssnano to 8.0.1 and cssnano-preset-advanced to 8.0.1 in /web by @torokati44 in #23752
- chore: Run
npm audit fixin web/ by @torokati44 in #23742 - video/vp6: Init nihav decoder with encoded size, not display size by @SuchAFuriousDeath in #23665
- web/audio: Pin AudioContext to 44.1 kHz by @SuchAFuriousDeath in #23701
- web: Fix MVP wasm build by explicitly disabling post-MVP features by @SuchAFuriousDeath in #23756
- avm2: Set dobj as transformed_by_script on transform
colorTransformandmatrixsetters by @ChrisCPI in #23759 - avm2: Return ArgumentError instead of panicking on invalid ShaderJob target by @SuchAFuriousDeath in #23763
- chore: Migrate to current Node.js 26 from 25 for testing by @torokati44 in #23661
- avm2: Print full error details when logging caught error by @Lord-McSweeney in #23726
- avm2: Remove mostly unused
crate::avm2::stringby @Lord-McSweeney in #23773 - wstr: Remove unsafe usage from str_eq by @kjarosh in #23774
- desktop: Remove fontconfig from Windows and add fontconfig-dlopen by @kjarosh in #23768
- chore: Bump nihav-vp6 to latest git master by @torokati44 in #23765
- chore: Bump eslint-plugin-jsdoc from 62.9.0 to 63.0.0 in /web by @dependabot[bot] in #23781
- chore: Bump the npm-minor group across 1 directory with 7 updates by @dependabot[bot] in #23779
- chore: Fix a bunch of typos (mostly in comments) by @torokati44 in #23782
- chore: Bump qs and express in /web by @dependabot[bot] in #23784
- avm2: Fix stack trace for context3DCreated event handler by @Lord-McSweeney in #23745
- avm2: Verify that lazy namespace is actually a Namespace in the verifier by @Lord-McSweeney in #23777
- tests: Begin adding test coverage for signatures of flash.events classes by @Lord-McSweeney in #23786
- ci: Generate AVM2 report only for nightlies by @kjarosh in #23787
- avm1: Clear stack only between frames by @kjarosh in #23795
- avm1: Introduce AVM1 playerglobal by @Dinnerbone in #23730
- core: Fix movie clip looping by @kjarosh in #23802
- tests: Add --skip-no-player to testutils execute by @kjarosh in #23805
- tests: Trace warnings if enabled when executing tests by @kjarosh in #23804
- avm1: Do not trace an error on with(undefined)/with(null) by @kjarosh in #23809
- core: Normalize "blank" target to "_blank" in getURL/navigateToURL by @SuchAFuriousDeath in #23792
- avm1: Remove magic properties and this from SWF4 by @kjarosh in #23806
- avm2: Implement a number of missing
flash.eventsclasses by @Lord-McSweeney in #23812 - tests: Use FP's output in avm2/graphics_draw_triangles by @kjarosh in #23818
- chore: Bump josStorer/get-current-time from 2.1.2 to 2.1.3 by @dependabot[bot] in #23820
- chore: Bump the npm-minor group in /web with 2 updates by @dependabot[bot] in #23822
- chore: Bump the cargo-minor group with 3 updates by @dependabot[bot] in #23823
- chore: Bump webdriverio package family to 9.27.2 in web/ by @torokati44 in #23828
- avm2: More fixes to signatures of
flash.eventsclasses by @Lord-McSweeney in #23833 - avm1: Support property syntax in delete2 by @kjarosh in #23834
- 🤖 core: Move flash.text.engine TextLine onto its own DisplayObject by @doctorpangloss in #23817
- core: Extract run_file_dialog helper to reduce boilerplate in file dialog loaders by @SuchAFuriousDeath in #23831
- core/render: Add support for loading JPEGXR images by @ChrisCPI in #23789
- tests: Add asc compiler for compiling AVM2 tests by @kjarosh in #23794
- chore: Bump tmp from 0.2.5 to 0.2.7 in /web by @dependabot[bot] in #23843
- refactor: Enum-map related improvements by @SuchAFuriousDeath in #23846
- wgpu: Yeet the copy_srgb shader and pipeline by @SuchAFuriousDeath in #23827
- tests: Add a failing visual test for scale_rotation_cache by @torokati44 in #23796
- avm2: Minor performance improvements by @Lord-McSweeney in #23840
- core: Include
ruffle_render/jpegxrinjpegxrfeature by @ChrisCPI in #23852 - chore: Clippy beta fixes by @danielhjacobs in #23762
- ci: Enable fontconfig-dlopen in the macOS Rust tester job by @torokati44 in #23855
- core: Make loaded image MovieClips work the way SWF >= 5 movies do wrt. scale and rotation caching by @torokati44 in #23838
- avm2: Refactor draw_triangles_internal by @SuchAFuriousDeath in #23761
- core: Rework infrastructure around the FileDialogResult trait by @SuchAFuriousDeath in #23844
- text: Prevent measuring text twice during layout by @kjarosh in #23862
- core: Simplify code in MovieClip.event_dispatch by @kjarosh in #23867
- swf: Add support for PlaceObject/allEventFlags by @kjarosh in #23868
- wstr: Implement Pattern for owned [u8; N] and [u16; N] arrays by @SuchAFuriousDeath in #23858
- ci: Don't enable fontconfig-dlopen in the macOS Rust tester job by @torokati44 in #23873
- ci: Enable full LTO for releases by @kjarosh in #23863
- web: Polyfill document.embeds to return ruffle-embeds too by @danielhjacobs in #22449
- web: Support named access on document.embeds by @danielhjacobs in #23878
- core: Add MultiFileDialogResult and display_file_open_dialog_multiple by @SuchAFuriousDeath in #23866
- avm2: Add type enum for error 2006 by @ChrisCPI in #23883
- chore: Bump the npm-minor group in /web with 11 updates by @dependabot[bot] in #23885
- chore: Bump zbus, zvariant, toml crates by @torokati44 in #23887
- chore: Bump the cargo-minor group across 1 directory with 6 updates by @dependabot[bot] in #23886
- chore: Cargo.lock maintenance by @torokati44 in #23888
- core: Do not dispatch clip events not present in allEventFlags by @kjarosh in #23869
- Fix panic on writeback from empty CPU dirty region (prevalent in Earn to Die) by @n-raine in #23898
- avm2: Implement most of the version gating for
flash.eventsclasses by @Lord-McSweeney in #23836 - avm2: More minor crossbridge performance improvements by @Lord-McSweeney in #23849
- tests: add
known_failuresupport to audio assertions by @moulins in #23861 - avm2: Fix setProgramConstantsFromByteArray implementation by @SuchAFuriousDeath in #23901
- frontend-utils: Use native TLS instead of rustls by @kjarosh in #23894
- chore: Bump openssl from 0.10.73 to 0.10.80 by @dependabot[bot] in #23902
- chore: Additional Rust dependency version bumps by @torokati44 in #23903
- avm1: Match Flash broadcaster prototype enumeration order by @SuchAFuriousDeath in #23892
- avm1: Stub several classes and properties by @SuchAFuriousDeath in #23899
- avm1: Define
constructoras own property on system class objects by @SuchAFuriousDeath in #23893 - avm2: Add a field to ops instead of adding separate integral variants by @Lord-McSweeney in #23923
- chore: Bump the npm-minor group in /web with 6 updates by @dependabot[bot] in #23925
- avm1: Xmlsocket connect null fix by @SuchAFuriousDeath in #23931
- Slice logic cleanup, take 2 by @moulins in #23676
- core: Make use of
istr!macro in several places by @SuchAFuriousDeath in #23935 - core: Remove unnecessary
dynusage by @SuchAFuriousDeath in #23936 - core: Use __jcvt() intrinsic on AArch64 for f64→i32 conversion by @SuchAFuriousDeath in #23937
- chore: Bump shell-quote from 1.8.3 to 1.8.4 in /web by @dependabot[bot] in #23941
- frontend-utils: Allow switching reqwest back to rustls by @torokati44 in #23947
- avm1: Remove "Target not found" trace by @kjarosh in #23946
- avm2: Fix serializing invalid Date objects by @Lord-McSweeney in #23951
- swf: Seek to glyph shape offsets when reading DefineFont2/3 by @kjarosh in #23949
-
- libssl-dev, openssl-devel by @sombraguerrero in #23953
- avm1: Support SWF4 target paths properly by @kjarosh in #23948
- chore: Bump WebdriverIO to 9.28.0 in web/ by @torokati44 in #23954
- swf: Fix underflow on keyPress clip action without key code by @kjarosh in #23958
- swf: Fix overflow while reading convolution filter by @kjarosh in #23961
- swf: Fix underflow/OOM errors when decompressing by @kjarosh in #23962
- core: Add AvmString::split_dependent by @SuchAFuriousDeath in #23955
- swf: Fix potential OOM in DefineSceneAndFrameLabelData by @kjarosh in #23960
- avm1: Fix SetTarget2 movie clip selection by @kjarosh in #23964
- chore: Update translations from Crowdin by @kjarosh in #23967
- avm1: Handle edge values in setProperty() by @kjarosh in #23966
- avm2: Simplify AMF serialization logic by @Lord-McSweeney in #23956
- avm2: Remove redundant method
PropertyMap::insert_with_namespaceby @Lord-McSweeney in #23969 - chore: Bump esbuild from 0.28.0 to 0.28.1 in /web by @dependabot[bot] in #23968
- chore: Update translations from Crowdin by @kjarosh in #23970
- refactor: Use api-report as dependency and move stub-report to tools/ by @kjarosh in #23922
- avm1/avm2: Add AMF NetConnection Array serialization known failures by @danielhjacobs in #23957
- tests: Add avm1/set_target_2_swf5 test by @kjarosh in #23965
New Contributors
- @doctorpangloss made their first contribution in #23817
Full Changelog: v0.2.0...v0.3.0