Sfoglia il codice sorgente

Fixed list of ivarnames in class definitions to be space separated instead of using comma.

Göran Krampe 13 anni fa
parent
commit
b84df5b59b
8 ha cambiato i file con 55 aggiunte e 40 eliminazioni
  1. 24 9
      js/Parser.js
  2. 1 1
      st/Canvas.st
  3. 4 4
      st/Compiler.st
  4. 3 3
      st/Examples.st
  5. 4 4
      st/IDE.st
  6. 7 7
      st/Kernel.st
  7. 9 9
      st/Parser.st
  8. 3 3
      st/SUnit.st

+ 24 - 9
js/Parser.js

@@ -1452,13 +1452,13 @@ category: 'not yet classified',
 fn: function (aClass, aStream){
 var self=this;
 (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(unescape("%20subclass%3A%20%23"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("%09instanceVariableNames%3A%20%27")]);})(aStream);
-smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);
+smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);
 (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%09category%3A%20%27"), "__comma", [smalltalk.send(aClass, "_category", [])]), "__comma", [unescape("%27%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);
-smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", []), "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_comment", []), "_escaped", []), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})]);
+smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", []), "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})]);
 smalltalk.send(aStream, "_lf", []);
 return self;},
-source: unescape('exportDefinitionOf%3A%20aClass%20on%3A%20aStream%0A%09%22Chunk%20format.%22%0A%0A%09aStream%20%0A%09%20%20%20%20nextPutAll%3A%20%28self%20classNameFor%3A%20aClass%20superclass%29%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%20subclass%3A%20%23%27%2C%20%28self%20classNameFor%3A%20aClass%29%3B%20lf%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%09instanceVariableNames%3A%20%27%27%27.%0A%09aClass%20instanceVariableNames%20%0A%09%20%20%20%20do%3A%20%5B%3Aeach%20%7C%20aStream%20nextPutAll%3A%20each%5D%0A%09%20%20%20%20separatedBy%3A%20%5BaStream%20nextPutAll%3A%20%27%2C%20%27%5D.%0A%09aStream%09%0A%09%20%20%20%20nextPutAll%3A%20%27%27%27%27%3B%20lf%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%09category%3A%20%27%27%27%2C%20aClass%20category%2C%20%27%27%27%21%27%3B%20lf.%0A%20%09aClass%20comment%20notEmpty%20ifTrue%3A%20%5B%0A%09%20%20%20%20aStream%20%0A%09%09nextPutAll%3A%20%27%21%27%2C%20%28self%20classNameFor%3A%20aClass%29%2C%20%27%20commentStamp%21%27%3Blf%3B%0A%09%09nextPutAll%3A%20aClass%20comment%20escaped%2C%20%27%21%27%3Blf%5D.%0A%09aStream%20lf%0A'),
-messageSends: ["nextPutAll:", "classNameFor:", "superclass", unescape("%2C"), "lf", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "notEmpty", "comment", "escaped"],
+source: unescape('exportDefinitionOf%3A%20aClass%20on%3A%20aStream%0A%09%22Chunk%20format.%22%0A%0A%09aStream%20%0A%09%20%20%20%20nextPutAll%3A%20%28self%20classNameFor%3A%20aClass%20superclass%29%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%20subclass%3A%20%23%27%2C%20%28self%20classNameFor%3A%20aClass%29%3B%20lf%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%09instanceVariableNames%3A%20%27%27%27.%0A%09aClass%20instanceVariableNames%20%0A%09%20%20%20%20do%3A%20%5B%3Aeach%20%7C%20aStream%20nextPutAll%3A%20each%5D%0A%09%20%20%20%20separatedBy%3A%20%5BaStream%20nextPutAll%3A%20%27%20%27%5D.%0A%09aStream%09%0A%09%20%20%20%20nextPutAll%3A%20%27%27%27%27%3B%20lf%3B%0A%09%20%20%20%20nextPutAll%3A%20%27%09category%3A%20%27%27%27%2C%20aClass%20category%2C%20%27%27%27%21%27%3B%20lf.%0A%20%09aClass%20comment%20notEmpty%20ifTrue%3A%20%5B%0A%09%20%20%20%20aStream%20%0A%09%09nextPutAll%3A%20%27%21%27%2C%20%28self%20classNameFor%3A%20aClass%29%2C%20%27%20commentStamp%21%27%3Blf%3B%0A%09%09nextPutAll%3A%20%28self%20chunkEscape%3A%20aClass%20comment%29%2C%20%27%21%27%3Blf%5D.%0A%09aStream%20lf%0A'),
+messageSends: ["nextPutAll:", "classNameFor:", "superclass", unescape("%2C"), "lf", "do:separatedBy:", "instanceVariableNames", "category", "ifTrue:", "notEmpty", "comment", "chunkEscape:"],
 referencedClasses: []
 }),
 smalltalk.ChunkExporter);
