|  | @@ -195,26 +195,28 @@ function check_configuration(configuration) {
 | 
	
		
			
				|  |  |   * @param filename name of a file without '.js' prefix
 | 
	
		
			
				|  |  |   * @param callback gets called on success with path to .js file as parameter
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | -function resolve_js(filename, configuration, callback) {
 | 
	
		
			
				|  |  | -	var baseName = path.basename(filename, '.js');
 | 
	
		
			
				|  |  | -	var jsFile = baseName + configuration.loadsuffix + '.js';
 | 
	
		
			
				|  |  | -	console.log('Resolving: ' + jsFile);
 | 
	
		
			
				|  |  | -	fs.exists(jsFile, function(exists) {
 | 
	
		
			
				|  |  | -		if (exists) {
 | 
	
		
			
				|  |  | -			callback(jsFile);
 | 
	
		
			
				|  |  | -		} else {
 | 
	
		
			
				|  |  | -			var amberJsFile = '';
 | 
	
		
			
				|  |  | -			// check for specified .js file in any of the directories from jsLibraryDirs
 | 
	
		
			
				|  |  | -			var found = configuration.jsLibraryDirs.some(function(directory) {
 | 
	
		
			
				|  |  | -				amberJsFile = path.join(directory, jsFile);
 | 
	
		
			
				|  |  | -				return fs.existsSync(amberJsFile);
 | 
	
		
			
				|  |  | -			});
 | 
	
		
			
				|  |  | -			if (found) {
 | 
	
		
			
				|  |  | -				callback(amberJsFile);
 | 
	
		
			
				|  |  | +function resolve_js(filename, configuration) {
 | 
	
		
			
				|  |  | +	return new Promise(function(resolve, reject) {
 | 
	
		
			
				|  |  | +		var baseName = path.basename(filename, '.js');
 | 
	
		
			
				|  |  | +		var jsFile = baseName + configuration.loadsuffix + '.js';
 | 
	
		
			
				|  |  | +		console.log('Resolving: ' + jsFile);
 | 
	
		
			
				|  |  | +		fs.exists(jsFile, function(exists) {
 | 
	
		
			
				|  |  | +			if (exists) {
 | 
	
		
			
				|  |  | +				resolve(jsFile);
 | 
	
		
			
				|  |  |  			} else {
 | 
	
		
			
				|  |  | -				throw(new Error('JavaScript file not found: ' + jsFile));
 | 
	
		
			
				|  |  | +				var amberJsFile = '';
 | 
	
		
			
				|  |  | +				// check for specified .js file in any of the directories from jsLibraryDirs
 | 
	
		
			
				|  |  | +				var found = configuration.jsLibraryDirs.some(function(directory) {
 | 
	
		
			
				|  |  | +					amberJsFile = path.join(directory, jsFile);
 | 
	
		
			
				|  |  | +					return fs.existsSync(amberJsFile);
 | 
	
		
			
				|  |  | +				});
 | 
	
		
			
				|  |  | +				if (found) {
 | 
	
		
			
				|  |  | +					resolve(amberJsFile);
 | 
	
		
			
				|  |  | +				} else {
 | 
	
		
			
				|  |  | +					reject(Error('JavaScript file not found: ' + jsFile));
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  |  	});
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -264,9 +266,7 @@ function collect_js_files(configuration) {
 | 
	
		
			
				|  |  |  	return new Promise(function(resolve, reject) {
 | 
	
		
			
				|  |  |  		Promise.all(
 | 
	
		
			
				|  |  |  			configuration.jsFiles.map(function(file) {
 | 
	
		
			
				|  |  | -				return new Promise(function(resolve, reject) {
 | 
	
		
			
				|  |  | -					resolve_js(file, configuration, resolve);
 | 
	
		
			
				|  |  | -				});
 | 
	
		
			
				|  |  | +				return resolve_js(file, configuration);
 | 
	
		
			
				|  |  |  			})
 | 
	
		
			
				|  |  |  		).then(function(data) {
 | 
	
		
			
				|  |  |  			configuration.libraries = configuration.libraries.concat(data);
 | 
	
	
		
			
				|  | @@ -287,9 +287,7 @@ function resolve_kernel(configuration) {
 | 
	
		
			
				|  |  |  	return new Promise(function(resolve, reject) {
 | 
	
		
			
				|  |  |  		Promise.all(
 | 
	
		
			
				|  |  |  			kernel_files.map(function(file) {
 | 
	
		
			
				|  |  | -				return new Promise(function(resolve, reject) {
 | 
	
		
			
				|  |  | -					resolve_js(file, configuration, resolve);
 | 
	
		
			
				|  |  | -				});
 | 
	
		
			
				|  |  | +				return resolve_js(file, configuration, resolve);
 | 
	
		
			
				|  |  |  			})
 | 
	
		
			
				|  |  |  		).then(function(data) {
 | 
	
		
			
				|  |  |  			// boot.js and Kernel files need to be used first
 | 
	
	
		
			
				|  | @@ -313,9 +311,7 @@ function resolve_compiler(configuration) {
 | 
	
		
			
				|  |  |  	return new Promise(function(resolve, reject) {
 | 
	
		
			
				|  |  |  		Promise.all(
 | 
	
		
			
				|  |  |  			compiler_files.map(function(file) {
 | 
	
		
			
				|  |  | -				return new Promise(function(resolve, reject) {
 | 
	
		
			
				|  |  | -					resolve_js(file, configuration, resolve);
 | 
	
		
			
				|  |  | -				});
 | 
	
		
			
				|  |  | +				return resolve_js(file, configuration, resolve);
 | 
	
		
			
				|  |  |  			})
 | 
	
		
			
				|  |  |  		).then(function(compilerFiles) {
 | 
	
		
			
				|  |  |  			resolve(compilerFiles);
 |