<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Uhh! This feels like JavaScript ... :o) I would rather work on improving Squeak's meta-object protocol and with it class construction and refinement. Especially for tests. Let's not undermine the idea of having classes in Smalltalk.<div><br></div><div>-1 for DynamicObject.</div><div><br></div><div>Objects in Squeak/Smalltalk are quite dynamic already. That name is misleading. :-)</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div>
                                        
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 18.04.2020 19:55:05 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">
<div id="divtagdefaultwrapper" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<blockquote style="margin: 0 0 0 40px;border: none;padding: 0px;min-width: 500px">
<p>
</p><div>d := DynamicObject withMethods: {</div>
<p>
</p><p>
</p><div><span style="white-space:pre"></span>#origin -> [2 @ 3].</div>
<p>
</p><p>
</p><div><span style="white-space:pre"></span>#corner -> [3 @ 7] } asDictionary.</div>
<p>
</p><p>
</p><div>d origin "2@3"</div>
<p>
</p></blockquote>
<p>
</p><div></div>
<p>
</p><p><br>
</p>
<p>Did we already have something like this for Squeak? May this become a pattern for situations where you actually don't need a class (e. g., when writing very small mock objects for tests)?</p>
<p><br>
</p>
<blockquote style="margin: 0 0 0 40px;border: none;padding: 0px;min-width: 500px">
<p>
</p><div>d := DynamicObject new.</div>
<p>
</p><p>
</p><div>d xxxMethodAt: #foo put: [self inform: 'Hi!'].</div>
<p>
</p><p>
</p><div>d xxxMethodAt: #foo: put: [:x | x halt].</div>
<p>
</p><p>
</p><div>d foo: 3.</div>
<p>
</p></blockquote>
<p>
</p><div><br>
</div>
<div>Best,</div>
<div>Christoph</div>
<p>
</p><div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: rgb(0, 0, 0);font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols">
<div name="divtagdefaultwrapper" style="font-family: Calibri,Arial,Helvetica,sans-serif;font-size: ;margin: 0">
<div><span style="font-size: 10pt;color: #808080"></span></div>
</div>
</div>
</div>
</div>
</div></blockquote></div>