< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java

Print this page

        

@@ -2578,22 +2578,19 @@
             return methodHandle;
         }
 
         final int parameterCount = methodType.parameterCount();
         final int callCount      = callType.parameterCount();
-        final int pdiff          = callCount - parameterCount + 1;
 
         final boolean isCalleeVarArg = parameterCount > 0 && methodType.parameterType(parameterCount - 1).isArray();
         final boolean isCallerVarArg = callerVarArg != null ? callerVarArg : callCount > 0 &&
                 callType.parameterType(callCount - 1).isArray();
 
-        // A value of pdiff < 0 means that there are additional normal arguments in the callee that must not be consumed
-        // by the vararg collector. No vararg collector is required in that case, and no varargs are passed.
-        if (isCalleeVarArg && pdiff >= 0) {
+        if (isCalleeVarArg) {
             return isCallerVarArg ?
                 methodHandle :
-                MH.asCollector(methodHandle, Object[].class, pdiff);
+                MH.asCollector(methodHandle, Object[].class, callCount - parameterCount + 1);
         }
 
         if (isCallerVarArg) {
             return adaptHandleToVarArgCallSite(methodHandle, callCount);
         }
< prev index next >