#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: string
execute: yes
wrap: no
test function name: f

---
snippet: "
  function t() { }
  function f() { return t(); }
  f();
"
frame size: 2
parameter count: 1
bytecode array length: 12
bytecodes: [
  /*   27 E> */ B(StackCheck),
  /*   32 S> */ B(LdrUndefined), R(1),
                B(LdrGlobal), U8(3), R(0),
  /*   39 E> */ B(Call), R(0), R(1), U8(1), U8(1),
  /*   44 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function t(a, b, c) { }
  function f() { return t(1, 2, 3); }
  f();
"
frame size: 5
parameter count: 1
bytecode array length: 24
bytecodes: [
  /*   34 E> */ B(StackCheck),
  /*   39 S> */ B(LdrUndefined), R(1),
                B(LdrGlobal), U8(3), R(0),
                B(LdaSmi), U8(1),
                B(Star), R(2),
                B(LdaSmi), U8(2),
                B(Star), R(3),
                B(LdaSmi), U8(3),
                B(Star), R(4),
  /*   46 E> */ B(Call), R(0), R(1), U8(4), U8(1),
  /*   58 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

