[JSC] Do not use asArrayModes() with Structures because it discards TypedArray inform...
[WebKit-https.git] / JSTests / stress / dfg-put-getter-by-id-class.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error('bad value: ' + actual);
4 }
5
6 function testAttribute(object, name, type) {
7     shouldBe(Reflect.has(object, name), true);
8     let desc = Reflect.getOwnPropertyDescriptor(object, name);
9     shouldBe(desc.configurable, true);
10     shouldBe(desc.enumerable, false);
11     if (type === 'get') {
12         shouldBe(typeof desc.get, 'function');
13         shouldBe(typeof desc.set, 'undefined');
14     } else if (type === 'set') {
15         shouldBe(typeof desc.get, 'undefined');
16         shouldBe(typeof desc.set, 'function');
17     } else {
18         shouldBe(typeof desc.get, 'function');
19         shouldBe(typeof desc.set, 'function');
20     }
21 }
22 noInline(testAttribute);
23
24 function getter(name)
25 {
26     class Cocoa {
27         constructor() {
28             this.ok = 42;
29         }
30         get hello() {
31             return this.ok;
32         }
33         get [name]() {
34         }
35     }
36
37     let object = new Cocoa();
38     testAttribute(object.__proto__, 'hello', 'get');
39     testAttribute(object.__proto__, 'dummy', 'get');
40     return object.hello;
41 }
42 noInline(getter);
43
44 for (var i = 0; i < 10000; ++i)
45     shouldBe(getter('dummy'), 42);