});
};
- var function_ = function(in_statement) {
+ var function_ = function(in_statement, ctor) {
var name = is("name") ? as_symbol(in_statement
? AST_SymbolDefun
: AST_SymbolLambda) : null;
if (in_statement && !name)
unexpected();
expect("(");
- var ctor = in_statement ? AST_Defun : AST_Function;
+ if (!ctor) ctor = in_statement ? AST_Defun : AST_Function;
return new ctor({
name: name,
argnames: (function(first, a){
a.push(new AST_ObjectGetter({
start : start,
key : name,
- value : function_(false),
+ value : function_(false, AST_Lambda),
end : prev()
}));
continue;
a.push(new AST_ObjectSetter({
start : start,
key : name,
- value : function_(false),
+ value : function_(false, AST_Lambda),
end : prev()
}));
continue;