text: assertEq(RegExp(/foo/my).flags, "my");
  assertEq(RegExp(/foo/, "gi").flags, "gi");
  assertEq(RegExp(/foo/my, "gi").flags, "gi");
  assertEq(RegExp(/foo/my, "").flags, "");
  assertEq(RegExp(/foo/my, undefined).flags, "my");
  assertThrowsInstanceOf(() => RegExp(/foo/my, null), SyntaxError);
  assertThrowsInstanceOf(() => RegExp(/foo/my, "foo"), SyntaxError);
  
  assertEq(/a/.compile("b", "gi").flags, "gi");
  assertEq(/a/.compile(/b/my).flags, "my");
  assertEq(/a/.compile(/b/my, undefined).flags, "my");
  assertThrowsInstanceOf(() => /a/.compile(/b/my, "gi"), TypeError);
  assertThrowsInstanceOf(() => /a/.compile(/b/my, ""), TypeError);
  assertThrowsInstanceOf(() => /a/.compile(/b/my, null), TypeError);
  assertThrowsInstanceOf(() => /a/.compile(/b/my, "foo"), TypeError);
  
  if (typeof reportCompare === "function")
      reportCompare(true, true);
  