#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: yes

---
snippet: "
  return function(){ }
"
frame size: 0
parameter count: 1
bytecode array length: 5
bytecodes: [
  /*   34 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
  /*   54 S> */ B(Return),
]
constant pool: [
  SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

---
snippet: "
  return (function(){ })()
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecodes: [
  /*   34 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
                B(Star), R(0),
  /*   56 E> */ B(CallUndefinedReceiver0), R(0), U8(0),
  /*   58 S> */ B(Return),
]
constant pool: [
  SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

---
snippet: "
  return (function(x){ return x; })(1)
"
frame size: 2
parameter count: 1
bytecode array length: 15
bytecodes: [
  /*   34 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
                B(Star), R(0),
                B(LdaSmi), I8(1),
                B(Star), R(1),
  /*   67 E> */ B(CallUndefinedReceiver1), R(0), R(1), U8(0),
  /*   70 S> */ B(Return),
]
constant pool: [
  SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

