#
# 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: 24
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   25 S> */ B(LdaSmi), U8(1),
  /*   25 E> */ B(Star), R(0),
  /*   30 S> */ B(JumpIfToBooleanFalse), U8(14),
  /*   43 S> */ B(Ldar), R(0),
                B(Star), R(1),
                B(LdaSmi), U8(1),
                B(Add), R(1),
  /*   45 E> */ 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: 1
parameter count: 2
bytecode array length: 22
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   18 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
                B(LdaZero),
  /*   24 E> */ B(TestLessThanOrEqual), R(0),
                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: 1
parameter count: 3
bytecode array length: 18
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   19 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*   28 E> */ B(Ldar), R(arg1),
  /*   25 E> */ B(TestIn), R(0),
                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: 3
parameter count: 2
bytecode array length: 287
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   24 S> */ B(LdaZero),
  /*   24 E> */ B(Star), R(0),
  /*   35 S> */ B(LdaZero),
  /*   35 E> */ B(Star), R(1),
  /*   38 S> */ B(Ldar), R(0),
                B(Star), R(2),
                B(LdaConstant), U8(0),
  /*   44 E> */ B(TestEqualStrict), R(2),
                B(JumpIfFalseConstant), U8(1),
  /*   58 S> */ B(Ldar), R(0),
  /*   60 E> */ B(Star), R(1),
  /*   65 S> */ B(Star), R(0),
  /*   74 S> */ B(Star), R(1),
  /*   81 S> */ B(Star), R(0),
  /*   90 S> */ B(Star), R(1),
  /*   97 S> */ B(Star), R(0),
  /*  106 S> */ B(Star), R(1),
  /*  113 S> */ B(Star), R(0),
  /*  122 S> */ B(Star), R(1),
  /*  129 S> */ B(Star), R(0),
  /*  138 S> */ B(Star), R(1),
  /*  145 S> */ B(Star), R(0),
  /*  154 S> */ B(Star), R(1),
  /*  161 S> */ B(Star), R(0),
  /*  170 S> */ B(Star), R(1),
  /*  177 S> */ B(Star), R(0),
  /*  186 S> */ B(Star), R(1),
  /*  193 S> */ B(Star), R(0),
  /*  202 S> */ B(Star), R(1),
  /*  209 S> */ B(Star), R(0),
  /*  218 S> */ B(Star), R(1),
  /*  225 S> */ B(Star), R(0),
  /*  234 S> */ B(Star), R(1),
  /*  241 S> */ B(Star), R(0),
  /*  250 S> */ B(Star), R(1),
  /*  257 S> */ B(Star), R(0),
  /*  266 S> */ B(Star), R(1),
  /*  273 S> */ B(Star), R(0),
  /*  282 S> */ B(Star), R(1),
  /*  289 S> */ B(Star), R(0),
  /*  298 S> */ B(Star), R(1),
  /*  305 S> */ B(Star), R(0),
  /*  314 S> */ B(Star), R(1),
  /*  321 S> */ B(Star), R(0),
  /*  330 S> */ B(Star), R(1),
  /*  337 S> */ B(Star), R(0),
  /*  346 S> */ B(Star), R(1),
  /*  353 S> */ B(Star), R(0),
  /*  362 S> */ B(Star), R(1),
  /*  369 S> */ B(Star), R(0),
  /*  378 S> */ B(Star), R(1),
  /*  385 S> */ B(Star), R(0),
  /*  394 S> */ B(Star), R(1),
  /*  401 S> */ B(Star), R(0),
  /*  410 S> */ B(Star), R(1),
  /*  417 S> */ B(Star), R(0),
  /*  426 S> */ B(Star), R(1),
  /*  433 S> */ B(Star), R(0),
  /*  442 S> */ B(Star), R(1),
  /*  449 S> */ B(Star), R(0),
  /*  458 S> */ B(Star), R(1),
  /*  465 S> */ B(Star), R(0),
  /*  474 S> */ B(Star), R(1),
  /*  481 S> */ B(Star), R(0),
  /*  490 S> */ B(Star), R(1),
  /*  497 S> */ B(Star), R(0),
  /*  506 S> */ B(Star), R(1),
  /*  513 S> */ B(Star), R(0),
  /*  522 S> */ B(Star), R(1),
  /*  529 S> */ B(Star), R(0),
  /*  538 S> */ B(Star), R(1),
  /*  545 S> */ B(Star), R(0),
  /*  554 S> */ B(Star), R(1),
  /*  561 S> */ B(Star), R(0),
  /*  570 S> */ B(Star), R(1),
  /*  577 S> */ B(Star), R(0),
  /*  586 S> */ B(Star), R(1),
  /*  593 S> */ B(Star), R(0),
  /*  602 S> */ B(Star), R(1),
  /*  609 S> */ B(Star), R(0),
  /*  618 S> */ B(Star), R(1),
  /*  625 S> */ B(Star), R(0),
  /*  634 S> */ B(Star), R(1),
  /*  641 S> */ B(Star), R(0),
  /*  650 S> */ B(Star), R(1),
  /*  657 S> */ B(Star), R(0),
  /*  666 S> */ B(Star), R(1),
  /*  673 S> */ B(Star), R(0),
  /*  682 S> */ B(Star), R(1),
  /*  689 S> */ B(Star), R(0),
  /*  698 S> */ B(Star), R(1),
  /*  705 S> */ B(Star), R(0),
  /*  714 S> */ B(Star), R(1),
  /*  721 S> */ B(Star), R(0),
  /*  730 S> */ B(Star), R(1),
  /*  737 S> */ B(Star), R(0),
  /*  746 S> */ B(Star), R(1),
  /*  753 S> */ B(Star), R(0),
  /*  762 S> */ B(Star), R(1),
  /*  769 S> */ B(Star), R(0),
  /*  778 S> */ B(Star), R(1),
  /*  785 S> */ B(Star), R(0),
  /*  794 S> */ B(Star), R(1),
  /*  801 S> */ B(Star), R(0),
  /*  810 S> */ B(Star), R(1),
  /*  817 S> */ B(Star), R(0),
  /*  826 S> */ B(Star), R(1),
  /*  833 S> */ B(Star), R(0),
  /*  842 S> */ B(Star), R(1),
  /*  849 S> */ B(Star), R(0),
  /*  858 S> */ B(Star), R(1),
  /*  865 S> */ B(Star), R(0),
  /*  874 S> */ B(Star), R(1),
  /*  881 S> */ B(Star), R(0),
  /*  890 S> */ B(Star), R(1),
  /*  897 S> */ B(Star), R(0),
  /*  906 S> */ B(Star), R(1),
  /*  913 S> */ B(Star), R(0),
  /*  922 S> */ B(Star), R(1),
  /*  929 S> */ B(Star), R(0),
  /*  938 S> */ B(Star), R(1),
  /*  945 S> */ B(Star), R(0),
  /*  954 S> */ B(Star), R(1),
  /*  961 S> */ B(Star), R(0),
  /*  970 S> */ B(Star), R(1),
  /*  977 S> */ B(Star), R(0),
  /*  986 S> */ B(Star), R(1),
  /*  993 S> */ B(Star), R(0),
  /* 1002 S> */ B(Star), R(1),
  /* 1009 S> */ B(Star), R(0),
  /* 1018 S> */ B(Star), R(1),
  /* 1025 S> */ B(Star), R(0),
  /* 1034 S> */ B(Star), R(1),
  /* 1041 S> */ B(Star), R(0),
  /* 1050 S> */ B(Star), R(1),
  /* 1057 S> */ B(Star), R(0),
  /* 1066 S> */ B(Star), R(1),
  /* 1073 S> */ B(Star), 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: 281
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   25 S> */ B(LdaZero),
  /*   25 E> */ B(Star), R(0),
  /*   36 S> */ B(LdaZero),
  /*   36 E> */ B(Star), R(1),
  /*   41 S> */ B(Ldar), R(0),
                B(JumpIfToBooleanFalseConstant), U8(0),
  /*   52 S> */ B(Ldar), R(0),
  /*   54 E> */ B(Star), R(1),
  /*   59 S> */ B(Star), R(0),
  /*   68 S> */ B(Star), R(1),
  /*   75 S> */ B(Star), R(0),
  /*   84 S> */ B(Star), R(1),
  /*   91 S> */ B(Star), R(0),
  /*  100 S> */ B(Star), R(1),
  /*  107 S> */ B(Star), R(0),
  /*  116 S> */ B(Star), R(1),
  /*  123 S> */ B(Star), R(0),
  /*  132 S> */ B(Star), R(1),
  /*  139 S> */ B(Star), R(0),
  /*  148 S> */ B(Star), R(1),
  /*  155 S> */ B(Star), R(0),
  /*  164 S> */ B(Star), R(1),
  /*  171 S> */ B(Star), R(0),
  /*  180 S> */ B(Star), R(1),
  /*  187 S> */ B(Star), R(0),
  /*  196 S> */ B(Star), R(1),
  /*  203 S> */ B(Star), R(0),
  /*  212 S> */ B(Star), R(1),
  /*  219 S> */ B(Star), R(0),
  /*  228 S> */ B(Star), R(1),
  /*  235 S> */ B(Star), R(0),
  /*  244 S> */ B(Star), R(1),
  /*  251 S> */ B(Star), R(0),
  /*  260 S> */ B(Star), R(1),
  /*  267 S> */ B(Star), R(0),
  /*  276 S> */ B(Star), R(1),
  /*  283 S> */ B(Star), R(0),
  /*  292 S> */ B(Star), R(1),
  /*  299 S> */ B(Star), R(0),
  /*  308 S> */ B(Star), R(1),
  /*  315 S> */ B(Star), R(0),
  /*  324 S> */ B(Star), R(1),
  /*  331 S> */ B(Star), R(0),
  /*  340 S> */ B(Star), R(1),
  /*  347 S> */ B(Star), R(0),
  /*  356 S> */ B(Star), R(1),
  /*  363 S> */ B(Star), R(0),
  /*  372 S> */ B(Star), R(1),
  /*  379 S> */ B(Star), R(0),
  /*  388 S> */ B(Star), R(1),
  /*  395 S> */ B(Star), R(0),
  /*  404 S> */ B(Star), R(1),
  /*  411 S> */ B(Star), R(0),
  /*  420 S> */ B(Star), R(1),
  /*  427 S> */ B(Star), R(0),
  /*  436 S> */ B(Star), R(1),
  /*  443 S> */ B(Star), R(0),
  /*  452 S> */ B(Star), R(1),
  /*  459 S> */ B(Star), R(0),
  /*  468 S> */ B(Star), R(1),
  /*  475 S> */ B(Star), R(0),
  /*  484 S> */ B(Star), R(1),
  /*  491 S> */ B(Star), R(0),
  /*  500 S> */ B(Star), R(1),
  /*  507 S> */ B(Star), R(0),
  /*  516 S> */ B(Star), R(1),
  /*  523 S> */ B(Star), R(0),
  /*  532 S> */ B(Star), R(1),
  /*  539 S> */ B(Star), R(0),
  /*  548 S> */ B(Star), R(1),
  /*  555 S> */ B(Star), R(0),
  /*  564 S> */ B(Star), R(1),
  /*  571 S> */ B(Star), R(0),
  /*  580 S> */ B(Star), R(1),
  /*  587 S> */ B(Star), R(0),
  /*  596 S> */ B(Star), R(1),
  /*  603 S> */ B(Star), R(0),
  /*  612 S> */ B(Star), R(1),
  /*  619 S> */ B(Star), R(0),
  /*  628 S> */ B(Star), R(1),
  /*  635 S> */ B(Star), R(0),
  /*  644 S> */ B(Star), R(1),
  /*  651 S> */ B(Star), R(0),
  /*  660 S> */ B(Star), R(1),
  /*  667 S> */ B(Star), R(0),
  /*  676 S> */ B(Star), R(1),
  /*  683 S> */ B(Star), R(0),
  /*  692 S> */ B(Star), R(1),
  /*  699 S> */ B(Star), R(0),
  /*  708 S> */ B(Star), R(1),
  /*  715 S> */ B(Star), R(0),
  /*  724 S> */ B(Star), R(1),
  /*  731 S> */ B(Star), R(0),
  /*  740 S> */ B(Star), R(1),
  /*  747 S> */ B(Star), R(0),
  /*  756 S> */ B(Star), R(1),
  /*  763 S> */ B(Star), R(0),
  /*  772 S> */ B(Star), R(1),
  /*  779 S> */ B(Star), R(0),
  /*  788 S> */ B(Star), R(1),
  /*  795 S> */ B(Star), R(0),
  /*  804 S> */ B(Star), R(1),
  /*  811 S> */ B(Star), R(0),
  /*  820 S> */ B(Star), R(1),
  /*  827 S> */ B(Star), R(0),
  /*  836 S> */ B(Star), R(1),
  /*  843 S> */ B(Star), R(0),
  /*  852 S> */ B(Star), R(1),
  /*  859 S> */ B(Star), R(0),
  /*  868 S> */ B(Star), R(1),
  /*  875 S> */ B(Star), R(0),
  /*  884 S> */ B(Star), R(1),
  /*  891 S> */ B(Star), R(0),
  /*  900 S> */ B(Star), R(1),
  /*  907 S> */ B(Star), R(0),
  /*  916 S> */ B(Star), R(1),
  /*  923 S> */ B(Star), R(0),
  /*  932 S> */ B(Star), R(1),
  /*  939 S> */ B(Star), R(0),
  /*  948 S> */ B(Star), R(1),
  /*  955 S> */ B(Star), R(0),
  /*  964 S> */ B(Star), R(1),
  /*  971 S> */ B(Star), R(0),
  /*  980 S> */ B(Star), R(1),
  /*  987 S> */ B(Star), R(0),
  /*  996 S> */ B(Star), R(1),
  /* 1003 S> */ B(Star), R(0),
  /* 1012 S> */ B(Star), R(1),
  /* 1019 S> */ B(Star), R(0),
  /* 1028 S> */ B(Star), R(1),
  /* 1035 S> */ B(Star), R(0),
  /* 1044 S> */ B(Star), R(1),
  /* 1051 S> */ B(Star), R(0),
  /* 1060 S> */ B(Star), R(1),
  /* 1067 S> */ B(Star), 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: 1
