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)