Class VmUtils


  • public final class VmUtils
    extends java.lang.Object
    • Method Detail

      • createEmptyMaterializedFrame

        public static com.oracle.truffle.api.frame.MaterializedFrame createEmptyMaterializedFrame()
      • createContext

        public static org.graalvm.polyglot.Context createContext​(java.lang.Runnable initializer)
      • countLeadingWhitespace

        public static int countLeadingWhitespace​(java.lang.String str)
      • indent

        public static java.lang.String indent​(java.lang.String text,
                                              java.lang.String indent)
      • getReceiverOrNull

        public static @Nullable java.lang.Object getReceiverOrNull​(com.oracle.truffle.api.frame.Frame frame)
        Returns the receiver of the message that was dispatched to the currently executing code.
      • getReceiver

        public static java.lang.Object getReceiver​(com.oracle.truffle.api.frame.Frame frame)
        Returns the receiver of the message that was dispatched to the currently executing code.
      • getObjectReceiver

        public static VmObjectLike getObjectReceiver​(com.oracle.truffle.api.frame.Frame frame)
      • getTypedObjectReceiver

        public static VmTyped getTypedObjectReceiver​(com.oracle.truffle.api.frame.Frame frame)
      • getOwnerOrNull

        public static @Nullable VmObjectLike getOwnerOrNull​(com.oracle.truffle.api.frame.Frame frame)
        Returns the owner of the currently executing code.
      • getOwner

        public static VmObjectLike getOwner​(com.oracle.truffle.api.frame.Frame frame)
        Returns the owner of the currently executing code.
      • getMemberKey

        public static java.lang.Object getMemberKey​(com.oracle.truffle.api.frame.Frame frame)
        Returns a `ObjectMember`'s key while executing the corresponding `MemberNode`.
      • readTextProperty

        public static java.lang.String readTextProperty​(VmObjectLike receiver)
      • readTextProperty

        public static java.lang.String readTextProperty​(java.lang.Object receiver)
      • readMember

        public static java.lang.Object readMember​(VmObjectLike receiver,
                                                  java.lang.Object memberKey)
      • readMemberOrNull

        public static @Nullable java.lang.Object readMemberOrNull​(VmObjectLike receiver,
                                                                  java.lang.Object memberKey,
                                                                  boolean checkType)
      • readMemberOrNull

        public static @Nullable java.lang.Object readMemberOrNull​(VmObjectLike receiver,
                                                                  java.lang.Object memberKey,
                                                                  com.oracle.truffle.api.nodes.IndirectCallNode callNode)
      • readMemberOrNull

        public static @Nullable java.lang.Object readMemberOrNull​(VmObjectLike receiver,
                                                                  java.lang.Object memberKey)
      • doReadMember

        public static java.lang.Object doReadMember​(VmObjectLike receiver,
                                                    VmObjectLike owner,
                                                    java.lang.Object memberKey,
                                                    ObjectMember member)
        Before calling this method, always try `VmObject.getCachedValue()`. (This method writes to the cache, but doesn't read from it.)
      • readMember

        public static java.lang.Object readMember​(VmObjectLike receiver,
                                                  java.lang.Object memberKey,
                                                  com.oracle.truffle.api.nodes.IndirectCallNode callNode)
      • readMemberOrNull

        public static @Nullable java.lang.Object readMemberOrNull​(VmObjectLike receiver,
                                                                  java.lang.Object memberKey,
                                                                  boolean checkType,
                                                                  com.oracle.truffle.api.nodes.IndirectCallNode callNode)
      • doReadMember

        public static java.lang.Object doReadMember​(VmObjectLike receiver,
                                                    VmObjectLike owner,
                                                    java.lang.Object memberKey,
                                                    ObjectMember member,
                                                    boolean checkType,
                                                    com.oracle.truffle.api.nodes.IndirectCallNode callNode)
        Before calling this method, always try `VmObject.getCachedValue()`. (This method writes to the cache, but doesn't read from it.)
      • createThisNode

        public static ExpressionNode createThisNode​(com.oracle.truffle.api.source.SourceSection sourceSection,
                                                    boolean isCustomThisScope)
      • isRenderDirective

        public static boolean isRenderDirective​(VmValue value)
      • isRenderDirective

        public static boolean isRenderDirective​(java.lang.Object value)
      • isPcfRenderDirective

        public static boolean isPcfRenderDirective​(java.lang.Object value)
      • getNodeInfo

        public static com.oracle.truffle.api.nodes.NodeInfo getNodeInfo​(com.oracle.truffle.api.nodes.Node node)
      • getClass

        public static VmClass getClass​(java.lang.Object value)
      • getConfigValue

        public static java.lang.String getConfigValue​(com.oracle.truffle.api.TruffleLanguage.Env env,
                                                      java.lang.String name,
                                                      java.lang.String defaultValue)
      • unavailableSourceSection

        public static com.oracle.truffle.api.source.SourceSection unavailableSourceSection()
      • put

        public static org.organicdesign.fp.collections.ImMap<java.lang.Object,​java.lang.Object> put​(org.organicdesign.fp.collections.ImMap<java.lang.Object,​java.lang.Object> map,
                                                                                                          java.lang.String key,
                                                                                                          java.lang.Object value)
      • createBuilder

        public static java.lang.StringBuilder createBuilder()
      • appendToBuilder

        public static void appendToBuilder​(java.lang.StringBuilder builder,
                                           java.lang.String string)
      • builderToString

        public static java.lang.String builderToString​(java.lang.StringBuilder builder)
      • checkPositive

        public static void checkPositive​(long n)
      • loadSource

        public static com.oracle.truffle.api.source.Source loadSource​(ResolvedModuleKey resolvedKey)
      • createSource

        public static com.oracle.truffle.api.source.Source createSource​(ModuleKey moduleKey,
                                                                        java.lang.String text)
      • toVmException

        public static VmException toVmException​(LexParseException e,
                                                java.lang.String text,
                                                java.net.URI moduleUri,
                                                java.lang.String moduleName)
      • toVmException

        public static VmException toVmException​(LexParseException e,
                                                com.oracle.truffle.api.source.Source source,
                                                java.lang.String moduleName)
      • exportDocComment

        public static @Nullable java.lang.String exportDocComment​(@Nullable com.oracle.truffle.api.source.SourceSection docComment)
      • exportAnnotations

        public static java.util.List<PObject> exportAnnotations​(java.util.List<VmTyped> annotations)
      • exportAnnotations

        public static void exportAnnotations​(java.util.List<VmTyped> annotations,
                                             java.util.List<PObject> result)
      • evaluateAnnotations

        public static java.util.List<VmTyped> evaluateAnnotations​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                                                  ExpressionNode[] annotationNodes)
      • evaluateAnnotations

        public static void evaluateAnnotations​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                               ExpressionNode[] annotationNodes,
                                               java.util.List<VmTyped> result)
      • codePointOffsetToCharOffset

        public static int codePointOffsetToCharOffset​(java.lang.String string,
                                                      long codePointOffset)
      • codePointOffsetToCharOffset

        public static int codePointOffsetToCharOffset​(java.lang.String string,
                                                      long codePointOffset,
                                                      int startIndex)
      • codePointOffsetFromEndToCharOffset

        public static int codePointOffsetFromEndToCharOffset​(java.lang.String string,
                                                             long codePointOffset)
      • createDecimalFormat

        public static java.text.DecimalFormat createDecimalFormat​(int fractionDigits)
      • createSyntheticObjectProperty

        public static ObjectMember createSyntheticObjectProperty​(@Nullable Identifier identifier,
                                                                 java.lang.String qualifiedName,
                                                                 java.lang.Object constantValue)
        Creates a constant object property that has no corresponding definition in Pkl code.
      • createSyntheticObjectEntry

        public static ObjectMember createSyntheticObjectEntry​(java.lang.String qualifiedName,
                                                              java.lang.Object constantValue)
        Creates a constant object entry that has no corresponding definition in Pkl code.
      • createSyntheticObjectElement

        public static ObjectMember createSyntheticObjectElement​(java.lang.String qualifiedName,
                                                                java.lang.Object constantValue)
        Creates a constant object element that has no corresponding definition in Pkl code.
      • createObjectProperty

        public static ObjectMember createObjectProperty​(VmLanguage language,
                                                        com.oracle.truffle.api.source.SourceSection sourceSection,
                                                        com.oracle.truffle.api.source.SourceSection headerSection,
                                                        Identifier propertyName,
                                                        java.lang.String qualifiedName,
                                                        com.oracle.truffle.api.frame.FrameDescriptor descriptor,
                                                        int modifiers,
                                                        ExpressionNode bodyNode,
                                                        @Nullable PropertyTypeNode typeNode)
      • createLocalObjectProperty

        public static ObjectMember createLocalObjectProperty​(VmLanguage language,
                                                             com.oracle.truffle.api.source.SourceSection sourceSection,
                                                             com.oracle.truffle.api.source.SourceSection headerSection,
                                                             Identifier propertyName,
                                                             java.lang.String qualifiedName,
                                                             com.oracle.truffle.api.frame.FrameDescriptor descriptor,
                                                             int modifiers,
                                                             ExpressionNode bodyNode,
                                                             @Nullable UnresolvedTypeNode typeNode)
      • resolveParameterTypes

        public static TypeNode[] resolveParameterTypes​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                                       com.oracle.truffle.api.frame.FrameDescriptor descriptor,
                                                       @Nullable UnresolvedTypeNode[] parameterTypeNodes)
      • checkIsInstantiable

        public static void checkIsInstantiable​(VmClass parentClass,
                                               @Nullable com.oracle.truffle.api.nodes.Node parentNode)
      • compilePattern

        public static java.util.regex.Pattern compilePattern​(java.lang.String pattern,
                                                             com.oracle.truffle.api.nodes.Node location)
      • getKey

        public static <K,​V> K getKey​(java.util.Map.Entry<K,​V> entry)
      • getValue

        public static <K,​V> V getValue​(java.util.Map.Entry<K,​V> entry)
      • getDisplayUri

        public static java.lang.String getDisplayUri​(com.oracle.truffle.api.source.SourceSection section,
                                                     StackFrameTransformer transformer)
      • getDisplayUri

        public static java.lang.String getDisplayUri​(java.net.URI moduleUri,
                                                     StackFrameTransformer transformer)
      • createStackFrame

        public static StackFrame createStackFrame​(com.oracle.truffle.api.source.SourceSection section,
                                                  @Nullable java.lang.String memberName)
      • evaluateExpression

        public static java.lang.Object evaluateExpression​(VmTyped module,
                                                          java.lang.String expression,
                                                          SecurityManager securityManager,
                                                          ModuleResolver moduleResolver)
      • findSlot

        public static int findSlot​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                   java.lang.Object identifier)
      • findAuxiliarySlot

        public static int findAuxiliarySlot​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                            java.lang.Object identifier)