Provide arguments as local variables as some functions look for these

This commit is contained in:
David Wendt 2019-09-18 00:05:43 -04:00 committed by Mike Welsh
parent 3ab2eecc3c
commit 215d4f2df4
1 changed files with 5 additions and 2 deletions

View File

@ -70,8 +70,11 @@ impl<'gc> Executable<'gc> {
Executable::Action(af) => { Executable::Action(af) => {
avm.insert_stack_frame_from_action(af.swf_version, af.data.clone(), ac.gc_context); avm.insert_stack_frame_from_action(af.swf_version, af.data.clone(), ac.gc_context);
for arg in args { for i in 0..args.len() {
avm.push(arg.clone()); avm.push(args.get(i).unwrap().clone());
if let Some(argname) = af.params.get(i) {
avm.current_stack_frame_mut().unwrap().define(argname, args.get(i).unwrap().clone(), ac.gc_context);
}
} }
avm.current_stack_frame_mut().unwrap().define("this", Value::Object(this), ac.gc_context); avm.current_stack_frame_mut().unwrap().define("this", Value::Object(this), ac.gc_context);