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

Unified Diff: test/mjsunit/harmony/typedarrays.js

Issue 17153011: DataView implementation. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixes Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/mjsunit/harmony/dataview-accessors.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/harmony/typedarrays.js
diff --git a/test/mjsunit/harmony/typedarrays.js b/test/mjsunit/harmony/typedarrays.js
index c5c19e161f64c75bf1b70c49133f0c67af458425..e1048ecfaf36ba445d55bc7701b0e9f838a922ae 100644
--- a/test/mjsunit/harmony/typedarrays.js
+++ b/test/mjsunit/harmony/typedarrays.js
@@ -25,8 +25,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --harmony-typed-arrays
-
// ArrayBuffer
function TestByteLength(param, expectedByteLength) {
@@ -457,6 +455,83 @@ function TestTypedArraySet() {
TestTypedArraySet();
+// DataView
+function TestDataViewConstructor() {
+ var ab = new ArrayBuffer(256);
+
+ var d1 = new DataView(ab, 1, 255);
+ assertSame(ab, d1.buffer);
+ assertSame(1, d1.byteOffset);
+ assertSame(255, d1.byteLength);
+
+ var d2 = new DataView(ab, 2);
+ assertSame(ab, d2.buffer);
+ assertSame(2, d2.byteOffset);
+ assertSame(254, d2.byteLength);
+
+ var d3 = new DataView(ab);
+ assertSame(ab, d3.buffer);
+ assertSame(0, d3.byteOffset);
+ assertSame(256, d3.byteLength);
+
+ var d3a = new DataView(ab, 1, 0);
+ assertSame(ab, d3a.buffer);
+ assertSame(1, d3a.byteOffset);
+ assertSame(0, d3a.byteLength);
+
+ var d3b = new DataView(ab, 256, 0);
+ assertSame(ab, d3b.buffer);
+ assertSame(256, d3b.byteOffset);
+ assertSame(0, d3b.byteLength);
+
+ var d3c = new DataView(ab, 256);
+ assertSame(ab, d3c.buffer);
+ assertSame(256, d3c.byteOffset);
+ assertSame(0, d3c.byteLength);
+
+ // weird args
+ var d4 = new DataView(ab, -1);
+ assertSame(ab, d4.buffer);
+ assertSame(0, d4.byteOffset);
+ assertSame(256, d4.byteLength);
+
+ var d5 = new DataView(ab, 1, -1);
+ assertSame(ab, d5.buffer);
+ assertSame(1, d5.byteOffset);
+ assertSame(0, d5.byteLength);
+
+ var d6 = new DataView(ab, 1, 3.1415926);
+ assertSame(ab, d6.buffer);
+ assertSame(1, d6.byteOffset);
+ assertSame(3, d6.byteLength);
+
+
+ // error cases
+ assertThrows(function() { new DataView(); }, TypeError);
+ assertThrows(function() { new DataView([]); }, TypeError);
+ assertThrows(function() { new DataView(ab, 257); }, RangeError);
+ assertThrows(function() { new DataView(ab, 1, 1024); }, RangeError);
+}
+
+TestDataViewConstructor();
+
+function TestDataViewPropertyTypeChecks() {
+ var a = new DataView(new ArrayBuffer(10));
+ function CheckProperty(name) {
+ var d = Object.getOwnPropertyDescriptor(DataView.prototype, name);
+ var o = {}
+ assertThrows(function() {d.get.call(o);}, TypeError);
+ d.get.call(a); // shouldn't throw
+ }
+
+ CheckProperty("buffer");
+ CheckProperty("byteOffset");
+ CheckProperty("byteLength");
+}
+
+
+TestDataViewPropertyTypeChecks();
+
// General tests for properties
// Test property attribute [[Enumerable]]
@@ -475,6 +550,7 @@ TestEnumerable(ArrayBuffer, new ArrayBuffer());
for(i = 0; i < typedArrayConstructors.lenght; i++) {
TestEnumerable(typedArrayConstructors[i]);
}
+TestEnumerable(DataView, new DataView(new ArrayBuffer()));
// Test arbitrary properties on ArrayBuffer
function TestArbitrary(m) {
@@ -491,8 +567,9 @@ TestArbitrary(new ArrayBuffer(256));
for(i = 0; i < typedArrayConstructors.lenght; i++) {
TestArbitary(new typedArrayConstructors[i](10));
}
-
+TestArbitrary(new DataView(new ArrayBuffer(256)));
// Test direct constructor call
assertTrue(ArrayBuffer() instanceof ArrayBuffer);
+assertTrue(DataView(new ArrayBuffer()) instanceof DataView);
« no previous file with comments | « test/mjsunit/harmony/dataview-accessors.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698