Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.227.mcz==================== Summary ====================
Name: Compiler-eem.227
Author: eem
Time: 28 March 2012, 6:34:18.679 pm
UUID: ba2dd2c9-e83b-48f2-877e-310826e49215
Ancestors: Compiler-eem.226
Hide the onceCache when decompiling.
=============== Diff against Compiler-eem.226 ===============
Item was changed:
----- Method: DecompilerConstructorForClosures>>codeMethod:block:tempVars:primitive:class: (in category 'constructor') -----
codeMethod: selector block: block tempVars: vars primitive: primitive class: class
+ | blockNode selectorNode visibleTemps invisibleTemps arguments temporaries properties |
- | blockNode selectorNode visibleTemps invisibleTemps arguments temporaries |
selectorNode := self codeSelector: selector code: nil.
tempVars := vars.
visibleTemps := OrderedCollection new.
invisibleTemps := OrderedCollection new.
tempVars do: [:t|
((t isIndirectTempVector or: [t scope >= 0])
ifTrue: [visibleTemps]
ifFalse: [invisibleTemps]) addLast: t].
arguments := visibleTemps copyFrom: 1 to: nArgs.
temporaries := visibleTemps copyFrom: nArgs + 1 to: visibleTemps size.
block
arguments: arguments;
temporaries: temporaries.
+ properties := method properties copy.
+ (properties at: #onceCache) ifNotNil:
+ [:onceCache|
+ properties := properties copyWithout: (Association
+ key: #onceCache
+ value: onceCache)].
blockNode := MethodNode new
selector: selectorNode
arguments: arguments
precedence: selector precedence
temporaries: temporaries
block: block
encoder: (EncoderForV3PlusClosures new initScopeAndLiteralTables
temps: visibleTemps, invisibleTemps
literals: literalValues
class: class)
primitive: primitive
+ properties: properties.
- properties: method properties copy.
blockNode properties method: blockNode.
^blockNode!