*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Fri, 13 Feb 2009 15:55:58 +0100
changeset 11541 1630e2a37731
parent 11540 fc5339c7ff8c
child 11542 7596aebedb86
*** empty log message ***
Object.st
--- a/Object.st	Fri Feb 13 15:55:31 2009 +0100
+++ b/Object.st	Fri Feb 13 15:55:58 2009 +0100
@@ -1,6 +1,6 @@
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -12,20 +12,20 @@
 "{ Package: 'stx:libbasic' }"
 
 nil subclass:#Object
-        instanceVariableNames:''
-        classVariableNames:'ErrorSignal HaltSignal MessageNotUnderstoodSignal
-                UserInterruptSignal RecursionInterruptSignal
-                ExceptionInterruptSignal SubscriptOutOfBoundsSignal
-                IndexNotFoundSignal NonIntegerIndexSignal NotFoundSignal
-                KeyNotFoundSignal ElementOutOfBoundsSignal UserNotificationSignal
-                InformationSignal WarningSignal PrimitiveFailureSignal
-                DeepCopyErrorSignal AbortSignal ErrorRecursion Dependencies
-                InfoPrinting ActivityNotificationSignal InternalErrorSignal
-                NonWeakDependencies SynchronizationSemaphores ObjectAttributes
-                OSSignalInterruptSignal FinalizationLobby
-                RecursiveStoreStringSignal AbortAllSignal EnabledBreakPoints'
-        poolDictionaries:''
-        category:'Kernel-Objects'
+	instanceVariableNames:''
+	classVariableNames:'ErrorSignal HaltSignal MessageNotUnderstoodSignal
+		UserInterruptSignal RecursionInterruptSignal
+		ExceptionInterruptSignal SubscriptOutOfBoundsSignal
+		IndexNotFoundSignal NonIntegerIndexSignal NotFoundSignal
+		KeyNotFoundSignal ElementOutOfBoundsSignal UserNotificationSignal
+		InformationSignal WarningSignal PrimitiveFailureSignal
+		DeepCopyErrorSignal AbortSignal ErrorRecursion Dependencies
+		InfoPrinting ActivityNotificationSignal InternalErrorSignal
+		NonWeakDependencies SynchronizationSemaphores ObjectAttributes
+		OSSignalInterruptSignal FinalizationLobby
+		RecursiveStoreStringSignal AbortAllSignal EnabledBreakPoints'
+	poolDictionaries:''
+	category:'Kernel-Objects'
 !
 
 !Object class methodsFor:'documentation'!
@@ -33,7 +33,7 @@
 copyright
 "
  COPYRIGHT (c) 1988 by Claus Gittinger
-              All Rights Reserved
+	      All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -117,52 +117,52 @@
 
    [Class variables:]
 
-        ErrorSignal     <Signal>        Signal raised for error/error: messages
-                                        also, parent of all other signals.
-
-        HaltSignal      <Signal>        Signal raised for halt/halt: messages
-
-        MessageNotUnderstoodSignal      Signals raised for various error conditions
-        UserInterruptSignal
-        RecursionInterruptSignal
-        ExceptionInterruptSignal
-        SubscriptOutOfBoundsSignal
-        NonIntegerIndexSignal
-        NotFoundSignal
-        KeyNotFoundSignal
-        ElementOutOfBoundsSignal
-        InformationSignal
-        WarningSignal
-        DeepCopyErrorSignal
-        InternalErrorSignal
-
-        AbortSignal      <Signal>       Signal raised by debugger, to abort a computation
-                                        BUT, the debugger will only raise it if it is handled.
-                                        By handling the abortSignal, you can control where the
-                                        debuggers abort-function resumes execution in case of
-                                        an error.
-
-        ErrorRecursion   <Boolean>      controls behavior when recursive errors occur (i.e.
-                                        an error while handling an error).
-
-        Dependencies     <WeakDependencyDictionary>
-                                        keeps track of object dependencies.
-
-        InfoPrinting     <Boolean>      controls weather informational messages
-                                        are printed.
-
-        ActivityNotificationSignal <QuerySignal>
-                                         raised on #activityNotification:
-
-        NonWeakDependencies <Dictionary> keeps track of object dependencies.
-                                         Dependents stay alive.
-
-        SynchronizationSemaphores <WeakIdentityDictionary>
-                                         Semaphores for per-object-monitor.
+	ErrorSignal     <Signal>        Signal raised for error/error: messages
+					also, parent of all other signals.
+
+	HaltSignal      <Signal>        Signal raised for halt/halt: messages
+
+	MessageNotUnderstoodSignal      Signals raised for various error conditions
+	UserInterruptSignal
+	RecursionInterruptSignal
+	ExceptionInterruptSignal
+	SubscriptOutOfBoundsSignal
+	NonIntegerIndexSignal
+	NotFoundSignal
+	KeyNotFoundSignal
+	ElementOutOfBoundsSignal
+	InformationSignal
+	WarningSignal
+	DeepCopyErrorSignal
+	InternalErrorSignal
+
+	AbortSignal      <Signal>       Signal raised by debugger, to abort a computation
+					BUT, the debugger will only raise it if it is handled.
+					By handling the abortSignal, you can control where the
+					debuggers abort-function resumes execution in case of
+					an error.
+
+	ErrorRecursion   <Boolean>      controls behavior when recursive errors occur (i.e.
+					an error while handling an error).
+
+	Dependencies     <WeakDependencyDictionary>
+					keeps track of object dependencies.
+
+	InfoPrinting     <Boolean>      controls weather informational messages
+					are printed.
+
+	ActivityNotificationSignal <QuerySignal>
+					 raised on #activityNotification:
+
+	NonWeakDependencies <Dictionary> keeps track of object dependencies.
+					 Dependents stay alive.
+
+	SynchronizationSemaphores <WeakIdentityDictionary>
+					 Semaphores for per-object-monitor.
 
 
     [author:]
-        Claus Gittinger
+	Claus Gittinger
 
 "
 ! !
@@ -236,23 +236,23 @@
     "called only once - initialize signals"
 
     ErrorSignal isNil ifTrue:[
-        self initSignals
+	self initSignals
     ].
 
     ObjectAttributes isNil ifTrue:[
-        ObjectAttributes := WeakIdentityDictionary new.
+	ObjectAttributes := WeakIdentityDictionary new.
     ].
     Dependencies isNil ifTrue:[
-        Dependencies := WeakDependencyDictionary new.
+	Dependencies := WeakDependencyDictionary new.
     ].
     NonWeakDependencies isNil ifTrue:[
-        NonWeakDependencies := IdentityDictionary new.
+	NonWeakDependencies := IdentityDictionary new.
     ].
     SynchronizationSemaphores isNil ifTrue:[
-        SynchronizationSemaphores := WeakIdentityDictionary new.
+	SynchronizationSemaphores := WeakIdentityDictionary new.
     ].
     FinalizationLobby isNil ifTrue:[
-        FinalizationLobby := Registry new.
+	FinalizationLobby := Registry new.
     ].
 
     "/ initialize InfoPrinting to the VM's infoPrint setting
@@ -424,13 +424,13 @@
 
     "
      RecursiveStoreError handle:[:ex |
-        self halt
+	self halt
      ] do:[
-        |a|
-
-        a := Array new:1.
-        a at:1 put:a.
-        a storeOn:Transcript
+	|a|
+
+	a := Array new:1.
+	a at:1 put:a.
+	a storeOn:Transcript
      ]
     "
 
@@ -609,7 +609,7 @@
 explore
     (self confirm:'The Squeak explorer has not yet been ported to ST/X\\Inspect instead ?' withCRs)
     ifTrue:[
-        self inspect
+	self inspect
     ]
 !
 
@@ -620,13 +620,13 @@
 !
 
 stringForReadout
-        ^ self stringRepresentation
+	^ self stringRepresentation
 !
 
 stringRepresentation
-        "Answer a string that represents the receiver.  For most objects this is simply its printString, but for strings themselves, it's themselves.  6/12/96 sw"
-
-        ^ self printString
+	"Answer a string that represents the receiver.  For most objects this is simply its printString, but for strings themselves, it's themselves.  6/12/96 sw"
+
+	^ self printString
 !
 
 valueWithPossibleArguments:argArray
@@ -709,239 +709,239 @@
      * and SmallInteger
      */
     if (__isSmallInteger(index)) {
-        myClass = __qClass(self);
-        indx = __intVal(index) - 1;
-        n /* nInstVars */ = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
-        n /* nInstBytes */ = OHDR_SIZE + __OBJS2BYTES__(n /* nInstVars */);
-        nbytes = __qSize(self) - n /* nInstBytes */;
-        pFirst = (char *)(__InstPtr(self)) + n /* nInstBytes */;
-
-        switch ((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
-            case __MASKSMALLINT(POINTERARRAY):
-            case __MASKSMALLINT(WKPOINTERARRAY):
-                /*
-                 * pointers
-                 */
-                if ((unsigned)indx < (__BYTES2OBJS__(nbytes))) {
-                    OBJ *op;
-
-                    op = (OBJ *)pFirst + indx;
-                    RETURN ( *op );
-                }
-                break;
-
-            case __MASKSMALLINT(BYTEARRAY):
-                /*
-                 * (unsigned) bytes
-                 */
-                if ((unsigned)indx < nbytes) {
-                    unsigned char *cp;
-
-                    cp = (unsigned char *)pFirst + indx;
-                    RETURN ( __mkSmallInteger( (*cp & 0xFF)) );
-                }
-                break;
-
-            case __MASKSMALLINT(FLOATARRAY):
-                /*
-                 * native floats
-                 */
-                if ((unsigned)indx < (nbytes / sizeof(float))) {
-                    float *fp;
-                    float f;
-                    OBJ v;
-
-                    fp = (float *)pFirst + indx;
-                    f = *fp;
-                    if (f == 0.0) {
-                        v = __float0;
-                    } else {
-                        __qMKSFLOAT(v, f);
-                    }
-                    RETURN (v);
-                }
-                break;
-
-            case __MASKSMALLINT(DOUBLEARRAY):
-                /*
-                 * native doubles
-                 */
+	myClass = __qClass(self);
+	indx = __intVal(index) - 1;
+	n /* nInstVars */ = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
+	n /* nInstBytes */ = OHDR_SIZE + __OBJS2BYTES__(n /* nInstVars */);
+	nbytes = __qSize(self) - n /* nInstBytes */;
+	pFirst = (char *)(__InstPtr(self)) + n /* nInstBytes */;
+
+	switch ((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
+	    case __MASKSMALLINT(POINTERARRAY):
+	    case __MASKSMALLINT(WKPOINTERARRAY):
+		/*
+		 * pointers
+		 */
+		if ((unsigned)indx < (__BYTES2OBJS__(nbytes))) {
+		    OBJ *op;
+
+		    op = (OBJ *)pFirst + indx;
+		    RETURN ( *op );
+		}
+		break;
+
+	    case __MASKSMALLINT(BYTEARRAY):
+		/*
+		 * (unsigned) bytes
+		 */
+		if ((unsigned)indx < nbytes) {
+		    unsigned char *cp;
+
+		    cp = (unsigned char *)pFirst + indx;
+		    RETURN ( __mkSmallInteger( (*cp & 0xFF)) );
+		}
+		break;
+
+	    case __MASKSMALLINT(FLOATARRAY):
+		/*
+		 * native floats
+		 */
+		if ((unsigned)indx < (nbytes / sizeof(float))) {
+		    float *fp;
+		    float f;
+		    OBJ v;
+
+		    fp = (float *)pFirst + indx;
+		    f = *fp;
+		    if (f == 0.0) {
+			v = __float0;
+		    } else {
+			__qMKSFLOAT(v, f);
+		    }
+		    RETURN (v);
+		}
+		break;
+
+	    case __MASKSMALLINT(DOUBLEARRAY):
+		/*
+		 * native doubles
+		 */
 #ifdef __NEED_DOUBLE_ALIGN
-                if ((INT)pFirst & (__DOUBLE_ALIGN-1)) {
-                    int delta = __DOUBLE_ALIGN - ((INT)pFirst & (__DOUBLE_ALIGN-1));
-
-                    pFirst += delta;
-                    nbytes -= delta;
-                }
+		if ((INT)pFirst & (__DOUBLE_ALIGN-1)) {
+		    int delta = __DOUBLE_ALIGN - ((INT)pFirst & (__DOUBLE_ALIGN-1));
+
+		    pFirst += delta;
+		    nbytes -= delta;
+		}
 #endif
-                if ((unsigned)indx < (nbytes / sizeof(double))) {
-                    double *dp;
-                    double d;
-                    OBJ v;
-
-                    dp = (double *)pFirst + indx;
-                    d = *dp;
-                    if (d == 0.0) {
-                        v = __float0;
-                    } else {
-                        __qMKFLOAT(v, d);
-                    }
-                    RETURN (v);
-                }
-                break;
-
-            case __MASKSMALLINT(WORDARRAY):
-                /*
-                 * unsigned 16bit ints
-                 */
-                /* Notice: the hard coded shifts are by purpose;
-                 * it makes us independent of the short-size of the machine
-                 */
-                if ((unsigned)indx < (nbytes>>1)) {
-                    unsigned short *sp;
-
-                    sp = (unsigned short *)(pFirst + (indx<<1));
-                    RETURN ( __mkSmallInteger( (*sp & 0xFFFF)) );
-                }
-                break;
-
-            case __MASKSMALLINT(SWORDARRAY):
-                /*
-                 * signed 16bit ints
-                 */
-                /* Notice: the hard coded shifts are by purpose;
-                 * it makes us independent of the short-size of the machine
-                 */
-                if ((unsigned)indx < (nbytes>>1)) {
-                    short *ssp;
-
-                    ssp = (short *)(pFirst + (indx<<1));
-                    RETURN ( __mkSmallInteger( (*ssp) ));
-                }
-                break;
-
-            case __MASKSMALLINT(LONGARRAY):
-                /*
-                 * unsigned 32bit ints
-                 */
-                /* Notice: the hard coded shifts are by purpose;
-                 * it makes us independent of the int-size of the machine
-                 */
-                if ((unsigned)indx < (nbytes>>2)) {
-                    unsigned int32 ul;
-                    unsigned int32 *lp;
-
-                    lp = (unsigned int32 *)(pFirst + (indx<<2));
-                    ul = *lp;
+		if ((unsigned)indx < (nbytes / sizeof(double))) {
+		    double *dp;
+		    double d;
+		    OBJ v;
+
+		    dp = (double *)pFirst + indx;
+		    d = *dp;
+		    if (d == 0.0) {
+			v = __float0;
+		    } else {
+			__qMKFLOAT(v, d);
+		    }
+		    RETURN (v);
+		}
+		break;
+
+	    case __MASKSMALLINT(WORDARRAY):
+		/*
+		 * unsigned 16bit ints
+		 */
+		/* Notice: the hard coded shifts are by purpose;
+		 * it makes us independent of the short-size of the machine
+		 */
+		if ((unsigned)indx < (nbytes>>1)) {
+		    unsigned short *sp;
+
+		    sp = (unsigned short *)(pFirst + (indx<<1));
+		    RETURN ( __mkSmallInteger( (*sp & 0xFFFF)) );
+		}
+		break;
+
+	    case __MASKSMALLINT(SWORDARRAY):
+		/*
+		 * signed 16bit ints
+		 */
+		/* Notice: the hard coded shifts are by purpose;
+		 * it makes us independent of the short-size of the machine
+		 */
+		if ((unsigned)indx < (nbytes>>1)) {
+		    short *ssp;
+
+		    ssp = (short *)(pFirst + (indx<<1));
+		    RETURN ( __mkSmallInteger( (*ssp) ));
+		}
+		break;
+
+	    case __MASKSMALLINT(LONGARRAY):
+		/*
+		 * unsigned 32bit ints
+		 */
+		/* Notice: the hard coded shifts are by purpose;
+		 * it makes us independent of the int-size of the machine
+		 */
+		if ((unsigned)indx < (nbytes>>2)) {
+		    unsigned int32 ul;
+		    unsigned int32 *lp;
+
+		    lp = (unsigned int32 *)(pFirst + (indx<<2));
+		    ul = *lp;
 #if __POINTER_SIZE__ == 8
-                    {
-                        unsigned  INT ull = (unsigned INT)ul;
-                        RETURN ( __mkSmallInteger(ull) );
-                    }
+		    {
+			unsigned  INT ull = (unsigned INT)ul;
+			RETURN ( __mkSmallInteger(ull) );
+		    }
 #else
-                    if (ul <= _MAX_INT) {
-                        RETURN ( __mkSmallInteger(ul) );
-                    }
-                    RETURN ( __MKULARGEINT(ul) );
+		    if (ul <= _MAX_INT) {
+			RETURN ( __mkSmallInteger(ul) );
+		    }
+		    RETURN ( __MKULARGEINT(ul) );
 #endif
-                }
-                break;
-
-            case __MASKSMALLINT(SLONGARRAY):
-                /*
-                 * signed 32bit ints
-                 */
-                /* Notice: the hard coded shifts are by purpose;
-                 * it makes us independent of the int-size of the machine
-                 */
-                if ((unsigned)indx < (nbytes>>2)) {
-                    int32 *slp;
-                    int32 l;
-
-                    slp = (int32 *)(pFirst + (indx<<2));
-                    l = *slp;
+		}
+		break;
+
+	    case __MASKSMALLINT(SLONGARRAY):
+		/*
+		 * signed 32bit ints
+		 */
+		/* Notice: the hard coded shifts are by purpose;
+		 * it makes us independent of the int-size of the machine
+		 */
+		if ((unsigned)indx < (nbytes>>2)) {
+		    int32 *slp;
+		    int32 l;
+
+		    slp = (int32 *)(pFirst + (indx<<2));
+		    l = *slp;
 #if __POINTER_SIZE__ == 8
-                    {
-                        INT ll = (INT)l;
-                        RETURN ( __mkSmallInteger(ll) );
-                    }
+		    {
+			INT ll = (INT)l;
+			RETURN ( __mkSmallInteger(ll) );
+		    }
 #else
-                    if (__ISVALIDINTEGER(l)) {
-                        RETURN ( __mkSmallInteger(l) );
-                    }
-                    RETURN ( __MKLARGEINT(l) );
+		    if (__ISVALIDINTEGER(l)) {
+			RETURN ( __mkSmallInteger(l) );
+		    }
+		    RETURN ( __MKLARGEINT(l) );
 #endif
-                }
-                break;
-
-            case __MASKSMALLINT(SLONGLONGARRAY):
-                /*
-                 * signed 64bit longlongs
-                 */
+		}
+		break;
+
+	    case __MASKSMALLINT(SLONGLONGARRAY):
+		/*
+		 * signed 64bit longlongs
+		 */
 #ifdef __NEED_LONGLONG_ALIGN
-                if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
-                    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
-
-                    pFirst += delta;
-                    nbytes -= delta;
-                }
+		if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
+		    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
+
+		    pFirst += delta;
+		    nbytes -= delta;
+		}
 #endif
-                /* Notice: the hard coded shifts are by purpose;
-                 * it makes us independent of the long/longlong-size of the machine
-                 */
-                if ((unsigned)indx < (nbytes>>3)) {
+		/* Notice: the hard coded shifts are by purpose;
+		 * it makes us independent of the long/longlong-size of the machine
+		 */
+		if ((unsigned)indx < (nbytes>>3)) {
 #if __POINTER_SIZE__ == 8
-                    INT *slp, ll;
-
-                    slp = (INT *)(pFirst + (indx<<3));
-                    ll = *slp;
-                    if (__ISVALIDINTEGER(ll)) {
-                        RETURN ( __mkSmallInteger(ll) );
-                    }
-                    RETURN ( __MKLARGEINT(ll) );
+		    INT *slp, ll;
+
+		    slp = (INT *)(pFirst + (indx<<3));
+		    ll = *slp;
+		    if (__ISVALIDINTEGER(ll)) {
+			RETURN ( __mkSmallInteger(ll) );
+		    }
+		    RETURN ( __MKLARGEINT(ll) );
 #else
-                    __int64__ *llp;
-
-                    llp = (__int64__ *)(pFirst + (indx<<3));
-                    RETURN (__MKINT64(llp));
+		    __int64__ *llp;
+
+		    llp = (__int64__ *)(pFirst + (indx<<3));
+		    RETURN (__MKINT64(llp));
 #endif
-                }
-                break;
-
-            case __MASKSMALLINT(LONGLONGARRAY):
-                /*
-                 * unsigned 64bit longlongs
-                 */
+		}
+		break;
+
+	    case __MASKSMALLINT(LONGLONGARRAY):
+		/*
+		 * unsigned 64bit longlongs
+		 */
 #ifdef __NEED_LONGLONG_ALIGN
-                if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
-                    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
-
-                    pFirst += delta;
-                    nbytes -= delta;
-                }
+		if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
+		    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
+
+		    pFirst += delta;
+		    nbytes -= delta;
+		}
 #endif
-                /* Notice: the hard coded shifts are by purpose;
-                 * it makes us independent of the long/longlong-size of the machine
-                 */
-                if ((unsigned)indx < (nbytes>>3)) {
+		/* Notice: the hard coded shifts are by purpose;
+		 * it makes us independent of the long/longlong-size of the machine
+		 */
+		if ((unsigned)indx < (nbytes>>3)) {
 #if __POINTER_SIZE__ == 8
-                    unsigned INT *ulp, ul;
-
-                    ulp = (unsigned INT *)(pFirst + (indx<<3));
-                    ul = *ulp;
-                    if (ul <= _MAX_INT) {
-                        RETURN ( __mkSmallInteger(ul) );
-                    }
-                    RETURN ( __MKULARGEINT(ul) );
+		    unsigned INT *ulp, ul;
+
+		    ulp = (unsigned INT *)(pFirst + (indx<<3));
+		    ul = *ulp;
+		    if (ul <= _MAX_INT) {
+			RETURN ( __mkSmallInteger(ul) );
+		    }
+		    RETURN ( __MKULARGEINT(ul) );
 #else
-                    __uint64__ *llp;
-
-                    llp = (__uint64__ *)(pFirst + (indx<<3));
-                    RETURN (__MKUINT64(llp));
+		    __uint64__ *llp;
+
+		    llp = (__uint64__ *)(pFirst + (indx<<3));
+		    RETURN (__MKUINT64(llp));
 #endif
-                }
-                break;
-        }
+		}
+		break;
+	}
     }
 %}.
     ^ self indexNotIntegerOrOutOfBounds:index
