| 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); |