--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java Mon Jul 25 11:03:01 2016 +0200
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java Mon Jul 25 11:03:27 2016 +0200
@@ -1108,7 +1108,7 @@
*
* @return value of property as a MethodHandle or null.
*/
- protected MethodHandle getCallMethodHandle(final FindProperty find, final MethodType type, final String bindName) {
+ protected static MethodHandle getCallMethodHandle(final FindProperty find, final MethodType type, final String bindName) {
return getCallMethodHandle(find.getObjectValue(), type, bindName);
}
@@ -1121,7 +1121,7 @@
*
* @return value of property as a MethodHandle or null.
*/
- protected static MethodHandle getCallMethodHandle(final Object value, final MethodType type, final String bindName) {
+ private static MethodHandle getCallMethodHandle(final Object value, final MethodType type, final String bindName) {
return value instanceof ScriptFunction ? ((ScriptFunction)value).getCallMethodHandle(type, bindName) : null;
}
@@ -2107,13 +2107,13 @@
* @param desc call site descriptor
* @return method handle for getter
*/
- protected MethodHandle findGetIndexMethodHandle(final Class<?> returnType, final String name, final Class<?> elementType, final CallSiteDescriptor desc) {
+ private static MethodHandle findGetIndexMethodHandle(final Class<?> returnType, final String name, final Class<?> elementType, final CallSiteDescriptor desc) {
if (!returnType.isPrimitive()) {
- return findOwnMH_V(getClass(), name, returnType, elementType);
+ return findOwnMH_V(name, returnType, elementType);
}
return MH.insertArguments(
- findOwnMH_V(getClass(), name, returnType, elementType, int.class),
+ findOwnMH_V(name, returnType, elementType, int.class),
2,
NashornCallSiteDescriptor.isOptimistic(desc) ?
NashornCallSiteDescriptor.getProgramPoint(desc) :
@@ -2257,11 +2257,11 @@
}
}
- private GuardedInvocation findMegaMorphicSetMethod(final CallSiteDescriptor desc, final String name) {
+ private static GuardedInvocation findMegaMorphicSetMethod(final CallSiteDescriptor desc, final String name) {
Context.getContextTrusted().getLogger(ObjectClassGenerator.class).warning("Megamorphic setter: ", desc, " ", name);
final MethodType type = desc.getMethodType().insertParameterTypes(1, Object.class);
//never bother with ClassCastExceptionGuard for megamorphic callsites
- final GuardedInvocation inv = findSetIndexMethod(getClass(), desc, false, type);
+ final GuardedInvocation inv = findSetIndexMethod(desc, false, type);
return inv.replaceMethods(MH.insertArguments(inv.getInvocation(), 1, name), inv.getGuard());
}
@@ -2284,25 +2284,24 @@
* @return GuardedInvocation to be invoked at call site.
*/
protected GuardedInvocation findSetIndexMethod(final CallSiteDescriptor desc, final LinkRequest request) { // array, index, value
- return findSetIndexMethod(getClass(), desc, explicitInstanceOfCheck(desc, request), desc.getMethodType());
+ return findSetIndexMethod(desc, explicitInstanceOfCheck(desc, request), desc.getMethodType());
}
/**
* Find the appropriate SETINDEX method for an invoke dynamic call.
*
- * @param clazz the receiver class
* @param desc the call site descriptor
* @param explicitInstanceOfCheck add an explicit instanceof check?
* @param callType the method type at the call site
*
* @return GuardedInvocation to be invoked at call site.
*/
- private static GuardedInvocation findSetIndexMethod(final Class<? extends ScriptObject> clazz, final CallSiteDescriptor desc, final boolean explicitInstanceOfCheck, final MethodType callType) {
+ private static GuardedInvocation findSetIndexMethod(final CallSiteDescriptor desc, final boolean explicitInstanceOfCheck, final MethodType callType) {
assert callType.parameterCount() == 3;
final Class<?> keyClass = callType.parameterType(1);
final Class<?> valueClass = callType.parameterType(2);
- MethodHandle methodHandle = findOwnMH_V(clazz, "set", void.class, keyClass, valueClass, int.class);
+ MethodHandle methodHandle = findOwnMH_V("set", void.class, keyClass, valueClass, int.class);
methodHandle = MH.insertArguments(methodHandle, 3, NashornCallSiteDescriptor.getFlags(desc));
return new GuardedInvocation(methodHandle, getScriptObjectGuard(callType, explicitInstanceOfCheck), (SwitchPoint)null, explicitInstanceOfCheck ? null : ClassCastException.class);
@@ -2953,18 +2952,6 @@
return false;
}
- private boolean doesNotHaveCheckArrayKeys(final long longIndex, final long value, final int callSiteFlags) {
- if (getMap().containsArrayKeys()) {
- final String key = JSType.toString(longIndex);
- final FindProperty find = findProperty(key, true);
- if (find != null) {
- setObject(find, callSiteFlags, key, value);
- return true;
- }
- }
- return false;
- }
-
private boolean doesNotHaveCheckArrayKeys(final long longIndex, final double value, final int callSiteFlags) {
if (getMap().containsArrayKeys()) {
final String key = JSType.toString(longIndex);
@@ -3467,15 +3454,10 @@
return this;
}
- private static MethodHandle findOwnMH_V(final Class<? extends ScriptObject> clazz, final String name, final Class<?> rtype, final Class<?>... types) {
- // TODO: figure out how can it work for NativeArray$Prototype etc.
+ private static MethodHandle findOwnMH_V(final String name, final Class<?> rtype, final Class<?>... types) {
return MH.findVirtual(MethodHandles.lookup(), ScriptObject.class, name, MH.type(rtype, types));
}
- private static MethodHandle findOwnMH_V(final String name, final Class<?> rtype, final Class<?>... types) {
- return findOwnMH_V(ScriptObject.class, name, rtype, types);
- }
-
private static MethodHandle findOwnMH_S(final String name, final Class<?> rtype, final Class<?>... types) {
return MH.findStatic(MethodHandles.lookup(), ScriptObject.class, name, MH.type(rtype, types));
}