Class VmFunction

    • Constructor Detail

      • VmFunction

        public VmFunction​(com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame,
                          java.lang.Object thisValue,
                          int paramCount,
                          PklRootNode rootNode,
                          @Nullable java.lang.Object extraStorage)
    • Method Detail

      • getCallTarget

        public com.oracle.truffle.api.RootCallTarget getCallTarget()
      • getParameterCount

        public int getParameterCount()
      • apply

        public java.lang.Object apply​(java.lang.Object arg1)
      • applyString

        public java.lang.String applyString​(java.lang.Object arg1)
      • apply

        public java.lang.Object apply​(java.lang.Object arg1,
                                      java.lang.Object arg2)
      • getThisValue

        public java.lang.Object getThisValue()
      • getParent

        public VmObjectLike getParent()
        Description copied from class: VmObjectLike
        Returns the parent object in the prototype chain. For each concrete subclass X of VmOwner, the exact return type of this method is `X|VmTyped`.
        Specified by:
        getParent in class VmObjectLike
      • hasMember

        public boolean hasMember​(java.lang.Object key)
        Description copied from class: VmObjectLike
        Always prefer this method over `getMembers().containsKey(key)`.
        Specified by:
        hasMember in class VmObjectLike
      • getMembers

        public org.graalvm.collections.UnmodifiableEconomicMap<java.lang.Object,​ObjectMember> getMembers()
        Description copied from class: VmObjectLike
        Returns the declared members of this object.
        Specified by:
        getMembers in class VmObjectLike
      • getCachedValue

        public @Nullable java.lang.Object getCachedValue​(java.lang.Object key)
        Description copied from class: VmObjectLike
        Reads from the properties cache for this object. The cache contains the values of all members defined in this object or an ancestor thereof which have been requested with this object as the receiver.
        Specified by:
        getCachedValue in class VmObjectLike
      • setCachedValue

        public void setCachedValue​(java.lang.Object key,
                                   java.lang.Object value)
        Description copied from class: VmObjectLike
        Writes to the properties cache for this object. The cache contains the values of all members defined in this object or an ancestor thereof which have been requested with this object as the receiver.
        Specified by:
        setCachedValue in class VmObjectLike
      • iterateMemberValues

        public boolean iterateMemberValues​(VmObjectLike.MemberValueConsumer consumer)
        Description copied from class: VmObjectLike
        Iterates over member definitions and their values in order of their definition, from the top of the prototype chain downwards. If a member value has not yet been evaluated, a `null` `value` is passed to `consumer`. If a member is defined in multiple objects in the prototype chain, i.e., is overridden along the way, it is visited only once, with the initial (i.e., upmost) `member` and the final (i.e., downmost) `value`. (This peculiar behavior serves two purposes in the current implementation: it guarantees that a `hidden` property is still recognized as such when overridden, and that an element is still recognized as such when overridden with entry syntax. It also means that members are visited in order of (first) definition.) Local, hidden, and external properties are not visited. If an invocation of `consumer` returns `false`, the remaining members are not visited, and `false` is returned. Otherwise, all members are visited, and `true` is returned.
        Specified by:
        iterateMemberValues in class VmObjectLike
      • iterateMembers

        public boolean iterateMembers​(java.util.function.BiFunction<java.lang.Object,​ObjectMember,​java.lang.Boolean> consumer)
        Description copied from class: VmObjectLike
        Iterates over member definitions in order of their definition, from the top of the prototype chain downwards. If a member is defined multiple times, each occurrence is visited. Local properties are not visited. If an invocation of `consumer` returns `false`, the remaining members are not visited, and `false` is returned. Otherwise, all members are visited, and `true` is returned.
        Specified by:
        iterateMembers in class VmObjectLike
      • force

        public void force​(boolean allowUndefinedValues,
                          boolean recurse)
        Description copied from class: VmObjectLike
        Forces shallow or recursive (deep) evaluation of this object.
        Specified by:
        force in class VmObjectLike
      • force

        public void force​(boolean allowUndefinedValues)
        Description copied from class: VmValue
        Forces recursive (deep) evaluation of this value.
        Specified by:
        force in class VmValue
      • export

        public java.lang.Object export()
        Description copied from class: VmObjectLike
        Exports this object to an external representation. Does not export local, hidden, or external properties
        Specified by:
        export in class VmObjectLike
      • accept

        public <T> T accept​(VmValueConverter<T> converter,
                            java.lang.Iterable<java.lang.Object> path)
        Specified by:
        accept in class VmValue
      • equals

        public boolean equals​(java.lang.Object obj)
        Description copied from class: VmValue
        Enables calling `vmValue.equals()` when not behind a Truffle boundary.
        Specified by:
        equals in class VmValue
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object