ruffle/core
David Wendt b8106d24d2 Ensure virtual setters are run when defined on a prototype.
Normally, `set_property` only affects the object it was called on, which makes sense: otherwise, we couldn't override values that originate from a class prototype without accidentally monkey-patching the prototype. However, virtual setters only exist in prototypes and need to be accessible from child objects.

The solution to this is to have a specific method to check if a virtual setter exists. Virtual setters are then resolved through the prototype chain. If no virtual setter exists, then the reciever object is handed the value.

Note that we always use the `reciever` object rather than `self` so that `setsuper` can work correctly. In `setsuper`, we resolve the base class, and then set properties on it with the actual object in question as it's reciever. If a virtual setter is called, it will get the actual object it should be manipulating; and otherwise, prototypes will not be modified or consulted.
2020-07-13 17:44:22 -04:00
..
assets text: Add dummy implementation of device text 2019-10-07 23:23:45 -07:00
macros build(deps): bump syn from 1.0.33 to 1.0.34 2020-07-12 15:01:43 -07:00
src Ensure virtual setters are run when defined on a prototype. 2020-07-13 17:44:22 -04:00
tests Add `as3_inheritance` test, which is primarily designed to test method calls, constructor execution, and usage of `super`. 2020-07-13 17:44:22 -04:00
Cargo.toml build(deps): bump smallvec from 1.4.0 to 1.4.1 2020-07-06 20:30:41 -07:00