| 
					
				 | 
			
			
				@@ -156,13 +156,11 @@ var createDefaults = function(amber_dir, finished_callback){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'jsGlobals': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'amd_namespace': 'amber', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'closure': false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		'closure_parts': false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'closure_full': false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'closure_options': ' --language_in=ECMASCRIPT5 ', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'suffix': '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'loadsuffix': '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'suffix_used': '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		'deploy': false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'libraries': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'compile': [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		'compiled': [], 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,10 +184,6 @@ AmberC.prototype.main = function(configuration, finished_callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		configuration.finished_callback = finished_callback; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if (configuration.closure || configuration.closure_parts || configuration.closure_full) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		configuration.deploy = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (configuration.amd_namespace.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		configuration.amd_namespace = 'amber'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -241,7 +235,6 @@ AmberC.prototype.check_for_closure_compiler = function(callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (null !== error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				console.warn('java is not installed but is needed for running the Closure compiler (-O, -A or -o flags).'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				defaults.closure = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				defaults.closure_parts = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				defaults.closure_full = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				callback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				return; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -250,7 +243,6 @@ AmberC.prototype.check_for_closure_compiler = function(callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (!exists) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					console.warn('Can not find Closure compiler at: ' + self.closure_jar); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					defaults.closure = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					defaults.closure_parts = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					defaults.closure_full = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					console.warn('Closure compiler found at: ' + self.closure_jar); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -535,25 +527,14 @@ AmberC.prototype.category_export = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var jsFile = category + defaults.suffix_used + '.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		jsFile = path.join(jsFilePath, jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		defaults.compiled.push(jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var jsFileDeploy = category + defaults.suffix_used + '.deploy.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		jsFileDeploy = path.join(jsFilePath, jsFileDeploy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		console.log('Exporting ' + (defaults.deploy ? '(debug + deploy)' : '(debug)') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			+ ' category ' + category + ' as ' + jsFile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			+ (defaults.deploy ? ' and ' + jsFileDeploy : '')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var smalltalk = defaults.smalltalk; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var pluggableExporter = smalltalk.PluggableExporter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var packageObject = smalltalk.Package._named_(category); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		packageObject._amdNamespace_(defaults.amd_namespace); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		fs.writeFile(jsFile, smalltalk.String._streamContents_(function (stream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			pluggableExporter._forRecipe_(smalltalk.Exporter._default()._amdRecipe())._exportPackage_on_(packageObject, stream); }), function(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (defaults.deploy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				fs.writeFile(jsFileDeploy, smalltalk.String._streamContents_(function (stream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					pluggableExporter._forRecipe_(smalltalk.StrippedExporter._default()._amdRecipe())._exportPackage_on_(packageObject, stream); }), callback); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			smalltalk.AmdExporter._default()._exportPackage_on_(packageObject, stream); }), function(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				callback(null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, function(err, result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		self.verify(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -569,12 +550,6 @@ AmberC.prototype.verify = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// copy array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var compiledFiles = this.defaults.compiled.slice(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// append deploy files if necessary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if (true === this.defaults.deploy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		this.defaults.compiled.forEach(function(file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			compiledFiles.push(file.replace(/\.js/g, '.deploy.js')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	async_map(compiledFiles, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		function(file, callback) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -615,11 +590,7 @@ AmberC.prototype.compose_js_files = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (0 !== defaults.compiled.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var compiledFiles = defaults.compiled.slice(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (true === defaults.deploy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			compiledFiles = compiledFiles.map(function(file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				return file.replace(/\.js$/g, '.deploy.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		console.log('Collecting compiled files: ' + compiledFiles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		program_files.push.apply(program_files, compiledFiles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -681,7 +652,7 @@ AmberC.prototype.compose_js_files = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Optimize created JavaScript files with Google Closure compiler depending 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * on the flags: defaults.closure_parts, defaults.closure_full. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * on the flag: defaults.closure_full. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 AmberC.prototype.optimize = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	var defaults = this.defaults; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -694,15 +665,6 @@ AmberC.prototype.optimize = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if (defaults.closure_parts) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		console.log('Compiling all js files using Google closure compiler.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		defaults.compiled.forEach(function(file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var deployFile = file.replace(/\.js$/g, '.deploy.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			console.log('Compiling ' + deployFile + ' file using Google closure compiler.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var minifiedName = deployFile.replace(/\.js$/g, '.min.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			self.closure_compile(deployFile, minifiedName, optimization_done.add()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (defaults.closure_full && (undefined !== defaults.program)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var programFile = defaults.program; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (undefined !== defaults.output_dir) { 
			 |