< prev index next >
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/UserAccessorProperty.java
Print this page
*** 69,85 ****
private static final MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
/** Getter method handle */
private final static MethodHandle INVOKE_OBJECT_GETTER = findOwnMH_S("invokeObjectGetter", Object.class, Accessors.class, MethodHandle.class, Object.class);
private final static MethodHandle INVOKE_INT_GETTER = findOwnMH_S("invokeIntGetter", int.class, Accessors.class, MethodHandle.class, int.class, Object.class);
- private final static MethodHandle INVOKE_LONG_GETTER = findOwnMH_S("invokeLongGetter", long.class, Accessors.class, MethodHandle.class, int.class, Object.class);
private final static MethodHandle INVOKE_NUMBER_GETTER = findOwnMH_S("invokeNumberGetter", double.class, Accessors.class, MethodHandle.class, int.class, Object.class);
/** Setter method handle */
private final static MethodHandle INVOKE_OBJECT_SETTER = findOwnMH_S("invokeObjectSetter", void.class, Accessors.class, MethodHandle.class, String.class, Object.class, Object.class);
private final static MethodHandle INVOKE_INT_SETTER = findOwnMH_S("invokeIntSetter", void.class, Accessors.class, MethodHandle.class, String.class, Object.class, int.class);
- private final static MethodHandle INVOKE_LONG_SETTER = findOwnMH_S("invokeLongSetter", void.class, Accessors.class, MethodHandle.class, String.class, Object.class, long.class);
private final static MethodHandle INVOKE_NUMBER_SETTER = findOwnMH_S("invokeNumberSetter", void.class, Accessors.class, MethodHandle.class, String.class, Object.class, double.class);
private static final Object OBJECT_GETTER_INVOKER_KEY = new Object();
private static MethodHandle getObjectGetterInvoker() {
return Context.getGlobal().getDynamicInvoker(OBJECT_GETTER_INVOKER_KEY, new Callable<MethodHandle>() {
--- 69,83 ----
*** 186,200 ****
public int getIntValue(final ScriptObject self, final ScriptObject owner) {
return (int)getObjectValue(self, owner);
}
@Override
- public long getLongValue(final ScriptObject self, final ScriptObject owner) {
- return (long)getObjectValue(self, owner);
- }
-
- @Override
public double getDoubleValue(final ScriptObject self, final ScriptObject owner) {
return (double)getObjectValue(self, owner);
}
@Override
--- 184,193 ----
*** 212,226 ****
public void setValue(final ScriptObject self, final ScriptObject owner, final int value, final boolean strict) {
setValue(self, owner, (Object) value, strict);
}
@Override
- public void setValue(final ScriptObject self, final ScriptObject owner, final long value, final boolean strict) {
- setValue(self, owner, (Object) value, strict);
- }
-
- @Override
public void setValue(final ScriptObject self, final ScriptObject owner, final double value, final boolean strict) {
setValue(self, owner, (Object) value, strict);
}
@Override
--- 205,214 ----
*** 242,253 ****
@Override
public MethodHandle getOptimisticGetter(final Class<?> type, final int programPoint) {
if (type == int.class) {
return INVOKE_INT_GETTER;
- } else if (type == long.class) {
- return INVOKE_LONG_GETTER;
} else if (type == double.class) {
return INVOKE_NUMBER_GETTER;
} else {
assert type == Object.class;
return INVOKE_OBJECT_GETTER;
--- 230,239 ----
*** 267,278 ****
@Override
public MethodHandle getSetter(final Class<?> type, final PropertyMap currentMap) {
if (type == int.class) {
return INVOKE_INT_SETTER;
- } else if (type == long.class) {
- return INVOKE_LONG_SETTER;
} else if (type == double.class) {
return INVOKE_NUMBER_SETTER;
} else {
assert type == Object.class;
return INVOKE_OBJECT_SETTER;
--- 253,262 ----
*** 318,337 ****
throw new UnwarrantedOptimismException(UNDEFINED, programPoint);
}
@SuppressWarnings("unused")
- private static long invokeLongGetter(final Accessors gs, final MethodHandle invoker, final int programPoint, final Object self) throws Throwable {
- final Object func = gs.getter;
- if (func instanceof ScriptFunction) {
- return (long) invoker.invokeExact(func, self);
- }
-
- throw new UnwarrantedOptimismException(UNDEFINED, programPoint);
- }
-
- @SuppressWarnings("unused")
private static double invokeNumberGetter(final Accessors gs, final MethodHandle invoker, final int programPoint, final Object self) throws Throwable {
final Object func = gs.getter;
if (func instanceof ScriptFunction) {
return (double) invoker.invokeExact(func, self);
}
--- 302,311 ----
*** 354,373 ****
final Object func = gs.setter;
if (func instanceof ScriptFunction) {
invoker.invokeExact(func, self, value);
} else if (name != null) {
throw typeError("property.has.no.setter", name, ScriptRuntime.safeToString(self));
- }
- }
-
- @SuppressWarnings("unused")
- private static void invokeLongSetter(final Accessors gs, final MethodHandle invoker, final String name, final Object self, final long value) throws Throwable {
- final Object func = gs.setter;
- if (func instanceof ScriptFunction) {
- invoker.invokeExact(func, self, value);
- } else if (name != null) {
- throw typeError("property.has.no.setter", name, ScriptRuntime.safeToString(self));
}
}
@SuppressWarnings("unused")
private static void invokeNumberSetter(final Accessors gs, final MethodHandle invoker, final String name, final Object self, final double value) throws Throwable {
--- 328,337 ----
< prev index next >