relrelb
9856a03797
avm1: Inline `apply_to_display_object`
2022-07-10 07:29:38 +03:00
relrelb
78ebf06f55
avm2: Extract `MethodFlags` enum
2022-07-09 20:34:53 +03:00
relrelb
afd24cad12
desktop: Tiny cleanup
2022-07-09 11:06:39 +03:00
relrelb
f643048c1c
core: Introduce `Request`
...
Which holds both a URL and what was `RequestOptions` formerly.
2022-07-09 09:43:42 +03:00
relrelb
115f15806e
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.
2022-07-08 14:14:30 +03:00
nosamu
7fa35f2a82
web: Construct relative SWF URLs using document base
2022-07-07 08:58:04 +03:00
relrelb
c0e84e646e
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>`.
2022-07-06 09:19:12 +03:00
relrelb
2f4e31c6be
avm1: Avoid allocation of some static strings
...
Prefer creating a static `AvmString` over allocating an owned one.
2022-07-06 09:19:12 +03:00
relrelb
9c1a05aaaf
avm2: Re-use code in `coerce_to_number`
...
Use `string_to_f64` and `string_to_int`, as [`MathUtils::convertStringToNumber`](858d034a3b/core/MathUtils.cpp (L453-L466)
)
in avmplus does.
2022-07-06 09:04:15 +03:00
dependabot[bot]
265dcd2e8d
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] <support@github.com>
2022-07-05 09:09:03 +03:00
dependabot[bot]
55e985da8c
build(deps): bump serde from 1.0.137 to 1.0.138
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.137 to 1.0.138.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.137...v1.0.138 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-05 08:43:27 +03:00
dependabot[bot]
cfe3d37905
build(deps): bump bytemuck from 1.9.1 to 1.10.0
...
Bumps [bytemuck](https://github.com/Lokathor/bytemuck ) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/Lokathor/bytemuck/releases )
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md )
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.9.1...v1.10.0 )
---
updated-dependencies:
- dependency-name: bytemuck
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 23:55:22 +03:00
dependabot[bot]
8cbb5cc4eb
build(deps): bump embed-resource from 1.7.2 to 1.7.3
...
Bumps [embed-resource](https://github.com/nabijaczleweli/rust-embed-resource ) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/nabijaczleweli/rust-embed-resource/releases )
- [Commits](https://github.com/nabijaczleweli/rust-embed-resource/compare/v1.7.2...v1.7.3 )
---
updated-dependencies:
- dependency-name: embed-resource
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 23:55:09 +03:00
dependabot[bot]
7675c2a869
build(deps): bump path-slash from 0.1.4 to 0.1.5
...
Bumps [path-slash](https://github.com/rhysd/path-slash ) from 0.1.4 to 0.1.5.
- [Release notes](https://github.com/rhysd/path-slash/releases )
- [Changelog](https://github.com/rhysd/path-slash/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rhysd/path-slash/compare/v0.1.4...v0.1.5 )
---
updated-dependencies:
- dependency-name: path-slash
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 23:54:54 +03:00
dependabot[bot]
52bc7a39b4
build(deps): bump smallvec from 1.8.1 to 1.9.0
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.8.1...v1.9.0 )
---
updated-dependencies:
- dependency-name: smallvec
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 23:32:26 +03:00
dependabot[bot]
16a403832b
build(deps): bump gc-arena from `4931b3b` to `4882182`
...
Bumps [gc-arena](https://github.com/ruffle-rs/gc-arena ) from `4931b3b` to `4882182`.
- [Release notes](https://github.com/ruffle-rs/gc-arena/releases )
- [Commits](4931b3bc25...4882182850
)
---
updated-dependencies:
- dependency-name: gc-arena
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 23:32:12 +03:00
Mike Welsh
49e8f4e939
tests: Add test for register preload order
2022-07-03 12:51:07 -07:00
Mike Welsh
1963e47392
avm1: Increment register when preloading super ( fix #7338 )
...
The register index was not being increment when preloading the
`super` register which would cause issues when multiple registers
were preloaded.
Fixes #7338 .
2022-07-03 12:51:07 -07:00
relrelb
a4fbd11cf5
tests: Expand `parse_float`
...
And make it non-approx, since Ruffle now traces the exact output.
2022-07-02 18:08:08 -07:00
relrelb
f0db6d8c60
avm1: Correct `parseFloat()`
...
Rewrite the implementation of `string_to_f64()` to match Flash behavior.
This affects `parseFloat()` as well as any `Value` to `f64` coercion.
2022-07-02 18:08:08 -07:00
relrelb
0148fde852
tests: Expand `as3_parse_int` and `as3_parse_float` a little
2022-07-02 17:48:19 -07:00
relrelb
10af9435ae
avm2: Minor `parseInt()/parseFloat()` tweaks
...
Alongside comment wordings, fix handling of non-`u8` characters by
replacing `as u8` conversions with `u8::try_from()`, that doesn't
wrap around, but rather fails gracefully.
2022-07-02 17:48:19 -07:00
Mike Welsh
d3c64d4eb7
webgl/wgpu: Omit strokes when drawing a mask stencil
...
Adjust `common_tess` to add an additional `mask_index_count` to
draws. This is used to not render strokes when drawing a shape as
a mask stencil.
Fixes #7027 .
2022-07-02 16:57:53 -07:00
Mike Welsh
b39d54de2c
wgpu: Update exporter for wgpu 0.13
2022-07-02 16:44:37 -07:00
Mike Welsh
cb70d6e612
wgpu: Prefer linear surface formats
...
wgpu 0.13 added `Surface::get_supported_formats`, so we can check
if a non-sRGB surface format is supported on the current platform.
Because Flash colors and blending are in sRGB space, we want a
linear surface when possible to prevent the colors from being
fiddled with by the GPU.
2022-07-02 16:44:37 -07:00
relrelb
65be2adc63
wgpu: Bump to `0.13.0`
...
Based on the work in #6717 , plus additional adaptions mentioned in
https://github.com/gfx-rs/wgpu/blob/master/CHANGELOG.md#wgpu-013-2022-06-30 ,
and more not-mentioned but required changes.
Also bump `wasm-bindgen` to `0.2.81` (along with its helper crates), as
required by the new `wgpu` version.
Note that I don't fully understand some of the required changes, notably:
* `wgpu::PresentMode::Mailbox` no longer works on my machine (Windows 11) -
The `wgpu` documentation says that `wgpu::PresentMode::Fifo` is the
only guaranteed to be supported, so I switched over to it instead.
* `self.staging_belt.recall()` doesn't return a `Future` anymore -
I assume it became synchronous so I simply removed the `executor`
from there.
2022-07-02 16:44:37 -07:00
Toad06
e219cb3b1c
avm1: Fire `onData` function and event when calling `loadVariables`
2022-07-02 10:22:48 -07:00
relrelb
981fa0568c
chore: `derive(Default)` for enums
...
It's available since stable Rust 1.62.0.
2022-07-02 09:23:04 -07:00
relrelb
9b9301fbaf
chore: Appease clippy
2022-07-02 09:22:18 -07:00
dependabot[bot]
79a341d106
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] <support@github.com>
2022-07-02 01:25:17 +03:00
dependabot[bot]
99db3e5f6e
build(deps-dev): bump @wdio/static-server-service in /web
...
Bumps [@wdio/static-server-service](https://github.com/webdriverio/webdriverio ) from 7.20.0 to 7.20.3.
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/compare/v7.20.0...v7.20.3 )
---
updated-dependencies:
- dependency-name: "@wdio/static-server-service"
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:55 +03:00
dependabot[bot]
1cc3660924
build(deps-dev): bump eslint from 8.17.0 to 8.18.0 in /web
...
Bumps [eslint](https://github.com/eslint/eslint ) from 8.17.0 to 8.18.0.
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v8.17.0...v8.18.0 )
---
updated-dependencies:
- dependency-name: eslint
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:40 +03:00
dependabot[bot]
94bf3bdbce
build(deps-dev): bump webpack-cli from 4.9.2 to 4.10.0 in /web
...
Bumps [webpack-cli](https://github.com/webpack/webpack-cli ) from 4.9.2 to 4.10.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases )
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md )
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.2...webpack-cli@4.10.0 )
---
updated-dependencies:
- dependency-name: webpack-cli
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:28 +03:00
dependabot[bot]
fa4b556e03
build(deps-dev): bump stylelint-config-standard in /web
...
Bumps [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard ) from 25.0.0 to 26.0.0.
- [Release notes](https://github.com/stylelint/stylelint-config-standard/releases )
- [Changelog](https://github.com/stylelint/stylelint-config-standard/blob/main/CHANGELOG.md )
- [Commits](https://github.com/stylelint/stylelint-config-standard/compare/25.0.0...26.0.0 )
---
updated-dependencies:
- dependency-name: stylelint-config-standard
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:39:13 +03:00
dependabot[bot]
31029f7414
build(deps-dev): bump chai-html from 2.0.1 to 2.1.0 in /web
...
Bumps [chai-html](https://github.com/i-like-robots/chai-html ) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/i-like-robots/chai-html/releases )
- [Changelog](https://github.com/i-like-robots/chai-html/blob/main/changelog.md )
- [Commits](https://github.com/i-like-robots/chai-html/compare/v2.0.1...v2.1.0 )
---
updated-dependencies:
- dependency-name: chai-html
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:33:21 +03:00
dependabot[bot]
3cc38eec1e
build(deps-dev): bump @typescript-eslint/parser in /web
...
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) from 5.27.0 to 5.30.3.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.30.3/packages/parser )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:33:11 +03:00
dependabot[bot]
09621e641a
build(deps-dev): bump @wdio/mocha-framework in /web
...
Bumps [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio ) from 7.19.5 to 7.20.3.
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/compare/v7.19.5...v7.20.3 )
---
updated-dependencies:
- dependency-name: "@wdio/mocha-framework"
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:33:01 +03:00
dependabot[bot]
ffee0deeac
build(deps-dev): bump webpack-dev-server from 4.9.1 to 4.9.3 in /web
...
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server ) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases )
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md )
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.9.1...v4.9.3 )
---
updated-dependencies:
- dependency-name: webpack-dev-server
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:32:49 +03:00
Aaron Hill
b56eace008
avm2: Implement property type coercions
...
Properties can be declared with a type
(e.g. `var foo:MyClass = new MyClass();`). When
`set_property`/`init_property` is invoked for that property,
the VM will attempt to coerce the value to the provided type,
throwing an error if this fails. This can have observable behavior
consequences - if a property has type `integer`, for example, then
storing a floating point `Number` to that property will cause the
value to be coerced to an integer. Some SWFs (e.g. 'Solarmax') rely
on this behavior in order to implicitly coerce a floating point value
that's later used for array indexing.
This PR implements property type coercions in Ruffle. There are several
important considerations:
* The class lookup for property types needs to be done lazily, since
we can have a cycle between two classes (e.g. `var prop1:Class2;`
and `var prop2:Class1` in two different classes).
* The class lookup uses special rules (different from
`resolve_definition`), and does *not* use `ScopeStack/`ScopeTree`
This means that a private class can specified as a property name -
the lookup will succeed without using a scope, even though
`flash.utils.getDefinitionByName` would fail with the same name
* The specialized 'Vector' classes (e.g "Vector$int") can be used
as property types, even though they cannot be lookup up normally.
Some Ruffle class definitions were previously using nonexistent
classes as property types (e.g. "BareObject") - these are fixed
in this PR.
2022-06-30 21:34:26 -07:00
Moulins
c7bf11ece5
avm1: More accurate handling of preload/suppress flags in functions
...
- Handle the case where both preload aud suppress flags are
set for the same variable;
- Remove `arguments` field in `Activation`; instead use a normal
local definition;
- When `suppress_this` is set, inherit the `this` value from parent
activation. (This isn't entirely correct, as FP's `this` is mutable
and seems to be part of the scope chain, but this would require a
larger refactoring)
2022-06-29 16:02:13 -07:00
Moulins
aa1e53e0e3
avm1: Refactor Executable::exec
...
- reduce rightwards drift by exiting early
- outline some code into separate methods on Avm1Function
2022-06-29 16:02:13 -07:00
Moulins
58b4342355
avm1: add failing test for preload/suppress flags on functions
2022-06-29 16:02:13 -07:00
Aaron Hill
a79aa08f08
core: Free render backend resources on `BitmapData.dispose`
...
Currently, all three render backends hold on texture-related
resources indefinitely (`register_bitmap` pushes to a `Vec`,
and never removes anything). As a result, the resources used
by the render backend (which may include GPU memory) will grow
over time, even if the corresponding `BitmapData` has been deallocated.
This commit adds a new `unregister_bitmap` method, which is called from
`BitmapData.dispose`. All render backs are changed to now use an
`FnvHashMap<BitmapHandle, _>` instead of a `Vec`, allowing us to
remove individual entries.
Currently, we only call `unregister_bitmap in response to
`BitmapData.dispose` - when `BitmapData` is freed by the
garbage collector, `unregister_bitmap` is *not* called.
This will be addressed in a future PR.
2022-06-29 15:16:43 -07:00
Adrian Wielgosik
4d1bf7e00c
avm2: Refactor AVM2 bare object creation
2022-06-29 15:12:39 -07:00
Adrian Wielgosik
f31d4c2498
avm2: Remove SystemPrototypes.
2022-06-29 15:12:39 -07:00
Aaron Hill
1c5312d6c8
avm2: Declare 'dataFormat' property on URLLoader
...
This ensures that a sealed subclass can still access it.
2022-06-28 09:30:58 +03:00
dependabot[bot]
2fce315938
build(deps): bump gif from 0.11.3 to 0.11.4
...
Bumps [gif](https://github.com/image-rs/image-gif ) from 0.11.3 to 0.11.4.
- [Release notes](https://github.com/image-rs/image-gif/releases )
- [Changelog](https://github.com/image-rs/image-gif/blob/master/Changes.md )
- [Commits](https://github.com/image-rs/image-gif/compare/v0.11.3...v0.11.4 )
---
updated-dependencies:
- dependency-name: gif
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:51:23 +03:00
dependabot[bot]
c043093f13
build(deps): bump quote from 1.0.19 to 1.0.20
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.19 to 1.0.20.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.19...1.0.20 )
---
updated-dependencies:
- dependency-name: quote
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:09:48 +03:00
dependabot[bot]
d6171f8a06
build(deps): bump smallvec from 1.8.0 to 1.8.1
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.8.0...v1.8.1 )
---
updated-dependencies:
- dependency-name: smallvec
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:09:36 +03:00
dependabot[bot]
94e670c7c5
build(deps): bump indexmap from 1.9.0 to 1.9.1
...
Bumps [indexmap](https://github.com/bluss/indexmap ) from 1.9.0 to 1.9.1.
- [Release notes](https://github.com/bluss/indexmap/releases )
- [Changelog](https://github.com/bluss/indexmap/blob/master/RELEASES.md )
- [Commits](https://github.com/bluss/indexmap/compare/1.9.0...1.9.1 )
---
updated-dependencies:
- dependency-name: indexmap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-28 00:09:12 +03:00