Commit Graph

3092 Commits

Author SHA1 Message Date
David Wendt dba9b18540 avm2: Impl `Vector.concat` 2021-09-02 17:57:58 -06:00
David Wendt 96afc5a6c2 avm2: Cache all `Vector` applications on the `Vector` class object.
This matches Flash Player behavior: notably, multiple applications of the same types see the same class and prototype, but different applications actually create new objects that don't share properties.
2021-09-02 17:57:58 -06:00
David Wendt 888fcc85ca avm2: Impl `Vector.length` 2021-09-02 17:57:58 -06:00
David Wendt 9d08a7c299 avm2: Impl `Vector`'s instance initializer 2021-09-02 17:57:58 -06:00
David Wendt 49d79b8e73 avm2: Vector indices are stored in a package namespace 2021-09-02 17:57:58 -06:00
David Wendt 3d3b80f8af avm2: ES3 class instances should be treated as instances of the ES4 class `Object`. 2021-09-02 17:57:58 -06:00
David Wendt 6b377bed64 avm2: Impl `apply` for ES4 classes to allow type parameterization 2021-09-02 17:57:58 -06:00
David Wendt 65a23d5833 avm2: Move applytype next to other operations that create classes 2021-09-02 17:57:58 -06:00
David Wendt 074c093504 avm2: Implement op `ApplyType` 2021-09-02 17:57:58 -06:00
David Wendt 4b021fe92c avm2: `Vector` lives in a separate package from other globals 2021-09-02 17:57:58 -06:00
David Wendt 74cb32dd46 avm2: Allow constructing static `TypeName`s (for naming `Vector` classes) 2021-09-02 17:57:58 -06:00
David Wendt 7e71ecac16 avm2: Add stub impl of `Vector` 2021-09-02 17:57:58 -06:00
David Wendt 6f49e62b96 avm2: First pass on implementing vector storage 2021-09-02 17:57:58 -06:00
David Wendt f4dfc4d778 avm2: First pass at type-aware vector storage 2021-09-02 17:57:58 -06:00
David Wendt 686872812d avm2: Add a `TObject` method for applying arguments to a generic type. 2021-09-02 17:57:58 -06:00
David Wendt fe8373739d avm2: Add the ability to fork a `Class` to one that holds it's type arguments. 2021-09-02 17:57:58 -06:00
David Wendt 86616b748f avm2: Allow parsing generic typenames into a multiname 2021-09-02 17:57:58 -06:00
David Wendt 47e3b2229a swf: Add support for the `TypeName` multiname type. 2021-09-02 17:57:58 -06:00
David Wendt 7277f14198 core: Delay execution of AVM2 constructors on buttons by one frame. 2021-08-31 21:21:54 -06:00
David Wendt 472ba6db1f core: AVM2 buttons only emit frame construction events and frame scripts if they were timeline-constructed. 2021-08-31 21:21:54 -06:00
David Wendt b1ba591bb9 core: Support constructing symbolclassed buttons from AVM2 2021-08-31 21:21:54 -06:00
David Wendt 7c970e144f core: `Avm2Button` should always call it's native initializer 2021-08-31 21:21:54 -06:00
Chris Midgley bc4422f4fe chore: fix docstring 2021-08-31 22:47:13 +03:00
dependabot[bot] 5af5fb579e chore: Bump flate2 from 1.0.20 to 1.0.21
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.0.20 to 1.0.21.
- [Release notes](https://github.com/rust-lang/flate2-rs/releases)
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.0.20...1.0.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-31 09:04:44 +03:00
David Wendt 80c5bbcd83 avm2: Stub `Font.enumerateFonts` and `Font.registerFont` 2021-08-30 17:53:39 -06:00
David Wendt 2d57bed82e avm2: Impl `Font.hasGlyphs` 2021-08-30 17:53:39 -06:00
David Wendt 37af9be533 avm2: Implement `Font` for embedded fonts. 2021-08-30 17:53:39 -06:00
dependabot[bot] 7f2f8a492e chore: Bump png from 0.17.0 to 0.17.1
Bumps [png](https://github.com/image-rs/image-png) from 0.17.0 to 0.17.1.
- [Release notes](https://github.com/image-rs/image-png/releases)
- [Changelog](https://github.com/image-rs/image-png/blob/master/CHANGES.md)
- [Commits](https://github.com/image-rs/image-png/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 23:27:18 +02:00
dependabot[bot] 3136331e85 chore: Bump serde from 1.0.128 to 1.0.130
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.128 to 1.0.130.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.128...v1.0.130)

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

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-30 22:31:27 +02:00
Adrian Wielgosik 945bce4a85 xml: Use forked quick-xml to support loose entity parsing 2021-08-30 19:08:22 +02:00
EmperorBale 358e0641eb avm2: Use rsplit_once instead of split_once 2021-08-29 20:41:20 -06:00
EmperorBale 05b4ee6b61 avm2: Dont panic if as_class returns None 2021-08-29 20:41:20 -06:00
EmperorBale 547aac0e85 chore: Cleanup QName::to_qualified_name 2021-08-29 20:41:20 -06:00
EmperorBale 5dd21cdf8e avm2: Add QName::from_qualified_name and QName::to_qualified_name 2021-08-29 20:41:20 -06:00
EmperorBale 2b748a4870 avm2: Implement getQualifiedClassName, getQualifiedSuperclassName, and getDefinitionByName 2021-08-29 20:41:20 -06:00
Daniel Jacobs 3982f3af98 web: Support menu embed/object attribute (part of #4258) 2021-08-28 14:56:35 +02:00
Adrian Wielgosik b5ee94aff1 avm2: Stub flash.system.Security. 2021-08-26 23:50:42 +02:00
relrelb 0aed180da8 avm1: Rename `SuperObject::child` to `this` 2021-08-26 01:07:37 +03:00
relrelb ec5a9f8ac8 avm1: Avoid `impl Into<Value<'gc>>` parameters
This might create templatized functions leading to unnecessary code bloat.

So instead use just `Value<'gc>` parameters and add `.into()` in callers
where needed.
2021-08-26 01:07:37 +03:00
relrelb 364f93fd92 avm1: Remove `SuperObject::as_executable`
It was identical to the default implementation of `TObject`, and
thus unnecessary.
2021-08-26 01:07:37 +03:00
relrelb 90a544a34a avm1: Inline `SuperObject::super_constr` 2021-08-26 01:07:37 +03:00
relrelb dff74dcb92 avm1: Simplify `SuperObject::from_this_and_base_proto` 2021-08-26 01:07:37 +03:00
relrelb 1bd46c6d59 avm1: Rename `ScriptObject::values` to `properties`
To better reflect their meaning.
2021-08-26 01:07:37 +03:00
relrelb fd7d32bc14 avm1: `DisplayGetter` cannot fail
So instead of always returning `Ok` from all getters, simply return a
`Value`.
2021-08-24 02:15:43 +03:00
lukaszN 8e596c2a35 avm2: Rectangle fix clippy 2021-08-23 15:44:14 -06:00
lukaszN b7b66ab9b8 avm2: impl Rectangle isEmpty, offset, offsetPoint, setEmpty, union 2021-08-23 15:44:14 -06:00
lukaszN f5c491a14f avm2: impl Rectangle intersection, intersects 2021-08-23 15:44:14 -06:00
lukaszN e22cd6bdbd avm2: impl Rectangle inflate, inflatePoint 2021-08-23 15:44:14 -06:00
lukaszN 129cd1af58 avm2: impl Rectangle contains, containsPoint, containsRect, copyFrom 2021-08-23 15:44:14 -06:00
lukaszN 3670676e2d avm2: Impl Rectangle topLeft, size, clone, equals 2021-08-23 15:44:14 -06:00