[ARM,MIPS] Skip slow tests
[WebKit-https.git] / JSTests / stress / array-buffer-byte-length.js
1 //@ skip
2 function shouldBe(actual, expected)
3 {
4     if (actual !== expected)
5         throw new Error(`bad value: ${String(actual)}`);
6 }
7
8 function shouldThrow(func, errorMessage)
9 {
10     var errorThrown = false;
11     var error = null;
12     try {
13         func();
14     } catch (e) {
15         errorThrown = true;
16         error = e;
17     }
18     if (!errorThrown)
19         throw new Error('not thrown');
20     if (String(error) !== errorMessage)
21         throw new Error(`bad error: ${String(error)}`);
22 }
23
24 {
25     let arrayBuffer = new ArrayBuffer(42);
26     let sharedArrayBuffer = new SharedArrayBuffer(500);
27     shouldBe(arrayBuffer.byteLength, 42);
28     shouldBe(sharedArrayBuffer.byteLength, 500);
29     shouldBe(ArrayBuffer.prototype.hasOwnProperty('byteLength'), true);
30     shouldBe(SharedArrayBuffer.prototype.hasOwnProperty('byteLength'), true);
31
32     shouldBe(arrayBuffer.hasOwnProperty('byteLength'), false);
33     shouldBe(sharedArrayBuffer.hasOwnProperty('byteLength'), false);
34
35     shouldBe(!!Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get, true);
36     shouldBe(!!Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength').get, true);
37
38     shouldBe(!!Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').set, false);
39     shouldBe(!!Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength').set, false);
40
41     shouldBe(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get !== Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength').get, true);
42
43     shouldThrow(() => {
44         Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get.call(sharedArrayBuffer);
45     }, `TypeError: Receiver should not be a shared array buffer`);
46
47     shouldThrow(() => {
48         Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength').get.call(arrayBuffer);
49     }, `TypeError: Receiver should be a shared array buffer`);
50
51     for (let value of [ 0, true, "Cocoa", null, undefined, Symbol("Cappuccino") ]) {
52         shouldThrow(() => {
53             Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get.call(value);
54         }, `TypeError: Receiver should be an array buffer but was not an object`);
55         shouldThrow(() => {
56             Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength').get.call(value);
57         }, `TypeError: Receiver should be an array buffer but was not an object`);
58     }
59
60     shouldThrow(() => {
61         Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get.call({});
62     }, `TypeError: Receiver should be an array buffer`);
63     shouldThrow(() => {
64         Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength').get.call({});
65     }, `TypeError: Receiver should be an array buffer`);
66 }