List<IParameterNode> parameters = new ArrayList<IParameterNode>(
defaults.values());
for (int i = 0, n = parameters.size(); i < n; i++)
{
IParameterNode pnode = parameters.get(i);
if (pnode != null)
{
code.setLength(0);
/* x = typeof y !== 'undefined' ? y : z;\n */
code.append(pnode.getName());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(ASEmitterTokens.EQUAL.getToken());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(ASEmitterTokens.TYPEOF.getToken());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(pnode.getName());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
code.append(ASEmitterTokens.UNDEFINED.getToken());
code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(ASEmitterTokens.TERNARY.getToken());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(pnode.getName());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(ASEmitterTokens.COLON.getToken());
code.append(ASEmitterTokens.SPACE.getToken());
code.append(pnode.getDefaultValue());
code.append(ASEmitterTokens.SEMICOLON.getToken());
write(code.toString());
if (i == n - 1 && !hasBody(node))