#
# Autogenerated by generate-bytecode-expectations.
#

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

---
snippet: "
  function f(a) { return a.func(); }
  f(new (function Obj() { this.func = function() { return; }})())
"
frame size: 1
parameter count: 2
bytecode array length: 13
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   16 S> */ B(Nop),
  /*   24 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(3), R(0),
  /*   25 E> */ B(Call), R(0), R(arg0), U8(1), U8(1),
  /*   33 S> */ B(Return),
]
constant pool: [
  "func",
]
handlers: [
]

---
snippet: "
  function f(a, b, c) { return a.func(b, c); }
  f(new (function Obj() { this.func = function() { return; }})(), 1, 2)
"
frame size: 4
parameter count: 4
bytecode array length: 24
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   22 S> */ B(Nop),
  /*   30 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(3), R(0),
                B(Ldar), R(0),
                B(Mov), R(arg0), R(1),
                B(Mov), R(arg1), R(2),
                B(Mov), R(arg2), R(3),
  /*   31 E> */ B(Call), R(0), R(1), U8(3), U8(1),
  /*   43 S> */ B(Return),
]
constant pool: [
  "func",
]
handlers: [
]

---
snippet: "
  function f(a, b) { return a.func(b + b, b); }
  f(new (function Obj() { this.func = function() { return; }})(), 1)
"
frame size: 4
parameter count: 3
bytecode array length: 25
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   19 S> */ B(Nop),
  /*   27 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(3), R(0),
                B(Ldar), R(arg1),
  /*   37 E> */ B(Add), R(arg1),
                B(Star), R(2),
                B(Mov), R(arg0), R(1),
                B(Mov), R(arg1), R(3),
  /*   28 E> */ B(Call), R(0), R(1), U8(3), U8(1),
  /*   44 S> */ B(Return),
]
constant pool: [
  "func",
]
handlers: [
]

---
snippet: "
  function f(a) {
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   a.func;
   return a.func(); }
  f(new (function Obj() { this.func = function() { return; }})())
