11.2.4 Argument Lists

2010-05-16

The argument production, when evaluated, always returns an (internal) List with zero or more items.

Arguments : ( )

Code: (Meta Ecma)
function evaluate(( )) {
return new List();
}


Arguments : ( ArgumentList )

Code: (Meta Ecma)
function evaluate(( ArgumentList )) {
return evaluate(ArgumentList);
}


ArgumentList : AssignmentExpression

Code: (Meta Ecma)
function evaluate(AssignmentExpression) {
var ref = evaluate(AssignmentExpression);
var arg = GetValue(ref);
return new List(arg);
}


ArgumentList : AssignmentList , AssignmentExpression

Code: (Meta Ecma)
function evaluate(AssignmentList , AssignmentExpression) {
var precedingArgs = evaluate(ArgumentList);
var ref = evaluate(AssignmentExpression);
var arg = GetValue(ref);
precedingArgs.push(arg); // although the spec kind of expects a new list here...
return precedingArgs;
}