Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: test/mjsunit/harmony/dataview.js

Issue 15943002: v8 typed arrays: add DataView type (Closed)
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are
4 // met:
5 //
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided
11 // with the distribution.
12 // * Neither the name of Google Inc. nor the names of its
13 // contributors may be used to endorse or promote products derived
14 // from this software without specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28 // Flags: --allow-natives-syntax --harmony-typed-arrays
29
30 assertThrows("DataView()", TypeError);
31 assertThrows("DataView({})", TypeError);
32
33 var view = DataView(ArrayBuffer(8));
34 assertEquals(0, view.getInt8(7));
35 assertEquals(0, view.getUint8(7));
36 assertEquals(0, view.getInt16(6));
37 assertEquals(0, view.getUint16(6));
38 assertEquals(0, view.getInt32(4));
39 assertEquals(0, view.getUint32(4));
40 assertEquals(0, view.getFloat32(4));
41 assertEquals(0, view.getFloat64(0));
42
43 assertThrows("view.getInt8()", TypeError);
44 assertThrows("view.getUint8()", TypeError);
45 assertThrows("view.getInt16()", TypeError);
46 assertThrows("view.getUint16()", TypeError);
47 assertThrows("view.getInt32()", TypeError);
48 assertThrows("view.getUint32()", TypeError);
49 assertThrows("view.getFloat32()", TypeError);
50 assertThrows("view.getFloat64()", TypeError);
51
52 assertThrows("view.getInt8(-1)", RangeError);
53 assertThrows("view.getUint8(-1)", RangeError);
54 assertThrows("view.getInt16(-1)", RangeError);
55 assertThrows("view.getUint16(-1)", RangeError);
56 assertThrows("view.getInt32(-1)", RangeError);
57 assertThrows("view.getUint32(-1)", RangeError);
58 assertThrows("view.getFloat32(-1)", RangeError);
59 assertThrows("view.getFloat64(-1)", RangeError);
60
61 assertThrows("view.getInt8(8)", RangeError);
62 assertThrows("view.getUint8(8)", RangeError);
63 assertThrows("view.getInt16(7)", RangeError);
64 assertThrows("view.getUint16(7)", RangeError);
65 assertThrows("view.getInt32(5)", RangeError);
66 assertThrows("view.getUint32(5)", RangeError);
67 assertThrows("view.getFloat32(5)", RangeError);
68 assertThrows("view.getFloat64(1)", RangeError);
69
70 view.setInt8(7, 0x12);
71 view.setUint8(7, 0x12);
72 view.setInt16(6, 0x1234);
73 view.setUint8(6, 0x1234);
74 view.setInt32(4, 0x12345678);
75 view.setUint32(4, 0x12345678);
76 view.setFloat32(4, 0x12345678);
77 view.setFloat64(0, 0x1234567890abcdef);
78 assertEquals(view.getFloat64(0), 0x1234567890abcdef);
79
80 assertThrows("view.setInt8()", TypeError);
81 assertThrows("view.setUint8()", TypeError);
82 assertThrows("view.setInt16()", TypeError);
83 assertThrows("view.setUint16()", TypeError);
84 assertThrows("view.setInt32()", TypeError);
85 assertThrows("view.setUint32()", TypeError);
86 assertThrows("view.setFloat32()", TypeError);
87 assertThrows("view.setFloat64()", TypeError);
88
89 assertThrows("view.setInt8(-1)", TypeError);
90 assertThrows("view.setUint8(-1)", TypeError);
91 assertThrows("view.setInt16(-1)", TypeError);
92 assertThrows("view.setUint16(-1)", TypeError);
93 assertThrows("view.setInt32(-1)", TypeError);
94 assertThrows("view.setUint32(-1)", TypeError);
95 assertThrows("view.setFloat32(-1)", TypeError);
96 assertThrows("view.setFloat64(-1)", TypeError);
97
98 assertThrows("view.setInt8(-1, 0)", RangeError);
99 assertThrows("view.setUint8(-1, 0)", RangeError);
100 assertThrows("view.setInt16(-1, 0)", RangeError);
101 assertThrows("view.setUint16(-1, 0)", RangeError);
102 assertThrows("view.setInt32(-1, 0)", RangeError);
103 assertThrows("view.setUint32(-1, 0)", RangeError);
104 assertThrows("view.setFloat32(-1, 0)", RangeError);
105 assertThrows("view.setFloat64(-1, 0)", RangeError);
106
107 assertThrows("view.setInt8(8, 0)", RangeError);
108 assertThrows("view.setUint8(8, 0)", RangeError);
109 assertThrows("view.setInt16(7, 0)", RangeError);
110 assertThrows("view.setUint16(7, 0)", RangeError);
111 assertThrows("view.setInt32(5, 0)", RangeError);
112 assertThrows("view.setUint32(5, 0)", RangeError);
113 assertThrows("view.setFloat32(5, 0)", RangeError);
114 assertThrows("view.setFloat64(1, 0)", RangeError);
115
116 view.setInt32(0, 0x12345678);
117 view.setInt32(4, 0x90abcdef);
118
119 assertEquals(0x12, view.getUint8(0));
120 assertEquals(0x34, view.getUint8(1));
121 assertEquals(0x56, view.getUint8(2));
122 assertEquals(0x78, view.getUint8(3));
123 assertEquals(0x1234, view.getUint16(0));
124 assertEquals(0x5678, view.getUint16(2));
125 assertEquals(0x12345678, view.getUint32(0));
126
127 view.setFloat32(0, NaN);
128 assertTrue(isNaN(view.getFloat32(0)));
129 view.setFloat64(0, NaN);
130 assertTrue(isNaN(view.getFloat64(0)));
131
132 view.setFloat32(0, "bad");
133 assertTrue(isNaN(view.getFloat32(0)));
134 view.setFloat64(0, "bad");
135 assertTrue(isNaN(view.getFloat64(0)));
136
137 for (var i = 0; i < view.byteLength; ++i) view.setUint8(i, i);
138 assertEquals(0, view.getUint8(+Infinity));
139 assertEquals(0, view.getUint8(-Infinity));
140 assertEquals(0, view.getUint8(NaN));
141 assertEquals(0, view.getUint8(0.0));
142 assertEquals(0, view.getUint8(0.1));
143 assertEquals(0, view.getUint8(0.9));
144 assertEquals(1, view.getUint8(1.0));
OLDNEW
« test/cctest/test-api.cc ('K') | « test/cctest/test-api.cc ('k') | tools/gyp/v8.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698