run method

  1. @override
FutureOr<ASTValue> run(
  1. VMContext parentContext,
  2. ASTRunStatus runStatus
)
override

Implementation

@override
FutureOr<ASTValue> run(
    VMContext parentContext, ASTRunStatus runStatus) async {
  var blockContext = defineRunContext(parentContext);

  FutureOr<ASTValue> returnValue = ASTValueVoid.instance;

  for (var stm in _statements) {
    var ret = await stm.run(blockContext, runStatus);

    if (runStatus.returned) {
      return (runStatus.returnedFutureValue ?? runStatus.returnedValue)!;
    }

    returnValue = ret;
  }

  return returnValue;
}