Program: 28038
Project: 28038
Buggy source:
/** 
 * Parses the JavaScript text given by a reader.
 * @param sourceString Source code from the file.
 * @param errorReporter An error.
 * @param logger A logger.
 * @return The AST of the given text.
 * @throws IOException
 */
public static Node parse(StaticSourceFile sourceFile,String sourceString,Config config,ErrorReporter errorReporter,Logger logger) throws IOException {
  Context cx=Context.enter();
  cx.setErrorReporter(errorReporter);
  cx.setLanguageVersion(Context.VERSION_1_5);
  CompilerEnvirons compilerEnv=new CompilerEnvirons();
  compilerEnv.initFromContext(cx);
  compilerEnv.setRecordingComments(true);
  compilerEnv.setRecordingLocalJsDocComments(true);
  compilerEnv.setWarnTrailingComma(config.languageMode == LanguageMode.ECMASCRIPT3);
  boolean acceptEs5=config.isIdeMode || config.languageMode != LanguageMode.ECMASCRIPT3;
  compilerEnv.setReservedKeywordAsIdentifier(acceptEs5);
  compilerEnv.setAllowKeywordAsObjectPropertyName(acceptEs5);
  compilerEnv.setAllowMemberExprAsFunctionName(false);
  compilerEnv.setIdeMode(config.isIdeMode);
  compilerEnv.setRecoverFromErrors(config.isIdeMode);
  Parser p=new Parser(compilerEnv,errorReporter);
  AstRoot astRoot=null;
  try {
    astRoot=p.parse(sourceString,sourceFile.getName(),1);
  }
 catch (  EvaluatorException e) {
    logger.info("String_Node_Str" + sourceFile.getName() + "String_Node_Str"+ e.getMessage());
  }
 finally {
    Context.exit();
  }
  Node root=null;
  if (astRoot != null) {
    root=IRFactory.transformTree(astRoot,sourceFile,sourceString,config,errorReporter);
    root.setIsSyntheticBlock(true);
  }
  return root;
}

Fixed version (ground truth):
/** 
 * Parses the JavaScript text given by a reader.
 * @param sourceString Source code from the file.
 * @param errorReporter An error.
 * @param logger A logger.
 * @return The AST of the given text.
 * @throws IOException
 */
public static Node parse(StaticSourceFile sourceFile,String sourceString,Config config,ErrorReporter errorReporter,Logger logger) throws IOException {
  Context cx=Context.enter();
  cx.setErrorReporter(errorReporter);
  cx.setLanguageVersion(Context.VERSION_1_5);
  CompilerEnvirons compilerEnv=new CompilerEnvirons();
  compilerEnv.initFromContext(cx);
  compilerEnv.setRecordingComments(true);
  compilerEnv.setRecordingLocalJsDocComments(true);
  compilerEnv.setWarnTrailingComma(config.languageMode == LanguageMode.ECMASCRIPT3);
  boolean acceptEs5=config.isIdeMode || config.languageMode != LanguageMode.ECMASCRIPT3;
  compilerEnv.setReservedKeywordAsIdentifier(acceptEs5);
  compilerEnv.setAllowMemberExprAsFunctionName(false);
  compilerEnv.setIdeMode(config.isIdeMode);
  compilerEnv.setRecoverFromErrors(config.isIdeMode);
  Parser p=new Parser(compilerEnv,errorReporter);
  AstRoot astRoot=null;
  try {
    astRoot=p.parse(sourceString,sourceFile.getName(),1);
  }
 catch (  EvaluatorException e) {
    logger.info("String_Node_Str" + sourceFile.getName() + "String_Node_Str"+ e.getMessage());
  }
 finally {
    Context.exit();
  }
  Node root=null;
  if (astRoot != null) {
    root=IRFactory.transformTree(astRoot,sourceFile,sourceString,config,errorReporter);
    root.setIsSyntheticBlock(true);
  }
  return root;
}