Class OperatorSet

java.lang.Object
com.oracle.truffle.js.runtime.objects.OperatorSet

public class OperatorSet extends Object
Instances of this class represent instances of the OperatorSet spec object. These hold the definitions of any overloaded operators for a given type. Each such OperatorSet has a unique numerical ID (getOperatorCounter()), which are used for dispatching overloaded operators between different classes (e.g. Matrix * Vector). An instance of this class is held in an internal slot by the constructor of the class that overloads operators. This instance is then also reachable from an internal slot of every instance of that class (we use a constant property that is bound to the objects' Shape).
  • Field Details

    • BINARY_OPERATORS

      public static final org.graalvm.collections.EconomicSet<com.oracle.truffle.api.strings.TruffleString> BINARY_OPERATORS
    • UNARY_OPERATORS

      public static final org.graalvm.collections.EconomicSet<com.oracle.truffle.api.strings.TruffleString> UNARY_OPERATORS
    • ALL_OPERATORS

      public static final org.graalvm.collections.EconomicSet<com.oracle.truffle.api.strings.TruffleString> ALL_OPERATORS
    • NUMBER_OPERATOR_SET

      public static final OperatorSet NUMBER_OPERATOR_SET
    • BIGINT_OPERATOR_SET

      public static final OperatorSet BIGINT_OPERATOR_SET
    • STRING_OPERATOR_SET

      public static final OperatorSet STRING_OPERATOR_SET
  • Constructor Details

    • OperatorSet

      public OperatorSet(int operatorCounter, org.graalvm.collections.EconomicSet<com.oracle.truffle.api.strings.TruffleString> openOperators)
    • OperatorSet

      public OperatorSet(int operatorCounter, org.graalvm.collections.EconomicMap<com.oracle.truffle.api.strings.TruffleString,Object> selfOperatorDefinitions, org.graalvm.collections.EconomicMap<com.oracle.truffle.api.strings.TruffleString,Object[]> leftOperatorDefinitions, org.graalvm.collections.EconomicMap<com.oracle.truffle.api.strings.TruffleString,Object[]> rightOperatorDefinitions, org.graalvm.collections.EconomicSet<com.oracle.truffle.api.strings.TruffleString> openOperators)
  • Method Details

    • isOperatorOpen

      public boolean isOperatorOpen(com.oracle.truffle.api.strings.TruffleString operator)
    • getOperatorCounter

      public int getOperatorCounter()
    • getOperatorSet

      public static OperatorSet getOperatorSet(Object object)
    • getOperatorImplementation

      public static Object getOperatorImplementation(JSOverloadedOperatorsObject operand, com.oracle.truffle.api.strings.TruffleString operatorName)
    • getOperatorImplementation

      public static Object getOperatorImplementation(Object left, Object right, com.oracle.truffle.api.strings.TruffleString operatorName)
    • isUnsupportedPrimitive

      public static boolean isUnsupportedPrimitive(Object value)