--- a/MessageNode.st Wed Oct 27 00:21:59 1993 +0100
+++ b/MessageNode.st Sat Dec 11 02:07:55 1993 +0100
@@ -21,7 +21,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.3 1993-10-13 02:41:26 claus Exp $
+$Header: /cvs/stx/stx/libcomp/MessageNode.st,v 1.4 1993-12-11 01:07:40 claus Exp $
'!
!MessageNode class methodsFor:'instance creation'!
@@ -126,6 +126,10 @@
^ argArray at:1
!
+lineNumber
+ ^ lineNr
+!
+
lineNumber:num
lineNr := num
! !
@@ -138,6 +142,15 @@
!MessageNode class methodsFor:'queries'!
+hasLineNumber:sel
+ "return true, if special send code needs lineNr"
+
+ (sel == #==) ifTrue:[^ false].
+ (sel == #~~) ifTrue:[^ false].
+ (sel == #class) ifTrue:[^ false].
+ ^ true
+!
+
isBuiltInUnarySelector:sel
"return true, if unary selector sel is built in"
@@ -152,6 +165,8 @@
(sel == #height) ifTrue:[^ true].
(sel == #origin) ifTrue:[^ true].
(sel == #extent) ifTrue:[^ true].
+ (sel == #asInteger) ifTrue:[^ true].
+ (sel == #rounded) ifTrue:[^ true].
^ false
!
@@ -516,12 +531,14 @@
aStream nextPut:#dup.
aStream nextPut:#push0.
aStream nextPut:#>.
+ aStream nextPut:lineNr.
aStream nextPut:#falseJump.
pos2 := aStream position.
aStream nextPut:0.
(argArray at:1) codeInlineOn:aStream inBlock:b valueNeeded:false.
aStream nextPut:#minus1.
+ aStream nextPut:lineNr.
aStream nextPut:#jump.
aStream nextPut:pos.
@@ -817,7 +834,7 @@
].
"
receiver isConstant ifTrue:[
- (receiver evaluate isKindOf:Number) ifTrue:[
+ receiver evaluate isNumber ifTrue:[
self codeTimesRepeatOn:aStream inBlock:b valueNeeded:valueNeeded.
^ self
]
@@ -860,6 +877,9 @@
]
].
aStream nextPut:selector.
+ (self class hasLineNumber:selector) ifTrue:[
+ aStream nextPut:lineNr.
+ ].
valueNeeded ifFalse:[
aStream nextPut:#drop
].
@@ -1014,6 +1034,9 @@
]
].
aStream nextPut:selector.
+ (self class hasLineNumber:selector) ifTrue:[
+ aStream nextPut:lineNr.
+ ].
valueNeeded ifFalse:[
aStream nextPut:#drop
].
@@ -1133,6 +1156,7 @@
]
].
aStream nextPut:selector.
+ aStream nextPut:lineNr.
aStream nextPut:#drop.
^ self
]