[JSC] Clean up Object.entries implementation
[WebKit-https.git] / JSTests / microbenchmarks / regexp-prototype-is-not-instance.js
1 //@ runNoFTL
2
3 function stringify(x) {
4     if (typeof x == "string")
5         return '"' + x + '"';
6     return x;
7 }
8
9 function assert(actual, expected) {
10     if (actual !== expected)
11         throw Error("FAIL: expected " + stringify(expected) + ", actual " + stringify(actual));
12 }
13
14 function assertThrows(func, expectedErrMsg) {
15     let actualErrMsg;
16     try {
17         func();
18         throw("FAIL: did not throw");
19     } catch(e) {
20         actualErrMsg = e.toString();
21     }
22     assert(actualErrMsg, expectedErrMsg);
23 }
24
25 assert(RegExp.prototype instanceof RegExp, false);
26
27 assert(RegExp.prototype.flags, "");
28 assert(RegExp.prototype.global, void 0);
29 assert(RegExp.prototype.ignoreCase, void 0);
30 assert(RegExp.prototype.multiline, void 0);
31 assert(RegExp.prototype.unicode, void 0);
32 assert(RegExp.prototype.sticky, void 0);
33 assert(RegExp.prototype.source, "(?:)");
34 assert(RegExp.prototype.toString(), "/(?:)/");
35
36 assert(Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call({}), "");
37
38 assertThrows(() => {
39         Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(1);
40     }, 
41     "TypeError: The RegExp.prototype.flags getter can only be called on an object");
42
43 assertThrows(() => {
44         Object.getOwnPropertyDescriptor(RegExp.prototype, 'ignoreCase').get.call({});
45     },
46     "TypeError: The RegExp.prototype.ignoreCase getter can only be called on a RegExp object");
47
48 assertThrows(() => {
49         Object.getOwnPropertyDescriptor(RegExp.prototype, 'multiline').get.call({});
50     },
51     "TypeError: The RegExp.prototype.multiline getter can only be called on a RegExp object");
52
53 assertThrows(() => {
54         Object.getOwnPropertyDescriptor(RegExp.prototype, 'unicode').get.call({});
55     },
56     "TypeError: The RegExp.prototype.unicode getter can only be called on a RegExp object");
57
58 assertThrows(() => {
59         Object.getOwnPropertyDescriptor(RegExp.prototype, 'sticky').get.call({});
60     },
61     "TypeError: The RegExp.prototype.sticky getter can only be called on a RegExp object");
62
63 assertThrows(() => {
64         Object.getOwnPropertyDescriptor(RegExp.prototype, 'source').get.call({});
65     },
66     "TypeError: The RegExp.prototype.source getter can only be called on a RegExp object");
67
68 assertThrows(() => {
69         Object.getOwnPropertyDescriptor(RegExp.prototype, 'toString').get.call({});
70     },
71     "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(RegExp.prototype, 'toString').get.call')");