@@ -969,246 +969,246 @@
        and SmallInteger */
 
     if (__isSmallInteger(index)) {
-        indx = __intVal(index) - 1;
-        myClass = __qClass(self);
-        n /* ninstvars */ = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
-        n /* nInstBytes */ = OHDR_SIZE + __OBJS2BYTES__(n /* ninstvars */);
-        nbytes = __qSize(self) - n /* nInstBytes */;
-        pFirst = (char *)(__InstPtr(self)) + n /* nInstBytes */;
-
-        switch ((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
-            case __MASKSMALLINT(POINTERARRAY):
-            case __MASKSMALLINT(WKPOINTERARRAY):
-                if ((unsigned)indx < (__BYTES2OBJS__(nbytes))) {
-                    OBJ *op;
-
-                    op = (OBJ *)pFirst + indx;
-                    *op = anObject;
-                    __STORE(self, anObject);
-                    RETURN ( anObject );
-                }
-                break;
-
-            case __MASKSMALLINT(BYTEARRAY):
-                if (__isSmallInteger(anObject)) {
-                    val = __intVal(anObject);
-                    if ((val & ~0xFF) == 0 /* i.e. (val >= 0) && (val <= 255) */) {
-                        if ((unsigned)indx < nbytes) {
-                            char *cp;
-
-                            cp = pFirst + indx;
-                            *cp = val;
-                            RETURN ( anObject );
-                        }
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(FLOATARRAY):
-                if ((unsigned)indx < (nbytes / sizeof(float))) {
-                    float *fp;
-
-                    fp = (float *)pFirst + indx;
-                    if (anObject != nil) {
-                        if (! __isSmallInteger(anObject)) {
-                            if (__qIsFloatLike(anObject)) {
-                                *fp = (float)(__floatVal(anObject));
-                                RETURN ( anObject );
-                            }
-                            if (__qIsShortFloat(anObject)) {
-                                *fp = __shortFloatVal(anObject);
-                                RETURN ( anObject );
-                            }
-                        } else {
-                            *fp = (float) __intVal(anObject);
-                            RETURN ( anObject );
-                        }
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(DOUBLEARRAY):
+	indx = __intVal(index) - 1;
+	myClass = __qClass(self);
+	n /* ninstvars */ = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
+	n /* nInstBytes */ = OHDR_SIZE + __OBJS2BYTES__(n /* ninstvars */);
+	nbytes = __qSize(self) - n /* nInstBytes */;
+	pFirst = (char *)(__InstPtr(self)) + n /* nInstBytes */;
+
+	switch ((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
+	    case __MASKSMALLINT(POINTERARRAY):
+	    case __MASKSMALLINT(WKPOINTERARRAY):
+		if ((unsigned)indx < (__BYTES2OBJS__(nbytes))) {
+		    OBJ *op;
+
+		    op = (OBJ *)pFirst + indx;
+		    *op = anObject;
+		    __STORE(self, anObject);
+		    RETURN ( anObject );
+		}
+		break;
+
+	    case __MASKSMALLINT(BYTEARRAY):
+		if (__isSmallInteger(anObject)) {
+		    val = __intVal(anObject);
+		    if ((val & ~0xFF) == 0 /* i.e. (val >= 0) && (val <= 255) */) {
+			if ((unsigned)indx < nbytes) {
+			    char *cp;
+
+			    cp = pFirst + indx;
+			    *cp = val;
+			    RETURN ( anObject );
+			}
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(FLOATARRAY):
+		if ((unsigned)indx < (nbytes / sizeof(float))) {
+		    float *fp;
+
+		    fp = (float *)pFirst + indx;
+		    if (anObject != nil) {
+			if (! __isSmallInteger(anObject)) {
+			    if (__qIsFloatLike(anObject)) {
+				*fp = (float)(__floatVal(anObject));
+				RETURN ( anObject );
+			    }
+			    if (__qIsShortFloat(anObject)) {
+				*fp = __shortFloatVal(anObject);
+				RETURN ( anObject );
+			    }
+			} else {
+			    *fp = (float) __intVal(anObject);
+			    RETURN ( anObject );
+			}
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(DOUBLEARRAY):
 #ifdef __NEED_DOUBLE_ALIGN
-                if ((INT)pFirst & (__DOUBLE_ALIGN-1)) {
-                    int delta = __DOUBLE_ALIGN - ((INT)pFirst & (__DOUBLE_ALIGN-1));
-
-                    pFirst += delta;
-                    nbytes -= delta;
-                }
+		if ((INT)pFirst & (__DOUBLE_ALIGN-1)) {
+		    int delta = __DOUBLE_ALIGN - ((INT)pFirst & (__DOUBLE_ALIGN-1));
+
+		    pFirst += delta;
+		    nbytes -= delta;
+		}
 #endif
-                if ((unsigned)indx < (nbytes / sizeof(double))) {
-                    double *dp;
-
-                    dp = (double *)pFirst + indx;
-                    if (anObject != nil) {
-                        if (! __isSmallInteger(anObject)) {
-                            if (__qIsFloatLike(anObject)) {
-                                *dp = __floatVal(anObject);
-                                RETURN ( anObject );
-                            }
-                            if (__qIsShortFloat(anObject)) {
-                                *dp = (double)__shortFloatVal(anObject);
-                                RETURN ( anObject );
-                            }
-                        } else {
-                            *dp = (double) __intVal(anObject);
-                            RETURN ( anObject );
-                        }
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(WORDARRAY):
-                if (__isSmallInteger(anObject)) {
-                    val = __intVal(anObject);
-                    if ((unsigned)val <= 0xFFFF) {
-                        if ((unsigned)indx < (nbytes>>1)) {
-                            unsigned short *sp;
-
-                            sp = (unsigned short *)(pFirst + (indx<<1));
-                            *sp = val;
-                            RETURN ( anObject );
-                        }
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(SWORDARRAY):
-                if (__isSmallInteger(anObject)) {
-                    val = __intVal(anObject);
-                    if ((val >= -32768) && (val < 32768)) {
-                        if ((unsigned)indx < (nbytes>>1)) {
-                            short *ssp;
-
-                            ssp = (short *)(pFirst + (indx<<1));
-                            *ssp = val;
-                            RETURN ( anObject );
-                        }
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(SLONGARRAY):
-                if ((unsigned)indx < (nbytes>>2)) {
-                    int32 *slp;
-
-                    slp = (int32 *)(pFirst + (indx<<2));
-                    if (__isSmallInteger(anObject)) {
-                        *slp = __intVal(anObject);
-                        RETURN ( anObject );
-                    }
-                    n = __signedLongIntVal(anObject);
-                    /*
-                     * zero means failure for an int larger than 4 bytes
-                     * (would be a smallInteger)
-                     */
-                    if (n) {
-                        *slp = n;
-                        RETURN ( anObject );
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(LONGARRAY):
-                if ((unsigned)indx < (nbytes>>2)) {
-                    unsigned int32 *lp;
-
-                    lp = (unsigned int32 *)(pFirst + (indx<<2));
-                    if (anObject == __mkSmallInteger(0)) {
-                        *lp = 0;
-                        RETURN ( anObject );
-                    }
-                    u = __longIntVal(anObject);
-                    /*
-                     * zero means failure for an int larger than 4 bytes
-                     * (would be a smallInteger)
-                     */
-                    if (u) {
-                        *lp = u;
-                        RETURN ( anObject );
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(SLONGLONGARRAY):
+		if ((unsigned)indx < (nbytes / sizeof(double))) {
+		    double *dp;
+
+		    dp = (double *)pFirst + indx;
+		    if (anObject != nil) {
+			if (! __isSmallInteger(anObject)) {
+			    if (__qIsFloatLike(anObject)) {
+				*dp = __floatVal(anObject);
+				RETURN ( anObject );
+			    }
+			    if (__qIsShortFloat(anObject)) {
+				*dp = (double)__shortFloatVal(anObject);
+				RETURN ( anObject );
+			    }
+			} else {
+			    *dp = (double) __intVal(anObject);
+			    RETURN ( anObject );
+			}
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(WORDARRAY):
+		if (__isSmallInteger(anObject)) {
+		    val = __intVal(anObject);
+		    if ((unsigned)val <= 0xFFFF) {
+			if ((unsigned)indx < (nbytes>>1)) {
+			    unsigned short *sp;
+
+			    sp = (unsigned short *)(pFirst + (indx<<1));
+			    *sp = val;
+			    RETURN ( anObject );
+			}
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(SWORDARRAY):
+		if (__isSmallInteger(anObject)) {
+		    val = __intVal(anObject);
+		    if ((val >= -32768) && (val < 32768)) {
+			if ((unsigned)indx < (nbytes>>1)) {
+			    short *ssp;
+
+			    ssp = (short *)(pFirst + (indx<<1));
+			    *ssp = val;
+			    RETURN ( anObject );
+			}
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(SLONGARRAY):
+		if ((unsigned)indx < (nbytes>>2)) {
+		    int32 *slp;
+
+		    slp = (int32 *)(pFirst + (indx<<2));
+		    if (__isSmallInteger(anObject)) {
+			*slp = __intVal(anObject);
+			RETURN ( anObject );
+		    }
+		    n = __signedLongIntVal(anObject);
+		    /*
+		     * zero means failure for an int larger than 4 bytes
+		     * (would be a smallInteger)
+		     */
+		    if (n) {
+			*slp = n;
+			RETURN ( anObject );
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(LONGARRAY):
+		if ((unsigned)indx < (nbytes>>2)) {
+		    unsigned int32 *lp;
+
+		    lp = (unsigned int32 *)(pFirst + (indx<<2));
+		    if (anObject == __mkSmallInteger(0)) {
+			*lp = 0;
+			RETURN ( anObject );
+		    }
+		    u = __longIntVal(anObject);
+		    /*
+		     * zero means failure for an int larger than 4 bytes
+		     * (would be a smallInteger)
+		     */
+		    if (u) {
+			*lp = u;
+			RETURN ( anObject );
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(SLONGLONGARRAY):
 #ifdef __NEED_LONGLONG_ALIGN
-                if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
-                    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
-
-                    pFirst += delta;
-                    nbytes -= delta;
-                }
+		if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
+		    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
+
+		    pFirst += delta;
+		    nbytes -= delta;
+		}
 #endif
-                if ((unsigned)indx < (nbytes>>3)) {
-                    __int64__ ll;
-                    __int64__ *sllp;
-
-                    sllp = (__int64__ *)(pFirst + (indx<<3));
-
-                    if (anObject == __mkSmallInteger(0)) {
-                        ll.lo = ll.hi = 0;
-                        *sllp = ll;
-                        RETURN ( anObject );
-                    }
-                    if (__signedLong64IntVal(anObject, &ll)) {
-                        *sllp = ll;
-                        RETURN ( anObject );
-                    }
-                }
-                break;
-
-            case __MASKSMALLINT(LONGLONGARRAY):
+		if ((unsigned)indx < (nbytes>>3)) {
+		    __int64__ ll;
+		    __int64__ *sllp;
+
+		    sllp = (__int64__ *)(pFirst + (indx<<3));
+
+		    if (anObject == __mkSmallInteger(0)) {
+			ll.lo = ll.hi = 0;
+			*sllp = ll;
+			RETURN ( anObject );
+		    }
+		    if (__signedLong64IntVal(anObject, &ll)) {
+			*sllp = ll;
+			RETURN ( anObject );
+		    }
+		}
+		break;
+
+	    case __MASKSMALLINT(LONGLONGARRAY):
 #ifdef __NEED_LONGLONG_ALIGN
-                if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
-                    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
-
-                    pFirst += delta;
-                    nbytes -= delta;
-                }
+		if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
+		    int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
+
+		    pFirst += delta;
+		    nbytes -= delta;
+		}
 #endif
-                if ((unsigned)indx < (nbytes>>3)) {
-                    __uint64__ ll;
-                    __uint64__ *llp;
-
-                    llp = (__uint64__ *)(pFirst + (indx<<3));
-                    if (anObject == __mkSmallInteger(0)) {
-                        ll.lo = ll.hi = 0;
-                        *llp = ll;
-                        RETURN ( anObject );
-                    }
-                    if (__unsignedLong64IntVal(anObject, &ll)) {
-                        *llp = ll;
-                        RETURN ( anObject );
-                    }
-                }
-                break;
-        }
+		if ((unsigned)indx < (nbytes>>3)) {
+		    __uint64__ ll;
+		    __uint64__ *llp;
+
+		    llp = (__uint64__ *)(pFirst + (indx<<3));
+		    if (anObject == __mkSmallInteger(0)) {
+			ll.lo = ll.hi = 0;
+			*llp = ll;
+			RETURN ( anObject );
+		    }
+		    if (__unsignedLong64IntVal(anObject, &ll)) {
+			*llp = ll;
+			RETURN ( anObject );
+		    }
+		}
+		break;
+	}
     }
 %}.
     index isInteger ifFalse:[
-        "
-         the index should be an integer number
-        "
-        ^ self indexNotInteger:index
+	"
+	 the index should be an integer number
+	"
+	^ self indexNotInteger:index
     ].
     (index between:1 and:self size) ifFalse:[
-        "
-         the index is less than 1 or greater than the size of the
-         receiver collection
-        "
-        ^ self subscriptBoundsError:index
+	"
+	 the index is less than 1 or greater than the size of the
+	 receiver collection
+	"
+	^ self subscriptBoundsError:index
     ].
     (self class isFloatsOrDoubles) ifTrue:[
-        anObject isNumber ifTrue:[
-            ^ self basicAt:index put:(anObject asFloat)
-        ]
+	anObject isNumber ifTrue:[
+	    ^ self basicAt:index put:(anObject asFloat)
+	]
     ].
     anObject isInteger ifFalse:[
-        "
-         the object to put into the receiver collection
-         should be an integer number
-        "
-        ^ self elementNotInteger
+	"
+	 the object to put into the receiver collection
+	 should be an integer number
+	"
+	^ self elementNotInteger
     ].
     "
      the object to put into the receiver collection
@@ -1236,56 +1236,56 @@
     REGISTER OBJ cls;
 
     if (__isSmallInteger(index)) {
-        slf = self;
-        if (__isNonNilObject(slf)) {
-            unsigned char *pFirst;
-            int nIndex;
-
-            cls = __qClass(slf);
-
-            pFirst = __byteArrayVal(slf);
-            pFirst += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
-            nIndex = __byteArraySize(slf);
-            indx = __intVal(index) - 1;
-
-            switch ((INT)(__ClassInstPtr(cls)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
-                case __MASKSMALLINT(DOUBLEARRAY):
+	slf = self;
+	if (__isNonNilObject(slf)) {
+	    unsigned char *pFirst;
+	    int nIndex;
+
+	    cls = __qClass(slf);
+
+	    pFirst = __byteArrayVal(slf);
+	    pFirst += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
+	    nIndex = __byteArraySize(slf);
+	    indx = __intVal(index) - 1;
+
+	    switch ((INT)(__ClassInstPtr(cls)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
+		case __MASKSMALLINT(DOUBLEARRAY):
 #ifdef __NEED_DOUBLE_ALIGN
-                    if ((INT)pFirst & (__DOUBLE_ALIGN-1)) {
-                        int delta = __DOUBLE_ALIGN - ((INT)pFirst & (__DOUBLE_ALIGN-1));
-
-                        pFirst += delta;
-                        nIndex -= delta;
-                    }
+		    if ((INT)pFirst & (__DOUBLE_ALIGN-1)) {
+			int delta = __DOUBLE_ALIGN - ((INT)pFirst & (__DOUBLE_ALIGN-1));
+
+			pFirst += delta;
+			nIndex -= delta;
+		    }
 #endif
-                    /* fall into */
-                case __MASKSMALLINT(BYTEARRAY):
-                case __MASKSMALLINT(WORDARRAY):
-                case __MASKSMALLINT(LONGARRAY):
-                case __MASKSMALLINT(SWORDARRAY):
-                case __MASKSMALLINT(SLONGARRAY):
-                case __MASKSMALLINT(FLOATARRAY):
-                    if ((unsigned)indx < (unsigned)nIndex) {
-                        RETURN ( __mkSmallInteger( (INT)(pFirst[indx])) );
-                    }
-                    break;
-
-                case __MASKSMALLINT(LONGLONGARRAY):
-                case __MASKSMALLINT(SLONGLONGARRAY):
+		    /* fall into */
+		case __MASKSMALLINT(BYTEARRAY):
+		case __MASKSMALLINT(WORDARRAY):
+		case __MASKSMALLINT(LONGARRAY):
+		case __MASKSMALLINT(SWORDARRAY):
+		case __MASKSMALLINT(SLONGARRAY):
+		case __MASKSMALLINT(FLOATARRAY):
+		    if ((unsigned)indx < (unsigned)nIndex) {
+			RETURN ( __mkSmallInteger( (INT)(pFirst[indx])) );
+		    }
+		    break;
+
+		case __MASKSMALLINT(LONGLONGARRAY):
+		case __MASKSMALLINT(SLONGLONGARRAY):
 #ifdef __NEED_LONGLONG_ALIGN
-                    if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
-                        int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
-
-                        pFirst += delta;
-                        nIndex -= delta;
-                    }
+		    if ((INT)pFirst & (__LONGLONG_ALIGN-1)) {
+			int delta = __LONGLONG_ALIGN - ((INT)pFirst & (__LONGLONG_ALIGN-1));
+
+			pFirst += delta;
+			nIndex -= delta;
+		    }
 #endif
-                    if ((unsigned)indx < (unsigned)nIndex) {
-                        RETURN ( __mkSmallInteger( (INT)(pFirst[indx])) );
-                    }
-                    break;
-            }
-        }
+		    if ((unsigned)indx < (unsigned)nIndex) {
+			RETURN ( __mkSmallInteger( (INT)(pFirst[indx])) );
+		    }
+		    break;
+	    }
+	}
     }
 %}.
     "/ index not integer or index out of range
@@ -1318,33 +1318,33 @@
     REGISTER OBJ cls;
 
     if (__bothSmallInteger(index, byteValue)) {
-        val = __intVal(byteValue);
-        if ((unsigned)(val) <= 0xFF /* i.e. (val >= 0) && (val <= 255) */) {
-            slf = self;
-            if (__isNonNilObject(slf)) {
-                cls = __qClass(slf);
-
-                indx = __intVal(index) - 1;
-                switch ((INT)(__ClassInstPtr(cls)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
-                    case __MASKSMALLINT(BYTEARRAY):
-                    case __MASKSMALLINT(WORDARRAY):
-                    case __MASKSMALLINT(LONGARRAY):
-                    case __MASKSMALLINT(SWORDARRAY):
-                    case __MASKSMALLINT(SLONGARRAY):
-                    case __MASKSMALLINT(LONGLONGARRAY):
-                    case __MASKSMALLINT(SLONGLONGARRAY):
-                    case __MASKSMALLINT(FLOATARRAY):
-                    case __MASKSMALLINT(DOUBLEARRAY):
-                        indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
-                        nIndex = __byteArraySize(slf);
-                        if ((unsigned)indx < (unsigned)nIndex) {
-                            __ByteArrayInstPtr(slf)->ba_element[indx] = val;
-                            RETURN ( byteValue );
-                        }
-                        break;
-                }
-            }
-        }
+	val = __intVal(byteValue);
+	if ((unsigned)(val) <= 0xFF /* i.e. (val >= 0) && (val <= 255) */) {
+	    slf = self;
+	    if (__isNonNilObject(slf)) {
+		cls = __qClass(slf);
+
+		indx = __intVal(index) - 1;
+		switch ((INT)(__ClassInstPtr(cls)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
+		    case __MASKSMALLINT(BYTEARRAY):
+		    case __MASKSMALLINT(WORDARRAY):
+		    case __MASKSMALLINT(LONGARRAY):
+		    case __MASKSMALLINT(SWORDARRAY):
+		    case __MASKSMALLINT(SLONGARRAY):
+		    case __MASKSMALLINT(LONGLONGARRAY):
+		    case __MASKSMALLINT(SLONGLONGARRAY):
+		    case __MASKSMALLINT(FLOATARRAY):
+		    case __MASKSMALLINT(DOUBLEARRAY):
+			indx += __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
+			nIndex = __byteArraySize(slf);
+			if ((unsigned)indx < (unsigned)nIndex) {
+			    __ByteArrayInstPtr(slf)->ba_element[indx] = val;
+			    RETURN ( byteValue );
+			}
+			break;
+		}
+	    }
+	}
     }
 %}.
     "/ index not integer or index out of range
@@ -1369,22 +1369,22 @@
     int idx, ninstvars;
 
     if (__isSmallInteger(index)) {
-        myClass = __Class(self);
-        idx = __intVal(index) - 1;
-        /*
-         * do not allow returning of non-object fields.
-         * if subclass did not make privisions for that,
-         * we wont do so here ...
-         */
-        if (((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(NONOBJECT_INSTS))) {
-            if (idx == 0) {
-                RETURN ( nil )
-            }
-        }
-        ninstvars = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
-        if ((idx >= 0) && (idx < ninstvars)) {
-            RETURN ( __InstPtr(self)->i_instvars[idx] );
-        }
+	myClass = __Class(self);
+	idx = __intVal(index) - 1;
+	/*
+	 * do not allow returning of non-object fields.
+	 * if subclass did not make privisions for that,
+	 * we wont do so here ...
+	 */
+	if (((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(NONOBJECT_INSTS))) {
+	    if (idx == 0) {
+		RETURN ( nil )
+	    }
+	}
+	ninstvars = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
+	if ((idx >= 0) && (idx < ninstvars)) {
+	    RETURN ( __InstPtr(self)->i_instvars[idx] );
+	}
     }
 %}.
     ^ self indexNotIntegerOrOutOfBounds:index
@@ -1401,24 +1401,24 @@
     int idx, ninstvars;
 
     if (__isSmallInteger(index)) {
-        myClass = __Class(self);
-        idx = __intVal(index) - 1;
-        ninstvars = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
-        /*
-         * do not allow setting of non-object fields.
-         * if subclass did not make privisions for that,
-         * we wont do so here ...
-         */
-        if (((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(NONOBJECT_INSTS))) {
-            if (idx == 0) {
-                RETURN ( nil )
-            }
-        }
-        if ((idx >= 0) && (idx < ninstvars)) {
-            __InstPtr(self)->i_instvars[idx] = value;
-            __STORE(self, value);
-            RETURN ( value );
-        }
+	myClass = __Class(self);
+	idx = __intVal(index) - 1;
+	ninstvars = __intVal(__ClassInstPtr(myClass)->c_ninstvars);
+	/*
+	 * do not allow setting of non-object fields.
+	 * if subclass did not make privisions for that,
+	 * we wont do so here ...
+	 */
+	if (((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(NONOBJECT_INSTS))) {
+	    if (idx == 0) {
+		RETURN ( nil )
+	    }
+	}
+	if ((idx >= 0) && (idx < ninstvars)) {
+	    __InstPtr(self)->i_instvars[idx] = value;
+	    __STORE(self, value);
+	    RETURN ( value );
+	}
     }
 %}.
     ^ self indexNotIntegerOrOutOfBounds:index
@@ -1435,7 +1435,7 @@
 
     idx := self class instVarOffsetOf:name.
     idx isNil ifTrue:[
-        ^ self errorKeyNotFound:name.
+	^ self errorKeyNotFound:name.
     ].
     ^ self instVarAt:idx.
 
@@ -1487,7 +1487,7 @@
 
     idx := self class instVarOffsetOf:name.
     idx isNil ifTrue:[
-        ^ self errorKeyNotFound:name.
+	^ self errorKeyNotFound:name.
     ].
     ^ self instVarAt:idx put:value.
 
@@ -1539,7 +1539,7 @@
 
     attrs := self objectAttributes.
     (attrs notNil and:[attrs size > 0]) ifTrue:[
-        ^ attrs at:attributeKey ifAbsent:[]
+	^ attrs at:attributeKey ifAbsent:[]
     ].
     ^ nil
 
@@ -1553,16 +1553,16 @@
     "/ must do this save from interrupts, since the attributes collection
     "/ is possibly accessed from multiple threads ...
     [
-        | attrs |
-
-        attrs := self objectAttributes.
-        (attrs isNil or:[attrs size == 0]) ifTrue:[
-            attrs := WeakIdentityDictionary new.
-            attrs at:attributeKey put:anObject.
-            self objectAttributes:attrs.
-        ] ifFalse:[
-            attrs at:attributeKey put:anObject.
-        ].
+	| attrs |
+
+	attrs := self objectAttributes.
+	(attrs isNil or:[attrs size == 0]) ifTrue:[
+	    attrs := WeakIdentityDictionary new.
+	    attrs at:attributeKey put:anObject.
+	    self objectAttributes:attrs.
+	] ifFalse:[
+	    attrs at:attributeKey put:anObject.
+	].
     ] valueUninterruptably
 
     "Attaching additional attributes (slots) to an arbitrary object:
@@ -1603,24 +1603,24 @@
     "/ is possibly accessed from multiple threads.
 
     (OperatingSystem blockInterrupts) ifTrue:[
-        "/ the common case - already blocked
-
-        (aCollection isNil or:[aCollection isEmpty]) ifTrue:[
-            ObjectAttributes removeKey:self ifAbsent:nil
-        ] ifFalse:[
-            ObjectAttributes at:self put:aCollection
-        ].
-        ^ self
+	"/ the common case - already blocked
+
+	(aCollection isNil or:[aCollection isEmpty]) ifTrue:[
+	    ObjectAttributes removeKey:self ifAbsent:nil
+	] ifFalse:[
+	    ObjectAttributes at:self put:aCollection
+	].
+	^ self
     ].
 
     [
-        (aCollection isNil or:[aCollection isEmpty]) ifTrue:[
-            ObjectAttributes removeKey:self ifAbsent:nil
-        ] ifFalse:[
-            ObjectAttributes at:self put:aCollection
-        ].
+	(aCollection isNil or:[aCollection isEmpty]) ifTrue:[
+	    ObjectAttributes removeKey:self ifAbsent:nil
+	] ifFalse:[
+	    ObjectAttributes at:self put:aCollection
+	].
     ] ensure:[
-        OperatingSystem unblockInterrupts
+	OperatingSystem unblockInterrupts
     ]
 
     "Created: / 22.1.1998 / 21:29:35 / av"
@@ -1633,17 +1633,17 @@
     "/ must do this save from interrupts, since the attributes collection
     "/ is possibly accessed from multiple threads.
     [
-        |attrs n a|
-
-        attrs := self objectAttributes.
-        attrs size == 0 ifTrue:[
-            self objectAttributes:nil
-        ] ifFalse:[
-            attrs removeKey:attributeKey ifAbsent:nil.
-            attrs size == 0 ifTrue:[
-                self objectAttributes:nil
-            ]
-        ]
+	|attrs n a|
+
+	attrs := self objectAttributes.
+	attrs size == 0 ifTrue:[
+	    self objectAttributes:nil
+	] ifFalse:[
+	    attrs removeKey:attributeKey ifAbsent:nil.
+	    attrs size == 0 ifTrue:[
+		self objectAttributes:nil
+	    ]
+	]
     ] valueUninterruptably
 
     "Created: / 22.1.1998 / 21:29:39 / av"
@@ -1657,7 +1657,7 @@
     "send a message with selector aSelectorSymbol to all my dependents"
 
     self dependentsDo:[:dependent |
-        dependent perform:aSelectorSymbol
+	dependent perform:aSelectorSymbol
     ]
 !
 
@@ -1666,7 +1666,7 @@
      argument anArgument to all my dependents."
 
     self dependentsDo:[:dependent |
-        dependent perform:aSelectorSymbol with:anArgument
+	dependent perform:aSelectorSymbol with:anArgument
     ]
 !
 
@@ -1675,7 +1675,7 @@
      grant the request, and return true if so"
 
     self dependentsDo:[:dependent |
-        dependent updateRequest ifFalse:[^ false].
+	dependent updateRequest ifFalse:[^ false].
     ].
     ^ true
 !
@@ -1685,7 +1685,7 @@
      grant the request, and return true if so"
 
     self dependentsDo:[:dependent |
-        (dependent updateRequest:aParameter) ifFalse:[^ false].
+	(dependent updateRequest:aParameter) ifFalse:[^ false].
     ].
     ^ true
 !
@@ -1697,9 +1697,9 @@
      about to send the change request."
 
     self dependentsDo:[:dependent |
-        dependent == anObject ifFalse:[
-            (dependent updateRequest:aParameter) ifFalse:[^ false].
-        ]
+	dependent == anObject ifFalse:[
+	    (dependent updateRequest:aParameter) ifFalse:[^ false].
+	]
     ].
     ^ true
 !
@@ -1711,9 +1711,9 @@
      about to send the change request."
 
     self dependentsDo:[:dependent |
-        dependent == anObject ifFalse:[
-            (dependent updateRequest) ifFalse:[^ false].
-        ]
+	dependent == anObject ifFalse:[
+	    (dependent updateRequest) ifFalse:[^ false].
+	]
     ].
     ^ true
 !
@@ -1740,7 +1740,7 @@
      and anArgument as arguments."
 
     self dependentsDo:[:dependent |
-        dependent update:aParameter with:anArgument from:self
+	dependent update:aParameter with:anArgument from:self
     ]
 !
 
@@ -1795,7 +1795,7 @@
 
     (self dependents includesIdentical:someone)
     ifFalse:[
-        ^ aBlock value.
+	^ aBlock value.
     ].
     self removeDependent:someone.
     ^ aBlock ensure:[ self addDependent:someone ]
@@ -1815,9 +1815,9 @@
 = anObject
     "return true, if the receiver and the arg have the same structure.
      Notice:
-        This method is partially open coded (inlined) by the compiler(s)
-        identical objects are always considered equal.
-        redefining it may not work as expected."
+	This method is partially open coded (inlined) by the compiler(s)
+	identical objects are always considered equal.
+	redefining it may not work as expected."
 
     ^ self == anObject
 !
@@ -1826,8 +1826,8 @@
     "return true, if the receiver and the arg are the same object.
      Never redefine this in any class.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
 %{  /* NOCONTEXT */
 
@@ -1845,28 +1845,28 @@
 
     myClass := self class.
     myClass isVariable ifTrue:[
-        sz := self basicSize.
-
-        "compare the indexed variables"
-        1 to:sz do:[:i |
-            val := self basicAt:i.
-            val isLiteral ifTrue:[
-                val = (anObject basicAt:i) ifFalse:[^ false].
-            ] ifFalse:[
-                (val deepSameContentsAs:(anObject basicAt:i)) ifFalse:[^ false].
-            ]
-        ]
+	sz := self basicSize.
+
+	"compare the indexed variables"
+	1 to:sz do:[:i |
+	    val := self basicAt:i.
+	    val isLiteral ifTrue:[
+		val = (anObject basicAt:i) ifFalse:[^ false].
+	    ] ifFalse:[
+		(val deepSameContentsAs:(anObject basicAt:i)) ifFalse:[^ false].
+	    ]
+	]
     ].
 
     "compare the instance variables"
     sz := myClass instSize.
     1 to:sz do:[:i |
-        val := self instVarAt:i.
-        val isLiteral ifTrue:[
-            val = (anObject instVarAt:i) ifFalse:[^ false].
-        ] ifFalse:[
-            (val deepSameContentsAs:(anObject instVarAt:i)) ifFalse:[^ false].
-        ]
+	val := self instVarAt:i.
+	val isLiteral ifTrue:[
+	    val = (anObject instVarAt:i) ifFalse:[^ false].
+	] ifFalse:[
+	    (val deepSameContentsAs:(anObject instVarAt:i)) ifFalse:[^ false].
+	]
     ].
 
     ^ true
@@ -1905,25 +1905,25 @@
     static unsigned nextHash = 0;
 
     if (__isNonNilObject(self)) {
-        hash = __GET_HASH(self);
-        if (hash == 0) {
-            /* has no hash yet */
-
-            if (++nextHash > __MAX_HASH__) {
-                nextHash = 1;
-            }
-            hash = nextHash;
-            __SET_HASH(self, hash);
-        }
-
-        /*
-         * now, we got 11 bits for hashing;
-         * make it as large as possible; since most hashers use the returned
-         * key and take it modulo some prime number, this will allow for
-         * better distribution (i.e. bigger empty spaces) in hashed collection.
-         */
-        hash = __MAKE_HASH__(hash);
-        RETURN ( __mkSmallInteger(hash) );
+	hash = __GET_HASH(self);
+	if (hash == 0) {
+	    /* has no hash yet */
+
+	    if (++nextHash > __MAX_HASH__) {
+		nextHash = 1;
+	    }
+	    hash = nextHash;
+	    __SET_HASH(self, hash);
+	}
+
+	/*
+	 * now, we got 11 bits for hashing;
+	 * make it as large as possible; since most hashers use the returned
+	 * key and take it modulo some prime number, this will allow for
+	 * better distribution (i.e. bigger empty spaces) in hashed collection.
+	 */
+	hash = __MAKE_HASH__(hash);
+	RETURN ( __mkSmallInteger(hash) );
     }
 %}.
     ^ 0 "never reached, since redefined in UndefinedObject and SmallInteger"
@@ -1943,53 +1943,53 @@
     static unsigned INT nextClassHash = 0;
 
     if (__isNonNilObject(self)) {
-        /*
-         * my own identityHash
-         */
-        hash1 = __GET_HASH(self);
-        if (hash1 == 0) {
-            /* has no hash yet */
-
-            if (++nextHash > __MAX_HASH__) {
-                nextHash = 1;
-            }
-            hash1 = nextHash;
-            __SET_HASH(self, hash1);
-        }
-        /*
-         * my classes identityHash
-         */
-        o = __qClass(self);
-        hash2 = __GET_HASH(o);
-        if (hash2 == 0) {
-            /* has no hash yet */
-
-            if (++nextClassHash > __MAX_HASH__) {
-                nextClassHash = 1;
-            }
-            hash2 = nextClassHash;
-            __SET_HASH(o, hash2);
-        }
-
-        /*
-         * some bits of my size
-         */
-        sz = __qSize(self);
-
-        /*
-         * now, we got 11 + 11 + 8 bits for hashing;
-         * make it as large as possible; since most hashers use the returned
-         * key and take it modulo some prime number, this will allow for
-         * better distribution (i.e. bigger empty spaces) in hashed collection.
-         */
-        hash = (hash1 << 11) | hash2;           /* 22 bits */
-        hash = (hash << 8) | (sz & 0xFC);       /* 30 bits */
-
-        while ((hash & 0x20000000) == 0) {
-            hash <<= 1;
-        }
-
-        RETURN ( __mkSmallInteger(hash) );
+	/*
+	 * my own identityHash
+	 */
+	hash1 = __GET_HASH(self);
+	if (hash1 == 0) {
+	    /* has no hash yet */
+
+	    if (++nextHash > __MAX_HASH__) {
+		nextHash = 1;
+	    }
+	    hash1 = nextHash;
+	    __SET_HASH(self, hash1);
+	}
+	/*
+	 * my classes identityHash
+	 */
+	o = __qClass(self);
+	hash2 = __GET_HASH(o);
+	if (hash2 == 0) {
+	    /* has no hash yet */
+
+	    if (++nextClassHash > __MAX_HASH__) {
+		nextClassHash = 1;
+	    }
+	    hash2 = nextClassHash;
+	    __SET_HASH(o, hash2);
+	}
+
+	/*
+	 * some bits of my size
+	 */
+	sz = __qSize(self);
+
+	/*
+	 * now, we got 11 + 11 + 8 bits for hashing;
+	 * make it as large as possible; since most hashers use the returned
+	 * key and take it modulo some prime number, this will allow for
+	 * better distribution (i.e. bigger empty spaces) in hashed collection.
+	 */
+	hash = (hash1 << 11) | hash2;           /* 22 bits */
+	hash = (hash << 8) | (sz & 0xFC);       /* 30 bits */
+
+	while ((hash & 0x20000000) == 0) {
+	    hash <<= 1;
+	}
+
+	RETURN ( __mkSmallInteger(hash) );
     }
 %}.
     "never reached, since UndefinedObject and SmallInteger are not hashed upon in binary storage"
@@ -2008,13 +2008,13 @@
 
     myClass := self class.
     myClass isVariable ifTrue:[
-        sz := self basicSize.
-        anObject basicSize >= sz ifFalse:[^ false].
-
-        "compare the indexed variables"
-        1 to:sz do:[:i |
-            (self basicAt:i) == (anObject basicAt:i) ifFalse:[^ false].
-        ]
+	sz := self basicSize.
+	anObject basicSize >= sz ifFalse:[^ false].
+
+	"compare the indexed variables"
+	1 to:sz do:[:i |
+	    (self basicAt:i) == (anObject basicAt:i) ifFalse:[^ false].
+	]
     ].
 
     "compare the instance variables"
@@ -2022,7 +2022,7 @@
     anObject instSize >= sz ifFalse:[^ false].
 
     1 to:sz do:[:i |
-        (self instVarAt:i) == (anObject instVarAt:i) ifFalse:[^ false].
+	(self instVarAt:i) == (anObject instVarAt:i) ifFalse:[^ false].
     ].
 
     ^ true
@@ -2039,9 +2039,9 @@
 ~= anObject
     "return true, if the receiver and the arg do not have the same structure.
      Notice:
-        This method is partially open coded (inlined) by the compiler(s)
-        identical objects are never considered unequal.
-        redefining it may not work as expected."
+	This method is partially open coded (inlined) by the compiler(s)
+	identical objects are never considered unequal.
+	redefining it may not work as expected."
 
     ^ (self = anObject) not
 !
@@ -2050,8 +2050,8 @@
     "return true, if the receiver and the arg are not the same object.
      Never redefine this in any class.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
 %{  /* NOCONTEXT */
     RETURN ( (self == anObject) ? false : true );
@@ -2155,26 +2155,26 @@
 
     myClass := self class.
     myClass isVariable ifTrue:[
-        sz := self basicSize.
-
-        "process the indexed instance variables"
-        1 to:sz do:[:i |
-            t := anObject basicAt:i.
-            aSymbol ~~ #yourself ifTrue:[
-                t := t perform:aSymbol.
-            ].
-            self basicAt:i put:t.
-        ]
+	sz := self basicSize.
+
+	"process the indexed instance variables"
+	1 to:sz do:[:i |
+	    t := anObject basicAt:i.
+	    aSymbol ~~ #yourself ifTrue:[
+		t := t perform:aSymbol.
+	    ].
+	    self basicAt:i put:t.
+	]
     ].
 
     "process the named instance variables"
     sz := myClass instSize.
     1 to:sz do:[:i |
-        t := anObject instVarAt:i.
-        aSymbol ~~ #yourself ifTrue:[
-            t := t perform:aSymbol
-        ].
-        self instVarAt:i put:t
+	t := anObject instVarAt:i.
+	aSymbol ~~ #yourself ifTrue:[
+	    t := t perform:aSymbol
+	].
+	self instVarAt:i put:t
     ].
 
     ^ self
@@ -2192,36 +2192,36 @@
     myInfo := self class instanceVariableOffsets.
     otherInfo := aPrototype class instanceVariableOffsets.
     myInfo keysAndValuesDo:[:name :index | |varIndexAssoc|
-        varIndexAssoc := otherInfo at:name ifAbsent:[].
-        varIndexAssoc notNil ifTrue:[
-            self instVarAt:index put:(aPrototype instVarAt:(varIndexAssoc value))
-        ]
+	varIndexAssoc := otherInfo at:name ifAbsent:[].
+	varIndexAssoc notNil ifTrue:[
+	    self instVarAt:index put:(aPrototype instVarAt:(varIndexAssoc value))
+	]
     ].
     self isVariable ifTrue:[
-        1 to:(self basicSize min:aPrototype basicSize) do:[:index |
-            self basicAt:index put:(aPrototype basicAt:index)
-        ].
+	1 to:(self basicSize min:aPrototype basicSize) do:[:index |
+	    self basicAt:index put:(aPrototype basicAt:index)
+	].
     ].
 
     "
      Class withoutUpdatingChangesDo:[
-         Point subclass:#Point3D
-           instanceVariableNames:'z'
-           classVariableNames:''
-           poolDictionaries:''
-           category:'testing'.
-         (Point3D new cloneInstanceVariablesFrom:1@2) inspect.
+	 Point subclass:#Point3D
+	   instanceVariableNames:'z'
+	   classVariableNames:''
+	   poolDictionaries:''
+	   category:'testing'.
+	 (Point3D new cloneInstanceVariablesFrom:1@2) inspect.
      ]
     "
 
     "
      Class withoutUpdatingChangesDo:[
-         Point variableSubclass:#Point3D
-           instanceVariableNames:'z'
-           classVariableNames:''
-           poolDictionaries:''
-           category:'testing'.
-         ((Point3D new:2) cloneInstanceVariablesFrom:#(1 2 3)) inspect.
+	 Point variableSubclass:#Point3D
+	   instanceVariableNames:'z'
+	   classVariableNames:''
+	   poolDictionaries:''
+	   category:'testing'.
+	 ((Point3D new:2) cloneInstanceVariablesFrom:#(1 2 3)) inspect.
      ]
     "
 
@@ -2229,19 +2229,19 @@
      |someObject|
 
      Class withoutUpdatingChangesDo:[
-         Object subclass:#TestClass1
-           instanceVariableNames:'foo bar'
-           classVariableNames:''
-           poolDictionaries:''
-           category:'testing'.
-         someObject := TestClass1 new.
-         someObject instVarAt:1 put:'foo'; instVarAt:2 put:'bar'.
-         Object subclass:#TestClass2
-           instanceVariableNames:'bar foo'
-           classVariableNames:''
-           poolDictionaries:''
-           category:'testing'.
-         (TestClass2 new cloneInstanceVariablesFrom:someObject) inspect.
+	 Object subclass:#TestClass1
+	   instanceVariableNames:'foo bar'
+	   classVariableNames:''
+	   poolDictionaries:''
+	   category:'testing'.
+	 someObject := TestClass1 new.
+	 someObject instVarAt:1 put:'foo'; instVarAt:2 put:'bar'.
+	 Object subclass:#TestClass2
+	   instanceVariableNames:'bar foo'
+	   classVariableNames:''
+	   poolDictionaries:''
+	   category:'testing'.
+	 (TestClass2 new cloneInstanceVariablesFrom:someObject) inspect.
      ]
     "
 
@@ -2271,8 +2271,8 @@
 copyToLevel:level
     "a controlled deepCopy, where the number of levels can be specified.
      Notice:
-         This method DOES NOT handle cycles/self-refs and does NOT preserve object identity;
-         i.e. identical references in the source are copied multiple times into the copy."
+	 This method DOES NOT handle cycles/self-refs and does NOT preserve object identity;
+	 i.e. identical references in the source are copied multiple times into the copy."
 
     |newObject class index|
 
@@ -2282,16 +2282,16 @@
     newObject := self clone.
     newObject == self ifTrue: [^ self].
     class isVariable ifTrue:[
-        index := self basicSize.
-        [index > 0] whileTrue:[
-            newObject basicAt: index put: ((self basicAt: index) copyToLevel:(level-1)).
-            index := index - 1
-        ]
+	index := self basicSize.
+	[index > 0] whileTrue:[
+	    newObject basicAt: index put: ((self basicAt: index) copyToLevel:(level-1)).
+	    index := index - 1
+	]
     ].
     index := class instSize.
     [index > 0] whileTrue:[
-        newObject instVarAt: index put: ((self instVarAt: index) copyToLevel:(level-1)).
-        index := index - 1
+	newObject instVarAt: index put: ((self instVarAt: index) copyToLevel:(level-1)).
+	index := index - 1
     ].
     ^ newObject
 
@@ -2299,24 +2299,24 @@
      |a b|
 
      a := #(
-            '1.1'
-            '1.2'
-            '1.3'
-            (
-                '1.41'
-                '1.42'
-                '1.43'
-                    (
-                        '1.441'
-                        '1.442'
-                        '1.443'
-                        ( '1.4441' '1.4442' '1.4443' )
-                        '1.445'
-                    )
-                '1.45'
-            )
-            '1.5'
-           ).
+	    '1.1'
+	    '1.2'
+	    '1.3'
+	    (
+		'1.41'
+		'1.42'
+		'1.43'
+		    (
+			'1.441'
+			'1.442'
+			'1.443'
+			( '1.4441' '1.4442' '1.4443' )
+			'1.445'
+		    )
+		'1.45'
+	    )
+	    '1.5'
+	   ).
 
       b := a copyToLevel:1.
       self assert: ( (a at:1) == (b at:1) ).
@@ -2416,11 +2416,11 @@
 "/    ].
 
     myClass isVariable ifTrue:[
-        sz := self basicSize.
-        aCopy := myClass basicNew:sz.
+	sz := self basicSize.
+	aCopy := myClass basicNew:sz.
     ] ifFalse:[
-        sz := 0.
-        aCopy := myClass basicNew
+	sz := 0.
+	aCopy := myClass basicNew
     ].
     aCopy setHashFrom:self.
     aDictionary at:self put:aCopy.
@@ -2429,24 +2429,24 @@
      copy indexed instvars - if any
     "
     sz ~~ 0 ifTrue:[
-        myClass isBits ifTrue:[
-            "block-copy indexed instvars"
-            aCopy replaceFrom:1 to:sz with:self startingAt:1
-        ] ifFalse:[
-            "individual deep copy the indexed variables"
-            1 to:sz do:[:i |
-                iOrig := self basicAt:i.
-                iOrig notNil ifTrue:[
-                    "/ used to be dict-includesKey-ifTrue[dict-at:],
-                    "/ changed to use dict-at:ifAbsent:, to avoid double lookup in dictionary
-                    iCopy := aDictionary at:iOrig ifAbsent:nil.
-                    iCopy isNil ifTrue:[
-                        iCopy := iOrig deepCopyUsing:aDictionary postCopySelector:postCopySelector
-                    ].
-                    aCopy basicAt:i put:iCopy
-                ]
-            ]
-        ]
+	myClass isBits ifTrue:[
+	    "block-copy indexed instvars"
+	    aCopy replaceFrom:1 to:sz with:self startingAt:1
+	] ifFalse:[
+	    "individual deep copy the indexed variables"
+	    1 to:sz do:[:i |
+		iOrig := self basicAt:i.
+		iOrig notNil ifTrue:[
+		    "/ used to be dict-includesKey-ifTrue[dict-at:],
+		    "/ changed to use dict-at:ifAbsent:, to avoid double lookup in dictionary
+		    iCopy := aDictionary at:iOrig ifAbsent:nil.
+		    iCopy isNil ifTrue:[
+			iCopy := iOrig deepCopyUsing:aDictionary postCopySelector:postCopySelector
+		    ].
+		    aCopy basicAt:i put:iCopy
+		]
+	    ]
+	]
     ].
 
     "
@@ -2454,16 +2454,16 @@
     "
     sz := myClass instSize.
     1 to:sz do:[:i |
-        (self skipInstvarIndexInDeepCopy:i) ifFalse:[
-            iOrig := self instVarAt:i.
-            iOrig notNil ifTrue:[
-                iCopy := aDictionary at:iOrig ifAbsent:nil.
-                iCopy isNil ifTrue:[
-                    iCopy := iOrig deepCopyUsing:aDictionary postCopySelector:postCopySelector
-                ].
-                aCopy instVarAt:i put:iCopy
-            ]
-        ]
+	(self skipInstvarIndexInDeepCopy:i) ifFalse:[
+	    iOrig := self instVarAt:i.
+	    iOrig notNil ifTrue:[
+		iCopy := aDictionary at:iOrig ifAbsent:nil.
+		iCopy isNil ifTrue:[
+		    iCopy := iOrig deepCopyUsing:aDictionary postCopySelector:postCopySelector
+		].
+		aCopy instVarAt:i put:iCopy
+	    ]
+	]
     ].
     aCopy perform:postCopySelector with:self "ifNotUnderstood:[]".
     ^ aCopy
@@ -2499,9 +2499,9 @@
     REGISTER unsigned h;
 
     if (__isNonNilObject(self) && __isNonNilObject(anObject)) {
-        h = __GET_HASH(anObject);
-        __SET_HASH(self, h);
-        RETURN (self);
+	h = __GET_HASH(anObject);
+	__SET_HASH(self, h);
+	RETURN (self);
     }
 %}.
     self primitiveFailed    "neither receiver not arg may be nil or SmallInteger"
@@ -2526,54 +2526,54 @@
      */
     if (((flags & ~ARRAYMASK) == 0)
      && ((flags & ARRAYMASK) != WKPOINTERARRAY)) {
-        sz = __qSize(self);
-        __PROTECT__(self);
-        __qNew(theCopy, sz);    /* OBJECT ALLOCATION */
-        __UNPROTECT__(self);
-        if (theCopy) {
-            cls = __qClass(self);
-            spc = __qSpace(theCopy);
-
-            theCopy->o_class = cls; __STORE_SPC(theCopy, cls, spc);
-
-            sz = sz - OHDR_SIZE;
-            if (sz) {
-                char *src, *dst;
-
-                src = (char *)(__InstPtr(self)->i_instvars);
-                dst = (char *)(__InstPtr(theCopy)->i_instvars);
+	sz = __qSize(self);
+	__PROTECT__(self);
+	__qNew(theCopy, sz);    /* OBJECT ALLOCATION */
+	__UNPROTECT__(self);
+	if (theCopy) {
+	    cls = __qClass(self);
+	    spc = __qSpace(theCopy);
+
+	    theCopy->o_class = cls; __STORE_SPC(theCopy, cls, spc);
+
+	    sz = sz - OHDR_SIZE;
+	    if (sz) {
+		char *src, *dst;
+
+		src = (char *)(__InstPtr(self)->i_instvars);
+		dst = (char *)(__InstPtr(theCopy)->i_instvars);
 #ifdef bcopy4
-                {
-                    /* care for odd-number of longs */
-                    int nW = sz >> 2;
-
-                    if (sz & 3) {
-                        nW++;
-                    }
-
-                    bcopy4(src, dst, nW);
-                }
+		{
+		    /* care for odd-number of longs */
+		    int nW = sz >> 2;
+
+		    if (sz & 3) {
+			nW++;
+		    }
+
+		    bcopy4(src, dst, nW);
+		}
 #else
-                bcopy(src, dst, sz);
+		bcopy(src, dst, sz);
 #endif
 
-                flags &= ARRAYMASK;
-                if (flags == POINTERARRAY) {
-                    ninsts = __BYTES2OBJS__(sz);
-                } else {
-                    ninsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
-                }
-                if (ninsts) {
-                    do {
-                        OBJ el;
-
-                        el = __InstPtr(theCopy)->i_instvars[ninsts-1];
-                        __STORE_SPC(theCopy, el, spc);
-                    } while (--ninsts);
-                }
-            }
-            RETURN (theCopy);
-        }
+		flags &= ARRAYMASK;
+		if (flags == POINTERARRAY) {
+		    ninsts = __BYTES2OBJS__(sz);
+		} else {
+		    ninsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
+		}
+		if (ninsts) {
+		    do {
+			OBJ el;
+
+			el = __InstPtr(theCopy)->i_instvars[ninsts-1];
+			__STORE_SPC(theCopy, el, spc);
+		    } while (--ninsts);
+		}
+	    }
+	    RETURN (theCopy);
+	}
     }
 %}.
     "/ fallBack for special objects & memoryAllocation failure case
@@ -2593,9 +2593,9 @@
     |myClass aCopy|
 
     (myClass := self class) isVariable ifTrue:[
-        aCopy := myClass basicNew:(self basicSize).
+	aCopy := myClass basicNew:(self basicSize).
     ] ifFalse:[
-        aCopy := myClass basicNew
+	aCopy := myClass basicNew
     ].
 
     "copy the instance variables"
@@ -2628,9 +2628,9 @@
     |myClass aCopy|
 
     (myClass := self class) isVariable ifTrue:[
-        aCopy := myClass basicNew:(self basicSize).
+	aCopy := myClass basicNew:(self basicSize).
     ] ifFalse:[
-        aCopy := myClass basicNew
+	aCopy := myClass basicNew
     ].
 
     "copy the instance variables"
@@ -2650,8 +2650,8 @@
 
     "/ could still be a block or false.
     self
-        assert:aBooleanOrBlock
-        message:('Assertion failed in ' , thisContext sender printString)
+	assert:aBooleanOrBlock
+	message:('Assertion failed in ' , thisContext sender printString)
 !
 
 assert:aBooleanOrBlock message:messageIfFailing
@@ -2665,7 +2665,7 @@
     (Smalltalk at:#IgnoreAssertion ifAbsent:false) == true ifTrue:[^ self].
 
     (aBooleanOrBlock value) ifFalse:[
-        AssertionFailedError raiseRequestWith:self errorString:messageIfFailing
+	AssertionFailedError raiseRequestWith:self errorString:messageIfFailing
     ].
 
     "
@@ -2680,12 +2680,12 @@
      this method should NOT be redefined in subclasses."
 
     Inspector isNil ifTrue:[
-        "
-         for systems without GUI
-        "
-        self warn:'No Inspector defined (Inspector is nil).'
+	"
+	 for systems without GUI
+	"
+	self warn:'No Inspector defined (Inspector is nil).'
     ] ifFalse:[
-        Inspector openOn:self
+	Inspector openOn:self
     ]
 
     "Modified: 18.5.1996 / 15:43:25 / cg"
@@ -2705,9 +2705,9 @@
 
     "/ dont send #breakPoint:info: here - ask cg why.
     (self isBreakPointEnabled:someKey) ifTrue:[
-        ^ HaltSignal
-            raiseRequestWith:someKey
-            errorString:('Breakpoint encountered: %1' bindWith:someKey)
+	^ HaltSignal
+	    raiseRequestWith:someKey
+	    errorString:('Breakpoint encountered: %1' bindWith:someKey)
     ].
 
     "
@@ -2735,9 +2735,9 @@
     <resource: #skipInDebuggersWalkBack>
 
     (self isBreakPointEnabled:someKey) ifTrue:[
-        ^ HaltSignal
-            raiseRequestWith:someKey
-            errorString:(infoString bindWith:someKey)
+	^ HaltSignal
+	    raiseRequestWith:someKey
+	    errorString:(infoString bindWith:someKey)
     ].
 !
 
@@ -2767,7 +2767,7 @@
     <resource: #skipInDebuggersWalkBack>
 
     (self isBreakPointEnabled:someKey) ifTrue:[
-        aBlock value
+	aBlock value
     ].
 
     "
@@ -2787,10 +2787,10 @@
     "{ Pragma: +optSpace }"
 
     EnabledBreakPoints notNil ifTrue:[
-        EnabledBreakPoints remove:someKey ifAbsent:[].
-        EnabledBreakPoints isEmpty ifTrue:[
-            EnabledBreakPoints := nil
-        ].
+	EnabledBreakPoints remove:someKey ifAbsent:[].
+	EnabledBreakPoints isEmpty ifTrue:[
+	    EnabledBreakPoints := nil
+	].
     ].
 
     "
@@ -2807,7 +2807,7 @@
     "{ Pragma: +optSpace }"
 
     EnabledBreakPoints isNil ifTrue:[
-        EnabledBreakPoints := Set new.
+	EnabledBreakPoints := Set new.
     ].
     EnabledBreakPoints add:someKey.
 
@@ -2860,7 +2860,7 @@
 
     cls := self inspectorClass.
     cls isNil ifTrue:[
-        ^ self basicInspect
+	^ self basicInspect
     ].
     cls openOn:self
 
@@ -2891,7 +2891,7 @@
 "/    something = OperatingSystem getLoginName ifTrue:[^ true].
 "/    something = 'testThis' ifTrue:[^ true].
     EncounteredBreakPoints notNil ifTrue:[
-        EncounteredBreakPoints add:someKey
+	EncounteredBreakPoints add:someKey
     ].
 
     ^ (EnabledBreakPoints notNil and:[ EnabledBreakPoints includes:someKey ])
@@ -2922,18 +2922,18 @@
     "for compatibility & debugging support:
      check if the receiver isKindOf:aClass and raise an error if not.
      Notice:
-        it is VERY questionable, if it makes sense to add manual
-        type checks to a dynamically typed language like smalltalk.
-        It will, at least, slow down performance,
-        make your code less reusable and clutter your code with stupid sends
-        of this selector. Also, read the comment in isKindOf:, regarding the
-        use of isXXX check methods.
+	it is VERY questionable, if it makes sense to add manual
+	type checks to a dynamically typed language like smalltalk.
+	It will, at least, slow down performance,
+	make your code less reusable and clutter your code with stupid sends
+	of this selector. Also, read the comment in isKindOf:, regarding the
+	use of isXXX check methods.
      You see: The author does not like this at all ..."
 
     <resource: #skipInDebuggersWalkBack>
 
     (self isKindOf:aClass) ifFalse:[
-        self error:'argument is not of expected type'
+	self error:'argument is not of expected type'
     ]
 !
 
@@ -3026,8 +3026,8 @@
     |spec sender|
 
     Smalltalk isSmalltalkDevelopmentSystem ifFalse:[
-        "ignore in production systems"
-        ^ self.
+	"ignore in production systems"
+	^ self.
     ].
 
     spec := aContext methodPrintString.
@@ -3036,14 +3036,14 @@
     ('         And may not be present in future ST/X versions.') infoPrintCR.
     ('         called from ' , sender printString) infoPrintCR.
     (sender selector startsWith:'perform:') ifTrue:[
-        sender := sender sender.
-        (sender selector startsWith:'perform:') ifTrue:[
-            sender := sender sender.
-        ].
-        ('         called from ' , sender printString) infoPrintCR.
+	sender := sender sender.
+	(sender selector startsWith:'perform:') ifTrue:[
+	    sender := sender sender.
+	].
+	('         called from ' , sender printString) infoPrintCR.
     ].
     message notNil ifTrue:[
-        '------>  ' infoPrint. message infoPrintCR
+	'------>  ' infoPrint. message infoPrintCR
     ]
 
     "
@@ -3062,11 +3062,11 @@
     "
      example:
 
-        ...
-        self todo:[
-            code which needs more work ...
-        ].
-        ...
+	...
+	self todo:[
+	    code which needs more work ...
+	].
+	...
     "
 
     "Created: / 25-05-2007 / 21:34:39 / cg"
@@ -3087,35 +3087,35 @@
 
     wasBlocked := OperatingSystem blockInterrupts.
     [
-        |deps dep|
-
-        deps := self dependents.
-
-        "/ to save a fair amount of memory in case of
-        "/ many dependencies, we store a single dependent in
-        "/ a WeakArray, and switch to a WeakSet if more dependents are
-        "/ added.
-
-        (deps isNil or:[deps size == 0]) ifTrue:[
-            self dependents:(WeakArray with:anObject)
-        ] ifFalse:[
-            deps class == WeakArray ifTrue:[
-                dep := deps at:1.
-                dep ~~ anObject ifTrue:[
-                    (dep isNil or:[dep == 0]) ifTrue:[
-                        deps at:1 put:anObject
-                    ] ifFalse:[
-                        self dependents:(WeakIdentitySet with:dep with:anObject)
-                    ]
-                ]
-            ] ifFalse:[
-                deps add:anObject
-            ]
-        ]
+	|deps dep|
+
+	deps := self dependents.
+
+	"/ to save a fair amount of memory in case of
+	"/ many dependencies, we store a single dependent in
+	"/ a WeakArray, and switch to a WeakSet if more dependents are
+	"/ added.
+
+	(deps isNil or:[deps size == 0]) ifTrue:[
+	    self dependents:(WeakArray with:anObject)
+	] ifFalse:[
+	    deps class == WeakArray ifTrue:[
+		dep := deps at:1.
+		dep ~~ anObject ifTrue:[
+		    (dep isNil or:[dep == 0]) ifTrue:[
+			deps at:1 put:anObject
+		    ] ifFalse:[
+			self dependents:(WeakIdentitySet with:dep with:anObject)
+		    ]
+		]
+	    ] ifFalse:[
+		deps add:anObject
+	    ]
+	]
     ] ensure:[
-        wasBlocked ifFalse:[
-            OperatingSystem unblockInterrupts
-        ]
+	wasBlocked ifFalse:[
+	    OperatingSystem unblockInterrupts
+	]
     ]
 
     "Modified: / 27.10.1997 / 19:35:52 / cg"
@@ -3137,10 +3137,10 @@
 
     self breakDependents.
     1 to:self class instSize do:[:idx |
-        (self instVarAt:idx) breakDependentsRecursively.
+	(self instVarAt:idx) breakDependentsRecursively.
     ].
     1 to:self basicSize do:[:idx |
-        (self basicAt:idx) breakDependentsRecursively.
+	(self basicAt:idx) breakDependentsRecursively.
     ]
 !
 
@@ -3155,7 +3155,7 @@
     |deps|
 
     (deps := Dependencies at:self ifAbsent:nil) isNil ifTrue:[
-        ^ #().
+	^ #().
     ].
     ^ deps
 
@@ -3174,24 +3174,24 @@
     "/ faster execution (and to avoid creation of garbage blocks).
 
     (OperatingSystem blockInterrupts) ifTrue:[
-        "/ the common case - already blocked
-
-        (aCollection isNil or:[aCollection isEmpty]) ifTrue:[
-            Dependencies removeKey:self ifAbsent:nil
-        ] ifFalse:[
-            Dependencies at:self put:aCollection
-        ].
-        ^ self
+	"/ the common case - already blocked
+
+	(aCollection isNil or:[aCollection isEmpty]) ifTrue:[
+	    Dependencies removeKey:self ifAbsent:nil
+	] ifFalse:[
+	    Dependencies at:self put:aCollection
+	].
+	^ self
     ].
 
     [
-        (aCollection isNil or:[aCollection isEmpty]) ifTrue:[
-            Dependencies removeKey:self ifAbsent:nil
-        ] ifFalse:[
-            Dependencies at:self put:aCollection
-        ].
+	(aCollection isNil or:[aCollection isEmpty]) ifTrue:[
+	    Dependencies removeKey:self ifAbsent:nil
+	] ifFalse:[
+	    Dependencies at:self put:aCollection
+	].
     ] ensure:[
-        OperatingSystem unblockInterrupts
+	OperatingSystem unblockInterrupts
     ]
 
     "Modified: 30.1.1997 / 21:22:10 / cg"
@@ -3204,15 +3204,15 @@
 
     deps := self dependents.
     deps size ~~ 0 ifTrue:[
-        deps do:[:d |
-                    (d notNil and:[d ~~ 0]) ifTrue:[
-                        aBlock value:d
-                    ]
-                ]
+	deps do:[:d |
+		    (d notNil and:[d ~~ 0]) ifTrue:[
+			aBlock value:d
+		    ]
+		]
     ].
     nwDeps := self nonWeakDependents.
     (nwDeps ~~ deps and:[nwDeps size ~~ 0]) ifTrue:[
-        nwDeps do:aBlock
+	nwDeps do:aBlock
     ].
 
     "Modified: / 30.1.1998 / 14:03:40 / cg"
@@ -3245,43 +3245,43 @@
 
     wasBlocked := OperatingSystem blockInterrupts.
     [
-        |deps n d|
-
-        deps := self dependents.
-        deps size ~~ 0 ifTrue:[
-
-            "/ to save a fair amount of memory in case of
-            "/ many dependencies, we store a single dependent in
-            "/ a WeakArray, and switch to a WeakSet if more dependents are
-            "/ added. Here we have to do the inverse ...
-
-            ((deps class == WeakArray) or:[deps class == Array]) ifTrue:[
-                ((d := deps at:1) == anObject
-                or:[d isNil
-                or:[d == 0]]) ifTrue:[
-                    self dependents:nil
-                ]
-            ] ifFalse:[
-                deps remove:anObject ifAbsent:[].
-                (n := deps size) == 0 ifTrue:[
-                    self dependents:nil
-                ] ifFalse:[
-                    n == 1 ifTrue:[
-                        d := deps firstIfEmpty:nil.
-                        d notNil ifTrue:[
-                            deps := (deps isWeakCollection ifTrue:WeakArray ifFalse:Array) with:d
-                        ] ifFalse:[
-                            deps := nil
-                        ].
-                        self dependents:deps.
-                    ]
-                ]
-            ]
-        ]
+	|deps n d|
+
+	deps := self dependents.
+	deps size ~~ 0 ifTrue:[
+
+	    "/ to save a fair amount of memory in case of
+	    "/ many dependencies, we store a single dependent in
+	    "/ a WeakArray, and switch to a WeakSet if more dependents are
+	    "/ added. Here we have to do the inverse ...
+
+	    ((deps class == WeakArray) or:[deps class == Array]) ifTrue:[
+		((d := deps at:1) == anObject
+		or:[d isNil
+		or:[d == 0]]) ifTrue:[
+		    self dependents:nil
+		]
+	    ] ifFalse:[
+		deps remove:anObject ifAbsent:[].
+		(n := deps size) == 0 ifTrue:[
+		    self dependents:nil
+		] ifFalse:[
+		    n == 1 ifTrue:[
+			d := deps firstIfEmpty:nil.
+			d notNil ifTrue:[
+			    deps := (deps isWeakCollection ifTrue:WeakArray ifFalse:Array) with:d
+			] ifFalse:[
+			    deps := nil
+			].
+			self dependents:deps.
+		    ]
+		]
+	    ]
+	]
     ] ensure:[
-        wasBlocked ifFalse:[
-            OperatingSystem unblockInterrupts
-        ]
+	wasBlocked ifFalse:[
+	    OperatingSystem unblockInterrupts
+	]
     ]
 
     "Modified: / 26.1.1998 / 19:51:50 / cg"
@@ -3304,37 +3304,37 @@
 
     wasBlocked := OperatingSystem blockInterrupts.
     [
-        |deps dep|
-
-        deps := self nonWeakDependents.
-
-        "/ to save a fair amount of memory in case of
-        "/ many dependencies, we store a single dependent in
-        "/ an Array, and switch to a Set if more dependents are
-        "/ added.
-
-        deps size == 0 ifTrue:[
-            anObject notNil ifTrue:[
-                self nonWeakDependents:(Array with:anObject).
-            ] ifFalse:[
-                "adding nil causes problems when adding the next one
-                 (see below: trying to add nil to IdentitySet)"
+	|deps dep|
+
+	deps := self nonWeakDependents.
+
+	"/ to save a fair amount of memory in case of
+	"/ many dependencies, we store a single dependent in
+	"/ an Array, and switch to a Set if more dependents are
+	"/ added.
+
+	deps size == 0 ifTrue:[
+	    anObject notNil ifTrue:[
+		self nonWeakDependents:(Array with:anObject).
+	    ] ifFalse:[
+		"adding nil causes problems when adding the next one
+		 (see below: trying to add nil to IdentitySet)"
 "/                self halt:'try to add nil to list of dependents'.
-            ].
-        ] ifFalse:[
-            deps class == Array ifTrue:[
-                dep := deps at:1.
-                dep ~~ anObject ifTrue:[
-                    self nonWeakDependents:(IdentitySet with:dep with:anObject)
-                ]
-            ] ifFalse:[
-                deps add:anObject
-            ]
-        ]
+	    ].
+	] ifFalse:[
+	    deps class == Array ifTrue:[
+		dep := deps at:1.
+		dep ~~ anObject ifTrue:[
+		    self nonWeakDependents:(IdentitySet with:dep with:anObject)
+		]
+	    ] ifFalse:[
+		deps add:anObject
+	    ]
+	]
     ] ensure:[
-        wasBlocked ifFalse:[
-            OperatingSystem unblockInterrupts
-        ]
+	wasBlocked ifFalse:[
+	    OperatingSystem unblockInterrupts
+	]
     ]
 
     "Created: / 19.4.1996 / 10:54:08 / cg"
@@ -3357,11 +3357,11 @@
      This is a private helper for directed dependencies."
 
     [
-        (aCollection isNil or:[aCollection isEmpty]) ifTrue:[
-            NonWeakDependencies removeKey:self ifAbsent:nil
-        ] ifFalse:[
-            NonWeakDependencies at:self put:aCollection
-        ]
+	(aCollection isNil or:[aCollection isEmpty]) ifTrue:[
+	    NonWeakDependencies removeKey:self ifAbsent:nil
+	] ifFalse:[
+	    NonWeakDependencies at:self put:aCollection
+	]
     ] valueUninterruptably
 
     "Created: 19.4.1996 / 11:07:47 / cg"
@@ -3380,29 +3380,29 @@
 
     wasBlocked := OperatingSystem blockInterrupts.
     [
-        |deps n|
-
-        deps := self nonWeakDependents.
-        deps size ~~ 0 ifTrue:[
-            deps class == Array ifTrue:[
-                (deps at:1) == anObject ifTrue:[
-                    self nonWeakDependents:nil
-                ]
-            ] ifFalse:[
-                deps remove:anObject ifAbsent:[].
-                (n := deps size) == 0 ifTrue:[
-                    self nonWeakDependents:nil
-                ] ifFalse:[
-                    n == 1 ifTrue:[
-                        self nonWeakDependents:(Array with:(deps first))
-                    ]
-                ]
-            ]
-        ]
+	|deps n|
+
+	deps := self nonWeakDependents.
+	deps size ~~ 0 ifTrue:[
+	    deps class == Array ifTrue:[
+		(deps at:1) == anObject ifTrue:[
+		    self nonWeakDependents:nil
+		]
+	    ] ifFalse:[
+		deps remove:anObject ifAbsent:[].
+		(n := deps size) == 0 ifTrue:[
+		    self nonWeakDependents:nil
+		] ifFalse:[
+		    n == 1 ifTrue:[
+			self nonWeakDependents:(Array with:(deps first))
+		    ]
+		]
+	    ]
+	]
     ] ensure:[
-        wasBlocked ifFalse:[
-            OperatingSystem unblockInterrupts
-        ]
+	wasBlocked ifFalse:[
+	    OperatingSystem unblockInterrupts
+	]
     ]
 
     "Created: / 19.4.1996 / 11:44:44 / cg"
@@ -3454,8 +3454,8 @@
     "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
     "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
     (aGCOrStream isStream or:[aGCOrStream == Transcript]) ifTrue:[
-        self printOn:aGCOrStream.
-        ^ self
+	self printOn:aGCOrStream.
+	^ self
     ].
     ^ self displayOn:aGCOrStream x:0 y:0.
 
@@ -3491,9 +3491,9 @@
     s := self displayString.
     yBaseline := y "+ aGc font ascent".
     opaque ifTrue:[
-        aGc displayOpaqueString:s x:x y:yBaseline.
+	aGc displayOpaqueString:s x:x y:yBaseline.
     ] ifFalse:[
-        aGc displayString:s x:x y:yBaseline.
+	aGc displayString:s x:x y:yBaseline.
     ].
 
     "Modified: 29.5.1996 / 16:29:38 / cg"
@@ -3674,22 +3674,22 @@
     stop := aSpecArray size.
 
     2 to:stop by:2 do:[:i|
-        sel := aSpecArray at:i.
-        litVal := aSpecArray at:i + 1.
-
-        (self respondsTo:sel) ifTrue:[
-            val := litVal decodeAsLiteralArray.
-            self perform:sel with:val
-        ] ifFalse:[
-            Transcript show:self class name; show:': unhandled literalArrayEncoding attribute: '.
-            Transcript showCR:sel.
-
-            "/ thats a debug halt,
-            "/ it should probably be removed (to simply ignore unhandled attributes)...
-            "/ for now, it is left in, in order to easily find incompatibilities between
-            "/ VW and ST/X.
-            self halt:('Unrecognized attribute in spec: #', sel).  "/ value is:   val  / litVal.
-        ]
+	sel := aSpecArray at:i.
+	litVal := aSpecArray at:i + 1.
+
+	(self respondsTo:sel) ifTrue:[
+	    val := litVal decodeAsLiteralArray.
+	    self perform:sel with:val
+	] ifFalse:[
+	    Transcript show:self class name; show:': unhandled literalArrayEncoding attribute: '.
+	    Transcript showCR:sel.
+
+	    "/ thats a debug halt,
+	    "/ it should probably be removed (to simply ignore unhandled attributes)...
+	    "/ for now, it is left in, in order to easily find incompatibilities between
+	    "/ VW and ST/X.
+	    self halt:('Unrecognized attribute in spec: #', sel).  "/ value is:   val  / litVal.
+	]
     ]
 !
 
@@ -3702,7 +3702,7 @@
     |names encoding cls skipped slots|
 
     self isLiteral ifTrue:[
-        ^ self
+	^ self
     ].
 
     slots    := self literalArrayEncodingSlotOrder.
@@ -3713,22 +3713,22 @@
     encoding add:cls name.
 
     slots do:[:instSlot |
-        |value nm|
-
-        nm := names at:instSlot.
-        (skipped includes:nm) ifFalse:[
-            (value := self instVarAt:instSlot) notNil ifTrue:[
-                encoding add:(nm , ':') asSymbol.
-                encoding add:value literalArrayEncoding
-            ]
-        ]
+	|value nm|
+
+	nm := names at:instSlot.
+	(skipped includes:nm) ifFalse:[
+	    (value := self instVarAt:instSlot) notNil ifTrue:[
+		encoding add:(nm , ':') asSymbol.
+		encoding add:value literalArrayEncoding
+	    ]
+	]
     ].
     ^ encoding asArray
 
     "
-        (1 -> 2) literalArrayEncoding
-        DebugView menuSpec decodeAsLiteralArray literalArrayEncoding  =
-           DebugView menuSpec
+	(1 -> 2) literalArrayEncoding
+	DebugView menuSpec decodeAsLiteralArray literalArrayEncoding  =
+	   DebugView menuSpec
     "
 !
 
@@ -3768,34 +3768,34 @@
     (Processor isNil
     or:[Processor activeProcessIsSystemProcess
     or:[Smalltalk isInitialized not]]) ifTrue:[
-        ^ MiniDebugger
+	^ MiniDebugger
     ].
     (Screen isNil or:[Screen default isNil or:[Screen default isOpen not]]) ifTrue:[
-        Debugger isNil ifTrue:[^ nil].
-        ^ MiniDebugger
+	Debugger isNil ifTrue:[^ nil].
+	^ MiniDebugger
     ].
 
     context := thisContext.
     context := context findNextContextWithSelector:aSelector or:nil or:nil.
     [context notNil] whileTrue:[
-        ((context receiver class == Debugger)
-         and:[context selector == aSelector]) ifTrue:[
-            "we are already in some Debugger"
-            (Debugger == MiniDebugger) ifTrue:[
-                "we are already in the MiniDebugger"
-                ErrorRecursion ifFalse:[
-                    Smalltalk fatalAbort:'recursive error ...'
-                ]
-            ].
-            MiniDebugger isNil ifTrue:[
-                Smalltalk fatalAbort:'no debugger'
-            ].
-
-            "ok, an error occured while in the graphical debugger;
-             lets try MiniDebugger"
-            ^ MiniDebugger
-        ].
-        context := context findNextContextWithSelector:aSelector or:nil or:nil.
+	((context receiver class == Debugger)
+	 and:[context selector == aSelector]) ifTrue:[
+	    "we are already in some Debugger"
+	    (Debugger == MiniDebugger) ifTrue:[
+		"we are already in the MiniDebugger"
+		ErrorRecursion ifFalse:[
+		    Smalltalk fatalAbort:'recursive error ...'
+		]
+	    ].
+	    MiniDebugger isNil ifTrue:[
+		Smalltalk fatalAbort:'no debugger'
+	    ].
+
+	    "ok, an error occured while in the graphical debugger;
+	     lets try MiniDebugger"
+	    ^ MiniDebugger
+	].
+	context := context findNextContextWithSelector:aSelector or:nil or:nil.
     ].
     "not within Debugger - no problem"
     ^ Debugger
@@ -3812,8 +3812,8 @@
     <resource: #skipInDebuggersWalkBack>
 
     ^ VMInternalError
-          raiseWith:someReceiver
-          errorString:('bad class in send of #' , aMessage selector)
+	  raiseWith:someReceiver
+	  errorString:('bad class in send of #' , aMessage selector)
 
     "Modified: 23.1.1997 / 00:05:39 / cg"
 !
@@ -3950,7 +3950,7 @@
     <resource: #skipInDebuggersWalkBack>
 
     mayProceed ifTrue:[
-        ^ ProceedableError raiseRequestWith:#error: errorString:aString
+	^ ProceedableError raiseRequestWith:#error: errorString:aString
     ].
 
     Error raiseWith:#error: errorString:aString
@@ -4079,7 +4079,7 @@
     <resource: #skipInDebuggersWalkBack>
 
     index isInteger ifFalse:[
-        ^ self indexNotInteger:index
+	^ self indexNotInteger:index
     ].
     ^ self subscriptBoundsError:index
 !
@@ -4093,7 +4093,7 @@
     <resource: #skipInDebuggersWalkBack>
 
     ^ self error:'bad assign of ' , self printString ,
-                  ' (' , self class name , ') to integer-typed variable'
+		  ' (' , self class name , ') to integer-typed variable'
 !
 
 invalidCodeObject
@@ -4146,7 +4146,7 @@
     <resource: #skipInDebuggersWalkBack>
 
     ^ SubscriptOutOfBoundsError
-        raiseErrorString:'receiver has no indexed variables'
+	raiseErrorString:'receiver has no indexed variables'
 
     "Modified: 26.7.1996 / 16:43:13 / cg"
 !
@@ -4280,15 +4280,15 @@
     sender := thisContext sender.
 
     ^ PrimitiveFailure raiseRequestWith:(Message selector:sender selector arguments:sender args)
-                       in:sender.
+		       in:sender.
 
     "
      1234 primitiveFailed
 
      [
-        ExternalBytes new   basicAt:40
+	ExternalBytes new   basicAt:40
      ] on:PrimitiveFailure do:[:ex|
-        ex inspect
+	ex inspect
      ]
     "
 !
@@ -4306,8 +4306,8 @@
     sender := thisContext sender.
 
     ^ PrimitiveFailure raiseRequestWith:(Message selector:sender selector arguments:sender args)
-                       errorString:messageString
-                       in:sender.
+		       errorString:messageString
+		       in:sender.
 
     "
      1234 primitiveFailed:'this is a test'
@@ -4330,7 +4330,7 @@
 
 
      "
-        self shouldImplement
+	self shouldImplement
      "
 !
 
@@ -4392,8 +4392,8 @@
     <resource: #skipInDebuggersWalkBack>
 
     ^ SubscriptOutOfBoundsError
-        raiseRequestWith:anIndex
-        errorString:('subscript (' , anIndex printString , ') out of bounds')
+	raiseRequestWith:anIndex
+	errorString:('subscript (' , anIndex printString , ') out of bounds')
 
     "Modified: / 17.11.2001 / 22:49:56 / cg"
 !
@@ -4407,7 +4407,7 @@
     <resource: #skipInDebuggersWalkBack>
 
     ^ self error:'bad assign of ' , self printString ,
-                  ' (' , self class name , ') to typed variable'
+		  ' (' , self class name , ') to typed variable'
 ! !
 
 !Object methodsFor:'evaluation'!
@@ -4421,7 +4421,7 @@
     ^ 0
 
     "
-        [1 // 0] on:ArithmeticError do:9999
+	[1 // 0] on:ArithmeticError do:9999
     "
 !
 
@@ -4435,16 +4435,16 @@
      style ... (the idea was borrowed from the Self language).
 
      WARNING: dont 'optimize' away ifXXX: blocks
-              (i.e. do NOT replace
-                        foo ifTrue:[var1] ifFalse:[var2]
-               by:
-                        foo ifTrue:var1 ifFalse:var2
-              )
-              - the compilers will only generate inline code for the if,
-                iff the argument(s) are blocks - otherwise, a true send is
-                generated.
-              This 'oprimization' will work semantically correct,
-              but execute SLOWER instead."
+	      (i.e. do NOT replace
+			foo ifTrue:[var1] ifFalse:[var2]
+	       by:
+			foo ifTrue:var1 ifFalse:var2
+	      )
+	      - the compilers will only generate inline code for the if,
+		iff the argument(s) are blocks - otherwise, a true send is
+		generated.
+	      This 'oprimization' will work semantically correct,
+	      but execute SLOWER instead."
 
     ^ self
 
@@ -4575,30 +4575,30 @@
      used from other C subsystems too, to upcast errors.
      Especially, for subsystems which call errorHandler functions asynchronously.
      IDs (currently) used:
-        #DisplayError ..... x-error interrupt
-        #XtError      ..... xt-error interrupt (Xt interface is not yet published)
+	#DisplayError ..... x-error interrupt
+	#XtError      ..... xt-error interrupt (Xt interface is not yet published)
     "
 
     |handlers handler|
 
     handlers := ObjectMemory registeredErrorInterruptHandlers.
     handlers notNil ifTrue:[
-        handler := handlers at:errorID ifAbsent:nil.
-        handler notNil ifTrue:[
-            "/
-            "/ handler found; let it do whatever it wants ...
-            "/
-            handler errorInterrupt:errorID with:aParameter.
-            ^ self
-        ].
+	handler := handlers at:errorID ifAbsent:nil.
+	handler notNil ifTrue:[
+	    "/
+	    "/ handler found; let it do whatever it wants ...
+	    "/
+	    handler errorInterrupt:errorID with:aParameter.
+	    ^ self
+	].
     ].
 
     "/
     "/ no handler - raise errorSignal passing the errorId as parameter
     "/
     ^ Error
-        raiseRequestWith:errorID
-        errorString:('Subsystem error. ErrorID = ' , errorID printString)
+	raiseRequestWith:errorID
+	errorString:('Subsystem error. ErrorID = ' , errorID printString)
 !
 
 exceptionInterrupt
@@ -4624,12 +4624,12 @@
     where := thisContext sender.
     rec := where receiver.
     rec isNumber ifTrue:[
-        ^ rec class
-            raise:#domainErrorSignal
-            receiver:rec
-            selector:where selector
-            arguments:(where args asArray)
-            errorString:'floating point exception'
+	^ rec class
+	    raise:#domainErrorSignal
+	    receiver:rec
+	    selector:where selector
+	    arguments:(where args asArray)
+	    errorString:'floating point exception'
     ].
 
     "/ could be in some C-library ...
@@ -4694,31 +4694,31 @@
 "/            'Stray recursionInterrupt ...' infoPrintCR.
 "/            ^ self
 "/        ].
-        ObjectMemory infoPrinting ifTrue:[
-            'Object [info]: recursionInterrupt from:' printCR.
-            con := con sender.
-            remaining := 50.
-            [con notNil and:[remaining > 0]] whileTrue:[
-                sender := con sender.
-                '| ' print. con fullPrint.
-
-                nSkipped := 0.
-                [sender notNil and:[sender sender notNil
-                and:[sender selector == con selector
-                and:[sender sender selector == con selector
-                and:[sender method == con method]]]]] whileTrue:[
-                    nSkipped := nSkipped + 1.
-                    con := sender.
-                    sender := con sender.
-                ].
-                nSkipped > 0 ifTrue:[
-                    '| ... ***** ' print. nSkipped print. ' recursive contexts skipped *****' printCR.
-                ].
-                con := sender.
-                remaining := remaining - 1
-            ].
-        ].
-        ^ RecursionInterruptSignal raiseSignal
+	ObjectMemory infoPrinting ifTrue:[
+	    'Object [info]: recursionInterrupt from:' printCR.
+	    con := con sender.
+	    remaining := 50.
+	    [con notNil and:[remaining > 0]] whileTrue:[
+		sender := con sender.
+		'| ' print. con fullPrint.
+
+		nSkipped := 0.
+		[sender notNil and:[sender sender notNil
+		and:[sender selector == con selector
+		and:[sender sender selector == con selector
+		and:[sender method == con method]]]]] whileTrue:[
+		    nSkipped := nSkipped + 1.
+		    con := sender.
+		    sender := con sender.
+		].
+		nSkipped > 0 ifTrue:[
+		    '| ... ***** ' print. nSkipped print. ' recursive contexts skipped *****' printCR.
+		].
+		con := sender.
+		remaining := remaining - 1
+	    ].
+	].
+	^ RecursionInterruptSignal raiseSignal
     ]
 
     "Modified: / 10.11.2001 / 15:15:56 / cg"
@@ -4752,29 +4752,29 @@
     "if there has been an ST-signal installed, use it ..."
     sig := OperatingSystem operatingSystemSignal:signalNumber.
     sig notNil ifTrue:[
-        sig raiseSignalWith:signalNumber.
-        ^ self.
+	sig raiseSignalWith:signalNumber.
+	^ self.
     ].
 
     "/ if handled, raise OSSignalInterruptSignal
     OSSignalInterrupt isHandled ifTrue:[
-        OSSignalInterrupt raiseRequestWith:signalNumber.
-        ^ self.
+	OSSignalInterrupt raiseRequestWith:signalNumber.
+	^ self.
     ].
 
     "
      special cases
-        - SIGPWR: power failure - write a crash image and continue
-        - SIGHUP: hang up - write a crash image and exit
+	- SIGPWR: power failure - write a crash image and continue
+	- SIGHUP: hang up - write a crash image and exit
     "
     (signalNumber == OperatingSystem sigPWR) ifTrue:[
-        SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
-        ^ self.
+	SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
+	^ self.
     ].
     (signalNumber == OperatingSystem sigHUP) ifTrue:[
-        SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
-        'Object [info]: exit due to hangup signal.' errorPrintCR.
-        Smalltalk exit:1.
+	SnapshotError ignoreIn:[ObjectMemory writeCrashImage].
+	'Object [info]: exit due to hangup signal.' errorPrintCR.
+	Smalltalk exit:1.
     ].
 
     name := OperatingSystem nameForSignal:signalNumber.
@@ -4784,7 +4784,7 @@
      or:[(screen := Screen current) isNil
      or:[(screen := Screen default) isNil
      or:[screen isOpen not]]]) ifTrue:[
-        ^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
+	^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
     ].
 
     "ungrab - in case it happened in a box/popupview
@@ -4796,105 +4796,105 @@
 
     "there is a screen. use it to bring up a box asking for what to do ..."
     Screen currentScreenQuerySignal answer:screen do:[
-        "
-         SIGBUS, SIGSEGV and SIGILL do not make sense to ignore (i.e. continue)
-         since the system will retry the faulty instruction, which leads to
-         another signal - to avoid frustration, better not offer this option.
-        "
-        fatal := OperatingSystem isFatalSignal:signalNumber.
-        fatal ifTrue:[
-            (Debugger isNil or:[here isRecursive]) ifTrue:[
-                'Object [hard error]: signal ' errorPrint. signalNumber errorPrintCR.
-                ^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
-            ].
-            "
-             a hard signal - go into debugger immediately
-            "
-            msg := 'OS-signal: ', name.
-
-            "/ the IRQ-PC is passed as low-hi, to avoid the need
-            "/ to allocate a LargeInteger in the VM during signal
-            "/ time. I know, this is ugly.
-
-            InterruptPcLow notNil ifTrue:[
-                pc := InterruptPcLow + (InterruptPcHi bitShift:((SmallInteger maxBits + 1) // 2)).
-                pc ~~ 0 ifTrue:[
-                    msg := msg , ' PC=' , (pc printStringRadix:16)
-                ].
-            ].
-            InterruptAddrLow notNil ifTrue:[
-                addr := InterruptAddrLow + (InterruptAddrHi bitShift:((SmallInteger maxBits + 1) // 2)).
-                addr ~~ 0 ifTrue:[
-                    msg := msg , ' ADDR=' , (addr printStringRadix:16)
-                ].
-            ].
-            Debugger enter:here withMessage:msg mayProceed:false.
-            "unreachable"
-            ^ nil.
-        ].
-
-        "if possible, open an option box asking the user what do.
-         Otherwise, start a debugger"
-        Dialog notNil ifTrue:[
-            titles := #('save crash image' 'dump core' 'exit ST/X' 'debug').
-            actions := #(save core exit debug).
-
-            action := nil.
-            title := 'OS Signal caught (' , name, ')'.
-            title := (title , '\[in ST-process: ' , Processor activeProcess nameOrId ,']') withCRs.
-
-            "/ if cought while in the scheduler or event dispatcher,
-            "/ a modal dialog is not possible ...
-            "/ (therefore, abort & return does not makes sense)
-
-            Processor activeProcess isSystemProcess ifFalse:[
-                titles := #('abort') , titles.
-                actions := #(abort), actions.
-
-                badContext canReturn ifTrue:[
-                    titles := #('return') , titles.
-                    actions :=  #(return), actions.
-                ].
-            ].
-
-            fatal ifFalse:[
-                titles := titles, #('ignore').
-                actions := actions , #(ignore).
-            ].
-            action := Dialog choose:title
-                             labels:titles
-                             values:actions
-                             default:(fatal ifTrue:[nil] ifFalse:[#ignore]).
-
-            "Dialog may fail (if system process), default action is debug"
-            action isEmptyOrNil ifTrue:[action := #debug].
-        ] ifFalse:[
-            action := #debug.
-        ].
-
-        action == #save ifTrue:[
-            ObjectMemory writeCrashImage
-        ].
-        action == #core ifTrue:[
-            Smalltalk fatalAbort
-        ].
-        action == #exit ifTrue:[
-            Smalltalk exit
-        ].
-        action == #return ifTrue:[
-            badContext return
-        ].
-        action == #abort ifTrue:[
-            AbortOperationRequest raise.
-        ].
-
-        action == #debug ifTrue:[
-            Debugger isNil ifTrue:[
-                ^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
-            ].
-            Debugger enter:here withMessage:('OS-Signal ', name) mayProceed:true.
-        ].
-        "action == #ignore"
+	"
+	 SIGBUS, SIGSEGV and SIGILL do not make sense to ignore (i.e. continue)
+	 since the system will retry the faulty instruction, which leads to
+	 another signal - to avoid frustration, better not offer this option.
+	"
+	fatal := OperatingSystem isFatalSignal:signalNumber.
+	fatal ifTrue:[
+	    (Debugger isNil or:[here isRecursive]) ifTrue:[
+		'Object [hard error]: signal ' errorPrint. signalNumber errorPrintCR.
+		^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
+	    ].
+	    "
+	     a hard signal - go into debugger immediately
+	    "
+	    msg := 'OS-signal: ', name.
+
+	    "/ the IRQ-PC is passed as low-hi, to avoid the need
+	    "/ to allocate a LargeInteger in the VM during signal
+	    "/ time. I know, this is ugly.
+
+	    InterruptPcLow notNil ifTrue:[
+		pc := InterruptPcLow + (InterruptPcHi bitShift:((SmallInteger maxBits + 1) // 2)).
+		pc ~~ 0 ifTrue:[
+		    msg := msg , ' PC=' , (pc printStringRadix:16)
+		].
+	    ].
+	    InterruptAddrLow notNil ifTrue:[
+		addr := InterruptAddrLow + (InterruptAddrHi bitShift:((SmallInteger maxBits + 1) // 2)).
+		addr ~~ 0 ifTrue:[
+		    msg := msg , ' ADDR=' , (addr printStringRadix:16)
+		].
+	    ].
+	    Debugger enter:here withMessage:msg mayProceed:false.
+	    "unreachable"
+	    ^ nil.
+	].
+
+	"if possible, open an option box asking the user what do.
+	 Otherwise, start a debugger"
+	Dialog notNil ifTrue:[
+	    titles := #('save crash image' 'dump core' 'exit ST/X' 'debug').
+	    actions := #(save core exit debug).
+
+	    action := nil.
+	    title := 'OS Signal caught (' , name, ')'.
+	    title := (title , '\[in ST-process: ' , Processor activeProcess nameOrId ,']') withCRs.
+
+	    "/ if cought while in the scheduler or event dispatcher,
+	    "/ a modal dialog is not possible ...
+	    "/ (therefore, abort & return does not makes sense)
+
+	    Processor activeProcess isSystemProcess ifFalse:[
+		titles := #('abort') , titles.
+		actions := #(abort), actions.
+
+		badContext canReturn ifTrue:[
+		    titles := #('return') , titles.
+		    actions :=  #(return), actions.
+		].
+	    ].
+
+	    fatal ifFalse:[
+		titles := titles, #('ignore').
+		actions := actions , #(ignore).
+	    ].
+	    action := Dialog choose:title
+			     labels:titles
+			     values:actions
+			     default:(fatal ifTrue:[nil] ifFalse:[#ignore]).
+
+	    "Dialog may fail (if system process), default action is debug"
+	    action isEmptyOrNil ifTrue:[action := #debug].
+	] ifFalse:[
+	    action := #debug.
+	].
+
+	action == #save ifTrue:[
+	    ObjectMemory writeCrashImage
+	].
+	action == #core ifTrue:[
+	    Smalltalk fatalAbort
+	].
+	action == #exit ifTrue:[
+	    Smalltalk exit
+	].
+	action == #return ifTrue:[
+	    badContext return
+	].
+	action == #abort ifTrue:[
+	    AbortOperationRequest raise.
+	].
+
+	action == #debug ifTrue:[
+	    Debugger isNil ifTrue:[
+		^ self startMiniDebuggerOrExit:'OS-Signal (' , name, ')'.
+	    ].
+	    Debugger enter:here withMessage:('OS-Signal ', name) mayProceed:true.
+	].
+	"action == #ignore"
     ].
 
     "Modified: / 29-09-2006 / 12:27:20 / cg"
@@ -4913,10 +4913,10 @@
      Start a mini debugger or exit if none is present"
 
     MiniDebugger isNil ifTrue:[
-        "a system without debugging facilities (i.e. a standalone system)
-         output a message and exit."
-        ('Object [error]: exit due to ', text, ' - and no debugger.') errorPrintCR.
-        OperatingSystem exit:99.
+	"a system without debugging facilities (i.e. a standalone system)
+	 output a message and exit."
+	('Object [error]: exit due to ', text, ' - and no debugger.') errorPrintCR.
+	OperatingSystem exit:99.
     ].
     MiniDebugger enterWithMessage:text mayProceed:true.
 !
@@ -4969,61 +4969,61 @@
     REGISTER OBJ sel = aSelector;
 
     if (InterruptPending == nil) {
-        struct inlineCache *pIlc;
-        static struct inlineCache ilc_0 = __ILCPERF0(@line);
-        static struct inlineCache ilc_1 = __ILCPERF0(@line);
-        static struct inlineCache ilc_2 = __ILCPERF0(@line);
-        static struct inlineCache ilc_3 = __ILCPERF0(@line);
-        static struct inlineCache ilc_4 = __ILCPERF0(@line);
-        static OBJ last_0 = nil;
-        static OBJ last_1 = nil;
-        static OBJ last_2 = nil;
-        static OBJ last_3 = nil;
-        static OBJ last_4 = nil;
-        static flip = 0;
-
-        if (sel == last_0) {
-            pIlc = &ilc_0;
-        } else if (sel == last_1) {
-            pIlc = &ilc_1;
-        } else if (sel == last_2) {
-            pIlc = &ilc_2;
-        } else if (sel == last_3) {
-            pIlc = &ilc_3;
-        } else if (sel == last_4) {
-            pIlc = &ilc_4;
-        } else {
-            if (flip == 0) {
-                pIlc = &ilc_0;
-                flip = 1;
-                last_0 = sel;
-            } else if (flip == 1) {
-                pIlc = &ilc_1;
-                flip = 2;
-                last_1 = sel;
-            } else if (flip == 2) {
-                pIlc = &ilc_2;
-                flip = 3;
-                last_2 = sel;
-            } else if (flip == 3) {
-                pIlc = &ilc_3;
-                flip = 4;
-                last_3 = sel;
-            } else {
-                pIlc = &ilc_4;
-                flip = 0;
-                last_4 = sel;
-            }
-            pIlc->ilc_func = __SEND0ADDR__;
-            if (pIlc->ilc_poly) {
-                __flushPolyCache(pIlc->ilc_poly);
-                pIlc->ilc_poly = 0;
-            }
-        }
-        RETURN ( (*(pIlc->ilc_func))(self, sel, nil, pIlc) );
+	struct inlineCache *pIlc;
+	static struct inlineCache ilc_0 = __ILCPERF0(@line);
+	static struct inlineCache ilc_1 = __ILCPERF0(@line);
+	static struct inlineCache ilc_2 = __ILCPERF0(@line);
+	static struct inlineCache ilc_3 = __ILCPERF0(@line);
+	static struct inlineCache ilc_4 = __ILCPERF0(@line);
+	static OBJ last_0 = nil;
+	static OBJ last_1 = nil;
+	static OBJ last_2 = nil;
+	static OBJ last_3 = nil;
+	static OBJ last_4 = nil;
+	static flip = 0;
+
+	if (sel == last_0) {
+	    pIlc = &ilc_0;
+	} else if (sel == last_1) {
+	    pIlc = &ilc_1;
+	} else if (sel == last_2) {
+	    pIlc = &ilc_2;
+	} else if (sel == last_3) {
+	    pIlc = &ilc_3;
+	} else if (sel == last_4) {
+	    pIlc = &ilc_4;
+	} else {
+	    if (flip == 0) {
+		pIlc = &ilc_0;
+		flip = 1;
+		last_0 = sel;
+	    } else if (flip == 1) {
+		pIlc = &ilc_1;
+		flip = 2;
+		last_1 = sel;
+	    } else if (flip == 2) {
+		pIlc = &ilc_2;
+		flip = 3;
+		last_2 = sel;
+	    } else if (flip == 3) {
+		pIlc = &ilc_3;
+		flip = 4;
+		last_3 = sel;
+	    } else {
+		pIlc = &ilc_4;
+		flip = 0;
+		last_4 = sel;
+	    }
+	    pIlc->ilc_func = __SEND0ADDR__;
+	    if (pIlc->ilc_poly) {
+		__flushPolyCache(pIlc->ilc_poly);
+		pIlc->ilc_poly = 0;
+	    }
+	}
+	RETURN ( (*(pIlc->ilc_func))(self, sel, nil, pIlc) );
     } else {
-        static struct inlineCache ilc0 = __DUMMYILCSELF0(@line+1);
-        RETURN (_SEND0(self, aSelector, nil, &ilc0));
+	static struct inlineCache ilc0 = __DUMMYILCSELF0(@line+1);
+	RETURN (_SEND0(self, aSelector, nil, &ilc0));
     }
 %}.
     ^ self perform:aSelector withArguments:#()
@@ -5036,7 +5036,7 @@
      to execute a method in ANY superclass of the receiver (not just the
      immediate superclass).
      Thus, it is (theoretically) possible to do
-         '5 perform:#< inClass:Magnitude withArguments:#(6)'
+	 '5 perform:#< inClass:Magnitude withArguments:#(6)'
      and evaluate Magnitudes compare method even if there was one in Number.
      This method is used by the interpreter to evaluate super sends
      and could be used for very special behavior (language extension ?).
@@ -5050,174 +5050,174 @@
     "
     myClass := self class.
     (myClass == aClass or:[myClass isSubclassOf:aClass]) ifFalse:[
-        self error:'lookup-class argument is not a superclass of the receiver'.
-        ^ nil
+	self error:'lookup-class argument is not a superclass of the receiver'.
+	^ nil
     ].
 %{
     REGISTER OBJ *argP;
     int nargs, i;
 
     if (__isArrayLike(argArray)) {
-        nargs = __arraySize(argArray);
-        argP = __arrayVal(argArray);
+	nargs = __arraySize(argArray);
+	argP = __arrayVal(argArray);
     } else {
-        if (__isNonNilObject(argArray)) {
-            static struct inlineCache ilcSize = __ILC0(@line+1);
-            numberOfArgs = (*ilcSize.ilc_func)(argArray, @symbol(size), nil, &ilcSize);
-            if (!__isSmallInteger(numberOfArgs))
-                goto bad;
-            nargs = __intVal(numberOfArgs);
-            argP = (OBJ *)(&a1);
-            for (i=1; i <= nargs; i++) {
-                *argP++ = __AT_(argArray, __mkSmallInteger(i));
-            }
-            argP = (OBJ *)(&a1);
-        } else {
-            nargs = 0;
-        }
+	if (__isNonNilObject(argArray)) {
+	    static struct inlineCache ilcSize = __ILC0(@line+1);
+	    numberOfArgs = (*ilcSize.ilc_func)(argArray, @symbol(size), nil, &ilcSize);
+	    if (!__isSmallInteger(numberOfArgs))
+		goto bad;
+	    nargs = __intVal(numberOfArgs);
+	    argP = (OBJ *)(&a1);
+	    for (i=1; i <= nargs; i++) {
+		*argP++ = __AT_(argArray, __mkSmallInteger(i));
+	    }
+	    argP = (OBJ *)(&a1);
+	} else {
+	    nargs = 0;
+	}
     }
     switch (nargs) {
-        case 0:
-            {
-                static struct inlineCache ilc0 = __DUMMYILCSELF0(@line+1);
-                RETURN ( _SEND0(self, aSelector, aClass, &ilc0));
-            }
-
-        case 1:
-            {
-                static struct inlineCache ilc1 = __DUMMYILCSELF1(@line+1);
-                RETURN ( _SEND1(self, aSelector, aClass, &ilc1, argP[0]));
-            }
-
-        case 2:
-            {
-                static struct inlineCache ilc2 = __DUMMYILCSELF2(@line+1);
-                RETURN ( _SEND2(self, aSelector, aClass, &ilc2, argP[0], argP[1]));
-            }
-
-        case 3:
-            {
-                static struct inlineCache ilc3 = __DUMMYILCSELF3(@line+1);
-                RETURN ( _SEND3(self, aSelector, aClass, &ilc3,
-                                argP[0], argP[1], argP[2]));
-            }
-
-        case 4:
-            {
-                static struct inlineCache ilc4 = __DUMMYILCSELF4(@line+1);
-                RETURN ( _SEND4(self, aSelector, aClass, &ilc4,
-                                argP[0], argP[1], argP[2], argP[3]));
-            }
-
-        case 5:
-            {
-                static struct inlineCache ilc5 = __DUMMYILCSELF5(@line+1);
-                RETURN ( _SEND5(self, aSelector, aClass, &ilc5,
-                                argP[0], argP[1], argP[2], argP[3], argP[4]));
-            }
-
-        case 6:
-            {
-                static struct inlineCache ilc6 = __DUMMYILCSELF6(@line+1);
-                RETURN ( _SEND6(self, aSelector, aClass, &ilc6,
-                                argP[0], argP[1], argP[2], argP[3], argP[4], argP[5]));
-            }
-
-        case 7:
-            {
-                static struct inlineCache ilc7 = __DUMMYILCSELF7(@line+1);
-                RETURN ( _SEND7(self, aSelector, aClass, &ilc7,
-                                argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                argP[6]));
-            }
-
-        case 8:
-            {
-                static struct inlineCache ilc8 = __DUMMYILCSELF8(@line+1);
-                RETURN ( _SEND8(self, aSelector, aClass, &ilc8,
-                                argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                argP[6], argP[7]));
-            }
-
-        case 9:
-            {
-                static struct inlineCache ilc9 = __DUMMYILCSELF9(@line+1);
-                RETURN ( _SEND9(self, aSelector, aClass, &ilc9,
-                                argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                argP[6], argP[7], argP[8]));
-            }
-
-        case 10:
-            {
-                static struct inlineCache ilc10 = __DUMMYILCSELF10(@line+1);
-                RETURN ( _SEND10(self, aSelector, aClass, &ilc10,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9]));
-            }
-
-        case 11:
-            {
-                static struct inlineCache ilc11 = __DUMMYILCSELF11(@line+1);
-                RETURN ( _SEND11(self, aSelector, aClass, &ilc11,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9], argP[10]));
-            }
-
-        case 12:
-            {
-                static struct inlineCache ilc12 = __DUMMYILCSELF12(@line+1);
-                RETURN ( _SEND12(self, aSelector, aClass, &ilc12,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9], argP[10],
-                                 argP[11]));
-            }
-
-        case 13:
-            {
-                static struct inlineCache ilc13 = __DUMMYILCSELF13(@line+1);
-                RETURN ( _SEND13(self, aSelector, aClass, &ilc13,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9], argP[10],
-                                 argP[11], argP[12]));
-            }
-
-        case 14:
-            {
-                static struct inlineCache ilc14 = __DUMMYILCSELF14(@line+1);
-                RETURN ( _SEND14(self, aSelector, aClass, &ilc14,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9], argP[10],
-                                 argP[11], argP[12], argP[13]));
-            }
-
-        case 15:
-            {
-                static struct inlineCache ilc15 = __DUMMYILCSELF15(@line+1);
-                RETURN ( _SEND15(self, aSelector, aClass, &ilc15,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9], argP[10],
-                                 argP[11], argP[12], argP[13], argP[14]));
-            }
+	case 0:
+	    {
+		static struct inlineCache ilc0 = __DUMMYILCSELF0(@line+1);
+		RETURN ( _SEND0(self, aSelector, aClass, &ilc0));
+	    }
+
+	case 1:
+	    {
+		static struct inlineCache ilc1 = __DUMMYILCSELF1(@line+1);
+		RETURN ( _SEND1(self, aSelector, aClass, &ilc1, argP[0]));
+	    }
+
+	case 2:
+	    {
+		static struct inlineCache ilc2 = __DUMMYILCSELF2(@line+1);
+		RETURN ( _SEND2(self, aSelector, aClass, &ilc2, argP[0], argP[1]));
+	    }
+
+	case 3:
+	    {
+		static struct inlineCache ilc3 = __DUMMYILCSELF3(@line+1);
+		RETURN ( _SEND3(self, aSelector, aClass, &ilc3,
+				argP[0], argP[1], argP[2]));
+	    }
+
+	case 4:
+	    {
+		static struct inlineCache ilc4 = __DUMMYILCSELF4(@line+1);
+		RETURN ( _SEND4(self, aSelector, aClass, &ilc4,
+				argP[0], argP[1], argP[2], argP[3]));
+	    }
+
+	case 5:
+	    {
+		static struct inlineCache ilc5 = __DUMMYILCSELF5(@line+1);
+		RETURN ( _SEND5(self, aSelector, aClass, &ilc5,
+				argP[0], argP[1], argP[2], argP[3], argP[4]));
+	    }
+
+	case 6:
+	    {
+		static struct inlineCache ilc6 = __DUMMYILCSELF6(@line+1);
+		RETURN ( _SEND6(self, aSelector, aClass, &ilc6,
+				argP[0], argP[1], argP[2], argP[3], argP[4], argP[5]));
+	    }
+
+	case 7:
+	    {
+		static struct inlineCache ilc7 = __DUMMYILCSELF7(@line+1);
+		RETURN ( _SEND7(self, aSelector, aClass, &ilc7,
+				argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				argP[6]));
+	    }
+
+	case 8:
+	    {
+		static struct inlineCache ilc8 = __DUMMYILCSELF8(@line+1);
+		RETURN ( _SEND8(self, aSelector, aClass, &ilc8,
+				argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				argP[6], argP[7]));
+	    }
+
+	case 9:
+	    {
+		static struct inlineCache ilc9 = __DUMMYILCSELF9(@line+1);
+		RETURN ( _SEND9(self, aSelector, aClass, &ilc9,
+				argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				argP[6], argP[7], argP[8]));
+	    }
+
+	case 10:
+	    {
+		static struct inlineCache ilc10 = __DUMMYILCSELF10(@line+1);
+		RETURN ( _SEND10(self, aSelector, aClass, &ilc10,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9]));
+	    }
+
+	case 11:
+	    {
+		static struct inlineCache ilc11 = __DUMMYILCSELF11(@line+1);
+		RETURN ( _SEND11(self, aSelector, aClass, &ilc11,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9], argP[10]));
+	    }
+
+	case 12:
+	    {
+		static struct inlineCache ilc12 = __DUMMYILCSELF12(@line+1);
+		RETURN ( _SEND12(self, aSelector, aClass, &ilc12,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9], argP[10],
+				 argP[11]));
+	    }
+
+	case 13:
+	    {
+		static struct inlineCache ilc13 = __DUMMYILCSELF13(@line+1);
+		RETURN ( _SEND13(self, aSelector, aClass, &ilc13,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9], argP[10],
+				 argP[11], argP[12]));
+	    }
+
+	case 14:
+	    {
+		static struct inlineCache ilc14 = __DUMMYILCSELF14(@line+1);
+		RETURN ( _SEND14(self, aSelector, aClass, &ilc14,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9], argP[10],
+				 argP[11], argP[12], argP[13]));
+	    }
+
+	case 15:
+	    {
+		static struct inlineCache ilc15 = __DUMMYILCSELF15(@line+1);
+		RETURN ( _SEND15(self, aSelector, aClass, &ilc15,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9], argP[10],
+				 argP[11], argP[12], argP[13], argP[14]));
+	    }
 
 #ifdef _SEND16
-        case 16:
-            {
-                static struct inlineCache ilc16 = __DUMMYILCSELF16(@line+1);
-                RETURN ( _SEND16(self, aSelector, aClass, &ilc15,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9], argP[10],
-                                 argP[11], argP[12], argP[13], argP[14], argP[15]));
-            }
+	case 16:
+	    {
+		static struct inlineCache ilc16 = __DUMMYILCSELF16(@line+1);
+		RETURN ( _SEND16(self, aSelector, aClass, &ilc15,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9], argP[10],
+				 argP[11], argP[12], argP[13], argP[14], argP[15]));
+	    }
 #endif
 #ifdef _SEND17
-        case 17:
-            {
-                static struct inlineCache ilc17 = __DUMMYILCSELF17(@line+1);
-                RETURN ( _SEND17(self, aSelector, aClass, &ilc15,
-                                 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
-                                 argP[6], argP[7], argP[8], argP[9], argP[10],
-                                 argP[11], argP[12], argP[13], argP[14], argP[15], argP[16]));
-            }
+	case 17:
+	    {
+		static struct inlineCache ilc17 = __DUMMYILCSELF17(@line+1);
+		RETURN ( _SEND17(self, aSelector, aClass, &ilc15,
+				 argP[0], argP[1], argP[2], argP[3], argP[4], argP[5],
+				 argP[6], argP[7], argP[8], argP[9], argP[10],
+				 argP[11], argP[12], argP[13], argP[14], argP[15], argP[16]));
+	    }
 #endif
 
 
@@ -5237,61 +5237,61 @@
     REGISTER OBJ sel = aSelector;
 
     if (InterruptPending == nil) {
-        struct inlineCache *pIlc;
-        static struct inlineCache ilc_0 = __ILCPERF1(@line);
-        static struct inlineCache ilc_1 = __ILCPERF1(@line);
-        static struct inlineCache ilc_2 = __ILCPERF1(@line);
-        static struct inlineCache ilc_3 = __ILCPERF1(@line);
-        static struct inlineCache ilc_4 = __ILCPERF1(@line);
-        static OBJ last_0 = nil;
-        static OBJ last_1 = nil;
-        static OBJ last_2 = nil;
-        static OBJ last_3 = nil;
-        static OBJ last_4 = nil;
-        static flip = 0;
-
-        if (sel == last_0) {
-            pIlc = &ilc_0;
-        } else if (sel == last_1) {
-            pIlc = &ilc_1;
-        } else if (sel == last_2) {
-            pIlc = &ilc_2;
-        } else if (sel == last_3) {
-            pIlc = &ilc_3;
-        } else if (sel == last_4) {
-            pIlc = &ilc_4;
-        } else {
-            if (flip == 0) {
-                pIlc = &ilc_0;
-                flip = 1;
-                last_0 = sel;
-            } else if (flip == 1) {
-                pIlc = &ilc_1;
-                flip = 2;
-                last_1 = sel;
-            } else if (flip == 2) {
-                pIlc = &ilc_2;
-                flip = 3;
-                last_2 = sel;
-            } else if (flip == 3) {
-                pIlc = &ilc_3;
-                flip = 4;
-                last_3 = sel;
-            } else {
-                pIlc = &ilc_4;
-                flip = 0;
-                last_4 = sel;
-            }
-            pIlc->ilc_func = __SEND1ADDR__;
-            if (pIlc->ilc_poly) {
-                __flushPolyCache(pIlc->ilc_poly);
-                pIlc->ilc_poly = 0;
-            }
-        }
-        RETURN ( (*(pIlc->ilc_func))(self, sel, nil, pIlc, arg) );
+	struct inlineCache *pIlc;
+	static struct inlineCache ilc_0 = __ILCPERF1(@line);
+	static struct inlineCache ilc_1 = __ILCPERF1(@line);
+	static struct inlineCache ilc_2 = __ILCPERF1(@line);
+	static struct inlineCache ilc_3 = __ILCPERF1(@line);
+	static struct inlineCache ilc_4 = __ILCPERF1(@line);
+	static OBJ last_0 = nil;
+	static OBJ last_1 = nil;
+	static OBJ last_2 = nil;
+	static OBJ last_3 = nil;
+	static OBJ last_4 = nil;
+	static flip = 0;
+
+	if (sel == last_0) {
+	    pIlc = &ilc_0;
+	} else if (sel == last_1) {
+	    pIlc = &ilc_1;
+	} else if (sel == last_2) {
+	    pIlc = &ilc_2;
+	} else if (sel == last_3) {
+	    pIlc = &ilc_3;
+	} else if (sel == last_4) {
+	    pIlc = &ilc_4;
+	} else {
+	    if (flip == 0) {
+		pIlc = &ilc_0;
+		flip = 1;
+		last_0 = sel;
+	    } else if (flip == 1) {
+		pIlc = &ilc_1;
+		flip = 2;
+		last_1 = sel;
+	    } else if (flip == 2) {
+		pIlc = &ilc_2;
+		flip = 3;
+		last_2 = sel;
+	    } else if (flip == 3) {
+		pIlc = &ilc_3;
+		flip = 4;
+		last_3 = sel;
+	    } else {
+		pIlc = &ilc_4;
+		flip = 0;
+		last_4 = sel;
+	    }
+	    pIlc->ilc_func = __SEND1ADDR__;
+	    if (pIlc->ilc_poly) {
+		__flushPolyCache(pIlc->ilc_poly);
+		pIlc->ilc_poly = 0;
+	    }
+	}
+	RETURN ( (*(pIlc->ilc_func))(self, sel, nil, pIlc, arg) );
     } else {
-        static struct inlineCache ilc1 = __DUMMYILCSELF1(@line+1);
-        RETURN (_SEND1(self, aSelector, nil, &ilc1, arg));
+	static struct inlineCache ilc1 = __DUMMYILCSELF1(@line+1);
+	RETURN (_SEND1(self, aSelector, nil, &ilc1, arg));
     }
 %}.
     ^ self perform:aSelector withArguments:(Array with:arg)
@@ -5305,36 +5305,36 @@
     struct inlineCache *pIlc;
 
     if (InterruptPending == nil) {
-        static struct inlineCache ilc_0 = __ILCPERF2(@line);
-        static struct inlineCache ilc_1 = __ILCPERF2(@line);
-        static OBJ last_0 = nil;
-        static OBJ last_1 = nil;
-        static flip = 0;
-
-        if (aSelector == last_0) {
-            pIlc = &ilc_0;
-        } else if (aSelector == last_1) {
-            pIlc = &ilc_1;
-        } else {
-            if (flip == 0) {
-                pIlc = &ilc_0;
-                flip = 1;
-                last_0 = aSelector;
-            } else {
-                pIlc = &ilc_1;
-                flip = 0;
-                last_1 = aSelector;
-            }
-            pIlc->ilc_func = __SEND2ADDR__;
-            if (pIlc->ilc_poly) {
-                __flushPolyCache(pIlc->ilc_poly);
-                pIlc->ilc_poly = 0;
-            }
-        }
-        RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc, arg1, arg2) );
+	static struct inlineCache ilc_0 = __ILCPERF2(@line);
+	static struct inlineCache ilc_1 = __ILCPERF2(@line);
+	static OBJ last_0 = nil;
+	static OBJ last_1 = nil;
+	static flip = 0;
+
+	if (aSelector == last_0) {
+	    pIlc = &ilc_0;
+	} else if (aSelector == last_1) {
+	    pIlc = &ilc_1;
+	} else {
+	    if (flip == 0) {
+		pIlc = &ilc_0;
+		flip = 1;
+		last_0 = aSelector;
+	    } else {
+		pIlc = &ilc_1;
+		flip = 0;
+		last_1 = aSelector;
+	    }
+	    pIlc->ilc_func = __SEND2ADDR__;
+	    if (pIlc->ilc_poly) {
+		__flushPolyCache(pIlc->ilc_poly);
+		pIlc->ilc_poly = 0;
+	    }
+	}
+	RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc, arg1, arg2) );
     } else {
-        static struct inlineCache ilc2 = __DUMMYILCSELF2(@line+1);
-        RETURN (_SEND2(self, aSelector, nil, &ilc2, arg1, arg2));
+	static struct inlineCache ilc2 = __DUMMYILCSELF2(@line+1);
+	RETURN (_SEND2(self, aSelector, nil, &ilc2, arg1, arg2));
     }
 %}.
     ^ self perform:aSelector withArguments:(Array with:arg1 with:arg2)
@@ -5353,32 +5353,32 @@
     static flip = 0;
 
     if (InterruptPending == nil) {
-        if (aSelector != last_0) {
-            if (aSelector != last_1) {
-                if (flip) {
-                    pIlc = &ilc_0;
-                    flip = 0;
-                    last_0 = aSelector;
-                } else {
-                    pIlc = &ilc_1;
-                    flip = 1;
-                    last_1 = aSelector;
-                }
-                pIlc->ilc_func = __SEND3ADDR__;
-                if (pIlc->ilc_poly) {
-                    __flushPolyCache(pIlc->ilc_poly);
-                    pIlc->ilc_poly = 0;
-                }
-            } else {
-                pIlc = &ilc_1;
-            }
-        } else {
-            pIlc = &ilc_0;
-        }
-        RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc, arg1, arg2, arg3) );
+	if (aSelector != last_0) {
+	    if (aSelector != last_1) {
+		if (flip) {
+		    pIlc = &ilc_0;
+		    flip = 0;
+		    last_0 = aSelector;
+		} else {
+		    pIlc = &ilc_1;
+		    flip = 1;
+		    last_1 = aSelector;
+		}
+		pIlc->ilc_func = __SEND3ADDR__;
+		if (pIlc->ilc_poly) {
+		    __flushPolyCache(pIlc->ilc_poly);
+		    pIlc->ilc_poly = 0;
+		}
+	    } else {
+		pIlc = &ilc_1;
+	    }
+	} else {
+	    pIlc = &ilc_0;
+	}
+	RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc, arg1, arg2, arg3) );
     } else {
-        static struct inlineCache ilc3 = __DUMMYILCSELF3(@line+1);
-        RETURN (_SEND3(self, aSelector, nil, &ilc3, arg1, arg2, arg3));
+	static struct inlineCache ilc3 = __DUMMYILCSELF3(@line+1);
+	RETURN (_SEND3(self, aSelector, nil, &ilc3, arg1, arg2, arg3));
     }
 %}.
     ^ self perform:aSelector withArguments:(Array with:arg1 with:arg2 with:arg3)
@@ -5397,34 +5397,34 @@
     static flip = 0;
 
     if (InterruptPending == nil) {
-        if (aSelector != last_0) {
-            if (aSelector != last_1) {
-                if (flip) {
-                    pIlc = &ilc_0;
-                    flip = 0;
-                    last_0 = aSelector;
-                } else {
-                    pIlc = &ilc_1;
-                    flip = 1;
-                    last_1 = aSelector;
-                }
-                pIlc->ilc_func = __SEND4ADDR__;
-                if (pIlc->ilc_poly) {
-                    __flushPolyCache(pIlc->ilc_poly);
-                    pIlc->ilc_poly = 0;
-                }
-            } else {
-                pIlc = &ilc_1;
-            }
-        } else {
-            pIlc = &ilc_0;
-        }
-        RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc,
-                                     arg1, arg2, arg3, arg4) );
+	if (aSelector != last_0) {
+	    if (aSelector != last_1) {
+		if (flip) {
+		    pIlc = &ilc_0;
+		    flip = 0;
+		    last_0 = aSelector;
+		} else {
+		    pIlc = &ilc_1;
+		    flip = 1;
+		    last_1 = aSelector;
+		}
+		pIlc->ilc_func = __SEND4ADDR__;
+		if (pIlc->ilc_poly) {
+		    __flushPolyCache(pIlc->ilc_poly);
+		    pIlc->ilc_poly = 0;
+		}
+	    } else {
+		pIlc = &ilc_1;
+	    }
+	} else {
+	    pIlc = &ilc_0;
+	}
+	RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc,
+				     arg1, arg2, arg3, arg4) );
     } else {
-        static struct inlineCache ilc4 = __DUMMYILCSELF4(@line+1);
-        RETURN (_SEND4(self, aSelector, nil, &ilc4,
-                       arg1, arg2, arg3, arg4));
+	static struct inlineCache ilc4 = __DUMMYILCSELF4(@line+1);
+	RETURN (_SEND4(self, aSelector, nil, &ilc4,
+		       arg1, arg2, arg3, arg4));
     }
 %}.
     ^ self perform:aSelector withArguments:(Array with:arg1 with:arg2 with:arg3 with:arg4)
