The vm does what it needs to do (evaluate the result of passing an input to an operatio, where the input and the operation themselves may have sub-inputs/operations to evaluate), with many caveats/misgivings.