本文整理汇总了Java中jdk.nashorn.internal.runtime.linker.NashornGuards.getInstanceOf2Guard方法的典型用法代码示例。如果您正苦于以下问题:Java NashornGuards.getInstanceOf2Guard方法的具体用法?Java NashornGuards.getInstanceOf2Guard怎么用?Java NashornGuards.getInstanceOf2Guard使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类jdk.nashorn.internal.runtime.linker.NashornGuards
的用法示例。
在下文中一共展示了NashornGuards.getInstanceOf2Guard方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: findGetIndexMethod
import jdk.nashorn.internal.runtime.linker.NashornGuards; //导入方法依赖的package包/类
@Override
protected GuardedInvocation findGetIndexMethod(final CallSiteDescriptor desc, final LinkRequest request) {
final Object self = request.getReceiver();
final Class<?> returnType = desc.getMethodType().returnType();
if (returnType == Object.class && (self instanceof String || self instanceof ConsString)) {
try {
return new GuardedInvocation(MH.findStatic(MethodHandles.lookup(), NativeString.class, "get", desc.getMethodType()), NashornGuards.getInstanceOf2Guard(String.class, ConsString.class));
} catch (final LookupException e) {
//empty. Shouldn't happen. Fall back to super
}
}
return super.findGetIndexMethod(desc, request);
}
示例2: findGetIndexMethod
import jdk.nashorn.internal.runtime.linker.NashornGuards; //导入方法依赖的package包/类
@Override
protected GuardedInvocation findGetIndexMethod(final CallSiteDescriptor desc, final LinkRequest request) {
final Object self = request.getReceiver();
final Class<?> returnType = desc.getMethodType().returnType();
if (returnType == Object.class && JSType.isString(self)) {
try {
return new GuardedInvocation(MH.findStatic(MethodHandles.lookup(), NativeString.class, "get", desc.getMethodType()), NashornGuards.getInstanceOf2Guard(String.class, ConsString.class));
} catch (final LookupException e) {
//empty. Shouldn't happen. Fall back to super
}
}
return super.findGetIndexMethod(desc, request);
}
示例3: findGetIndexMethod
import jdk.nashorn.internal.runtime.linker.NashornGuards; //导入方法依赖的package包/类
@Override
protected GuardedInvocation findGetIndexMethod(final CallSiteDescriptor desc, final LinkRequest request) {
final Object self = request.getReceiver();
final Class<?> returnType = desc.getMethodType().returnType();
if (returnType == Object.class && (self instanceof String || self instanceof ConsString)) {
try {
MethodHandle mh = MH.findStatic(MethodHandles.lookup(), NativeString.class, "get", desc.getMethodType());
return new GuardedInvocation(mh, NashornGuards.getInstanceOf2Guard(String.class, ConsString.class));
} catch (final LookupException e) {
// Shouldn't happen. Fall back to super
}
}
return super.findGetIndexMethod(desc, request);
}
示例4: lookupPrimitive
import jdk.nashorn.internal.runtime.linker.NashornGuards; //导入方法依赖的package包/类
/**
* Lookup the appropriate method for an invoke dynamic call.
*
* @param request the link request
* @param receiver receiver of call
* @return Link to be invoked at call site.
*/
public static GuardedInvocation lookupPrimitive(final LinkRequest request, final Object receiver) {
final MethodHandle guard = NashornGuards.getInstanceOf2Guard(String.class, ConsString.class);
return PrimitiveLookup.lookupPrimitive(request, guard, new NativeString((CharSequence)receiver), WRAPFILTER, PROTOFILTER);
}
示例5: lookupPrimitive
import jdk.nashorn.internal.runtime.linker.NashornGuards; //导入方法依赖的package包/类
/**
* Lookup the appropriate method for an invoke dynamic call.
*
* @param request the link request
* @param receiver receiver of call
* @return Link to be invoked at call site.
*/
public static GuardedInvocation lookupPrimitive(final LinkRequest request, final Object receiver) {
final MethodHandle guard = NashornGuards.getInstanceOf2Guard(String.class, ConsString.class);
return PrimitiveLookup.lookupPrimitive(request, guard, new NativeString((CharSequence)receiver), WRAPFILTER);
}