Commit Graph

326 Commits

Author SHA1 Message Date
Nathan Adams 3ee1902117 avm1: Don't log errors at every Activation, only at the "root" frames 2020-07-08 14:47:38 -07:00
CUB3D 431cc532be core: ColorTransform no longer passed through engine ColorTransform object 2020-07-05 13:49:59 -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
Nathan Adams 8bc3eedc43 avm1: Rename StackFrame to Activation now that they're merged 2020-07-02 00:09:43 +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 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 6e4dd506da avm1: Activation doesn't need to be in a GcCell 2020-06-30 20:31:49 +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 a2103d906d avm1: Remove dead code from Avm1 2020-06-29 10:10:24 +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 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 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 93cf7a1386 text: Use retire_stack_frame after firing text bindings 2020-06-28 23:37:50 -07:00
Mike Welsh 618fa11acb avm1: Implement text field variable binding 2020-06-28 18:36:10 -07:00
Mike Welsh 51d66c53f0 core: Edit text sets variables on instantiation 2020-06-28 18:36:10 -07:00
Mike Welsh 52fbb77e99 avm1: DefineLocal respects virtual properties and prototype chain (fix #760)
DefineLocal will call a virtual setter if the property already exists
on the local object, including the local object's prototype chain.

DefineLocal2 will also not overwrite a property if it already exists
on the local object, including the local object's prototype chain.
2020-06-28 15:15:45 -07:00
Mike Welsh 054194026e avm1: Mark __constructor__ and constructor as DontEnum 2020-06-27 18:54:01 -07:00
Nathan Adams 463b79f063 avm1: Implement Action::Throw 2020-06-25 02:03:15 -07:00
Nathan Adams 70e4a40f01 avm1: Allow for user errors inside avm1::error::Error 2020-06-25 02:03:15 -07:00
CUB3D 8e28bab159 chore: Fix clippy lints, refactor storage to use data_local_dir 2020-06-24 01:46:07 +01:00
CUB3D 0122d65a09 core: Refactor SharedObject 2020-06-24 01:46:07 +01:00
Nathan Adams 2e7ebbf258 avm1: Fatal errors will halt the AVM and prevent further execution 2020-06-20 15:02:00 -07:00
Nathan Adams f5da954b32 avm1: Merge avm1::Error and avm1::ExecutionError for now. It's plausible that nested inside actions we can encounter an ExecutionError, so at that point it doesn't make sense to have a separation. 2020-06-20 15:02:00 -07:00
Nathan Adams e2c607c70f avm1: Avm1::retire_stack_frame can't error, so adjust its signature appropriately 2020-06-20 15:02:00 -07:00
Nathan Adams a36e2105a3 avm1: Made avm1::Error an actual error type, and removed all calls that throw incorrect errors in avm1 2020-06-20 15:02:00 -07:00
Nathan Adams ad07520af3 avm1: Add avm1::ExecutionError 2020-06-20 15:02:00 -07:00
Nathan Adams c8f0753da4 core: Rename Value::as_number to Value::coerce_to_f64 2020-06-19 12:48:28 -07:00
Nathan Adams 67042b255c core: Replace Value::as_* numeric methods in favour of coerce_to_* or manual matching 2020-06-19 12:48:28 -07:00
Nathan Adams f4b4d0ebb7 core: Replace Value::into_string in favour of coerce_to_string or manual matching 2020-06-19 12:48:28 -07:00
Nathan Adams 5662b2d4d9 core: Make Value::coerce_to_string return a Cow<str>` 2020-06-19 12:48:28 -07:00
Nathan Adams 9633dc71c3 core: Replace Value::as_string in favour of coerce_to_string or manual matching 2020-06-19 12:48:28 -07:00
Nathan Adams 5dd1a1e509 core: Remove Value::get, you must box the value first 2020-06-19 12:48:28 -07:00
Nathan Adams fc18c2fce5 core: Rename Value::as_object to Value::coerce_to_object 2020-06-19 12:48:28 -07:00
Nathan Adams b2b57c1540 core: Make Value::as_object always return a (possibly boxed) object 2020-06-19 12:48:28 -07:00
Mike Welsh 77cb186357 avm1: Constructors queue to run after a goto
If a class is registered to a clip that is placed on the timeline
during a goto, that constructor should run after the frame is
completely constructed. In order to tell whether to run the
constructor immediately, add a parameter to `post_instantiation`
to indicate if the clip is instantiated from the AVM or via a
standard timeline seek.
2020-06-16 14:53:44 -07:00
Mike Welsh 35a4c05923 avm1: CallFunction can resolve variable paths 2020-06-13 02:48:38 -07:00
Nathan Adams d39ffcfadc core: `Value::call` no longer requires you to resolve after calling it 2020-06-08 15:12:05 -07:00