Program: 53422
Project: 53422
Buggy source:
/** 
 * Construct an simple AST representing an entire   {@link CompilationState}. Does not support deferred binding. Implementation mostly copied from  {@link JavaToJavaScriptCompiler}.
 */
public static JProgram construct(TreeLogger logger,final CompilationState state,CompilerContext compilerContext,ConfigurationProperties config) throws UnableToCompleteException {
  InternalCompilerException.preload();
  PrecompilationContext precompilationContext=new PrecompilationContext(new RebindPermutationOracle(){
    @Override public void clear(){
    }
    @Override public String[] getAllPossibleRebindAnswers(    TreeLogger logger,    String sourceTypeName) throws UnableToCompleteException {
      return new String[0];
    }
    @Override public CompilationState getCompilationState(){
      return state;
    }
    @Override public StandardGeneratorContext getGeneratorContext(){
      return null;
    }
  }
);
  JProgram jprogram=new JProgram(compilerContext.getMinimalRebuildCache());
  JsProgram jsProgram=new JsProgram();
  UnifyAst unifyAst=new UnifyAst(logger,compilerContext,jprogram,jsProgram,precompilationContext);
  unifyAst.buildEverything();
  jprogram.typeOracle.computeBeforeAST(StandardTypes.createFrom(jprogram),jprogram.getDeclaredTypes(),jprogram.getModuleDeclaredTypes());
  FixAssignmentsToUnboxOrCast.exec(jprogram);
  if (compilerContext.getOptions().isEnableAssertions()) {
    AssertionNormalizer.exec(jprogram);
  }
 else {
    AssertionRemover.exec(jprogram);
  }
  if (compilerContext.getOptions().isRunAsyncEnabled()) {
    ReplaceRunAsyncs.exec(logger,jprogram);
    if (config != null) {
      CodeSplitters.pickInitialLoadSequence(logger,jprogram,config);
    }
  }
  ImplementClassLiteralsAsFields.exec(jprogram);
  return jprogram;
}

Fixed version (ground truth):
/** 
 * Construct an simple AST representing an entire   {@link CompilationState}. Does not support deferred binding. Implementation mostly copied from  {@link JavaToJavaScriptCompiler}.
 */
public static JProgram construct(TreeLogger logger,final CompilationState state,CompilerContext compilerContext,ConfigurationProperties config) throws UnableToCompleteException {
  InternalCompilerException.preload();
  PrecompilationContext precompilationContext=new PrecompilationContext(new RebindPermutationOracle(){
    @Override public void clear(){
    }
    @Override public String[] getAllPossibleRebindAnswers(    TreeLogger logger,    String sourceTypeName) throws UnableToCompleteException {
      return new String[0];
    }
    @Override public CompilationState getCompilationState(){
      return state;
    }
    @Override public StandardGeneratorContext getGeneratorContext(){
      return null;
    }
  }
);
  JProgram jprogram=new JProgram(compilerContext.getMinimalRebuildCache());
  JsProgram jsProgram=new JsProgram();
  UnifyAst unifyAst=new UnifyAst(logger,compilerContext,jprogram,jsProgram,precompilationContext);
  unifyAst.buildEverything();
  jprogram.typeOracle.computeBeforeAST(StandardTypes.createFrom(jprogram),jprogram.getDeclaredTypes(),jprogram.getModuleDeclaredTypes());
  FixAssignmentsToUnboxOrCast.exec(jprogram);
  if (compilerContext.getOptions().isEnableAssertions()) {
    AssertionNormalizer.exec(jprogram);
  }
 else {
    AssertionRemover.exec(jprogram);
  }
  if (compilerContext.getOptions().isRunAsyncEnabled()) {
    ReplaceRunAsyncs.exec(logger,jprogram);
    if (config != null) {
      CodeSplitters.pickInitialLoadSequence(logger,jprogram,config);
    }
  }
  ImplementClassLiteralsAsFields.exec(jprogram,true);
  return jprogram;
}