Commit Graph

3802 Commits

Author SHA1 Message Date
David Wendt 19219ad0c1 avm2: Implement `dispatchEvent`.
Event dispatch is a surprisingly complicated procedure, so this makes sure to test:

1. Event dispatch on bare dispatchers
2. Event dispatch on hierarchial dispatchers (movieclips)
3. Event cancellation (which is reported by `dispatchEvent`)
4. The implicit `this` on unbound event handlers. I'm not yet sure if this is a special property of event dispatch or if all unbound functions inherit their global scope as `this`.
5. The execution order of handlers on both bare and hierarchial dispatchers
6. Delegation to hierarchial dispatchers
7. Modification of the dispatch list during dispatch of an event. Surprisingly enough, you can add handlers to the event you're handling and expect them to execute, *if* you added them to a further object in the order *or* you added a bubble handler in the capture phase.
2020-12-21 21:47:29 -08:00
David Wendt f33e5f893a avm2: Allow builtins to get at the global scope. 2020-12-21 21:47:29 -08:00
David Wendt 8efaed40a0 avm2: `event.eventPhase` is enumerated from 1 2020-12-21 21:47:29 -08:00
David Wendt 87ff679898 avm2: Implement `EventDispatcher.willTrigger` 2020-12-21 21:47:29 -08:00
David Wendt a071800117 avm2: `EventDispatcher` should supercall, too. 2020-12-21 21:47:29 -08:00
David Wendt e8163e43ab avm2: Builtin constructors should supercall. 2020-12-21 21:47:29 -08:00
David Wendt be4e37a55c avm2: Implement `addEventListener`, `removeEventListener`, and `hasEventListener`. 2020-12-21 21:47:29 -08:00
David Wendt 2faf5259ca avm2: Add a representation for event dispatch lists.
For various reasons, we store the dispatch list for an object on a separate property of an `EventDispatcher` rather than dictating that all children of `EventDispatcher` use a specific object type. This is because `EventDispatcher` is a very general class with lots of object representations it needs to cover. So instead, we introduce a new object representation for a *property* and store it in a Ruffle private namespace that is as isolated from user code as alternate object representations are.
2020-12-21 21:47:29 -08:00
David Wendt b02897637f avm2: Add a new namespace type to store runtime-internal properties we don't want user code being able to access ever. 2020-12-21 21:47:29 -08:00
Mike Welsh 739af3f8d7 web: Flush shared objects on page unload 2020-12-21 21:46:45 -08:00
dependabot-preview[bot] d2ed3dbc81 build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.10.0 to 4.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.11.0/packages/eslint-plugin)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-21 16:35:27 -08:00
dependabot-preview[bot] f7797f85d6 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 4.10.0 to 4.11.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.11.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-21 16:26:31 -08:00
Toad06 777734f6ba web: Maintain compatibility with prototype.js 2020-12-21 16:26:14 -08:00
dependabot-preview[bot] 606fd28b3b build(deps): bump quote from 1.0.7 to 1.0.8
Bumps [quote](https://github.com/dtolnay/quote) from 1.0.7 to 1.0.8.
- [Release notes](https://github.com/dtolnay/quote/releases)
- [Commits](https://github.com/dtolnay/quote/compare/1.0.7...1.0.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-20 15:54:45 -08:00
Callum Thomson 69ab12fcc3
avm1: Add flash.filters.GlowFilter 2020-12-20 15:31:09 -08:00
Toad06 a6b7474a6b web: Prevent crashes with external libraries 2020-12-20 15:28:52 -08:00
dependabot-preview[bot] 820572f204 build(deps): bump syn from 1.0.54 to 1.0.55
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.54 to 1.0.55.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.54...1.0.55)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-20 15:19:11 -08:00
Mike Welsh 8a0e55d74a chore: Bump to rand 0.8 2020-12-19 14:33:12 -08:00
dependabot-preview[bot] 5503399545 build(deps-dev): bump @wdio/cli from 6.10.5 to 6.10.11 in /web
Bumps [@wdio/cli](https://github.com/webdriverio/webdriverio) from 6.10.5 to 6.10.11.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v6.10.5...v6.10.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-19 13:19:11 -08:00
dependabot-preview[bot] 66d6d0aa79 build(deps-dev): bump @wdio/local-runner from 6.10.11 to 6.10.13 in /web
Bumps [@wdio/local-runner](https://github.com/webdriverio/webdriverio) from 6.10.11 to 6.10.13.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v6.10.11...v6.10.13)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-19 12:49:59 -08:00
Mike Welsh 9d6e711006 tests: Add test for #2030 2020-12-19 02:14:27 -08:00
Mike Welsh 60d7c0a742 core: Fix incorrect bounds for Bitmap (fix #2030) 2020-12-19 02:14:27 -08:00
Mike Welsh 981a4de9c9 tests: Uncomment arguments.caller avm1 test 2020-12-19 01:46:20 -08:00
Mike Welsh 0dd8b24fec avm1: Implement arguments.caller 2020-12-19 01:46:20 -08:00
Mike Welsh a3f18b80b6 tests: Add test for TextField.replaceSel 2020-12-19 00:35:26 -08:00
Mike Welsh 62a3729b55 avm1: Implement TextField.replaceSel 2020-12-19 00:35:26 -08:00
dependabot-preview[bot] 69e7c9500d build(deps-dev): bump eslint-config-prettier from 7.0.0 to 7.1.0 in /web
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v7.0.0...v7.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-18 19:48:39 -08:00
dependabot-preview[bot] 861f86a28a build(deps-dev): bump eslint from 7.15.0 to 7.16.0 in /web
Bumps [eslint](https://github.com/eslint/eslint) from 7.15.0 to 7.16.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.15.0...v7.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-18 17:48:02 -08:00
Mike Welsh 042e9a444b tests: Add parseFloat tests 2020-12-18 02:50:09 -08:00
Mike Welsh 80d5d9cd0a avm1: Initial implementation of parseFloat 2020-12-18 02:50:09 -08:00
Mike Welsh 326a5b6212 core: Move device font to Library (fix #1995) 2020-12-17 23:20:22 -08:00
Mike Welsh a58073cabd core: Fix Collect impl for BitmapData (fix #2009) 2020-12-17 19:35:26 -08:00
Mike Welsh 72a24b9800 tests: Add tests for #1906 2020-12-17 18:07:01 -08:00
Mike Welsh 25cd4ee375 avm1: Color.setTransform/setRGB sets transformed-by-AS flag (fix #1906) 2020-12-17 18:07:01 -08:00
dependabot-preview[bot] 5cdd52a4db build(deps-dev): bump @wdio/local-runner from 6.10.10 to 6.10.11 in /web
Bumps [@wdio/local-runner](https://github.com/webdriverio/webdriverio) from 6.10.10 to 6.10.11.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v6.10.10...v6.10.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-17 17:56:35 -08:00
Mike Welsh 7cf217a911 swf: Use lzma-rs for LZMA SWFs (fix #405)
Pure Rust decoder that functions on desktop and wasm.
Enable lzma feature by default.

TODO: Switch to lzma-rs streaming API when stable on crates.io.
Currently decodes entire stream at once.
2020-12-17 16:40:21 -08:00
jmckiern beed570475 core: Add string_utils char boundary functions 2020-12-17 16:15:24 -08:00
jmckiern b81cb1a3eb core: Extend text input to deal with multibyte chars 2020-12-17 16:15:24 -08:00
dependabot-preview[bot] 35ee3affdd build(deps-dev): bump @wdio/mocha-framework in /web
Bumps [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio) from 6.10.10 to 6.10.11.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v6.10.10...v6.10.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-17 14:06:10 -08:00
David Wendt 09f9e99fbb avm2: Implement `rest` parameters in function calls. 2020-12-17 13:21:44 -08:00
David Wendt 453e013c2c avm2: Implement `arguments`. 2020-12-17 13:21:44 -08:00
David Wendt 217890f4a6 avm2: Implement `Function.apply` 2020-12-17 13:21:44 -08:00
Toad06 25d5f48d18 web: Run eslint 2020-12-17 12:48:32 -08:00
Toad06 b9aed2c7bb web: Rename from snake_case to camelCase 2020-12-17 12:48:32 -08:00
Toad06 d6a857803a web: Fix extension and self-hosted builds conflicting with each other 2020-12-17 12:48:32 -08:00
Adrian Wielgosik 484bd2c11a
avm1: Revert #1470 to improve wasm performance 2020-12-17 12:47:22 -08:00
dependabot-preview[bot] ef88307c10 build(deps-dev): bump @wdio/sync from 6.10.10 to 6.10.11 in /web
Bumps [@wdio/sync](https://github.com/webdriverio/webdriverio) from 6.10.10 to 6.10.11.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v6.10.10...v6.10.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-17 12:46:32 -08:00
dependabot-preview[bot] b9cf5f2045 build(deps-dev): bump webpack from 5.10.3 to 5.11.0 in /web
Bumps [webpack](https://github.com/webpack/webpack) from 5.10.3 to 5.11.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.10.3...v5.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-17 12:45:54 -08:00
dependabot-preview[bot] 310524920b build(deps-dev): bump webpack from 5.10.2 to 5.10.3 in /web
Bumps [webpack](https://github.com/webpack/webpack) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.10.2...v5.10.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-15 14:16:51 -08:00
dependabot-preview[bot] 5ff2942ce2 build(deps-dev): bump webpack from 5.10.1 to 5.10.2 in /web
Bumps [webpack](https://github.com/webpack/webpack) from 5.10.1 to 5.10.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.10.1...v5.10.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-15 01:58:16 -08:00