@@ -5443,38 +5443,38 @@
     static flip = 0;
 
     if (InterruptPending == nil) {
-        if (aSelector != last_0) {
-            if (aSelector != last_1) {
-                if (flip) {
-                    pIlc = &ilc_0;
-                    flip = 0;
-                    last_0 = aSelector;
-                } else {
-                    pIlc = &ilc_1;
-                    flip = 1;
-                    last_1 = aSelector;
-                }
-                pIlc->ilc_func = __SEND5ADDR__;
-                if (pIlc->ilc_poly) {
-                    __flushPolyCache(pIlc->ilc_poly);
-                    pIlc->ilc_poly = 0;
-                }
-            } else {
-                pIlc = &ilc_1;
-            }
-        } else {
-            pIlc = &ilc_0;
-        }
-        RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc,
-                                     arg1, arg2, arg3, arg4, arg5) );
+	if (aSelector != last_0) {
+	    if (aSelector != last_1) {
+		if (flip) {
+		    pIlc = &ilc_0;
+		    flip = 0;
+		    last_0 = aSelector;
+		} else {
+		    pIlc = &ilc_1;
+		    flip = 1;
+		    last_1 = aSelector;
+		}
+		pIlc->ilc_func = __SEND5ADDR__;
+		if (pIlc->ilc_poly) {
+		    __flushPolyCache(pIlc->ilc_poly);
+		    pIlc->ilc_poly = 0;
+		}
+	    } else {
+		pIlc = &ilc_1;
+	    }
+	} else {
+	    pIlc = &ilc_0;
+	}
+	RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc,
+				     arg1, arg2, arg3, arg4, arg5) );
     } else {
-        static struct inlineCache ilc5 = __DUMMYILCSELF5(@line+1);
-        RETURN (_SEND5(self, aSelector, nil, &ilc5,
-                       arg1, arg2, arg3, arg4, arg5));
+	static struct inlineCache ilc5 = __DUMMYILCSELF5(@line+1);
+	RETURN (_SEND5(self, aSelector, nil, &ilc5,
+		       arg1, arg2, arg3, arg4, arg5));
     }
 %}.
     ^ self perform:aSelector withArguments:(Array with:arg1 with:arg2 with:arg3 with:arg4
-                                                  with:arg5)
+						  with:arg5)
 
 !
 
@@ -5490,39 +5490,39 @@
     static flip = 0;
 
     if (InterruptPending == nil) {
-        if (aSelector != last_0) {
-            if (aSelector != last_1) {
-                if (flip) {
-                    pIlc = &ilc_0;
-                    flip = 0;
-                    last_0 = aSelector;
-                } else {
-                    pIlc = &ilc_1;
-                    flip = 1;
-                    last_1 = aSelector;
-                }
-                pIlc->ilc_func = __SEND6ADDR__;
-                if (pIlc->ilc_poly) {
-                    __flushPolyCache(pIlc->ilc_poly);
-                    pIlc->ilc_poly = 0;
-                }
-            } else {
-                pIlc = &ilc_1;
-            }
-        } else {
-            pIlc = &ilc_0;
-        }
-
-        RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc,
-                                     arg1, arg2, arg3, arg4, arg5, arg6) );
+	if (aSelector != last_0) {
+	    if (aSelector != last_1) {
+		if (flip) {
+		    pIlc = &ilc_0;
+		    flip = 0;
+		    last_0 = aSelector;
+		} else {
+		    pIlc = &ilc_1;
+		    flip = 1;
+		    last_1 = aSelector;
+		}
+		pIlc->ilc_func = __SEND6ADDR__;
+		if (pIlc->ilc_poly) {
+		    __flushPolyCache(pIlc->ilc_poly);
+		    pIlc->ilc_poly = 0;
+		}
+	    } else {
+		pIlc = &ilc_1;
+	    }
+	} else {
+	    pIlc = &ilc_0;
+	}
+
+	RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc,
+				     arg1, arg2, arg3, arg4, arg5, arg6) );
     } else {
-        static struct inlineCache ilc6 = __DUMMYILCSELF6(@line+1);
-        RETURN (_SEND6(self, aSelector, nil, &ilc6,
-                       arg1, arg2, arg3, arg4, arg5, arg6));
+	static struct inlineCache ilc6 = __DUMMYILCSELF6(@line+1);
+	RETURN (_SEND6(self, aSelector, nil, &ilc6,
+		       arg1, arg2, arg3, arg4, arg5, arg6));
     }
 %}.
     ^ self perform:aSelector withArguments:(Array with:arg1 with:arg2 with:arg3 with:arg4
-                                                  with:arg5 with:arg6)
+						  with:arg5 with:arg6)
 
 !
 
