avm2: Calls to object properties should use the new `call_property` method
This commit is contained in:
parent
7cefeb2b2a
commit
b8c086eb7a
|
@ -216,14 +216,11 @@ pub fn to_locale_string<'gc>(
|
||||||
join_inner(act, this, &[",".into()], |v, activation| {
|
join_inner(act, this, &[",".into()], |v, activation| {
|
||||||
let o = v.coerce_to_object(activation)?;
|
let o = v.coerce_to_object(activation)?;
|
||||||
|
|
||||||
let tls = o.get_property(
|
o.call_property(
|
||||||
o,
|
|
||||||
&QName::new(Namespace::public(), "toLocaleString").into(),
|
&QName::new(Namespace::public(), "toLocaleString").into(),
|
||||||
|
&[],
|
||||||
activation,
|
activation,
|
||||||
)?;
|
)
|
||||||
|
|
||||||
tls.coerce_to_object(activation)?
|
|
||||||
.call(Some(o), &[], activation, o.proto())
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -402,13 +402,11 @@ pub fn to_locale_string<'gc>(
|
||||||
) -> Result<Value<'gc>, Error> {
|
) -> Result<Value<'gc>, Error> {
|
||||||
join_inner(activation, this, &[",".into()], |v, act| {
|
join_inner(activation, this, &[",".into()], |v, act| {
|
||||||
if let Ok(o) = v.coerce_to_object(act) {
|
if let Ok(o) = v.coerce_to_object(act) {
|
||||||
let ls = o.get_property(
|
o.call_property(
|
||||||
o,
|
|
||||||
&QName::new(Namespace::public(), "toLocaleString").into(),
|
&QName::new(Namespace::public(), "toLocaleString").into(),
|
||||||
|
&[],
|
||||||
act,
|
act,
|
||||||
)?;
|
)
|
||||||
|
|
||||||
ls.coerce_to_object(act)?.call(Some(o), &[], act, None)
|
|
||||||
} else {
|
} else {
|
||||||
Ok(v)
|
Ok(v)
|
||||||
}
|
}
|
||||||
|
|
|
@ -302,20 +302,28 @@ impl<'gc> Value<'gc> {
|
||||||
let mut prim = self.clone();
|
let mut prim = self.clone();
|
||||||
let object = *o;
|
let object = *o;
|
||||||
|
|
||||||
if let Value::Object(f) =
|
if let Value::Object(_) =
|
||||||
object.get_property(*o, &QName::dynamic_name("toString").into(), activation)?
|
object.get_property(*o, &QName::dynamic_name("toString").into(), activation)?
|
||||||
{
|
{
|
||||||
prim = f.call(Some(*o), &[], activation, None)?;
|
prim = object.call_property(
|
||||||
|
&QName::dynamic_name("toString").into(),
|
||||||
|
&[],
|
||||||
|
activation,
|
||||||
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
if prim.is_primitive() {
|
if prim.is_primitive() {
|
||||||
return Ok(prim);
|
return Ok(prim);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Value::Object(f) =
|
if let Value::Object(_) =
|
||||||
object.get_property(*o, &QName::dynamic_name("valueOf").into(), activation)?
|
object.get_property(*o, &QName::dynamic_name("valueOf").into(), activation)?
|
||||||
{
|
{
|
||||||
prim = f.call(Some(*o), &[], activation, None)?;
|
prim = object.call_property(
|
||||||
|
&QName::dynamic_name("valueOf").into(),
|
||||||
|
&[],
|
||||||
|
activation,
|
||||||
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
if prim.is_primitive() {
|
if prim.is_primitive() {
|
||||||
|
@ -328,20 +336,28 @@ impl<'gc> Value<'gc> {
|
||||||
let mut prim = self.clone();
|
let mut prim = self.clone();
|
||||||
let object = *o;
|
let object = *o;
|
||||||
|
|
||||||
if let Value::Object(f) =
|
if let Value::Object(_) =
|
||||||
object.get_property(*o, &QName::dynamic_name("valueOf").into(), activation)?
|
object.get_property(*o, &QName::dynamic_name("valueOf").into(), activation)?
|
||||||
{
|
{
|
||||||
prim = f.call(Some(*o), &[], activation, None)?;
|
prim = object.call_property(
|
||||||
|
&QName::dynamic_name("valueOf").into(),
|
||||||
|
&[],
|
||||||
|
activation,
|
||||||
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
if prim.is_primitive() {
|
if prim.is_primitive() {
|
||||||
return Ok(prim);
|
return Ok(prim);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Value::Object(f) =
|
if let Value::Object(_) =
|
||||||
object.get_property(*o, &QName::dynamic_name("toString").into(), activation)?
|
object.get_property(*o, &QName::dynamic_name("toString").into(), activation)?
|
||||||
{
|
{
|
||||||
prim = f.call(Some(*o), &[], activation, None)?;
|
prim = object.call_property(
|
||||||
|
&QName::dynamic_name("toString").into(),
|
||||||
|
&[],
|
||||||
|
activation,
|
||||||
|
)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
if prim.is_primitive() {
|
if prim.is_primitive() {
|
||||||
|
|
Loading…
Reference in New Issue