| 
					
				 | 
			
			
				@@ -91,7 +91,9 @@ if (3 > process.argv.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function handle_options(optionsArray) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var nonOptions = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var stFiles = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var jsFiles = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var programName = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var currentItem = optionsArray.shift(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	while(undefined !== currentItem) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -138,13 +140,31 @@ function handle_options(optionsArray) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				usage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				nonOptions.push(currentItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				var fileSuffix = path.extname(currentItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				switch (fileSuffix) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					case '.st': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						stFiles.push(currentItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					case '.js': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						jsFiles.push(currentItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						// Will end up being the last non js/st argument 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						programName.push(currentItem); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		currentItem = optionsArray.shift(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if(1 < programName.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		throw new Error('More than one name for ProgramName given: ' + programName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		defaults.program = programName[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	check_for_closure_compiler(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		collect_files(nonOptions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		collect_files(stFiles, jsFiles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -308,33 +328,7 @@ function always_resolve(callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // Collect libraries and Smalltalk files looking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // both locally and in $AMBER/js and $AMBER/st  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // -------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function collect_files(filesArray) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var stFiles = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var jsFiles = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var programName = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	filesArray.forEach(function(currentFile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var fileSuffix = path.extname(currentFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		switch (fileSuffix) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case '.st': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				stFiles.push(currentFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			case '.js': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				jsFiles.push(currentFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				// Will end up being the last non js/st argument 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				programName.push(currentFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if(1 < programName.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		throw new Error('More than one name for ProgramName given: ' + programName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		defaults.program = programName[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// collecting files starts here!! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function collect_files(stFiles, jsFiles) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var collected_files = new Combo(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		resolve_libraries(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 |