parameter count: 3
bytecode array length: 107
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   21 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*   30 E> */ B(Ldar), R(arg1),
  /*   27 E> */ B(TestEqual), R(0),
                B(JumpIfFalse), U8(5),
  /*   35 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*   49 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*   59 E> */ B(Ldar), R(arg1),
  /*   55 E> */ B(TestEqualStrict), R(0),
                B(JumpIfFalse), U8(5),
  /*   64 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*   78 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*   86 E> */ B(Ldar), R(arg1),
  /*   84 E> */ B(TestLessThan), R(0),
                B(JumpIfFalse), U8(5),
  /*   91 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  105 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*  113 E> */ B(Ldar), R(arg1),
  /*  111 E> */ B(TestGreaterThan), R(0),
                B(JumpIfFalse), U8(5),
  /*  118 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  132 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*  141 E> */ B(Ldar), R(arg1),
  /*  138 E> */ B(TestLessThanOrEqual), R(0),
                B(JumpIfFalse), U8(5),
  /*  146 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  160 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*  169 E> */ B(Ldar), R(arg1),
  /*  166 E> */ B(TestGreaterThanOrEqual), R(0),
                B(JumpIfFalse), U8(5),
  /*  174 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  188 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*  197 E> */ B(Ldar), R(arg1),
  /*  194 E> */ B(TestIn), R(0),
                B(JumpIfFalse), U8(5),
  /*  202 S> */ B(LdaSmi), U8(1),
  /*  262 S> */ B(Return),
  /*  216 S> */ B(Ldar), R(arg0),
                B(Star), R(0),
  /*  233 E> */ B(Ldar), R(arg1),
  /*  222 E> */ B(TestInstanceOf), R(0),
                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),
  /*   25 E> */ 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: [
]