@@ -5538,398 +5538,398 @@
     OBJ l;
 
     if (__isArrayLike(argArray)) {
-        nargs = __arraySize(argArray);
-        argP = __arrayVal(argArray);
+	nargs = __arraySize(argArray);
+	argP = __arrayVal(argArray);
     } else {
-        if (__isNonNilObject(argArray)) {
-            static struct inlineCache ilcSize = __ILC0(@line);
-            int i;
-
-            numberOfArgs = (*ilcSize.ilc_func)(argArray, @symbol(size), nil, &ilcSize);
-            if (!__isSmallInteger(numberOfArgs))
-                goto bad;
-            nargs = __intVal(numberOfArgs);
-            argP = (OBJ *)(&a1);
-            for (i=1; i <= nargs; i++) {
-                *argP++ = __AT_(argArray, __mkSmallInteger(i));
-            }
-            argP = (OBJ *)(&a1);
-        } else {
-            nargs = 0;
-        }
+	if (__isNonNilObject(argArray)) {
+	    static struct inlineCache ilcSize = __ILC0(@line);
+	    int i;
+
+	    numberOfArgs = (*ilcSize.ilc_func)(argArray, @symbol(size), nil, &ilcSize);
+	    if (!__isSmallInteger(numberOfArgs))
+		goto bad;
+	    nargs = __intVal(numberOfArgs);
+	    argP = (OBJ *)(&a1);
+	    for (i=1; i <= nargs; i++) {
+		*argP++ = __AT_(argArray, __mkSmallInteger(i));
+	    }
+	    argP = (OBJ *)(&a1);
+	} else {
+	    nargs = 0;
+	}
     }
     switch (nargs) {
-        case 0:
-            if (InterruptPending == nil) {
-                static OBJ last0_0 = nil; static struct inlineCache ilc0_0 = __ILCPERF0(@line);
-                static OBJ last0_1 = nil; static struct inlineCache ilc0_1 = __ILCPERF0(@line);
-                static OBJ last0_2 = nil; static struct inlineCache ilc0_2 = __ILCPERF0(@line);
-                static OBJ last0_3 = nil; static struct inlineCache ilc0_3 = __ILCPERF0(@line);
-                static int flip0 = 0;
-                struct inlineCache *pIlc;
-
-                if (aSelector == last0_0) {
-                    pIlc = &ilc0_0;
-                } else if (aSelector == last0_1) {
-                    pIlc = &ilc0_1;
-                } else if (aSelector == last0_2) {
-                    pIlc = &ilc0_2;
-                } else if (aSelector == last0_3) {
-                    pIlc = &ilc0_3;
-                } else {
-                    if (flip0 == 0) {
-                        pIlc = &ilc0_0;
-                        flip0 = 1;
-                        last0_0 = aSelector;
-                    } else if (flip0 == 1) {
-                        pIlc = &ilc0_1;
-                        flip0 = 2;
-                        last0_1 = aSelector;
-                    } else if (flip0 == 2) {
-                        pIlc = &ilc0_2;
-                        flip0 = 3;
-                        last0_2 = aSelector;
-                    } else {
-                        pIlc = &ilc0_3;
-                        flip0 = 0;
-                        last0_3 = aSelector;
-                    }
-
-                    pIlc->ilc_func = __SEND0ADDR__;
-                    if (pIlc->ilc_poly) {
-                        __flushPolyCache(pIlc->ilc_poly);
-                        pIlc->ilc_poly = 0;
-                    }
-                }
-                RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc));
-            } else {
-                static struct inlineCache ilc0 = __DUMMYILCSELF0(@line+1);
-                RETURN (_SEND0(self, aSelector, nil, &ilc0));
-            }
-
-        case 1:
-            if (InterruptPending == nil) {
-                static OBJ last1_0 = nil; static struct inlineCache ilc1_0 = __ILCPERF1(@line);
-                static OBJ last1_1 = nil; static struct inlineCache ilc1_1 = __ILCPERF1(@line);
-                static OBJ last1_2 = nil; static struct inlineCache ilc1_2 = __ILCPERF1(@line);
-                static OBJ last1_3 = nil; static struct inlineCache ilc1_3 = __ILCPERF1(@line);
-                static int flip1 = 0;
-                struct inlineCache *pIlc;
-
-                if (aSelector == last1_0) {
-                    pIlc = &ilc1_0;
-                } else if (aSelector == last1_1) {
-                    pIlc = &ilc1_1;
-                } else if (aSelector == last1_2) {
-                    pIlc = &ilc1_2;
-                } else if (aSelector == last1_3) {
-                    pIlc = &ilc1_3;
-                } else {
-                    if (flip1 == 0) {
-                        pIlc = &ilc1_0;
-                        flip1 = 1;
-                        last1_0 = aSelector;
-                    } else if (flip1 == 1) {
-                        pIlc = &ilc1_1;
-                        flip1 = 2;
-                        last1_1 = aSelector;
-                    } else if (flip1 == 2) {
-                        pIlc = &ilc1_2;
-                        flip1 = 3;
-                        last1_2 = aSelector;
-                    } else {
-                        pIlc = &ilc1_3;
-                        flip1 = 0;
-                        last1_3 = aSelector;
-                    }
-
-                    pIlc->ilc_func = __SEND1ADDR__;
-                    if (pIlc->ilc_poly) {
-                        __flushPolyCache(pIlc->ilc_poly);
-                        pIlc->ilc_poly = 0;
-                    }
-                }
-                RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc, argP[0]));
-            } else {
-                static struct inlineCache ilc1 = __DUMMYILCSELF1(@line+1);
-                RETURN (_SEND1(self, aSelector, nil, &ilc1, argP[0]));
-            }
-
-        case 2:
-            if (InterruptPending == nil) {
-                static OBJ last2_0 = nil; static struct inlineCache ilc2_0 = __ILCPERF2(@line);
-                static OBJ last2_1 = nil; static struct inlineCache ilc2_1 = __ILCPERF2(@line);
-                static int flip2 = 0;
-                struct inlineCache *pIlc;
-
-                if (aSelector == last2_0) {
-                    pIlc = &ilc2_0;
-                } else if (aSelector == last2_1) {
-                    pIlc = &ilc2_1;
-                } else {
-                    if (flip2 == 0) {
-                        pIlc = &ilc2_0;
-                        flip2 = 1;
-                        last2_0 = aSelector;
-                    } else {
-                        pIlc = &ilc2_1;
-                        flip2 = 0;
-                        last2_1 = aSelector;
-                    }
-
-                    pIlc->ilc_func = __SEND2ADDR__;
-                    if (pIlc->ilc_poly) {
-                        __flushPolyCache(pIlc->ilc_poly);
-                        pIlc->ilc_poly = 0;
-                    }
-                }
-                RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc, argP[0], argP[1]));
-            } else {
-                static struct inlineCache ilc2 = __DUMMYILCSELF2(@line+1);
-                RETURN (_SEND2(self, aSelector, nil, &ilc2, argP[0], argP[1]));
-            }
-
-        case 3:
-            if (InterruptPending == nil) {
-                static OBJ last3_0 = nil; static struct inlineCache ilc3_0 = __ILCPERF3(@line);
-                static OBJ last3_1 = nil; static struct inlineCache ilc3_1 = __ILCPERF3(@line);
-                static int flip3 = 0;
-                struct inlineCache *pIlc;
-
-                if (aSelector == last3_0) {
-                    pIlc = &ilc3_0;
-                } else if (aSelector == last3_1) {
-                    pIlc = &ilc3_1;
-                } else {
-                    if (flip3 == 0) {
-                        pIlc = &ilc3_0;
-                        flip3 = 1;
-                        last3_0 = aSelector;
-                    } else {
-                        pIlc = &ilc3_1;
-                        flip3 = 0;
-                        last3_1 = aSelector;
-                    }
-
-                    pIlc->ilc_func = __SEND3ADDR__;
-                    if (pIlc->ilc_poly) {
-                        __flushPolyCache(pIlc->ilc_poly);
-                        pIlc->ilc_poly = 0;
-                    }
-                }
-                RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc, argP[0], argP[1], argP[2]));
-            } else {
-                static struct inlineCache ilc3 = __DUMMYILCSELF3(@line+1);
-                RETURN (_SEND3(self, aSelector, nil, &ilc3, argP[0], argP[1], argP[2]));
-            }
-
-        case 4:
-            {
-                static OBJ last4 = nil; static struct inlineCache ilc4 = __ILCPERF4(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last4)) {
-                    ilc4.ilc_func = __SEND4ADDR__;
-                    if (ilc4.ilc_poly) {
-                        __flushPolyCache(ilc4.ilc_poly);
-                        ilc4.ilc_poly = 0;
-                    }
-                    last4 = aSelector;
-                }
-                RETURN ( (*ilc4.ilc_func)(self, aSelector, nil, &ilc4,
-                                                argP[0], argP[1], argP[2], argP[3]));
-            }
-
-        case 5:
-            {
-                static OBJ last5 = nil; static struct inlineCache ilc5 = __ILCPERF5(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last5)) {
-                    ilc5.ilc_func = __SEND5ADDR__;
-                    if (ilc5.ilc_poly) {
-                        __flushPolyCache(ilc5.ilc_poly);
-                        ilc5.ilc_poly = 0;
-                    }
-                    last5 = aSelector;
-                }
-                RETURN ( (*ilc5.ilc_func)(self, aSelector, nil, &ilc5,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4]));
-            }
-
-        case 6:
-            {
-                static OBJ last6 = nil; static struct inlineCache ilc6 = __ILCPERF6(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last6)) {
-                    ilc6.ilc_func = __SEND6ADDR__;
-                    if (ilc6.ilc_poly) {
-                        __flushPolyCache(ilc6.ilc_poly);
-                        ilc6.ilc_poly = 0;
-                    }
-                    last6 = aSelector;
-                }
-                RETURN ( (*ilc6.ilc_func)(self, aSelector, nil, &ilc6,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5]));
-            }
-
-        case 7:
-            {
-                static OBJ last7 = nil; static struct inlineCache ilc7 = __ILCPERF7(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last7)) {
-                    ilc7.ilc_func = __SEND7ADDR__;
-                    if (ilc7.ilc_poly) {
-                        __flushPolyCache(ilc7.ilc_poly);
-                        ilc7.ilc_poly = 0;
-                    }
-                    last7 = aSelector;
-                }
-                RETURN ( (*ilc7.ilc_func)(self, aSelector, nil, &ilc7,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6]));
-            }
-
-        case 8:
-            {
-                static OBJ last8 = nil; static struct inlineCache ilc8 = __ILCPERF8(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last8)) {
-                    ilc8.ilc_func = __SEND8ADDR__;
-                    if (ilc8.ilc_poly) {
-                        __flushPolyCache(ilc8.ilc_poly);
-                        ilc8.ilc_poly = 0;
-                    }
-                    last8 = aSelector;
-                }
-                RETURN ( (*ilc8.ilc_func)(self, aSelector, nil, &ilc8,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7]));
-            }
-
-        case 9:
-            {
-                static OBJ last9 = nil; static struct inlineCache ilc9 = __ILCPERF9(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last9)) {
-                    ilc9.ilc_func = __SEND9ADDR__;
-                    if (ilc9.ilc_poly) {
-                        __flushPolyCache(ilc9.ilc_poly);
-                        ilc9.ilc_poly = 0;
-                    }
-                    last9 = aSelector;
-                }
-                RETURN ( (*ilc9.ilc_func)(self, aSelector, nil, &ilc9,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7], argP[8]));
-            }
-
-        case 10:
-            {
-                static OBJ last10 = nil; static struct inlineCache ilc10 = __ILCPERF10(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last10)) {
-                    ilc10.ilc_func = __SEND10ADDR__;
-                    if (ilc10.ilc_poly) {
-                        __flushPolyCache(ilc10.ilc_poly);
-                        ilc10.ilc_poly = 0;
-                    }
-                    last10 = aSelector;
-                }
-                RETURN ( (*ilc10.ilc_func)(self, aSelector, nil, &ilc10,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7], argP[8], argP[9]));
-            }
-
-        case 11:
-            {
-                static OBJ last11 = nil; static struct inlineCache ilc11 = __ILCPERF11(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last11)) {
-                    ilc11.ilc_func = __SEND11ADDR__;
-                    if (ilc11.ilc_poly) {
-                        __flushPolyCache(ilc11.ilc_poly);
-                        ilc11.ilc_poly = 0;
-                    }
-                    last11 = aSelector;
-                }
-                RETURN ( (*ilc11.ilc_func)(self, aSelector, nil, &ilc11,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7], argP[8], argP[9],
-                                                argP[10]));
-            }
-
-        case 12:
-            {
-                static OBJ last12 = nil; static struct inlineCache ilc12 = __ILCPERF12(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last12)) {
-                    ilc12.ilc_func = __SEND12ADDR__;
-                    if (ilc12.ilc_poly) {
-                        __flushPolyCache(ilc12.ilc_poly);
-                        ilc12.ilc_poly = 0;
-                    }
-                    last12 = aSelector;
-                }
-                RETURN ( (*ilc12.ilc_func)(self, aSelector, nil, &ilc12,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7], argP[8], argP[9],
-                                                argP[10], argP[11]));
-            }
-
-        case 13:
-            {
-                static OBJ last13 = nil; static struct inlineCache ilc13 = __ILCPERF13(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last13)) {
-                    ilc13.ilc_func = __SEND13ADDR__;
-                    if (ilc13.ilc_poly) {
-                        __flushPolyCache(ilc13.ilc_poly);
-                        ilc13.ilc_poly = 0;
-                    }
-                    last13 = aSelector;
-                }
-                RETURN ( (*ilc13.ilc_func)(self, aSelector, nil, &ilc13,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7], argP[8], argP[9],
-                                                argP[10], argP[11], argP[12]));
-            }
-
-        case 14:
-            {
-                static OBJ last14 = nil; static struct inlineCache ilc14 = __ILCPERF14(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last14)) {
-                    ilc14.ilc_func = __SEND14ADDR__;
-                    if (ilc14.ilc_poly) {
-                        __flushPolyCache(ilc14.ilc_poly);
-                        ilc14.ilc_poly = 0;
-                    }
-                    last14 = aSelector;
-                }
-                RETURN ( (*ilc14.ilc_func)(self, aSelector, nil, &ilc14,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7], argP[8], argP[9],
-                                                argP[10], argP[11], argP[12], argP[13]));
-            }
-
-        case 15:
-            {
-                static OBJ last15 = nil; static struct inlineCache ilc15 = __ILCPERF15(@line);
-
-                if ((InterruptPending != nil) || (aSelector != last15)) {
-                    ilc15.ilc_func = __SEND15ADDR__;
-                    if (ilc15.ilc_poly) {
-                        __flushPolyCache(ilc15.ilc_poly);
-                        ilc15.ilc_poly = 0;
-                    }
-                    last15 = aSelector;
-                }
-                RETURN ( (*ilc15.ilc_func)(self, aSelector, nil, &ilc15,
-                                                argP[0], argP[1], argP[2], argP[3], argP[4],
-                                                argP[5], argP[6], argP[7], argP[8], argP[9],
-                                                argP[10], argP[11], argP[12], argP[13],
-                                                argP[14]));
-            }
+	case 0:
+	    if (InterruptPending == nil) {
+		static OBJ last0_0 = nil; static struct inlineCache ilc0_0 = __ILCPERF0(@line);
+		static OBJ last0_1 = nil; static struct inlineCache ilc0_1 = __ILCPERF0(@line);
+		static OBJ last0_2 = nil; static struct inlineCache ilc0_2 = __ILCPERF0(@line);
+		static OBJ last0_3 = nil; static struct inlineCache ilc0_3 = __ILCPERF0(@line);
+		static int flip0 = 0;
+		struct inlineCache *pIlc;
+
+		if (aSelector == last0_0) {
+		    pIlc = &ilc0_0;
+		} else if (aSelector == last0_1) {
+		    pIlc = &ilc0_1;
+		} else if (aSelector == last0_2) {
+		    pIlc = &ilc0_2;
+		} else if (aSelector == last0_3) {
+		    pIlc = &ilc0_3;
+		} else {
+		    if (flip0 == 0) {
+			pIlc = &ilc0_0;
+			flip0 = 1;
+			last0_0 = aSelector;
+		    } else if (flip0 == 1) {
+			pIlc = &ilc0_1;
+			flip0 = 2;
+			last0_1 = aSelector;
+		    } else if (flip0 == 2) {
+			pIlc = &ilc0_2;
+			flip0 = 3;
+			last0_2 = aSelector;
+		    } else {
+			pIlc = &ilc0_3;
+			flip0 = 0;
+			last0_3 = aSelector;
+		    }
+
+		    pIlc->ilc_func = __SEND0ADDR__;
+		    if (pIlc->ilc_poly) {
+			__flushPolyCache(pIlc->ilc_poly);
+			pIlc->ilc_poly = 0;
+		    }
+		}
+		RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc));
+	    } else {
+		static struct inlineCache ilc0 = __DUMMYILCSELF0(@line+1);
+		RETURN (_SEND0(self, aSelector, nil, &ilc0));
+	    }
+
+	case 1:
+	    if (InterruptPending == nil) {
+		static OBJ last1_0 = nil; static struct inlineCache ilc1_0 = __ILCPERF1(@line);
+		static OBJ last1_1 = nil; static struct inlineCache ilc1_1 = __ILCPERF1(@line);
+		static OBJ last1_2 = nil; static struct inlineCache ilc1_2 = __ILCPERF1(@line);
+		static OBJ last1_3 = nil; static struct inlineCache ilc1_3 = __ILCPERF1(@line);
+		static int flip1 = 0;
+		struct inlineCache *pIlc;
+
+		if (aSelector == last1_0) {
+		    pIlc = &ilc1_0;
+		} else if (aSelector == last1_1) {
+		    pIlc = &ilc1_1;
+		} else if (aSelector == last1_2) {
+		    pIlc = &ilc1_2;
+		} else if (aSelector == last1_3) {
+		    pIlc = &ilc1_3;
+		} else {
+		    if (flip1 == 0) {
+			pIlc = &ilc1_0;
+			flip1 = 1;
+			last1_0 = aSelector;
+		    } else if (flip1 == 1) {
+			pIlc = &ilc1_1;
+			flip1 = 2;
+			last1_1 = aSelector;
+		    } else if (flip1 == 2) {
+			pIlc = &ilc1_2;
+			flip1 = 3;
+			last1_2 = aSelector;
+		    } else {
+			pIlc = &ilc1_3;
+			flip1 = 0;
+			last1_3 = aSelector;
+		    }
+
+		    pIlc->ilc_func = __SEND1ADDR__;
+		    if (pIlc->ilc_poly) {
+			__flushPolyCache(pIlc->ilc_poly);
+			pIlc->ilc_poly = 0;
+		    }
+		}
+		RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc, argP[0]));
+	    } else {
+		static struct inlineCache ilc1 = __DUMMYILCSELF1(@line+1);
+		RETURN (_SEND1(self, aSelector, nil, &ilc1, argP[0]));
+	    }
+
+	case 2:
+	    if (InterruptPending == nil) {
+		static OBJ last2_0 = nil; static struct inlineCache ilc2_0 = __ILCPERF2(@line);
+		static OBJ last2_1 = nil; static struct inlineCache ilc2_1 = __ILCPERF2(@line);
+		static int flip2 = 0;
+		struct inlineCache *pIlc;
+
+		if (aSelector == last2_0) {
+		    pIlc = &ilc2_0;
+		} else if (aSelector == last2_1) {
+		    pIlc = &ilc2_1;
+		} else {
+		    if (flip2 == 0) {
+			pIlc = &ilc2_0;
+			flip2 = 1;
+			last2_0 = aSelector;
+		    } else {
+			pIlc = &ilc2_1;
+			flip2 = 0;
+			last2_1 = aSelector;
+		    }
+
+		    pIlc->ilc_func = __SEND2ADDR__;
+		    if (pIlc->ilc_poly) {
+			__flushPolyCache(pIlc->ilc_poly);
+			pIlc->ilc_poly = 0;
+		    }
+		}
+		RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc, argP[0], argP[1]));
+	    } else {
+		static struct inlineCache ilc2 = __DUMMYILCSELF2(@line+1);
+		RETURN (_SEND2(self, aSelector, nil, &ilc2, argP[0], argP[1]));
+	    }
+
+	case 3:
+	    if (InterruptPending == nil) {
+		static OBJ last3_0 = nil; static struct inlineCache ilc3_0 = __ILCPERF3(@line);
+		static OBJ last3_1 = nil; static struct inlineCache ilc3_1 = __ILCPERF3(@line);
+		static int flip3 = 0;
+		struct inlineCache *pIlc;
+
+		if (aSelector == last3_0) {
+		    pIlc = &ilc3_0;
+		} else if (aSelector == last3_1) {
+		    pIlc = &ilc3_1;
+		} else {
+		    if (flip3 == 0) {
+			pIlc = &ilc3_0;
+			flip3 = 1;
+			last3_0 = aSelector;
+		    } else {
+			pIlc = &ilc3_1;
+			flip3 = 0;
+			last3_1 = aSelector;
+		    }
+
+		    pIlc->ilc_func = __SEND3ADDR__;
+		    if (pIlc->ilc_poly) {
+			__flushPolyCache(pIlc->ilc_poly);
+			pIlc->ilc_poly = 0;
+		    }
+		}
+		RETURN ((*pIlc->ilc_func)(self, aSelector, nil, pIlc, argP[0], argP[1], argP[2]));
+	    } else {
+		static struct inlineCache ilc3 = __DUMMYILCSELF3(@line+1);
+		RETURN (_SEND3(self, aSelector, nil, &ilc3, argP[0], argP[1], argP[2]));
+	    }
+
+	case 4:
+	    {
+		static OBJ last4 = nil; static struct inlineCache ilc4 = __ILCPERF4(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last4)) {
+		    ilc4.ilc_func = __SEND4ADDR__;
+		    if (ilc4.ilc_poly) {
+			__flushPolyCache(ilc4.ilc_poly);
+			ilc4.ilc_poly = 0;
+		    }
+		    last4 = aSelector;
+		}
+		RETURN ( (*ilc4.ilc_func)(self, aSelector, nil, &ilc4,
+						argP[0], argP[1], argP[2], argP[3]));
+	    }
+
+	case 5:
+	    {
+		static OBJ last5 = nil; static struct inlineCache ilc5 = __ILCPERF5(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last5)) {
+		    ilc5.ilc_func = __SEND5ADDR__;
+		    if (ilc5.ilc_poly) {
+			__flushPolyCache(ilc5.ilc_poly);
+			ilc5.ilc_poly = 0;
+		    }
+		    last5 = aSelector;
+		}
+		RETURN ( (*ilc5.ilc_func)(self, aSelector, nil, &ilc5,
+						argP[0], argP[1], argP[2], argP[3], argP[4]));
+	    }
+
+	case 6:
+	    {
+		static OBJ last6 = nil; static struct inlineCache ilc6 = __ILCPERF6(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last6)) {
+		    ilc6.ilc_func = __SEND6ADDR__;
+		    if (ilc6.ilc_poly) {
+			__flushPolyCache(ilc6.ilc_poly);
+			ilc6.ilc_poly = 0;
+		    }
+		    last6 = aSelector;
+		}
+		RETURN ( (*ilc6.ilc_func)(self, aSelector, nil, &ilc6,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5]));
+	    }
+
+	case 7:
+	    {
+		static OBJ last7 = nil; static struct inlineCache ilc7 = __ILCPERF7(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last7)) {
+		    ilc7.ilc_func = __SEND7ADDR__;
+		    if (ilc7.ilc_poly) {
+			__flushPolyCache(ilc7.ilc_poly);
+			ilc7.ilc_poly = 0;
+		    }
+		    last7 = aSelector;
+		}
+		RETURN ( (*ilc7.ilc_func)(self, aSelector, nil, &ilc7,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6]));
+	    }
+
+	case 8:
+	    {
+		static OBJ last8 = nil; static struct inlineCache ilc8 = __ILCPERF8(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last8)) {
+		    ilc8.ilc_func = __SEND8ADDR__;
+		    if (ilc8.ilc_poly) {
+			__flushPolyCache(ilc8.ilc_poly);
+			ilc8.ilc_poly = 0;
+		    }
+		    last8 = aSelector;
+		}
+		RETURN ( (*ilc8.ilc_func)(self, aSelector, nil, &ilc8,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7]));
+	    }
+
+	case 9:
+	    {
+		static OBJ last9 = nil; static struct inlineCache ilc9 = __ILCPERF9(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last9)) {
+		    ilc9.ilc_func = __SEND9ADDR__;
+		    if (ilc9.ilc_poly) {
+			__flushPolyCache(ilc9.ilc_poly);
+			ilc9.ilc_poly = 0;
+		    }
+		    last9 = aSelector;
+		}
+		RETURN ( (*ilc9.ilc_func)(self, aSelector, nil, &ilc9,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7], argP[8]));
+	    }
+
+	case 10:
+	    {
+		static OBJ last10 = nil; static struct inlineCache ilc10 = __ILCPERF10(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last10)) {
+		    ilc10.ilc_func = __SEND10ADDR__;
+		    if (ilc10.ilc_poly) {
+			__flushPolyCache(ilc10.ilc_poly);
+			ilc10.ilc_poly = 0;
+		    }
+		    last10 = aSelector;
+		}
+		RETURN ( (*ilc10.ilc_func)(self, aSelector, nil, &ilc10,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7], argP[8], argP[9]));
+	    }
+
+	case 11:
+	    {
+		static OBJ last11 = nil; static struct inlineCache ilc11 = __ILCPERF11(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last11)) {
+		    ilc11.ilc_func = __SEND11ADDR__;
+		    if (ilc11.ilc_poly) {
+			__flushPolyCache(ilc11.ilc_poly);
+			ilc11.ilc_poly = 0;
+		    }
+		    last11 = aSelector;
+		}
+		RETURN ( (*ilc11.ilc_func)(self, aSelector, nil, &ilc11,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7], argP[8], argP[9],
+						argP[10]));
+	    }
+
+	case 12:
+	    {
+		static OBJ last12 = nil; static struct inlineCache ilc12 = __ILCPERF12(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last12)) {
+		    ilc12.ilc_func = __SEND12ADDR__;
+		    if (ilc12.ilc_poly) {
+			__flushPolyCache(ilc12.ilc_poly);
+			ilc12.ilc_poly = 0;
+		    }
+		    last12 = aSelector;
+		}
+		RETURN ( (*ilc12.ilc_func)(self, aSelector, nil, &ilc12,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7], argP[8], argP[9],
+						argP[10], argP[11]));
+	    }
+
+	case 13:
+	    {
+		static OBJ last13 = nil; static struct inlineCache ilc13 = __ILCPERF13(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last13)) {
+		    ilc13.ilc_func = __SEND13ADDR__;
+		    if (ilc13.ilc_poly) {
+			__flushPolyCache(ilc13.ilc_poly);
+			ilc13.ilc_poly = 0;
+		    }
+		    last13 = aSelector;
+		}
+		RETURN ( (*ilc13.ilc_func)(self, aSelector, nil, &ilc13,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7], argP[8], argP[9],
+						argP[10], argP[11], argP[12]));
+	    }
+
+	case 14:
+	    {
+		static OBJ last14 = nil; static struct inlineCache ilc14 = __ILCPERF14(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last14)) {
+		    ilc14.ilc_func = __SEND14ADDR__;
+		    if (ilc14.ilc_poly) {
+			__flushPolyCache(ilc14.ilc_poly);
+			ilc14.ilc_poly = 0;
+		    }
+		    last14 = aSelector;
+		}
+		RETURN ( (*ilc14.ilc_func)(self, aSelector, nil, &ilc14,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7], argP[8], argP[9],
+						argP[10], argP[11], argP[12], argP[13]));
+	    }
+
+	case 15:
+	    {
+		static OBJ last15 = nil; static struct inlineCache ilc15 = __ILCPERF15(@line);
+
+		if ((InterruptPending != nil) || (aSelector != last15)) {
+		    ilc15.ilc_func = __SEND15ADDR__;
+		    if (ilc15.ilc_poly) {
+			__flushPolyCache(ilc15.ilc_poly);
+			ilc15.ilc_poly = 0;
+		    }
+		    last15 = aSelector;
+		}
+		RETURN ( (*ilc15.ilc_func)(self, aSelector, nil, &ilc15,
+						argP[0], argP[1], argP[2], argP[3], argP[4],
+						argP[5], argP[6], argP[7], argP[8], argP[9],
+						argP[10], argP[11], argP[12], argP[13],
+						argP[14]));
+	    }
     }
 bad:;
 %}.
