Commit Graph

4944 Commits

Author SHA1 Message Date
relrelb 3576a199cd avm1: Replace `set` + `set_attributes` with `define_value` 2021-07-18 23:19:19 +03:00
relrelb c609fa937d avm1: Remove unnecessary type annotations 2021-07-18 23:19:19 +03:00
relrelb ea73dbc367 avm1: Remove `StageObject::as_executable`
It was identical to the default implementation of `TObject`, and
thus unnecessary.
2021-07-18 23:19:19 +03:00
relrelb 3ddd8ff31c tests: Add as_set_prop_flags 2021-07-18 20:03:52 +03:00
relrelb 0367f6a8d4 avm1: Correct `ASSetPropFlags`
* The properties parameter is evaluated last. This is observable by
the order the `toString`/`valueOf` methods of the parameters are
called.
* Only `null` in the property list parameter configures all properties,
as opposed to `undefined`, `null`, numbers and booleans previously.
* Objects in the property list parameter are not handled specially.
Instead, they're also coerced to string and split by comma.
2021-07-18 20:03:52 +03:00
relrelb 49e26338bc web: Fix and cleanup npm build scripts
* Remove `buildProduction` as it was equivalent to `build`.
* Fix `build:avm_debug` and change it to `build:debug`, which also
disables Webpack optimizations.
2021-07-17 11:40:25 +03:00
relrelb 5dde3ecabf swf: Optimize `read_f64_me` and `write_f64_me`
Each function is reduced to just 3 opcodes on x86:
https://godbolt.org/z/n6q6zxnh6

WebAssembly benefits as well: https://godbolt.org/z/fcETE9GYn

