| var BUGNUMBER = 1120169; |
| var summary = "Implement RegExp.prototype.source"; |
| |
| print(BUGNUMBER + ": " + summary); |
| |
| assertEq(RegExp.prototype.source, "(?:)"); |
| assertEq(/foo/.source, "foo"); |
| assertEq(/foo/iymg.source, "foo"); |
| assertEq(/\//.source, "\\/"); |
| assertEq(/\n\r/.source, "\\n\\r"); |
| assertEq(/\u2028\u2029/.source, "\\u2028\\u2029"); |
| assertEq(RegExp("").source, "(?:)"); |
| assertEq(RegExp("", "mygi").source, "(?:)"); |
| assertEq(RegExp("/").source, "\\/"); |
| assertEq(RegExp("\n\r").source, "\\n\\r"); |
| assertEq(RegExp("\u2028\u2029").source, "\\u2028\\u2029"); |
| |
| assertThrowsInstanceOf(() => genericSource(), TypeError); |
| assertThrowsInstanceOf(() => genericSource(1), TypeError); |
| assertThrowsInstanceOf(() => genericSource(""), TypeError); |
| assertThrowsInstanceOf(() => genericSource({}), TypeError); |
| assertThrowsInstanceOf(() => genericSource(new Proxy(/foo/, {get(){ return true; }})), TypeError); |
| |
| function genericSource(obj) { |
| return Object.getOwnPropertyDescriptor(RegExp.prototype, "source").get.call(obj); |
| } |
| |
| if (typeof reportCompare === "function") |
| reportCompare(true, true); |