"
frame size: 1
parameter count: 2
bytecode array length: 663
bytecodes: [
  /*   10 E> */ B(StackCheck),
  /*   17 S> */ B(Nop),
  /*   18 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(1),
  /*   26 S> */ B(Nop),
  /*   27 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(3),
  /*   35 S> */ B(Nop),
  /*   36 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
  /*   44 S> */ B(Nop),
  /*   45 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(7),
  /*   53 S> */ B(Nop),
  /*   54 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(9),
  /*   62 S> */ B(Nop),
  /*   63 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(11),
  /*   71 S> */ B(Nop),
  /*   72 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(13),
  /*   80 S> */ B(Nop),
  /*   81 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(15),
  /*   89 S> */ B(Nop),
  /*   90 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(17),
  /*   98 S> */ B(Nop),
  /*   99 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(19),
  /*  107 S> */ B(Nop),
  /*  108 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(21),
  /*  116 S> */ B(Nop),
  /*  117 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(23),
  /*  125 S> */ B(Nop),
  /*  126 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(25),
  /*  134 S> */ B(Nop),
  /*  135 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(27),
  /*  143 S> */ B(Nop),
  /*  144 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(29),
  /*  152 S> */ B(Nop),
  /*  153 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(31),
  /*  161 S> */ B(Nop),
  /*  162 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(33),
  /*  170 S> */ B(Nop),
  /*  171 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(35),
  /*  179 S> */ B(Nop),
  /*  180 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(37),
  /*  188 S> */ B(Nop),
  /*  189 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(39),
  /*  197 S> */ B(Nop),
  /*  198 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(41),
  /*  206 S> */ B(Nop),
  /*  207 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(43),
  /*  215 S> */ B(Nop),
  /*  216 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(45),
  /*  224 S> */ B(Nop),
  /*  225 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(47),
  /*  233 S> */ B(Nop),
  /*  234 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(49),
  /*  242 S> */ B(Nop),
  /*  243 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(51),
  /*  251 S> */ B(Nop),
  /*  252 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(53),
  /*  260 S> */ B(Nop),
  /*  261 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(55),
  /*  269 S> */ B(Nop),
  /*  270 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(57),
  /*  278 S> */ B(Nop),
  /*  279 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(59),
  /*  287 S> */ B(Nop),
  /*  288 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(61),
  /*  296 S> */ B(Nop),
  /*  297 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(63),
  /*  305 S> */ B(Nop),
  /*  306 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(65),
  /*  314 S> */ B(Nop),
  /*  315 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(67),
  /*  323 S> */ B(Nop),
  /*  324 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(69),
  /*  332 S> */ B(Nop),
  /*  333 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(71),
  /*  341 S> */ B(Nop),
  /*  342 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(73),
  /*  350 S> */ B(Nop),
  /*  351 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(75),
  /*  359 S> */ B(Nop),
  /*  360 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(77),
  /*  368 S> */ B(Nop),
  /*  369 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(79),
  /*  377 S> */ B(Nop),
  /*  378 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(81),
  /*  386 S> */ B(Nop),
  /*  387 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(83),
  /*  395 S> */ B(Nop),
  /*  396 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(85),
  /*  404 S> */ B(Nop),
  /*  405 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(87),
  /*  413 S> */ B(Nop),
  /*  414 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(89),
  /*  422 S> */ B(Nop),
  /*  423 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(91),
  /*  431 S> */ B(Nop),
  /*  432 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(93),
  /*  440 S> */ B(Nop),
  /*  441 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(95),
  /*  449 S> */ B(Nop),
  /*  450 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(97),
  /*  458 S> */ B(Nop),
  /*  459 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(99),
  /*  467 S> */ B(Nop),
  /*  468 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(101),
  /*  476 S> */ B(Nop),
  /*  477 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(103),
  /*  485 S> */ B(Nop),
  /*  486 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(105),
  /*  494 S> */ B(Nop),
  /*  495 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(107),
  /*  503 S> */ B(Nop),
  /*  504 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(109),
  /*  512 S> */ B(Nop),
  /*  513 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(111),
  /*  521 S> */ B(Nop),
  /*  522 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(113),
  /*  530 S> */ B(Nop),
  /*  531 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(115),
  /*  539 S> */ B(Nop),
  /*  540 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(117),
  /*  548 S> */ B(Nop),
  /*  549 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(119),
  /*  557 S> */ B(Nop),
  /*  558 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(121),
  /*  566 S> */ B(Nop),
  /*  567 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(123),
  /*  575 S> */ B(Nop),
  /*  576 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(125),
  /*  584 S> */ B(Nop),
  /*  585 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(127),
  /*  593 S> */ B(Nop),
  /*  594 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(129),
  /*  602 S> */ B(Nop),
  /*  603 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(131),
  /*  611 S> */ B(Nop),
  /*  612 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(133),
  /*  620 S> */ B(Nop),
  /*  621 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(135),
  /*  629 S> */ B(Nop),
  /*  630 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(137),
  /*  638 S> */ B(Nop),
  /*  639 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(139),
  /*  647 S> */ B(Nop),
  /*  648 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(141),
  /*  656 S> */ B(Nop),
  /*  657 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(143),
  /*  665 S> */ B(Nop),
  /*  666 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(145),
  /*  674 S> */ B(Nop),
  /*  675 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(147),
  /*  683 S> */ B(Nop),
  /*  684 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(149),
  /*  692 S> */ B(Nop),
  /*  693 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(151),
  /*  701 S> */ B(Nop),
  /*  702 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(153),
  /*  710 S> */ B(Nop),
  /*  711 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(155),
  /*  719 S> */ B(Nop),
  /*  720 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(157),
  /*  728 S> */ B(Nop),
  /*  729 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(159),
  /*  737 S> */ B(Nop),
  /*  738 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(161),
  /*  746 S> */ B(Nop),
  /*  747 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(163),
  /*  755 S> */ B(Nop),
  /*  756 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(165),
  /*  764 S> */ B(Nop),
  /*  765 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(167),
  /*  773 S> */ B(Nop),
  /*  774 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(169),
  /*  782 S> */ B(Nop),
  /*  783 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(171),
  /*  791 S> */ B(Nop),
  /*  792 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(173),
  /*  800 S> */ B(Nop),
  /*  801 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(175),
  /*  809 S> */ B(Nop),
  /*  810 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(177),
  /*  818 S> */ B(Nop),
  /*  819 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(179),
  /*  827 S> */ B(Nop),
  /*  828 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(181),
  /*  836 S> */ B(Nop),
  /*  837 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(183),
  /*  845 S> */ B(Nop),
  /*  846 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(185),
  /*  854 S> */ B(Nop),
  /*  855 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(187),
  /*  863 S> */ B(Nop),
  /*  864 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(189),
  /*  872 S> */ B(Nop),
  /*  873 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(191),
  /*  881 S> */ B(Nop),
  /*  882 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(193),
  /*  890 S> */ B(Nop),
  /*  891 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(195),
  /*  899 S> */ B(Nop),
  /*  900 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(197),
  /*  908 S> */ B(Nop),
  /*  909 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(199),
  /*  917 S> */ B(Nop),
  /*  918 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(201),
  /*  926 S> */ B(Nop),
  /*  927 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(203),
  /*  935 S> */ B(Nop),
  /*  936 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(205),
  /*  944 S> */ B(Nop),
  /*  945 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(207),
  /*  953 S> */ B(Nop),
  /*  954 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(209),
  /*  962 S> */ B(Nop),
  /*  963 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(211),
  /*  971 S> */ B(Nop),
  /*  972 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(213),
  /*  980 S> */ B(Nop),
  /*  981 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(215),
  /*  989 S> */ B(Nop),
  /*  990 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(217),
  /*  998 S> */ B(Nop),
  /*  999 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(219),
  /* 1007 S> */ B(Nop),
  /* 1008 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(221),
  /* 1016 S> */ B(Nop),
  /* 1017 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(223),
  /* 1025 S> */ B(Nop),
  /* 1026 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(225),
  /* 1034 S> */ B(Nop),
  /* 1035 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(227),
  /* 1043 S> */ B(Nop),
  /* 1044 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(229),
  /* 1052 S> */ B(Nop),
  /* 1053 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(231),
  /* 1061 S> */ B(Nop),
  /* 1062 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(233),
  /* 1070 S> */ B(Nop),
  /* 1071 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(235),
  /* 1079 S> */ B(Nop),
  /* 1080 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(237),
  /* 1088 S> */ B(Nop),
  /* 1089 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(239),
  /* 1097 S> */ B(Nop),
  /* 1098 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(241),
  /* 1106 S> */ B(Nop),
  /* 1107 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(243),
  /* 1115 S> */ B(Nop),
  /* 1116 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(245),
  /* 1124 S> */ B(Nop),
  /* 1125 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(247),
  /* 1133 S> */ B(Nop),
  /* 1134 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(249),
  /* 1142 S> */ B(Nop),
  /* 1143 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(251),
  /* 1151 S> */ B(Nop),
  /* 1152 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(253),
  /* 1160 S> */ B(Nop),
  /* 1161 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(255),
  /* 1169 S> */ B(Nop),
  /* 1177 E> */ B(Wide), B(LdrNamedProperty), R16(arg0), U16(0), U16(259), R16(0),
  /* 1178 E> */ B(Wide), B(Call), R16(0), R16(arg0), U16(1), U16(257),
  /* 1186 S> */ B(Return),
]
constant pool: [
  "func",
]
handlers: [
]