This should improve load-time performance because read_f64_me is
used frequently (for each AVM1 double constant).
2021-07-16 01:29:49 +03:00
relrelb f9be5c2230 web: Unify "menu_item" and "active" CSS classes
It seems that these two classes were totally equivalent, so simply
drop "active" and use only "menu_item".
Also, don't highlight disabled context menu items on hover.
2021-07-13 23:45:18 +03:00
divinity76 c94ebf133a open "not yet supported more info" in new tab
i fully intended to press "run anyway" just to see what happened, and it was annoying that Ruffle took me to another page so i had to re-load the flash.. (from a page with 10 seconds worth of ads before playing the flash, even)
2021-07-13 21:42:50 +03:00
dependabot[bot] c241ac6ace chore: Bump regress from 0.3.0 to 0.4.1
Bumps [regress](https://github.com/ridiculousfish/regress) from 0.3.0 to 0.4.1.
- [Release notes](https://github.com/ridiculousfish/regress/releases)
- [Commits](https://github.com/ridiculousfish/regress/commits)

---
updated-dependencies:
- dependency-name: regress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 23:37:11 +03:00
dependabot[bot] 19e0a4109a chore: Bump instant from 0.1.9 to 0.1.10
Bumps [instant](https://github.com/sebcrozet/instant) from 0.1.9 to 0.1.10.
- [Release notes](https://github.com/sebcrozet/instant/releases)
- [Commits](https://github.com/sebcrozet/instant/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-12 23:36:27 +03:00
relrelb a33066f666 demo: Small cleanups 2021-07-12 23:21:14 +03:00
relrelb df47c53f5c web: Remove unused `RufflePlayer._trace_observer` 2021-07-12 23:21:14 +03:00
relrelb 803da71e9c web: Remove `RufflePlayer.playButtonClicked`
Replace its few usages with `play` which is part of the public API.
Also made little cleanups to the selfhosted test utils along the way.
2021-07-12 23:21:14 +03:00
relrelb 76849c485e core: Cleanup `tag_utils.rs` 2021-07-12 23:09:29 +03:00
relrelb 3d7199d81e core: Remove unused `SwfMovie::from_movie_and_subdata` 2021-07-12 23:09:29 +03:00
relrelb c2378416a9 tests: Simplify `read_tag_bytes_from_file_with_index`
Let the `Reader` outlive outside the loop, so it tracks its own
position, instead of doing so manually.
Also move `read_from_file` outside and reuse it.
2021-07-12 23:09:29 +03:00
relrelb 99deb90a1f swf: Avoid using `Reader::input` directly
Change two cases to use `Reader::read_slice` instead of `self.input`.
Not only this avoids relying on an implementation detail, this also
raises an `UnexpectedEof` error if the read is beyond the SWF.
2021-07-12 23:09:29 +03:00
relrelb ef9c073d26 swf: General cleanup
Just mechanical cleanups to ease future refactors.
2021-07-12 23:09:29 +03:00
Chris Midgley 8e7ce18cc2 avm1: alphabetise text_field properties 2021-07-10 21:19:20 +03:00
Chris Midgley 156a4494aa avm1: update attributes of text_field properties 2021-07-10 21:19:20 +03:00
Adrian Wielgosik 633c23c7f3 avm2: Do timeout check every 2000 actions, same as avm1 2021-07-09 22:09:13 +02:00
relrelb 9e18e32b40 swf: Fix read_i24
Only the third byte should be cast to i8 in order to sign extend correctly.
avmplus reference: https://github.com/adobe/avmplus/blob/master/core/AvmCore-inlines.h#L387-L395
2021-07-09 19:56:52 +03:00
relrelb 32c6d8dba0 swf: Fix write_i24
It was writing in the wrong endian.
2021-07-09 19:56:52 +03:00
relrelb 1cbbdecccf swf: Introduce and use `Color::to_rgba` 2021-07-09 19:56:52 +03:00
relrelb 580d8c3562 chore: Use to_le_bytes in more places 2021-07-09 19:56:52 +03:00
relrelb 87e9dda250 chore: Use from_le_bytes in more places 2021-07-09 19:56:52 +03:00
relrelb 29b3225772 core: Fix ADPCM decoder
Store samples and steps as i16 instead of i32.
2021-07-09 19:55:09 +03:00
relrelb 25b8013a99 core: Refactor PCM decoder a bit
Extract a `read_sample` method to avoid code duplication, and use
the byteorder crate as already done in other places.
2021-07-09 19:52:30 +03:00
Callum Thomson 939d467897
avm1: Correct ToInteger
* Coerce objects as well.
* Wrap numbers around i32.
2021-07-09 03:39:07 +03:00
Daniel Jacobs bdf693c9c4 Remove error report link from could not download wasm module 2021-07-08 20:20:57 +02:00
Chris Midgley ac0fc40345
avm1: implement scroll, maxscroll and bottomScroll for TextField (#4698)
* tests: add tests for scroll

* avm1: implement scroll, maxscroll, bottomScroll

* chore: fmt

* docs: note that scroll is 1-based

* fix: non-word wrapped text with manual breaks is scrollable

* chore: move magic number to const

* chore: avoid mut with extra if

* chore: moving clamping behaviour into core

* refactor: eagerly compute line data

* fix: make scroll work when text is aligned right

* chore: clippy

* docs: add more information about line_data

* tests: add more test cases for scroll
2021-07-08 19:23:30 +02:00
EmperorBale d334e30259
avm1: Fix apply_to_display_object (#4377) (#4743)
* avm1: Fix apply_to_display_object
2021-07-06 17:32:14 +02:00
Adrian Wielgosik 35d543b610 desktop: Add a flag to disable AS3 warning popup 2021-07-06 17:03:45 +02:00
Adrian Wielgosik d9b5b1a0af desktop: Add DX11 to default graphics backends 2021-07-04 13:37:22 +02:00
TÖRÖK Attila 20080dda4e Fix minor bug/typo in `action_get_url_2`
The current version just doesn't make any sense.
The fixed version is akin to the `target.starts_with("_level") && target.len() > 6` line a bit earlier in this file.
2021-07-03 22:43:29 +02:00
relrelb 810cbf44b9 web: Remove unused source-map-loader dependency 2021-07-03 21:18:42 +03:00
relrelb 2e77895839 web: Remove unused esm dependency
It's no longer used since 43d0f7a527.
2021-07-03 21:18:42 +03:00
relrelb 276e77d188 web: Cleanup tsconfig.json files
* Extend from the recommended config.
* Remove the exclude field that doesn't contribute to the file
inclusion (include alone should be enough).
* Remove the esModuleInterop field that shouldn't be necessary.
2021-07-03 21:18:42 +03:00
relrelb 558bbdb520 web: Cleanup .eslintrc.json files
* `eslint:recommended` is not needed in the each file as it already
appears in the root config.
* The default `@typescript-eslint/naming-convention` rule is preferred.
* Other formatting improvements.
2021-07-03 21:18:42 +03:00
relrelb 70938b849c web: Remove babel-eslint dependency
Not only it's deprecated, it's also not needed because ESLint's
built-in "es2021" environment seems to support everything we use.
2021-07-03 21:18:42 +03:00
relrelb 45c4edac38 web: Update package-lock.json
Using `npm audit fix`.
2021-07-03 21:18:42 +03:00
relrelb 7425d35498 chore: Run `cargo update` 2021-07-03 17:26:34 +03:00
relrelb 3a43957db5 chore: Minor cleanups 2021-07-03 17:26:34 +03:00
relrelb 0ece8bfb38 web: Fix build without wasm-opt on Windows
Since #3111, `wasm-opt` became mandatory on GitHub Actions. But the
check whether we run on GitHub Actions is Bash-specific, and fails
on Windows. That means builds on Windows without `wasm-opt` always
fail.

As a workaround, use the trick from https://gist.github.com/prail/24acc95908e581722c0e9df5795180f6
to run the check only on Unix, and skip it on Windows:

```
echo ; [ \"$GITHUB_ACTIONS\" != true ] # > nul
```

On Unix, `echo` does nothing, the check runs, and the rest is
considered a comment.
On Windows, `echo` prints everything until the `> nul`, which
suppresses the print by redirection, making the whole statement
effectively a no-op.
2021-07-02 13:58:38 +03:00
relrelb a09733ae4c web: Fix mocha integration with ES modules
Use the workaround from https://github.com/mochajs/mocha-examples/tree/master/packages/typescript#es-modules
to help mocha run with ES modules.
The `cross-env` package is for both Unix and Windows systems support.
2021-07-02 12:38:16 +03:00
dependabot[bot] 1ac370d4bd chore: Bump mocha from 8.4.0 to 9.0.1 in /web
Bumps [mocha](https://github.com/mochajs/mocha) from 8.4.0 to 9.0.1.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v8.4.0...v9.0.1)

---
updated-dependencies:
- dependency-name: mocha
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-02 12:38:16 +03:00
relrelb 43d0f7a527 web: Extract .mocharc.json 2021-07-02 12:38:16 +03:00
relrelb d1bf06786a web: Replace chai with Node.js built-in assert module 2021-07-02 12:38:16 +03:00
dependabot[bot] f117c2d1b9 chore: Bump @wdio/cli from 7.7.3 to 7.7.4 in /web
Bumps [@wdio/cli](https://github.com/webdriverio/webdriverio) from 7.7.3 to 7.7.4.
- [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.7.3...v7.7.4)

---
updated-dependencies:
- dependency-name: "@wdio/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-02 12:36:58 +03:00