avm2: Correctly handle `@*` in string_to_multiname

This commit is contained in:
sleepycatcoding 2024-01-12 23:51:14 +02:00
parent 79c5112f45
commit 2775c917bf
2 changed files with 4 additions and 1 deletions

View File

@ -1358,6 +1358,10 @@ pub fn string_to_multiname<'gc>(
name: AvmString<'gc>, name: AvmString<'gc>,
) -> Multiname<'gc> { ) -> Multiname<'gc> {
if let Some(name) = name.strip_prefix(b'@') { if let Some(name) = name.strip_prefix(b'@') {
if name == b"*" {
return Multiname::any_attribute(activation.gc());
}
let name = AvmString::new(activation.context.gc_context, name); let name = AvmString::new(activation.context.gc_context, name);
Multiname::attribute(activation.avm2().public_namespace_base_version, name) Multiname::attribute(activation.avm2().public_namespace_base_version, name)
} else if &*name == b"*" { } else if &*name == b"*" {

View File

@ -1,2 +1 @@
num_ticks = 1 num_ticks = 1
known_failure = true # https://github.com/ruffle-rs/ruffle/issues/12351