From 215d4f2df460faafa3790c8625b6b8820fffa92e Mon Sep 17 00:00:00 2001 From: David Wendt Date: Wed, 18 Sep 2019 00:05:43 -0400 Subject: [PATCH] Provide arguments as local variables as some functions look for these --- core/src/avm1/object.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/avm1/object.rs b/core/src/avm1/object.rs index a41965d8a..e5b4884e8 100644 --- a/core/src/avm1/object.rs +++ b/core/src/avm1/object.rs @@ -70,8 +70,11 @@ impl<'gc> Executable<'gc> { Executable::Action(af) => { avm.insert_stack_frame_from_action(af.swf_version, af.data.clone(), ac.gc_context); - for arg in args { - avm.push(arg.clone()); + for i in 0..args.len() { + 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);