--- a/UnaryNode.st Mon Mar 05 13:35:32 2007 +0100
+++ b/UnaryNode.st Mon Mar 05 13:36:06 2007 +0100
@@ -9,7 +9,6 @@
other person. No title to or ownership of the software is
hereby transferred.
"
-
"{ Package: 'stx:libcomp' }"
MessageNode subclass:#UnaryNode
@@ -242,9 +241,13 @@
notSelector notNil ifTrue:[
aCompiler addLiteral:selector; addLiteral:rSel.
- (BinaryNode receiver:(receiver receiver)
- selector:notSelector
- arg:(receiver arg)) codeOn:aStream inBlock:b for:aCompiler.
+ (BinaryNode
+ receiver:(receiver receiver)
+ selector:notSelector
+ arg:(receiver arg))
+ codeOn:aStream
+ inBlock:b
+ for:aCompiler.
^ self
]
]
@@ -252,22 +255,22 @@
"
optimize
- Float pi
+ Float pi / NaN / e / unity / zero
"
- (selector == #pi) ifTrue:[
- (receiver isGlobal) ifTrue:[
- receiver name = 'Float' ifTrue:[
- aCompiler addLiteral:#Float; addLiteral:selector.
- (ConstantNode type:#Float value:(Float pi))
- codeOn:aStream inBlock:b for:aCompiler.
- ^ self
- ]
+ ( #(pi NaN e unity zero) includes:selector) ifTrue:[
+ (receiver isGlobalNamed:#Float) ifTrue:[
+ aCompiler addLiteral:#Float; addLiteral:selector.
+ (ConstantNode type:#Float value:(Float pi))
+ codeOn:aStream
+ inBlock:b
+ for:aCompiler.
+ ^ self
]
].
^ super codeOn:aStream inBlock:b for:aCompiler
- "Modified: 23.10.1997 / 02:04:51 / cg"
+ "Modified: / 05-03-2007 / 13:35:59 / cg"
! !
!UnaryNode methodsFor:'evaluation'!
@@ -340,5 +343,5 @@
!UnaryNode class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/UnaryNode.st,v 1.47 2006-07-17 11:34:14 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/UnaryNode.st,v 1.48 2007-03-05 12:36:06 cg Exp $'
! !