| 
					
				 | 
			
			
				@@ -601,33 +601,30 @@ AmberC.prototype.compose_js_files = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var defineDefine = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var path = require('path'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var amdefine = $SRC$; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var define = amdefine(module); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var result = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var id = arguments[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			setTimeout(function () { define.require(id); }, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return define.apply(this, arguments); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		result.amd = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return ($SRC$)(module); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	fileStream.write('var define = ('+(''+defineDefine).replace('$SRC$', ""+amdefine)+')();\n' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fileStream.write('var define = ('+(''+defineDefine).replace('$SRC$', ""+amdefine)+')(), requirejs = define.require;\n' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		+ 'define("amber_vm/browser-compatibility", [], {});\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var ids = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	program_files.forEach(function(file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(fs.existsSync(file)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			console.log('Adding : ' + file); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			fileStream.write(fs.readFileSync(file)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var buffer = fs.readFileSync(file); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var match = buffer.toString().match(/^define\("([^"]*)"/); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (match /*&& match[1].slice(0,9) !== "amber_vm/"*/) { ids.push(match[1]); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			fileStream.write(buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			fileStream.end(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			throw(new Error('Can not find file ' + file)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	fileStream.write('define("amber_vm/_init", ["amber_vm/smalltalk"], function (st) { st.initialize(); });\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fileStream.write('define("amber_vm/_init", ["amber_vm/smalltalk","'+ids.join('","')+'"], function (smalltalk) { smalltalk.initialize();\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (undefined !== defaults.main) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.log('Adding call to: %s>>main', defaults.main); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		fileStream.write('smalltalk.' + defaults.main + '._main()'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fileStream.write('});\nrequirejs("amber_vm/_init");\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (undefined !== defaults.mainfile && fs.existsSync(defaults.mainfile)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.log('Adding main file: ' + defaults.mainfile); 
			 |