@@ -5945,7 +5945,7 @@
      If the message expects an argument, pass arg."
 
     aSelector numArgs == 1 ifTrue:[
-        ^ self perform:aSelector with:arg
+	^ self perform:aSelector with:arg
     ].
     ^ self perform:aSelector
 
@@ -5970,10 +5970,10 @@
 
     numArgs := aSelector numArgs.
     numArgs == 0 ifTrue:[
-        ^ self perform:aSelector
+	^ self perform:aSelector
     ].
     numArgs == 1 ifTrue:[
-        ^ self perform:aSelector with:optionalArg1
+	^ self perform:aSelector with:optionalArg1
     ].
     ^ self perform:aSelector with:optionalArg1 with:optionalArg2.
 
@@ -5998,13 +5998,13 @@
 
     numArgs := aSelector numArgs.
     numArgs == 0 ifTrue:[
-        ^ self perform:aSelector
+	^ self perform:aSelector
     ].
     numArgs == 1 ifTrue:[
-        ^ self perform:aSelector with:optionalArg1
+	^ self perform:aSelector with:optionalArg1
     ].
     numArgs == 2 ifTrue:[
-        ^ self perform:aSelector with:optionalArg1 with:optionalArg2
+	^ self perform:aSelector with:optionalArg1 with:optionalArg2
     ].
     ^ self perform:aSelector with:optionalArg1 with:optionalArg2 with:optionalArg3.
 
