| 
					
				 | 
			
			
				@@ -171,50 +171,28 @@ function Smalltalk(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if ('function' === typeof Object.keys) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.initSubTree = function(klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var subclasses = st.subclasses(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var methods, proto = klass.fn.prototype; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(klass.superclass && klass.superclass !== nil) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				methods = st.methods(klass.superclass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				//Methods linking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				for(var keys=Object.keys(methods),i=0,l=keys.length; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					var k = keys[i] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if(!proto.methods[k]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						proto.inheritedMethods[k] = methods[k]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						proto[methods[k].jsSelector] = methods[k].fn; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	st.initSubTree = function(klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var subclasses = st.subclasses(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var methods, proto = klass.fn.prototype; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(klass.superclass && klass.superclass !== nil) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			methods = st.methods(klass.superclass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//Methods linking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for(var keys=Object.keys(methods),i=0,l=keys.length; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				var k = keys[i] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(!proto.methods[k]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					proto.inheritedMethods[k] = methods[k]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					proto[methods[k].jsSelector] = methods[k].fn; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for(var i=0;i<subclasses.length;i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				st.initSubTree(subclasses[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.initSubTree = function(klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var subclasses = st.subclasses(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var methods, proto = klass.fn.prototype; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(klass.superclass && klass.superclass !== nil) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				methods = st.methods(klass.superclass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				//Methods linking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				for(var i in methods) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if(!proto.methods[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						proto.inheritedMethods[i] = methods[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						proto[methods[i].jsSelector] = methods[i].fn; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for(var i=0;i<subclasses.length;i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			st.initSubTree(subclasses[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for(var i=0;i<subclasses.length;i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				st.initSubTree(subclasses[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/* Answer all registered Packages as Array */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -229,56 +207,33 @@ function Smalltalk(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/* Answer all registered Smalltalk classes */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if ('function' === typeof Object.keys) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.classes = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var classes = [], names = Object.keys(st), l = names.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for (var i=0; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				var name = names[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (name.search(/^[A-Z]/) !== -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					classes.push(st[name]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return classes; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.classes = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var classes = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for(var i in st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(i.search(/^[A-Z]/g) != -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					classes.push(st[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	st.classes = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var classes = [], names = Object.keys(st), l = names.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for (var i=0; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var name = names[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (name.search(/^[A-Z]/) !== -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				classes.push(st[name]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return classes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return classes; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/* Answer all methods (included inherited ones) of klass. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if ('function' === typeof Object.keys) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.methods = function(klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var methods = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var copyFrom = klass.fn.prototype.methods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for(var i=0, k=Object.keys(copyFrom), l=k.length; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				methods[k[i]] = copyFrom[k[i]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			copyFrom = klass.fn.prototype.inheritedMethods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for(var i=0, k=Object.keys(copyFrom), l=k.length; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				methods[k[i]] = copyFrom[k[i]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return methods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.methods = function(klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var methods = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for(var i in klass.fn.prototype.methods) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				methods[i] = klass.fn.prototype.methods[i] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			for(var i in klass.fn.prototype.inheritedMethods) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				methods[i] = klass.fn.prototype.inheritedMethods[i] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return methods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	st.methods = function(klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var methods = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var copyFrom = klass.fn.prototype.methods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for(var i=0, k=Object.keys(copyFrom), l=k.length; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			methods[k[i]] = copyFrom[k[i]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		copyFrom = klass.fn.prototype.inheritedMethods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for(var i=0, k=Object.keys(copyFrom), l=k.length; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			methods[k[i]] = copyFrom[k[i]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return methods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/* Answer the direct subclasses of klass. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -544,10 +499,6 @@ function Smalltalk(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/* Kept for backward compatibility */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	st.setDeploymentMode = function() {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	st.setDevelopmentMode = function() {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function SmalltalkMethodContext(receiver, selector, temps, home) { 
			 |