sleepycatcoding
a78a67ee24
avm2: Implement [[HasProperty]] for XMLList
2023-11-16 16:09:37 -05:00
Nathan Adams
3a55b3a5fc
tests: Clean up main method a bit
2023-11-13 22:28:10 +01:00
Nathan Adams
d6f16b0be5
tests: Make tests use a virtual filesystem, which currently maps to the regular physical FS rooted in a test directory
2023-11-13 22:28:10 +01:00
Tom Schuster
c7a1e1178a
avm2: TLF GroupElement tests
2023-11-13 21:59:29 +01:00
renovate[bot]
32c65e6460
fix(deps): update rust dependencies
2023-11-13 09:10:26 +01:00
Aaron Hill
1501a858f6
avm2: Improve E4XNode::matches_name
...
Avmplus constructs a full `QName`, and uses the normal
Multiname matching logic. This would be a large refactor,
so I've just modified the existing method to properly
handle multiple namespaces.
I've also included a closely related fix - we should only treat
a multiname with the literal local name "@foo" as an attribute
when the namespace is the empty public namespace. We were incorrectly
reparsing multinames that contained multiple namespaces.
2023-11-12 17:38:56 -05:00
Aaron Hill
c360d45729
avm2: Use 'has_own_property' to check for prop in 'resolve_definition'
...
If Actionscript explicitly sets the property to 'undefined', we
should still succeed.
2023-11-12 00:38:35 +01:00
Lord-McSweeney
1bb2422595
avm2: Correctness fixes to AMF serialization ( #13537 )
...
Fixes some cases where `amf::serialize_value` returns `None`
---------
Co-authored-by: Lord-McSweeney <Lord-McSweeney@github.com>
2023-11-10 17:59:26 -08:00
sleepycatcoding
e8ccbf4e2c
avm2: Support enumeration for XML objects
...
Previously, iterating the XML object would iterate the prototype. This broke filtering expressions on XML objects, which should work.
2023-11-10 22:50:19 +01:00
Nathan Adams
eb72cfb498
tests: Removed the need for test framework to depend on libtest_mimic
2023-11-10 22:02:18 +01:00
Nathan Adams
2b450af8d5
tests: Test framework doesn't need walkdir
2023-11-10 22:02:18 +01:00
Nathan Adams
7b7785e56d
tests: Allow multiple renderers to handle a single test
2023-11-10 22:02:18 +01:00
Nathan Adams
8697a313ac
tests: Move rendering interface into its own trait
2023-11-10 22:02:18 +01:00
Nathan Adams
86939e0e82
tests: Move TestUiBackend to backends/ui.rs
2023-11-10 22:02:18 +01:00
Nathan Adams
bce0608e1f
tests: Move all wgpu code out of test framework, make it abstract over any/no renderer, and make wgpu option if imgtests isn't enabled
2023-11-10 22:02:18 +01:00
Nathan Adams
c36f4cfe95
tests: Move PrettyString out of lib
2023-11-10 22:02:18 +01:00
Nathan Adams
8a85a24213
tests: Move TestLogBackend to backends/log.rs
2023-11-10 22:02:18 +01:00
Nathan Adams
6a413e28f7
tests: Move TestAudioBackend to backends/audio.rs
2023-11-10 22:02:18 +01:00
Nathan Adams
d1713010d2
tests: Move TestNavigatorBackend to backends/navigator.rs
2023-11-10 22:02:18 +01:00
Nathan Adams
2a2a717a06
tests: Appease clippy by implementing Default for some backends
2023-11-10 22:02:18 +01:00
Nathan Adams
673d52f013
tests: Move test framework into its own crate
2023-11-10 22:02:18 +01:00
Aaron Hill
c821d0564e
avm2: Use class aliases to serialize Vector type
...
This allows us to round-trip `Vector.<CustomType>` when
`CustomType` has an alias registered.
2023-11-09 22:01:59 -05:00
Aaron Hill
7110be920c
Suport uploading ATFTextureData::CompressedRawAlpha
...
Fortunately, this is very simple - we can just take
the DXT5 data and upload it directly to the wgpu texture.
2023-11-10 02:00:40 +01:00
Aaron Hill
2cb1efca8c
avm2: Improve AVM2 button construction handling
...
An Avm2 button appears to run a 'nested frame' during construction -
the same type of 'nested frame' performed by a goto. This will
run framescripts for all objects in the display hierarchy (including
orphans), resulting in an unusual child->parent framescript execution
order that DeathVsMonstars_decrypted.swf depends on.
2023-11-10 01:33:07 +01:00
Daniel Jacobs
33e9227a50
tests: Bump tolerance of acid_color_0 to accommodate runner discrepancy
2023-11-09 16:31:17 -05:00
Daniel Jacobs
bee3984104
tests: Stop ignoring shumway's acid_color_0 test
2023-11-09 16:31:17 -05:00
Richy McGregor
dad0bbaac8
tests: Add tests for AutoSize text
2023-11-09 21:20:10 +01:00
Nathan Adams
6061186c0f
core: Fix formatting texts when they start with any amount of <br>s
2023-11-09 20:52:16 +01:00
Aaron Hill
bab2a80d64
Fix vtable property amf serialization
2023-11-09 19:43:55 +01:00
Aaron Hill
10d6157755
avm2: Work on AMF3 custom object serialization
2023-11-09 19:43:55 +01:00
Aaron Hill
fa05c66e2a
avm2: Implement namespace versioning
...
This allows us to hide things like `MovieClip.isPlaying` from older
SWFs, which may define an `isPlaying` method without marking it
as an override.
This has the largest impact on public namespaces. There is no longer
just one public namespace - we now have a public namespace per API
version. Most callsites should use `Avm2.find_public_namespace()`,
which determines the public namespace based on the root SWF API version.
This ensures that explicit property access in Ruffle (e.g. calling
"toString") are able to see things defined in the user SWF.
This requires several changes other:
* A new `ApiVersion` enum is introduced, storing all of the api versions
defined in avmplus
* NamespaceData::Namespace now holds an `ApiVersion`. When we read a
namespace from a user-defined ABC file, we use the `ApiVersion` from
the root movie clip. This matches Flash Player's behavior - when a
child SWF is loaded through `Loader`, its API version gets overwritten
with the parent's API version, which affects definition visibility and
'override' requirements in the child SWF. Note that 'behavior changes'
in methods like `gotoAndPlay` are unaffected.
* The `PartialEq` impl for `Namespace` has been removed - each call site must now choose
to compare namespaces either by an exact version match, or by
'compatible' versions (a `<=` check) with `Namespace::matches_ns`
* `PropertyMap` now uses `Namespace::matches_ns` to check for a
compatible version when looking up a definition.
* When compiling our playerglobal, we pass in the `-apiversioning` flag,
which causes asc.jar to convert `[API]` metadata into a special
Unicode 'version mark' suffix in namespace URLs. We parse this
when loading namespaces to determine the API version to use for
playerglobal definitions (unmarked definitions use the lowest possible
version).
Unfortunately, this makes ffdec unable to decompile our
playerglobal.swc
I've going to file an upstream issue
2023-11-09 15:27:33 +01:00
Nathan Adams
fa7e7cc8c1
tests: Add tests for NetConnection with Flash Remoting, and fix implementation to match
2023-11-09 12:39:22 +01:00
Nathan Adams
e6b5ac9a2b
tests: Allow tests to request http://example.org/foo/bar by loading ./example.org/foo/bar
2023-11-09 12:39:22 +01:00
Nathan Adams
b06926f04d
tests: Print fetched byte response
2023-11-09 12:39:22 +01:00
Nathan Adams
6d901a7463
avm2: Implement many NetConnection properties
2023-11-09 12:39:22 +01:00
Nathan Adams
08c707caa6
avm2: Implement NetConnection.close()
2023-11-09 12:39:22 +01:00
Nathan Adams
1ed1dba88e
tests: Document log_fetch option
2023-11-08 16:50:24 +01:00
sleepycatcoding
f334963b47
avm2: Handle single element XMLLists in XML.insertChildBefore/After
2023-11-07 23:23:53 +01:00
sleepycatcoding
cea636da30
avm2: Include CData nodes in XMLList.text output
2023-11-07 23:23:53 +01:00
Tom Schuster
e99eaafcd0
avm2: Fix two bugs in XML/XMLList set_property_local
2023-11-07 18:12:59 +01:00
CUB3D
b0d88645bc
avm1: Implement FileReference
2023-11-03 19:32:24 +01:00
Nathan Adams
dad39631cf
avm2: Don't add ClassDefinition to AMF0 objects
2023-11-03 02:17:40 +01:00
Tom Schuster
8138b68919
avm2: Implement XML.setChildren
2023-11-02 13:40:16 +01:00
Tom Schuster
3572367c8e
avm2: Allow assigning XML objects without a name (eg. text)
2023-11-01 18:44:36 +01:00
renovate[bot]
1377a5b07b
fix(deps): update rust dependencies
2023-11-01 00:45:43 +01:00
Nathan Adams
36eda35197
avm2: Implement Font.registerFont
2023-10-30 15:49:07 +01:00
Nathan Adams
9ecb7d221f
avm2: Implement Font.enumerateFonts
2023-10-30 15:49:07 +01:00
Tom Schuster
72965b3689
amv2: Implement flash.xml.XMLNode removeNode
2023-10-30 14:30:59 +01:00
Tom Schuster
445643fedb
amv2: Implement flash.xml.XMLNode cloneNode
2023-10-30 14:30:59 +01:00
sleepycatcoding
fb3c4cd307
avm2: Fix E4X [[Replace]] implementation bug
...
We were incorrectly returning for XML attributes. Fixes #13780 .
2023-10-30 14:05:23 +01:00
sleepycatcoding
5bebebddbe
avm2: Add SWFv21 and above XML special case
2023-10-29 09:43:14 -07:00
nosamu
6f5eb48ec2
avm2: Fix return value of SharedObject.flush
2023-10-29 16:08:24 +01:00
Aaron Hill
cc49aaee58
avm2: Add UTF-16 BOM handling to ByteArray.toString
...
When a UTF-16 BOM is present, ByteArray.toString automatically
strips it out, and treats the remaining data as a UTF-16 string
with the specified endianness.
2023-10-29 01:13:05 +02:00
Aaron Hill
84f788c2d2
avm2: Use RawTable to implement 'public index' iteration ( #12470 )
...
* avm2: Use RawTable to implement 'public index' iteration
This makes our implementation more closely aligned with avmplus.
In particular, it's now possible to delete keys from an object
while iterating without disturbing the iteration order (as long
as those keys were already produced by the iterator).
This is based on @Bale001's work on RawTable-based iteration
A few tests had their output changed (they depend on the exact
object iteration order, and don't neccessarily match Flash Player
exactly).
* Use Cell to store index fields
* Remove outdated comment
2023-10-28 20:44:01 +00:00
Tom Schuster
33dde1eccf
avm2: Ignore a missing [[TargetProperty]] when assigning an XMLList
2023-10-28 08:18:15 -07:00
sleepycatcoding
ed6fa6b2fe
avm2: Support indices in XMLList.child
2023-10-27 22:53:16 +02:00
michiel2005
ee9237681b
tests/avm1: Added test for key.isToggled
2023-10-26 17:39:14 -04:00
Aaron Hill
b5097445e6
render: Add support for Context3DTextureFormat.COMPRESSED_ALPHA
...
This is our first non-rgba texture format (it uses Bc3RgbaUnorm).
ATF files store these textures in a very convoluted way - fortunately,
the 'dds2atf' tool is open-source, which allowed me to figure out
how to decode the texture back to a DXT5/DXT1 texture.
2023-10-23 11:18:27 -04:00
sleepycatcoding
bb053df30b
avm2: Implement XMLList.parent
2023-10-23 15:46:47 +02:00
sleepycatcoding
2745efe2b1
avm2: Throw error 1010 when null/undefined is given to name_to_multiname
2023-10-23 15:26:37 +02:00
renovate[bot]
cd01bfe7d6
fix(deps): update rust dependencies
2023-10-23 02:55:11 +02:00
Lord-McSweeney
47442ddd32
tests: Add a test for `textInput` event
2023-10-22 08:01:18 -07:00
Lord-McSweeney
5f217a6b9a
avm2: Improve quick_xml to AVM2 XML error conversion
2023-10-21 11:41:57 -07:00
Lord-McSweeney
4de186e18a
tests: Activate passing test
2023-10-21 11:41:57 -07:00
Lord-McSweeney
901d84b2cf
avm2: Fix defining const slots on global object
2023-10-21 11:41:57 -07:00
Lord-McSweeney
18c53694cb
avm2: Implement Error 1070
2023-10-21 11:41:57 -07:00
Lord-McSweeney
b1056311f0
avm2: Implement Error 1112
2023-10-21 11:41:57 -07:00
Aaron Hill
5d4e851a6e
avm2: Throw ArgumentError when calling function with wrong arg count
...
Some SWFs rely on catching the error.
In order to reproduce Flash's error messages, we now store a `QName`
in `FunctionObject`, which is set when we make a bound method.
2023-10-21 00:18:50 -04:00
Nathan Adams
feacbdc118
core: <font> tag in text should reset the style to Regular
2023-10-20 12:41:15 +02:00
Nathan Adams
64385efe48
core: Use correct embedded font fallback order + tests
2023-10-20 12:41:15 +02:00
sleepycatcoding
8021efaabc
avm2: Do not panic in XML call handler
...
This panic occurred when the call handler was passed zero arguments.
2023-10-19 20:52:33 +02:00
sleepycatcoding
5da09c137e
avm2: Implement QName call handler
2023-10-19 11:46:31 +02:00
Aaron Hill
fd4d6921d8
avm2: Don't stop root movie clip, even if it doesn't extend `MovieClip`
...
Normally, Flash Player will ignores frames for a movie clip with
a symbol class that doesn't extend `MovieClip` (e.g. it extends
`Sprite`). However, the root movie appears to have frame run
unconditionally, even if it only extends `Sprite`. This can
be observed by adding a Graphics child in the second frame only -
the child will flicker in and out as the player switches between
frames, but only for the root movie clip.
Seedling relies on this behavior - it has `DoAbc2` tags in the second
frame, and has a main `Preloader` class that extends `Sprite`.
2023-10-18 09:28:50 -04:00
Adrian Wielgosik
b02038bcd2
avm1: Add a test for .childNodes edge cases
2023-10-16 11:25:48 +02:00
renovate[bot]
b427940431
fix(deps): update rust dependencies
2023-10-16 09:51:22 +02:00
Nathan Adams
ec21ad8658
core: Add default_font feature which enables the fallback font
2023-10-15 14:09:21 +02:00
Lord-McSweeney
acecaabd0e
tests: Activate newly passing tests
2023-10-13 20:22:00 +02:00
David Wendt
18f78233ac
tests: Add `output.expected.png` file to `avm2/netstream_seek_flv`
2023-10-10 18:49:09 -06:00
David Wendt
0fc3465443
chore: I deleted one too many lines
2023-10-10 18:49:09 -06:00
David Wendt
81740d09f7
tests: Change seek test output to match test harness timing.
...
We are not interested in testing the timing of buffer loads (since that will vary based on hardware), we just need to know that we got a buffer load event.
Furthermore all our seeks are in-buffer so multiple buffer full events shouldn't happen in Ruffle.
2023-10-10 18:49:09 -06:00
David Wendt
87b9cf2fa0
tests: Remove all time assertions from the seek test as our test harness and loader impl screws up timing
2023-10-10 18:49:09 -06:00
David Wendt
525165caf6
tests: Change AVM2 version of the `netstream_seek_flv` test to wait for video to play before tracking time and seeking.
2023-10-10 18:49:09 -06:00
David Wendt
d3335f4dc4
tests: Add AVM1 version of `netstream_seek_flv`
2023-10-10 18:49:09 -06:00
David Wendt
008427e490
tests: Work around our test harness not loading videos syncronously
2023-10-10 18:49:09 -06:00
David Wendt
5cf005e69e
tests: Add test for seeking NetStream on AVM2
2023-10-10 18:49:09 -06:00
renovate[bot]
18796a67fe
fix(deps): update rust dependencies
2023-10-10 02:15:59 +02:00
sleepycatcoding
21a1e1f670
avm2: Small set_property_local fixup
...
Fixes a borrow panic and logic error.
2023-10-10 00:24:39 +02:00
sleepycatcoding
0b2771c23d
avm2: Implement other XMLList set_property_local path
2023-10-10 00:24:39 +02:00
sleepycatcoding
ca5ba4877c
avm2: Implement one XMLList set_property path
2023-10-10 00:24:39 +02:00
Tom Schuster
c6804be307
avm2: Add smoke test for namespace issue in monopoly
2023-10-07 23:46:40 +02:00
Tom Schuster
ed1a2ee27c
avm2: Add failing namespace test for flash.xml
2023-10-07 23:46:40 +02:00
Aaron Hill
3a658f5dec
avm2: Implement BitmapData.copyPixelsToByteArray
...
This basically just re-uses the implementation of getPixels
2023-10-05 17:35:54 -04:00
sleepycatcoding
80ccc1d8a3
avm2: Implement some obscure SWFv9 XML behavior
...
This affects appendChild, prependChild, insertChildBefore, insertChildAfter.
2023-10-05 16:12:43 +02:00
Aaron Hill
ddefac322a
avm2: Run DoAbc/DoAbc2/SymbolClass as part of their frame
...
We previously ran these tags during preloading - however,
they are actually run as part of frame execution. This is observable
by ActionScript - a SWF can load in a class from a stop()'d MoveClip,
and then advance the clip to a frame with a SymbolClass referencing
the loaded class.
2023-10-04 22:00:22 -04:00
renovate[bot]
428e89af73
fix(deps): update rust dependencies
2023-10-04 19:19:51 -04:00
sleepycatcoding
09716b8386
tests: make jpegxr optional
2023-10-03 16:08:51 -04:00
Tom Schuster
6d51bc3964
avm2: Namespace support for XML.name()
2023-10-01 19:26:07 +02:00
sleepycatcoding
f140e7a14b
core: Place jpegxr texture support behind feature flag ( #13348 )
2023-09-29 18:46:54 -04:00
Aaron Hill
ec7a8ac645
avm2: Add support for Stage3D bytearray/compressed textures ( #13180 )
2023-09-28 03:03:30 +00:00
renovate[bot]
7e4e4d4c5b
fix(deps): update rust dependencies
2023-09-25 11:14:39 +02:00
Lord-McSweeney
1adde21a9b
avm2, tests: Improve String.substr; add a complex test
2023-09-24 12:11:24 +02:00
Aaron Hill
8aec2f1703
Add another test
2023-09-23 14:11:24 +02:00
Aaron Hill
bb4410e387
avm2: Skip nested 'goto' frame for SWF 9
...
This fixes 'who_killed_travolta', and unblocks DeathvsMonstars and
NeoPets Lost City Lanes once some additional button fixes are merged.
This isn't 100% correct (as shown by the disabled test), but it brings
us closer to what Flash Player does.
2023-09-23 14:11:24 +02:00
nosamu
e8bbb21554
avm1: tellTarget on an undefined object targets the base clip in SWF6-
2023-09-23 13:42:03 +02:00
Tom Schuster
dc53758488
avm2: Implement support for indexes in xml.child()
2023-09-22 21:28:20 +02:00
renovate[bot]
37e2c06034
fix(deps): update rust dependencies
2023-09-18 00:00:45 +02:00
Lord-McSweeney
6eddd3532e
avm2: Support Error 1089
2023-09-17 22:03:05 +02:00
sleepycatcoding
ecbf325d41
avm2: Improve XML set_property_local implementation ( #13041 )
...
* avm2: Add error 1087
* avm2: Add deep_copy method to XmlObject
Changes existing AS3 copy method to use this instead
* avm2: Add a few utility methods to E4XNode
* avm2: Change XML.replace impl to use new utility methods
* avm2: allow setting XML/XMLList as a element
* avm2: Fix `xml_namespaced_property` test failure
* chore: fmt
* chore: Appease clippy
* avm2: Add test for XML/XMLList as element
2023-09-14 21:33:32 +00:00
sleepycatcoding
b5fdd9142f
avm2: Coerce value in set slot opcode
...
This was causing a bunch of implicit conversion test failures.
2023-09-13 23:02:44 +02:00
Aaron Hill
981dedafd2
avm2: Fix avmplus.describeTypeJSON bugs and add test
2023-09-08 17:52:12 -04:00
Lord-McSweeney
20db9f8326
avm2: Implement XML.setName ( #12979 )
...
* avm2/tests: Implement XML.setName; add a test
* avm2: Basic support for QNames in XML.setName (no namespace support yet)
* avm2: Reorder order of Attribute/Element/PI checks in XML.setName
* avm2: Throw error #1117 when the name passed to XML.setName is not a valid XML name
2023-09-07 21:47:02 +02:00
sleepycatcoding
9c7eb90d69
avm2: Implement XML.prependChild
2023-09-07 01:13:16 +02:00
sleepycatcoding
936eb777e8
avm2: Implement isXMLName
2023-09-06 23:01:34 +02:00
renovate[bot]
dabc2d56b9
fix(deps): update rust dependencies
2023-09-04 10:25:24 +02:00
Lord-McSweeney
5edba670de
tests: Add a test for using Shared Objects without a root movie
2023-08-31 19:58:53 -04:00
Daniel Jacobs
7bef26d993
tests: Add test for avm2 Sound constructor with URLRequest parameter
2023-08-30 22:41:49 +02:00
Abiel Deneke
0ed447b428
avm1: Set target clip to None if target is an undefined object
...
SetTarget currently sets the target clip to the base clip if the
target passed to tellTarget() is an undefined object. This causes
goto's to run on the base clip in Ruffle, when Adobe Flash Player
does not run the goto's at all.
Fixes #12389 and #12390
2023-08-29 01:23:52 +02:00
sleepycatcoding
80db9caf74
avm2: Implement XML.replace
2023-08-29 00:48:48 +02:00
sleepycatcoding
fbaa02e295
avm2: Implement XML.insertChildAfter and XML.insertChildBefore
2023-08-29 00:48:48 +02:00
TÖRÖK Attila
7dc70354bf
tests: Exclude WARP from running acid_large, and allow acid_image and acid_gradient_* again
2023-08-28 21:24:01 +02:00
renovate[bot]
4e75c3890a
fix(deps): update rust dependencies
2023-08-28 07:39:35 +02:00
Aaron Hill
88acc96467
avm2: Fix XML/XMLDocument ignoreWhite handling for cdata
...
The ignoreWhite settings only affect text nodes, not cdata nodes.
Additionally, there should be no special case for empty text.
2023-08-27 20:28:20 -04:00
sleepycatcoding
33164d3f56
avm2: Preserve attribute flag when filling lazy multiname with QName
...
Fixes #12570
2023-08-27 19:40:00 -04:00
Aaron Hill
879dac347c
avm2: Handle child being removing from `Loader`
...
`Loader` override `removeChild` and `removeChildAt` to try to prevent
user code from removing the loaded content child. However, this can be
bypassed by calling `otherContainer.addChild(loader.content)`, which
actually removes the child from the loader. Stealth Hunter 2 relies
on this behavior.
To make this work, `Loader.content` needs to go through
`contentLoaderInfo`, instead of relying on a child being present.
2023-08-27 19:13:45 -04:00
Nathan Adams
19ad492eaa
avm2: Implement Graphics.cubicCurveTo and CUBIC_CURVE_TO
2023-08-27 20:17:43 +02:00
TÖRÖK Attila
d523be02e4
tests: Exclude WARP from running the acid_gradient_1 visual test ported from Shumway
2023-08-27 12:25:41 +02:00
Lord-McSweeney
72c659fd0e
avm2: Add some static properties to Number
2023-08-26 13:38:33 +02:00
Lord-McSweeney
d366d19de6
avm2: Various (u)int/Number correctness fixes
2023-08-26 13:38:33 +02:00
sleepycatcoding
75566b92e0
avm2: XML/XMLList is converted to a string when set as attribute value
2023-08-25 11:20:51 +02:00
David Wendt
7158039135
audio: Audio streamed from FLVs do not have the SWF MP3 header
2023-08-23 15:36:20 -06:00
nosamu
20b07ff147
avm1: Fix XML=>String coercion mangling non-ascii chars
...
Fixes #12859
2023-08-22 17:23:56 +02:00
nosamu
2f40f0093a
avm1: Unescape + to space
2023-08-22 16:38:24 +02:00
sleepycatcoding
991976e437
avm2: Implement XML pretty printing
2023-08-22 09:57:59 -04:00
renovate[bot]
2f4c7d2fe3
fix(deps): update rust dependencies
2023-08-21 08:59:07 +02:00
Nathan Adams
385c2d7cb0
core: Fix links in TextEdits when scrolled down
2023-08-20 22:31:27 +02:00
Nathan Adams
f0d356589a
core: Implement avm2 event: links in texts
2023-08-20 22:31:27 +02:00
Nathan Adams
814a900b03
avm1: asfunction goes by the parent, not root
2023-08-20 22:31:27 +02:00
Nathan Adams
b8cda975f3
core: Allow clicking EditTexts if we're clicking links
2023-08-20 22:31:27 +02:00
Nathan Adams
658ac2dd9f
core: Implement url handling (+asfunction) in textedits
2023-08-20 22:31:27 +02:00
TÖRÖK Attila
a11725c27c
tests: Exclude WARP from running the acid_gradient_2 visual test (ported from Shumway)
...
This was the culprit for most of our recent Windows CI failures.
2023-08-20 12:49:37 +02:00
Kornelius Rohrschneider
a50f5cd072
avm1: Remove delay to enter the unloaded state for non-root MovieClips
...
avm1_unload_movie has been adapted to only enter the unloaded state with
one frame delay if the MovieClip is a root MovieClip. The unloaded state
is now immediately entered for non-root MovieClips.
This fixes the regressions #12254 and #12265 which got introduced
because of this delay.
However, in Flash Player, even non-root MovieClips enter the unloaded
state one frame after the unloadMovie command has been read. Ruffle is
probably replacing a MovieClip differently to Flash, therefore
introducing these regressions when trying to emulate that delay.
Documentation explaining this all has been added to avm1_unload_movie.
Therefore, the test movieclip_library_state_values has been added. It
tests the default state and the unloaded state of a (non-root) child
MovieClip that's loaded from the library. It is marked as known_failure
because Ruffle currently doesn't implement the delay before entering the
unloaded state for non-root MovieClips.
2023-08-19 17:29:00 +02:00
nosamu
050da0740a
avm1: Pass flashvars in loadMovie and MovieClipLoader
...
Fixes #11497
2023-08-19 16:45:01 +02:00
Lord-McSweeney
89b9bc3827
core/avm2: Support accessing applicationDomain on a LoaderInfo before load starts/finishes; also improve Loader.unload stub.
2023-08-19 00:24:03 +02:00
Nathan Adams
a6aa72351f
avm2: Add a Function() call handler
2023-08-18 22:13:46 +02:00
Nathan Adams
7df861f212
avm2: Disallow 'new Function(args)'
2023-08-18 22:13:46 +02:00
Nathan Adams
f2233855c7
avm2: Throw proper error on 'x is SomethingThatIsntAClass'
2023-08-18 22:13:46 +02:00
Nathan Adams
46381d181a
avm2: Use correct error when trying to construct something invalid
2023-08-18 22:13:46 +02:00
Nathan Adams
8bbf8f4ea1
avm2: Use correct error in toString with invalid radix
2023-08-18 22:13:46 +02:00
Nathan Adams
c9c2e213bb
avm2: Use correct error in toPrecision
2023-08-18 22:13:46 +02:00
sleepycatcoding
2f98da44fb
avm2: String.indexOf returns -1 when passed in undefined
2023-08-18 20:41:41 +02:00
sleepycatcoding
cde49de1fb
avm2: Remove undefined specific behavior in String.split
2023-08-18 20:41:41 +02:00
sleepycatcoding
a44546ab1c
avm2: Do not ignore nulls in String.fromCharCode
2023-08-18 20:41:41 +02:00
sleepycatcoding
7316f51cb1
avm2: String.toString defaults to ""
2023-08-18 20:41:41 +02:00
sleepycatcoding
b835cc8091
avm2: Boolean.valueOf and Boolean.toString default to false
...
Makes tests `e15_6_3_1`, `e15_6_3_1_3`, `e15_6_4`, `e15_6_4__1` and `ecall_1` pass.
2023-08-18 16:07:15 +02:00
nosamu
f3feabb59a
avm2: nextScene() and prevScene() should fall back to current scene
...
Fixes #12797
2023-08-18 00:33:32 +02:00
nosamu
5618ebe6eb
tests: Add failing test for queued gotos in AVM2 framescripts
...
This minimally reproduces #12069 and #10113
2023-08-17 22:46:38 +02:00
Nathan Adams
f00671e9cc
core: Fix rendering masks + scrollRects when cacheAsBitmap
2023-08-16 16:34:24 +02:00
Aaron Hill
b1981debc9
tests: Include test name in error context
2023-08-15 17:04:28 +02:00
Tom Schuster
d93c449199
avm2: Throw TypeError on unbound namespace prefix
2023-08-14 19:58:21 +02:00
Tom Schuster
7639d045ad
avm2: Limited XML namespace support
2023-08-14 19:58:21 +02:00
Nathan Adams
5e1a30cf4a
core: Fix avm2 button bounding box when using scroll rects
2023-08-13 14:14:34 +02:00
Nathan Adams
db7c6dec00
core: Implement XML.toString for comments and processing instructions
2023-08-12 20:15:21 +02:00
Nathan Adams
bf7c17737b
avm2: Trim the start of processing instruction values
2023-08-12 20:15:21 +02:00
Nathan Adams
90b3fa4c63
avm2: Implement to_xml_string_inner for procesing instructions
2023-08-12 20:15:21 +02:00
Nathan Adams
f4216aefc1
avm2: Implement XMLList.comments()
2023-08-12 20:15:21 +02:00
Nathan Adams
d9847d0167
tests: Rename some files because windows is dumb and they're too long I guess
2023-08-12 17:37:17 +02:00
TÖRÖK Attila
0591fd882a
tests: Update displacement_map expected output.
2023-08-12 14:15:40 +02:00
Nathan Adams
adda66723e
core: Use filters to calculate render sizes of objects
2023-08-12 13:00:27 +02:00
Nathan Adams
d35b2b8b84
core: Inform Bitmaps to invalidate, if their backing BitmapDatas change
2023-08-12 11:56:18 +02:00
Nathan Adams
e73cd91283
tests: Fix running tests without img_tests feature
2023-08-11 20:15:24 +02:00
Nathan Adams
1858db65c4
tests: Add known_failure test for CABs containing grown filters
2023-08-11 11:23:03 +02:00
Nathan Adams
f55147d7c3
core: Override render_bounds_with_transform in Avm2Button
2023-08-11 11:23:03 +02:00
Nathan Adams
a9c5bdfbab
core: Better handle scroll_rect and/or masks with cacheAsBitmap
2023-08-11 11:23:03 +02:00
Nathan Adams
b1aeb010a4
tests: Add CAB + Masks test
2023-08-11 11:23:03 +02:00
TÖRÖK Attila
fb01473bb3
tests: Exclude WARP from shumway_acid_tests/acid_image, it was flaky
2023-08-09 21:04:59 +02:00
TÖRÖK Attila
0c4bb22491
chore: Update dependencies of the crates within tests.
2023-08-08 23:19:16 +02:00
MrCheeze
68f8cd6149
avm2: Remove focus from an EditText when it unloads ( close #12092 )
2023-08-07 23:16:06 +02:00
Nathan Adams
bdd2a7ea9e
tests: Allow capturing images on specific frames/ticks
2023-08-07 22:52:10 +02:00
Nathan Adams
ca8fc23a6c
tests: Allow fscommand("captureImage", "IMAGE_NAME")
2023-08-07 22:52:10 +02:00
Nathan Adams
1c8724a458
tests: Turn image_comparison into image_comparisons.NAME, allowing multiple comparisons per test
2023-08-07 22:52:10 +02:00
Nathan Adams
42b4812601
avm2: Throw error when using descendants op (..) on anything that isn't XML, even if it has descendants property
2023-08-06 10:51:25 +02:00
michiel2005
690ce110d8
avm1: reference displayObjects parents if parent is a button ( #12541 )
2023-08-05 20:32:03 +00:00
sleepycatcoding
aac1931569
avm1: Prevent panic when close is called in event handler
...
Also adds a test case for this.
2023-08-05 14:42:09 +02:00
sleepycatcoding
d8ae2ce6b9
avm1: Fix only one message arriving when multiple are sent in the same packet
...
Test case has been improved to cover this.
2023-08-05 14:42:09 +02:00
sleepycatcoding
cec74242cf
core: Socket subsystem fixes
...
Clears the read and write buffer of Socket before returning to ActionScript, this could potentially be problematic
when a SWF reuses the same Socket to connect.
Also remove the handle from Arena when server closes the connection, this fixes
connected still returning true after server disconnection.
2023-08-05 14:42:09 +02:00
sleepycatcoding
0a1f645177
tests: Add onData test for XMLSocket
2023-08-05 14:42:09 +02:00
sleepycatcoding
43e1e72258
tests: Add AVM1 XMLSocket test
2023-08-05 14:42:09 +02:00
sleepycatcoding
1c0426a747
tests: Expand test case as per review
2023-08-05 14:17:02 +02:00
sleepycatcoding
e8bc47a569
avm2: Return correct error if Event.clone() returns null
2023-08-05 14:17:02 +02:00
sleepycatcoding
925ed2e82b
avm2: Clone event if it has been dispatched before
2023-08-05 14:17:02 +02:00
Nathan Adams
fc54c111c3
tests: Port avmplus as3 AMF test
2023-08-04 16:29:27 +02:00
Nathan Adams
5f200dc2a9
avm2: Use correct error in write ops when reading past bounds
2023-08-03 16:28:25 +02:00
Nathan Adams
af46301020
avm2: Use correct error in Li ops when reading past bounds
2023-08-03 16:28:25 +02:00
Nathan Adams
3d76953574
avm2: Use correct error when accessing domain memory out of bounds
2023-08-03 16:28:25 +02:00
Nathan Adams
c3a283e23d
tests: Port avmplus MOPS tests
2023-08-03 16:28:25 +02:00
sleepycatcoding
85db727f17
avm2: Implement XMLSocket
2023-08-02 22:16:16 +02:00
Nathan Adams
3834462abf
avm2: Hook up XMLDocument.ignoreWhite
2023-08-02 15:55:08 +02:00
Nathan Adams
6f2420d983
avm2: Implement ignoreComments/ignoreProcessingInstructions/ignoreWhitespace
2023-08-02 15:55:08 +02:00
Nathan Adams
da7ee01730
avm2: Implement XML.settings/XML.setSettings/XML.defaultSettings, and add appropriate properties to XML class
2023-08-02 15:55:08 +02:00
Nathan Adams
10e59067d0
avm2: Rewrote XMLDocument/XMLNode to be more correct
2023-08-02 15:55:08 +02:00
Lord-McSweeney
84e4215ece
avm2+tests: Various Vector-related fixes; activate now-passing Vector tests
2023-08-02 15:26:53 +02:00
relrelb
006393c581
chore: Appease nightly clippy
2023-08-01 22:44:00 +03:00
TÖRÖK Attila
f036fd7aff
tests/visual: Also test DisplacementMapFilter with componentX or componentY of 0
2023-08-01 12:54:56 +02:00
Adrian Wielgosik
2621dd78ee
avm2: Vector doesn't support propertyIsEnumerable
2023-08-01 00:13:46 +02:00
Adrian Wielgosik
b61e92ee12
avm2: Fix property_is_enumerable on arrays
2023-08-01 00:13:46 +02:00
sleepycatcoding
a40e8d8ac4
tests: Split read/writeObject off into a separate test
2023-07-31 22:32:03 +02:00
sleepycatcoding
cd9ed1a1da
tests: remove unneeded loops
2023-07-31 22:32:03 +02:00
sleepycatcoding
1b765e2a45
tests: Use new socket API
2023-07-31 22:32:03 +02:00
sleepycatcoding
749ba80c8a
tests: Lower socket test task timeout to 1 microsecond
...
This was hiding the fact that the test technically did not run and failed, as it only happened very rarely in some scenarios.
2023-07-31 22:32:03 +02:00
Nathan Adams
91bfbe6ab1
tests: Port avmplus as3 MethodClosures test
2023-07-31 19:52:12 +02:00
Nathan Adams
4de8301f75
tests: Port avmplus as3 RuntimeErrors test
2023-07-31 19:52:12 +02:00
Nathan Adams
27fc81f0f3
tests: Port avmplus as3 Dictionary test
2023-07-31 19:52:12 +02:00
Nathan Adams
9ba9ec17a7
tests: Port avmplus as3 e12_6_3_12 Statement test
2023-07-31 19:52:12 +02:00
Nathan Adams
cc302a56de
tests: Port avmplus as3 for-each-in tests
2023-07-31 19:52:12 +02:00
Nathan Adams
d6f83ce9c3
tests: Port avmplus es3 switch tests
2023-07-31 19:52:12 +02:00
Nathan Adams
98f9316fa7
tests: Port avmplus es3 Int tests
2023-07-31 19:52:12 +02:00
Nathan Adams
b42ae15759
tests: Port avmplus es3 Number tests
2023-07-31 19:52:12 +02:00
Nathan Adams
dab0779493
tests: Port avmplus es3 uint tests
2023-07-31 19:52:12 +02:00
Nathan Adams
01bacb51ba
tests: Port avmplus es3 Type Conversions tests
2023-07-31 19:52:12 +02:00
Nathan Adams
cdc8e65f0c
tests: Port avmplus es3 const tests
2023-07-31 19:52:12 +02:00
Nathan Adams
c903c0081c
tests: Port avmplus es3 ClassDef tests
2023-07-31 19:52:12 +02:00
Abiel Deneke
6552b4e132
avm2: Implement `Matrix3D.prependScale`
2023-07-31 17:00:44 +02:00
TÖRÖK Attila
288ed7e341
tests: Add an avm1 visual test for BitmapData::perlinNoise()
2023-07-31 16:41:01 +02:00
Adrian Wielgosik
399ac2490c
avm2: Remove accidentally duplicated tests
2023-07-30 18:05:24 +02:00
Nathan Adams
647b49ad52
tests: Move from_avmplus up one level
2023-07-30 13:59:33 +02:00
Nathan Adams
c8a86966b0
tests: Port avmplus e4x XMLList tests
2023-07-30 13:59:33 +02:00
Nathan Adams
2e1f848144
tests: Port avmplus e4x XML tests
2023-07-30 13:59:33 +02:00
Nathan Adams
0ac0ea21c5
tests: Port avmplus e4x Types tests
2023-07-30 13:59:33 +02:00
Nathan Adams
f97559066b
tests: Port avmplus e4x TypeConversion tests
2023-07-30 13:59:33 +02:00
Nathan Adams
068a4b38ac
tests: Port avmplus e4x Regress tests
2023-07-30 13:59:33 +02:00
Nathan Adams
8a0e57ca95
tests: Port avmplus e4x Namespace tests
2023-07-30 13:59:33 +02:00
Nathan Adams
6030ed563b
tests: Port avmplus ecma3 Number tests
2023-07-30 13:59:33 +02:00
Nathan Adams
495f19f10d
tests: Port avmplus ecma3 ObjectObjects tests
2023-07-30 13:59:33 +02:00
Nathan Adams
e25c18beed
tests: Port avmplus ecma3 Statements tests
2023-07-30 13:59:33 +02:00
Nathan Adams
04dbff285a
tests: Port avmplus ecma3 String tests
2023-07-30 13:59:33 +02:00
Nathan Adams
b7f6373af3
tests: Port avmplus ecma3 TypeConversion tests
2023-07-30 13:59:33 +02:00
Nathan Adams
e08e9cc14b
tests: Port avmplus ecma3 instanceof tests
2023-07-30 13:59:33 +02:00
Nathan Adams
9c12d3134a
tests: Port avmplus ecma3 ErrorObject tests
2023-07-30 13:59:33 +02:00
Nathan Adams
e707e98487
tests: Port avmplus ecma3 Boolean tests
2023-07-30 13:59:33 +02:00
Tom Schuster
f237aa1da2
avm2: Implement XMLNode.nodeValue
2023-07-30 11:14:00 +02:00
TÖRÖK Attila
acddd6c26d
tests: Add glow_pass_scaling visual test
2023-07-29 22:23:49 +02:00
TÖRÖK Attila
24afc21f87
tests: Remove redundant "test" suffix from the name of blur_pass_scaling_test
2023-07-29 22:23:49 +02:00
Aaron Hill
4406a70fc9
avm2: Enable Vector.<ObjectSubclass> serialization tests
...
This also fixes a minor bug (we should always deserialize
to a `Vector.<Object>`, not a `Vector.<*>`)
2023-07-29 15:30:24 -04:00
Nathan Adams
f9be8be99e
avm2: Make 'new Math()' and 'Math(value)' throw errors
2023-07-29 15:24:30 +02:00
Adrian Wielgosik
456e9d2c05
avm2: Extend vector_concat test
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
22d7ffdefc
avm2: fix Vector null display
2023-07-28 23:42:04 +02:00
Adrian Wielgosik
e1d73f031a
avm2: Activate the Vector/specialized_at_runtime test
2023-07-28 23:42:04 +02:00
Nathan Adams
8be0a36b1a
tests: Port avmplus ecma3 Array tests
2023-07-28 22:22:47 +02:00
Nathan Adams
90b4653eaf
tests: Port avmplus ecma3 Exception tests
2023-07-28 22:22:47 +02:00
Nathan Adams
a52bed18bd
tests: Port avmplus ecma3 FunctionObjects tests
2023-07-28 22:22:47 +02:00
Nathan Adams
684c0ea5e6
tests: Port avmplus ecma3 GlobalObject tests
2023-07-28 22:22:47 +02:00
Nathan Adams
d3606e3c9d
tests: Port avmplus ecma3 Types tests
2023-07-28 22:22:47 +02:00
Nathan Adams
a8410aa34e
tests: Port avmplus ecma3 ExecutionContexts tests
2023-07-28 22:22:47 +02:00
Nathan Adams
1a354d5809
tests: Port avmplus ecma3 Expression tests
2023-07-28 22:22:47 +02:00
Nathan Adams
8ff5ff8176
tests: Port avmplus ecma3 Function tests
2023-07-28 22:22:47 +02:00
Nathan Adams
e1749cd0ad
tests: Port avmplus ecma3 Unicode tests
2023-07-28 22:22:47 +02:00
Lord-McSweeney
cf5c02ca1b
avm2+tests: Fully implement XML.appendChild, add a test
2023-07-28 15:21:38 +02:00
Lord-McSweeney
cf8dde966f
tests: Allow avmplus e4x/Global/e13_1_2_1 to run, since it no longer loops indefinitely
2023-07-28 13:11:15 +02:00
sleepycatcoding
46d6d6724d
tests: Allow some avmplus tests as they now succeed
2023-07-27 23:39:06 +02:00
sleepycatcoding
04aa060c61
tests: Check XML/XMLList.parent() in xml_list_concat
2023-07-27 23:39:06 +02:00
sleepycatcoding
02d815e86b
avm2: Implement XML addition operations
2023-07-27 23:39:06 +02:00
Nathan Adams
70fb674d8b
avm2: Implement correct errors for write_bytes with offset+length > u32::MAX
2023-07-27 19:47:16 +02:00
Nathan Adams
1bbefbe472
avm2: Throw correct error when writing a too-large string to ByteArray
2023-07-27 19:47:16 +02:00
Nathan Adams
0d1d110660
tests: Port avmplus ByteArray tests
2023-07-27 19:47:16 +02:00
Nathan Adams
7dc0224451
tests: Add lzma feature and add a required_features.lzma flag
2023-07-27 19:47:16 +02:00
Nathan Adams
08b7a8c498
tests: Port avmplus e4x QName tests
2023-07-27 19:30:41 +02:00
Nathan Adams
e88a03c2d5
tests: Port avmplus e4x Statements tests
2023-07-27 19:30:41 +02:00
Nathan Adams
cbf029c019
tests: Port avmplus e4x Global tests
2023-07-27 19:30:41 +02:00
Nathan Adams
28dfcab8ff
tests: Port avmplus e4x Expression tests
2023-07-27 19:30:41 +02:00
Nathan Adams
4f315ef6a9
tests: Include PrettyString workaround again
2023-07-27 19:30:41 +02:00
Nathan Adams
cb23067382
avm2: Implement UninitializedError
2023-07-27 09:49:47 +02:00
Nathan Adams
5fc37c7e13
avm2: Implement call handler for Error
2023-07-27 09:49:47 +02:00
Nathan Adams
55d77970e0
tests: Port avmplus Exception tests over
2023-07-27 09:49:47 +02:00
Aaron Hill
583caa3389
avm2: Implement DisplayObject.blendShader ( #12238 )
2023-07-26 23:25:26 +00:00
Nathan Adams
6a7063a83b
tests: Mark vectorIndexRangeExceptions as ignore again, and explain why
2023-07-27 00:52:40 +02:00
Nathan Adams
1ffb87c227
tests: If an image test isn't being checked and we expect it to fail, make it fail
2023-07-27 00:52:40 +02:00
Nathan Adams
049cb0e84d
tests: Increase tolerance of bitmapdata_applyfilter_blur to make it pass on my machine
2023-07-27 00:52:40 +02:00
Nathan Adams
bdf960f972
tests: Unflagged previously ignored tests that now pass successfully
2023-07-27 00:52:40 +02:00
Nathan Adams
a10dfca653
tests: Change a lot of tests from ignore to known_failure
2023-07-27 00:52:40 +02:00
Nathan Adams
6063579fbd
tests: Add known_failure to test.toml
2023-07-27 00:52:40 +02:00
Aaron Hill
99ed2c6d4a
avm2: Fix handling of default domain memory ( #12308 )
2023-07-26 18:26:26 +00:00
Nathan Adams
0a21a6015c
tests: Document fscommand('quit')
2023-07-26 17:00:15 +02:00
Nathan Adams
6b788faa9d
tests: Implement fscommand('quit') on test runner
2023-07-26 17:00:15 +02:00
Nathan Adams
1a0a82d898
core: Move fscommand execution outside of ExternalInterfaceProvider, so it can be implemented without causing ExternalInterface.available to become true
2023-07-26 17:00:15 +02:00
Nathan Adams
4252d035af
tests: Add issue to avm_plus ignored tests
2023-07-26 16:12:57 +02:00
Nathan Adams
3e7a7854ae
tests: Ignore failing avmplus tests
2023-07-26 16:12:57 +02:00
Nathan Adams
6b2813c022
tests: Port some avmplus tests over
2023-07-26 16:12:57 +02:00
sleepycatcoding
dc5cf083d2
tests: Add test for close event
2023-07-26 14:01:03 +02:00
sleepycatcoding
28f8937124
tests: Add read socket test (Little Endian)
2023-07-26 14:01:03 +02:00
sleepycatcoding
c3582464be
tests: Add socket read test (Big Endian)
2023-07-26 14:01:03 +02:00
sleepycatcoding
525c708fe8
tests: Fix some number ranges
...
Also reduce float precision.
2023-07-26 14:01:03 +02:00
sleepycatcoding
f23fe16557
tests: Write a signed short too
2023-07-26 14:01:03 +02:00
sleepycatcoding
b169671238
tests: Add test for socket write (Little Endian)
2023-07-26 14:01:03 +02:00
sleepycatcoding
4927d0c6b9
tests: Add test for socket write (Big Endian)
2023-07-26 14:01:03 +02:00
sleepycatcoding
d52f2a4409
tests: Add socket_connect test
2023-07-26 14:01:03 +02:00
sleepycatcoding
809e511656
chore: Remove accidental doc change
...
For some reason my IDE keeps adding random stuff :(
2023-07-26 14:01:03 +02:00
sleepycatcoding
9604b07518
tests: Allow passing path to mocket utility
...
Also use anyhow to remove some unwraps.
2023-07-26 14:01:03 +02:00
sleepycatcoding
a0e40287c9
tests: Rename socket-mock utility to mocket
2023-07-26 14:01:03 +02:00
sleepycatcoding
87ab1a22e9
chore: Fix clippy warning
2023-07-26 14:01:03 +02:00
sleepycatcoding
06e9656841
chore: fmt
2023-07-26 14:01:03 +02:00
sleepycatcoding
d5da477df8
tests: Improve socket testing backend
2023-07-26 14:01:03 +02:00
sleepycatcoding
5d29c909c6
tests: Use socket.json when running tests
2023-07-26 14:01:03 +02:00
sleepycatcoding
3e8ee00a67
tests: Move SocketEvent into ruffle_socket_format crate
2023-07-26 14:01:03 +02:00
sleepycatcoding
88626b7212
tests: Add experimental socket_mock tool
...
This is used to help to create/test socket.json files against real Flash Player to verify behavior.
2023-07-26 14:01:03 +02:00
TÖRÖK Attila
d1a94c5d24
tests: Don't exclude WARP from visual tests of blur
2023-07-26 13:03:11 +02:00
TÖRÖK Attila
2e721fdcbe
tests: Update the expected output of some visual blur tests
2023-07-26 13:03:11 +02:00
TÖRÖK Attila
9fa3a11b22
tests: Add a visual test for equivalence of blur quality/repetition and filters/applyFilter
2023-07-26 13:03:11 +02:00
TÖRÖK Attila
5f840bf103
tests: Add a visual test for blur filter quality
2023-07-26 13:03:11 +02:00
Aaron Hill
a91b0cf5cb
avm2: Don't error in DisplayObject.removeChildren when `to` is max
...
Our previous special-case wasn't broad enough
2023-07-25 21:44:23 -04:00
Aaron Hill
3c64e8e249
avm2: Implement AMF Vector serialization/deserialization
...
Some of the tests are currently disabled because (separate from this PR)
we can't actually run `toString()` on a Vector.<Object>, due to our
broken vector handling.
2023-07-25 09:35:50 -04:00
CUB3D
7346f9f6cb
avm1: Differentiate between clips with no name set and empty string names
2023-07-25 08:25:37 +02:00
TÖRÖK Attila
1c0fff9e12
tests: Update the expected output of the avm2/bitmapdata_sync visual test
2023-07-25 00:38:08 -04:00
sleepycatcoding
f2c9237ea1
avm2: Allow setting prototype to undefined ( #12282 )
...
* avm2+tests: Allow setting prototype to undefined
This is used internally by Adobe Flex in many places. Also add test.
* avm2: Set prototype when constructing a Function with null prototype
* tests: Expand prototype_set_null test
* chore: fmt
2023-07-24 20:41:38 +00:00
Nathan Adams
92e3e44453
avm1: Reverse iteration when applying filters - fixes #12272
2023-07-24 13:44:02 +02:00
TÖRÖK Attila
0d1f7f8dcc
tests: Increase the tolerance of visual tests for the bevel filter slightly
...
To accomodate platform differences.
2023-07-24 04:44:22 +02:00
TÖRÖK Attila
e14b92ae3b
tests: Update visual test images due to slightly different blur algorithm
2023-07-24 04:44:22 +02:00
TÖRÖK Attila
7fe1c71257
tests: Add a visual test for fractional blur strength
2023-07-24 04:44:22 +02:00
Nathan Adams
9c661a14c3
tests: Port Shumway's avm1 tests over
2023-07-24 04:26:14 +02:00
Aaron Hill
cd9efb2dfa
wgpu: Ignore zero width/height Stage3D scissor rect
...
This matches Flash's behavior, and prevents wgpu from panicking.
2023-07-23 17:05:27 -04:00
Aaron Hill
8941a0bb79
avm2: Clamp ByteArray.position when ByteArray.length is set
...
Note that ByteArray.position can manually be set out-of-range
afterwards.
2023-07-23 14:51:30 -04:00
Aaron Hill
005fdffd05
avm2: Correctly set fields on ShaderInput and ShaderParameter
...
The special meta key `defaultValue` should be used to set
the default `value` field. Also, `index` is the position
within *just* the image or texture params, not within
all of the params.
2023-07-23 13:52:26 -04:00
sleepycatcoding
f47ed92108
tests: Add test for socket errors
2023-07-23 09:13:01 +02:00
sleepycatcoding
75672ae998
web, tests: Update connect_socket stubs
2023-07-23 09:13:01 +02:00
sleepycatcoding
ed22a7a23b
web, tests: remove Option for connection timeout
2023-07-23 09:13:01 +02:00
sleepycatcoding
486c0ca149
web, tests: Ignore timeout parameter
2023-07-23 09:13:01 +02:00
sleepycatcoding
437187a7bd
tests: Log socket connections on test backend
2023-07-23 09:13:01 +02:00
sleepycatcoding
0699c34881
chore: Fmt
2023-07-23 09:13:01 +02:00
sleepycatcoding
e59dd9a8ef
web, tests: fix connect_socket stubs
2023-07-23 09:13:01 +02:00
sleepycatcoding
67aa0fcbd4
tests: Stub connect_socket()
2023-07-23 09:13:01 +02:00
Nathan Adams
4219f39668
avm2: Throw proper error when setting name of timeline objects
2023-07-23 01:18:53 +02:00
Aaron Hill
5ee6218ab4
avm2: Fix `super_vtable` in `describeType`
...
This more closely matches what avmplus does.
2023-07-22 17:50:10 -04:00
Abiel Deneke
8f6e9d8f63
avm2: Don't change the length of a fixed output Vector
2023-07-22 16:11:08 -04:00
Nathan Adams
4accc2ca86
tests: Add 'delete list.@*' to the xmllist delete test
2023-07-22 18:24:08 +02:00
Nathan Adams
d1cfb1b8d1
avm2: Implement delete_property_local for XMLList
2023-07-22 18:24:08 +02:00
Nathan Adams
4410d666ed
avm2: Implement Bitmap.pixelSnapping
2023-07-22 00:34:17 +02:00
Nathan Adams
289f73c85f
core: Add pixel snapping (default auto) to Bitmaps, and force it for cacheAsBitmap
2023-07-22 00:34:17 +02:00
Lord-McSweeney
68c5024f21
tests: Add test for LocalConnection.send
2023-07-22 00:00:24 +02:00
Nathan Adams
98ce792a5b
avm1: Implement BitmapData.applyFilter()
2023-07-21 21:43:54 +02:00
Aaron Hill
f328797d04
avm2: Fix bugs with describeType interfaces and methods
...
Interfaces should only be listed when calling describeType
with a class instance (not with a `Class` object).
Additionally, AS3 methods can actually be displayed under
some circumstances. This is due to weird legacy behavior
that avmplus implements. A full fix requirs us to implement
namespace versioning, but we can get closer by special-casing
playerglobals (which is special-cased by namespace versioning
anyway).
2023-07-21 15:23:56 -04:00
Nathan Adams
f1e96bb1f1
tests: Reduce size of blur_scales_with_screen test
2023-07-20 23:19:20 +02:00
Nathan Adams
67c33ef9c3
core: Disable cacheAsBitmap for swfs that are too large (depending on swf version)
2023-07-20 23:19:20 +02:00
Nathan Adams
a85aa41e6a
tests: Add displacement filter scaling test
2023-07-20 12:41:30 +02:00
TÖRÖK Attila
ad591224f9
tests: Another test with .filters instead of applyFilter
2023-07-20 12:41:30 +02:00
TÖRÖK Attila
4e7baf647e
tests: Add another displacement map test
2023-07-20 12:41:30 +02:00
Nathan Adams
400ff32723
wgpu: Implement a naive DisplacementMap filter
2023-07-20 12:41:30 +02:00
Lord-McSweeney
dd0d4f7eea
avm2: Add test for NetStream.client
2023-07-19 17:26:24 -06:00
Lord-McSweeney
42c1facf55
avm1+tests: Implement onMetaData event for AVM1, fix netStatus test for AVM2
2023-07-19 17:26:24 -06:00
Aaron Hill
715abd8985
avm2: Use invisible mask descendants for mouse picking and rendering
...
The 'DisplayObject.visible' flag seems to be ignored for mask objects
(and their descendants) - mouse picking still takes them into account,
and they get rendered as part of the mask.
This commit changes display object rendering and AVM2 mouse picking
to ignore DisplayObject.visibility when dealing with mask objects/
descendants.
2023-07-19 23:18:28 +02:00
Nathan Adams
b1ba144166
wgpu: Implement Bevel filter
2023-07-19 22:59:33 +02:00
CUB3D
771f568509
core: Trying to access a named shape should resolve to the parent as they have no object representation
2023-07-19 22:32:42 +02:00