#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: mixed
execute: yes
wrap: yes

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

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

---
snippet: "
  return (function(x){ return x; })(1)
"
frame size: 3
parameter count: 1
bytecode array length: 18
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   34 S> */ B(LdrUndefined), R(1),
                B(CreateClosure), U8(0), U8(0),
                B(Star), R(0),
                B(LdaSmi), U8(1),
                B(Star), R(2),
  /*   67 E> */ B(Call), R(0), R(1), U8(2), U8(1),
  /*   71 S> */ B(Return),
]
constant pool: [
  InstanceType::SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]

