<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 2012-06-15, at 7:28 PM, Igor Stasenko wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">In theory yes, but in practice, existing object format(s) do not allow<br>you to do that:<br>try adding instance variable to any variable class with bytes/words format.<br></span></blockquote></div><br><div>It's worse than that - if you add an instance variable to Object, it changes the layout of Behavior instances. That instantly crashes the VM, because superclass pointers and method dictionaries aren't where the VM expects them to be.&nbsp;</div><div><br></div><div>Levante has a point, though. Management of the properties dictionary doesn't have to be implemented at the VM level, it just has to support a named instance variable in Object.</div><div><br></div><div>Colin</div></body></html>