Skip type-check-hoisting-phase-hoist... with no jit
[WebKit-https.git] / JSTests / stress / type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js
1 //@ skip if not $jitTests
2
3 function __isPropertyOfType(obj, name, type) {
4     desc = Object.getOwnPropertyDescriptor(obj, name)
5     return typeof type === 'undefined' || typeof desc.value === type;
6 }
7 function __getProperties(obj, type) {
8     let properties = [];
9     for (let name of Object.getOwnPropertyNames(obj)) {
10         if (__isPropertyOfType(obj, name, type)) properties.push(name);
11     }
12     let proto = Object.getPrototypeOf(obj);
13     while (proto && proto != Object.prototype) {
14         Object.getOwnPropertyNames(proto).forEach(name => {
15         });
16         proto = Object.getPrototypeOf(proto);
17     }
18     return properties;
19 }
20 function* __getObjects(root = this, level = 0) {
21     if (level > 4) return;
22     let obj_names = __getProperties(root, 'object');
23     for (let obj_name of obj_names) {
24         let obj = root[obj_name];
25         yield* __getObjects(obj, level + 1);
26     }
27 }
28 function __getRandomObject() {
29     for (let obj of __getObjects()) {
30     }
31 }
32 var theClass = class {
33     constructor() {
34         if (242487 != null && typeof __getRandomObject() == "object") try {
35         } catch (e) {}
36     }
37 };
38 var childClass = class Class extends theClass {
39     constructor() {
40         var arrow = () => {
41             try {
42                 super();
43             } catch (e) {}
44             this.idValue
45         };
46         arrow()()();
47     }
48 };
49 for (var counter = 0; counter < 1000; counter++) {
50     try {
51         new childClass();
52     } catch (e) {}
53 }