| 
					
				 | 
			
			
				@@ -8,6 +8,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Execute 'node compiler.js' without arguments or with -h / --help for help. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var amdefine = require("amdefine"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Map the async filter function onto array and evaluate callback, once all have finished. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Taken from: http://howtonode.org/control-flow-part-iii 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -415,7 +417,7 @@ AmberC.prototype.resolve_init = function(compilerFiles) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 AmberC.prototype.create_compiler = function(compilerFilesArray) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var compiler_files = new Combo(function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var define = require('amdefine')(module), requirejs = define.require; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var define = amdefine(module), requirejs = define.require; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         define("amber_vm/browser-compatibility", [], {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var content = '(function() {'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -597,6 +599,21 @@ AmberC.prototype.compose_js_files = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		self.optimize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fileStream.write('var define = ('+(''+defineDefine).replace('$SRC$', ""+amdefine)+')();\n' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        + 'define("amber_vm/browser-compatibility", [], {});\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	program_files.forEach(function(file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if(fs.existsSync(file)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			console.log('Adding : ' + file); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -606,6 +623,7 @@ AmberC.prototype.compose_js_files = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			throw(new Error('Can not find file ' + file)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fileStream.write('define("amber_vm/_init", ["amber_vm/smalltalk"], function (st) { st.initialize(); });\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (undefined !== defaults.main) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.log('Adding call to: %s>>main', defaults.main); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		fileStream.write('smalltalk.' + defaults.main + '._main()'); 
			 |