Skip to content

Releases: danielhjacobs/ruffle

Nightly 2022-08-06

06 Aug 00:32
2f8dde8

Choose a tag to compare

Nightly 2022-08-06 Pre-release
Pre-release
avm2: Include class name in ScriptObject debug (#7512)

* avm2: Include class name in ScriptObject debug

Currently, the `ScriptObject` debug impl is almost useless -
while you determine if two printed objects are the same
by comparing the pointer value, you'll have no idea what
kind of object it actually is.

This PR now formats the `ScriptObject` output as a struct,
printing a (fake) "class" field containing the class name.

Before/after:

```
[ERROR ruffle_core::avm2::activation] AVM2 error: Cannot coerce Object(ScriptObject(ScriptObject(GcCell(Gc { ptr: 0x55f863936db8 })))) to an QName { ns: Private("Test.as$38"), name: "Second" }
[ERROR ruffle_core::avm2::activation] AVM2 error: Cannot coerce Object(ScriptObject(ScriptObject { class: "Object", ptr: 0x55ee0ad161e0 })) to an QName { ns: Private("Test.as$38"), name: "Second" }
```

Getting access to the class name from a `Debug` impl is tricky:

Developers can (and should be able to) insert logging statements
whereever they want, so any `GcCell` may be mutably borrowed.
Panics in debug impls are extremely frustrating to deal with,
so I've ensured that we only use `try_borrow` at each step.
If any of the attempted borrows fail, we print out an error message
in the "class_name" field, but we're still able to print the
rest of the `ScriptObject`.

Additionally, we have no access to a `MutationContext`, so we
cannot allocate a new `AvmString`. To get around this,
I've created a new method `QName::to_qualified_name_no_mc`,
which uses an `Either` to return a `WString` instead of allocating
an `AvmString`. This is more cumbersome to work with than the
nrmal `QName::to_qualified_name`, so we'll only want to use
it when we have no other choice.

Nightly 2022-08-02

02 Aug 00:35

Choose a tag to compare

Nightly 2022-08-02 Pre-release
Pre-release
nightly-2022-08-02

avm2: Implement BitmapData.scroll/copyPixels, stub lock()

Nightly 2022-07-20

20 Jul 00:28

Choose a tag to compare

Nightly 2022-07-20 Pre-release
Pre-release
nightly-2022-07-20

chore: Appease clippy

Nightly 2022-07-12

12 Jul 00:32

Choose a tag to compare

Nightly 2022-07-12 Pre-release
Pre-release
Revert "web: Add a loading screen"

This reverts commit bec0710175cdd1e24b03ea99a1373d6756d118c7.

Nightly 2022-07-09

09 Jul 00:27

Choose a tag to compare

Nightly 2022-07-09 Pre-release
Pre-release
chore: Fix `needless_borrow` clippy lints

Though https://github.com/rust-lang/rust-clippy/pull/8355 has been
merged, it seems to still report false-positives on nightly channel.

For now just fix the instances reported by stable clippy, and keep
`needless_borrow` allowed.

Nightly 2022-07-07

07 Jul 00:35

Choose a tag to compare

Nightly 2022-07-07 Pre-release
Pre-release
wstr: Implement `ToOwned` for `WStr`

Similarly to how `str` implements `ToOwned`, and `From<&str> for String`
forwards to `to_owned()`.

This will allow defining `Cow<WStr>`.

Nightly 2022-07-06

06 Jul 00:36

Choose a tag to compare

Nightly 2022-07-06 Pre-release
Pre-release
build(deps): bump serde_json from 1.0.81 to 1.0.82

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.81 to 1.0.82.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.81...v1.0.82)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Nightly 2022-07-04

04 Jul 00:36

Choose a tag to compare

Nightly 2022-07-04 Pre-release
Pre-release
tests: Expand `parse_float`

And make it non-approx, since Ruffle now traces the exact output.

Nightly 2022-07-02

02 Jul 00:32

Choose a tag to compare

Nightly 2022-07-02 Pre-release
Pre-release
build(deps-dev): bump typedoc from 0.22.17 to 0.23.3 in /web

Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.17 to 0.23.3.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.17...v0.23.3)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Nightly 2022-06-25

25 Jun 00:31

Choose a tag to compare

Nightly 2022-06-25 Pre-release
Pre-release
avm2: Convert flash.geom.Matrix to ActionScript

I've kept the rust `flash.geom` module, even though it's now empty,
since we'll need to add things like `flash.geom.Transform` native
methods in the future.