var BUGNUMBER = 1079919;
var summary = "Make RegExp.prototype.toString to be a generic function.";

print(BUGNUMBER + ": " + summary);

assertEq(RegExp.prototype.toString(), "/(?:)/");
assertEq(/foo/.toString(), "/foo/");
assertEq(/foo/i.toString(), "/foo/i");
assertEq(/foo/gimy.toString(), "/foo/gimy");
assertEq(/foo/igym.toString(), "/foo/gimy");
assertEq(/\n\r/.toString(), "/\\n\\r/");
assertEq(/\u2028\u2029/.toString(), "/\\u2028\\u2029/");
assertEq(/\//.toString(), "/\\//");
assertEq(RegExp().toString(), "/(?:)/");
assertEq(RegExp("", "gimy").toString(), "/(?:)/gimy");
assertEq(RegExp("\n\r").toString(), "/\\n\\r/");
assertEq(RegExp("\u2028\u2029").toString(), "/\\u2028\\u2029/");
assertEq(RegExp("/").toString(), "/\\//");

assertThrowsInstanceOf(() => RegExp.prototype.toString.call(), TypeError);
assertThrowsInstanceOf(() => RegExp.prototype.toString.call(1), TypeError);
assertThrowsInstanceOf(() => RegExp.prototype.toString.call(""), TypeError);
assertEq(RegExp.prototype.toString.call({}), "/undefined/undefined");
assertEq(RegExp.prototype.toString.call({ source:"foo", flags:"bar" }), "/foo/bar");

var a = [];
var p = new Proxy({}, {
  get(that, name) {
    a.push(name);
    return name;
  }
});
assertEq(RegExp.prototype.toString.call(p), "/source/flags");
assertEq(a.join(","), "source,flags");

if (typeof reportCompare === "function")
    reportCompare(true, true);
