本文整理汇总了Java中jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic类的典型用法代码示例。如果您正苦于以下问题:Java LinkLogic类的具体用法?Java LinkLogic怎么用?Java LinkLogic使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LinkLogic类属于jdk.nashorn.internal.objects.annotations.SpecializedFunction包,在下文中一共展示了LinkLogic类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getLinkLogic
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
* Some receivers are primitive, in that case, according to the Spec we create a new
* native object per callsite with the wrap filter. We can only apply optimistic builtins
* if there is no per instance state saved for these wrapped objects (e.g. currently NativeStrings),
* otherwise we can't create optimistic versions
*
* @param self receiver
* @param linkLogicClass linkLogicClass, or null if no link logic exists
* @return link logic instance, or null if one could not be constructed for this receiver
*/
private static LinkLogic getLinkLogic(final Object self, final Class<? extends LinkLogic> linkLogicClass) {
if (linkLogicClass == null) {
return LinkLogic.EMPTY_INSTANCE; //always OK to link this, specialization but without special linking logic
}
if (!Context.getContextTrusted().getEnv()._optimistic_types) {
return null; //if optimistic types are off, optimistic builtins are too
}
final Object wrappedSelf = wrapFilter(self);
if (wrappedSelf instanceof OptimisticBuiltins) {
if (wrappedSelf != self && ((OptimisticBuiltins)wrappedSelf).hasPerInstanceAssumptions()) {
return null; //pessimistic - we created a wrapped object different from the primitive, but the assumptions have instance state
}
return ((OptimisticBuiltins)wrappedSelf).getLinkLogic(linkLogicClass);
}
return null;
}
示例2: toString
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
final Class<? extends LinkLogic> linkLogicClass = getLinkLogicClass();
sb.append("[invokerType=").
append(invoker.type()).
append(" ctor=").
append(constructor).
append(" weight=").
append(weight()).
append(" linkLogic=").
append(linkLogicClass != null ? linkLogicClass.getSimpleName() : "none");
return sb.toString();
}
示例3: getLinkLogic
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
* Some receivers are primitive, in that case, according to the Spec we
* create a new native object per callsite with the wrap filter. We can only
* apply optimistic builtins if there is no per instance state saved for
* these wrapped objects (e.g. currently NativeStrings), otherwise we can't
* create optimistic versions
*
* @param self receiver
* @param linkLogicClass linkLogicClass, or null if no link logic exists
* @return link logic instance, or null if one could not be constructed for
* this receiver
*/
private static LinkLogic getLinkLogic(final Object self, final Class<? extends LinkLogic> linkLogicClass) {
if (linkLogicClass == null) {
return LinkLogic.EMPTY_INSTANCE; //always OK to link this, specialization but without special linking logic
}
if (!Context.getContextTrusted().getEnv()._optimistic_types) {
return null; //if optimistic types are off, optimistic builtins are too
}
final Object wrappedSelf = wrapFilter(self);
if (wrappedSelf instanceof OptimisticBuiltins) {
if (wrappedSelf != self && ((OptimisticBuiltins) wrappedSelf).hasPerInstanceAssumptions()) {
return null; //pessimistic - we created a wrapped object different from the primitive, but the assumptions have instance state
}
return ((OptimisticBuiltins) wrappedSelf).getLinkLogic(linkLogicClass);
}
return null;
}
示例4: getLinkLogic
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
@Override
public LinkLogic getLinkLogic(final Class<? extends LinkLogic> clazz) {
if (clazz == CharCodeAtLinkLogic.class) {
return CharCodeAtLinkLogic.INSTANCE;
}
return null;
}
示例5: getLinkLogic
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
@Override
public SpecializedFunction.LinkLogic getLinkLogic(final Class<? extends LinkLogic> clazz) {
if (clazz == PushLinkLogic.class) {
return PushLinkLogic.INSTANCE;
} else if (clazz == PopLinkLogic.class) {
return PopLinkLogic.INSTANCE;
} else if (clazz == ConcatLinkLogic.class) {
return ConcatLinkLogic.INSTANCE;
}
return null;
}
示例6: Specialization
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
* Constructor
*
* @param mh invoker method handler
* @param linkLogicClass extra link logic needed for this function. Instances of this class also contains logic for checking
* if this can be linked on its first encounter, which is needed as per our standard linker semantics
* @param isOptimistic is this an optimistic native method, i.e. can it throw {@link UnwarrantedOptimismException}
* which would have to lead to a relink and return value processing
*/
public Specialization(final MethodHandle mh, final Class<? extends LinkLogic> linkLogicClass, final boolean isOptimistic) {
this.mh = mh;
this.isOptimistic = isOptimistic;
if (linkLogicClass != null) {
//null out the "empty" link logic class for optimization purposes
//we only use the empty instance because we can't default class annotations
//to null
this.linkLogicClass = LinkLogic.isEmpty(linkLogicClass) ? null : linkLogicClass;
} else {
this.linkLogicClass = null;
}
}
示例7: getLinkLogicClass
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
Class<? extends LinkLogic> getLinkLogicClass() {
if (isSpecialization()) {
final Class<? extends LinkLogic> linkLogicClass = specialization.getLinkLogicClass();
assert !LinkLogic.isEmpty(linkLogicClass) : "empty link logic classes should have been removed by nasgen";
return linkLogicClass;
}
return null;
}
示例8: Specialization
import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
* Constructor
*
* @param mh invoker method handler
* @param linkLogicClass extra link logic needed for this function. Instances of this class also contains logic for checking
* if this can be linked on its first encounter, which is needed as per our standard linker semantics
* @param isOptimistic is this an optimistic native method, i.e. can it throw {@link UnwarrantedOptimismException}
* which would have to lead to a relink and return value processing
* @param convertsNumericArgs true if it is safe to convert arguments to numbers
*/
public Specialization(final MethodHandle mh, final Class<? extends LinkLogic> linkLogicClass,
final boolean isOptimistic, final boolean convertsNumericArgs) {
this.mh = mh;
this.isOptimistic = isOptimistic;
this.convertsNumericArgs = convertsNumericArgs;
if (linkLogicClass != null) {
//null out the "empty" link logic class for optimization purposes
//we only use the empty instance because we can't default class annotations
//to null
this.linkLogicClass = LinkLogic.isEmpty(linkLogicClass) ? null : linkLogicClass;
} else {
this.linkLogicClass = null;
}
}