Source code

Revision control

Copy as Markdown

Other Tools

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 {
toString() {
a.push(name + "-tostring");
return name;
}
};
}
});
assertEq(RegExp.prototype.toString.call(p), "/source/flags");
assertEq(a.join(","), "source,source-tostring,flags,flags-tostring");
if (typeof reportCompare === "function")
reportCompare(true, true);