diff --git a/core/src/avm2/activation.rs b/core/src/avm2/activation.rs index 450bcd1d1..33f5ce4dc 100644 --- a/core/src/avm2/activation.rs +++ b/core/src/avm2/activation.rs @@ -284,11 +284,10 @@ impl<'a, 'gc> Activation<'a, 'gc> { } else if let Some(result) = outer_scope.resolve(name, self)? { Ok(Some(result)) } else if let Some(global) = self.global_scope() { - let prop = global.base().get_property_local(name, self)?; - if prop == Value::Undefined { + if !global.base().has_own_property(name) { return Ok(None); } - Ok(Some(prop)) + return Ok(Some(global.base().get_property_local(name, self)?)); } else { Ok(None) } diff --git a/tests/tests/swfs/from_avmplus/ecma3/Statements/eswitch_004/test.toml b/tests/tests/swfs/from_avmplus/ecma3/Statements/eswitch_004/test.toml index 29f3cef79..cf6123969 100644 --- a/tests/tests/swfs/from_avmplus/ecma3/Statements/eswitch_004/test.toml +++ b/tests/tests/swfs/from_avmplus/ecma3/Statements/eswitch_004/test.toml @@ -1,2 +1 @@ num_ticks = 1 -known_failure = true diff --git a/tests/tests/swfs/from_avmplus/ecma3/Statements/ewhile_002/test.toml b/tests/tests/swfs/from_avmplus/ecma3/Statements/ewhile_002/test.toml index 29f3cef79..cf6123969 100644 --- a/tests/tests/swfs/from_avmplus/ecma3/Statements/ewhile_002/test.toml +++ b/tests/tests/swfs/from_avmplus/ecma3/Statements/ewhile_002/test.toml @@ -1,2 +1 @@ num_ticks = 1 -known_failure = true