393 }
394
395 @Override
396 public boolean enterFunctionNode(final FunctionNode functionNode) {
397 final boolean program = functionNode.isProgram();
398 if (program) {
399 return emitProgram(functionNode);
400 }
401
402 enterDefault(functionNode);
403 final String name;
404 if (functionNode.isDeclared()) {
405 name = "FunctionDeclaration";
406 } else {
407 name = "FunctionExpression";
408 }
409 type(name);
410 comma();
411
412 property("id");
413 if (functionNode.isAnonymous()) {
414 nullValue();
415 } else {
416 functionNode.getIdent().accept(this);
417 }
418 comma();
419
420 array("params", functionNode.getParameters());
421 comma();
422
423 arrayStart("defaults");
424 arrayEnd();
425 comma();
426
427 property("rest");
428 nullValue();
429 comma();
430
431 property("body");
432 functionNode.getBody().accept(this);
433 comma();
|
393 }
394
395 @Override
396 public boolean enterFunctionNode(final FunctionNode functionNode) {
397 final boolean program = functionNode.isProgram();
398 if (program) {
399 return emitProgram(functionNode);
400 }
401
402 enterDefault(functionNode);
403 final String name;
404 if (functionNode.isDeclared()) {
405 name = "FunctionDeclaration";
406 } else {
407 name = "FunctionExpression";
408 }
409 type(name);
410 comma();
411
412 property("id");
413 final FunctionNode.Kind kind = functionNode.getKind();
414 if (functionNode.isAnonymous() || kind == FunctionNode.Kind.GETTER || kind == FunctionNode.Kind.SETTER) {
415 nullValue();
416 } else {
417 functionNode.getIdent().accept(this);
418 }
419 comma();
420
421 array("params", functionNode.getParameters());
422 comma();
423
424 arrayStart("defaults");
425 arrayEnd();
426 comma();
427
428 property("rest");
429 nullValue();
430 comma();
431
432 property("body");
433 functionNode.getBody().accept(this);
434 comma();
|