@@ -1470,10 +1470,10 @@ selector: 'exportMethod:of:on:',
 category: 'not yet classified',
 fn: function (aMethod, aClass, aStream){
 var self=this;
-(function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(aMethod, "_source", [])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("%21")]);})(aStream);
+(function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aMethod, "_source", [])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("%21")]);})(aStream);
 return self;},
-source: unescape('exportMethod%3A%20aMethod%20of%3A%20aClass%20on%3A%20aStream%0A%09aStream%20%0A%09%09lf%3B%20lf%3B%20nextPutAll%3A%20aMethod%20source%3B%20lf%3B%0A%09%09nextPutAll%3A%20%27%21%27'),
-messageSends: ["lf", "nextPutAll:", "source"],
+source: unescape('exportMethod%3A%20aMethod%20of%3A%20aClass%20on%3A%20aStream%0A%09aStream%20%0A%09%09lf%3B%20lf%3B%20nextPutAll%3A%20%28self%20chunkEscape%3A%20aMethod%20source%29%3B%20lf%3B%0A%09%09nextPutAll%3A%20%27%21%27'),
+messageSends: ["lf", "nextPutAll:", "chunkEscape:", "source"],
 referencedClasses: []
 }),
 smalltalk.ChunkExporter);
@@ -1503,9 +1503,9 @@ selector: 'exportMetaDefinitionOf:on:',
 category: 'not yet classified',
 fn: function (aClass, aStream){
 var self=this;
-smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", []), "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%20instanceVariableNames%3A%20%27")]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})]);
+smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", []), "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%20instanceVariableNames%3A%20%27")]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})]);
 return self;},
-source: unescape('exportMetaDefinitionOf%3A%20aClass%20on%3A%20aStream%0A%0A%09aClass%20class%20instanceVariableNames%20isEmpty%20ifFalse%3A%20%5B%0A%09%09aStream%20%0A%09%09%20%20%20%20nextPutAll%3A%20%28self%20classNameFor%3A%20aClass%20class%29%3B%0A%09%09%20%20%20%20nextPutAll%3A%20%27%20instanceVariableNames%3A%20%27%27%27.%0A%09%09aClass%20class%20instanceVariableNames%20%0A%09%09%20%20%20%20do%3A%20%5B%3Aeach%20%7C%20aStream%20nextPutAll%3A%20each%5D%0A%09%09%20%20%20%20separatedBy%3A%20%5BaStream%20nextPutAll%3A%20%27%2C%20%27%5D.%0A%09%09aStream%09%0A%09%09%20%20%20%20nextPutAll%3A%20%27%27%27%21%27%3B%20lf%3B%20lf%5D'),
+source: unescape('exportMetaDefinitionOf%3A%20aClass%20on%3A%20aStream%0A%0A%09aClass%20class%20instanceVariableNames%20isEmpty%20ifFalse%3A%20%5B%0A%09%09aStream%20%0A%09%09%20%20%20%20nextPutAll%3A%20%28self%20classNameFor%3A%20aClass%20class%29%3B%0A%09%09%20%20%20%20nextPutAll%3A%20%27%20instanceVariableNames%3A%20%27%27%27.%0A%09%09aClass%20class%20instanceVariableNames%20%0A%09%09%20%20%20%20do%3A%20%5B%3Aeach%20%7C%20aStream%20nextPutAll%3A%20each%5D%0A%09%09%20%20%20%20separatedBy%3A%20%5BaStream%20nextPutAll%3A%20%27%20%27%5D.%0A%09%09aStream%09%0A%09%09%20%20%20%20nextPutAll%3A%20%27%27%27%21%27%3B%20lf%3B%20lf%5D'),
 messageSends: ["ifFalse:", "isEmpty", "instanceVariableNames", "class", "nextPutAll:", "classNameFor:", "do:separatedBy:", "lf"],
 referencedClasses: []
 }),
