blob: 422d6fc8b00d6a7acb5b6ff36dd8241da28a3c3a [file] [log] [blame]
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);