whole_func_string: function runVm (err) {
      // Check that the programCounter is in range. Does not overwrite the previous err, if any.
      const pc = runState.programCounter
      if (!err && pc !== 0 && (pc < 0 || pc >= runState.code.length)) {
        err = new VmError(ERROR.INVALID_OPCODE)
      }
  
      if (err) {
        return parseVmResults(err)
      }
      async.whilst(vmIsActive, iterateVm, parseVmResults)
    }
func_code_string: function runVm (err) {
      // Check that the programCounter is in range. Does not overwrite the previous err, if any.
      const pc = runState.programCounter
      if (!err && pc !== 0 && (pc < 0 || pc >= runState.code.length)) {
        err = new VmError(ERROR.INVALID_OPCODE)
      }
  
      if (err) {
        return parseVmResults(err)
      }
      async.whilst(vmIsActive, iterateVm, parseVmResults)
    }
func_documentation_string: iterate through the given ops until something breaks or we hit STOP