diff --git a/core/src/avm2/object/vector_object.rs b/core/src/avm2/object/vector_object.rs index 7c3f0a05d..3d656c141 100644 --- a/core/src/avm2/object/vector_object.rs +++ b/core/src/avm2/object/vector_object.rs @@ -223,6 +223,21 @@ impl<'gc> TObject<'gc> for VectorObject<'gc> { self.0.read().base.resolve_any(local_name) } + fn get_enumerant_name(&self, index: u32) -> Option> { + if self.0.read().vector.length() as u32 >= index { + index.checked_sub(1).map(|index| index.into()) + } else { + None + } + } + + fn property_is_enumerable(&self, name: &QName<'gc>) -> bool { + name.local_name() + .parse::() + .map(|index| self.0.read().vector.length() as u32 >= index) + .unwrap_or(false) + } + fn to_string(&self, _mc: MutationContext<'gc, '_>) -> Result, Error> { Ok(Value::Object(Object::from(*self))) }