| 
					
				 | 
			
			
				@@ -473,7 +473,17 @@ AmberC.prototype.compile = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		self.category_export(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		category_export(self.defaults).then(function(resolve) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return self.defaults; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, function(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			console.error(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}).then(verify) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.then(function(resolve) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return self.defaults; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, function(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			console.error(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}).then(compose_js_files); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	this.defaults.compile.forEach(function(stFile) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -494,35 +504,34 @@ AmberC.prototype.compile = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Export compiled categories to JavaScript files. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Followed by verify(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Returns a Promise.all() object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-AmberC.prototype.category_export = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var defaults = this.defaults; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// export categories as .js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	async_map(defaults.compile, function(stFile, callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var category = path.basename(stFile, '.st'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var jsFilePath = defaults.output_dir; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (undefined === jsFilePath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			jsFilePath = path.dirname(stFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var jsFile = category + defaults.suffix_used + '.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		jsFile = path.join(jsFilePath, jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		defaults.compiled.push(jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var smalltalk = defaults.smalltalk; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var packageObject = smalltalk.Package._named_(category); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		packageObject._transport()._namespace_(defaults.amd_namespace); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		fs.writeFile(jsFile, smalltalk.String._streamContents_(function (stream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			smalltalk.AmdExporter._new()._exportPackage_on_(packageObject, stream); }), function(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				callback(null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function category_export(configuration) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return Promise.all( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		configuration.compile.map(function(stFile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return new Promise(function(resolve, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				var category = path.basename(stFile, '.st'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				var jsFilePath = configuration.output_dir; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (undefined === jsFilePath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					jsFilePath = path.dirname(stFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				var jsFile = category + configuration.suffix_used + '.js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				jsFile = path.join(jsFilePath, jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				configuration.compiled.push(jsFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				var smalltalk = configuration.smalltalk; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				var packageObject = smalltalk.Package._named_(category); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				packageObject._transport()._namespace_(configuration.amd_namespace); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				fs.writeFile(jsFile, smalltalk.String._streamContents_(function (stream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					smalltalk.AmdExporter._new()._exportPackage_on_(packageObject, stream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}), function(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						error(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						resolve(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	}, function(err, result){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		verify(defaults).then(function(resolve) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return defaults; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}, function(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			console.error(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}).then(compose_js_files); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |