#
# Autogenerated by generate-bytecode-expectations.
#

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

---
snippet: "
  function f() {
    if (0) {
      return 1;
    } else {
      return -1;
    }
  };
  f();
"
frame size: 0
parameter count: 1
bytecode array length: 4
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   55 S> */ B(LdaSmi), U8(-1),
  /*   70 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f() {
    if ('lucky') {
      return 1;
    } else {
      return -1;
    }
  };
  f();
"
frame size: 0
parameter count: 1
bytecode array length: 4
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   36 S> */ B(LdaSmi), U8(1),
  /*   76 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f() {
    if (false) {
      return 1;
    } else {
      return -1;
    }
  };
  f();
"
frame size: 0
parameter count: 1
bytecode array length: 4
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   59 S> */ B(LdaSmi), U8(-1),
  /*   74 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f() {
    if (false) {
      return 1;
    }
  };
  f();
"
frame size: 0
parameter count: 1
bytecode array length: 3
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   17 S> */ B(LdaUndefined),
  /*   48 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f() {
    var a = 1;
    if (a) {
      a += 1;
    } else {
      return 2;
    }
  };
  f();
"
frame size: 2
parameter count: 1
bytecode array length: 23
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   25 S> */ B(LdaSmi), U8(1),
                B(Star), R(0),
  /*   30 S> */ B(JumpIfToBooleanFalse), U8(13),
  /*   43 S> */ B(LdaSmi), U8(1),
                B(Add), R(0),
                B(Mov), R(0), R(1),
                B(Star), R(0),
                B(Jump), U8(5),
  /*   66 S> */ B(LdaSmi), U8(2),
  /*   80 S> */ B(Return),
                B(LdaUndefined),
  /*   80 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f(a) {
    if (a <= 0) {
      return 200;
    } else {
      return -200;
    }
  };
  f(99);
"
frame size: 0
parameter count: 2
bytecode array length: 18
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   18 S> */ B(LdaZero),
  /*   24 E> */ B(TestLessThanOrEqual), R(arg0),
                B(JumpIfFalse), U8(7),
  /*   36 S> */ B(Wide), B(LdaSmi), U16(200),
  /*   80 S> */ B(Return),
  /*   63 S> */ B(Wide), B(LdaSmi), U16(-200),
  /*   80 S> */ B(Return),
                B(LdaUndefined),
  /*   80 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f(a, b) { if (a in b) { return 200; } }f('prop', { prop: 'yes'});
"
frame size: 0
parameter count: 3
bytecode array length: 14
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   19 S> */ B(Ldar), R(arg1),
  /*   25 E> */ B(TestIn), R(arg0),
                B(JumpIfFalse), U8(7),
  /*   33 S> */ B(Wide), B(LdaSmi), U16(200),
  /*   47 S> */ B(Return),
                B(LdaUndefined),
  /*   47 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f(z) { var a = 0; var b = 0; if (a === 0.01) {
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
   return 200; } else { return -200; } } f(0.001);
"
frame size: 2
parameter count: 2
bytecode array length: 409
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   24 S> */ B(LdaZero),
                B(Star), R(0),
  /*   35 S> */ B(LdaZero),
                B(Star), R(1),
  /*   38 S> */ B(LdaConstant), U8(0),
  /*   44 E> */ B(TestEqualStrict), R(0),
                B(JumpIfFalseConstant), U8(1),
  /*   58 S> */ B(Mov), R(0), R(1),
  /*   65 S> */ B(Mov), R(1), R(0),
  /*   74 S> */ B(Mov), R(0), R(1),
  /*   81 S> */ B(Mov), R(1), R(0),
  /*   90 S> */ B(Mov), R(0), R(1),
  /*   97 S> */ B(Mov), R(1), R(0),
  /*  106 S> */ B(Mov), R(0), R(1),
  /*  113 S> */ B(Mov), R(1), R(0),
  /*  122 S> */ B(Mov), R(0), R(1),
  /*  129 S> */ B(Mov), R(1), R(0),
  /*  138 S> */ B(Mov), R(0), R(1),
  /*  145 S> */ B(Mov), R(1), R(0),
  /*  154 S> */ B(Mov), R(0), R(1),
  /*  161 S> */ B(Mov), R(1), R(0),
  /*  170 S> */ B(Mov), R(0), R(1),
  /*  177 S> */ B(Mov), R(1), R(0),
  /*  186 S> */ B(Mov), R(0), R(1),
  /*  193 S> */ B(Mov), R(1), R(0),
  /*  202 S> */ B(Mov), R(0), R(1),
  /*  209 S> */ B(Mov), R(1), R(0),
  /*  218 S> */ B(Mov), R(0), R(1),
  /*  225 S> */ B(Mov), R(1), R(0),
  /*  234 S> */ B(Mov), R(0), R(1),
  /*  241 S> */ B(Mov), R(1), R(0),
  /*  250 S> */ B(Mov), R(0), R(1),
  /*  257 S> */ B(Mov), R(1), R(0),
  /*  266 S> */ B(Mov), R(0), R(1),
  /*  273 S> */ B(Mov), R(1), R(0),
  /*  282 S> */ B(Mov), R(0), R(1),
  /*  289 S> */ B(Mov), R(1), R(0),
  /*  298 S> */ B(Mov), R(0), R(1),
  /*  305 S> */ B(Mov), R(1), R(0),
  /*  314 S> */ B(Mov), R(0), R(1),
  /*  321 S> */ B(Mov), R(1), R(0),
  /*  330 S> */ B(Mov), R(0), R(1),
  /*  337 S> */ B(Mov), R(1), R(0),
  /*  346 S> */ B(Mov), R(0), R(1),
  /*  353 S> */ B(Mov), R(1), R(0),
  /*  362 S> */ B(Mov), R(0), R(1),
  /*  369 S> */ B(Mov), R(1), R(0),
  /*  378 S> */ B(Mov), R(0), R(1),
  /*  385 S> */ B(Mov), R(1), R(0),
  /*  394 S> */ B(Mov), R(0), R(1),
  /*  401 S> */ B(Mov), R(1), R(0),
  /*  410 S> */ B(Mov), R(0), R(1),
  /*  417 S> */ B(Mov), R(1), R(0),
  /*  426 S> */ B(Mov), R(0), R(1),
  /*  433 S> */ B(Mov), R(1), R(0),
  /*  442 S> */ B(Mov), R(0), R(1),
  /*  449 S> */ B(Mov), R(1), R(0),
  /*  458 S> */ B(Mov), R(0), R(1),
  /*  465 S> */ B(Mov), R(1), R(0),
  /*  474 S> */ B(Mov), R(0), R(1),
  /*  481 S> */ B(Mov), R(1), R(0),
  /*  490 S> */ B(Mov), R(0), R(1),
  /*  497 S> */ B(Mov), R(1), R(0),
  /*  506 S> */ B(Mov), R(0), R(1),
  /*  513 S> */ B(Mov), R(1), R(0),
  /*  522 S> */ B(Mov), R(0), R(1),
  /*  529 S> */ B(Mov), R(1), R(0),
  /*  538 S> */ B(Mov), R(0), R(1),
  /*  545 S> */ B(Mov), R(1), R(0),
  /*  554 S> */ B(Mov), R(0), R(1),
  /*  561 S> */ B(Mov), R(1), R(0),
  /*  570 S> */ B(Mov), R(0), R(1),
  /*  577 S> */ B(Mov), R(1), R(0),
  /*  586 S> */ B(Mov), R(0), R(1),
  /*  593 S> */ B(Mov), R(1), R(0),
  /*  602 S> */ B(Mov), R(0), R(1),
  /*  609 S> */ B(Mov), R(1), R(0),
  /*  618 S> */ B(Mov), R(0), R(1),
  /*  625 S> */ B(Mov), R(1), R(0),
  /*  634 S> */ B(Mov), R(0), R(1),
  /*  641 S> */ B(Mov), R(1), R(0),
  /*  650 S> */ B(Mov), R(0), R(1),
  /*  657 S> */ B(Mov), R(1), R(0),
  /*  666 S> */ B(Mov), R(0), R(1),
  /*  673 S> */ B(Mov), R(1), R(0),
  /*  682 S> */ B(Mov), R(0), R(1),
  /*  689 S> */ B(Mov), R(1), R(0),
  /*  698 S> */ B(Mov), R(0), R(1),
  /*  705 S> */ B(Mov), R(1), R(0),
  /*  714 S> */ B(Mov), R(0), R(1),
  /*  721 S> */ B(Mov), R(1), R(0),
  /*  730 S> */ B(Mov), R(0), R(1),
  /*  737 S> */ B(Mov), R(1), R(0),
  /*  746 S> */ B(Mov), R(0), R(1),
  /*  753 S> */ B(Mov), R(1), R(0),
  /*  762 S> */ B(Mov), R(0), R(1),
  /*  769 S> */ B(Mov), R(1), R(0),
  /*  778 S> */ B(Mov), R(0), R(1),
  /*  785 S> */ B(Mov), R(1), R(0),
  /*  794 S> */ B(Mov), R(0), R(1),
  /*  801 S> */ B(Mov), R(1), R(0),
  /*  810 S> */ B(Mov), R(0), R(1),
  /*  817 S> */ B(Mov), R(1), R(0),
  /*  826 S> */ B(Mov), R(0), R(1),
  /*  833 S> */ B(Mov), R(1), R(0),
  /*  842 S> */ B(Mov), R(0), R(1),
  /*  849 S> */ B(Mov), R(1), R(0),
  /*  858 S> */ B(Mov), R(0), R(1),
  /*  865 S> */ B(Mov), R(1), R(0),
  /*  874 S> */ B(Mov), R(0), R(1),
  /*  881 S> */ B(Mov), R(1), R(0),
  /*  890 S> */ B(Mov), R(0), R(1),
  /*  897 S> */ B(Mov), R(1), R(0),
  /*  906 S> */ B(Mov), R(0), R(1),
  /*  913 S> */ B(Mov), R(1), R(0),
  /*  922 S> */ B(Mov), R(0), R(1),
  /*  929 S> */ B(Mov), R(1), R(0),
  /*  938 S> */ B(Mov), R(0), R(1),
  /*  945 S> */ B(Mov), R(1), R(0),
  /*  954 S> */ B(Mov), R(0), R(1),
  /*  961 S> */ B(Mov), R(1), R(0),
  /*  970 S> */ B(Mov), R(0), R(1),
  /*  977 S> */ B(Mov), R(1), R(0),
  /*  986 S> */ B(Mov), R(0), R(1),
  /*  993 S> */ B(Mov), R(1), R(0),
  /* 1002 S> */ B(Mov), R(0), R(1),
  /* 1009 S> */ B(Mov), R(1), R(0),
  /* 1018 S> */ B(Mov), R(0), R(1),
  /* 1025 S> */ B(Mov), R(1), R(0),
  /* 1034 S> */ B(Mov), R(0), R(1),
  /* 1041 S> */ B(Mov), R(1), R(0),
  /* 1050 S> */ B(Mov), R(0), R(1),
  /* 1057 S> */ B(Mov), R(1), R(0),
  /* 1066 S> */ B(Mov), R(0), R(1),
  /* 1073 S> */ B(Mov), R(1), R(0),
  /* 1081 S> */ B(Wide), B(LdaSmi), U16(200),
  /* 1117 S> */ B(Return),
  /* 1102 S> */ B(Wide), B(LdaSmi), U16(-200),
  /* 1117 S> */ B(Return),
                B(LdaUndefined),
  /* 1117 S> */ B(Return),
]
constant pool: [
  InstanceType::HEAP_NUMBER_TYPE,
  kInstanceTypeDontCare,
]
handlers: [
]

---
snippet: "
  function f() {
    var a = 0; var b = 0;
    if (a) {
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    b = a; a = b;
    return 200; } else { return -200; }
  };
  f();
"
frame size: 2
parameter count: 1
bytecode array length: 407
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   25 S> */ B(LdaZero),
                B(Star), R(0),
  /*   36 S> */ B(LdaZero),
                B(Star), R(1),
  /*   41 S> */ B(Ldar), R(0),
                B(JumpIfToBooleanFalseConstant), U8(0),
  /*   52 S> */ B(Mov), R(0), R(1),
  /*   59 S> */ B(Mov), R(1), R(0),
  /*   68 S> */ B(Mov), R(0), R(1),
  /*   75 S> */ B(Mov), R(1), R(0),
  /*   84 S> */ B(Mov), R(0), R(1),
  /*   91 S> */ B(Mov), R(1), R(0),
  /*  100 S> */ B(Mov), R(0), R(1),
  /*  107 S> */ B(Mov), R(1), R(0),
  /*  116 S> */ B(Mov), R(0), R(1),
  /*  123 S> */ B(Mov), R(1), R(0),
  /*  132 S> */ B(Mov), R(0), R(1),
  /*  139 S> */ B(Mov), R(1), R(0),
  /*  148 S> */ B(Mov), R(0), R(1),
  /*  155 S> */ B(Mov), R(1), R(0),
  /*  164 S> */ B(Mov), R(0), R(1),
  /*  171 S> */ B(Mov), R(1), R(0),
  /*  180 S> */ B(Mov), R(0), R(1),
  /*  187 S> */ B(Mov), R(1), R(0),
  /*  196 S> */ B(Mov), R(0), R(1),
  /*  203 S> */ B(Mov), R(1), R(0),
  /*  212 S> */ B(Mov), R(0), R(1),
  /*  219 S> */ B(Mov), R(1), R(0),
  /*  228 S> */ B(Mov), R(0), R(1),
  /*  235 S> */ B(Mov), R(1), R(0),
  /*  244 S> */ B(Mov), R(0), R(1),
  /*  251 S> */ B(Mov), R(1), R(0),
  /*  260 S> */ B(Mov), R(0), R(1),
  /*  267 S> */ B(Mov), R(1), R(0),
  /*  276 S> */ B(Mov), R(0), R(1),
  /*  283 S> */ B(Mov), R(1), R(0),
  /*  292 S> */ B(Mov), R(0), R(1),
  /*  299 S> */ B(Mov), R(1), R(0),
  /*  308 S> */ B(Mov), R(0), R(1),
  /*  315 S> */ B(Mov), R(1), R(0),
  /*  324 S> */ B(Mov), R(0), R(1),
  /*  331 S> */ B(Mov), R(1), R(0),
  /*  340 S> */ B(Mov), R(0), R(1),
  /*  347 S> */ B(Mov), R(1), R(0),
  /*  356 S> */ B(Mov), R(0), R(1),
  /*  363 S> */ B(Mov), R(1), R(0),
  /*  372 S> */ B(Mov), R(0), R(1),
  /*  379 S> */ B(Mov), R(1), R(0),
  /*  388 S> */ B(Mov), R(0), R(1),
  /*  395 S> */ B(Mov), R(1), R(0),
  /*  404 S> */ B(Mov), R(0), R(1),
  /*  411 S> */ B(Mov), R(1), R(0),
  /*  420 S> */ B(Mov), R(0), R(1),
  /*  427 S> */ B(Mov), R(1), R(0),
  /*  436 S> */ B(Mov), R(0), R(1),
  /*  443 S> */ B(Mov), R(1), R(0),
  /*  452 S> */ B(Mov), R(0), R(1),
  /*  459 S> */ B(Mov), R(1), R(0),
  /*  468 S> */ B(Mov), R(0), R(1),
  /*  475 S> */ B(Mov), R(1), R(0),
  /*  484 S> */ B(Mov), R(0), R(1),
  /*  491 S> */ B(Mov), R(1), R(0),
  /*  500 S> */ B(Mov), R(0), R(1),
  /*  507 S> */ B(Mov), R(1), R(0),
  /*  516 S> */ B(Mov), R(0), R(1),
  /*  523 S> */ B(Mov), R(1), R(0),
  /*  532 S> */ B(Mov), R(0), R(1),
  /*  539 S> */ B(Mov), R(1), R(0),
  /*  548 S> */ B(Mov), R(0), R(1),
  /*  555 S> */ B(Mov), R(1), R(0),
  /*  564 S> */ B(Mov), R(0), R(1),
  /*  571 S> */ B(Mov), R(1), R(0),
  /*  580 S> */ B(Mov), R(0), R(1),
  /*  587 S> */ B(Mov), R(1), R(0),
  /*  596 S> */ B(Mov), R(0), R(1),
  /*  603 S> */ B(Mov), R(1), R(0),
  /*  612 S> */ B(Mov), R(0), R(1),
  /*  619 S> */ B(Mov), R(1), R(0),
  /*  628 S> */ B(Mov), R(0), R(1),
  /*  635 S> */ B(Mov), R(1), R(0),
  /*  644 S> */ B(Mov), R(0), R(1),
  /*  651 S> */ B(Mov), R(1), R(0),
  /*  660 S> */ B(Mov), R(0), R(1),
  /*  667 S> */ B(Mov), R(1), R(0),
  /*  676 S> */ B(Mov), R(0), R(1),
  /*  683 S> */ B(Mov), R(1), R(0),
  /*  692 S> */ B(Mov), R(0), R(1),
  /*  699 S> */ B(Mov), R(1), R(0),
  /*  708 S> */ B(Mov), R(0), R(1),
  /*  715 S> */ B(Mov), R(1), R(0),
  /*  724 S> */ B(Mov), R(0), R(1),
  /*  731 S> */ B(Mov), R(1), R(0),
  /*  740 S> */ B(Mov), R(0), R(1),
  /*  747 S> */ B(Mov), R(1), R(0),
  /*  756 S> */ B(Mov), R(0), R(1),
  /*  763 S> */ B(Mov), R(1), R(0),
  /*  772 S> */ B(Mov), R(0), R(1),
  /*  779 S> */ B(Mov), R(1), R(0),
  /*  788 S> */ B(Mov), R(0), R(1),
  /*  795 S> */ B(Mov), R(1), R(0),
  /*  804 S> */ B(Mov), R(0), R(1),
  /*  811 S> */ B(Mov), R(1), R(0),
  /*  820 S> */ B(Mov), R(0), R(1),
  /*  827 S> */ B(Mov), R(1), R(0),
  /*  836 S> */ B(Mov), R(0), R(1),
  /*  843 S> */ B(Mov), R(1), R(0),
  /*  852 S> */ B(Mov), R(0), R(1),
  /*  859 S> */ B(Mov), R(1), R(0),
  /*  868 S> */ B(Mov), R(0), R(1),
  /*  875 S> */ B(Mov), R(1), R(0),
  /*  884 S> */ B(Mov), R(0), R(1),
  /*  891 S> */ B(Mov), R(1), R(0),
  /*  900 S> */ B(Mov), R(0), R(1),
  /*  907 S> */ B(Mov), R(1), R(0),
  /*  916 S> */ B(Mov), R(0), R(1),
  /*  923 S> */ B(Mov), R(1), R(0),
  /*  932 S> */ B(Mov), R(0), R(1),
  /*  939 S> */ B(Mov), R(1), R(0),
  /*  948 S> */ B(Mov), R(0), R(1),
  /*  955 S> */ B(Mov), R(1), R(0),
  /*  964 S> */ B(Mov), R(0), R(1),
  /*  971 S> */ B(Mov), R(1), R(0),
  /*  980 S> */ B(Mov), R(0), R(1),
  /*  987 S> */ B(Mov), R(1), R(0),
  /*  996 S> */ B(Mov), R(0), R(1),
  /* 1003 S> */ B(Mov), R(1), R(0),
  /* 1012 S> */ B(Mov), R(0), R(1),
  /* 1019 S> */ B(Mov), R(1), R(0),
  /* 1028 S> */ B(Mov), R(0), R(1),
  /* 1035 S> */ B(Mov), R(1), R(0),
  /* 1044 S> */ B(Mov), R(0), R(1),
  /* 1051 S> */ B(Mov), R(1), R(0),
  /* 1060 S> */ B(Mov), R(0), R(1),
  /* 1067 S> */ B(Mov), R(1), R(0),
  /* 1076 S> */ B(Wide), B(LdaSmi), U16(200),
  /* 1112 S> */ B(Return),
  /* 1097 S> */ B(Wide), B(LdaSmi), U16(-200),
  /* 1112 S> */ B(Return),
                B(LdaUndefined),
  /* 1112 S> */ B(Return),
]
constant pool: [
  kInstanceTypeDontCare,
]
handlers: [
]

