diff --git a/apps/furnace-fjsc/resources/bootstrap.js b/apps/furnace-fjsc/resources/bootstrap.js index 106064f1f4..d3396e5d70 100644 --- a/apps/furnace-fjsc/resources/bootstrap.js +++ b/apps/furnace-fjsc/resources/bootstrap.js @@ -31,12 +31,14 @@ function Factor() { var factor = new Factor(); Factor.prototype.call_next = function(next) { - if(this.nesting++ > 150) { - this.nesting = 0; - setTimeout(next, 0); - } - else { - next(); + if(next) { + if(this.nesting++ > 150) { + this.nesting = 0; + setTimeout(next, 0); + } + else { + next(); + } } } @@ -299,3 +301,32 @@ factor.words["alien-invoke"] = new Word("alien-invoke", "primitive", function(ne stack.push(v); factor.call_next(next); }); + +factor.words["map"] = new Word("map", "primitive", function(next) { + var stack = factor.cont.data_stack; + var quot = stack.pop(); + var seq = stack.pop(); + var result = [ ]; + for(var i=0;i