Add AVM2 equivalent of `PropertyMap` for further expansion.

This commit is contained in:
David Wendt 2020-07-18 16:41:35 -04:00
parent 37b6b89d26
commit dc962f2abd
3 changed files with 10 additions and 1 deletions

View File

@ -29,6 +29,7 @@ mod method;
mod names; mod names;
mod object; mod object;
mod property; mod property;
mod property_map;
mod return_value; mod return_value;
mod scope; mod scope;
mod script; mod script;

View File

@ -0,0 +1,7 @@
//! Property map
use crate::avm2::names::QName;
use std::collections::HashMap;
/// Type which represents named properties on an object.
pub type PropertyMap<'gc, V> = HashMap<QName<'gc>, V>;

View File

@ -6,6 +6,7 @@ use crate::avm2::function::Executable;
use crate::avm2::names::{Namespace, QName}; use crate::avm2::names::{Namespace, QName};
use crate::avm2::object::{Object, ObjectPtr, TObject}; use crate::avm2::object::{Object, ObjectPtr, TObject};
use crate::avm2::property::Property; use crate::avm2::property::Property;
use crate::avm2::property_map::PropertyMap;
use crate::avm2::r#trait::Trait; use crate::avm2::r#trait::Trait;
use crate::avm2::return_value::ReturnValue; use crate::avm2::return_value::ReturnValue;
use crate::avm2::scope::Scope; use crate::avm2::scope::Scope;
@ -53,7 +54,7 @@ pub enum ScriptObjectClass<'gc> {
#[collect(no_drop)] #[collect(no_drop)]
pub struct ScriptObjectData<'gc> { pub struct ScriptObjectData<'gc> {
/// Properties stored on this object. /// Properties stored on this object.
values: HashMap<QName<'gc>, Property<'gc>>, values: PropertyMap<'gc, Property<'gc>>,
/// Slots stored on this object. /// Slots stored on this object.
slots: Vec<Slot<'gc>>, slots: Vec<Slot<'gc>>,