#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: yes

---
snippet: "
  return typeof(1) === 'number';
"
frame size: 0
parameter count: 1
bytecode array length: 5
bytecodes: [
  /*   34 S> */ B(LdaSmi), I8(1),
                B(TestTypeOf), U8(0),
  /*   64 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  return 'string' === typeof('foo');
"
frame size: 0
parameter count: 1
bytecode array length: 5
bytecodes: [
  /*   34 S> */ B(LdaConstant), U8(0),
                B(TestTypeOf), U8(1),
  /*   68 S> */ B(Return),
]
constant pool: [
  ONE_BYTE_INTERNALIZED_STRING_TYPE ["foo"],
]
handlers: [
]

---
snippet: "
  return typeof(true) == 'boolean';
"
frame size: 0
parameter count: 1
bytecode array length: 4
bytecodes: [
  /*   34 S> */ B(LdaTrue),
                B(TestTypeOf), U8(3),
  /*   67 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  return 'string' === typeof(undefined);
"
frame size: 0
parameter count: 1
bytecode array length: 4
bytecodes: [
  /*   34 S> */ B(LdaUndefined),
                B(TestTypeOf), U8(1),
  /*   72 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  return 'unknown' === typeof(undefined);
"
frame size: 0
parameter count: 1
bytecode array length: 2
bytecodes: [
  /*   34 S> */ B(LdaFalse),
  /*   73 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

