< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/ApplySpecialization.java

Print this page

        

*** 281,301 **** final TypeMap ptm = compiler.getTypeMap(); if (ptm.needsCallee()) { start++; } ! start++; //we always uses this ! final List<IdentNode> params = functionNode.getParameters(); final List<IdentNode> newParams = new ArrayList<>(); ! final long to = Math.max(params.size(), actualCallSiteType.parameterCount() - start); for (int i = 0; i < to; i++) { - if (i >= params.size()) { newParams.add(new IdentNode(functionNode.getToken(), functionNode.getFinish(), EXPLODED_ARGUMENT_PREFIX.symbolName() + (i))); - } else { - newParams.add(params.get(i)); - } } callSiteTypes.push(actualCallSiteType); explodedArguments.push(newParams); } --- 281,297 ---- final TypeMap ptm = compiler.getTypeMap(); if (ptm.needsCallee()) { start++; } ! start++; // we always use this ! assert functionNode.getNumOfParams() == 0 : "apply2call on function with named paramaters!"; final List<IdentNode> newParams = new ArrayList<>(); ! final long to = actualCallSiteType.parameterCount() - start; for (int i = 0; i < to; i++) { newParams.add(new IdentNode(functionNode.getToken(), functionNode.getFinish(), EXPLODED_ARGUMENT_PREFIX.symbolName() + (i))); } callSiteTypes.push(actualCallSiteType); explodedArguments.push(newParams); }
*** 314,323 **** --- 310,323 ---- if (!compiler.isOnDemandCompilation()) { return false; } + if (functionNode.getNumOfParams() != 0) { + return false; + } + if (functionNode.hasEval()) { return false; } if (!hasApplies(functionNode)) {
< prev index next >