bodyExecute method
FunctionCallBodyExecutionResult
bodyExecute(
- DartBlockArbiter arbiter,
- covariant FunctionCallPreExecutionResult preExecutionResult
override
Implementation
@override
FunctionCallBodyExecutionResult bodyExecute(
DartBlockArbiter arbiter,
FunctionCallPreExecutionResult preExecutionResult,
) {
// Declare parameters (VariableDeclarationStatements) in the current scope
for (var parameterDeclaration in preExecutionResult.parameterDeclarations) {
parameterDeclaration.run(arbiter);
}
DartBlockValue? returnValue;
// Extract the argument values that were already validated in preExecute
final argValues = preExecutionResult.parameterDeclarations
.map((decl) => arbiter.getVariableValue(decl.name)!)
.toList();
// Actual execution logic of the function
returnValue = preExecutionResult.dartBlockFunction.execute(
arbiter,
argValues,
);
return FunctionCallBodyExecutionResult(
preExecutionResult.dartBlockFunction,
returnValue,
);
}