From 7d86c93ddc22df2424b2a666f1bf2a78e8ca4dbd Mon Sep 17 00:00:00 2001 From: David Wendt Date: Tue, 8 Jun 2021 17:22:11 -0400 Subject: [PATCH] Check to make sure that overrides only apply to already-installed properties. --- core/src/avm2/object.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/src/avm2/object.rs b/core/src/avm2/object.rs index c0ab82d8f..7d51f8039 100644 --- a/core/src/avm2/object.rs +++ b/core/src/avm2/object.rs @@ -460,6 +460,15 @@ pub trait TObject<'gc>: 'gc + Collect + Debug + Into> + Clone + Copy let receiver = (*self).into(); let scope = self.get_scope(); let trait_name = trait_entry.name().clone(); + + if trait_entry.is_override() && !self.has_own_property(&trait_name)? { + return Err(format!( + "Attempted to override property {:?}, which is not already defined", + trait_name + ) + .into()); + } + avm_debug!( activation.avm2(), "Installing trait {:?} of kind {:?}",