Class CyclicModuleRecord
java.lang.Object
com.oracle.truffle.js.runtime.objects.ScriptOrModule
com.oracle.truffle.js.runtime.objects.AbstractModuleRecord
com.oracle.truffle.js.runtime.objects.CyclicModuleRecord
- Direct Known Subclasses:
JSModuleRecord, WebAssemblyModuleRecord
A Cyclic Module Record is used to represent information about a module that can participate in
dependency cycles with other modules that are subclasses of the Cyclic Module Record type. Module
Records that are not subclasses of the Cyclic Module Record type must not participate in
dependency cycles with Source Text Module Records.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordstatic enum -
Field Summary
Fields inherited from class ScriptOrModule
context, source -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCyclicModuleRecord(JSContext context, com.oracle.truffle.api.source.Source source, Object hostDefined, com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor) protectedCyclicModuleRecord(JSContext context, com.oracle.truffle.api.source.Source source, Object hostDefined, com.oracle.truffle.api.frame.FrameDescriptor frameDescriptor, boolean hasTLA) -
Method Summary
Modifier and TypeMethodDescriptionfinal AbstractModuleRecordaddLoadedModule(JSRealm realm, Module.ModuleRequest moduleRequest, AbstractModuleRecord module) final voidappendAsyncParentModules(CyclicModuleRecord moduleRecord) final voidfinal JSPromiseObjectReturns 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.abstract ObjectexecuteModule(JSRealm realm, PromiseCapabilityRecord capability) Evaluate the module's code within its execution context.final longfinal List<CyclicModuleRecord> final CyclicModuleRecordfinal intfinal intfinal Throwablefinal Objectfinal Objectfinal AbstractModuleRecordgetImportedModule(Module.ModuleRequest moduleRequest) final AbstractModuleRecordgetLoadedModule(Module.ModuleRequest moduleRequest) final intabstract List<Module.ModuleRequest> A list of all the ModuleSpecifier strings and import attributes used by the module represented by this record to request the importation of a module, in occurrence order.final PromiseCapabilityRecordfinal booleanfinal booleanhasTLA()final voidfinal voidabstract voidinitializeEnvironment(JSRealm realm) Initialize the Environment Record of the module, including resolving all imported bindings, and create the module's execution context.final booleanfinal booleanisLinked()final booleanfinal voidPrepare the module for evaluation by transitively resolving all module dependencies and creating a Module Environment Record.final voidsetAsyncEvaluatingOrder(long order) final voidsetAsyncEvaluation(boolean asyncEvaluation) final voidsetCycleRoot(CyclicModuleRecord module) final voidsetDFSAncestorIndex(int dfsAncestorIndex) final voidsetDFSIndex(int dfsIndex) final voidsetEvaluationError(Throwable evaluationError) final voidsetExecutionResult(Object executionResult) final voidsetPendingAsyncDependencies(int value) final voidsetStatus(CyclicModuleRecord.Status status) final voidsetTopLevelCapability(PromiseCapabilityRecord capability) final voidMethods inherited from class AbstractModuleRecord
clearEnvironment, evaluateSync, gatherAsynchronousTransitiveDependencies, getEnvironment, getExportedNames, getExportedNames, getFrameDescriptor, getHostDefined, getModuleNamespace, getModuleNamespace, getModuleNamespaceOrNull, getModuleNamespaceOrNull, getModuleSource, loadRequestedModules, loadRequestedModulesSync, resolveExport, resolveExport, setEnvironment, setFrameDescriptorMethods inherited from class ScriptOrModule
getContext, getSource, rememberImportedModuleSource
-
Constructor Details
-
CyclicModuleRecord
-
CyclicModuleRecord
-
-
Method Details
-
getRequestedModules
A list of all the ModuleSpecifier strings and import attributes used by the module represented by this record to request the importation of a module, in occurrence order. -
initializeEnvironment
Initialize the Environment Record of the module, including resolving all imported bindings, and create the module's execution context. -
executeModule
Evaluate the module's code within its execution context. If this module has true in [[HasTLA]], then a PromiseCapability Record is passed as an argument, and the method is expected to resolve or reject the given capability. In this case, the method must not throw an exception, but instead reject the PromiseCapability Record if necessary. -
evaluate
Description copied from class:AbstractModuleRecordReturns 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.- Specified by:
evaluatein classAbstractModuleRecord
-
link
Description copied from class:AbstractModuleRecordPrepare 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.- Specified by:
linkin classAbstractModuleRecord
-
getLoadedModule
-
addLoadedModule
public final AbstractModuleRecord addLoadedModule(JSRealm realm, Module.ModuleRequest moduleRequest, AbstractModuleRecord module) - Overrides:
addLoadedModulein classScriptOrModule
-
getImportedModule
-
getStatus
- Specified by:
getStatusin classAbstractModuleRecord
-
setStatus
-
isLinked
public final boolean isLinked() -
hasBeenEvaluated
public final boolean hasBeenEvaluated() -
setUnlinked
public final void setUnlinked() -
getEvaluationError
-
setEvaluationError
-
getExecutionResult
-
setExecutionResult
-
getExecutionResultOrThrow
-
getDFSIndex
public final int getDFSIndex() -
setDFSIndex
public final void setDFSIndex(int dfsIndex) -
getDFSAncestorIndex
public final int getDFSAncestorIndex() -
setDFSAncestorIndex
public final void setDFSAncestorIndex(int dfsAncestorIndex) -
getTopLevelCapability
-
setTopLevelCapability
-
isAsyncEvaluation
public final boolean isAsyncEvaluation() -
setAsyncEvaluation
public final void setAsyncEvaluation(boolean asyncEvaluation) -
getAsyncParentModules
-
setPendingAsyncDependencies
public final void setPendingAsyncDependencies(int value) -
initAsyncParentModules
public final void initAsyncParentModules() -
incPendingAsyncDependencies
public final void incPendingAsyncDependencies() -
decPendingAsyncDependencies
public final void decPendingAsyncDependencies() -
appendAsyncParentModules
-
getPendingAsyncDependencies
public final int getPendingAsyncDependencies() -
setAsyncEvaluatingOrder
public final void setAsyncEvaluatingOrder(long order) -
getAsyncEvaluatingOrder
public final long getAsyncEvaluatingOrder() -
hasTLA
public final boolean hasTLA() -
setCycleRoot
-
getCycleRoot
-
isReadyForSyncExecution
public final boolean isReadyForSyncExecution()
-