<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Christoph --<div><br></div><div>+1 but be careful to answer 'nil' in such cases:</div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">...</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">otherProperties ifNil: [^ self].</span><br></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">...</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></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 24.02.2022 11:59:30 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">A new version of Morphic was added to project The Inbox:<br>http://source.squeak.org/inbox/Morphic-ct.1905.mcz<br><br>==================== Summary ====================<br><br>Name: Morphic-ct.1905<br>Author: ct<br>Time: 24 February 2022, 11:59:10.222147 am<br>UUID: ac4eb336-4623-5f48-9485-b4e46c636580<br>Ancestors: Morphic-mt.1904<br><br>Proposal: For Morph extensions, establish the common return value semantics known from most other collection protocols. I.e., #setProperty:... now answers the added value and #removeProperty: answers the removed value.<br><br>This can also help us to clean up a number of senders, browse this for an impression:<br>       self systemNavigation browseAllCallsOn: #removeProperty: and: #valueOfProperty:<br><br>=============== Diff against Morphic-mt.1904 ===============<br><br>Item was changed:<br>  ----- Method: Morph>>removeProperty: (in category 'accessing - properties') -----<br>  removeProperty: aSymbol <br>+  "Remove the property named aSymbol if it exists. Answer the old value or nil."<br>-     "removes the property named aSymbol if it exists"<br>   extension ifNil:  [^ self].<br>+  ^ extension removeProperty: aSymbol!<br>-         extension removeProperty: aSymbol!<br><br>Item was changed:<br>  ----- Method: Morph>>setProperties: (in category 'accessing - properties') -----<br>  setProperties: aList<br>+    "Set many properties at once from a list of prop, value, prop, value. Answer the list."<br>-    "Set many properties at once from a list of prop, value, prop, value"<br>  <br>   1 to: aList size by: 2 do: [:ii |<br>+            self setProperty: (aList at: ii) toValue: (aList at: ii+1)].<br>+         ^ aList!<br>-             self setProperty: (aList at: ii) toValue: (aList at: ii+1)].!<br><br>Item was changed:<br>  ----- Method: Morph>>setProperty:toValue: (in category 'accessing - properties') -----<br>  setProperty: aSymbol toValue: anObject <br>+        "Change the receiver's property named aSymbol to anObject. Answer anObject."<br>-       "change the receiver's property named aSymbol to anObject"<br>          anObject ifNil: [^ self removeProperty: aSymbol].<br>+    ^ self assureExtension setProperty: aSymbol toValue: anObject!<br>-       self assureExtension setProperty: aSymbol toValue: anObject!<br><br>Item was changed:<br>  ----- Method: MorphExtension>>removeProperty: (in category 'accessing - other properties') -----<br>  removeProperty: aSymbol <br>+      "Removes the property named aSymbol if it exists. Answer the old value or nil."<br>+    | value |<br>-    "removes the property named aSymbol if it exists"<br>   otherProperties ifNil: [^ self].<br>+     value := otherProperties removeKey: aSymbol ifAbsent: [].<br>+    otherProperties isEmpty ifTrue: [self removeOtherProperties].<br>+        ^ value!<br>-     otherProperties removeKey: aSymbol ifAbsent: [].<br>-     otherProperties isEmpty ifTrue: [self removeOtherProperties]!<br><br>Item was changed:<br>  ----- Method: MorphExtension>>setProperty:toValue: (in category 'accessing - other properties') -----<br>  setProperty: aSymbol toValue: abObject <br>+         "Change the receiver's property named aSymbol to anObject. Answer anObject."<br>+       ^ self assureOtherProperties at: aSymbol put: abObject!<br>-      "change the receiver's property named aSymbol to anObject"<br>-         self assureOtherProperties at: aSymbol put: abObject!<br><br><br></div></blockquote></div>