Class AbstractModuleRecord

java.lang.Object
com.oracle.truffle.js.runtime.objects.ScriptOrModule
com.oracle.truffle.js.runtime.objects.AbstractModuleRecord
Direct Known Subclasses:
CyclicModuleRecord, SyntheticModuleRecord

public abstract class AbstractModuleRecord extends ScriptOrModule
Abstract Module Record.
  • Constructor Details

    • AbstractModuleRecord

      protected AbstractModuleRecord(JSContext context, com.oracle.truffle.api.source.Source source, Object hostDefined, com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor)
  • Method Details

    • loadRequestedModules

      public abstract JSPromiseObject loadRequestedModules(JSRealm realm, Object hostDefinedArg)
      Prepares the module for linking by recursively loading all its dependencies.
    • loadRequestedModulesSync

      public final void loadRequestedModulesSync(JSRealm realm, Object hostDefinedArg)
    • link

      public abstract void link(JSRealm realm)
      Prepare the module for evaluation by transitively resolving all module dependencies and creating a Module Environment Record. LoadRequestedModules must have completed successfully prior to invoking this method.
    • evaluate

      public abstract JSPromiseObject evaluate(JSRealm realm)
      Returns a promise for the evaluation of this module and its dependencies, resolving on successful evaluation or if it has already been evaluated successfully, and rejecting for an evaluation error or if it has already been evaluated unsuccessfully. Link must have completed successfully prior to invoking this method.
    • evaluateSync

      public void evaluateSync(JSRealm realm)
    • getExportedNames

      public final Collection<com.oracle.truffle.api.strings.TruffleString> getExportedNames()
    • getExportedNames

      public abstract Collection<com.oracle.truffle.api.strings.TruffleString> getExportedNames(Set<JSModuleRecord> exportStarSet)
    • resolveExport

      public final ExportResolution resolveExport(com.oracle.truffle.api.strings.TruffleString exportName)
    • resolveExport

      public abstract ExportResolution resolveExport(com.oracle.truffle.api.strings.TruffleString exportName, Set<Pair<? extends AbstractModuleRecord, com.oracle.truffle.api.strings.TruffleString>> resolveSet)
    • getModuleNamespaceOrNull

      public final JSModuleNamespaceObject getModuleNamespaceOrNull(Module.ImportPhase phase)
    • getModuleNamespace

      public final JSModuleNamespaceObject getModuleNamespace(Module.ImportPhase phase)
    • getModuleNamespaceOrNull

      public final JSModuleNamespaceObject getModuleNamespaceOrNull(boolean deferred)
    • getModuleNamespace

      public final JSModuleNamespaceObject getModuleNamespace(boolean deferred)
    • getModuleSource

      public abstract Object getModuleSource()
    • getEnvironment

      public final com.oracle.truffle.api.frame.MaterializedFrame getEnvironment()
    • setEnvironment

      public final void setEnvironment(com.oracle.truffle.api.frame.MaterializedFrame environment)
    • clearEnvironment

      protected final void clearEnvironment()
    • getFrameDescriptor

      public final com.oracle.truffle.api.frame.FrameDescriptor getFrameDescriptor()
    • setFrameDescriptor

      protected final void setFrameDescriptor(com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor)
    • getHostDefined

      public final Object getHostDefined()
    • gatherAsynchronousTransitiveDependencies

      public List<AbstractModuleRecord> gatherAsynchronousTransitiveDependencies()
      Collects the direct post-order list of asynchronous unexecuted transitive dependencies, stopping the depth-first search for a branch when an asynchronous dependency is found.
    • getStatus

      public abstract CyclicModuleRecord.Status getStatus()