src/jdk/nashorn/internal/objects/NativeBoolean.java
Print this page
*** 28,37 ****
--- 28,38 ----
import static jdk.nashorn.internal.runtime.ECMAErrors.typeError;
import static jdk.nashorn.internal.lookup.Lookup.MH;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
+ import java.lang.invoke.MethodType;
import jdk.internal.dynalink.linker.GuardedInvocation;
import jdk.internal.dynalink.linker.LinkRequest;
import jdk.nashorn.internal.objects.annotations.Attribute;
import jdk.nashorn.internal.objects.annotations.Constructor;
import jdk.nashorn.internal.objects.annotations.Function;
*** 48,58 ****
@ScriptClass("Boolean")
public final class NativeBoolean extends ScriptObject {
private final boolean value;
! final static MethodHandle WRAPFILTER = findWrapFilter();
// initialized by nasgen
private static PropertyMap $nasgenmap$;
static PropertyMap getInitialMap() {
--- 49,60 ----
@ScriptClass("Boolean")
public final class NativeBoolean extends ScriptObject {
private final boolean value;
! static final MethodHandle WRAPFILTER = findOwnMH("wrapFilter", MH.type(NativeBoolean.class, Object.class));
! static final MethodHandle PROTOFILTER = findOwnMH("protoFilter", MH.type(Object.class, Object.class));
// initialized by nasgen
private static PropertyMap $nasgenmap$;
static PropertyMap getInitialMap() {
*** 162,172 ****
* @param request The link request
* @param receiver The receiver for the call
* @return Link to be invoked at call site.
*/
public static GuardedInvocation lookupPrimitive(final LinkRequest request, final Object receiver) {
! return PrimitiveLookup.lookupPrimitive(request, Boolean.class, new NativeBoolean((Boolean)receiver), WRAPFILTER);
}
/**
* Wrap a native string in a NativeString object.
*
--- 164,174 ----
* @param request The link request
* @param receiver The receiver for the call
* @return Link to be invoked at call site.
*/
public static GuardedInvocation lookupPrimitive(final LinkRequest request, final Object receiver) {
! return PrimitiveLookup.lookupPrimitive(request, Boolean.class, new NativeBoolean((Boolean)receiver), WRAPFILTER, PROTOFILTER);
}
/**
* Wrap a native string in a NativeString object.
*
*** 176,184 ****
@SuppressWarnings("unused")
private static NativeBoolean wrapFilter(final Object receiver) {
return new NativeBoolean((Boolean)receiver);
}
! private static MethodHandle findWrapFilter() {
! return MH.findStatic(MethodHandles.lookup(), NativeBoolean.class, "wrapFilter", MH.type(NativeBoolean.class, Object.class));
}
}
--- 178,191 ----
@SuppressWarnings("unused")
private static NativeBoolean wrapFilter(final Object receiver) {
return new NativeBoolean((Boolean)receiver);
}
! @SuppressWarnings("unused")
! private static Object protoFilter(final Object object) {
! return Global.instance().getBooleanPrototype();
! }
!
! private static MethodHandle findOwnMH(final String name, final MethodType type) {
! return MH.findStatic(MethodHandles.lookup(), NativeBoolean.class, name, type);
}
}