src/jdk/nashorn/internal/ir/debug/JSONWriter.java

Print this page




 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();