1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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);
|