8044816: On-demand compiled top-level program doesn't need :createProgramFunction
Reviewed-by: jlaskey, lagergren, sundar
--- a/nashorn/src/jdk/nashorn/internal/codegen/CodeGenerator.java Thu Jun 05 12:15:45 2014 +0200
+++ b/nashorn/src/jdk/nashorn/internal/codegen/CodeGenerator.java Thu Jun 05 12:16:09 2014 +0200
@@ -4312,8 +4312,7 @@
assert data != null : functionNode.getName() + " has no data";
- final FunctionNode parentFn = lc.getParentFunction(functionNode);
- if (parentFn == null && functionNode.isProgram()) {
+ if (functionNode.isProgram() && !compiler.isOnDemandCompilation()) {
final CompileUnit fnUnit = functionNode.getCompileUnit();
final MethodEmitter createFunction = fnUnit.getClassEmitter().method(
EnumSet.of(Flag.PUBLIC, Flag.STATIC), CREATE_PROGRAM_FUNCTION.symbolName(),