#
# Autogenerated by generate-bytecode-expectations.
#

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

---
snippet: "
  var global = 1;
  function f() { return ++global; }
  f();
"
frame size: 0
parameter count: 1
bytecode array length: 10
bytecodes: [
  B(StackCheck),
  B(LdaGlobal), U8(0), U8(1),
  B(ToNumber),
  B(Inc),
  B(StaGlobalSloppy), U8(0), U8(3),
  B(Return),
]
constant pool: [
  "global",
]
handlers: [
]

---
snippet: "
  var global = 1;
  function f() { return global--; }
  f();
"
frame size: 1
parameter count: 1
bytecode array length: 14
bytecodes: [
  B(StackCheck),
  B(LdaGlobal), U8(0), U8(1),
  B(ToNumber),
  B(Star), R(0),
  B(Dec),
  B(StaGlobalSloppy), U8(0), U8(3),
  B(Ldar), R(0),
  B(Return),
]
constant pool: [
  "global",
]
handlers: [
]

---
snippet: "
  unallocated = 1;
  function f() { 'use strict'; return --unallocated; }
  f();
"
frame size: 0
parameter count: 1
bytecode array length: 10
bytecodes: [
  B(StackCheck),
  B(LdaGlobal), U8(0), U8(1),
  B(ToNumber),
  B(Dec),
  B(StaGlobalStrict), U8(0), U8(3),
  B(Return),
]
constant pool: [
  "unallocated",
]
handlers: [
]

---
snippet: "
  unallocated = 1;
  function f() { return unallocated++; }
  f();
"
frame size: 1
parameter count: 1
bytecode array length: 14
bytecodes: [
  B(StackCheck),
  B(LdaGlobal), U8(0), U8(1),
  B(ToNumber),
  B(Star), R(0),
  B(Inc),
  B(StaGlobalSloppy), U8(0), U8(3),
  B(Ldar), R(0),
  B(Return),
]
constant pool: [
  "unallocated",
]
handlers: [
]

