|  | @@ -44,9 +44,6 @@ function SmalltalkMetaclass(){
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  function SmalltalkMethod(){};
 | 
	
		
			
				|  |  |  function SmalltalkNil(){};
 | 
	
		
			
				|  |  | -function SmalltalkSymbol(string){
 | 
	
		
			
				|  |  | -    this.value = string;
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  function Smalltalk(){
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -725,7 +722,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["anObject"],
 | 
	
		
			
				|  |  |  source: unescape('-%3E%20anObject%0A%09%5EAssociation%20key%3A%20self%20value%3A%20anObject'),
 | 
	
		
			
				|  |  |  messageSends: ["key:value:"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Association]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Object);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1221,7 +1218,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aMessage"],
 | 
	
		
			
				|  |  |  source: unescape('doesNotUnderstand%3A%20aMessage%0A%09MessageNotUnderstood%20new%0A%09%09receiver%3A%20self%3B%0A%09%09message%3A%20aMessage%3B%0A%09%09signal'),
 | 
	
		
			
				|  |  |  messageSends: ["receiver:", "message:", "signal", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.MessageNotUnderstood]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Object);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1729,7 +1726,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aString"],
 | 
	
		
			
				|  |  |  source: unescape('methodsFor%3A%20aString%0A%09%5EClassCategoryReader%20new%0A%09%20%20%20%20class%3A%20self%20category%3A%20aString%3B%0A%09%20%20%20%20yourself'),
 | 
	
		
			
				|  |  |  messageSends: ["class:category:", "yourself", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.ClassCategoryReader]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Behavior);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1809,7 +1806,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('commentStamp%0A%20%20%20%20%5EClassCommentReader%20new%0A%09class%3A%20self%3B%0A%09yourself'),
 | 
	
		
			
				|  |  |  messageSends: ["class:", "yourself", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.ClassCommentReader]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Behavior);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1881,7 +1878,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aBlock"],
 | 
	
		
			
				|  |  |  source: unescape('protocolsDo%3A%20aBlock%0A%09%22Execute%20aBlock%20for%20each%20method%20category%20with%0A%09its%20collection%20of%20methods%20in%20the%20sort%20order%20of%20category%20name.%22%0A%0A%09%7C%20methodsByCategory%20%7C%0A%09methodsByCategory%20%3A%3D%20Dictionary%20new.%0A%09self%20methodDictionary%20values%20do%3A%20%5B%3Am%20%7C%0A%09%09%28methodsByCategory%20at%3A%20m%20category%20ifAbsentPut%3A%20%5BArray%20new%5D%29%0A%20%09%09%09add%3A%20m%5D.%20%0A%09self%20protocols%20do%3A%20%5B%3Acategory%20%7C%0A%09%09aBlock%20value%3A%20category%20value%3A%20%28methodsByCategory%20at%3A%20category%29%5D'),
 | 
	
		
			
				|  |  |  messageSends: ["new", "do:", "values", "methodDictionary", "add:", "at:ifAbsentPut:", "category", "protocols", "value:value:", "at:"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil,smalltalk.Array]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Dictionary,smalltalk.Array]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Behavior);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1983,7 +1980,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aString", "anotherString"],
 | 
	
		
			
				|  |  |  source: unescape('compile%3A%20aString%20category%3A%20anotherString%0A%09%7C%20method%20%7C%0A%09method%20%3A%3D%20Compiler%20new%20load%3A%20aString%20forClass%3A%20self.%0A%09method%20category%3A%20anotherString.%0A%09self%20addCompiledMethod%3A%20method'),
 | 
	
		
			
				|  |  |  messageSends: ["load:forClass:", "new", "category:", "addCompiledMethod:"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Compiler]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Behavior);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2150,7 +2147,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aString", "aString2", "aString3"],
 | 
	
		
			
				|  |  |  source: unescape('subclass%3A%20aString%20instanceVariableNames%3A%20aString2%20module%3A%20aString3%0A%09%5EClassBuilder%20new%0A%09%20%20%20%20superclass%3A%20self%20subclass%3A%20aString%20instanceVariableNames%3A%20aString2%20module%3A%20aString3'),
 | 
	
		
			
				|  |  |  messageSends: ["superclass:subclass:instanceVariableNames:module:", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.ClassBuilder]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Class);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2185,7 +2182,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aCollection"],
 | 
	
		
			
				|  |  |  source: unescape('instanceVariableNames%3A%20aCollection%0A%09ClassBuilder%20new%0A%09%20%20%20%20class%3A%20self%20instanceVariableNames%3A%20aCollection'),
 | 
	
		
			
				|  |  |  messageSends: ["class:instanceVariableNames:", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.ClassBuilder]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Metaclass);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2749,7 +2746,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('atRandom%0A%20%20%20%20%5E%28Random%20new%20next%20*%20self%29%20truncated%20+%201'),
 | 
	
		
			
				|  |  |  messageSends: [unescape("+"), "truncated", unescape("*"), "next", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Random]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Number);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2765,7 +2762,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aNumber"],
 | 
	
		
			
				|  |  |  source: unescape('@%20aNumber%0A%09%5EPoint%20x%3A%20self%20y%3A%20aNumber'),
 | 
	
		
			
				|  |  |  messageSends: ["x:y:"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Point]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Number);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2781,7 +2778,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('asPoint%0A%09%5EPoint%20x%3A%20self%20y%3A%20self'),
 | 
	
		
			
				|  |  |  messageSends: ["x:y:"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Point]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Number);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2909,7 +2906,7 @@ return Number(self) == aNumber;
 | 
	
		
			
				|  |  |  return self;
 | 
	
		
			
				|  |  |  } catch(e) {if(e.name === 'stReturn' && e.selector === '__eq'){return e.fn()} throw(e)}},
 | 
	
		
			
				|  |  |  args: ["aNumber"],
 | 
	
		
			
				|  |  | -source: unescape('%3D%20aNumber%0A%09aNumber%20class%20%3D%20self%20class%20ifFalse%3A%20%5B%5Efalse%5D.%20%0A%09%3Creturn%20Number%28self%29%20%3D%3D%20aNumber%3E%20'),
 | 
	
		
			
				|  |  | +source: unescape('%3D%20aNumber%0A%09aNumber%20class%20%3D%20self%20class%20ifFalse%3A%20%5B%5Efalse%5D.%20%0A%09%3Creturn%20Number%28self%29%20%3D%3D%20aNumber%3E'),
 | 
	
		
			
				|  |  |  messageSends: ["ifFalse:", unescape("%3D"), "class"],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
	
		
			
				|  | @@ -2927,12 +2924,28 @@ return Number(self) === Number(aNumber);
 | 
	
		
			
				|  |  |  return self;
 | 
	
		
			
				|  |  |  } catch(e) {if(e.name === 'stReturn' && e.selector === '__eq_eq'){return e.fn()} throw(e)}},
 | 
	
		
			
				|  |  |  args: ["aNumber"],
 | 
	
		
			
				|  |  | -source: unescape('%3D%3D%20aNumber%0A%09aNumber%20class%20%3D%20self%20class%20ifFalse%3A%20%5B%5Efalse%5D.%20%0A%09%3Creturn%20Number%28self%29%20%3D%3D%3D%20Number%28aNumber%29%3E%20'),
 | 
	
		
			
				|  |  | +source: unescape('%3D%3D%20aNumber%0A%09aNumber%20class%20%3D%20self%20class%20ifFalse%3A%20%5B%5Efalse%5D.%20%0A%09%3Creturn%20Number%28self%29%20%3D%3D%3D%20Number%28aNumber%29%3E'),
 | 
	
		
			
				|  |  |  messageSends: ["ifFalse:", unescape("%3D"), "class"],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Number);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +'_printShowingDecimalPlaces_',
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: 'printShowingDecimalPlaces:',
 | 
	
		
			
				|  |  | +category: 'printing',
 | 
	
		
			
				|  |  | +fn: function (placesDesired){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +return self.toFixed(placesDesired);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: ["placesDesired"],
 | 
	
		
			
				|  |  | +source: unescape('printShowingDecimalPlaces%3A%20placesDesired%0A%09%3Creturn%20self.toFixed%28placesDesired%29%3E'),
 | 
	
		
			
				|  |  | +messageSends: [],
 | 
	
		
			
				|  |  | +referencedClasses: []
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.Number);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  smalltalk.addMethod(
 | 
	
		
			
				|  |  |  '_pi',
 | 
	
	
		
			
				|  | @@ -4327,7 +4340,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aString", "aString2", "aString3"],
 | 
	
		
			
				|  |  |  source: unescape('subclass%3A%20aString%20instanceVariableNames%3A%20aString2%20module%3A%20aString3%0A%09%5EClassBuilder%20new%0A%09%20%20%20%20superclass%3A%20self%20subclass%3A%20aString%20instanceVariableNames%3A%20aString2%20module%3A%20aString3'),
 | 
	
		
			
				|  |  |  messageSends: ["superclass:subclass:instanceVariableNames:module:", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.ClassBuilder]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.UndefinedObject);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4774,7 +4787,39 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('asSet%0A%09%5ESet%20withAll%3A%20self'),
 | 
	
		
			
				|  |  |  messageSends: ["withAll:"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Set]
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.Collection);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +'_ifNotEmpty_',
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: 'ifNotEmpty:',
 | 
	
		
			
				|  |  | +category: 'testing',
 | 
	
		
			
				|  |  | +fn: function (aBlock){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +smalltalk.send(smalltalk.send(self, "_notEmpty", []), "_ifTrue_", [aBlock]);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: ["aBlock"],
 | 
	
		
			
				|  |  | +source: unescape('ifNotEmpty%3A%20aBlock%0A%09self%20notEmpty%20ifTrue%3A%20aBlock.'),
 | 
	
		
			
				|  |  | +messageSends: ["ifTrue:", "notEmpty"],
 | 
	
		
			
				|  |  | +referencedClasses: []
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.Collection);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +'_ifEmpty_',
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: 'ifEmpty:',
 | 
	
		
			
				|  |  | +category: 'testing',
 | 
	
		
			
				|  |  | +fn: function (aBlock){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +smalltalk.send(smalltalk.send(self, "_isEmpty", []), "_ifTrue_", [aBlock]);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: ["aBlock"],
 | 
	
		
			
				|  |  | +source: unescape('ifEmpty%3A%20aBlock%0A%09self%20isEmpty%20ifTrue%3A%20aBlock.'),
 | 
	
		
			
				|  |  | +messageSends: ["ifTrue:", "isEmpty"],
 | 
	
		
			
				|  |  | +referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Collection);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4791,7 +4836,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('streamClass%0A%09%20%20%20%20%5EStream'),
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Stream]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Collection.klass);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -5984,7 +6029,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('streamClass%0A%09%20%20%20%20%5EStringStream'),
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.StringStream]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.String.klass);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -6738,7 +6783,7 @@ var self=this;
 | 
	
		
			
				|  |  |  return smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "__eq", [smalltalk.send(anAssociation, "_class", [])]), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_key", []), "__eq", [smalltalk.send(anAssociation, "_key", [])]), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_value", []), "__eq", [smalltalk.send(anAssociation, "_value", [])]);})]);})]);
 | 
	
		
			
				|  |  |  return self;},
 | 
	
		
			
				|  |  |  args: ["anAssociation"],
 | 
	
		
			
				|  |  | -source: unescape('%3D%20anAssociation%0A%09%5Eself%20class%20%3D%20anAssociation%20class%20and%3A%20%5B%0A%09%20%20%20%20self%20key%20%3D%20anAssociation%20key%20and%3A%20%5B%0A%09%09self%20value%20%3D%20anAssociation%20value%5D%5D%0A'),
 | 
	
		
			
				|  |  | +source: unescape('%3D%20anAssociation%0A%09%5Eself%20class%20%3D%20anAssociation%20class%20and%3A%20%5B%0A%09%20%20%20%20self%20key%20%3D%20anAssociation%20key%20and%3A%20%5B%0A%09%09self%20value%20%3D%20anAssociation%20value%5D%5D'),
 | 
	
		
			
				|  |  |  messageSends: ["and:", unescape("%3D"), "class", "key", "value"],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
	
		
			
				|  | @@ -7452,7 +7497,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('initialize%0A%09super%20initialize.%0A%09chunkParser%20%3A%3D%20ChunkParser%20new.'),
 | 
	
		
			
				|  |  |  messageSends: ["initialize", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.ChunkParser]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.ClassCategoryReader);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -7505,7 +7550,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: ["aString"],
 | 
	
		
			
				|  |  |  source: unescape('compileMethod%3A%20aString%0A%09%7C%20method%20%7C%0A%09method%20%3A%3D%20Compiler%20new%20load%3A%20aString%20forClass%3A%20class.%0A%09method%20category%3A%20category.%0A%09class%20addCompiledMethod%3A%20method'),
 | 
	
		
			
				|  |  |  messageSends: ["load:forClass:", "new", "category:", "addCompiledMethod:"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.Compiler]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.ClassCategoryReader);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -8073,7 +8118,7 @@ return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: unescape('initialize%0A%09super%20initialize.%0A%09chunkParser%20%3A%3D%20ChunkParser%20new.'),
 | 
	
		
			
				|  |  |  messageSends: ["initialize", "new"],
 | 
	
		
			
				|  |  | -referencedClasses: [smalltalk.nil]
 | 
	
		
			
				|  |  | +referencedClasses: [smalltalk.ChunkParser]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.ClassCommentReader);
 | 
	
		
			
				|  |  |  
 |