@@ -6029,16 +6029,16 @@
 
     numArgs := aSelector numArgs.
     numArgs == 0 ifTrue:[
-        ^ self perform:aSelector
+	^ self perform:aSelector
     ].
     numArgs == 1 ifTrue:[
-        ^ self perform:aSelector with:optionalArg1
+	^ self perform:aSelector with:optionalArg1
     ].
     numArgs == 2 ifTrue:[
-        ^ self perform:aSelector with:optionalArg1 with:optionalArg2
+	^ self perform:aSelector with:optionalArg1 with:optionalArg2
     ].
     numArgs == 3 ifTrue:[
-        ^ self perform:aSelector with:optionalArg1 with:optionalArg2 with:optionalArg3
+	^ self perform:aSelector with:optionalArg1 with:optionalArg2 with:optionalArg3
     ].
     ^ self perform:aSelector with:optionalArg1 with:optionalArg2 with:optionalArg3 with:optionalArg4.
 
@@ -6060,8 +6060,8 @@
      This is a non-object-oriented entry, applying a method
      in a functional way on a receiver.
      Warning:
-         Take care for the method to be appropriate for the
-         receiver - no checking is done by the VM."
+	 Take care for the method to be appropriate for the
+	 receiver - no checking is done by the VM."
 
     ^ aMethod valueWithReceiver:self arguments:#()
 
@@ -6090,8 +6090,8 @@
      This is a non-object-oriented entry, applying a method
      in a functional way on a receiver.
      Warning:
-         Take care for the method to be appropriate for the
-         receiver - no checking is done by the VM."
+	 Take care for the method to be appropriate for the
+	 receiver - no checking is done by the VM."
 
     ^ aMethod valueWithReceiver:self arguments:argumentArray
 
@@ -6111,8 +6111,8 @@
      This is a non-object-oriented entry, applying a method
      in a functional way on a receiver.
      Warning:
-         Take care for the method to be appropriate for the
-         receiver - no checking is done by the VM."
+	 Take care for the method to be appropriate for the
+	 receiver - no checking is done by the VM."
 
     ^ aMethod valueWithReceiver:self arguments:(Array with:arg)
 
@@ -6132,8 +6132,8 @@
      This is a non-object-oriented entry, applying a method
      in a functional way on a receiver.
      Warning:
-         Take care for the method to be appropriate for the
-         receiver - no checking is done by the VM."
+	 Take care for the method to be appropriate for the
+	 receiver - no checking is done by the VM."
 
     ^ aMethod valueWithReceiver:self arguments:(Array with:arg1 with:arg2)
 
@@ -6155,8 +6155,8 @@
      This is a non-object-oriented entry, applying a method
      in a functional way on a receiver.
      Warning:
-         Take care for the method to be appropriate for the
-         receiver - no checking is done by the VM."
+	 Take care for the method to be appropriate for the
+	 receiver - no checking is done by the VM."
 
     ^ aMethod valueWithReceiver:self arguments:(Array with:arg1 with:arg2 with:arg3)
 
@@ -6178,10 +6178,10 @@
 
     ret := 0.
     anAspectSymbol notNil ifTrue:[
-        ret := self perform:anAspectSymbol ifNotUnderstood:[0].
+	ret := self perform:anAspectSymbol ifNotUnderstood:[0].
     ].
     ret == 0 ifTrue:[
-        ^ self elementDescriptorForNonNilInstanceVariables
+	^ self elementDescriptorForNonNilInstanceVariables
     ].
     ^ ret.
 !
@@ -6214,16 +6214,16 @@
 
     instVarNames := theClass allInstVarNames.
     1 to:instSize do:[:i | |var|
-        var := self instVarAt:i.
-        (aBlock value:var) ifTrue:[
-            children add:((instVarNames at:i) -> var)
-        ]
+	var := self instVarAt:i.
+	(aBlock value:var) ifTrue:[
+	    children add:((instVarNames at:i) -> var)
+	]
     ].
 
     varSize ~~ 0 ifTrue:[
-        1 to:varSize do:[:i |
-            children add:(i -> (self basicAt:i))
-        ]
+	1 to:varSize do:[:i |
+	    children add:(i -> (self basicAt:i))
+	]
     ].
 
     ^ children.
@@ -6276,7 +6276,7 @@
     | cls|
 
     (cls := self class) == self ifTrue:[
-        ^ 'a funny object'
+	^ 'a funny object'
     ].
     ^ cls nameWithArticle
 
@@ -6298,10 +6298,10 @@
     |s|
 
     s := Processor activeProcess isSystemProcess
-                        ifTrue:Stderr
-                        ifFalse:Transcript.
+			ifTrue:Stderr
+			ifFalse:Transcript.
     StreamError catch:[
-        self printOn:s
+	self printOn:s
     ]
 
     "Modified: / 29-05-2007 / 20:00:54 / cg"
@@ -6317,11 +6317,11 @@
     |s|
 
     s := Processor activeProcess isSystemProcess
-                        ifTrue:Stderr
-                        ifFalse:Transcript.
+			ifTrue:Stderr
+			ifFalse:Transcript.
     StreamError catch:[
-        self printOn:s.
-        s cr
+	self printOn:s.
+	s cr
     ]
 
     "Created: / 20-05-1996 / 10:20:41 / cg"
@@ -6361,7 +6361,7 @@
      These messages can be turned on/off by 'Object infoPrinting:true/false'"
 
     InfoPrinting == true ifTrue:[
-        self errorPrint
+	self errorPrint
     ]
 !
 
@@ -6374,7 +6374,7 @@
      These messages can be turned on/off by 'Object infoPrinting:true/false'"
 
     InfoPrinting == true ifTrue:[
-        self errorPrintCR
+	self errorPrintCR
     ]
 
     "Created: 20.5.1996 / 10:21:28 / cg"
@@ -6398,8 +6398,8 @@
     "/ (depends on string to respond to #print)
 
     Stdout isNil ifTrue:[
-        self printString print.
-        ^ self
+	self printString print.
+	^ self
     ].
     self printOn:Stdout
 
@@ -6414,8 +6414,8 @@
     "/ (depends on string to respond to #printCR)
 
     Stdout isNil ifTrue:[
-        self printString printCR.
-        ^ self
+	self printString printCR.
+	^ self
     ].
     self printOn:Stdout.
     Stdout cr
@@ -6643,9 +6643,9 @@
     |rslt|
 
     Error handle:[:ex |
-        rslt := exceptionBlock value
+	rslt := exceptionBlock value
     ] do:[
-        rslt := self printString
+	rslt := self printString
     ].
     ^ rslt
 !
@@ -6786,10 +6786,10 @@
     |myClass hasSemi sz "{ Class: SmallInteger }" |
 
     thisContext isRecursive ifTrue:[
-        Object recursiveStoreStringSignal raiseRequestWith:self.
-        ('Object [error]: storeString of self referencing object.') errorPrintCR.
-        aStream nextPutAll:'#("recursive")'.
-        ^ self
+	Object recursiveStoreStringSignal raiseRequestWith:self.
+	('Object [error]: storeString of self referencing object.') errorPrintCR.
+	aStream nextPutAll:'#("recursive")'.
+	^ self
     ].
 
     myClass := self class.
@@ -6798,34 +6798,34 @@
 
     hasSemi := false.
     myClass isVariable ifTrue:[
-        aStream nextPutAll:' basicNew:'.
-        self basicSize printOn:aStream
+	aStream nextPutAll:' basicNew:'.
+	self basicSize printOn:aStream
     ] ifFalse:[
-        aStream nextPutAll:' basicNew'
+	aStream nextPutAll:' basicNew'
     ].
 
     sz := myClass instSize.
     1 to:sz do:[:i |
-        aStream nextPutAll:' instVarAt:'.
-        i printOn:aStream.
-        aStream nextPutAll:' put:'.
-        (self instVarAt:i) storeOn:aStream.
-        aStream nextPut:$;.
-        hasSemi := true
+	aStream nextPutAll:' instVarAt:'.
+	i printOn:aStream.
+	aStream nextPutAll:' put:'.
+	(self instVarAt:i) storeOn:aStream.
+	aStream nextPut:$;.
+	hasSemi := true
     ].
     myClass isVariable ifTrue:[
-        sz := self basicSize.
-        1 to:sz do:[:i |
-            aStream nextPutAll:' basicAt:'.
-            i printOn:aStream.
-            aStream nextPutAll:' put:'.
-            (self basicAt:i) storeOn:aStream.
-            aStream nextPut:$;.
-            hasSemi := true
-        ]
+	sz := self basicSize.
+	1 to:sz do:[:i |
+	    aStream nextPutAll:' basicAt:'.
+	    i printOn:aStream.
+	    aStream nextPutAll:' put:'.
+	    (self basicAt:i) storeOn:aStream.
+	    aStream nextPut:$;.
+	    hasSemi := true
+	]
     ].
     hasSemi ifTrue:[
-        aStream nextPutAll:' yourself'
+	aStream nextPutAll:' yourself'
     ].
     aStream nextPut:$).
 
@@ -6903,43 +6903,43 @@
     nInstBytes = OHDR_SIZE + __OBJS2BYTES__( __intVal(__ClassInstPtr(myClass)->c_ninstvars) );
 
     switch ((INT)(__ClassInstPtr(myClass)->c_flags) & __MASKSMALLINT(ARRAYMASK)) {
-        case __MASKSMALLINT(POINTERARRAY):
-        case __MASKSMALLINT(WKPOINTERARRAY):
-            nbytes -= nInstBytes;
-            RETURN ( __mkSmallInteger(__BYTES2OBJS__(nbytes)) );
-
-        case __MASKSMALLINT(BYTEARRAY):
-            nbytes -= nInstBytes;
-            RETURN ( __mkSmallInteger(nbytes / sizeof(char)) );
-
-        case __MASKSMALLINT(FLOATARRAY):
-            nbytes -= nInstBytes;
-            RETURN ( __mkSmallInteger(nbytes / sizeof(float)) );
-
-        case __MASKSMALLINT(DOUBLEARRAY):
+	case __MASKSMALLINT(POINTERARRAY):
+	case __MASKSMALLINT(WKPOINTERARRAY):
+	    nbytes -= nInstBytes;
+	    RETURN ( __mkSmallInteger(__BYTES2OBJS__(nbytes)) );
+
+	case __MASKSMALLINT(BYTEARRAY):
+	    nbytes -= nInstBytes;
+	    RETURN ( __mkSmallInteger(nbytes / sizeof(char)) );
+
+	case __MASKSMALLINT(FLOATARRAY):
+	    nbytes -= nInstBytes;
+	    RETURN ( __mkSmallInteger(nbytes / sizeof(float)) );
+
+	case __MASKSMALLINT(DOUBLEARRAY):
 #ifdef __NEED_DOUBLE_ALIGN
-            nInstBytes = (nInstBytes-1+__DOUBLE_ALIGN) &~ (__DOUBLE_ALIGN-1);
+	    nInstBytes = (nInstBytes-1+__DOUBLE_ALIGN) &~ (__DOUBLE_ALIGN-1);
 #endif
-            nbytes -= nInstBytes;
-            RETURN ( __mkSmallInteger(nbytes / sizeof(double)) );
-
-        case __MASKSMALLINT(WORDARRAY):
-        case __MASKSMALLINT(SWORDARRAY):
-            nbytes -= nInstBytes;
-            RETURN ( __mkSmallInteger(nbytes>>1) ); /* notice the hardcoded 2 here - not sizeof(short) */
-
-        case __MASKSMALLINT(LONGARRAY):
-        case __MASKSMALLINT(SLONGARRAY):
-            nbytes -= nInstBytes;
-            RETURN ( __mkSmallInteger(nbytes>>2) ); /* notice the hardcoded 4 here - not sizeof(int) */
-
-        case __MASKSMALLINT(LONGLONGARRAY):
-        case __MASKSMALLINT(SLONGLONGARRAY):
+	    nbytes -= nInstBytes;
+	    RETURN ( __mkSmallInteger(nbytes / sizeof(double)) );
+
+	case __MASKSMALLINT(WORDARRAY):
+	case __MASKSMALLINT(SWORDARRAY):
+	    nbytes -= nInstBytes;
+	    RETURN ( __mkSmallInteger(nbytes>>1) ); /* notice the hardcoded 2 here - not sizeof(short) */
+
+	case __MASKSMALLINT(LONGARRAY):
+	case __MASKSMALLINT(SLONGARRAY):
+	    nbytes -= nInstBytes;
+	    RETURN ( __mkSmallInteger(nbytes>>2) ); /* notice the hardcoded 4 here - not sizeof(int) */
+
+	case __MASKSMALLINT(LONGLONGARRAY):
+	case __MASKSMALLINT(SLONGLONGARRAY):
 #ifdef __NEED_LONGLONG_ALIGN
-            nInstBytes = (nInstBytes-1+__LONGLONG_ALIGN) &~ (__LONGLONG_ALIGN-1);
+	    nInstBytes = (nInstBytes-1+__LONGLONG_ALIGN) &~ (__LONGLONG_ALIGN-1);
 #endif
-            nbytes -= nInstBytes;
-            RETURN ( __mkSmallInteger(nbytes>>3) ); /* notice the hardcoded 8 here - not sizeof(long long) */
+	    nbytes -= nInstBytes;
+	    RETURN ( __mkSmallInteger(nbytes>>3) ); /* notice the hardcoded 8 here - not sizeof(long long) */
     }
 %}.
     ^ 0
@@ -6956,36 +6956,36 @@
 
     myClass := self class.
     myClass isVariable ifTrue:[
-        myClass isPointers ifFalse:[
-            myClass isBytes ifTrue:[
-                ^ self basicSize.
-            ].
-            myClass isWords ifTrue:[
-                ^ self basicSize * 2.
-            ].
-            myClass isSignedWords ifTrue:[
-                ^ self basicSize * 2.
-            ].
-            myClass isLongs ifTrue:[
-                ^ self basicSize * 4.
-            ].
-            myClass isSignedLongs ifTrue:[
-                ^ self basicSize * 4.
-            ].
-            myClass isLongLongs ifTrue:[
-                ^ self basicSize * 8.
-            ].
-            myClass isSignedLongLongs ifTrue:[
-                ^ self basicSize * 8.
-            ].
-            myClass isFloats ifTrue:[
-                ^ self basicSize * (ExternalBytes sizeofFloat)
-            ].
-            myClass isDoubles ifTrue:[
-                ^ self basicSize * (ExternalBytes sizeofDouble)
-            ].
-            self error:'unknown variable size class species'.
-        ]
+	myClass isPointers ifFalse:[
+	    myClass isBytes ifTrue:[
+		^ self basicSize.
+	    ].
+	    myClass isWords ifTrue:[
+		^ self basicSize * 2.
+	    ].
+	    myClass isSignedWords ifTrue:[
+		^ self basicSize * 2.
+	    ].
+	    myClass isLongs ifTrue:[
+		^ self basicSize * 4.
+	    ].
+	    myClass isSignedLongs ifTrue:[
+		^ self basicSize * 4.
+	    ].
+	    myClass isLongLongs ifTrue:[
+		^ self basicSize * 8.
+	    ].
+	    myClass isSignedLongLongs ifTrue:[
+		^ self basicSize * 8.
+	    ].
+	    myClass isFloats ifTrue:[
+		^ self basicSize * (ExternalBytes sizeofFloat)
+	    ].
+	    myClass isDoubles ifTrue:[
+		^ self basicSize * (ExternalBytes sizeofDouble)
+	    ].
+	    self error:'unknown variable size class species'.
+	]
     ].
     ^ 0
 
@@ -7026,7 +7026,7 @@
 %{  /* NOCONTEXT */
 
     if (__lookup(__Class(self), aSelector) == nil) {
-        RETURN ( false );
+	RETURN ( false );
     }
     RETURN ( true );
 %}
@@ -7112,20 +7112,20 @@
     |val ok|
 
     MessageNotUnderstood handle:[:ex |
-        "/ reject, if the bad message is not the one
-        "/ we have sent originally
-        ex selector == aSelector ifFalse:[
-            ex reject
-        ].
-        ex receiver == self ifFalse:[
-            ex reject
-        ].
+	"/ reject, if the bad message is not the one
+	"/ we have sent originally
+	ex selector == aSelector ifFalse:[
+	    ex reject
+	].
+	ex receiver == self ifFalse:[
+	    ex reject
+	].
     ] do:[
-        val := self perform:aSelector.
-        ok := true.
+	val := self perform:aSelector.
+	ok := true.
     ].
     ok isNil ifTrue:[
-        ^ exceptionBlock value
+	^ exceptionBlock value
     ].
     ^ val
 
@@ -7144,20 +7144,20 @@
     |val ok|
 
     MessageNotUnderstood handle:[:ex |
-        "/ reject, if the bad message is not the one
-        "/ we have sent originally
-        ex selector == aSelector ifFalse:[
-            ex reject
-        ].
-        ex receiver == self ifFalse:[
-            ex reject
-        ]
+	"/ reject, if the bad message is not the one
+	"/ we have sent originally
+	ex selector == aSelector ifFalse:[
+	    ex reject
+	].
+	ex receiver == self ifFalse:[
+	    ex reject
+	]
     ] do:[
-        val := self perform:aSelector with:argument.
-        ok := true.
+	val := self perform:aSelector with:argument.
+	ok := true.
     ].
     ok isNil ifTrue:[
-        ^ exceptionBlock value
+	^ exceptionBlock value
     ].
     ^ val
 
@@ -7179,20 +7179,20 @@
     |val ok|
 
     MessageNotUnderstood handle:[:ex |
-        "/ reject, if the bad message is not the one
-        "/ we have sent originally
-        ex selector == aSelector ifFalse:[
-            ex reject
-        ].
-        ex receiver == self ifFalse:[
-            ex reject
-        ]
+	"/ reject, if the bad message is not the one
+	"/ we have sent originally
+	ex selector == aSelector ifFalse:[
+	    ex reject
+	].
+	ex receiver == self ifFalse:[
+	    ex reject
+	]
     ] do:[
-        val := self perform:aSelector with:arg1 with:arg2.
-        ok := true.
+	val := self perform:aSelector with:arg1 with:arg2.
+	ok := true.
     ].
     ok isNil ifTrue:[
-        ^ exceptionBlock value
+	^ exceptionBlock value
     ].
     ^ val
 !
@@ -7205,20 +7205,20 @@
     |val ok|
 
     MessageNotUnderstood handle:[:ex |
-        "/ reject, if the bad message is not the one
-        "/ we have sent originally
-        ex selector == aSelector ifFalse:[
-            ex reject
-        ].
-        ex receiver == self ifFalse:[
-            ex reject
-        ]
+	"/ reject, if the bad message is not the one
+	"/ we have sent originally
+	ex selector == aSelector ifFalse:[
+	    ex reject
+	].
+	ex receiver == self ifFalse:[
+	    ex reject
+	]
     ] do:[
-        val := self perform:aSelector withArguments:argumentArray.
-        ok := true.
+	val := self perform:aSelector withArguments:argumentArray.
+	ok := true.
     ].
     ok isNil ifTrue:[
-        ^ exceptionBlock value
+	^ exceptionBlock value
     ].
     ^ val
 
