|  | @@ -390,6 +390,17 @@ function Smalltalk() {
 | 
	
		
			
				|  |  |  		return subclasses;
 | 
	
		
			
				|  |  |  	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    st.allSubclasses = function(klass) {
 | 
	
		
			
				|  |  | +        var result, subclasses;
 | 
	
		
			
				|  |  | +        result = subclasses = st.subclasses(klass);
 | 
	
		
			
				|  |  | +        subclasses.forEach(function(subclass) {
 | 
	
		
			
				|  |  | +            result.push.apply(result, st.allSubclasses(subclass));
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return result;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	/* Create a new class wrapping a JavaScript constructor, and add it to the
 | 
	
		
			
				|  |  |  	   global smalltalk object. Package is lazily created if it does not exist with given name. */
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -500,6 +511,16 @@ function Smalltalk() {
 | 
	
		
			
				|  |  |          // Therefore we populate the organizer here too
 | 
	
		
			
				|  |  |          klass.organization.elements.addElement(method.category);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        // If already initialized (else it will be done later anyway),
 | 
	
		
			
				|  |  | +        // re-initialize all subclasses to ensure the new method
 | 
	
		
			
				|  |  | +        // propagation (for wrapped classes, not using the prototype
 | 
	
		
			
				|  |  | +        // chain.
 | 
	
		
			
				|  |  | +        if(initialized) {
 | 
	
		
			
				|  |  | +            st.allSubclasses(klass).forEach(function(subclass) {
 | 
	
		
			
				|  |  | +                st.initClass(subclass);
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          for(var i=0; i<method.messageSends.length; i++) {
 | 
	
		
			
				|  |  |              var dnuHandler = dnu.get(method.messageSends[i]);
 | 
	
		
			
				|  |  |              if(initialized) {
 |