#
# Autogenerated by generate-bytecode-expectations.
#

---
pool type: string
execute: yes
wrap: yes

---
snippet: "
  return /ab+d/;
"
frame size: 0
parameter count: 1
bytecode array length: 6
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   34 S> */ B(CreateRegExpLiteral), U8(0), U8(0), U8(0),
  /*   49 S> */ B(Return),
]
constant pool: [
  "ab+d",
]
handlers: [
]

---
snippet: "
  return /(\\w+)\\s(\\w+)/i;
"
frame size: 0
parameter count: 1
bytecode array length: 6
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   34 S> */ B(CreateRegExpLiteral), U8(0), U8(0), U8(2),
  /*   58 S> */ B(Return),
]
constant pool: [
  "(\x5cw+)\x5cs(\x5cw+)",
]
handlers: [
]

---
snippet: "
  return /ab+d/.exec('abdd');
"
frame size: 3
parameter count: 1
bytecode array length: 22
bytecodes: [
  /*   30 E> */ B(StackCheck),
  /*   34 S> */ B(CreateRegExpLiteral), U8(0), U8(0), U8(0),
                B(Star), R(1),
  /*   47 E> */ B(LdrNamedProperty), R(1), U8(1), U8(3), R(0),
                B(LdaConstant), U8(2),
                B(Star), R(2),
  /*   48 E> */ B(Call), R(0), R(1), U8(2), U8(1),
  /*   62 S> */ B(Return),
]
constant pool: [
  "ab+d",
  "exec",
  "abdd",
]
handlers: [
]