@@ -1526,5 +1526,20 @@ referencedClasses: []
 }),
 smalltalk.ChunkExporter);
 
+smalltalk.addMethod(
+'_chunkEscape_',
+smalltalk.method({
+selector: 'chunkEscape:',
+category: 'not yet classified',
+fn: function (aString){
+var self=this;
+return smalltalk.send(aString, "_replace_with_", [unescape("%21"), unescape("%21%21")]);
+return self;},
+source: unescape('chunkEscape%3A%20aString%0A%09%22Replace%20all%20occurrences%20of%20%21%20with%20%21%21%22%0A%0A%09%5EaString%20replace%3A%20%27%21%27%20with%3A%20%27%21%21%27%0A'),
+messageSends: ["replace:with:"],
+referencedClasses: []
+}),
+smalltalk.ChunkExporter);
+
 
 

+ 1 - 1
st/Canvas.st

@@ -246,7 +246,7 @@ canvas
 ! !
 
 Object subclass: #TagBrush
-	instanceVariableNames: 'canvas, element'
+	instanceVariableNames: 'canvas element'
 	category: 'Canvas'!
 
 !TagBrush methodsFor: 'accessing'!

+ 4 - 4
st/Compiler.st

@@ -29,7 +29,7 @@ accept: aVisitor
 ! !
 
 Node subclass: #MethodNode
-	instanceVariableNames: 'selector, arguments, source'
+	instanceVariableNames: 'selector arguments source'
 	category: 'Compiler'!
 
 !MethodNode methodsFor: 'accessing'!
@@ -72,7 +72,7 @@ accept: aVisitor
 ! !
 
 Node subclass: #SendNode
-	instanceVariableNames: 'selector, arguments, receiver'
+	instanceVariableNames: 'selector arguments receiver'
 	category: 'Compiler'!
 
 !SendNode methodsFor: 'accessing'!
@@ -162,7 +162,7 @@ accept: aVisitor
 ! !
 
 Node subclass: #AssignmentNode
-	instanceVariableNames: 'left, right'
+	instanceVariableNames: 'left right'
 	category: 'Compiler'!
 
 !AssignmentNode methodsFor: 'accessing'!
@@ -420,7 +420,7 @@ visitJSStatementNode: aNode
 ! !
 
 NodeVisitor subclass: #Compiler
-	instanceVariableNames: 'stream, nestedBlocks, earlyReturn, currentClass, currentSelector, unknownVariables, tempVariables, messageSends, referencedClasses'
+	instanceVariableNames: 'stream nestedBlocks earlyReturn currentClass currentSelector unknownVariables tempVariables messageSends referencedClasses'
 	category: 'Compiler'!
 
 !Compiler methodsFor: 'accessing'!

+ 3 - 3
st/Examples.st

@@ -1,5 +1,5 @@
 Widget subclass: #Counter
-	instanceVariableNames: 'count, header'
+	instanceVariableNames: 'count header'
 	category: 'Examples'!
 
 !Counter methodsFor: 'actions'!
@@ -38,7 +38,7 @@ renderOn: html
 ! !
 
 Widget subclass: #Tetris
-	instanceVariableNames: 'renderingContext, timer, speed, score, rows, movingPiece'
+	instanceVariableNames: 'renderingContext timer speed score rows movingPiece'
 	category: 'Examples'!
 
 !Tetris methodsFor: 'accessing'!
