Invalid flags in a RegExp literal should be an early SyntaxError
[WebKit-https.git] / JSTests / stress / builtin-function-name.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error('bad value: ' + actual);
4 }
5
6 function shouldThrow(func, errorMessage) {
7     var errorThrown = false;
8     var error = null;
9     try {
10         func();
11     } catch (e) {
12         errorThrown = true;
13         error = e;
14     }
15     if (!errorThrown)
16         throw new Error('not thrown');
17     if (String(error) !== errorMessage)
18         throw new Error(`bad error: ${String(error)}`);
19 }
20
21 {
22     shouldBe(JSON.stringify(Object.getOwnPropertyNames(Array.prototype.filter).sort()), `["length","name"]`);
23     shouldBe(Array.prototype.filter.name, "filter");
24     shouldBe(JSON.stringify(Object.getOwnPropertyDescriptor(Array.prototype.filter, 'name')), `{"value":"filter","writable":false,"enumerable":false,"configurable":true}`);
25     shouldBe(delete Array.prototype.filter.name, true);
26     shouldBe(JSON.stringify(Object.getOwnPropertyNames(Array.prototype.filter).sort()), `["length"]`);
27 }
28
29 {
30     shouldThrow(function () {
31         "use strict";
32         Array.prototype.forEach.name = 42;
33     }, `TypeError: Attempted to assign to readonly property.`);
34 }
35
36 {
37     var resolve = null;
38     var reject = null;
39     new Promise(function (arg0, arg1) {
40         resolve = arg0;
41         reject = arg1;
42     });
43     shouldBe(Object.getOwnPropertyDescriptor(resolve, 'name'), undefined);
44     shouldBe(Object.getOwnPropertyDescriptor(reject, 'name'), undefined);
45 }