#
# Autogenerated by generate-bytecode-expectations.
#

---
wrap: yes

---
snippet: "
  return typeof(1) === 'number';
"
frame size: 0
parameter count: 1
bytecode array length: 6
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   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: 6
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   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: 5
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   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: 5
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   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: 3
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   34 S> */ B(LdaFalse),
  /*   73 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

