avm1: Fix list of elements in Array ctor (fix #1195)

This commit is contained in:
Mike Welsh 2020-09-25 03:56:38 -07:00
parent 6bb6bcab7a
commit 9e13058e04
1 changed files with 4 additions and 15 deletions

View File

@ -103,17 +103,9 @@ pub fn constructor<'gc>(
} }
if !consumed { if !consumed {
let mut length = 0; for (i, arg) in args.iter().enumerate() {
for arg in args { this.set_array_element(i, arg.to_owned(), activation.context.gc_context);
this.define_value(
activation.context.gc_context,
&length.to_string(),
arg.to_owned(),
EnumSet::empty(),
);
length += 1;
} }
this.set_length(activation.context.gc_context, length);
} }
Ok(Value::Undefined) Ok(Value::Undefined)
@ -144,12 +136,9 @@ pub fn array_function<'gc>(
} }
if !consumed { if !consumed {
let mut length = 0; for (i, arg) in args.iter().enumerate() {
for arg in args { array_obj.set_array_element(i, arg.to_owned(), activation.context.gc_context);
array_obj.set_array_element(length, arg.to_owned(), activation.context.gc_context);
length += 1;
} }
array_obj.set_length(activation.context.gc_context, length);
} }
Ok(array_obj.into()) Ok(array_obj.into())