|  | @@ -185,7 +185,8 @@ function Smalltalk() {
 | 
											
												
													
														|  |  		spec = spec || {};
 |  |  		spec = spec || {};
 | 
											
												
													
														|  |  		var meta = metaclass(spec);
 |  |  		var meta = metaclass(spec);
 | 
											
												
													
														|  |  		var that = meta.instanceClass;
 |  |  		var that = meta.instanceClass;
 | 
											
												
													
														|  | -        setupClass(that, spec);
 |  | 
 | 
											
												
													
														|  | 
 |  | +		that.fn = spec.fn || function() {};
 | 
											
												
													
														|  | 
 |  | +		setupClass(that, spec);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          that.className = spec.className;
 |  |          that.className = spec.className;
 | 
											
												
													
														|  |          that.wrapped   = spec.wrapped || false;
 |  |          that.wrapped   = spec.wrapped || false;
 | 
											
										
											
												
													
														|  | @@ -198,30 +199,19 @@ function Smalltalk() {
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	function metaclass(spec) {
 |  |  	function metaclass(spec) {
 | 
											
												
													
														|  | -		var superConstructor;
 |  | 
 | 
											
												
													
														|  |  		spec = spec || {};
 |  |  		spec = spec || {};
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -		if(spec.superclass) {
 |  | 
 | 
											
												
													
														|  | -			superConstructor = spec.superclass.klass.fn;
 |  | 
 | 
											
												
													
														|  | -		} else {
 |  | 
 | 
											
												
													
														|  | -			superConstructor = SmalltalkClass;
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  		var that = new SmalltalkMetaclass();
 |  |  		var that = new SmalltalkMetaclass();
 | 
											
												
													
														|  | -        that.fn            = function() {};
 |  | 
 | 
											
												
													
														|  | -        inherits(that.fn, superConstructor);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        setupClass(that);
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +		inherits(
 | 
											
												
													
														|  | 
 |  | +			that.fn = function() {},
 | 
											
												
													
														|  | 
 |  | +			spec.superclass ? spec.superclass.klass.fn : SmalltalkClass
 | 
											
												
													
														|  | 
 |  | +		);
 | 
											
												
													
														|  | 
 |  | +		setupClass(that);
 | 
											
												
													
														|  |  		that.instanceClass = new that.fn();
 |  |  		that.instanceClass = new that.fn();
 | 
											
												
													
														|  |  		return that;
 |  |  		return that;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	function setupClass(klass, spec) {
 |  |  	function setupClass(klass, spec) {
 | 
											
												
													
														|  |          spec = spec || {};
 |  |          spec = spec || {};
 | 
											
												
													
														|  | -        if(!klass.fn) {
 |  | 
 | 
											
												
													
														|  | -		    klass.fn = spec.fn || function() {};
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  |  		klass.iVarNames = spec.iVarNames || [];
 |  |  		klass.iVarNames = spec.iVarNames || [];
 | 
											
												
													
														|  |  		klass.pkg = spec.pkg;
 |  |  		klass.pkg = spec.pkg;
 | 
											
												
													
														|  |  
 |  |  
 |