Nathan Adams
|
4a56cb1062
|
avm1: Make virtual properties store Object instead of Executable, so we can refer to the callee
|
2020-07-22 15:57:45 -07:00 |
Nathan Adams
|
f4ab57d6e0
|
avm1: Make property watchers take Object, not Executable, so we can track the callee
|
2020-07-22 15:57:45 -07:00 |
Nathan Adams
|
9ae10b6387
|
avm1: Made AvmString debug actually show contents of the string
|
2020-07-22 13:23:57 -07:00 |
Nathan Adams
|
3b2b7c226c
|
avm1: Fix gc unsoundness with missing collects in SystemPrototypes
|
2020-07-21 09:43:07 -07:00 |
Nathan Adams
|
0e0be34e17
|
avm1: Fix compile error when using avm_debug flag
|
2020-07-21 09:42:41 -07:00 |
Nathan Adams
|
d5deeee1b7
|
avm1: Properly implement the arguments object, it's an array
|
2020-07-21 07:49:00 -07:00 |
Mike Welsh
|
1a5d7fe452
|
avm2: Initial AVM2 interpreter (merge #404)
Initial work on the AVM2 interpreter.
|
2020-07-19 19:59:05 -07:00 |
Mike Welsh
|
ae7db80ea3
|
avm1: Move getURL to MovieClip.prototype (fix #804)
For example, _root.getURL should work.
|
2020-07-18 01:03:47 -07:00 |
Mike Welsh
|
8ecae5a87f
|
avm1: duplicateMovieClip copies clip events
Clip events should be copied from the source clip to the newly
created clip. Fixes objects remaining onscreen in #815.
|
2020-07-17 20:49:05 -07:00 |
Mike Welsh
|
7c52a1bcc4
|
avm1: Accept path strings in ActionCall (fix #832)
|
2020-07-14 23:34:21 -07:00 |
Mike Welsh
|
b43fdca4ad
|
avm1: resolve_text_field_variable -> resolve_variable_path
|
2020-07-14 23:34:21 -07:00 |
David Wendt
|
2021cec9d3
|
Impl `Copy`, `Eq`, `PartialOrd`, `Ord`, and `Hash` for `AvmString`.
|
2020-07-13 22:09:34 -04:00 |
Nathan Adams
|
fba8ccda81
|
avm1: Rename Avm1String to AvmString
|
2020-07-13 10:12:54 -07:00 |
Nathan Adams
|
d8f043fa1a
|
avm1: Value::coerce_to_string returns an Avm1String, as it can avoid a clone-and-reallocate
|
2020-07-13 10:12:54 -07:00 |
Nathan Adams
|
f0ef68cb16
|
avm1: Reenabled paused string-value tests during string refactor
|
2020-07-13 10:12:54 -07:00 |
Nathan Adams
|
c60b2cf4fc
|
avm1: Implement From<&'static str> for Value
|
2020-07-13 10:12:54 -07:00 |
Nathan Adams
|
e03e3f6c4e
|
avm1: Allow Avm1String to contain &'static str
|
2020-07-13 10:12:54 -07:00 |
Nathan Adams
|
ad733f2f21
|
avm1: Add Avm1String which wraps Gc<String>
|
2020-07-13 10:12:54 -07:00 |
Nathan Adams
|
016b9db3c5
|
avm1: Change Value::String(String) to Value::String(Gc<String>)
|
2020-07-13 10:12:54 -07:00 |
CUB3D
|
0591c0fe4b
|
core: Add functions to prototypes
|
2020-07-12 15:25:58 -07:00 |
CUB3D
|
ab022b66e9
|
chore: Format and cleanup clippy lints
|
2020-07-12 15:25:58 -07:00 |
CUB3D
|
83cca044ad
|
core: Add tests for ContextMenu and ContextMenuItem
|
2020-07-12 15:25:58 -07:00 |
CUB3D
|
46cd8eb507
|
core: Add ContextMenuItem
|
2020-07-12 15:25:58 -07:00 |
CUB3D
|
04ca652f98
|
core: ContextMenu fully implemented
|
2020-07-12 15:25:58 -07:00 |
CUB3D
|
73a98c7f78
|
core: Implement copy() for ContextMenu
|
2020-07-12 15:25:58 -07:00 |
CUB3D
|
f3aa6f7f01
|
core: Add stub of ContextMenuItem
|
2020-07-12 15:25:58 -07:00 |
CUB3D
|
c8fefc56b5
|
core: Add stubs for context menu
|
2020-07-12 15:25:58 -07:00 |
Nathan Adams
|
180891c58e
|
avm1: Add impl_custom_object!() macro to simplify custom object types
|
2020-07-10 16:48:05 -07:00 |
Nathan Adams
|
eb94cc54b2
|
chore: Move avm1 objects to their own module, we have plenty of them now
|
2020-07-10 16:48:05 -07:00 |
Mike Welsh
|
3322c2d916
|
avm1: Implement updateAfterEvent
|
2020-07-10 14:38:48 -07:00 |
Mike Welsh
|
98e7da7d93
|
avm1: Implement setInterval
|
2020-07-10 14:38:48 -07:00 |
Mike Welsh
|
a1ff80bb18
|
avm1: Object.watch is case insensitive on SWFv6
|
2020-07-10 12:02:26 -07:00 |
Nathan Adams
|
8a0430d744
|
avm1: Implement Object.watch & Object.unwatch (#268)
|
2020-07-10 12:02:26 -07:00 |
Nathan Adams
|
ecbab536b5
|
avm1: Respect ScriptLimits for recursion depth, and use that in infinite_recursion_function
|
2020-07-08 14:47:38 -07:00 |
Nathan Adams
|
2b30fd32b7
|
avm1: Activation depth can be up to u16.
|
2020-07-08 14:47:38 -07:00 |
Nathan Adams
|
51ec5739c6
|
avm1: Throw errors when functions (user-called, or special) go too deep
|
2020-07-08 14:47:38 -07:00 |
Nathan Adams
|
aa98c2c24f
|
avm1: Track the reason for executions, if it's a function call vs
something special, like a getter
|
2020-07-08 14:47:38 -07:00 |
Nathan Adams
|
65396ba87a
|
avm1: All errors are ignored during getters or setters
|
2020-07-08 14:47:38 -07:00 |
Nathan Adams
|
3ee1902117
|
avm1: Don't log errors at every Activation, only at the "root" frames
|
2020-07-08 14:47:38 -07:00 |
Nathan Adams
|
8218e14824
|
avm1: Remove unused field is_executing from Activation
|
2020-07-08 14:47:38 -07:00 |
Mike Welsh
|
bd7f986594
|
avm1: Allow overwriting _parent
|
2020-07-05 15:15:31 -07:00 |
Mike Welsh
|
ad6e2ceed4
|
avm1: Remove TObject::is_property_overwritable
Local virtual properties take precedence over prototype/parent
scopes, even for read-only propreties.
|
2020-07-05 15:15:31 -07:00 |
Mike Welsh
|
1240c79f70
|
avm1: StageObject::has_property should return true for _x, etc.
|
2020-07-05 15:15:31 -07:00 |
Mike Welsh
|
6feb266576
|
avm1: with(undefined) or with(null) is ignored
|
2020-07-05 15:15:31 -07:00 |
CUB3D
|
00d55b05a0
|
chore: Fix formatting
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
64eed4def9
|
chore: Cleanup
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
ab58cff8b3
|
core: Add tests for ColorTransform and cleanup code
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
0dcbd05f5d
|
chore: Fix formatting
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
68eb6a6342
|
core: Fix ColorTransformObject virtual prototype setters
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
73e9dc1a82
|
core: Refactor ColorTransform
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
26ae182584
|
core: Update to reflect avm changes
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
431cc532be
|
core: ColorTransform no longer passed through engine ColorTransform object
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
a8b1be2afa
|
core: Remove useless to_owned in color_transform
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
c0315dce3f
|
chore: Format
|
2020-07-05 13:49:59 -07:00 |
CUB3D
|
a8f7638d99
|
core: Implement ColorTransform
|
2020-07-05 13:49:59 -07:00 |
Nathan Adams
|
c50c835790
|
avm1: Made Executable::Action take in a Gc to Avm1Function, reducing the size of the struct significantly
|
2020-07-03 18:47:34 -07:00 |
Nathan Adams
|
c036e2cf88
|
avm1: Made f64_to_string return Cow<str> instead of String, as we sometimes return static values
|
2020-07-03 17:30:59 -07:00 |
Nathan Adams
|
938d644d7d
|
core: Made PropertyMap::insert take &str instead of String, as ownership isn't always needed
|
2020-07-03 17:30:59 -07:00 |
Nathan Adams
|
f4921fad45
|
core: Made PropertyMap::entry take &str instead of String. We often don't need ownership here.
|
2020-07-03 17:30:59 -07:00 |
Nathan Adams
|
b5c06be8a2
|
avm1: Anonymous function names for debugging when not in debug mode
|
2020-07-03 17:24:20 -07:00 |
Nathan Adams
|
51321713b5
|
avm1: Show stack frame with the avm_debug feature
|
2020-07-03 17:24:20 -07:00 |
Nathan Adams
|
c976cf8efb
|
avm1: Replace action.avm() with activation.avm to help with borrow checker in next commit
|
2020-07-03 17:24:20 -07:00 |
Jon Pacheco
|
48c65f02a1
|
avm1: Implement Error object (see #251)
|
2020-07-02 20:58:01 -07:00 |
Mike Welsh
|
b05da5ef0f
|
avm1: CastOp fails for primitive values
|
2020-07-01 17:30:56 -07:00 |
Nathan Adams
|
d86761db5d
|
avm1: Implement try {..} catch {..} finally {..} - #731
|
2020-07-01 17:30:56 -07:00 |
Nathan Adams
|
7c0b0a7a57
|
avm1: Fix instanceof checks with primitives
|
2020-07-01 16:36:54 -07:00 |
Nathan Adams
|
d1732dd3d6
|
avm1: Returning from with{} should return from the parent activation
|
2020-07-01 16:21:43 -07:00 |
Nathan Adams
|
8bc3eedc43
|
avm1: Rename StackFrame to Activation now that they're merged
|
2020-07-02 00:09:43 +02:00 |
Nathan Adams
|
9b66b496d0
|
avm1: Fix double-borrow when calling a getter that calls another method
|
2020-07-01 18:53:16 +02:00 |
Nathan Adams
|
987375299b
|
avm1: Replace 'run_in_avm' with just building a StackFrame object, letting Rust borrowchecker do our stack management for us
|
2020-06-30 21:57:51 +02:00 |
Nathan Adams
|
47a806a5ee
|
avm1: Removed errors that are no longer possible to run into
|
2020-06-30 21:28:32 +02:00 |
Nathan Adams
|
a989aa235a
|
avm1: We don't need to lock StackFrames anymore, the borrow checker will steer us right
|
2020-06-30 21:26:57 +02:00 |
Nathan Adams
|
2288919663
|
avm1: We don't need to store data in StackFrame, it's only used when actually running data
|
2020-06-30 21:24:46 +02:00 |
Nathan Adams
|
45c3967deb
|
avm1: Merge Activation into StackFrame
|
2020-06-30 21:08:42 +02:00 |
Nathan Adams
|
d889b98043
|
avm1: Merge Activation::from_function and Activation::from_action as they're identical
|
2020-06-30 20:34:05 +02:00 |
Nathan Adams
|
6e4dd506da
|
avm1: Activation doesn't need to be in a GcCell
|
2020-06-30 20:31:49 +02:00 |
Nathan Adams
|
4d24bc7f09
|
avm1: Removed pc from Activation, it's no longer needed
|
2020-06-30 19:42:18 +02:00 |
Nathan Adams
|
3e9c380ba1
|
avm1: Remove is_function from Activation, it's no longer needed
|
2020-06-30 19:40:21 +02:00 |
Nathan Adams
|
ec4affcf10
|
avm1: Use child activations when already running from another activation
|
2020-06-29 10:13:59 +02:00 |
Nathan Adams
|
aaa082fb60
|
avm1: Replace run_with_stack_frame with run_in_avm
|
2020-06-29 10:13:57 +02:00 |
Nathan Adams
|
0dd2ece371
|
avm1: Introduce parents to StackFrame, and move run_activation from avm1 to StackFrame
|
2020-06-29 10:12:17 +02:00 |
Nathan Adams
|
9b630bd305
|
avm1: Remove ReturnValue, it's no longer needed
|
2020-06-29 10:12:16 +02:00 |
Nathan Adams
|
ab4304d634
|
avm1: Properly and more explicitly work around the double-borrow issue in setters
|
2020-06-29 10:10:38 +02:00 |
Nathan Adams
|
f85684fec0
|
avm1: Move current_swf_version and is_case_sensitive from avm1 to stackframe
|
2020-06-29 10:10:11 +02:00 |
Nathan Adams
|
d470c52aea
|
avm1: Move root_object, target_clip_or_root, target_clip and base_clip from avm1 to StackFrame
|
2020-06-29 10:09:57 +02:00 |
Nathan Adams
|
ca305684db
|
avm1: Removed unused return_value on Activation
|
2020-06-29 10:09:40 +02:00 |
Nathan Adams
|
da8ca1379f
|
avm1: Change from 'avm, context' to 'activation, context' and restructured to support this
|
2020-06-29 10:09:38 +02:00 |
Nathan Adams
|
a841743962
|
avm1: Make current_stack_frame return a Result for easy chaining
|
2020-06-29 10:07:48 +02:00 |
Nathan Adams
|
cdfd58d619
|
avm1: Move register get/setting from avm1 to StackFrame
|
2020-06-29 10:07:31 +02:00 |
Nathan Adams
|
63e66c29eb
|
avm1: We already have our stack frame, don't refetch it in actions
|
2020-06-29 10:07:14 +02:00 |
Nathan Adams
|
3a093dddbd
|
avm1: Run activations immediate, not queued up for some-time-later
|
2020-06-29 10:07:12 +02:00 |
Nathan Adams
|
10b8f4abaf
|
avm1: Handle stack poping in avm
|
2020-06-29 08:55:50 +02:00 |
Nathan Adams
|
84a5fae43f
|
avm1: Only perform stack-frame adjustments in one place, not scattered throughout actions
|
2020-06-29 08:51:34 +02:00 |
Nathan Adams
|
9109d89daa
|
avm1: Allow for frame control in StackFrame from any action
|
2020-06-29 08:51:34 +02:00 |
Nathan Adams
|
329716bfe7
|
avm1: Don't refetch activation.data every action
|
2020-06-29 08:51:33 +02:00 |
Nathan Adams
|
af72f68f0f
|
avm1: Run entire stack frames at once
|
2020-06-29 08:51:33 +02:00 |
Nathan Adams
|
c6b9de883f
|
avm1: Add Activation to StackFrame, removing lots of get-and-unwraps
|
2020-06-29 08:51:33 +02:00 |
Nathan Adams
|
4d76e8b24d
|
avm1: Move all actions from Avm1 to a new StackFrame
|
2020-06-29 08:51:33 +02:00 |
Mike Welsh
|
3bc3d4acb2
|
text: Fix bindings being incorrectly cleared in StageObject
Call to `Vec::retain` was backwards, causing bindings to be
incorrectly cleared/not cleared when a text field was removed.
|
2020-06-28 23:38:58 -07:00 |
Mike Welsh
|
7eeda7d93e
|
chore: clippy
|
2020-06-28 18:36:10 -07:00 |