bool CVirtualMachine::popValue(CValue &val)
{
  if (m_runtimeStack.empty())
  {
    return false;
  }
  val = std::move(m_runtimeStack.back());
  assert(val.getType() != CValue::EType::Invalid);
  m_runtimeStack.pop_back();
  return true;
}
void CVirtualMachine::pushValue(const CValue &val)
{
  assert(val.getType() != CValue::EType::Invalid);
  m_runtimeStack.push_back(val);
}