Invalid flags in a RegExp literal should be an early SyntaxError
[WebKit-https.git] / JSTests / stress / big-int-unary-plus.js
1 //@ runBigIntEnabled
2
3 function assert(a) {
4     if (!a)
5         throw new Error("Bad!")
6 }
7
8 function assertTypeError(input) {
9     try {
10         let a = +input;
11         assert(false);
12     } catch(e) {
13         assert(e instanceof TypeError);
14     }
15 }
16
17 assertTypeError(10n);
18 assertTypeError(-10n);
19 assertTypeError(Object(10n));
20 assertTypeError(Object(-10n));
21
22 let obj = {
23     [Symbol.toPrimitive]: function() {
24         return 1n;
25     },
26     valueOf: function() {
27         throw new Error("Should never be called");
28     },
29     toString: function() {
30         throw new Error("Should never be called");
31     }
32 };
33 assertTypeError(obj);
34
35 obj = {
36     valueOf: function() {
37         return 1n;
38     },
39     toString: function() {
40         throw new Error("Should never be called");
41     }
42 };
43 assertTypeError(obj);
44
45 obj = {
46     toString: function() {
47         return 1n;
48     }
49 };
50 assertTypeError(obj);
51