|  | @@ -489,6 +489,76 @@ referencedClasses: ["Dictionary"]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.DictionaryTest);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +"_testIfAbsent",
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: "testIfAbsent",
 | 
	
		
			
				|  |  | +category: 'tests',
 | 
	
		
			
				|  |  | +fn: function (){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +var d=nil;
 | 
	
		
			
				|  |  | +var visited=nil;
 | 
	
		
			
				|  |  | +(visited=false);
 | 
	
		
			
				|  |  | +(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 | 
	
		
			
				|  |  | +smalltalk.send(d, "_at_ifAbsent_", ["hello", (function(){return (visited=true);})]);
 | 
	
		
			
				|  |  | +smalltalk.send(self, "_assert_", [visited]);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: [],
 | 
	
		
			
				|  |  | +source: "testIfAbsent\x0a\x0a\x09| d visited |\x0a\x09visited := false.\x0a\x09d := Dictionary new.\x0a\x0a\x09d at: 'hello' ifAbsent: [ visited := true ].\x0a\x09self assert: visited.",
 | 
	
		
			
				|  |  | +messageSends: ["new", "at:ifAbsent:", "assert:"],
 | 
	
		
			
				|  |  | +referencedClasses: ["Dictionary"]
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.DictionaryTest);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +"_testIfPresent",
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: "testIfPresent",
 | 
	
		
			
				|  |  | +category: 'tests',
 | 
	
		
			
				|  |  | +fn: function (){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +var d=nil;
 | 
	
		
			
				|  |  | +var visited=nil;
 | 
	
		
			
				|  |  | +var absent=nil;
 | 
	
		
			
				|  |  | +(visited=false);
 | 
	
		
			
				|  |  | +(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 | 
	
		
			
				|  |  | +smalltalk.send(d, "_at_put_", ["hello", "world"]);
 | 
	
		
			
				|  |  | +smalltalk.send(d, "_at_ifPresent_", ["hello", (function(value){return (visited=value);})]);
 | 
	
		
			
				|  |  | +smalltalk.send(self, "_assert_", [smalltalk.send(visited, "__eq", ["world"])]);
 | 
	
		
			
				|  |  | +(absent=smalltalk.send(d, "_at_ifPresent_", ["bye", (function(value){return (visited=value);})]));
 | 
	
		
			
				|  |  | +smalltalk.send(self, "_assert_", [smalltalk.send(absent, "_isNil", [])]);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: [],
 | 
	
		
			
				|  |  | +source: "testIfPresent\x0a\x0a\x09| d visited absent |\x0a\x09visited := false.\x0a\x09d := Dictionary new.\x0a\x09d at: 'hello' put: 'world'.\x0a\x0a\x09d at: 'hello' ifPresent: [ :value | visited := value ].\x0a\x09self assert: visited = 'world'.\x0a\x0a\x09absent := d at: 'bye' ifPresent: [ :value | visited := value ].\x0a\x09self assert: absent isNil.\x0a",
 | 
	
		
			
				|  |  | +messageSends: ["new", "at:put:", "at:ifPresent:", "assert:", "=", "isNil"],
 | 
	
		
			
				|  |  | +referencedClasses: ["Dictionary"]
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.DictionaryTest);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +"_testIfPresentIfAbsent",
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: "testIfPresentIfAbsent",
 | 
	
		
			
				|  |  | +category: 'tests',
 | 
	
		
			
				|  |  | +fn: function (){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +var d=nil;
 | 
	
		
			
				|  |  | +var visited=nil;
 | 
	
		
			
				|  |  | +(visited=false);
 | 
	
		
			
				|  |  | +(d=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
 | 
	
		
			
				|  |  | +smalltalk.send(d, "_at_put_", ["hello", "world"]);
 | 
	
		
			
				|  |  | +smalltalk.send(d, "_at_ifPresent_ifAbsent_", ["hello", (function(value){return (visited=value);}), (function(){return (visited=true);})]);
 | 
	
		
			
				|  |  | +smalltalk.send(self, "_assert_", [smalltalk.send(visited, "__eq", ["world"])]);
 | 
	
		
			
				|  |  | +smalltalk.send(d, "_at_ifPresent_ifAbsent_", ["buy", (function(value){return (visited=value);}), (function(){return (visited=true);})]);
 | 
	
		
			
				|  |  | +smalltalk.send(self, "_assert_", [visited]);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: [],
 | 
	
		
			
				|  |  | +source: "testIfPresentIfAbsent\x0a\x0a\x09| d visited |\x0a\x09visited := false.\x0a\x09d := Dictionary new.\x0a\x09d at: 'hello' put: 'world'.\x0a\x0a\x09d at: 'hello' ifPresent: [ :value | visited := value ] ifAbsent: [ visited := true ].\x0a\x09self assert: visited = 'world'.\x0a\x0a\x09d at: 'buy' ifPresent: [ :value | visited := value ] ifAbsent: [ visited := true ].\x0a\x09self assert: visited.",
 | 
	
		
			
				|  |  | +messageSends: ["new", "at:put:", "at:ifPresent:ifAbsent:", "assert:", "="],
 | 
	
		
			
				|  |  | +referencedClasses: ["Dictionary"]
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.DictionaryTest);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  smalltalk.addMethod(
 | 
	
		
			
				|  |  |  "_testKeys",
 | 
	
		
			
				|  |  |  smalltalk.method({
 |