#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: yes

---
snippet: "
  return eval('1;');
"
frame size: 10
parameter count: 1
bytecode array length: 59
bytecodes: [
                B(CreateFunctionContext), U8(0), U8(3),
                B(PushContext), R(1),
                B(Ldar), R(this),
                B(StaCurrentContextSlot), U8(4),
                B(CreateMappedArguments),
                B(StaCurrentContextSlot), U8(6),
                B(Ldar), R(0),
                B(StaCurrentContextSlot), U8(5),
  /*   30 E> */ B(StackCheck),
  /*   34 S> */ B(LdaLookupGlobalSlot), U8(1), U8(0), U8(1),
                B(Star), R(2),
                B(LdaConstant), U8(2),
                B(Star), R(3),
                B(LdaZero),
                B(Star), R(7),
                B(LdaSmi), I8(30),
                B(Star), R(8),
                B(LdaSmi), I8(41),
                B(Star), R(9),
                B(Mov), R(2), R(4),
                B(Mov), R(3), R(5),
                B(Mov), R(closure), R(6),
                B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
                B(Star), R(2),
  /*   41 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
  /*   52 S> */ B(Return),
]
constant pool: [
  SCOPE_INFO_TYPE,
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["eval"],
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["1;"],
]
handlers: [
]

