<div dir="ltr"><div>So you rely on (nil value -&gt; nil).<br></div>Will (is) the difference be still significant in Spur?<br></div><div class="gmail_extra"><br><div class="gmail_quote">2014-09-26 17:11 GMT+02:00  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Levente Uzonyi uploaded a new version of Morphic to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Morphic-ul.744.mcz" target="_blank">http://source.squeak.org/trunk/Morphic-ul.744.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Morphic-ul.744<br>
Author: ul<br>
Time: 22 September 2014, 7:45:55.442 pm<br>
UUID: 78178a2f-f249-4767-8429-f8236e1459bc<br>
Ancestors: Morphic-cmm.743<br>
<br>
- sped up #valueOfProperty:ifAbsent: and friends<br>
<br>
=============== Diff against Morphic-cmm.743 ===============<br>
<br>
Item was changed:<br>
  ----- Method: Morph&gt;&gt;valueOfProperty:ifAbsent: (in category &#39;accessing - properties&#39;) -----<br>
  valueOfProperty: aSymbol ifAbsent: aBlock<br>
        &quot;if the receiver possesses a property of the given name, answer<br>
        its value. If not then evaluate aBlock and answer the result of<br>
        this block evaluation&quot;<br>
+<br>
+       extension ifNil: [ ^aBlock value ].<br>
+       ^extension      valueOfProperty: aSymbol ifAbsent: aBlock!<br>
-       ^ extension<br>
-               ifNotNil: [extension valueOfProperty: aSymbol ifAbsent: aBlock]<br>
-               ifNil: [aBlock value]!<br>
<br>
Item was changed:<br>
  ----- Method: MorphExtension&gt;&gt;layoutFrame (in category &#39;accessing - layout properties&#39;) -----<br>
  layoutFrame<br>
+       ^self valueOfProperty: #layoutFrame!<br>
-       ^self valueOfProperty: #layoutFrame ifAbsent:[nil]!<br>
<br>
Item was changed:<br>
  ----- Method: MorphExtension&gt;&gt;layoutPolicy (in category &#39;accessing - layout properties&#39;) -----<br>
  layoutPolicy<br>
+       ^self valueOfProperty: #layoutPolicy!<br>
-       ^self valueOfProperty: #layoutPolicy ifAbsent:[nil]!<br>
<br>
Item was changed:<br>
  ----- Method: MorphExtension&gt;&gt;layoutProperties (in category &#39;accessing - layout properties&#39;) -----<br>
  layoutProperties<br>
+       ^self valueOfProperty: #layoutProperties!<br>
-       ^self valueOfProperty: #layoutProperties ifAbsent:[nil]!<br>
<br>
Item was changed:<br>
  ----- Method: MorphExtension&gt;&gt;valueOfProperty: (in category &#39;accessing - other properties&#39;) -----<br>
  valueOfProperty: aSymbol<br>
  &quot;answer the value of the receiver&#39;s property named aSymbol&quot;<br>
+<br>
+       ^otherProperties ifNotNil: [ otherProperties at: aSymbol ifAbsent: nil ]!<br>
-       ^ self<br>
-               valueOfProperty: aSymbol<br>
-               ifAbsent: []!<br>
<br>
Item was changed:<br>
  ----- Method: MorphExtension&gt;&gt;valueOfProperty:ifAbsent: (in category &#39;accessing - other properties&#39;) -----<br>
  valueOfProperty: aSymbol ifAbsent: aBlock<br>
        &quot;if the receiver possesses a property of the given name, answer<br>
        its value. If not then evaluate aBlock and answer the result of<br>
        this block evaluation&quot;<br>
        otherProperties ifNil: [^ aBlock value].<br>
+       ^otherProperties at: aSymbol ifAbsent: aBlock!<br>
-       ^ otherProperties at: aSymbol ifAbsent: [^ aBlock value]!<br>
<br>
<br>
</blockquote></div><br></div>