File ruffle.changes of Package ruffle

-------------------------------------------------------------------
Tue Sep 14 08:25:52 UTC 2021 - aloisio@gmx.com

- Update to version 0~git20210913.a882f85d:
  * chore: Bump TypeScript config to es2017
  * build(deps): bump flate2 from 1.0.21 to 1.0.22
  * build(deps): bump embed-resource from 1.6.3 to 1.6.4
  * chore: move core::avm1::string::AvmString to core::string::AvmString
  * chore: move core::string_utils to core::string::utils
  * web: support no trailing slash in base parameter
  * chore: Improve the issue template
  * chore: Appease clippy
  * core: De-duplicate enums between Avm1Button and Avm2Button
  * web: don't panic if failing to create an audio buffer
  * avm2: move flash.display.IBitmapDrawable init
  * avm2: make BitmapData and DisplayObject impl IBitmapDrawable
  * avm2: IBitmapDrawable stub
  * web: Menu embed/object attribute true value is case-insensitive
  * avm2: Allow nulling `Bitmap.bitmapData`.
  * avm2: Impl `Bitmap.smoothing`
  * avm2: Stub `Bitmap.pixelSmoothing`
  * avm2: `BitmapData` should be traceable
  * avm2: Allow access to the `BitmapData` of a `Bitmap`.
  * avm2: Impl `BitmapData.getPixel`.
  * avm2: Impl `BitmapData.transparent`
  * core: Silence error relating to `Bitmap` symbol class associations
  * avm2: Impl `BitmapData.width` and `BitmapData.height`
  * tests: Add tests for `BitmapData`'s constructor, in both fresh and embedded bitmap contexts.
  * avm2: Implement `BitmapData`'s constructor.
  * core: When constructing a `Bitmap`, do not attempt to cache it's associated `BitmapData`'s handle.
  * core: Allow `BitmapData` to hold an AVM2 side.
  * core: Allow `Bitmap` to be reassociated with new `BitmapData`
  * avm2: Stub `flash.display.BitmapData` & storage object
  * tests: Add bitmap timeline test
  * core: Allow `Bitmap`s to hold an AVM2 representation
  * scanner: For some reason, analysis reports get cut off if I don't add another newline
  * scanner: Don't reset progress when the iterator has yet to complete
  * scanner: Remove duplicate CSV header
  * scanner: Add post-scan progress analysis
  * Actually copy all the file results field from the child into the parent
  * scanner: Report compressed and uncompressed file size of each SWF
  * scanner: Include other SWF header information in the scanner output.
  * scanner: Clean up and document the `FileResults` type a bit
  * scanner: Include SHA256 hash in scan results
  * scanner: Remove 16MB stacks, as they are no longer needed now that we are using multiple processes
  * scanner: Break the scanner up into multiple modules
  * scanner: Break each movie out into a separate process.
  * scanner: Add a `scan` subcommand
  * scanner: Deduplicate repeated log messages
  * scanner: Record test duration (in milliseconds)
  * scanner: Print partial results as they come out of the parallel iterator.
  * scanner: Set the default scanner thread size to 16MB.
  * scanner: Run the first frame of every movie we scan.
  * scanner: Report what stage of the scan got to before any errors happened
  * scanner: Parallelize the scan process
  * scanner: Report decompression failures as errors instead of panicking.
  * scanner: Report the AVM version of every scanned file
  * avm1: Fix `this` inside watchers (#5276)
  * chore: Bump to wasm-bindgen 0.2.77
  * chore: Appease clippy
  * dev: remove allow unused mut and corresponding mut
  * web: Support salign, quality, & scale embed/object attributes (part of #4258)
  * desktop: Refactor clap settings
  * core: Fix EditText width and height scaling (close #3001)
  * web: Fix `publicPath()` being called from non-global scope
  * web: Set `__webpack_public_path__` in `load-ruffle.ts`
  * web: Remove `config.publicPaths`
  * avm1: Remove `TObject::get_local` in favor of `TObject::get_local_stored`
  * audio: Small cleanup
  * audio: Store sound transform values in 30-bit integers
  * avm1: call watcher, if defined, from virtual properties on prototype (#4827)
  * web: check array_buffer promise for failure
  * core: Add symphonia as optional MP3 decoder
  * core: Add AudioMixer to core
  * web: fix base param
  * build(deps): bump thiserror from 1.0.28 to 1.0.29
  * build(deps): bump syn from 1.0.75 to 1.0.76
  * dev: Only test beta rust on ubuntu
  * avm2: Add more Event class stubs and constants
  * avm2: Stub `SoundMixer.areSoundsInaccessible` and `SoundMixer.computeSpectrum`
  * avm2: Impl `SoundMixer.bufferTime`
  * avm2: Impl `SoundChannel`'s `soundComplete` event.
  * avm2: Initialize all sounds and channels at time of allocation
  * avm2: Impl `SoundMixer.stopAll`
  * avm2: Impl `SoundChannel.stop()`
  * avm2: Implement `SoundChannel.soundTransform`
  * core: `NullAudioBackend` should falsely report all sounds as not playing, like the real backends
  * avm2: Stub `SoundChannel.position`.
  * avm2: Stub `SoundChannel.leftPeak` and `SoundChannel.rightPeak`
  * avm2: Stub all remaining `Sound` methods.
  * avm2: Allow playing sounds with a given `SoundTransform`.
  * avm2: Deduplicate the sound transform conversion code
  * avm2: Impl `Sound.play`
  * avm2: Add `flash.media.SoundChannel` class & associated object storage
  * tests: Add tests for `SimpleButton.soundTransform` and `SoundMixer.soundTransform`
  * avm2: `soundTransform` isn't a movieclip property, so don't ask for one.
  * avm2: Alias `SimpleButton.soundTransform` to the class property of `SoundMixer.soundTransform`
  * avm2: Impl `SoundMixer.soundTransform` class property
  * avm2: Correct `SoundTransform` class definition to match docs
  * avm2: Impl `Sprite.soundTransform`
  * tests: Add more coverage of `rightToLeft` as it disables `pan`
  * avm2: `SoundTransform.pan` returns 0 if the transform sends sound to different channels
  * avm2: `SoundTransform` stores it's values as square roots
  * tests: Add a test for AS3 `SoundTransform` properties
  * avm2: Impl `flash.media.SoundTransform`
  * core: Report sound duration as `f64` and round down in AS1
  * core: `NullAudioBackend` should not report latency seek data as part of the size of a sound.
  * avm2: Impl `Sound.length`
  * avm2: Stub `Sound.isBuffering`, `Sound.isURLInaccessible`, and `Sound.url`
  * tests: Add some basic tests for the `Sound` class
  * avm2: Impl `Sound.bytesTotal`
  * avm2: Allow calling `Function.apply` without a second argument
  * avm2: Allow instantiating a SWF sound by constructing it's symbol class
  * core: Don't warn when associating sounds to AS3 classes
  * avm2: Stub implementation of `Sound` and accompanying object type
  * desktop: Cleanup `CpalAudioBackend`
  * desktop: Revert cpal initialization on a separate thread
  * avm2: Forbid `applytype` opcodes with more than one argument type.
  * avm2: Prohibit naming types with more than one parameter, as they don't exist.
  * avm2: Storing past the end of a vector only works for the immediate one-off-the-end index
  * avm2: Fill vector holes with the default value at creation time instead of storing them.
  * avm2: Don't store more than one object parameter, because there are no classes with multiple paramters.
  * chore: Grammar
  * avm2: Move `Vector`'s properties to the AS3 namespace and add prototype properties in the public one
  * avm2: Add the ability to have a separate class initializer for each specialization of `Vector`
  * avm2: `Vector.sort` actually *does* calculate an indexed sort array, but then discards it.
  * avm2: Pick nits in `Vector`'s `instance_init`
  * avm2: Replace some if expressions with easier-to-read equivalents
  * avm2: Pre-allocate all the things
  * swf: Pre-allocate the parameters when parsing a `TypeName`
  * avm2: Add the legacy Vector types that old movies can use.
  * avm2: Accept `null` as a valid type in `applytype`.
  * avm2: Remove unnecessary `mut`
  * tests: Add a test for `Vector`'s instance initializer.
  * avm2: Impl `Vector.toLocaleString` and test `toString`
  * avm2: Stub `Number.toLocaleString`
  * avm2: Impl `Vector.splice`
  * avm2: Impl `Vector.sort`
  * avm2: Fix ineffective Vector typechecks
  * avm2: Impl `Vector.slice`
  * avm2: Impl `Vector.reverse`
  * avm2: Impl `Vector.removeAt`
  * tests: Ensure we're testing push/shift/etc with empty vectors
  * avm2: Impl `Vector.insertAt`
  * tests: Consolidate all of the type variants of each test into one test per function.
  * avm2: Impl `Vector.shift` and `Vector.unshift`
  * avm2: Impl `Vector.push` and `.pop`
  * avm2: Impl `Vector.map`
  * avm2: Impl `Vector.lastIndexOf` (and the weird backward-index behavior of `indexOf`)
  * avm2: Impl `Vector.indexOf`
  * chore: Compliance with current clippy beta/nightly
  * avm2: Specialize generic classes when resolving types whose names have parameter names also in them.
  * avm2: Impl `Vector.filter`
  * avm2: Parameter types can be `*`.
  * avm2: Consider specializations of generic classes to be of the same type as other specializations of the same class when their parameters are also of the same type.
  * avm2: Don't run initializers on vectors as they overwrite the existing vector storage.
  * avm2: Propagate the specialized class parameter into the vector storage so that coercions happen correctly.
  * chore: Drop unnecessary mut
  * avm2: Impl `Vector.forEach`
  * avm2: Impl `Vector.some`
  * avm2: `Array.every/some` should early return
  * avm2: `Vector.every` should early return
  * avm2: Impl `Vector.every`
  * avm2: Impl `Vector.fixed`
  * tests: Add `Vector.<T>.join` tests
  * tests: Add tests for multi-dimensional vector coercion typechecks & concatenation
  * avm2: Setting to an out-of-bounds index on a growable `Vector` should grow it
  * avm2: Impl `Vector.join` and `toString`
  * avm2: `Vector` is a final class (no matter what the docs say)
  * tests: Add a test for concatenating to lists of ES4 interfaces.
  * tests: Recompile the `vector_es4class_concat` test
  * tests: Recompile the concat test
  * avm2: Impl `Vector.concat`
  * avm2: Cache all `Vector` applications on the `Vector` class object.
  * tests: Add tests for `Vector.concat`
  * tests: Recompile a handful of miscompiled tests
  * avm2: Impl `Vector.length`
  * avm2: Impl `Vector`'s instance initializer
  * avm2: Vector indices are stored in a package namespace
  * avm2: ES3 class instances should be treated as instances of the ES4 class `Object`.
  * avm2: Impl `apply` for ES4 classes to allow type parameterization
  * avm2: Move applytype next to other operations that create classes
  * avm2: Implement op `ApplyType`
  * avm2: `Vector` lives in a separate package from other globals
  * tests: Actually enable all the vector tests I've been running
  * avm2: Allow constructing static `TypeName`s (for naming `Vector` classes)
  * tests: Add a test for the `delete` operator
  * tests: Add test for sticking ES3 classes in a `Vector.<Object>`
  * avm2: Add stub impl of `Vector`
  * avm2: First pass on implementing vector storage
  * tests: Add another test for subclass and superclass storage
  * avm2: First pass at type-aware vector storage
  * tests: Add tests for vector holes and set coercion
  * tests: Here's a very basic test for int access
  * avm2: Add a `TObject` method for applying arguments to a generic type.
  * avm2: Add the ability to fork a `Class` to one that holds it's type arguments.
  * swf: Decode and encode the `applytype` op.
  * avm2: Allow parsing generic typenames into a multiname
  * swf: Add support for the `TypeName` multiname type.
  * chore: Bump typescript from 4.3.4 to 4.4.2 in /web
  * chore: Bump @wdio/cli from 7.9.0 to 7.11.1 in /web
  * web: Allow migration to TypeScript 4.4
  * chore: Bump @wdio/static-server-service from 7.7.3 to 7.10.1 in /web
  * chore: Bump copy-webpack-plugin from 9.0.0 to 9.0.1 in /web
  * chore: Bump @types/chrome from 0.0.149 to 0.0.154 in /web
  * chore: Update typedoc requirement from ^0.21.2 to ^0.21.9 in /web
  * chore: Bump wdio-chromedriver-service from 7.1.1 to 7.2.0 in /web
  * chore: Update style-loader requirement from ^3.0.0 to ^3.2.1 in /web
  * chore: Bump chromedriver from 91.0.1 to 92.0.2 in /web
  * chore: Bump prettier from 2.3.1 to 2.3.2 in /web
  * tests: Add a test for symbol class association on buttons, both for timeline-constructed and AVM-constructed buttons.
  * core: Delay execution of AVM2 constructors on buttons by one frame.
  * core: AVM2 buttons only emit frame construction events and frame scripts if they were timeline-constructed.
  * core: Support constructing symbolclassed buttons from AVM2
  * core: `Avm2Button` should always call it's native initializer
  * chore: fix docstring
  * chore: Bump futures from 0.3.16 to 0.3.17
  * chore: Bump thiserror from 1.0.26 to 1.0.28
  * chore: Bump flate2 from 1.0.20 to 1.0.21
  * tests: Remove garbage in `font_embedded` test, too
  * tests: Remove garbage character in `font_hasglyphs` test
  * avm2: Stub `Font.enumerateFonts` and `Font.registerFont`
  * avm2: Impl `Font.hasGlyphs`
  * avm2: Implement `Font` for embedded fonts.
  * chore: Bump png from 0.17.0 to 0.17.1
  * chore: Bump libflate from 1.1.0 to 1.1.1
  * chore: Bump serde from 1.0.128 to 1.0.130
  * swf: Take advantage of `ClipEventFlag` bit pattern
  * xml: Use forked quick-xml to support loose entity parsing
  * avm2: Use rsplit_once instead of split_once
  * tests: Add test for getQualifiedSuperclassName
  * tests: Improve getDefinitionByName test
  * tests: Add test for getQualifiedClassName
  * avm2: Dont panic if as_class returns None
  * tests: Add test for getDefinitionByName
  * chore: Cleanup QName::to_qualified_name
  * avm2: Add QName::from_qualified_name and QName::to_qualified_name
  * avm2: Implement getQualifiedClassName, getQualifiedSuperclassName, and getDefinitionByName
  * web: Support menu embed/object attribute (part of #4258)
  * avm2: Stub flash.system.Security.
  * avm1: Rename `SuperObject::child` to `this`
  * avm1: Avoid `impl Into<Value<'gc>>` parameters
  * avm1: Remove `SuperObject::as_executable`
  * avm1: Inline `SuperObject::super_constr`
  * avm1: Simplify `SuperObject::from_this_and_base_proto`
  * avm1: Rename `ScriptObject::values` to `properties`
  * ci: Checkout source before paths filter
  * ci: Cleanup quotes
  * ci: Inline `img_tests` boolean
  * ci: Formatting
  * extension: Resolve paths relative to the SWF location
  * ci: Use `dorny/paths-filter` to run only if certain file paths change
  * Revert "dev: run workflows only if certain file paths change (#5103)"
  * avm1: `DisplayGetter` cannot fail
  * tests: Restore the "original" source code of the AVM1 rectangle test and reapply all modifications made to it to produce the AVM2 test
  * avm2: Rectangle fix clippy
  * avm2: add tests for Rectangle
  * avm2: impl Rectangle isEmpty, offset, offsetPoint, setEmpty, union
  * avm2: impl Rectangle intersection, intersects
  * avm2: impl Rectangle inflate, inflatePoint
  * avm2: impl Rectangle contains, containsPoint, containsRect, copyFrom
  * avm2: Add flash.geom.Rectangle tests
  * avm2: Impl Rectangle topLeft, size, clone, equals
  * avm2: Impl Rectangle setters and getters
  * avm2: Initial rectangle impl
  * chore: Bump serde from 1.0.127 to 1.0.128
  * chore: Bump isahc from 1.4.0 to 1.5.0
  * chore: Bump syn from 1.0.74 to 1.0.75
  * dev: run workflows only if certain file paths change (#5103)
  * github: Set a dummy value for $XDG_RUNTIME_DIR to silence some warnings
  * dev: Only test nightly rustc on linux
  * Fix a typo in a comment introduced in #5021
  * dev: Make beta builds non-required
  * chore: Minor improvement
  * core: fix integer overflow in ADPCM decoder
  * video: Use the new `H263State.parse_picture` convenience method
  * core: Add h263 feature
  * video: Add VideoDecoder trait
  * video: Reuse the same bitmap whenever possible
  * video: Allow pictures with half-pixels in chroma by widening the chroma buffers to the next pixel in that direction.
  * video: Always optimize codecs on all profiles.
  * desktop: Add video backend to timedemo
  * video: Move software decoding into core now that we don't need to specialize per-renderer
  * core: Half-implement an H.263 decoder
  * core: Add DefineBinaryData and SymbolClass connection (Part of #1368)
  * dev: remove wdio/sync (#5105)
  * tests: Expand add_property
  * avm1: Turn `TObject::call_setter` to `TObject::setter`
  * avm1: Allow stored and virtual properties to co-exist
  * web: Bump wasm-bindgen to 0.2.76
  * dev: check formatting before running tests
  * desktop: Fix clap settings
  * avm1/bitmap: Replace BitmapData.color_transform() argument with AVM-agnostic ColorTransformParams
  * avm1: Make add_field_accessors! accept nested field names
  * core,avm1: Extract ColorTransformParams from ColorTransformData
  * core,avm1: Move BitmapData implementation into core::bitmap from core::avm1::object
  * avm2: Initial MouseEvent stubs (#5065)
  * web: Adds support for base embed/object attribute (Part of #4258)
  * web: Re-enable context menu on mobile, with option to disable (#5000)
  * avm2: implement string.split for undefined (#5064)
  * chore: Fix clap update
  * chore: Bump clap from 3.0.0-beta.2 to 3.0.0-beta.4
  * chore: Fix png update
  * chore: Bump png from 0.16.8 to 0.17.0
  * chore: Appease clippy
  * chore: Bump bitstream-io from 1.1.0 to 1.2.0
  * chore: Bump bitflags from 1.2.1 to 1.3.2
  * extension: Fix warning on Firefox
  * extension: vectorize logo image
  * Use a more idiomatic pattern for unwrap-or-default
  * chore: Clippy compliance with latest nightly compiler
  * Add new tests for avm2 string.split()
  * chore: appease clippy
  * avm2: Rename function, add runtime warnings
  * avm2: Add define_public_builtin_class_traits and repair Capabilities to use it
  * avm2: Implement `String.split`
  * avm2: start flash.system.Capabilities stubs
  * core: Reset mouse visible when loading movie to root (Fixes #4358)
  * demo: Fix local file uploads on iOS
  * chore: Bump cpal from 0.13.3 to 0.13.4
  * chore: Update `flash-lso`'s dependent commit ID
  * web: Bump wasm-bindgen to 0.2.75
  * Link all CompileErrors to wiki without a report bug button
  * avm1: Log internal error on `InvalidSwf`
  * swf: Ignore length mismatch in `read_action`
  * swf: Extract `Opcode::format` and `TagCode::format`
  * Add a loadeddata event, which triggers when loadedmetadata does for now
  * core: Fixes several text edit font and bullet issues (parts of #1167)
  * docs: update swf README to have working examples
  * web: add isExtension info to panic info and context menu version string
  * chore: Bump serde from 1.0.126 to 1.0.127
  * Extension: Sidestep CORS issues by offering to load the SWF in a tab
  * chore: Bump @wdio/local-runner from 7.7.4 to 7.9.0 in /web
  * chore: Bump @wdio/cli from 7.7.4 to 7.9.0 in /web
  * chore: Bump @wdio/spec-reporter from 7.7.3 to 7.9.0 in /web
  * chore: Bump @typescript-eslint/parser from 4.28.1 to 4.28.5 in /web
  * chore: Bump @wdio/mocha-framework from 7.7.3 to 7.9.0 in /web
  * chore: Bump ts-loader from 9.2.3 to 9.2.4 in /web
  * chore: Update @types/firefox-webext-browser requirement in /web
  * chore: Bump @types/chrome from 0.0.145 to 0.0.149 in /web
  * chore: Bump mocha from 9.0.1 to 9.0.3 in /web
  * fix: remove the version requirement for mesa drivers
  * avm1: Remove `TObject::set_proto`
  * tests: Expand object_prototypes
  * avm1: Store `__proto__` as a regular property
  * docs: Fix CONTRIBUTING.md table of contents link
  * Revert "web: Simplify .wasm loading"
  * web: Simplify .wasm loading
  * avm1: Don't rely on prototypes during serialization
  * avm1: Fix performance regression in `BitmapData::pixels_rgba`
  * web: Bump wasm-bindgen to 0.2.74
  * web: Remove unused `wasm-bindgen-test` dependency
  * chore: Bump mesa-vulkan-drivers version
  * Add support for image comparison tests
  * tests: Add test for generateRandomBytes
  * avm2: Implement flash.crypto.generateRandomBytes
  * avm2: `get_property` does not mutate the underlying object (anymore) so it should not be flagged as mutably borrowing it.
  * avm2: Remove `ScriptObjectClass` and replace with separately implemented methods on `ClassObject`
  * avm2: Cache the instance allocator on class objects
  * avm2: Make `coerce_to_type` take a class object instead of a multiname.
  * avm2: Don't call native initializers when coercing primitives into objects.
  * avm2: Replace the `call_strict` mechanism with checking to see if free functions are unchecked.
  * avm2: Supercalls should fall back to normal receiver access if there is no matching supertrait to use.
  * avm2: Rename `StageObject::graphics_of` to just `graphics`
  * tests: Add a test for bare calls on the ES4 class object
  * avm2: Calling ES4 class objects is treated as a coercion to that type.
  * core: MovieClips should initialize their AVM2 sides by calling `call_native_init`.
  * avm2: Replace `deriver` language with `allocator` language
  * avm2: Retire the use of "constructor" outside of literal reference to class initializer or instance initializer code.
  * avm2: Rename `ArrayObject::empty_array` to `ArrayObject::empty`.
  * avm2: Avoid double iteration in `Names.contains_name`
  * avm2: Rename `Method::Entry` to `Method::Bytecode`
  * avm2: Rename `Method::from_builtin_only` to `Method::from_builtin`
  * avm2: Rename `call_initializer` and `call_native_initializer` to `call_init` and `call_native_init`
  * docs: Fix stale comments in avm2
  * avm2: Use `extend_from_slice`
  * avm2: Rename `resolve_parameter_value` to `resolve_parameter`
  * avm2: Split out `Method` and `Executable`'s native fork into `NativeMethod` and `NativeExecutable`, respectively.
  * avm2: Simplify/correct the value numerical checks
  * swf: Throw an error if an ABC bitstream calls for a parameter with more optional parameters than actual ones.
  * avm2: Rename `SystemConstructors` to `SystemClasses`
  * chore: Clippy compliance on Rust nightly
  * tests: Actually run the `istypelate_coerce` test
  * avm2: Allow builtins to also hold parameter type metadata.
  * avm2: Make numbers appear to be of any numeric type that can represent them.
  * avm2: Include the parameter coercions into `op_coerce`
  * avm2: Make the `pool_` and `table_` functions no longer take a superfluous mutation context.
  * tests: Add tests for default parameters, type checks, and implicit typecheck coercions
  * avm2: `undefined` is normalized to `null` for string and object coercions
  * swf: Default method parameters are indexed starting from the first optional parameter, not from zero.
  * avm2: Relax the maximum arguments check for functions called from native code.
  * avm2: Implement implicit coercion for primitive types
  * avm2: Implement parameter typechecking for script functions.
  * core: Use the new construct pathway for building AVM2 `TextFormat` objects
  * avm2: Enforce `final` on traits.
  * Check to make sure that overrides only apply to already-installed properties.
  * avm2: Enforce `interface` checks: classes cannot extend interfaces and cannot implement other classes.
  * avm2: Enforce `final` on classes
  * avm2: `install_dynamic_property` now checks to see if the object is sealed, and if so, throws an error.
  * avm2: `Function.prototype`'s properties are not methods.
  * avm2: Remove the special global constructor scope mode we added two commits ago.
  * avm2: Don't instantiate classes or functions at trait install time.
  * avm2: Add a special object mode for `globals` so that it can get it's own scope during trait installation.
  * avm2: Remove `_slot_local` methods as we no longer do anything special with slots.
  * avm2: Remove lazy trait initialization
  * avm2: `broadcast_event` should use constructors for it's type checks.
  * avm2: Make `istype` use the constructor chain, not the prototype chain.
  * avm2: Remove all remaining accesses to `SystemPrototypes`, save for one technicality with the global scope prototype.
  * avm2: Adjust the `FunctionObject` associated constructors so that there's a path that doesn't require the user hit `SystemPrototypes`.
  * avm2: Split `StageObject` associated constructors into two versions: allocation-only (`for_display_object`) and allocation-and-initialization (`for_display_object_childless`).
  * avm2: Remove `XmlObject::empty_object` as it does not appear to be in use and will need further elaboration when XML is unstubbed.
  * avm2: Make `RegExpObject::from_regexp` pull it's own constructor and call it's own initializer.
  * avm2: `PrimitiveObject::from_primitive` should now select it's own class and construct it.
  * avm2: Make `NamespaceObject`'s sole associated method build and construct a `Namespace` instance.
  * avm2: Make `LoaderInfo`'s associated methods call initializers and pull their constrs/protos as necessary
  * avm2: Don't ask for a `proto` in `EventObject::from_event`.
  * avm2: Make all domain object construction (save for the global domain) pull the constructor and call it in `from_domain`.
  * avm2: Clean up `ClassObject` initialization.
  * avm2: Remove all alternative `ByteArrayObject` constructors.
  * avm2: Tie `ArrayObject`'s constructors to the system `Array` class.
  * avm2: Don't run `Point`'s constructor twice when natively constructing one.
  * avm2: Split native and script instance initializers for non-constructable classes.
  * avm2: Add a notion of native instance initializers.
  * avm2: Remove unnecessary manual accesses of the `constructor` property on prototypes.
  * avm2: Create a new list of system constructors alongside the existing list of system prototypes.
  * avm2: `Graphic` construction shouldn't use the `Shape` proto as it's base constructor.
  * avm2: Remove the prototype setter exception as prototypes no longer provide setters to instances.
  * avm2: Filter traits in `call_instance_xyz` by the trait type before actually getting trait fields.
  * avm2: Do not attempt to `super_init` the `LoaderInfo` object.
  * avm2: Allow constructing activation objects (since we now force instance constructors to run)
  * avm2: Move the class association from prototypes to instances.
  * avm2: Store instance derivers as a `Class` property instead of keeping them only as a globals concept
  * avm2: Split `Class` and `Function` object types
  * chore: Reserve capacity for vectors
  * chore: Bump env_logger from 0.8.4 to 0.9.0
  * avm1: Rename `set_watcher` and `remove_watcher` to `watch` and `unwatch`
  * avm1: Replace `get` + `call` with `call_method`
  * avm1: Replace `set` + `set_attributes` with `define_value`
  * avm1: Remove unnecessary type annotations
  * avm1: Remove `StageObject::as_executable`
  * tests: Add as_set_prop_flags
  * avm1: Correct `ASSetPropFlags`
  * web: Fix and cleanup npm build scripts
  * swf: Optimize `read_f64_me` and `write_f64_me`
  * web: Unify "menu_item" and "active" CSS classes
  * open "not yet supported more info" in new tab
  * chore: Bump regress from 0.3.0 to 0.4.1
  * chore: Bump instant from 0.1.9 to 0.1.10
  * demo: Small cleanups
  * web: Remove unused `RufflePlayer._trace_observer`
  * web: Remove `RufflePlayer.playButtonClicked`
  * core: Cleanup `tag_utils.rs`
  * core: Remove unused `SwfMovie::from_movie_and_subdata`
  * tests: Simplify `read_tag_bytes_from_file_with_index`
  * swf: Avoid using `Reader::input` directly
  * swf: General cleanup
  * avm1: alphabetise text_field properties
  * avm1: update attributes of text_field properties
  * avm2: Do timeout check every 2000 actions, same as avm1
  * swf: Fix read_i24
  * swf: Fix write_i24
  * swf: Introduce and use `Color::to_rgba`
  * chore: Use to_le_bytes in more places
  * chore: Use from_le_bytes in more places
  * core: Fix ADPCM decoder
  * core: Refactor PCM decoder a bit
  * avm1: Correct ToInteger
  * Remove error report link from could not download wasm module
  * avm1: implement scroll, maxscroll and bottomScroll for TextField (#4698)
  * avm1: Fix apply_to_display_object (#4377) (#4743)
  * desktop: Add a flag to disable AS3 warning popup
  * desktop: Add DX11 to default graphics backends
  * Fix minor bug/typo in `action_get_url_2`
  * web: Remove unused source-map-loader dependency
  * web: Remove unused esm dependency
  * web: Cleanup tsconfig.json files
  * web: Cleanup .eslintrc.json files
  * web: Remove babel-eslint dependency
  * web: Update package-lock.json
  * chore: Run `cargo update`
  * chore: Minor cleanups
  * web: Fix build without wasm-opt on Windows
  * web: Fix mocha integration with ES modules
  * chore: Bump mocha from 8.4.0 to 9.0.1 in /web
  * web: Extract .mocharc.json
  * web: Replace chai with Node.js built-in assert module
  * chore: Bump @wdio/cli from 7.7.3 to 7.7.4 in /web
  * chore: Bump @wdio/local-runner from 7.7.3 to 7.7.4 in /web
  * chore: Bump webpack from 5.39.1 to 5.41.1 in /web
  * chore: Bump @typescript-eslint/parser from 4.27.0 to 4.28.1 in /web
  * chore: Bump wdio-chromedriver-service from 7.1.0 to 7.1.1 in /web
  * chore: Bump @wdio/sync from 7.7.3 to 7.7.4 in /web
  * chore: Update eslint-plugin-jsdoc requirement in /web
  * chore: Bump style-loader from 2.0.0 to 3.0.0 in /web
  * chore: Bump @typescript-eslint/eslint-plugin in /web
  * chore: Update typedoc requirement from ^0.21.0 to ^0.21.2 in /web
  * chore: Bump svg from 0.9.2 to 0.10.0
  * chore: Minor cleanups
  * swf: Cleanup Error
  * chore: Prefer spelling "Graphic"
  * chore: Avoid spelling "movieclip"
  * core: Take advantage of or patterns
  * core: Remove `branch = "main"` in Cargo.toml
  * avm1: Shorten integers values
  * chore: Use Value into() in more places
  * avm1: Don't attempt to serialize MovieClips
  * web: Fix lint warnings
  * chore: Use into() in more places
  * tests: Turn array_vs_object_length into array_length
  * tests: Merge array_apply into array_constructor
  * tests: Enable negative array length in array_constructor
  * avm1: Correct some Array set_length cases
  * avm1: Merge array_function with constructor
  * avm1: Correct AsBroadcaster removeListener
  * avm1: Correct AsBroadcaster addListener
  * avm1: Cleanup ScriptObject constructors
  * avm1: Use custom array index parsing method
  * avm1: Extract ArrayObject
  * avm1: implement hscroll and maxhscroll for TextField
  * avm2: ByteArray updates
  * core: Fix documentation spelling
  * web: Improve Hungarian translations
  * swf: Add NameCharacter tag
  * chore: Bump wgpu from 0.8.1 to 0.9.0
  * chore: Bump rand from 0.8.3 to 0.8.4
  * chore: Bump bitstream-io from 1.0.0 to 1.1.0
  * chore: Update @types/chai requirement from ^4.2.18 to ^4.2.19 in /web
  * dev: downgrade mocha to 8.4.0
  * lint: fix prettier errors
  * dev: update all package.json devDependencies to latest
  * dev: set dependabot npm versioning strategy to increase
  * avm1: Wire up _soundbuftime
  * core: Add AudioManager::stream_buffer_time
  * avm1: Use bitflags for ChannelOptions
  * core: Preallocate bitmaps for remaining cases in decode_define_bits_lossless
  * avm1: Implement ToggleHighQuality op
  * avm1: Wire up _highquality
  * avm2: Wire up Stage.quality
  * avm1: Wire up _quality
  * core: Add Stage::quality
  * tests: Add test for PlaceObjectAction::Replace during goto
  * core: Fix PlaceObjectAction::Replace in gotos (fix #4545)
  * core: Pump action queue after handling an event
  * core: Fire button events after mouse move events
  * core: Remove self_node parameter from DisplayObject::mouse_pick
  * avm1: Implement _droptarget
  * avm1: Implement dragOver/dragOut button events
  * core: Support drag events with magic button frame labels
  * core: Wire up dragOver/dragOut events for buttons
  * core: Add Player::mouse_pressed_object
  * tests: Add test for SetTarget on a removed clip
  * avm1: SetTarget of a removed clip is invalid
  * core: keyPress events take precedence over text input
  * tests: Add test for execution order
  * tests: Change button_order test to 2 frames
  * core: Ensure bitmaps run post_instantiate
  * core: Add Avm1::exec_list to manage global list of display objects
  * chore: Bump embed-resource from 1.6.2 to 1.6.3
  * chore: Bump env_logger from 0.8.3 to 0.8.4
  * chore: Bump syn from 1.0.72 to 1.0.73
  * chore: Bump bytemuck from 1.5.1 to 1.7.0
  * avm1: Implement MovieClip.beginBitmapFill
  * core: Add backend::render::BitmapSource trait
  * core: support magic button labels for avm1
  * avm1: Call ContextMenu.onSelect before preparing context menu items
  * avm1: Rewrite TObject array methods
  * core: Use swf::ClipEventFlag in stored clip event handlers
  * chore: Avoid unused_variables annotations
  * Add favicon to demo page (fix #2910)
  * core: Allow MorphShapes and Texts to be replaced via PlaceObject
  * tests: Add test for PlaceObject replace
  * avm2: Only construct Shapes once
  * core: PlaceObjectAction::Replace swaps out graphic handles
  * tests: Add test for DefineFunction case sensitivity
  * avm1: DefineFunction should respect case sensitivity
  * swf: Change Twips::zero fn to Twips::ZERO const
  * swf: Change Matrix to use Fixed16 for a, b, c, d
  * avm1: Refactor ScriptObject::get_local
  * avm1: Make TObject::get_local return Option
  * avm1: Add TObject::set_local
  * avm1: Cleanup some TObject methods
  * chore: Bump approx from 0.4.0 to 0.5.0
  * docs: correct tested node versions
  * web: Fix wasm compile error check
  * swf: Move num_colors into BitmapFormat::ColorMap8
  * swf: Use casting instead of ToPrimitive
  * swf: Number enum VideoCodec
  * swf: Number enum VideoDeblocking
  * swf: Number enum TextGridFit
  * swf: Number enum FontThickness
  * swf: Number enum TextAlign
  * swf: Number enum AudioCompression
  * swf: Number enum LineCapStyle
  * swf: Number enum GradientSpread
  * swf: Number enum SoundEvent
  * swf: Number enum BlendMode
  * swf: Number enum Language
  * core: Use casting instead of ToPrimitive
  * web: Ignore package-lock.json in packages
  * web: Remove package-lock.json in core
  * core: Replace num_enum with num_derive
  * chore: Appease clippy
  * web: Add better error information about wasm CompileErrors
  * web: improve typescript types
  * chore: Bump @wdio/mocha-framework from 7.5.3 to 7.7.2 in /web
  * tests: Test attachMovie scaling
  * core: Set init_object after first run_frame (fix #2084, #3414)
  * chore: Bump @wdio/local-runner from 7.5.4 to 7.7.0 in /web
  * chore: Bump eslint from 7.25.0 to 7.27.0 in /web
  * chore: Bump @wdio/static-server-service from 7.5.3 to 7.6.0 in /web
  * chore: Bump eslint-plugin-jsdoc from 33.3.0 to 35.1.2 in /web
  * chore: Bump @typescript-eslint/eslint-plugin in /web
  * chore: Bump copy-webpack-plugin from 8.1.1 to 9.0.0 in /web
  * chore: Bump webpack-cli from 4.6.0 to 4.7.0 in /web
  * chore: Bump chromedriver from 90.0.0 to 90.0.1 in /web
  * chore: Bump tinyfiledialogs to 3.8.3
  * chore: Bump regress from 0.2.0 to 0.3.0
  * chore: Bump indicatif from 0.16.1 to 0.16.2
  * chore: Bump svg from 0.9.1 to 0.9.2
  * swf: Use bitflags for Function flags
  * swf: Use Fixed in more places
  * avm1: Fix string methods handling of negative args (fix #4437)
  * tests: Add test for overriding Object.prototype.toString
  * avm2: Move Object properties to Object.prototype
  * [avm1] extend impl_custom_object! to reduce boilerplate
  * chore: Bump thiserror from 1.0.24 to 1.0.25
  * chore: Bump indicatif from 0.16.0 to 0.16.1
  * chore: Bump getrandom from 0.2.2 to 0.2.3
  * core: Add SwfMovie::frame_rate and num_frames
  * core: Add SwfMovie::uncompressed_len
  * core: Add SwfMovie::stage_size
  * web: Add MovieData.isActionScript3 and backgroundColor
  * core: Use SwfMovie::avm_type instead of MovieLibrary::avm_type
  * swf: Add HeaderExt struct providing additional info
  * core: Handle visible flag from PlaceObject (fix #3403)
  * core: Fix build without serde feature
  * chore: Appease clippy
  * swf: Use bitflags for FileAttributes
  * chore: Update issue templates
  * avm1: Remove unnecessary gc_context parameters
  * avm1: Remove extraneous self parameters from MovieClip methods
  * avm1: Remove unnecessary calls to create_bare_object
  * avm1: Remove unused TObject::as_string
  * i18n: Add Romanian
  * canvas: Fix alpha calculation in canvas renderer
  * chore: Bump futures from 0.3.14 to 0.3.15
  * avm1: add property_decl::declare_properties! macro for defining built-ins
  * chore: Bump winit from 0.24.0 to 0.25.0
  * chore: Bump serde from 1.0.125 to 1.0.126
  * chore: Bump enum-map from 1.1.0 to 1.1.1
  * chore: Bump isahc from 1.3.1 to 1.4.0
  * web: Make `unmuteOverlay: "hidden"` resume audio without extra click
  * web: Add a `none` value to completely disable the unmute overlay
  * i18n: Add Korean
  * avm2: Properly implement Avm2Button::hit_test_shape and mouse_pick
  * core: Do not include stage transform in DisplayObject::local_to_global_matrix
  * avm2: Remove some AVM1 leftovers from Avm2Button
  * avm2: Fix up DisplayObject root and stage properties
  * avm2: Use define_public_builtin_instance_properties for SimpleButton
  * avm2: Impl `SimpleButton.useHandCursor`
  * avm2: Impl `SimpleButton.enabled`
  * avm2: Impl `SimpleButton.trackAsMenu`
  * tests: Move the button tests into the new test directory.
  * avm2: Impl the constructor parameters for `SimpleButton`
  * tests: Don't check the `exitFrame` or `frameConstructed` events in the nested test as it appears to fire the events redundantly
  * core: `root` and `stage` should yield `None` if an inactive state child of an `Avm2Button` is involved in the parent chain.
  * core: `stage` also yields the current context's stage if there isn't one in the parent chain and we aren't in a button
  * core: AVM2Button does not set the parent of the movie until after it's constructors have run
  * core: Store the root of each loaded movie and use it as a last-ditch way to get the root
  * core: Implement the AVM2 concept of `stage`.
  * core: Implement a separate `avm2_root` method that provides an AS3 notion of root
  * tests: Add tests for what children see as their parent when constructed or shuffled between movie clips and buttons
  * core: `Avm2Button` should unparent any added children
  * core: `avm2_parent` always returns a container, or nothing.
  * core: Split the parent accessor further into `parent` and `avm1_parent`.
  * core: Ensure sprite children get linked up correctly
  * core: `Shape` should always expose it's defining movie instead of punting to the parent clip
  * tests: Don't assert execution order of frame scripts within buttons
  * core: Order of events for child `Avm2Button` states is hit-up-down-over.
  * avm2: When constructing new `SimpleButton`s, make sure the display object sees it's AVM2 side, else we replace all it's contents with AVM1 objects somehow(?!)
  * core: `Avm2Button` always runs a frame on set children, even if it's not the current state
  * core: Allow linking `Avm2Button`'s object
  * tests: Add currently-failing tests for the `SimpleButton` constructor and order-of-events.
  * core: `Avm2Button` fires off events in this order when you set one of it's children:
  * avm2: `SimpleButton` should build a button when constructed
  * avm2: `instanceof` accepts `null` and `undefined`
  * avm2: Constructor-based symbol instantiation should also post-instantiate before constructing a frame
  * tests: Add an almost-passing test for buttons with multiple levels of children
  * core: State-constructed sprites in `Avm2Button` should be post-instantiated after everything else so they get their instance numbers later
  * core: `Shape` gets an instance number
  * tests: Add a test for child events using the same timeline structure as the structure test.
  * core: Correct the order of events that are fired when an `Avm2Button` is instantiated on the timeline.
  * tests: Extend the simplebutton structure test to include frame 2
  * core: Initial construction should also prevent normal frame execution first frame
  * core: AVM2 `Button`s run their children one frame at construction time
  * core: `Avm2Button` should always construct a sprite for each state, even if it's not used.
  * tests: Add a test for timeline-constructed AS3 `SimpleButton` contents
  * avm2: `Avm2Button` should construct it's children
  * avm2: Also impl `construct_frame` and `run_frame_scripts` for `Avm2Button`
  * core: `Avm2Button` should construct a sprite whenever there's anything other than one child
  * core: `Avm2Button` shouldn't try to construct a Sprite using it's prototype
  * core: `set_avm2_constructor` works on constructors, not prototypes
  * core: Child instantiation should print the error message it got when it fails
  * core: Allow AVM2 movies to define `Avm2Button` characters in their libraries
  * avm2: Add setters and getters for the four states of `SimpleButton`
  * core: Add AVM2 version of Button
  * avm2: Stub `flash.display.SimpleButton`
  * avm2: Store the sprite proto
  * core: Rename `Button` to `Avm1Button`
  * core: Fix endless loop when layouting text
  * core: Remove collect::CollectWrapper
  * i18n: Update Turkish localization
  * core: Use bitflags for HitTestOptions
  * tests: Add tests for various funky AVM1 ops
  * avm1: Handle undefined/empty method name in NewMethod
  * avm1: Correct ImplementsOp
  * avm1: Return undefined on invalid count in InitArray and InitObject
  * avm1: Cleanup CallMethod
  * avm1: Fix variadic arguments
  * swf: SwfStr: reimplement `Debug` with `std::ascii::escape_default`
  * tests: Fix swf::Fixed tests in --release (fix #4313)
  * desktop: Refactor main.rs
  * chore: Bump rustfft
  * chore: Bump wgpu from 0.8.0 to 0.8.1
  * chore: Bump enum-map from 1.0.0 to 1.1.0
  * chore: Bump syn from 1.0.71 to 1.0.72
  * web: Fix context menu checkmark in web builds
  * core: Disallow .. in shared object paths (fix #3961)
  * desktop: Append .sol extension to SharedObject files
  * avm1: Add parsing of legacy json SharedObjects for backwards compatability
  * avm1: Fix tests for SharedObject
  * avm1: Add test for generated file
  * chore: Remove debug printing
  * avm1: Implement de/serialization of shared objects into Flash Player Lso format
  * i18n: Minor improvement in Spanish translation
  * i18n: Added Turkish localization
  * avm1: Use bitflags for Array.sort flags
  * chore: Appease clippy, bump url
  * ci: Run apt-get update
  * avm1: Replace `current_swf_version` with `swf_version`
  * desktop: Fix window size calculation
  * avm1: Use `set_html_text` when initializing textfield from a variable binding
  * desktop: add parameters to specify window size
  * Remove lifetime from constants
  * avm2: Unify NativeMethod and GenericNativeMethod
  * avm2: Generate class traits from const arrays
  * avm2: Don't repeatedly call class.write(mc)
  * avm1: MovieClip.getBytesLoaded/Total should return the clip's length
  * Move all SWF tests out of `core` to new `tests` package
  * avm1: Handle CDATA sections in XML
  * chore: Bump indicatif from 0.15.0 to 0.16.0
  * chore: Bump lzma-rs from 0.1.3 to 0.2.0
  * chore: Move core::property_map to core::avm1::property_map
  * core: Replace SwfMovie's PropertyMap by a list of key-value pairs
  * docs: note mxmlc
  * docs: link mtasc, note ActionScript 2 only
  * docs: test guidelines
  * chore: Remove puremp3 feature
  * web: Remove unwraps from Rust glue
  * ci: Bump github-actions-deploy-aur
  * core: Support for custom context menu items on movie root
  * tests: replace existing shared object test using mtasc
  * fix: SharedObject data property is not deleteable
  * chore: Bump stylelint from 13.13.0 to 13.13.1 in /web
  * docs: note how to print trace statements
  * chore: Bump @wdio/sync from 7.5.2 to 7.5.3 in /web
  * chore: Bump @wdio/spec-reporter from 7.5.2 to 7.5.3 in /web
  * chore: Bump @wdio/static-server-service from 7.5.2 to 7.5.3 in /web
  * chore: Bump @wdio/cli from 7.5.2 to 7.5.3 in /web
  * chore: Bump @wdio/local-runner from 7.5.2 to 7.5.4 in /web
  * chore: Bump @wdio/mocha-framework from 7.5.2 to 7.5.3 in /web
  * chore: Bump webpack from 5.36.1 to 5.36.2 in /web
  * chore: Bump eslint-plugin-jsdoc from 32.3.4 to 33.0.0 in /web
  * web: Cleanup ESLint configuration
  * avm2: Fix Array.splice
  * avm1: Fix Array.splice
  * chore: Bump to wgpu 0.8
  * chore: Bump webpack from 5.35.1 to 5.36.1 in /web
  * chore: Bump @types/chrome from 0.0.135 to 0.0.136 in /web
  * chore: Upgrade to GitHub-native Dependabot
  * web: Use unicode escapes for checkbox emojis
  * build(deps): bump syn from 1.0.70 to 1.0.71
  * avm2: Slot lookups don't need the whole trait list, just the first one we find.
  * avm2: Instantiate slot traits on `get_slot`, `set_slot` etc.
  * avm2: Allow pulling traits by slot id
  * tests: Add a test for AVM2 nested closures (which thus tests `newactivation`)
  * avm2: `newactivation` should return an object which implements the traits listed in the associated method `body`'s trait list
  * avm2: Fix order in which `setslot` takes it's parameters
  * core: Also hide playback controls on single-frame SWFs
  * avm1: Respect menu.builtInItems, but on root clip only
  * Fix formatting
  * avm2: Support Stage.showDefaultContextMenu
  * avm1: support Stage.showMenu
  * web: Minimal context menu buttons for movie control
  * core/display_object: Correctly draw videos that have different bounds than the size of their actual frame data
  * chore: Bump JS packages
  * build(deps-dev): bump webpack from 5.32.0 to 5.35.1 in /web
  * build(deps-dev): bump @wdio/local-runner from 7.3.1 to 7.5.1 in /web
  * build(deps-dev): bump ts-loader from 8.1.0 to 9.1.1 in /web
  * build(deps-dev): bump @wdio/static-server-service in /web
  * build(deps-dev): bump eslint-config-prettier from 8.1.0 to 8.3.0 in /web
  * build(deps-dev): bump @wdio/mocha-framework from 7.3.1 to 7.4.6 in /web
  * build(deps-dev): bump chai-html from 1.3.0 to 2.0.1 in /web
  * tests: Add test for Stage.scaleMode/align
  * core: Implement Stage resize events
  * core: Adjust stage size by DPI factor in NoScale scale mode
  * avm2: Add flash.display.StageScaleMode and Stage.scaleMode
  * avm1: Add StageScaleMode and StageAlign properties to Stage
  * core: Add StageScaleMode and StageAlign properties to Stage
  * tests: Add a new test for properties unique to the `Stage`
  * avm2: `Stage.color` yields background color alpha (always 0xFF) in the high bits of the u32
  * avm2: Impl `flash.display.StageQuality` enum
  * avm2: Stub `Stage.quality`
  * avm2: Stub `Stage.allowsFullScreen` and `Stage.allowsFullScreenInteractive`
  * avm2: Impl `Stage.stageWidth`/`Stage.stageHeight`, sorta
  * avm2: Impl `Stage.frameRate`
  * avm2: Implement `Stage.focus`
  * avm2: Impl `Stage.color`'s setter
  * avm2: Impl `Stage.displayState`'s getter
  * avm2: Impl `flash.display.StageDisplayState`
  * avm2: Impl `Stage.contentsScaleFactor`
  * avm2: Impl `Stage.color`
  * avm2: Expose `Stage.browserZoomFactor`
  * core: Store the viewport's scale factor on the stage
  * avm2: Impl `flash.display.StageAlign`
  * avm2: Support the half-broken `loaderInfo` on the `Stage`
  * avm2: Add overrides for every property that cannot be set on the `Stage`.
  * tests: Add tests for stage access and basic display object properties
  * avm2: The stage's name should be `null`, not an empty string; and setting it should except.
  * avm2: Add a convenience method for marking a builtin override trait.
  * avm2: Allow access to the `Stage`, both directly and indirectly
  * core: Ensure `Stage` always has an AVM2 representation
  * avm2: Add `Stage` class stub
  * core: Add a `root_clip` method for `Stage` and make everything grabbing depth 0 off the stage use it
  * core: We don't need `CollectWrapper` anymore
  * core: Move the viewport and stage dimensions into the `Stage`.
  * core: Run all of the steps of a frame update on the `Stage`
  * core: Correct order of viewport bounds in render context
  * core: `Stage` should render it's children
  * core: Remove the explicit view bounding box and instead have all the culling code ask the `Stage` what it's bounding box is
  * core: Move most of the player rendering code into the `Stage`'s render method.
  * core: `Letterbox` should be `Collect`
  * core: Replace `context.levels` with a root stage
  * core: Add the ability to iterate over the depth list of any container
  * core: Add a `Stage` display object type
  * ci: Fix typo in macOS build step name
  * ci: Update PKGBUILD for AUR package
  * ci: Refactor nightly release script
  * chore: Appease clippy
  * tests: Add tests for BitmapData max size
  * avm1: Limit width and height of BitmapData
  * avm1: Fix panic in BitmapData.loadBitmap
  * avm1: Correct BitmapData constructor
  * wgpu: Bump to latest master
  * extension: Avoid script injection in XML documents
  * tests: Move utils.js out of polyfill folder
  * tests: Add tests for Ruffle JS API
  * web: Expose SWF metadata to JavaScript
  * extension: Lint after TypeScript migration
  * extension: Complete TypeScript migration
  * extension: Initial TypeScript migration
  * tests: Bump test script timeout
  * core: Disable script timeout in debug builds
  * build(deps): bump dirs from 3.0.1 to 3.0.2
  * chore: Switch to new cargo resolver
  * avm2: Store symbol / class relationships using the class constructor, not the prototype.
  * tests: Add a test for constructing symbol classes in AVM2
  * avm2: Treat construction of symbol classes as symbol instantiation.
  * core: Add `DisplayObject` method for setting the AVM2 side of a display object
  * Store the movie associated with a given symbol being constructed.
  * core: Make the AVM2 constructor registry global
  * core: Store constructor prototypes in the constructor registry when defining symbols
  * core: Add an AVM2 constructor registry
  * avm2: Impl `Eq`, `Hash` for `Object` using ptr values
  * extension: Avoid script injection in XML documents
  * build(deps): bump embed-resource from 1.6.1 to 1.6.2
  * extension: Convert manifest to JSON5
  * web: Migrate file-loader to asset modules
  * web: Use relative paths for webpack entries
  * web: Update package-lock.json
  * core/avm1: Coerce Rectangle and Point parameter fields to f64 first
  * core/avm1: Switch to i32 in BitmapData.merge(), clamp *_mult parameters
  * core/avm1: Implement BitmapData.merge()
  * build(deps): bump syn from 1.0.69 to 1.0.70
  * avm2: minor changes to domain memory
  * chore: Format and fix clippy lints
  * avm2: Implement ApplicationDomain.domainMemory
  * avm2: Store ByteArrayObject in Domain rather than ByteArrayStorage
  * avm2: Use try_into for converting slice->array
  * avm2: Remove more unused code from test
  * avm2: Remove unused code from test
  * avm2: Dont panic when domain memory not available
  * chore: Fix clippy lints
  * avm2: Correct Sxi8 and Sxi16
  * avm2: Add tests for Op::Sxi1
  * chore: Format
  * avm2: Implement Op::Sxi1
  * avm2: Implement Op::Lf64
  * avm2: Implement Op::Sf64
  * avm2: Implement Op::Lf32
  * avm2: Implement Op::Sf32
  * avm2: Use from/to_le_bytes
  * chore: Format
  * avm2: Implement Op::Li32
  * avm2: Implement Op::Si32
  * avm2: Implement Op::Li16
  * avm2: Implement Op::Si16
  * avm2: Some domain memory is available by default and error when range invalid
  * avm2: Implement Op::Si8 and Op::Li8 badly
  * avm2: Implement Op::Coerce and add tests
  * avm2: Add domain memory tests
  * swf: Add support for AVM2 domain memory opcodes
  * avm2: Call the super initializer of LoaderInfo after construction
  * demo: Use absolute URLs for links in README
  * tests: Update transform test to verify color transform rounding
  * core: Use Fixed8 and i16 for ColorTransform
  * swf: Add Fixed8 and Fixed16 types
  * build(deps): bump wasm-bindgen-test from 0.3.19 to 0.3.23
  * build(deps): bump syn from 1.0.67 to 1.0.69
  * demo: Allow small screens to still upload local files
  * avm2: Fix parsing of variable-length s32 values
  * web: Handle errors from CSPs which block WebAssembly
  * build(deps): bump libflate from 1.0.4 to 1.1.0
  * avm1: Return an unboxed undefined in `TransformObject` constructor
  * tests: Expand funky_function_calls
  * avm1: Pass undefined this for CallMethod with non-string method_name
  * tests: Expand sound
  * avm1: Implement Sound.getDuration() and Sound.setDuration()
  * audio: Properly round sound duration
  * avm1: Sound.duration should return undefined when no sound is attached
  * web: Bump wasm-bindgen and js-sys versions
  * wgpu: Bump to latest wgpu master
  * build(deps): bump isahc from 1.3.0 to 1.3.1
  * ci: Append GitHub build ID instead to extension version
  * ci: Allow manual dispatch of release_nightly workflow
  * ci: Add Mozilla add-on secrets to CI environment
  * avm1: Remove reduntant new_ret_no_self annotation
  * avm1: Remove redundant newlines
  * avm1: ValueObject::boxed -> coerce_to_object
  * chore: Use matches!(...) in more places
  * core: Remove redundant tuple
  * avm1: Add Value::is_primitive
  * avm1: Reserve arguments capacity
  * fix: looks like contentType is ignored (at least in FP6)
  * chore: fmt
  * chore: fix warnings
  * avm1: implement send_and_load
  * avm1: set contentType on xml; fix initial contentType on load_vars.
  * docs: Update Firefox add-on instructions
  * ci: Upload signed Firefox add-on to GitHub releases
  * extension: Add build date to version in manifest
  * extension: Catch errors while signing the Firefox add-on
  * extension: Copy Firefox add-on after signing instead of moving
  * extension: Add proper 128x128 icon
  * web: Set page title in player.js
  * web: Small improvement in player.js
  * web: Improve background.js
  * web: Prototype direct SWFs
  * web: Put Firefox-specific note in place
  * demo: Add missing class="hidden"
  * build(deps): bump pretty_assertions from 0.7.1 to 0.7.2
  * avm1: _levelN should shadow children instances with the same name
  * avm1: Adjust precedence of children in StageObject::get
  * avm1: Delete2 returns true only if a property was actually deleted
  * tests: Update stage_object_children test
  * tests: Add tests for Player::run_actions at timer callbacks.
  * avm1: Run Player::run_actions after every timer callback.
  * web: Rename index.js to ruffle.js
  * web: Refactor manifest.json
  * web: Update extension README.md
  * web: Rename lv0.js to content.js
  * web: Rename extension/build/ to extension/assets/
  * web: Unify extension/build/icons/ and extension/build/logo/
  * web: Rename extension/js/ to extension/src/
  * web: Rename settings to options
  * chore: Fix more typos
  * chore: Fix typo
  * chore: Fix formatting
  * tests: Add test for IsType
  * avm2: Fix IsType
  * tests: Add test for AsType
  * avm2: Implement AsType
  * chore: Fix formatting
  * tests: Update regression tests
  * tests: Add test for AsTypeLate
  * avm2: Implement AsTypeLate
  * chore: Appease clippy
  * avm2: Don't parse "inf" as Infinity
  * avm1: Don't parse "inf" as Infinity
  * swf: Add missing opcodes
  * avm1: Add missing clearTimeout() (fix #4003)
  * build(deps-dev): bump webpack from 5.30.0 to 5.32.0 in /web
  * build(deps-dev): bump eslint from 7.23.0 to 7.24.0 in /web
  * build(deps-dev): bump @wdio/sync from 7.3.0 to 7.3.1 in /web
  * build(deps-dev): bump typescript from 4.2.3 to 4.2.4 in /web
  * build(deps-dev): bump webpack from 5.30.0 to 5.31.2 in /web
  * build(deps-dev): bump @wdio/spec-reporter from 7.2.1 to 7.3.1 in /web
  * build(deps-dev): bump @wdio/local-runner from 7.3.0 to 7.3.1 in /web
  * build(deps-dev): bump @wdio/static-server-service in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps-dev): bump copy-webpack-plugin from 8.1.0 to 8.1.1 in /web
  * build(deps-dev): bump @wdio/mocha-framework from 7.2.1 to 7.3.1 in /web
  * web: Disable context menu from touch events
  * demo: Improvements
  * web: Appease ESLint
  * extension: Remove util.js
  * web: Refactor extension lv0.js and index.js
  * core: Remove extra Option/Results from XmlNode getters
  * avm1: Allow XMLNode reparenting (closes #3962)
  * chore: Remove unnecessary type annotations
  * web: Remove unused functions from util.js
  * web: Refactor extension settings page
  * web: Refactor extension popup
  * web: Add common.css
  * web: Add common.js
  * web: Add utils.js
  * web: Add packages/extension/.gitignore
  * web: Move exclusive dependencies to extension
  * web: Refactor extension build tools
  * canvas: Update_texture should update in-place, not insert
  * tests: Add test for loading into _root
  * avm1: Update movie parameters when loading into _root/_level0
  * build(deps): bump futures from 0.3.13 to 0.3.14
  * core: Move all of the remaining AVM2 object allocation and/or construction into the `construct_frame` step.
  * core: Remove "constructor ran" flag now that we can handle that with a local bool
  * core: Use the library's AVM type to determine how to name the root.
  * avm2: Ensure that objects are only *ever* constructed at frame construction time.
  * tests: Add tests for  `MovieClip.hitTest()` with shapeflag and masks.
  * avm1: Support masks when mouse-picking.
  * core: Fix panic in remove_invalid_jpeg_data
  * web: use customElements.get over try-catch
  * web: check for window.customElements before entering loop
  * web: try a limited number of times defining a custom element
  * web: crash out of infinite loop if not NotSupportedError
  * desktop: Cleanup Cargo.toml
  * build(deps-dev): bump eslint from 7.22.0 to 7.23.0 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @wdio/cli from 7.2.3 to 7.3.1 in /web
  * build(deps): bump enum-map from 0.6.4 to 1.0.0
  * build(deps-dev): bump webpack-cli from 4.5.0 to 4.6.0 in /web
  * build(deps-dev): bump copy-webpack-plugin from 8.0.0 to 8.1.0 in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps-dev): bump ts-loader from 8.0.18 to 8.1.0 in /web
  * build(deps): bump cpal from 0.13.2 to 0.13.3
  * build(deps-dev): bump @wdio/local-runner from 7.2.1 to 7.3.0 in /web
  * build(deps-dev): bump webpack from 5.27.1 to 5.30.0 in /web
  * build(deps-dev): bump @wdio/sync from 7.2.1 to 7.3.0 in /web
  * build(deps): bump isahc from 1.2.0 to 1.3.0
  * avm2: Add tests for set_width / set_height setting the scale to non-finite values.
  * avm1: Add tests for set_width / set_height setting the scale to non-finite values.
  * core: Ensure the new scale is finite when setting the width / height of display objects.
  * chore: Simplify response.status() formatting
  * chore: Make error message more helpful
  * web/desktop: Check the HTTP status of requests
  * build(deps): bump wgpu from 0.7.0 to 0.7.1
  * core: Run `update_drag` earlier in the update cycle. Fix #1511
  * render: Fix RGB15 bitmaps decoding
  * chore: Fix merge conflict mis-resolution
  * avm2: Impl `LoaderInfo.parameters`
  * core: Add support for an explicit loader URL (though nothing sets it yet) and expose it in `LoaderInfo`.
  * avm2: Impl `SWFVersion` enumeration
  * avm2: Impl `LoaderInfo.bytes`
  * avm2: Allow writing to `ByteArrayStorage`
  * chore: Clippy beta/nightly compliance
  * avm2: Impl `LoaderInfo.width`
  * avm2: Impl `LoaderInfo.url`
  * avm2: Impl `LoaderInfo.swfVersion`
  * avm2: Stub `LoaderInfo.isURLInaccessible`
  * avm2: Impl `LoaderInfo.height`
  * avm2: Impl `LoaderInfo.frameRate`
  * avm2: Stub `LoaderInfo.contentType`
  * tests: Grab `contentType` on frame two
  * avm2: This is a getter, not a method
  * avm2: `bytesLoaded` etc reports the compressed file length, not the uncompressed length
  * avm2: Impl `LoaderInfo.content`
  * avm2: Impl `LoaderInfo.bytesTotal`, and `.bytesLoaded`
  * avm2: Impl `LoaderInfo.applicationDomain`
  * tests: Add tests for properties that are only accessible on frame 2
  * avm2: Impl `LoaderInfo.actionScriptVersion`
  * avm2: Impl `ActionScriptVersion`
  * tests: Add a test for `LoaderInfo`'s properties
  * avm2: Allow access to `loaderInfo` on root movies
  * avm2: Add Loader Info class & object type
  * avm2: Rename current_position -> instruction_start
  * chore: Format on stable
  * avm2: Don't mutably borrow for pos()
  * avm2: Implement Op::LookupSwitch
  * avm1: Migrate `search_prototype` to primitive prototype
  * avm1: Rename proto_value to proto
  * avm1: Delete proto and set_proto
  * avm1: Migrate Player to proto_value
  * avm1: Migrate Object to proto_value
  * avm1: Migrate FunctionObject to proto_value
  * avm1: Migrate StageObject to proto_value
  * avm1: Migrate XmlIdMapObject to proto_value
  * avm1: Migrate XmlAttributesObject to proto_value
  * avm1: Migrate SuperObject to proto_value
  * avm1: Migrate ScriptObject to proto_value
  * amv1: Migrate custom_object.rs to proto_value
  * chore: Format
  * avm2: Update tests
  * avm2: Add test for Op::EscXElem
  * avm2: Implement Op::EscXAttr and Op::EscXElem
  * tests: Expand object_prototypes
  * avm1: Allow primitive prototypes
  * tests: Expand funky_function_calls
  * tests: Cleanup funky_function_calls
  * avm1: Fix "this" argument conversion in Function.prototype.{call,apply}
  * build(deps-dev): bump @wdio/cli from 7.2.1 to 7.2.3 in /web
  * avm2: Update tests
  * avm2: Implement flash.utils.getTimer
  * webgl: Use bytemuck
  * build(deps): bump syn from 1.0.64 to 1.0.65
  * core: Fix build without default features
  * web: Fix fullscreen sizing on Safari
  * web: Hide navigation bar in fullscreen on Android (fix #1698)
  * avm2: Lazily initialize Graphics object
  * avm2: Fix incorrect color in drawing API
  * avm2: flash.display.Graphics is final
  * core: Start with an empty drawing when a `Shape` is converted into a `Drawing`.
  * core: Retain the original `swf::Shape` until dynamic behavior is needed, upon which we switch to using a `Drawing`.
  * core: `Drawing` should accept a SWF movie to pull bitmaps from
  * tests: Add another test for drawing on `MovieClip`
  * tests: Add a test for shape drawing
  * avm2: Impl `drawRect`
  * core: `Graphic` should expose it's `Drawing` for external access
  * core: `Graphic` should always use it's stored `Drawing`'s bounds
  * avm2: Allow constructing new `Shape`s.
  * avm2: `graphics` is a `Sprite` property, not a `MovieClip` property
  * avm2: Allow drawing on `Shape`s.
  * core: Migrate clip drawing commands to exposing the internal `Drawing` to mutation
  * avm2: Implement `Graphics.moveTo`
  * avm2: Implement `Graphics.lineTo`
  * avm2: Implement `CapsStyle`
  * avm2: Implement `LineScaleMode`
  * avm2: Implement `JointStyle`
  * avm2: Implement `Graphics.lineStyle`
  * avm2: Implement `Graphics.endFill`
  * avm2: Implement `Graphics.curveTo`
  * avm2: Implement `Graphics.clear`
  * avm2: Implement `Graphics.beginFill`
  * avm2: Add a class for `graphics`
  * common_tess: Toss out degenerate draws
  * chore: Appease clippy
  * render: Final cleanups
  * wgpu: Inline some variables
  * wgpu: Use common_tess
  * webgl: Implement From<TessGradient> for Gradient
  * common_tess: Extract swf_gradient_to_uniforms
  * webgl: Small cleanup
  * common_tess: Make Vertex layout-agnostic
  * wgpu: Remove unused Mesh::shape_id
  * wgpu: Introduce ShapeTessellator temporarily
  * wgpu: Extract tessellate_shape from register_shape_internal
  * wgpu: Inline IncompleteDrawType::build
  * build(deps): bump isahc from 1.1.0 to 1.2.0
  * build(deps-dev): bump @wdio/mocha-framework from 7.1.2 to 7.2.1 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump webpack from 5.25.1 to 5.27.1 in /web
  * build(deps-dev): bump @wdio/local-runner from 7.1.2 to 7.2.1 in /web
  * build(deps-dev): bump @wdio/cli from 7.1.0 to 7.2.1 in /web
  * build(deps-dev): bump @wdio/sync from 7.0.9 to 7.2.1 in /web
  * build(deps-dev): bump @wdio/spec-reporter from 7.1.1 to 7.2.1 in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps-dev): bump eslint from 7.21.0 to 7.22.0 in /web
  * build(deps-dev): bump @wdio/static-server-service in /web
  * build(deps): bump gif from 0.11.1 to 0.11.2
  * build(deps): bump walkdir from 2.3.1 to 2.3.2
  * build(deps): bump serde from 1.0.124 to 1.0.125
  * web: Fix URL sanitizing (fix #3444)
  * tests: Speed up builds of regression tests
  * avm1: Fix binary operators not returning signed values
  * docs: Update Discord link and sponsors
  * avm1: Avoid panic when setMask called with no arguments (fix #3298)
  * avm1: fix String.substr behaviour for negative lengths (fix #3626)
  * build(deps-dev): bump chromedriver from 88.0.0 to 89.0.0 in /web
  * avm2: Use the actual `FromIterator` trait
  * chore: cargo fmt is fickle
  * avm2: `TextField` and `TextFormat` are sealed (non-dynamic) classes
  * tests: approx the `leading` and `font_size` tests, and increase the epsilon on `autosize` by 1px.
  * avm2: Setting a given text property also sets or resets the `html` mode (since it's not a separate property like in AS2)
  * avm2: Don't round text metrics (`textWidth` and `textHeight`)
  * tests: Port AS2 edittext tests to AS3.
  * avm2: `setTextFormat` is range-checked
  * avm2: Don't except when creating a dynamic TextField.
  * avm2: Impl `TextField.setTextFormat`
  * avm2: Impl `TextField.setSelection`
  * avm2: Impl `TextField.replaceText`
  * avm2: Impl `TextField.replaceSelectedText`
  * avm2: Impl `TextField.getTextFormat`
  * avm2: Impl `TextField.appendText`
  * avm2: Impl `TextField.wordWrap`
  * avm2: Impl `TextField.type`
  * avm2: Impl `TextFieldType`
  * avm2: Impl `TextField.textHeight` and `TextField.textWidth`
  * avm2: Impl `TextField.textColor`
  * avm2: Impl `TextField.text`
  * avm2: Impl `TextField.selectable`
  * avm2: Impl `TextField.multiline`
  * avm2: Impl `TextField.length`
  * avm2: Impl `TextField.htmlText`
  * avm2: Impl `TextField.embedFonts`
  * avm2: Impl `TextField.displayAsPassword`
  * avm2: Impl `TextField.defaultTextFormat`
  * core: Also allow converting `TextFormat` back into an AVM2 object.
  * avm2: Impl `TextFormatAlign`
  * core: Add utilities for converting an AVM2 object into a `TextFormat`
  * avm2: Implement `TextField.borderColor`
  * avm2: Fix type of `TextField.backgroundColor`
  * avm2: Impl `TextField.border`
  * avm2: Impl `TextField.backgroundColor`
  * avm2: Impl `TextFieldAutoSize`
  * avm2: Impl `TextField.autoSize`
  * avm2: Impl `flash.text.TextFormat`
  * avm2: Text fields on AVM2 movies should have AVM2 objects.
  * avm2: Ensure constructed text fields have a DisplayObject side
  * avm2: Stub `flash.text.TextField`
  * avm2: Implement Nop
  * tests: Expand bitmap_data
  * avm1: Fix color_bounds_rect
  * Derive `Collect` for `ActionQueue`
  * build(deps): bump syn from 1.0.63 to 1.0.64
  * build(deps-dev): bump mocha from 8.3.1 to 8.3.2 in /web
  * build(deps-dev): bump ts-loader from 8.0.17 to 8.0.18 in /web
  * avm2: Implement flash.geom.Point (#3681)
  * build(deps-dev): bump @wdio/mocha-framework from 7.0.7 to 7.1.2 in /web
  * build(deps-dev): bump webpack from 5.24.2 to 5.25.1 in /web
  * build(deps-dev): bump typescript from 4.2.2 to 4.2.3 in /web
  * build(deps-dev): bump @wdio/spec-reporter from 7.0.7 to 7.1.1 in /web
  * build(deps-dev): bump @wdio/static-server-service in /web
  * build(deps-dev): bump chai from 4.3.3 to 4.3.4 in /web
  * build(deps-dev): bump @wdio/local-runner from 7.1.0 to 7.1.2 in /web
  * build(deps): bump libflate from 1.0.3 to 1.0.4
  * build(deps): bump cpal from 0.13.1 to 0.13.2
  * web: Pass obfuscatedEventPrefix via query string
  * web: Use publicPath() instead of ruffleRuntimePath
  * avm1: Reduce frequency of timeout checks by 10+ times
  * chore: Appease clippy
  * chore: Twips::new(0) -> Twips::zero()
  * avm2: Fix AVM2 reader not reading variable-length numbers correctly
  * build(deps): bump byteorder from 1.4.2 to 1.4.3
  * web: Fix repeating bitmap textures rendering
  * build(deps): bump syn from 1.0.62 to 1.0.63
  * build(deps): bump pretty_assertions from 0.6.1 to 0.7.1
  * build(deps-dev): bump @wdio/cli from 7.0.9 to 7.1.0 in /web
  * build(deps-dev): bump lerna from 3.22.1 to 4.0.0 in /web
  * build(deps-dev): bump chai from 4.3.0 to 4.3.3 in /web
  * build(deps-dev): bump archiver from 5.2.0 to 5.3.0 in /web
  * build(deps-dev): bump copy-webpack-plugin from 7.0.0 to 8.0.0 in /web
  * chore: Cleanup bounds related code
  * build(deps-dev): bump @wdio/local-runner from 7.0.8 to 7.1.0 in /web
  * build(deps-dev): bump mocha from 8.3.0 to 8.3.1 in /web
  * build(deps-dev): bump stylelint-config-standard in /web
  * avm1: Fix #3446
  * build(deps): bump csv from 1.1.5 to 1.1.6
  * avm1: Fix seeking
  * chore: Rename MutationContext parameters to gc_context
  * chore: Remove unnecessary context parameters
  * chore: Use bitflags set method
  * build(deps): bump syn from 1.0.61 to 1.0.62
  * web: Remove packages/core/.eslintrc.json
  * web: Add packages/core/tools/.eslintrc.json
  * web: Shorten CopyWebpackPlugin to CopyPlugin
  * web: Remove unused html-webpack-plugin dependency
  * web: Improvements
  * build(deps): bump serde from 1.0.123 to 1.0.124
  * avm2: Implement ByteArray
  * core: Clear masker/maskee properties when unloading objects
  * build(deps): bump indexmap from 1.6.1 to 1.6.2
  * build(deps): bump syn from 1.0.60 to 1.0.61
  * build(deps): bump svg from 0.9.0 to 0.9.1
  * web: Get rid of move-file-cli
  * web: Remove clean-webpack-plugin dependency
  * core/avm1: Implement BitmapData.paletteMap()
  * chore: Update sponsors
  * tests: Add test for RegExp's exec
  * tests: Add test for RegExp's test
  * tests: AVM2 RegExp constructor and flags
  * avm2: Implement RegExp
  * chore: Add `regress` crate for implementing RegExp class.
  * avm2: Only track broadcast lists for events that are actually broadcasts.
  * avm2: Grant each event it's own, separate broadcast list.
  * core: Ensure absolutely nothing runs in frame scripts unless the object is AVM2.
  * core: Account for the fact that AVM2 constructs objects far earlier than the frame number advances.
  * avm2: Stub `flash.display.Shape`.
  * core: When a programmatic goto happens, *all* frame scripts run immediately.
  * core: When triggered by ActionScript, clip gotos should trigger AS3 frame lifecycle events.
  * core: Avoid skipping queued script frames in the case where a frame script queues up additional frame scripts via gotos
  * core: Gotos still trigger new frame scripts
  * core: Frame scripts should run immediately and not queue
  * core: Gotos do not issue frame progression events on their own.
  * Debug event dispatches.
  * avm2: Don't except when dispatching events on unconstructed objects.
  * core: Add a separate construct step before running display objects.
  * tests: Display events tests should log construction events
  * Re-dispatch the added event after post-instantiating an object since the automatic dispatch happens too early
  * Fire `exitFrame`, `enterFrame`, and `frameConstructed` events as broadcasts.
  * Store a list of every constructed event dispatcher so we can broadcast events on them.
  * avm2: Issue (or attempt to issue) events for entering, exiting, and constructing, a frame.
  * tests: Add further tests for various timeline interaction scenarios and events
  * avm2: Stub `System.gc`.
  * avm2: Unstaged display objects are treated as unrooted.
  * core: Re-allow reinsertions into the same parent (but still gate off the extra events it would otherwise use)
  * avm2: Dispatch `addedToStage` and `removedFromStage` events
  * core: Add a utility method to check if a display object is rooted to the current stage
  * core: `iter_render_list` returns a non-locking iterator and should be documented as such.
  * tests: Add a (currently failing) test for the execution order of various events in the presence of programmed display tree manipulations.
  * avm2: Dispatch `added` and `removed` events
  * avm2: Event phase should be counted from 1 in `valueOf`.
  * avm2: Constructed events start in phase 2, not 3
  * avm2: Manually-constructed movie clips (and their subclasses) should be accessible from the display object tree.
  * avm2: Add convenience method for natively-dispatched events.
  * build(deps): bump image from 0.23.13 to 0.23.14
  * build(deps-dev): bump @wdio/cli from 7.0.7 to 7.0.9 in /web
  * build(deps-dev): bump @wdio/sync from 7.0.7 to 7.0.9 in /web
  * build(deps-dev): bump eslint from 7.20.0 to 7.21.0 in /web
  * build(deps-dev): bump typescript from 4.1.5 to 4.2.2 in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * avm1: Implement getInstanceAtDepth
  * build(deps-dev): bump @wdio/local-runner from 7.0.7 to 7.0.8 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump mocha from 8.2.1 to 8.3.0 in /web
  * chore: Bump to wgpu 0.70
  * swf: Remove unused encoding from avm1::read::Reader
  * swf: Make a few functions const
  * swf: Change read_tag_with_code to take an already parsed tag
  * swf: Clean up a few imports
  * swf: Deduplicate different read methods
  * swf: Make avm2 Reader operate directly with byte slices
  * chore: Update CODE_OF_CONDUCT.md
  * core: Add missing support for Tab keycode
  * build(deps-dev): bump eslint-config-prettier from 7.2.0 to 8.1.0 in /web
  * build(deps-dev): bump webpack from 5.21.2 to 5.24.2 in /web
  * chore: Appease clippy
  * build(deps): bump quick-xml from 0.20.0 to 0.22.0
  * build(deps-dev): bump source-map-loader from 2.0.0 to 2.0.1 in /web
  * build(deps): bump futures from 0.3.12 to 0.3.13
  * build(deps-dev): bump eslint from 7.19.0 to 7.20.0 in /web
  * build(deps-dev): bump webpack-cli from 4.3.1 to 4.5.0 in /web
  * build(deps-dev): bump html-webpack-plugin from 5.1.0 to 5.2.0 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump eslint-plugin-jsdoc from 31.6.1 to 32.1.0 in /web
  * build(deps-dev): bump typescript from 4.1.3 to 4.1.5 in /web
  * build(deps-dev): bump stylelint from 13.10.0 to 13.11.0 in /web
  * web: Fix CSS variables in shadow-template.ts
  * web: Fix panic message alignment
  * web: Strip query params from URL in GitHub issue titles
  * web: Fix player positioning
  * web: Cleanup .prettierignore
  * web: Add .stylelintignore
  * web: Remove demo/package-lock.json
  * web: Cleanup JSON files
  * web: Remove stale globals definitions
  * web: Update package-lock.json
  * web: Upgrade all wdio packages
  * chore: Cleanup .gitignore
  * chore: Cleanup .gitattributes
  * avm1: Explicitly drop `obj` when it is no longer needed
  * chore: Appease clippy
  * build(deps): bump thiserror from 1.0.23 to 1.0.24
  * build(deps): bump url from 2.2.0 to 2.2.1
  * web: Revert style changes in #3239
  * docs: Add sponsors
  * build(deps): bump bytemuck from 1.5.0 to 1.5.1
  * Replace most manual `Collect` impls with `#[derive(Collect)]`
  * avm1: Implement useHandCursor
  * build(deps): bump embed-resource from 1.6.0 to 1.6.1
  * core: Make EditText.border and EditText.background independent
  * build(deps-dev): bump chromedriver from 87.0.7 to 88.0.0 in /web
  * web: General refactoring
  * chore: Remove `Collect` impls from `Activation` and `UpdateContext`
  * chore: Derive `Pod` and `Zeroable` traits from `bytemuck`
  * add TypeScript documentation for maxExecutionDuration
  * web: Add maxExecutionDuration to Config (close #1773)
  * avm2: Implement Op::Typeof and dummy XML/XMLList
  * core: Adjust documentation
  * core: Future-proof the non-keyframe seek for other stream types.
  * core/video: Loop to frame modulo num_frames. Fixes z0r.de/1843
  * core/video: Make seeking to non-keyframes possible.
  * chore: Clippy wants this too
  * chore: Spelling matters
  * core: Rename the video dependency enums to better describe their meaning.
  * core: Seeks before instantiation are valid and should be cached for later execution
  * avm2: `Video` is a sealed class.
  * core: Fix various documentation errors in video
  * chore: Clippy compliance for stub video backend
  * video: Frames with no data associated are treated as empty Pframes.
  * video: Snap seeks to nearest keyframe
  * avm2: Stub the `Video` class.
  * avm1: Stub impl the `Video` class.
  * video: Warn if duplicate video frames are encountered
  * video: Warn if we are missing a frame to render.
  * video: Enable software video decoding on web and exporter.
  * video: Report what frame gave an error
  * video: Always decode the first frame
  * video: Implement a very basic video decoding loop
  * core: Allow instantiation of videos
  * video: Stub seeking.
  * core: Add software video backend, separate from the null backend, to store software decoders.
  * core: Further adjustment to video backend type
  * core: Also implement `VideoFrame` tag.
  * core: Parse `DefineVideoStream` and use it to put videos into the character library.
  * swf: Make video-related tags publicly parsable
  * core: Add video display object
  * core: Add `VideoBackend` to host video decoders
  * build(deps-dev): bump @wdio/spec-reporter from 6.11.0 to 7.0.4 in /web
  * build(deps): bump embed-resource from 1.5.1 to 1.6.0
  * build(deps-dev): bump ts-loader from 8.0.15 to 8.0.17 in /web
  * build(deps-dev): bump @wdio/sync from 6.11.0 to 7.0.3 in /web
  * build(deps-dev): bump @wdio/mocha-framework from 6.11.0 to 7.0.3 in /web
  * build(deps-dev): bump sign-addon from 3.2.0 to 3.3.0 in /web
  * build(deps-dev): bump stylelint from 13.9.0 to 13.10.0 in /web
  * build(deps-dev): bump html-webpack-plugin from 5.0.0 to 5.1.0 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * avm1: Make disabled MovieClips handle more events
  * build(deps-dev): bump @wdio/cli from 6.12.1 to 7.0.3 in /web
  * tests: Add test for TextField.autoSize/background
  * text: Implement TextField.background, disable it by default
  * text: Improve autoSize logic for non-wrapping text layout
  * core: Enable logging in tests, which makes it easier to spot mistakes
  * web: Update license
  * chore: Avoid deprecated constants
  * chore: Appease clippy
  * swf: Add VideoCodec::ScreenVideoV2 variant
  * build(deps): bump quote from 1.0.8 to 1.0.9
  * avm1: Don't mutably borrow display_properties for reading
  * build(deps): bump env_logger from 0.8.2 to 0.8.3
  * docs: Clarify license
  * web: Minimal polyfill of window.Reflect
  * web: Use case-insensitive check for detecting javascript scheme
  * build(deps-dev): bump ts-loader from 8.0.14 to 8.0.15 in /web
  * build(deps-dev): bump webpack from 5.20.2 to 5.21.2 in /web
  * avm2: Implement `Array.length`'s setter
  * docs: Update the documentation of SwfStr
  * docs: Document the Rectangle type in the swf crate
  * docs: Document the Color type in the swf crate
  * docs: Update the documentation of Twips
  * avm2: Implement String.charCodeAt
  * avm2: Implement String.charAt
  * avm2: Implement String.length
  * avm2: Implement String constructor
  * core: Fix stroke artifacts when using drawing API
  * avm1: Implement MovieClip.setMask - #17 #263
  * build(deps): bump embed-resource from 1.5.0 to 1.5.1
  * web/build: Make successful wasm-opt invocation mandatory on GitHub Actions
  * core: Fix panic from negative array indices in SharedObject (fix #3094)
  * tests: Add test for local SharedObject
  * web: Fix some context menu and warning message issues
  * desktop: Don't unwrap url to file path conversion
  * chore: Change dependabot schedule to weekly for JS
  * core: Don't copy Glyphs around; make Font methods take &self
  * build(deps-dev): bump webpack from 5.20.1 to 5.20.2 in /web
  * build(deps-dev): bump html-webpack-plugin from 4.5.1 to 5.0.0 in /web
  * build(deps-dev): bump chai from 4.2.0 to 4.3.0 in /web
  * build(deps): bump encoding_rs from 0.8.26 to 0.8.28
  * build(deps): bump image from 0.23.12 to 0.23.13
  * Core: Avoid framerate dropping down 5x if frames can't be handled in time.
  * chore: Revert "build(deps): bump quick-xml from 0.20.0 to 0.21.0"
  * ci: Fix web build
  * build(deps): bump quick-xml from 0.20.0 to 0.21.0
  * build(deps-dev): bump webpack from 5.19.0 to 5.20.1 in /web
  * core: Handle PlaceObject tags with malformed clip actions
  * build(deps): bump nellymoser-rs from `6cc9051` to `77000f7`
  * webgl: Use highp precision when available
  * ci: Fix publish AUR package job
  * chore: Minor refactor names.rs
  * audio: Add Nellymoser support
  * avm1: Respect case-(in)sensitivity in text bindings
  * core: CSMTextSettings tag alters text hit testing
  * ci: Publish nightly builds to the AUR
  * web: Fix panning of mono sounds (fix #3017)
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * avm2: Add UiBackend::display_unsupported_message
  * chore: Cleanup actions
  * web: Add an onFSCommand callback into JavaScript
  * chore: Add wasm-bindgen-cli version to docs
  * core: Implement TextField.password property
  * chore: Correct minor typo in issue template
  * build(deps-dev): bump eslint from 7.18.0 to 7.19.0 in /web
  * chore: Appease clippy
  * chore: Add an issue template
  * web: Move `allowScriptAccess` to `BaseLoadOptions`
  * core: Merge InputBackend into UiBackend
  * desktop: Improve ruffle_desktop.rc
  * build(deps): bump lyon from 0.17.4 to 0.17.5
  * build(deps): bump isahc from 1.0.3 to 1.1.0
  * avm1: Correct ToInteger for undefined, null and object inputs
  * core: Remove unneeded pub
  * avm1: Small refactors
  * swf: Refactor read_tag_list
  * core: Small refactor
  * build(deps-dev): bump webpack from 5.18.0 to 5.19.0 in /web
  * build(deps): bump flate2 from 1.0.19 to 1.0.20
  * build(deps): bump svg from 0.8.2 to 0.9.0
  * build(deps): bump jpeg-decoder from 0.1.21 to 0.1.22
  * avm1: Fix off-by-one error in String.lastIndexOf
  * tests: Add test for #2870
  * core: Clip event slices are from parent movie in PlaceObject
  * chore: Add a few comments about unsafe usage
  * core: Remove unsafe NonZeroU32 creation in shape utils
  * swf: Add safe and simpler string parsing
  * desktop: Use slice unpacking instead of unsafe get_unchecked
  * build(deps): bump embed-resource from 1.4.1 to 1.5.0
  * desktop: Fix sound envelopes to use proper positions
  * core: Use dirty flag for updating sound transforms
  * core: Avoid vec allocation in AudioManager::update_sounds
  * audio: Sound transforms apply to stream sounds
  * tests: Add test for Sound
  * audio: Remove AudioBackend::stop_sounds_with_handle/is_sound_playing_with_handle
  * core: Implement sound transforms and Sound.setPan
  * avm1: Implement Sound.onSoundComplete
  * core: Add AudioManager to handle actively playing sounds
  * avm1: Implement BitmapData.perlinNoise()
  * web: Pause player when tab is inactive (close #347)
  * build(deps): bump log from 0.4.13 to 0.4.14
  * core: Support grayscale JPEGs
  * web: Redesign the context menu
  * desktop: Also use flashvars parameters when running local files
  * build(deps-dev): bump webpack from 5.17.0 to 5.18.0 in /web
  * build(deps): bump rand from 0.8.2 to 0.8.3
  * build(deps): bump serde from 1.0.122 to 1.0.123
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * chore: Lock wasm-bindgen and wasm-bindgen-cli to 0.2.69
  * web: Rename contextMenu to contextMenuElement
  * web: Revert config removal
  * web: Rename config.showContextMenu to config.contextMenu
  * web: Rename "right click menu" to "context menu"
  * web: Add option to disable the context menu
  * demo: Fix player not being destroyed when None is selected
  * desktop: Change Windows Subsystem to not launch unnecessary console
  * core: Avoid panic in EditText::on_changed (fix #2809)
  * desktop: Fix windows cross compilation of assets
  * build(deps): bump serde from 1.0.121 to 1.0.122
  * build(deps): bump syn from 1.0.59 to 1.0.60
  * chore: Rename Namespace::public_namespace to Namespace::public
  * chore: Use Namespace::public_namespace() instead of Namespace::package("")
  * build(deps): bump jpeg-decoder from 0.1.20 to 0.1.21
  * build(deps): bump lyon from 0.17.3 to 0.17.4
  * build(deps): bump serde from 1.0.120 to 1.0.121
  * Make avm11::Value Copy
  * Preallocate AVM1 Values when preparing constant pool
  * swf: Convert ButtonActionCondition to bitflags
  * swf: Convert ButtonState to bitflags
  * chore: Remove Flash's recovery file and add it to .gitignore
  * build(deps): bump syn from 1.0.58 to 1.0.59
  * core: Invert pixel fill order for BitmapData.noise
  * core: More special casing for noise
  * avm1: Generate correct values for negative seeds for BitmapData.noise()
  * avm1: Properly implement BitmapData.noise() for positive seeds
  * demo: Lint index.js
  * demo: Add drag-and-drop functionality
  * web: Add stylelint
  * build(deps-dev): bump webpack from 5.16.0 to 5.17.0 in /web
  * chore: Appease clippy
  * chore: Remove some debug spew
  * web: Fix error in demo when selecting None for sample (close #2416)
  * avm2: Print full multiname for "Property does not exist" errors (#2740)
  * chore: Migrate from enumset to bitflags
  * swf: Don't error on focal gradients in DefineShape tags (fix #2730)
  * tests: Add tests for target clip in SWF6
  * tests: Add tests for target clip in SWF5
  * web: Use enum instead of arbitrary values
  * core: Gracefully handle tag length past EOF
  * avm1: Don't unwrap in ColorTransform methods
  * tests: Add test for subclassing a native type
  * avm1: create_bare_object should properly wire up proto
  * avm1: Create proper underlying type when extending native objects (fix #2682)
  * build(deps): bump svg from 0.8.1 to 0.8.2
  * web: Use enum instead of arbitrary values
  * web: Display appropriate errors when Ruffle fails to initialize
  * tests: Add test for SWF5 string encoding
  * swf: SwfStr no longer contains encoding
  * chore: Appease clippy
  * swf: Fix uncompressed length check
  * swf: Use bitstream_io
  * swf: Rename and organize some util methods
  * swf: Add SwfStr type to handle encodings in SWF<6
  * swf: Return slices in swf::Reader
  * swf: Split out bit i/o into SwfBitsReader/Writer types
  * build(deps-dev): bump @wdio/cli from 6.12.0 to 6.12.1 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.12.0 to 6.12.1 in /web
  * web: Allow customizing log level
  * build(deps-dev): bump webpack from 5.15.0 to 5.16.0 in /web
  * build(deps-dev): bump chromedriver from 87.0.5 to 87.0.7 in /web
  * build(deps-dev): bump eslint-config-prettier from 7.1.0 to 7.2.0 in /web
  * build(deps): bump getrandom from 0.2.1 to 0.2.2
  * build(deps-dev): bump sign-addon from 3.1.0 to 3.2.0 in /web
  * build(deps): bump path-slash from 0.1.3 to 0.1.4
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * spelling fixes
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * chore: Appease clippy
  * web: Fallback to instantiate with improper MIME type
  * build(deps-dev): bump eslint from 7.17.0 to 7.18.0 in /web
  * web: Drop wasm-pack, invoke wasm-bindgen and wasm-opt directly from npm (#2482)
  * desktop: Build windows binaries with crt-static
  * tests: Add export_assets
  * core: Allow exports to be overridden
  * build(deps-dev): bump webpack from 5.14.0 to 5.15.0 in /web
  * build(deps): bump futures from 0.3.11 to 0.3.12
  * render: Avoid asserts in masking state
  * web: Remove event listeners when a Ruffle instance is destroyed
  * core/avm1: Implement BitmapData.copyPixels()
  * build(deps): bump futures from 0.3.10 to 0.3.11
  * build(deps): bump lyon from 0.17.1 to 0.17.3
  * build(deps-dev): bump webpack from 5.13.0 to 5.14.0 in /web
  * build(deps): bump bytemuck from 1.4.1 to 1.5.0
  * avm1: Fix onChange firing, remove unwraps, revert as_broadcaster
  * avm1: Implement listeners and onChanged for TextField (close #2297)
  * tests: Add test for case insensitive Object.registerClass in SWF6
  * chore: Rename some getters
  * core: Add test for `Object.registerClass` return values
  * core: Reimplement `Object.registerClass`.
  * web: Add backgroundColor option and support bgcolor attribute
  * core: Change Player::background_color to an Option
  * build(deps): bump futures from 0.3.9 to 0.3.10
  * avm1: In ASSetPropFlags, don't crash on flags > 7
  * build(deps): bump rand from 0.8.1 to 0.8.2
  * build(deps-dev): bump @wdio/local-runner from 6.11.3 to 6.12.0 in /web
  * build(deps-dev): bump @wdio/cli from 6.11.3 to 6.12.0 in /web
  * avm1: Remove Error::ConstructorFailed
  * avm1: Properly implement Object constructor
  * tests: Add test for Object constructor
  * avm1: Use the return value of built-in ctors as `this`
  * build(deps-dev): bump webpack from 5.12.3 to 5.13.0 in /web
  * core: Don't recreate objects when switching button states
  * core: Allow mouse picking of children inside buttons
  * web: Only run JS scripts when `allowScriptAccess` is true
  * web: Changes from review
  * web: Fix clippy
  * web: Fixes and improvements in `navigate_to_url`
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps-dev): bump eslint-plugin-jsdoc from 30.7.13 to 31.0.3 in /web
  * build(deps): bump log from 0.4.12 to 0.4.13
  * build(deps): bump isahc from 1.0.2 to 1.0.3
  * web: Add a config option to disable the message about unsupported content
  * desktop: Increase window maximum size to 32767x32767
  * chore: Bump wgpu-rs version to prevent dx11 resize crash
  * desktop: Fix rendering when window is has unexpected size (close #1631)
  * build(deps-dev): bump webpack from 5.12.2 to 5.12.3 in /web
  * build(deps): bump svg from 0.8.0 to 0.8.1
  * demo: General refactor
  * tests: Test removeMovieClip on non-movieclips
  * fix
  * avm1: Allow RemoveSprite/removeMovieClip on any display object
  * tests: Add test verifying proper getBytesTotal value
  * core: Return uncompressed length for getBytesLoaded/Total
  * build(deps-dev): bump webpack from 5.12.1 to 5.12.2 in /web
  * Don't panic on invalid JPEG sizes in DefineBitsJpeg*
  * build(deps): bump smallvec from 1.6.0 to 1.6.1
  * build(deps): bump byteorder from 1.3.4 to 1.4.2
  * build(deps-dev): bump webpack from 5.11.1 to 5.12.1 in /web
  * build(deps): bump futures from 0.3.8 to 0.3.9
  * desktop: Prevent entering/exiting fullscreen repeatedly
  * desktop: Add fullscreen exit keyboard shortcut
  * desktop: Handle fullscreen keyboard shortcut in its own case
  * build(deps): bump log from 0.4.11 to 0.4.12
  * desktop: Hook up DesktopUiBackend::is_fullscreen
  * desktop: Change fullscreen shortcut to Alt+Enter
  * desktop: Add fullscreen keyboard shortcut
  * web: Prevent "414 URI Too Long" error on Github when reporting bugs
  * core: Adjust culling area based on letterbox setting
  * web: Remove upgrade_to_https param from Ruffle::new
  * core: Move Letterbox to config module
  * demo: Enable letterbox for demo
  * web: Add letterbox config option
  * core: Add letterbox setting
  * render: Remove RenderBackend::draw_letterbox
  * build(deps-dev): bump archiver from 5.1.0 to 5.2.0 in /web
  * chore: Fix formatting
  * core: Add flash.filters.GradientGlowFilter
  * core: Add flash.filters.GradientBevelFilter + refactor existing filters
  * core/avm1: don't run onLoadInit handler if movie loading failed
  * core: Ignore SetBackgroundColor in child movie clips
  * webgl: Request OES_element_index_uint extension on WebGL1
  * web: Add symbols to optimized wasm files
  * web: Fix minor issues in `ruffle-player.ts`
  * build(deps-dev): bump ts-loader from 8.0.13 to 8.0.14 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.11.0 to 6.11.3 in /web
  * build(deps-dev): bump @wdio/cli from 6.11.1 to 6.11.3 in /web
  * avm1: Implement flash.filters.ConvolutionFilter avm1 built-in
  * build(deps-dev): bump @wdio/local-runner from 6.10.13 to 6.11.0 in /web
  * build(deps-dev): bump @wdio/spec-reporter from 6.10.6 to 6.11.0 in /web
  * build(deps-dev): bump @wdio/mocha-framework in /web
  * build(deps-dev): bump @wdio/cli from 6.10.11 to 6.11.1 in /web
  * build(deps-dev): bump @wdio/sync from 6.10.11 to 6.11.0 in /web
  * build(deps-dev): bump eslint-plugin-prettier from 3.3.0 to 3.3.1 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps): bump getrandom from 0.2.0 to 0.2.1
  * render: Use u32 indices
  * chore: Update lyon to 0.17.1
  * chore: Update bitstream-io to 1.0.0
  * build(deps-dev): bump chromedriver from 87.0.4 to 87.0.5 in /web
  * build(deps): [security] bump axios from 0.21.0 to 0.21.1 in /web
  * core/avm1: Handle object aliasing in BitmapData.copyChannel by cloning
  * build(deps): bump rand from 0.8.0 to 0.8.1
  * chore: Appease clippy
  * web: Read the `allowScriptAccess` property from `embed` tags
  * docs: Clarify license options in README.md
  * build(deps-dev): bump html-webpack-plugin from 4.5.0 to 4.5.1 in /web
  * web: Rename `settings.htm` to `settings.html`
  *  web: Rename `popup.js` to `main.js`
  * web: Update extension to camelCase
  * core: Fake passage of time to fool busy-loop frame limiters
  * build(deps-dev): bump typescript from 4.0.5 to 4.1.3 in /web
  * build(deps): bump isahc from 0.9.14 to 1.0.2
  * core: ADPCM decoder produces less artifacts
  * tests: Add tests for #1671
  * avm1: Bail out of swapDepths on dead clips
  * avm1: Implement unescape
  * build(deps): bump minimp3 from 0.5.0 to 0.5.1
  * core: Update DisplacementMapFilter tests
  * core: Implmement flash.filters.DisplacementMapFilter
  * build(deps-dev): bump eslint from 7.16.0 to 7.17.0 in /web
  * i18n: Fixed grammar mistakes in the German translation
  * core/avm1: Implement BitmapData.scroll
  * build(deps): bump syn from 1.0.56 to 1.0.57
  * avm1: Unspecified arguments should be set to undefined (fix #2166)
  * tests: Add test for #2166
  * web: Avoid panic on fetching invalid URLs
  * desktop: Avoid panic on fetching invalid URLs
  * webgl: Use mult color for draw_rect (fix #2189)
  * build(deps): bump smallvec from 1.5.1 to 1.6.0
  * build(deps-dev): bump webpack-cli from 4.3.0 to 4.3.1 in /web
  * render: Pass library to RenderBackend::register_shape (fix #2037)
  * Remove redundant SystemPrototypes from UpdateContext.
  * build(deps-dev): bump ts-loader from 8.0.12 to 8.0.13 in /web
  * avm1: Implement XML.ignoreWhite
  * tests: Add test for XML.ignoreWhite
  * demo: Only accepts .swf and .spl files
  * avm1: Fix method calls with null/empty string name
  * core: Support CallMethod with non-string method_name (fix #2160)
  * web: Prevent crashes when native `Window` is overridden
  * avm1: Implement escape
  * chore: Fix typedoc config for typedoc 0.20
  * core: Fix memory leak caused by unbound text variables
  * avm1: Allow SharedObject creation even if URL is unknown (fix #2150)
  * avm1: Fix incorrect name used for SharedObject cache (fix #2149)
  * avm1: Implement flash.filters.ColorMatrixFilter avm1 built-in
  * docs: Added link to the Using Ruffle wiki page
  * desktop: Don't render while minimized
  * build(deps-dev): bump typedoc from 0.19.2 to 0.20.0 in /web
  * build(deps-dev): bump webpack from 5.11.0 to 5.11.1 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * avm1: Implement Matrix.deltaTransformPoint
  * avm2: Implement isFinite
  * avm2: Implement isNaN
  * text: Fix masking of text area (fix #1496, #1554)
  * webgl: Make separate VAO for color quad vs. bitmap quad (fix #1834)
  * core: onKeyUp/Down method handlers fire only if clip has focus (fix #2120)
  * avm1: Implement Matrix.transformPoint (ruffle-rs#303)
  * web: Flush shared objects in unload intead of beforeunload
  * chore: Bump to wgpu-rs master
  * wgpu: Create bind group for textured quad for each bitmap
  * wgpu: Use a single render pass and push constants
  * desktop: Add --timedemo benchmark
  * core: Fix multiline selection bug
  * core: Move caret to start or end of selection if shift is not held
  * chore: Fix spelling mistake
  * core: Render selected text as white with black background
  * core: Change caret color to text color
  * exporter: Fix panic when using --frames (fix #1614)
  * build(deps): bump thiserror from 1.0.22 to 1.0.23
  * build(deps-dev): bump webpack-cli from 4.2.0 to 4.3.0 in /web
  * ci: Disable macOS web tests for now
  * build(deps): bump syn from 1.0.55 to 1.0.56
  * build(deps-dev): bump source-map-loader from 1.1.3 to 2.0.0 in /web
  * web/desktop: Add basic dialog handling (closes #1978)
  * core: SharedObjects are bucketed by domain
  * avm1: Implement flash.filters.DropShadowFilter
  * avm2: Get rid of `RufflePrivate` and just use regular private namespaces scoped to our own domain.
  * avm2: Remove weird `into` constructor on `EventHandler`
  * avm2: Seal the `EventDispatcher` class
  * avm2: `RufflePrivate` namespaces should be treated as private namespaces.
  * avm2: Implement `dispatchEvent`.
  * avm2: Allow builtins to get at the global scope.
  * avm2: `event.eventPhase` is enumerated from 1
  * avm2: Implement `EventDispatcher.willTrigger`
  * avm2: `EventDispatcher` should supercall, too.
  * avm2: Builtin constructors should supercall.
  * avm2: Implement `addEventListener`, `removeEventListener`, and `hasEventListener`.
  * avm2: Add a representation for event dispatch lists.
  * avm2: Add a new namespace type to store runtime-internal properties we don't want user code being able to access ever.
  * web: Flush shared objects on page unload
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * web: Maintain compatibility with prototype.js
  * build(deps): bump quote from 1.0.7 to 1.0.8
  * avm1: Add flash.filters.GlowFilter
  * web: Prevent crashes with external libraries
  * build(deps): bump syn from 1.0.54 to 1.0.55
  * chore: Bump to rand 0.8
  * build(deps-dev): bump @wdio/cli from 6.10.5 to 6.10.11 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.10.11 to 6.10.13 in /web
  * tests: Add test for #2030
  * core: Fix incorrect bounds for Bitmap (fix #2030)
  * tests: Uncomment arguments.caller avm1 test
  * avm1: Implement arguments.caller
  * tests: Add test for TextField.replaceSel
  * avm1: Implement TextField.replaceSel
  * build(deps-dev): bump eslint-config-prettier from 7.0.0 to 7.1.0 in /web
  * build(deps-dev): bump eslint from 7.15.0 to 7.16.0 in /web
  * tests: Add parseFloat tests
  * avm1: Initial implementation of parseFloat
  * core: Move device font to Library (fix #1995)
  * core: Fix Collect impl for BitmapData (fix #2009)
  * tests: Add tests for #1906
  * avm1: Color.setTransform/setRGB sets transformed-by-AS flag (fix #1906)
  * build(deps-dev): bump @wdio/local-runner from 6.10.10 to 6.10.11 in /web
  * swf: Use lzma-rs for LZMA SWFs (fix #405)
  * core: Add string_utils char boundary functions
  * core: Extend text input to deal with multibyte chars
  * build(deps-dev): bump @wdio/mocha-framework in /web
  * avm2: Implement `rest` parameters in function calls.
  * avm2: Implement `arguments`.
  * avm2: Implement `Function.apply`
  * web: Run eslint
  * web: Rename from snake_case to camelCase
  * web: Fix extension and self-hosted builds conflicting with each other
  * avm1: Revert #1470 to improve wasm performance
  * build(deps-dev): bump @wdio/sync from 6.10.10 to 6.10.11 in /web
  * build(deps-dev): bump webpack from 5.10.3 to 5.11.0 in /web
  * build(deps-dev): bump webpack from 5.10.2 to 5.10.3 in /web
  * build(deps-dev): bump webpack from 5.10.1 to 5.10.2 in /web
  * render: Avoid excessive clones in register_bitmap calls
  * render: Implement Bitmap smoothing property
  * wgpu: Don't recreate texture on update
  * webgl: Don't recreate texture on update
  * webgl: Allow render_bitmap to work with bitmaps without a character ID
  * chore: Fixes after rebase
  * core: All other changes from review
  * core: Fix naming and safety issues
  * core: Remove unwraps
  * chore: Fix clippy lints
  * core: Tidy up loadBitmap
  * core: Support failiable constructors
  * core+renderer: Fix corner cases
  * core: Refactor bitmapData
  * core: Format
  * core: Add handling of invalid arguments for getColorBoundsRect/colorTransform
  * core: Add better handling of invalid arguments to BitmapData
  * core+web+renderer: Add load/attach Bitmap and handling for invalid args with BitmapData
  * core: Implement BitmapData.floodFill and correct getPixel for invalid coordinates
  * core: Implement get/set pixel(32) functions
  * core: Start implementation for flash.display.BitmapData
  * build(deps): bump indexmap from 1.6.0 to 1.6.1
  * avm2: `Event` is a sealed class.
  * avm2: `EventPhase` and `PropagationMode` should be `Eq`
  * avm2: Implement all of the `Event` class constants.
  * avm2: Implement `Event.toString` (which matches it's valueof behavior)
  * avm2: Remove redundant event phase accessor
  * avm2: Implement `Event.stopPropagation` and `Event.stopImmediatePropagation`.
  * avm2: Implement `Event.preventDefault` and `Event.isDefaultPrevented`
  * avm2: Implement `Event.formatToString`.
  * avm2: Implement `Event.clone`
  * avm2: Expose `Event.target`, `currentTarget`, and `eventPhase`.
  * avm2: Implement `Event.bubbles`, `cancelable`, and `type`.
  * avm2: Add `Event` class, object type, and native representation
  * avm1: Use ? on set_text_color so errors are raised
  * avm1: Use ? instead of match Ok()'s so errors are raised
  * chore: Remove TODO
  * avm1: Implement TextField.backgroundColor
  * avm1: Implement TextField.borderColor
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps): bump embed-resource from 1.4.0 to 1.4.1
  * web: Add query string to `Report Bug` link
  * web: Fix cors issues with http (close ruffle-rs#1486)
  * docs: Add sponsor
  * build(deps-dev): bump @wdio/spec-reporter from 6.8.1 to 6.10.6 in /web
  * build(deps-dev): bump eslint-plugin-prettier from 3.2.0 to 3.3.0 in /web
  * tests: Don't get fooled by GET parameters that look like a file extension
  * web: Detect file extension using the `URL()` constructor
  * docs: Add `tests` to list of commit prefixes
  * build(deps-dev): bump chromedriver from 87.0.2 to 87.0.4 in /web
  * core: Implement MovieClip._lockroot in avm1
  * build(deps-dev): bump webpack from 5.10.0 to 5.10.1 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.10.7 to 6.10.10 in /web
  * build(deps-dev): bump @wdio/mocha-framework in /web
  * build(deps-dev): bump @wdio/sync from 6.10.7 to 6.10.10 in /web
  * build(deps-dev): bump @wdio/static-server-service in /web
  * build(deps-dev): bump @wdio/sync from 6.10.4 to 6.10.7 in /web
  * build(deps-dev): bump ts-loader from 8.0.11 to 8.0.12 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.10.5 to 6.10.7 in /web
  * build(deps-dev): bump @wdio/mocha-framework in /web
  * chore: Update some dependencies
  * web: Ensure parent window/frame gets focus on click (fix #1704)
  * web: Avoid double polyfilling object-inside-object
  * build(deps): [security] bump ini from 1.3.5 to 1.3.7 in /web
  * build(deps): bump winit from 0.23.0 to 0.24.0
  * build(deps-dev): bump copy-webpack-plugin from 6.4.0 to 7.0.0 in /web
  * chore: Fix swf doctests working directory
  * tests: Checks that iframe correctly fires its onload event
  * web: Use nullish coalescing operator
  * web: Fix possible issue with iframe elements no longer existing in the DOM
  * web: Fix issues with iframe polyfill
  * avm1: Move TextField properties to prototype
  * avm1: Don't panic if we encounter an invalid display object hierarchy for AS2. Instead, yield a runtime error.
  * avm2: Implement `hitTestObject`
  * avm2: Implement `hitTestPoint`.
  * avm2: Implement `mouseX` and `mouseY`.
  * avm2: Implement `visible`.
  * avm2: Expose `DisplayObject.root`
  * core: Don't crash on rootless display objects.
  * swf: `pushshort` should be read as a `u30` and then cast to an `i16` as it's parsed representation.
  * avm2: Implement `DisplayObject.parent`.
  * tests: Fix name test breaking with our half-working execution order
  * avm2: Expose DisplayObject `name` property
  * core: Avoid double-borrow when moving clips between parents
  * core: Add instantiated by timeline flag as AVM2 appears to track that
  * core: Assign `rootN` format names to top-level AVM2 movie clips.
  * avm2: Expose and test `rotation`.
  * tests: Activate alpha test (since it seems to work fine)
  * avm2: Expose `x` and `y` properties.
  * tests: Add more stringent height/width test that we're only accurate to within 1 twip.
  * avm2: Expose `width` to AS3 code.
  * core: Avoid panic when display objects are manipulated in clearly invalid ways.
  * core: Allow percentages (e.g. scalex/y) to be specified, stored, and cached at either [0..1] or [0..100] scale.
  * avm2: `pushshort` has an undocumented coercion step
  * avm2: `this.height` ignores negative values
  * avm2: Expose `alpha`, `height`, `scaleY`, and `scaleX` to script code.
  * tests: Add inactive tests for `alpha`, `height`, `rotation`, `width`, `x`, and `y`.
  * docs: Add double quotes to RUST_LOG to improve clarity
  * build(deps): bump isahc from 0.9.13 to 0.9.14
  * build(deps): bump png from 0.16.7 to 0.16.8
  * web: Fix spurious keyUp events (fix #1886)
  * Open shadow DOM
  * tests: `polyfills` option is now a boolean, defaulting to true
  * docs: Update `streamSwfUrl` to `load`
  * avm1: Implement TextField.textColor (close #1863)
  * build(deps): bump embed-resource from 1.3.4 to 1.4.0
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump copy-webpack-plugin from 6.3.2 to 6.4.0 in /web
  * Make slider color change if slider is checked
  * build(deps): bump syn from 1.0.53 to 1.0.54
  * chore: Appease rustfmt
  * chore: Appease clippy
  * avm1: Improve loops treatment in Sound.start
  * web: Properly handle multibyte characters in text input
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * build(deps-dev): bump eslint-config-prettier in /web
  * build(deps): bump serde from 1.0.117 to 1.0.118
  * build(deps-dev): bump eslint from 7.14.0 to 7.15.0 in /web
  * core: Remove panic in morph shape lerp
  * build(deps-dev): bump chromedriver from 87.0.1 to 87.0.2 in /web
  * build(deps): bump smallvec from 1.5.0 to 1.5.1
  * build(deps-dev): bump chromedriver from 86.0.0 to 87.0.1 in /web
  * desktop: Add file dialogs to Ruffle if no FILE argv V2 (close #1774)
  * build(deps-dev): bump webpack from 5.9.0 to 5.10.0 in /web
  * build(deps-dev): bump source-map-loader from 1.1.2 to 1.1.3 in /web
  * i18n: Add Hungarian translations
  * Fixed "Swap" only working for i32
  * Added AVM2 op "Swap"
  * build(deps-dev): bump eslint-plugin-prettier from 3.1.4 to 3.2.0 in /web
  * i18n: Add Dutch
  * core: Remove unimplemented! in decode_define_bits_lossless
  * tests: Add test for MovieClip._lockroot in avm1
  * core: Don't panic on DefineFont4
  * i18n: Add Swedish
  * i18n: Add Simplified Chinese translation
  * core: Handle serializing arrays in SharedObjects
  * build(deps-dev): bump @wdio/cli from 6.10.2 to 6.10.5 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.10.2 to 6.10.5 in /web
  * build(deps-dev): bump @wdio/mocha-framework from 6.8.0 to 6.10.4 in /web
  * build(deps-dev): bump @wdio/static-server-service in /web
  * build(deps-dev): bump @wdio/sync from 6.10.0 to 6.10.4 in /web
  * core: Remove unnecssary parameter from Button::set_state
  * avm1: Fix MovieClip properties being attached to Object.prototype
  * avm1: Implement Button.enabled and MovieClip.enabled
  * build(deps): bump syn from 1.0.52 to 1.0.53
  * webgl: Clamp renderbuffer dimensions to sane values
  * avm1: Don't fire button events when invisible (fix #1521)
  * chore: Remove unnecessary debug output
  * avm1: Implement Key.getAscii
  * web: Revamp settings page
  * Create messages.json (#1765)
  * i18n: Add missing word in Spanish
  * build(deps-dev): bump webpack from 5.8.0 to 5.9.0 in /web
  * tests: Don't polyfill an object tag if it already contains a ruffle-embed
  * web: Don't polyfill an object tag if it already contains a ruffle-embed
  * i18n: Create german version of messages.json
  * core: Don't run stream sounds when stopped (fix #1719)
  * tests: Add SWFObject.js polyfill test
  * build(deps-dev): bump @wdio/static-server-service in /web
  * build(deps-dev): bump prettier from 2.2.0 to 2.2.1 in /web
  * build(deps): bump csv from 1.1.4 to 1.1.5
  * build(deps): bump syn from 1.0.51 to 1.0.52
  * build(deps-dev): bump @wdio/local-runner from 6.10.0 to 6.10.2 in /web
  * web: Explicitly define font size of context menu
  * core: Also gate the `set_parent` change on `remove_range` just in case
  * core: Always remove children from their old render list positions regardless of what depth list position they had
  * core: Fix regression on Super Mario 63
  * core: Fix compliation error caused by the `TDisplayObjectContainer` refactor
  * core: Consistently refer to render list positions as an `index` for consistency with Rust naming conventions
  * avm2: Correctly coerce render list indicies as `i32`, not `u32`.
  * core: Move `render_children` into `TDisplayObjectContainer`.
  * core: Remove previous changes to make certain `DisplayObject` methods take `&mut self`, which noises up the PR
  * core: Re-fix #1580 as it's fix didn't make it into the `DisplayObjectContainer` refactor the first time
  * chore: cargo 1.47 changed the formatting algorithm
  * core: New-depth children should always be placed before higher children, not after lower ones.
  * core: AVM2-locked children should still be removable from the depth list.
  * core: Fix incorrect placement of clips where depth placements intended to place objects at the bottom of the list instead placed them at the top.
  * avm2: Swapping children should lock them from depth manipulation.
  * avm2: Remove outdated documentation on some internal functions.
  * avm2: Stub `getObjectsUnderPoint` and `areInaccessibleObjectsUnderPoint` as we do not yet support the `Point` class
  * core: Replace direct container manipulation with `TDisplayObjectContainer` methods wherever possible.
  * core: Store named children on AVM2 movieclips as object properties
  * avm2: Implement `stopAllMovieClips`
  * chore: Clippy beta compliance
  * tests: Add a button child execution order test.
  * avm2: Implement `swapChildren` and `swapChildrenAt`.
  * avm2: Implement `setChildIndex`
  * avm2: Implement `removeChildren`.
  * avm2: Implement `removeChildAt`
  * core: Implement remove-by-range functionality
  * core: Remove direct execution list head manipulation and the `replace_at_depth` flag that indicates that it has occured.
  * core: Separate off container management into a separate `DisplayObjectContainer` trait
  * chore: Add `Default` for `ChildContainer` as per clippy
  * avm2: Implement `getChildIndex`
  * tests: Enable the `removeChild` test that tests timeline manipulation.
  * avm2: Impl `contains` w/ test
  * core: When removing a child from it's parent, make sure it's marked as having no parent.
  * core: Remove double-ended support for `ChildIter` as it's unnecessary and wastes time
  * avm2: Remove unnecessary execution list accesses and debugging statements from `DisplayObjectContainer`.
  * tests: Add a whole number of tests of depth/render list interaction from the AS3 side
  * core: Refactor display list management into a separate `ChildContainer` struct.
  * avm2: Implement `removeChild`.
  * avm2: Implement `addChild` and `addChildAt`, with tests
  * core: Add a utility for placing a display object at a particular relative position (rather than a static depth) on the render list.
  * core: Remove child's sibling pointers when removing the child from the parent's exec list.
  * avm2: Use order in the render list (but NOT depths) rather than the execution list for `get_child_by_id`
  * avm2: Correctly instantiate timeline clips whose AVM2 constructor isn't specified as a `flash.display.MovieClip`.
  * avm2: `getChildAt` works in reverse execution list order, not by depth
  * core: Add flag for display objects which were placed by AS3.
  * avm2: Implement `DisplayObjectContainer.numChildren`
  * avm2: Implement `getChildByName`
  * avm2: `toString` of stage objects should work the same way as other objects
  * avm2: `getChildById` indexes by zero, but it gives me the child at depth one.
  * avm2: Implement `DisplayObjectContainer.getChildAt`.
  * build(deps-dev): bump @wdio/cli from 6.10.0 to 6.10.2 in /web
  * tests: Add polyfill tests for missing movie
  * tests: Add polyfill test for object+embed with only clsid
  * tests: Alter embed-inside-object polyfill tests to expect ruffle-embed
  * web: Avoid double polyfilling embed-inside-object
  * chore: Fix publish of js docs
  * core: Use encoding_rs in load_vars_loader
  * desktop: Potentially fixed panic when windows can't make a path absolute
  * build(deps-dev): bump webpack from 5.7.0 to 5.8.0 in /web
  * chore: Update cargo dependencies
  * avm1: Made firstChild and lastChild ignore non-node children
  * core: Fix panic loading 'invalid-ish' html in text fields - fixes #1193
  * chore: Fix nightly builds
  * build(deps-dev): bump webpack from 5.6.0 to 5.7.0 in /web
  * core: Seed RNG with timestamp
  * web: Refinements to meta user interface (attempt 2)
  * web: Move autoplay/unmuteOverlay from Config to BaseLoadOptions - and made config default the load options
  * web: Merge streamSwfUrl and streamSwfData into load
  * build(deps-dev): bump prettier from 2.1.2 to 2.2.0 in /web
  * build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
  * build(deps-dev): bump @typescript-eslint/parser in /web
  * chore: Appease clippy, squelch unnecessary_wraps lint
  * docs: Update demo README instructions to be correct
  * demo: Allow specifying file in demo via query params
  * web: Fixed extension & local not detecting eachother correctly
  * web: Rename Config.public_paths to Config.publicPaths
  * web: Rename Config.public_path to Config.publicPath
  * web: Default autoplay to 'auto'
  * web: We no longer need git dependency in webpack builds - fixes #1517
  * web: Make sure player config takes priority over global config
  * web: Add options for autoplay
  * web: Add mute overlay
  * web: Add Ruffle::audio_context getter
  * web: Embed build/version info inside the js
  * chore: Remove unused deps from web
  * chore: Publish js docs nightly
  * web: Add 'docs' command to generate jsdocs
  * web: Fix up documentation to reflect the new state of core vs selfhosted (basically npm vs manual)
  * web: Remove no longer needed webpack config in core
  * web: Enforce (sensible) documentation
  * web: Make sure extension labels itself in source API
  * web: Rename install_plugin to installPlugin
  * web: Rename load_ruffle to loadRuffle
  * web: Rename fetch_ruffle to fetchRuffle
  * web: Rename public_path to publicPath
  * web: Enforce camelCase
  * web: Fix documentation and warnings inside plugin-polyfill
  * web: Rename methods/variables inside polyfills to be camelCase
  * web: Rename plugin_polyfill to pluginPolyfill
  * web: Fix documentation and warnings in polyfills
  * web: Properly document and define window.RufflePlayer
  * web: Renamed fields and variables inside PublicAPI to camelCase
  * web: Allow taking in "conflict" APIs
  * web: Rename PublicAPI.local_compatible to PublicAPI.localCompatible
  * web: Rename PublicAPI.newest_source_name to PublicAPI.newestSourceName
  * web: Rename PublicAPI.register_source to PublicAPI.registerSource
  * web: Make PublicAPI use Config
  * web: Move Config to its own file
  * web: Fix documentation and warnings in PublicAPI
  * web: Fixed documentation and warnings inside public-path
  * web: Rename register_element to registerElement
  * web: Changed variables inside RuffleEmbled to be camelCase
  * web: Rename RuffleEmbed.from_native_embed_element to RuffleEmbed.fromNativeEmbedElement
  * web: Rename RuffleEmbed.is_interdictable to RuffleEmbed.isInterdictable
  * web: Fixed documentation and warnings inside RuffleEmbed
  * web: Rename variables in RuffleObject to camelCase
  * web: Rename RuffleObject.from_native_object_element to RuffleObject.fromNativeObjectElement
  * web: Rename RuffleObject.is_interdictable to RuffleObject.isInterdictable
  * web: Ignore ruffle-imports, it's not an API
  * web: Rename copy_to_audio_buffer to copyToAudioBuffer
  * web: Move RuffleObject.params_of to paramsOf (no longer a static member)
  * web: Move RuffleObject.find_case_insensitive to findCaseInsensitive (no longer a static member)
  * web: Fix documentation and warnings in RuffleObject
  * web: Renamed variables inside register-element to be camelCase
  * web: Rename Registration.internal_name to Registration.internalName
  * web: Fixed documentation and warnings inside register_element
  * web: Rename lookup_element to lookupElement
  * web: Rename private_registry to privateRegistry
  * web: Rename RufflePlayer.sanitize_parameters to RufflePlayer.sanitizeParameters
  * web: Rename all variables inside RufflePlayer to be camelCase
  * web: Rename RufflePlayer.allow_script_access to RufflePlayer.allowScriptAccess
  * web: Rename RufflePlayer.is_swf_filename to RufflePlayer.isSwfFilename
  * web: Rename RufflePlayer.debug_player_info to RufflePlayer.debugPlayerInfo
  * web: Rename RufflePlayer.trace_observer to RufflePlayer.traceObserver
  * web: Rename RufflePlayer.on_callback_available to RufflePlayer.onCallbackAvailable
  * web: Rename RufflePlayer.html_dimension_to_css_dimension to RufflePlayer.htmlDimensionToCssDimension
  * web: Rename RufflePlayer.copy_element to RufflePlayer.copyElement
  * web: Rename RufflePlayer.play_swf_data to RufflePlayer.playSwfData
  * web: Rename RufflePlayer.hide_right_click_menu to RufflePlayer.hideRightClickMenu
  * web: Rename RufflePlayer.open_right_click_menu to RufflePlayer.openRightClickMenu
  * web: Rename RufflePlayer.play_button_clicked to RufflePlayer.playButtonClicked
  * web: Rename RufflePlayer.stream_swf_url to RufflePlayer.streamSwfUrl
  * web: Rename RufflePlayer.ensure_fresh_instance to RufflePlayer.ensureFreshInstance
  * web: Rename RufflePlayer.is_unused_fallback_object to RufflePlayer.isUnusedFallbackObject
  * web: Rename RufflePlayer.update_styles to RufflePlayer.updateStyles
  * web: Fixed up documentation and return types inside RufflePlayer
  * web: Rename ShadowTemplate.ruffle_shadow_template to ShadowTemplate.ruffleShadowTemplate
  * web: Fixed up documentation and return types inside SourceAPI
  * web: Rename SourceAPI.create_player to SourceAPI.createPlayer
  * web: Rename SourceAPI.plugin_polyfill to SourceAPI.pluginPolyfill
  * web: Fixed up documentation and return types inside SourceAPI
  * web: Renamed local variables inside VersionRange to be camelCase
  * web: Rename VersionRange.from_requirement_string to VersionRange.fromRequirementString
  * web: Rename VersionRange.satisfied_by to VersionRange.satisfiedBy
  * web: Fixed up documentation and return types inside VersionRange
  * web: Renamed local variables inside Version to be camelCase
  * web: Rename Version.is_stable_or_compatible_prerelease to Version.isStableOrCompatiblePrerelease
  * web: Rename Version.is_equal to Version.isEqual
  * web: Rename Version.has_precedence_over to Version.hasPrecedenceOver
  * web: Rename Version.is_compatible_with to Version.isCompatibleWith
  * web: Rename Version.from_semver to Version.fromSemver
  * web: Rename Version.build_ident to Version.buildIdent
  * web: Rename Version.pr_ident to Version.prIdent
  * web: Fix up documentation in Version, resolved warnings
  * web: Make demo depend directly on ruffle-core
  * web: core no longer uses webpack, but selfhosted still does
  * web: Make tests in core use typescript
  * web: Switched core package from javascript to typescript
  * demo: Fix play button centering (fix #1669)
  * build(deps-dev): bump @wdio/cli from 6.9.1 to 6.10.0 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.9.1 to 6.10.0 in /web
  * build(deps-dev): bump @wdio/sync from 6.9.1 to 6.10.0 in /web
  * core: Avoid panic on truncated SWF (fix #1583)
  * build(deps): bump syn from 1.0.50 to 1.0.51
  * swf: Allow construct clip events in SWFv6
  * avm1: Array.reverse should return itself
  * avm1: Implement TextField.removeTextField
  * chore: Bump quickxml to 0.20
  * avm1: Implement TextField.type
  * docs: Update sponsor links
  * build(deps): bump syn from 1.0.48 to 1.0.50
  * web: Improve context menu position
  * avm1: Use f64 when calculating scale/rotation (fix #1622)
  * core: Fix issue where unloaded buttons can still trigger mouse rollout events (close #1603)
  * build(deps-dev): bump eslint from 7.13.0 to 7.14.0 in /web
  * build(deps-dev): bump @wdio/local-runner from 6.9.0 to 6.9.1 in /web
  * build(deps-dev): bump @wdio/cli from 6.9.0 to 6.9.1 in /web
  * build(deps-dev): bump @wdio/sync from 6.9.0 to 6.9.1 in /web
  * build(deps-dev): bump archiver from 5.0.2 to 5.1.0 in /web
  * render: Avoid assert from lyon with small miter limits
  * avm1: Remove bounds checks from `ActionDefineFunction`, `ActionWith`, `ActionDefineFunction2`, and `ActionTry`.
  * avm1: Allow execution of opcodes before the start of an action or function.
  * web: Fail gracefully if LocalStorage is unavailable (fix #1590)
  * core: Avoid borrow panic when text is removed (fix #1580)
  * web: Fixed mime issue detection
  * ci: Remove unneeded folder from Win release archive (fix #1592)
  * build(deps-dev): bump copy-webpack-plugin from 6.3.1 to 6.3.2 in /web
  * build(deps): bump instant from 0.1.8 to 0.1.9
  * build(deps-dev): bump webpack from 5.5.1 to 5.6.0 in /web

-------------------------------------------------------------------
Thu Nov 19 16:03:26 UTC 2020 - Luigi Baldoni <aloisio@gmx.com>

- Initial package (v0~git20201118.8265efd3)
openSUSE Build Service is sponsored by