Integer.st
branchjv
changeset 18027 3621469cc5e8
parent 18017 7fef9e17913f
parent 14796 242490a39283
child 18040 a11a12546f23
--- a/Integer.st	Thu Feb 07 09:53:25 2013 +0100
+++ b/Integer.st	Tue Mar 05 18:10:13 2013 +0000
@@ -757,6 +757,8 @@
     "Modified: / 15.11.1999 / 20:35:20 / cg"
 ! !
 
+
+
 !Integer class methodsFor:'class initialization'!
 
 initialize
@@ -817,6 +819,7 @@
     "
 ! !
 
+
 !Integer class methodsFor:'prime numbers'!
 
 flushPrimeCache
@@ -1139,6 +1142,7 @@
     ^ self == Integer
 ! !
 
+
 !Integer methodsFor:'Compatibility-Dolphin'!
 
 & aNumber
@@ -1253,8 +1257,10 @@
 
     | bytes |
 
-    size < self digitLength ifTrue: [^ self error: 'number too big for ', size asString].
     bytes := self digitBytesMSB:true.
+    size < bytes size ifTrue: [
+        ^ ConversionError raiseRequestWith:self errorString:'number too big for ', size asString
+    ].
     ^ (ByteArray new: (size - bytes size)), bytes
 
     "
@@ -3016,9 +3022,13 @@
       100 log:2
       999 integerLog2
       999 log:2
-      120000 integerLog2
-      120000 log:2
+      120000 integerLog2 
+      120000 log:2       
       -1 integerLog2
+      50 factorial integerLog2   
+      50 factorial log:2
+      1000 factorial integerLog2   
+      1000 factorial log:2       -- float error!!
     "
 !
 
@@ -4232,6 +4242,7 @@
     "Created: / 09-01-2012 / 17:18:06 / cg"
 ! !
 
+
 !Integer methodsFor:'special modulu arithmetic'!
 
 add_32:anInteger
@@ -4918,11 +4929,11 @@
 !Integer class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.273 2013-01-22 14:10:37 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.275 2013-02-22 11:41:18 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.273 2013-01-22 14:10:37 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Integer.st,v 1.275 2013-02-22 11:41:18 stefan Exp $'
 ! !