--- a/MessageNode.st Sun May 25 15:09:11 1997 +0200
+++ b/MessageNode.st Tue May 27 14:29:20 1997 +0200
@@ -1350,18 +1350,20 @@
theReceiver codeOn:aStream inBlock:b for:aCompiler.
lateEval := false.
+
valueNeeded ifTrue:[
+ "/ easily reconstructable - no need to keep on stack
theReceiver isConstant ifTrue:[
(theReceiver evaluate isMemberOf:SmallInteger) ifTrue:[
lateEval := true.
]
].
+ lateEval ifFalse:[
+ aStream nextPut:#dup
+ ].
].
- lateEval ifFalse:[aStream nextPut:#dup].
pos := aStream position.
-"/ aStream nextPut:#dup; nextPut:#push0; nextPut:#>; nextPut:lineNr; nextPut:#falseJump.
-"/ aStream nextPut:#dup; nextPut:#gt0; nextPut:lineNr; nextPut:#falseJump.
aStream nextPut:#pushgt0; nextPut:lineNr; nextPut:#falseJump.
pos2 := aStream position.
aStream nextPut:0.
@@ -1370,12 +1372,12 @@
aStream nextPut:#minus1; nextPut:lineNr; nextPut:#jump; nextPut:pos.
(aStream contents) at:pos2 put:(aStream position).
- aStream nextPut:#drop.
+ aStream nextPut:#drop. "/ drop run variable
lateEval ifTrue:[
theReceiver codeOn:aStream inBlock:b for:aCompiler.
]
- "Modified: 8.10.1996 / 14:44:49 / cg"
+ "Modified: 27.5.1997 / 14:28:49 / cg"
!
codeWhileOn:aStream inBlock:b valueNeeded:valueNeeded for:aCompiler
@@ -1803,5 +1805,5 @@
!MessageNode class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.63 1996-11-11 13:31:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.64 1997-05-27 12:29:20 cg Exp $'
! !