---
snippet: "
  function f(a, b) {
    if (a == b) { return 1; }
    if (a === b) { return 1; }
    if (a < b) { return 1; }
    if (a > b) { return 1; }
    if (a <= b) { return 1; }
    if (a >= b) { return 1; }
    if (a in b) { return 1; }
    if (a instanceof b) { return 1; }
    return 0;
  }
  f(1, 1);
"
frame size: 0
parameter count: 3
bytecode array length: 75
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   21 S> */ B(Ldar), R(arg1),
  /*   27 E> */ B(TestEqual), R(arg0),
                B(JumpIfFalse), U8(5),
  /*   35 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*   49 S> */ B(Ldar), R(arg1),
  /*   55 E> */ B(TestEqualStrict), R(arg0),
                B(JumpIfFalse), U8(5),
  /*   64 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*   78 S> */ B(Ldar), R(arg1),
  /*   84 E> */ B(TestLessThan), R(arg0),
                B(JumpIfFalse), U8(5),
  /*   91 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  105 S> */ B(Ldar), R(arg1),
  /*  111 E> */ B(TestGreaterThan), R(arg0),
                B(JumpIfFalse), U8(5),
  /*  118 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  132 S> */ B(Ldar), R(arg1),
  /*  138 E> */ B(TestLessThanOrEqual), R(arg0),
                B(JumpIfFalse), U8(5),
  /*  146 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  160 S> */ B(Ldar), R(arg1),
  /*  166 E> */ B(TestGreaterThanOrEqual), R(arg0),
                B(JumpIfFalse), U8(5),
  /*  174 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  188 S> */ B(Ldar), R(arg1),
  /*  194 E> */ B(TestIn), R(arg0),
                B(JumpIfFalse), U8(5),
  /*  202 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  216 S> */ B(Ldar), R(arg1),
  /*  222 E> */ B(TestInstanceOf), R(arg0),
                B(JumpIfFalse), U8(5),
  /*  238 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  252 S> */ B(LdaZero),
  /*  262 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

---
snippet: "
  function f() {
    var a = 0;
    if (a) {
      return 20;
    } else {
      return -20;
    }
  };
  f();
"
frame size: 1
parameter count: 1
bytecode array length: 14
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   25 S> */ B(LdaZero),
                B(Star), R(0),
  /*   30 S> */ B(JumpIfToBooleanFalse), U8(5),
  /*   43 S> */ B(LdaSmi), U8(20),
  /*   85 S> */ B(Return),
  /*   69 S> */ B(LdaSmi), U8(-20),
  /*   85 S> */ B(Return),
                B(LdaUndefined),
  /*   85 S> */ B(Return),
]
constant pool: [
]
handlers: [
]

