|
@@ -90,7 +90,7 @@ function AmberC(amber_dir, closure_jar) {
|
|
|
/**
|
|
|
* Default values.
|
|
|
*/
|
|
|
-var createDefaults = function(amber_dir){
|
|
|
+var createDefaults = function(amber_dir, finished_callback){
|
|
|
return {
|
|
|
'smalltalk': {}, // the evaluated compiler will be stored in this variable (see create_compiler)
|
|
|
'load': [],
|
|
@@ -109,7 +109,8 @@ var createDefaults = function(amber_dir){
|
|
|
'compile': [],
|
|
|
'compiled_categories': [],
|
|
|
'compiled': [],
|
|
|
- 'program': undefined
|
|
|
+ 'program': undefined,
|
|
|
+ 'finished_callback': finished_callback
|
|
|
};
|
|
|
};
|
|
|
|
|
@@ -117,14 +118,14 @@ var createDefaults = function(amber_dir){
|
|
|
/**
|
|
|
* Main function for executing the compiler.
|
|
|
*/
|
|
|
-AmberC.prototype.main = function(parameters) {
|
|
|
+AmberC.prototype.main = function(parameters, finished_callback) {
|
|
|
console.time('Compile Time');
|
|
|
var options = parameters || process.argv.slice(2);
|
|
|
|
|
|
if (1 > options.length) {
|
|
|
this.usage();
|
|
|
} else {
|
|
|
- this.defaults = createDefaults(this.amber_dir);
|
|
|
+ this.defaults = createDefaults(this.amber_dir, finished_callback);
|
|
|
this.handle_options(options);
|
|
|
}
|
|
|
};
|
|
@@ -699,6 +700,9 @@ AmberC.prototype.optimize = function() {
|
|
|
var self = this;
|
|
|
var optimization_done = new Combo(function() {
|
|
|
console.timeEnd('Compile Time');
|
|
|
+ if (undefined !== defaults.finished_callback) {
|
|
|
+ defaults.finished_callback();
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
if (defaults.closure_parts) {
|