@@ -195,7 +195,7 @@ squares
 ! !
 
 Widget subclass: #TetrisPiece
-	instanceVariableNames: 'rotation, position'
+	instanceVariableNames: 'rotation position'
 	category: 'Examples'!
 
 !TetrisPiece methodsFor: 'accessing'!

+ 4 - 4
st/IDE.st

@@ -1,5 +1,5 @@
 Widget subclass: #TabManager
-	instanceVariableNames: 'selectedTab, tabs, opened'
+	instanceVariableNames: 'selectedTab tabs opened'
 	category: 'IDE'!
 
 !TabManager methodsFor: 'accessing'!
@@ -464,7 +464,7 @@ clear
 ! !
 
 TabWidget subclass: #Browser
-	instanceVariableNames: 'selectedCategory, selectedClass, selectedProtocol, selectedMethod, commitButton, categoriesList, classesList, protocolsList, methodsList, sourceTextarea, tabsList, selectedTab, saveButton, classButtons, methodButtons, unsavedChanges'
+	instanceVariableNames: 'selectedCategory selectedClass selectedProtocol selectedMethod commitButton categoriesList classesList protocolsList methodsList sourceTextarea tabsList selectedTab saveButton classButtons methodButtons unsavedChanges'
 	category: 'IDE'!
 
 !Browser methodsFor: 'accessing'!
@@ -1061,7 +1061,7 @@ open
 ! !
 
 TabWidget subclass: #Inspector
-	instanceVariableNames: 'label, variables, object, selectedVariable, variablesList, valueTextarea, workspaceTextarea, diveButton'
+	instanceVariableNames: 'label variables object selectedVariable variablesList valueTextarea workspaceTextarea diveButton'
 	category: 'IDE'!
 
 !Inspector methodsFor: 'accessing'!
@@ -1201,7 +1201,7 @@ on: anObject
 ! !
 
 TabWidget subclass: #ReferencesBrowser
-	instanceVariableNames: 'implementors, senders, implementorsList, input, timer, selector, sendersList, referencedClasses, referencedClassesList'
+	instanceVariableNames: 'implementors senders implementorsList input timer selector sendersList referencedClasses referencedClassesList'
 	category: 'IDE'!
 
 !ReferencesBrowser methodsFor: 'accessing'!

+ 7 - 7
st/Kernel.st

@@ -1945,7 +1945,7 @@ signal: aString
 ! !
 
 Object subclass: #Association
-	instanceVariableNames: 'key, value'
+	instanceVariableNames: 'key value'
 	category: 'Kernel'!
 
 !Association methodsFor: 'accessing'!
@@ -2230,7 +2230,7 @@ setupClass: aClass
 ! !
 
 Object subclass: #ClassCategoryReader
-	instanceVariableNames: 'class, category, chunkParser'
+	instanceVariableNames: 'class category chunkParser'
 	category: 'Kernel'!
 
 !ClassCategoryReader methodsFor: 'accessing'!
@@ -2271,7 +2271,7 @@ compileMethod: aString
 ! !
 
 Object subclass: #Stream
-	instanceVariableNames: 'collection, position, streamSize'
+	instanceVariableNames: 'collection position streamSize'
 	category: 'Kernel'!
 
 !Stream methodsFor: 'accessing'!
@@ -2470,7 +2470,7 @@ lf
 ! !
 
 Object subclass: #ClassCommentReader
-	instanceVariableNames: 'class, chunkParser'
+	instanceVariableNames: 'class chunkParser'
 	category: 'Kernel'!
 
 !ClassCommentReader methodsFor: 'accessing'!
@@ -2522,7 +2522,7 @@ next: anInteger
 ! !
 
 Object subclass: #Point
-	instanceVariableNames: 'x, y'
+	instanceVariableNames: 'x y'
 	category: 'Kernel'!
 
 !Point methodsFor: 'accessing'!
@@ -2577,7 +2577,7 @@ x: aNumber y: anotherNumber
 ! !
 
 Object subclass: #Message
-	instanceVariableNames: 'selector, arguments'
+	instanceVariableNames: 'selector arguments'
 	category: 'Kernel'!
 
 !Message methodsFor: 'accessing'!
@@ -2608,7 +2608,7 @@ selector: aString arguments: anArray
 ! !
 
 Error subclass: #MessageNotUnderstood
-	instanceVariableNames: 'message, receiver'
+	instanceVariableNames: 'message receiver'
 	category: 'Kernel'!
 
 !MessageNotUnderstood methodsFor: 'accessing'!

+ 9 - 9
st/Parser.st

@@ -469,7 +469,7 @@ on: aParser min: aNumber
 ! !
 
 Object subclass: #PPFailure
-	instanceVariableNames: 'position, reason'
+	instanceVariableNames: 'position reason'
 	category: 'Parser'!
 
 !PPFailure methodsFor: 'accessing'!
@@ -952,22 +952,22 @@ exportDefinitionOf: aClass on: aStream
 	    nextPutAll: '	instanceVariableNames: '''.
 	aClass instanceVariableNames 
 	    do: [:each | aStream nextPutAll: each]
-	    separatedBy: [aStream nextPutAll: ', '].
+	    separatedBy: [aStream nextPutAll: ' '].
 	aStream	
 	    nextPutAll: ''''; lf;
-	    nextPutAll: '	category: ''', aClass category, '''!'; lf.
+	    nextPutAll: '	category: ''', aClass category, '''!!'; lf.
  	aClass comment notEmpty ifTrue: [
 	    aStream 
-		nextPutAll: '!', (self classNameFor: aClass), ' commentStamp!';lf;
-		nextPutAll: aClass comment escaped, '!';lf].
+		nextPutAll: '!!', (self classNameFor: aClass), ' commentStamp!!';lf;
+		nextPutAll: (self chunkEscape: aClass comment), '!!';lf].
 	aStream lf
 
 !
 
 exportMethod: aMethod of: aClass on: aStream
 	aStream 
-		lf; lf; nextPutAll: aMethod source; lf;
-		nextPutAll: '!'
+		lf; lf; nextPutAll: (self chunkEscape: aMethod source); lf;
+		nextPutAll: '!!'
 !
 
 exportMethodsOf: aClass on: aStream
@@ -994,9 +994,9 @@ exportMetaDefinitionOf: aClass on: aStream
 		    nextPutAll: ' instanceVariableNames: '''.
 		aClass class instanceVariableNames 
 		    do: [:each | aStream nextPutAll: each]
-		    separatedBy: [aStream nextPutAll: ', '].
+		    separatedBy: [aStream nextPutAll: ' '].
 		aStream	
-		    nextPutAll: '''!'; lf; lf]
+		    nextPutAll: '''!!'; lf; lf]
 !
 
 classNameFor: aClass

+ 3 - 3
st/SUnit.st

@@ -88,7 +88,7 @@ testError
 ! !
 
 TabWidget subclass: #ProgressBar
-	instanceVariableNames: 'percent, progressDiv'
+	instanceVariableNames: 'percent progressDiv'
 	category: 'SUnit'!
 
 !ProgressBar methodsFor: 'accessing'!
@@ -124,7 +124,7 @@ Error subclass: #TestFailure
 	category: 'SUnit'!
 
 TabWidget subclass: #TestRunner
-	instanceVariableNames: 'selectedCategories, categoriesList, selectedClasses, classesList, selectedMethods, progressBar, methodsList, result, statusDiv'
+	instanceVariableNames: 'selectedCategories categoriesList selectedClasses classesList selectedMethods progressBar methodsList result statusDiv'
 	category: 'SUnit'!
 
 !TestRunner methodsFor: 'accessing'!
@@ -370,7 +370,7 @@ updateStatusDiv
 ! !
 
 Object subclass: #TestResult
-	instanceVariableNames: 'timestamp, runs, errors, failures, total'
+	instanceVariableNames: 'timestamp runs errors failures total'
 	category: 'SUnit'!
 
 !TestResult methodsFor: 'accessing'!