@@ -7274,148 +7274,148 @@
     int nInsts, inst;
 
     if (! __isNonNilObject(self)) {
-        RETURN (false);
+	RETURN (false);
     }
 
     if (__isArrayLike(aCollection)) {
-        int nObjs = __arraySize(aCollection);
-        char *minAddr = 0, *maxAddr = 0;
-
-        if (nObjs == 0) {
-            RETURN (false);
-        }
-
-        /*
-         * a little optimization: use the fact that all old objects
-         * refering to a new object are on the remSet; if I am not,
-         * a trivial reject is possible, if all objects are newbees.
-         * as a side effect, gather min/max addresses
-         */
-        if ((__qSpace(self) <= OLDSPACE) && !__isRemembered(self)) {
-            int allNewBees = 1;
-            int i;
-
-            minAddr = (char *)(__ArrayInstPtr(aCollection)->a_element[0]);
-            maxAddr = minAddr;
-
-            for (i=0; i<nObjs; i++) {
-                OBJ anObject;
-
-                anObject = __ArrayInstPtr(aCollection)->a_element[i];
-
-                if (__isNonNilObject(anObject)) {
-                    int spc;
-
-                    if (((spc = __qSpace(anObject)) != NEWSPACE) && (spc != SURVSPACE)) {
-                        allNewBees = 0;
-                    }
-                }
-
-                if ((char *)anObject < minAddr) {
-                    minAddr = (char *)anObject;
-                } else if ((char *)anObject > maxAddr) {
-                    maxAddr = (char *)anObject;
-                }
-            }
-            if (allNewBees) {
-                RETURN (false);
-            }
-        }
-
-        /*
-         * fetch min/max in searchList (if not already done)
-         */
-        if (minAddr == 0) {
-            int i;
-
-            for (i=0; i<nObjs; i++) {
-                OBJ anObject;
-
-                anObject = __ArrayInstPtr(aCollection)->a_element[i];
-                if ((char *)anObject < minAddr) {
-                    minAddr = (char *)anObject;
-                } else if ((char *)anObject > maxAddr) {
-                    maxAddr = (char *)anObject;
-                }
-            }
-        }
-
-        cls = __qClass(self);
-        if (((char *)cls >= minAddr) && ((char *)cls <= maxAddr)) {
+	int nObjs = __arraySize(aCollection);
+	char *minAddr = 0, *maxAddr = 0;
+
+	if (nObjs == 0) {
+	    RETURN (false);
+	}
+
+	/*
+	 * a little optimization: use the fact that all old objects
+	 * refering to a new object are on the remSet; if I am not,
+	 * a trivial reject is possible, if all objects are newbees.
+	 * as a side effect, gather min/max addresses
+	 */
+	if ((__qSpace(self) <= OLDSPACE) && !__isRemembered(self)) {
+	    int allNewBees = 1;
+	    int i;
+
+	    minAddr = (char *)(__ArrayInstPtr(aCollection)->a_element[0]);
+	    maxAddr = minAddr;
+
+	    for (i=0; i<nObjs; i++) {
+		OBJ anObject;
+
+		anObject = __ArrayInstPtr(aCollection)->a_element[i];
+
+		if (__isNonNilObject(anObject)) {
+		    int spc;
+
+		    if (((spc = __qSpace(anObject)) != NEWSPACE) && (spc != SURVSPACE)) {
+			allNewBees = 0;
+		    }
+		}
+
+		if ((char *)anObject < minAddr) {
+		    minAddr = (char *)anObject;
+		} else if ((char *)anObject > maxAddr) {
+		    maxAddr = (char *)anObject;
+		}
+	    }
+	    if (allNewBees) {
+		RETURN (false);
+	    }
+	}
+
+	/*
+	 * fetch min/max in searchList (if not already done)
+	 */
+	if (minAddr == 0) {
+	    int i;
+
+	    for (i=0; i<nObjs; i++) {
+		OBJ anObject;
+
+		anObject = __ArrayInstPtr(aCollection)->a_element[i];
+		if ((char *)anObject < minAddr) {
+		    minAddr = (char *)anObject;
+		} else if ((char *)anObject > maxAddr) {
+		    maxAddr = (char *)anObject;
+		}
+	    }
+	}
+
+	cls = __qClass(self);
+	if (((char *)cls >= minAddr) && ((char *)cls <= maxAddr)) {
 #if defined(memsrch4)
-            if (memsrch4(__arrayVal(aCollection), (INT)cls, nObjs)) {
-                RETURN (true);
-            }
+	    if (memsrch4(__arrayVal(aCollection), (INT)cls, nObjs)) {
+		RETURN (true);
+	    }
 #else
-            int i;
-
-            for (i=0; i<nObjs; i++) {
-                OBJ anObject;
-
-                anObject = __ArrayInstPtr(aCollection)->a_element[i];
-                if (cls == anObject) {
-                    RETURN (true);
-                }
-            }
+	    int i;
+
+	    for (i=0; i<nObjs; i++) {
+		OBJ anObject;
+
+		anObject = __ArrayInstPtr(aCollection)->a_element[i];
+		if (cls == anObject) {
+		    RETURN (true);
+		}
+	    }
 #endif /* memsrch4 */
-        }
-
-        flags = __ClassInstPtr(cls)->c_flags;
-        if (((INT)flags & __MASKSMALLINT(ARRAYMASK)) == __MASKSMALLINT(POINTERARRAY)) {
-            nInsts = __BYTES2OBJS__(__qSize(self) - OHDR_SIZE);
-        } else {
-            nInsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
-        }
-        if (! nInsts) {
-            RETURN (false);
-        }
-
-        if (nObjs == 1) {
-            /* better reverse the loop */
-            OBJ anObject;
-
-            anObject = __ArrayInstPtr(aCollection)->a_element[0];
+	}
+
+	flags = __ClassInstPtr(cls)->c_flags;
+	if (((INT)flags & __MASKSMALLINT(ARRAYMASK)) == __MASKSMALLINT(POINTERARRAY)) {
+	    nInsts = __BYTES2OBJS__(__qSize(self) - OHDR_SIZE);
+	} else {
+	    nInsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
+	}
+	if (! nInsts) {
+	    RETURN (false);
+	}
+
+	if (nObjs == 1) {
+	    /* better reverse the loop */
+	    OBJ anObject;
+
+	    anObject = __ArrayInstPtr(aCollection)->a_element[0];
 #if defined(memsrch4)
-            if (memsrch4(__InstPtr(self)->i_instvars, (INT)anObject, nInsts)) {
-                RETURN (true);
-            }
+	    if (memsrch4(__InstPtr(self)->i_instvars, (INT)anObject, nInsts)) {
+		RETURN (true);
+	    }
 #else
-            for (inst=0; inst<nInsts; inst++) {
-                if ((__InstPtr(self)->i_instvars[inst]) == anObject) {
-                    RETURN (true);
-                }
-            }
+	    for (inst=0; inst<nInsts; inst++) {
+		if ((__InstPtr(self)->i_instvars[inst]) == anObject) {
+		    RETURN (true);
+		}
+	    }
 #endif
-            RETURN (false);
-        }
-
-        for (inst=0; inst<nInsts; inst++) {
-            OBJ instVar = __InstPtr(self)->i_instvars[inst];
-            int i;
-
-            if (((char *)instVar >= minAddr) && ((char *)instVar <= maxAddr)) {
+	    RETURN (false);
+	}
+
+	for (inst=0; inst<nInsts; inst++) {
+	    OBJ instVar = __InstPtr(self)->i_instvars[inst];
+	    int i;
+
+	    if (((char *)instVar >= minAddr) && ((char *)instVar <= maxAddr)) {
 #if defined(memsrch4)
-                if (memsrch4(__arrayVal(aCollection), (INT)instVar, nObjs)) {
-                    RETURN (true);
-                }
+		if (memsrch4(__arrayVal(aCollection), (INT)instVar, nObjs)) {
+		    RETURN (true);
+		}
 #else
-                for (i=0; i<nObjs; i++) {
-                    OBJ anObject;
-
-                    anObject = __ArrayInstPtr(aCollection)->a_element[i];
-                    if (instVar == anObject) {
-                        RETURN (true);
-                    }
-                }
+		for (i=0; i<nObjs; i++) {
+		    OBJ anObject;
+
+		    anObject = __ArrayInstPtr(aCollection)->a_element[i];
+		    if (instVar == anObject) {
+			RETURN (true);
+		    }
+		}
 #endif /* memsrch4 */
-            }
-        }
-        RETURN (false);
+	    }
+	}
+	RETURN (false);
     }
 %}.
 
     aCollection do:[:el |
-        (self referencesObject:el) ifTrue:[^ true].
+	(self referencesObject:el) ifTrue:[^ true].
     ].
     ^ false
 !
@@ -7435,19 +7435,19 @@
     "check the instance variables"
     numInst := myClass instSize.
     1 to:numInst do:[:i |
-        ((self instVarAt:i) isKindOf:aClass) ifTrue:[^ true]
+	((self instVarAt:i) isKindOf:aClass) ifTrue:[^ true]
     ].
 
     "check the indexed variables"
     myClass isVariable ifTrue:[
-        myClass isPointers ifFalse:[
-            "no need to search in non pointer fields"
-            ((aClass == Number) or:[aClass isSubclassOf:Number]) ifFalse:[^ false].
-        ].
-        numInst := self basicSize.
-        1 to:numInst do:[:i |
-            ((self basicAt:i) isKindOf:aClass) ifTrue:[^ true]
-        ]
+	myClass isPointers ifFalse:[
+	    "no need to search in non pointer fields"
+	    ((aClass == Number) or:[aClass isSubclassOf:Number]) ifFalse:[^ false].
+	].
+	numInst := self basicSize.
+	1 to:numInst do:[:i |
+	    ((self basicAt:i) isKindOf:aClass) ifTrue:[^ true]
+	]
     ].
     ^ false
 
@@ -7466,21 +7466,21 @@
     "check the instance variables"
     numInst := myClass instSize.
     1 to:numInst do:[:i |
-        inst := self instVarAt:i.
-        (checkBlock value:inst) ifTrue:[actionBlock value:inst].
+	inst := self instVarAt:i.
+	(checkBlock value:inst) ifTrue:[actionBlock value:inst].
     ].
 
     "check the indexed variables"
     myClass isVariable ifTrue:[
-        myClass isPointers ifTrue:[
-            "no need to search in non pointer fields"
-
-            numInst := self basicSize.
-            1 to:numInst do:[:i |
-                inst := self basicAt:i.
-                (checkBlock value:inst) ifTrue:[actionBlock value:inst].
-            ]
-        ]
+	myClass isPointers ifTrue:[
+	    "no need to search in non pointer fields"
+
+	    numInst := self basicSize.
+	    1 to:numInst do:[:i |
+		inst := self basicAt:i.
+		(checkBlock value:inst) ifTrue:[actionBlock value:inst].
+	    ]
+	]
     ].
 
     "
@@ -7504,24 +7504,24 @@
     "check the instance variables"
     numInst := myClass instSize.
     1 to:numInst do:[:i |
-        ((self instVarAt:i) isMemberOf:aClass) ifTrue:[^ true]
+	((self instVarAt:i) isMemberOf:aClass) ifTrue:[^ true]
     ].
 
     "check the indexed variables"
     myClass isVariable ifTrue:[
-        myClass isPointers ifFalse:[
-            "no need to search in non-pointer indexed fields"
-            myClass isLongs ifTrue:[
-                (aClass == SmallInteger or:[aClass == LargeInteger]) ifFalse:[^ false].
-            ] ifFalse:[
-                myClass isFloatsOrDoubles ifTrue:[^ aClass == Float].
-                ^ aClass == SmallInteger
-            ]
-        ].
-        numInst := self basicSize.
-        1 to:numInst do:[:i |
-            ((self basicAt:i) isMemberOf:aClass) ifTrue:[^ true]
-        ]
+	myClass isPointers ifFalse:[
+	    "no need to search in non-pointer indexed fields"
+	    myClass isLongs ifTrue:[
+		(aClass == SmallInteger or:[aClass == LargeInteger]) ifFalse:[^ false].
+	    ] ifFalse:[
+		myClass isFloatsOrDoubles ifTrue:[^ aClass == Float].
+		^ aClass == SmallInteger
+	    ]
+	].
+	numInst := self basicSize.
+	1 to:numInst do:[:i |
+	    ((self basicAt:i) isMemberOf:aClass) ifTrue:[^ true]
+	]
     ].
     ^ false
 
@@ -7541,7 +7541,7 @@
     int nInsts, i;
 
     if (! __isNonNilObject(self)) {
-        RETURN (false);
+	RETURN (false);
     }
 
     /*
@@ -7550,38 +7550,38 @@
      * a trivial reject is possible, if anObject is a newbee
      */
     if (__isNonNilObject(anObject)) {
-        if ((__qSpace(self) <= OLDSPACE) && !__isRemembered(self)) {
-            int spc;
-
-            if (((spc = __qSpace(anObject)) == NEWSPACE) || (spc == SURVSPACE)) {
-                RETURN (false);
-            }
-        }
+	if ((__qSpace(self) <= OLDSPACE) && !__isRemembered(self)) {
+	    int spc;
+
+	    if (((spc = __qSpace(anObject)) == NEWSPACE) || (spc == SURVSPACE)) {
+		RETURN (false);
+	    }
+	}
     }
 
     cls = __qClass(self);
     if (cls == anObject) {
-        RETURN (true);
+	RETURN (true);
     }
 
     flags = __ClassInstPtr(cls)->c_flags;
     if (((INT)flags & __MASKSMALLINT(ARRAYMASK)) == __MASKSMALLINT(POINTERARRAY)) {
-        nInsts = __BYTES2OBJS__(__qSize(self) - OHDR_SIZE);
+	nInsts = __BYTES2OBJS__(__qSize(self) - OHDR_SIZE);
     } else {
-        nInsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
+	nInsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
     }
     if (! nInsts) {
-        RETURN (false);
+	RETURN (false);
     }
 #if defined(memsrch4)
     if (memsrch4(__InstPtr(self)->i_instvars, (INT)anObject, nInsts)) {
-        RETURN (true);
+	RETURN (true);
     }
 #else
     for (i=0; i<nInsts; i++) {
-        if (__InstPtr(self)->i_instvars[i] == anObject) {
-            RETURN (true);
-        }
+	if (__InstPtr(self)->i_instvars[i] == anObject) {
+	    RETURN (true);
+	}
     }
 #endif /* memsrch4 */
 
@@ -7656,8 +7656,8 @@
 
     sema := self synchronizationSemaphore.
     sema notNil ifTrue:[
-        sema wait.              "/ get lock
-        self synchronizationSemaphore:nil.
+	sema wait.              "/ get lock
+	self synchronizationSemaphore:nil.
     ].
 
     "
@@ -7688,10 +7688,10 @@
      subclasses may redefine this method"
 
     aSemaphore isNil ifTrue:[
-        "/ remove Semaphore
-        SynchronizationSemaphores removeKey:self ifAbsent:nil.
+	"/ remove Semaphore
+	SynchronizationSemaphores removeKey:self ifAbsent:nil.
     ] ifFalse:[
-        SynchronizationSemaphores at:self put:aSemaphore.
+	SynchronizationSemaphores at:self put:aSemaphore.
     ].
 
     "Modified: 28.1.1997 / 19:37:48 / stefan"
@@ -7706,8 +7706,8 @@
 
     sema := self synchronizationSemaphore.
     sema isNil ifTrue:[
-        sema := RecursionLock new name:self className.
-        self synchronizationSemaphore:sema.
+	sema := RecursionLock new name:self className.
+	self synchronizationSemaphore:sema.
     ].
 
     wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
@@ -7746,7 +7746,7 @@
 
 %{  /* NOCONTEXT */
     if (! __isNonNilObject(self)) {
-        RETURN (self);
+	RETURN (self);
     }
     __beImmutable(self);
 %}
@@ -7757,7 +7757,7 @@
 
 %{  /* NOCONTEXT */
     if (! __isNonNilObject(self)) {
-        RETURN (self);
+	RETURN (self);
     }
     __beMutable(self);
 %}
@@ -7781,7 +7781,7 @@
       - the Collection-classes have been rewritten to not use it.)"
 %{
     if (__primBecome(self, anotherObject)) {
-        RETURN ( self );
+	RETURN ( self );
     }
 %}.
     self primitiveFailed
@@ -7797,7 +7797,7 @@
 
 %{
     if (__primBecomeNil(self)) {
-        RETURN ( nil );
+	RETURN ( nil );
     }
 %}.
     self primitiveFailed
@@ -7818,7 +7818,7 @@
      or nil, or is a context of a living method (i.e. one that has not already returned)."
 %{
     if (__primBecomeSameAs(self, anotherObject)) {
-        RETURN ( self );
+	RETURN ( self );
     }
 %}.
     self primitiveFailed
@@ -7839,72 +7839,72 @@
     "check for UndefinedObject/SmallInteger receiver or newClass"
 %{
     {
-        OBJ other = otherClass;
-
-        if (__isNonNilObject(self)
-         && __isNonNilObject(other)
-         && (other != UndefinedObject)
-         && (other != SmallInteger)) {
-            ok = true;
-        } else {
-            ok = false;
-        }
+	OBJ other = otherClass;
+
+	if (__isNonNilObject(self)
+	 && __isNonNilObject(other)
+	 && (other != UndefinedObject)
+	 && (other != SmallInteger)) {
+	    ok = true;
+	} else {
+	    ok = false;
+	}
     }
 %}.
     ok ifTrue:[
-        ok := false.
-        myClass := self class.
-        myClass flags == otherClass flags ifTrue:[
-            myClass instSize == otherClass instSize ifTrue:[
-                "same instance layout and types: its ok to do it"
-                ok := true.
-            ] ifFalse:[
-                myClass isPointers ifTrue:[
-                    myClass isVariable ifTrue:[
-                        ok := true
-                    ]
-                ]
-            ]
-        ] ifFalse:[
-            myClass isPointers ifTrue:[
-                "if newClass is a variable class, with instSize <= my instsize,
-                 we can do it (effectively mapping additional instvars into the
-                 variable part) - usefulness is questionable, though"
-
-                otherClass isPointers ifTrue:[
-                    otherClass isVariable ifTrue:[
-                        otherClass instSize <= (myClass instSize + self basicSize)
-                        ifTrue:[
-                            ok := true
-                        ]
-                    ] ifFalse:[
-                        otherClass instSize == (myClass instSize + self basicSize)
-                        ifTrue:[
-                            ok := true
-                        ]
-                    ]
-                ] ifFalse:[
-                    "it does not make sense to convert pointers to bytes ..."
-                ]
-            ] ifFalse:[
-                "does it make sense, to convert bits ?"
-                "could allow byteArray->wordArray->longArray->floatArray->doubleArray here ..."
-                (myClass isBitsExtended and:[otherClass isBitsExtended]) ifTrue:[
-                    ok := true
-                ]
-            ]
-        ]
+	ok := false.
+	myClass := self class.
+	myClass flags == otherClass flags ifTrue:[
+	    myClass instSize == otherClass instSize ifTrue:[
+		"same instance layout and types: its ok to do it"
+		ok := true.
+	    ] ifFalse:[
+		myClass isPointers ifTrue:[
+		    myClass isVariable ifTrue:[
+			ok := true
+		    ]
+		]
+	    ]
+	] ifFalse:[
+	    myClass isPointers ifTrue:[
+		"if newClass is a variable class, with instSize <= my instsize,
+		 we can do it (effectively mapping additional instvars into the
+		 variable part) - usefulness is questionable, though"
+
+		otherClass isPointers ifTrue:[
+		    otherClass isVariable ifTrue:[
+			otherClass instSize <= (myClass instSize + self basicSize)
+			ifTrue:[
+			    ok := true
+			]
+		    ] ifFalse:[
+			otherClass instSize == (myClass instSize + self basicSize)
+			ifTrue:[
+			    ok := true
+			]
+		    ]
+		] ifFalse:[
+		    "it does not make sense to convert pointers to bytes ..."
+		]
+	    ] ifFalse:[
+		"does it make sense, to convert bits ?"
+		"could allow byteArray->wordArray->longArray->floatArray->doubleArray here ..."
+		(myClass isBitsExtended and:[otherClass isBitsExtended]) ifTrue:[
+		    ok := true
+		]
+	    ]
+	]
     ].
     ok ifTrue:[
-        "now, change the receivers class ..."
+	"now, change the receivers class ..."
 %{
-        {
-            OBJ me = self;
-
-            __qClass(me) = otherClass;
-            __STORE(me, otherClass);
-            RETURN (me);
-        }
+	{
+	    OBJ me = self;
+
+	    __qClass(me) = otherClass;
+	    __STORE(me, otherClass);
+	    RETURN (me);
+	}
 %}.
     ].
 
@@ -7932,7 +7932,7 @@
 
 %{  /* NOCONTEXT */
     if (! __isNonNilObject(self)) {
-        RETURN (true);
+	RETURN (true);
     }
     RETURN (__isImmutable(self) ? true : false);
 %}
@@ -7948,7 +7948,7 @@
     int nInsts, i;
 
     if (! __isNonNilObject(self)) {
-        RETURN (false);
+	RETURN (false);
     }
 
     /*
@@ -7957,33 +7957,33 @@
      * a trivial reject is possible, if anObject is a newbee
      */
     if (__isNonNilObject(anObject)) {
-        if ((__qSpace(self) <= OLDSPACE) && !__isRemembered(self)) {
-            int spc;
-
-            if (((spc = __qSpace(anObject)) == NEWSPACE) || (spc == SURVSPACE)) {
-                RETURN (false);
-            }
-        }
+	if ((__qSpace(self) <= OLDSPACE) && !__isRemembered(self)) {
+	    int spc;
+
+	    if (((spc = __qSpace(anObject)) == NEWSPACE) || (spc == SURVSPACE)) {
+		RETURN (false);
+	    }
+	}
     }
 
     cls = __qClass(self);
 
     flags = __ClassInstPtr(cls)->c_flags;
     if (((INT)flags & __MASKSMALLINT(ARRAYMASK)) == __MASKSMALLINT(POINTERARRAY)) {
-        nInsts = __BYTES2OBJS__(__qSize(self) - OHDR_SIZE);
+	nInsts = __BYTES2OBJS__(__qSize(self) - OHDR_SIZE);
     } else {
-        nInsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
+	nInsts = __intVal(__ClassInstPtr(cls)->c_ninstvars);
     }
     if (! nInsts) {
-        RETURN (false);
+	RETURN (false);
     }
     anyChange = false;
     for (i=0; i<nInsts; i++) {
-        if (__InstPtr(self)->i_instvars[i] == anObject) {
-            __InstPtr(self)->i_instvars[i] = newRef;
-            __STORE(self, newRef);
-            anyChange = true;
-        }
+	if (__InstPtr(self)->i_instvars[i] == anObject) {
+	    __InstPtr(self)->i_instvars[i] = newRef;
+	    __STORE(self, newRef);
+	    anyChange = true;
+	}
     }
     RETURN (anyChange);
 %}.
@@ -8007,27 +8007,27 @@
       the recevier is retuned here.
 
       Thus, if foo and bar are simple variables or constants,
-          foo ? bar
+	  foo ? bar
       is the same as:
-          (foo isNil ifTrue:[bar] ifFalse:[foo])
+	  (foo isNil ifTrue:[bar] ifFalse:[foo])
 
       if they are message sends, the equivalent code is:
-          [
-              |t1 t2|
-
-              t1 := foo.
-              t2 := bar.
-              t1 isNil ifTrue:[t2] ifFalse:[t1]
-          ] value
+	  [
+	      |t1 t2|
+
+	      t1 := foo.
+	      t2 := bar.
+	      t1 isNil ifTrue:[t2] ifFalse:[t1]
+	  ] value
 
       Can be used to provide defaultValues to variables,
       as in:
-          foo := arg ? #defaultValue
+	  foo := arg ? #defaultValue
 
       Note: this method should never be redefined in classes other than UndefinedObject.
       Notice:
-         This method is open coded (inlined) by the compiler(s)
-         - redefining it may not work as expected."
+	 This method is open coded (inlined) by the compiler(s)
+	 - redefining it may not work as expected."
 
     ^ self
 
@@ -8050,21 +8050,21 @@
       the recevier is retuned here.
 
       Thus, if foo and bar are simple variables or constants,
-          foo ?? bar
+	  foo ?? bar
       is the same as:
-          (foo isNil ifTrue:[bar value] ifFalse:[foo])
+	  (foo isNil ifTrue:[bar value] ifFalse:[foo])
 
       if they are message sends, the equivalent code is:
-          [
-              |t t2|
-
-              t := foo.
-              t isNil ifTrue:[bar value] ifFalse:[t]
-          ] value
+	  [
+	      |t t2|
+
+	      t := foo.
+	      t isNil ifTrue:[bar value] ifFalse:[t]
+	  ] value
 
       Can be used to provide defaultValues to variables,
       as in:
-          foo := arg ?? [ self computeDefault ]
+	  foo := arg ?? [ self computeDefault ]
 
       Note: this method should never be redefined in classes other than UndefinedObject.
      "
@@ -8089,8 +8089,8 @@
      This is much like #?, but sends #value to the argument in case of a nil
      receiver.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
     ^ self
 !
@@ -8099,8 +8099,8 @@
     "return the value of the first arg, if I am nil,
      the result from evaluating the 2nd argument, if I am not nil.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
     ^ notNilBlockOrValue value
 
@@ -8110,8 +8110,8 @@
     "return myself if nil, or the result from evaluating the argument,
      if I am not nil.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
     ^ aBlockOrValue value
 
@@ -8121,8 +8121,8 @@
     "return the value of the 2nd arg, if I am nil,
      the result from evaluating the 1st argument, if I am not nil.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
     ^ notNilBlockOrValue value
 
@@ -8465,21 +8465,21 @@
     "return true, if the receiver is an instance of aClass or one of its
      subclasses, false otherwise.
      Advice:
-        use of this to check objects for certain attributes/protocoll should
-        be avoided; it limits the reusability of your classes by limiting use
-        to instances of certain classes and fences you into a specific inheritance
-        hierarchy.
-        Use check-methods to check an object for a certain attributes/protocol
-        (such as #isXXXX, #respondsTo: or #isNumber).
-
-        Using #isKindOf: is considered BAD STYLE.
+	use of this to check objects for certain attributes/protocoll should
+	be avoided; it limits the reusability of your classes by limiting use
+	to instances of certain classes and fences you into a specific inheritance
+	hierarchy.
+	Use check-methods to check an object for a certain attributes/protocol
+	(such as #isXXXX, #respondsTo: or #isNumber).
+
+	Using #isKindOf: is considered BAD STYLE.
 
      Advice2:
-        Be aware, that using an #isXXX method is usually much faster than
-        using #isKindOf:; because isKindOf: has to walk up all the superclass
-        hierarchy, comparing every class on the way.
-        Due to caching in the VM, a call to #isXXX is normally reached via
-        a single function call.
+	Be aware, that using an #isXXX method is usually much faster than
+	using #isKindOf:; because isKindOf: has to walk up all the superclass
+	hierarchy, comparing every class on the way.
+	Due to caching in the VM, a call to #isXXX is normally reached via
+	a single function call.
      "
 
 %{  /* NOCONTEXT */
@@ -8487,10 +8487,10 @@
 
     thisClass = __Class(self);
     while (thisClass != nil) {
-        if (thisClass == aClass) {
-            RETURN ( true );
-        }
-        thisClass = __ClassInstPtr(thisClass)->c_superclass;
+	if (thisClass == aClass) {
+	    RETURN ( true );
+	}
+	thisClass = __ClassInstPtr(thisClass)->c_superclass;
     }
     RETURN ( false );
 %}
@@ -8545,16 +8545,16 @@
 isMemberOf:aClass
     "return true, if the receiver is an instance of aClass, false otherwise.
      Advice:
-        use of this to check objects for certain attributes/protocol should
-        be avoided; it limits the reusability of your classes by limiting use
-        to instances of a certain class.
-        Use check-methods to check an object for a certain attributes/protocol
-        (such as #isXXX, #respondsTo: or #isNumber);
-
-        Using #isMemberOf: is considered BAD STYLE.
+	use of this to check objects for certain attributes/protocol should
+	be avoided; it limits the reusability of your classes by limiting use
+	to instances of a certain class.
+	Use check-methods to check an object for a certain attributes/protocol
+	(such as #isXXX, #respondsTo: or #isNumber);
+
+	Using #isMemberOf: is considered BAD STYLE.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
     ^ (self class) == aClass
 !
@@ -8605,8 +8605,8 @@
      Because isNil is redefined in UndefinedObject,
      the receiver is definitely not nil here, so unconditionally return false.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
     ^ false
 !
@@ -8629,11 +8629,11 @@
     ^ false
 
     "
-        21 isNonByteCollection
-        'abc' isNonByteCollection
-        #'abc' isNonByteCollection
-        #[1 2 3] isNonByteCollection
-        #(1 2 3) isNonByteCollection
+	21 isNonByteCollection
+	'abc' isNonByteCollection
+	#'abc' isNonByteCollection
+	#[1 2 3] isNonByteCollection
+	#(1 2 3) isNonByteCollection
     "
 !
 
@@ -8805,8 +8805,8 @@
      Because notNil is redefined in UndefinedObject,
      the receiver is definitely not nil here, so unconditionally return true.
      Notice:
-        This method is open coded (inlined) by the compiler(s)
-        - redefining it may not work as expected."
+	This method is open coded (inlined) by the compiler(s)
+	- redefining it may not work as expected."
 
     ^ true
 ! !
@@ -8835,7 +8835,7 @@
      It could also be put into some logfile or printed on the standard output/error."
 
     ActivityNotification isHandled ifTrue:[
-        ^ ActivityNotification raiseRequestWith:self errorString:aString
+	^ ActivityNotification raiseRequestWith:self errorString:aString
     ].
 
     "
@@ -8845,12 +8845,12 @@
 
     "
      ActivityNotification handle:[:ex |
-        ex errorString printCR.
-        ex proceed.
+	ex errorString printCR.
+	ex proceed.
      ] do:[
-        'hello' printCR.
-        self activityNotification:'doing some long time computation'.
-        'world' printCR.
+	'hello' printCR.
+	self activityNotification:'doing some long time computation'.
+	'world' printCR.
      ]
     "
 
@@ -8882,7 +8882,7 @@
 
     answer := self confirmWithCancel:aString.
     answer isNil ifTrue:[
-        ^ cancelBlock value
+	^ cancelBlock value
     ].
     ^ answer
 
@@ -8934,9 +8934,9 @@
      and give user a chance to enter debugger."
 
     ^ self
-        errorNotify:aString
-        from:thisContext sender
-        allowDebug:true
+	errorNotify:aString
+	from:thisContext sender
+	allowDebug:true
 
     "
      nil errorNotify:'hello there'
@@ -8963,7 +8963,7 @@
 
     Smalltalk isInitialized ifFalse:[
         'errorNotification: ' print. aString printCR.
-        aContext sender fullPrintAllLevels:10.
+        aContext sender printAllLevels:10.
         ^ nil
     ].
 
@@ -9105,12 +9105,12 @@
 
     "
      InformationSignal handle:[:ex |
-        'no box popped' printCR.
-        ex proceed.
+	'no box popped' printCR.
+	ex proceed.
      ] do:[
-        'hello' printCR.
-        self information:'some info'.
-        'world' printCR.
+	'hello' printCR.
+	self information:'some info'.
+	'world' printCR.
      ]
     "
 
@@ -9125,9 +9125,9 @@
 
 
     Smalltalk isInitialized ifFalse:[
-        "/ thisContext fullPrintAll.
-        'information: ' print. aString printCR.
-        ^ self
+	"/ thisContext fullPrintAll.
+	'information: ' print. aString printCR.
+	^ self
     ].
     UserNotification raiseRequestWith:self errorString:aString.
 
@@ -9155,12 +9155,12 @@
 
     "
      Warning handle:[:ex |
-        Transcript showCR:ex description.
-        ex proceed.
+	Transcript showCR:ex description.
+	ex proceed.
      ] do:[
-        'hello' printCR.
-        self warn:'some info'.
-        'world' printCR.
+	'hello' printCR.
+	self warn:'some info'.
+	'world' printCR.
      ]
     "
 
@@ -9185,7 +9185,7 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.624 2009-02-13 14:37:46 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.625 2009-02-13 14:55:58 cg Exp $'
 ! !
 
 Object initialize!