Invalid flags in a RegExp literal should be an early SyntaxError
[WebKit-https.git] / JSTests / stress / dataview-get-cse.js
1 "use strict";
2
3 function assert(b) {
4     if (!b)
5         throw new Error;
6 }
7
8
9 function test1() {
10     function foo(dv) {
11         return [dv.getFloat32(0), dv.getFloat64(0)];
12     }
13     noInline(foo);
14
15     let ab = new ArrayBuffer(8);
16     let dv = new DataView(ab);
17     dv.setFloat64(0, 128431.42342189432, false);
18     for (let i = 0; i < 10000; ++i) {
19         let result = foo(dv);
20         assert(result[0] !== result[1]);
21     }
22 }
23 test1();
24
25 function test2() {
26     function foo(dv) {
27         return [dv.getFloat32(0), dv.getFloat32(0)];
28     }
29     noInline(foo);
30
31     let ab = new ArrayBuffer(8);
32     let dv = new DataView(ab);
33     dv.setFloat64(0, 128431.42342189432, false);
34     for (let i = 0; i < 10000; ++i) {
35         let result = foo(dv);
36         assert(result[0] === result[1]);
37     }
38 }
39 test2();
40
41 function test3() {
42     function foo(dv, ta) {
43         let a = dv.getFloat64(0, true);
44         ta[0] = Math.PI;
45         let b = dv.getFloat64(0, true);
46         return [a, b];
47     }
48     noInline(foo);
49
50     let ab = new ArrayBuffer(8);
51     let dv = new DataView(ab);
52     let ta = new Float64Array(ab);
53     for (let i = 0; i < 40000; ++i) {
54         dv.setFloat64(0, 0.0, true);
55         let result = foo(dv, ta);
56         assert(result[0] === 0.0);
57         assert(result[1] === Math.PI);
58     }
59 }
60 test3();
61
62 function test4() {
63     function foo(dv) {
64         let a = dv.getInt32(0, true);
65         let b = dv.getInt32(0, false);
66         return [a, b];
67     }
68     noInline(foo);
69
70     let ab = new ArrayBuffer(8);
71     let dv = new DataView(ab);
72     dv.setInt32(0, 0x11223344, true);
73     for (let i = 0; i < 40000; ++i) {
74         let result = foo(dv);
75         assert(result[0] === 0x11223344);
76         assert(result[1] === 0x44332211)
77     }
78 }
79 test4();
80
81 function test5() {
82     function foo(dv, littleEndian) {
83         let a = dv.getInt32(0, littleEndian);
84         let b = dv.getInt32(0, !littleEndian);
85         return [a, b];
86     }
87     noInline(foo);
88
89     let ab = new ArrayBuffer(8);
90     let dv = new DataView(ab);
91     dv.setInt32(0, 0x11223344, true);
92     for (let i = 0; i < 40000; ++i) {
93         let result = foo(dv, true);
94         assert(result[0] === 0x11223344);
95         assert(result[1] === 0x44332211)
96     }
97 }
98 test5();
99
100 function test6() {
101     function foo(dv, littleEndian) {
102         let a = dv.getInt32(0, littleEndian);
103         let b = dv.getInt32(0, littleEndian);
104         return [a, b];
105     }
106     noInline(foo);
107
108     let ab = new ArrayBuffer(8);
109     let dv = new DataView(ab);
110     dv.setInt32(0, 0x11223344, true);
111     for (let i = 0; i < 40000; ++i) {
112         let result = foo(dv, true);
113         assert(result[0] === 0x11223344);
114         assert(result[1] === 0x11223344)
115     }
116 }
117 test6();
118
119 function test7() {
120     function foo(dv) {
121         let a = dv.getInt32(0, true);
122         let b = dv.getInt32(4, true);
123         return [a, b];
124     }
125     noInline(foo);
126
127     let ab = new ArrayBuffer(8);
128     let dv = new DataView(ab);
129     dv.setInt32(0, 0x11223344, true);
130     dv.setInt32(4, 0x12121212, true);
131     for (let i = 0; i < 40000; ++i) {
132         let result = foo(dv, true);
133         assert(result[0] === 0x11223344);
134         assert(result[1] === 0x12121212);
135     }
136 }
137 test7();