paq
8baa36e801
avm2: Implement isFinite
2020-12-27 23:02:39 -08:00
paq
ce2d7efac3
avm2: Implement isNaN
2020-12-27 23:02:39 -08:00
David Wendt
19219ad0c1
avm2: Implement `dispatchEvent`.
...
Event dispatch is a surprisingly complicated procedure, so this makes sure to test:
1. Event dispatch on bare dispatchers
2. Event dispatch on hierarchial dispatchers (movieclips)
3. Event cancellation (which is reported by `dispatchEvent`)
4. The implicit `this` on unbound event handlers. I'm not yet sure if this is a special property of event dispatch or if all unbound functions inherit their global scope as `this`.
5. The execution order of handlers on both bare and hierarchial dispatchers
6. Delegation to hierarchial dispatchers
7. Modification of the dispatch list during dispatch of an event. Surprisingly enough, you can add handlers to the event you're handling and expect them to execute, *if* you added them to a further object in the order *or* you added a bubble handler in the capture phase.
2020-12-21 21:47:29 -08:00
David Wendt
87ff679898
avm2: Implement `EventDispatcher.willTrigger`
2020-12-21 21:47:29 -08:00
David Wendt
be4e37a55c
avm2: Implement `addEventListener`, `removeEventListener`, and `hasEventListener`.
2020-12-21 21:47:29 -08:00
David Wendt
09f9e99fbb
avm2: Implement `rest` parameters in function calls.
2020-12-17 13:21:44 -08:00
David Wendt
453e013c2c
avm2: Implement `arguments`.
2020-12-17 13:21:44 -08:00
David Wendt
217890f4a6
avm2: Implement `Function.apply`
2020-12-17 13:21:44 -08:00
David Wendt
8a787e6153
avm2: Implement `Event.toString` (which matches it's valueof behavior)
2020-12-14 16:46:33 -08:00
David Wendt
d393a5f4f8
avm2: Implement `Event.preventDefault` and `Event.isDefaultPrevented`
2020-12-14 16:46:33 -08:00
David Wendt
8b9a804ae9
avm2: Implement `Event.formatToString`.
2020-12-14 16:46:33 -08:00
David Wendt
584c6c8b11
avm2: Implement `Event.clone`
2020-12-14 16:46:33 -08:00
David Wendt
90da20579c
avm2: Implement `Event.bubbles`, `cancelable`, and `type`.
2020-12-14 16:46:33 -08:00
David Wendt
58f4470dc5
avm2: Add `Event` class, object type, and native representation
2020-12-14 16:46:33 -08:00
David Wendt
afd033898c
avm2: Implement `hitTestObject`
2020-12-09 14:00:06 -08:00
David Wendt
d9172780c5
avm2: Implement `hitTestPoint`.
2020-12-09 14:00:06 -08:00
David Wendt
06ba2f898a
avm2: Implement `visible`.
2020-12-09 14:00:06 -08:00
David Wendt
d489aca377
avm2: Expose `DisplayObject.root`
2020-12-09 14:00:06 -08:00
David Wendt
1b2a4708d6
avm2: Implement `DisplayObject.parent`.
2020-12-09 14:00:06 -08:00
David Wendt
852f26bdeb
tests: Fix name test breaking with our half-working execution order
2020-12-09 14:00:06 -08:00
David Wendt
c053f2c87c
avm2: Expose DisplayObject `name` property
2020-12-09 14:00:06 -08:00
David Wendt
4784dc3c03
tests: Add more stringent height/width test that we're only accurate to within 1 twip.
2020-12-09 14:00:06 -08:00
David Wendt
69db45131b
tests: Add inactive tests for `alpha`, `height`, `rotation`, `width`, `x`, and `y`.
2020-12-09 14:00:06 -08:00
David Wendt
9dde91e0fd
core: Store named children on AVM2 movieclips as object properties
2020-11-27 13:23:34 -08:00
David Wendt
86e1037940
avm2: Implement `stopAllMovieClips`
2020-11-27 13:23:34 -08:00
David Wendt
e2e598edde
avm2: Implement `swapChildren` and `swapChildrenAt`.
2020-11-27 13:23:34 -08:00
David Wendt
71cdbd7194
avm2: Implement `setChildIndex`
2020-11-27 13:23:34 -08:00
David Wendt
cf0ab2d82f
avm2: Implement `removeChildren`.
...
This also changes the underlying `DisplayObjectContainer` method to accept any type of range. Turns out enum trait objects aren't actually trait objects and don't need to worry about object safety!
2020-11-27 13:23:34 -08:00
David Wendt
38fd29ae5f
avm2: Implement `removeChildAt`
2020-11-27 13:23:34 -08:00
David Wendt
759a590d76
avm2: Implement `getChildIndex`
2020-11-27 13:23:34 -08:00
David Wendt
85fa8f327d
avm2: Impl `contains` w/ test
2020-11-27 13:23:34 -08:00
David Wendt
bcef9ef415
tests: Add a whole number of tests of depth/render list interaction from the AS3 side
2020-11-27 13:23:34 -08:00
David Wendt
a5f09d3c09
avm2: Implement `removeChild`.
2020-11-27 13:23:34 -08:00
David Wendt
a5ea9795f6
avm2: Implement `addChild` and `addChildAt`, with tests
2020-11-27 13:23:34 -08:00
David Wendt
f748576927
avm2: Implement `getChildByName`
2020-11-27 13:23:34 -08:00
David Wendt
d04f131cfe
avm2: Implement `DisplayObjectContainer.getChildAt`.
...
This test doesn't work yet because it needs `avm2-domainscope` to get merged in.
2020-11-27 13:23:34 -08:00
Mike Welsh
48ee47d88a
tests: Add test for AVM2 Math
...
Also allow specifying relative epsilon for swf_tests_approx.
2020-11-12 04:24:47 -08:00
Mike Welsh
b927acb2c2
avm2: trace accepts multiple arguments
2020-11-10 17:05:56 -08:00
David Wendt
6f659db342
tests: Fix the lazyinit test so that it actually passes on Ruffle
2020-10-17 03:32:09 -07:00
David Wendt
a484861f79
tests: Add a test for lazy initialization load order.
2020-10-17 03:32:09 -07:00
David Wendt
4c44ca8e77
avm2: Non-integer numbers should be handled as strings and integer-parsible strings should be handled as numbers.
2020-10-06 06:03:22 -07:00
David Wendt
896a5b37a5
avm2: Implement `new MovieClip()`.
2020-10-06 06:03:22 -07:00
David Wendt
50dd9a6733
avm2: Implement the programmatically-playing flag that governs `isPlaying` behavior.
2020-10-06 06:03:22 -07:00
David Wendt
035c841eb5
tests: Add tests for `gotoAndStop` and rename the `gotoAndPlay` one
2020-10-06 06:03:22 -07:00
David Wendt
1f29497b8c
tests: Add test for AS3 movieclip play
2020-10-06 06:03:22 -07:00
David Wendt
8152400a39
avm2: Implement `MovieClip.scenes`.
2020-10-06 06:03:22 -07:00
David Wendt
c682868205
avm2: Implement `MovieClip.currentScene`
2020-10-06 06:03:22 -07:00
David Wendt
8a13d5fe10
avm2: Implement `Scene` object.
2020-10-06 06:03:22 -07:00
David Wendt
de186ed5f3
avm2: Implement `MovieClip.currentLabels`
2020-10-06 06:03:22 -07:00
David Wendt
77a86aef9b
avm2: Implement `FrameLabel`.
2020-10-06 06:03:22 -07:00