ruffle/core
Aaron Hill 487017e7c5 avm2: Properly handle Dictionary enumerants
Previously, there was an off-by-one bug in `get_enumerant_name`,
which caused us to produce a spurious 'null' as a key.
However, the 'dictionary_foreach' test only checked that certain
keys were present, so the presence of an additional key didn't break
the test.

This commit makes Dictionary enumerants behave in the same way as
Array enumerants - all of the object-specific enumerants
(in this case, the non-primitive dicitonar keys) come first,
followed by 'base' enumerants from ScriptObject (in this case,
primtive/String keys). Additionally, `setPropertyIsEnumerable` is now
ignored for `Dictionary`, consistent with Flash's behavior.

The `dictionary_foreach` test is updated to print out all of
the keys when inspecting the dictionary. Since the enumeration
order is unstable (under both Flash and Ruffle) due to the dependency
on pointer hashing, the test sorts the keys before printing them.
This ensures that we get stable output which is consistent between
Ruffle and Flash.
2022-06-07 00:39:42 +02:00
..
assets core: Extend the embedded fake device font with more characters 2022-02-09 20:09:52 +01:00
macros build(deps): bump syn from 1.0.95 to 1.0.96 2022-06-06 20:25:25 +03:00
src avm2: Properly handle Dictionary enumerants 2022-06-07 00:39:42 +02:00
Cargo.toml build(deps): bump flate2 from 1.0.23 to 1.0.24 2022-05-30 23:36:08 +03:00