David Wendt
966dfc3902
avm2: Add method to get at the `Class` of non-class objects with a prototype.
...
The only unclassed objects should be bare objects, which are hard to get at.
2020-09-15 02:20:11 -07:00
David Wendt
cac1717780
avm2: Add utility method `is_sealed` for `Class`.
2020-09-15 02:20:11 -07:00
David Wendt
5a29b781ec
avm2: Ensure `ArrayObject` offers access to it's array properties for reading and writing.
2020-09-15 02:20:11 -07:00
David Wendt
e054456286
avm2: Add method to check if a particular namespace is the public namespace.
2020-09-15 02:20:11 -07:00
David Wendt
a09ba9d263
avm2: Implement `length`.
2020-09-15 02:20:11 -07:00
David Wendt
aaf586e3a7
avm2: `define_instance_trait` should actually define instance traits.
2020-09-15 02:20:11 -07:00
David Wendt
45c95cae02
avm2: Impl `Array.concat`
2020-09-15 02:20:11 -07:00
David Wendt
1092bf2bc5
avm2: Add the ability to wrap an already-constructed array in an object.
2020-09-15 02:20:11 -07:00
David Wendt
bd35ebb793
avm2: Impl `Array` constructor
2020-09-15 02:20:11 -07:00
David Wendt
bedd5fa007
avm2: Add a method for mutating the array storage of an object.
2020-09-15 02:20:11 -07:00
David Wendt
d92d3023e7
avm2: Restore `as_number`.
...
This is for the sake of methods that want to change behavior based on if they're working with a number or some other kind of value. It should not be used otherwise.
2020-09-15 02:20:11 -07:00
David Wendt
16e1a1bdf3
avm2: Add Array class.
...
This code also ensures that the prototypes of each system object are created in the appropriate `TObject` impl. This ensures that, for example, `new Array` hands you back an actual array.
2020-09-15 02:20:11 -07:00
David Wendt
88fc9b1538
avm2: Implement base types for array-shaped objects.
2020-09-15 02:20:11 -07:00
Nathan Adams
3ff399ca6b
core: Trace only to the log backend, but have the default log backend trace to the log crate
2020-09-13 13:51:39 -07:00
Nathan Adams
319efabb47
tests: Make tests capture trace output through new backend
2020-09-13 13:51:39 -07:00
Nathan Adams
e25e03a841
core: Log to new avm_trace method where we want things to show up
2020-09-13 13:51:39 -07:00
Nathan Adams
de009c7673
core: Add Log backend, for capturing trace output specific to a movie
2020-09-13 13:51:39 -07:00
Adrian Wielgosik
0fe88f23bb
avm1: Use fnv hash in PropertyMap
2020-09-09 10:44:52 -07:00
CUB3D
8a5434c956
core: Switch to enum for differentiating callable values from uncallable ones
2020-09-07 13:14:48 -07:00
CUB3D
efa7e862fd
core: Propagate this through scope and get_variable
2020-09-07 13:14:48 -07:00
CUB3D
136a5664b0
core: Pass the correct this for CallFunction when in a with scope
...
fixes #805 , #945 , #1018
2020-09-07 13:14:48 -07:00
Mike Welsh
a18e80baf2
chore: Fix clippy lints
2020-09-07 12:18:41 -07:00
David Wendt
35b589b2ac
avm2: `in` should only ever query non-namespaced/public properties.
2020-09-07 11:07:07 -07:00
David Wendt
3b5411547a
avm2: Implement `in`
2020-09-07 11:07:07 -07:00
David Wendt
11b8354905
avm2: `resolve_any` should resolve prototype properties.
2020-09-07 11:07:07 -07:00
Mike Welsh
64679e8796
avm1: typeof button/text should be object ( fix #1110 )
2020-09-04 11:33:40 -07:00
Nathan Adams
b2dc564628
avm1: Fix String.lastIndexOf(undefined)
2020-09-04 11:32:16 -07:00
Nathan Adams
ea7a9758c4
avm1: Fix String.indexOf(undefined)
2020-09-04 11:32:16 -07:00
Mike Welsh
86ab300ee8
core: Call post_instantiate on initial empty root ( fix #946 )
...
The `fake_root` did not have an object, which could cause the
player to panic if the SWF was not completely loaded when playing.
Calling `post_instantiate` ensures that this dummy root has an
object.
2020-09-04 11:31:04 -07:00
Mike Welsh
5ea06b0ce6
swf: Use Option for more PlaceObject parameters
...
There is a difference between empty/default (change value to default)
and none (don't modify), so make this explicit for some PlaceObject
parameters where it wasn't.
Fixes #1104 .
2020-09-03 19:09:48 -07:00
Mike Welsh
151b13a424
avm1: ExternalInterface properties are read only
2020-09-03 18:17:44 -07:00
Nathan Adams
b5531a48d0
web: Allow reentrant ExternalInterface callbacks
2020-09-03 18:17:44 -07:00
Nathan Adams
a49e8d8587
web: Implement two-way communication with ExternalInterface
2020-09-03 18:17:44 -07:00
Nathan Adams
687c912067
core: Allow for reentry from ExternalInterface methods
2020-09-03 18:17:44 -07:00
Nathan Adams
32de953822
core: Allow passing arguments and returning values to/from ExternalInterface
2020-09-03 18:17:44 -07:00
Nathan Adams
e1b3ac79d6
core: Add ability to call out to ExternalInterfaceProviders
2020-09-03 18:17:44 -07:00
Nathan Adams
502ea98ed4
core: Add ability to call in to ExternalInterface callbacks from outside of the player (+ test)
2020-09-03 18:17:44 -07:00
Nathan Adams
3784f411b4
core: Add ExternalInterface::addCallback
2020-09-03 18:17:44 -07:00
Nathan Adams
b66e9f8d16
avm1: Add ExternalInterface with only 'available' property right now
2020-09-03 18:17:44 -07:00
Nathan Adams
8f11141426
core: Add initial ExternalInterface structs
2020-09-03 18:17:44 -07:00
Nathan Adams
c5ac707fb5
avm1: Iterating xmlnode attributes should list every attribute
2020-09-03 17:03:43 -07:00
Nathan Adams
bcb64b9a62
avm1: Fix calling Function() as a function - fixes #1074
2020-09-03 17:01:20 -07:00
Mike Welsh
ce2b360ab7
core: Provide default impl for DisplayObject:hit_test_bounds
2020-09-02 17:51:55 -07:00
Mike Welsh
b0c9795cad
core: Graphic::from_swf_tag takes ownership of Shape
2020-09-02 17:51:55 -07:00
Mike Welsh
f2f70cc882
core: Mouse picking for buttons uses shape hit tests
2020-09-02 17:51:55 -07:00
Mike Welsh
d7a186b2cd
avm1: Implement shape hit testing
2020-09-02 17:51:55 -07:00
Nathan Adams
ec407a9514
avm1: Don't blanket impl From<i64> for Value, convert it explicitly where we know it's okay
2020-09-02 17:12:31 -07:00
Nathan Adams
0b5713557b
desktop: Implement LocaleBackend for desktop
2020-09-02 17:12:31 -07:00
Nathan Adams
f50b29151c
avm1: If a NaN is provided to new Date(timestamp), fail immediately
2020-09-02 17:12:31 -07:00
Nathan Adams
9dfc20e1ba
avm1: Implement Date.UTC
2020-09-02 17:12:31 -07:00