aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
authorNobuaki Sukegawa <nsukeg@gmail.com>2015-09-20 12:16:34 +0900
committerLars Knoll <lars.knoll@theqtcompany.com>2015-09-21 13:48:35 +0000
commit8614d4d8362e2fbc56f6b027d310a0d8f11a212f (patch)
tree73712611a216fb1dbb1b863959a462098eb2f25f /tests/manual
parentc5b083b2a256823f4f47fcaa3140d4f79d99029f (diff)
Add DataView unsigned integer getter/setters with correct casings
According to the spec, unsigned integer getter/setters should be cased "Uint". http://www.ecma-international.org/ecma-262/6.0/#sec-dataview.prototype.getuint8 For backword compatibility, this diff does not remove mis-cased methods. Change-Id: I8e65dca12b8358376dbb3c519246c8abca0d47b0 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'tests/manual')
-rw-r--r--tests/manual/v4/typedarrays.js35
1 files changed, 32 insertions, 3 deletions
diff --git a/tests/manual/v4/typedarrays.js b/tests/manual/v4/typedarrays.js
index d52fd6bab0..8cf2b8c75a 100644
--- a/tests/manual/v4/typedarrays.js
+++ b/tests/manual/v4/typedarrays.js
@@ -51,11 +51,13 @@ function assertTrue(b) {
throw "assertTrue failed:" + b
}
-function assertEquals(a, b) {
+function assertEquals(a, b, delta) {
if (isNaN(a) && isNaN(b))
return
- if (a !== b)
+ if (!delta && a !== b)
throw "assertEquals failed:" + a + "!==" + b
+ else if (Math.abs(a - b) > delta)
+ throw "assertEquals failed: Math.abs(" + a + " - " + b + ") > " + delta
}
function assertArrayEquals(a, b)
@@ -700,9 +702,36 @@ function TestDataViewPropertyTypeChecks() {
CheckProperty("byteLength");
}
-
TestDataViewPropertyTypeChecks();
+function TestDataGetterSetters() {
+ var a = new DataView(new ArrayBuffer(16));
+ function TestGetterSetter(size, name, value0, value1, delta1, delta2) {
+ var getter = 'get' + name;
+ var setter = 'set' + name;
+ a[setter](0, value0);
+ a[setter](size, value1);
+ assertEquals(value0, a[getter](0), delta1);
+ assertEquals(value1, a[getter](size), delta2);
+ }
+
+ TestGetterSetter(1, 'Int8', 111, -100);
+ TestGetterSetter(2, 'Int16', 31111, -30000);
+ TestGetterSetter(4, 'Int32', 2111111111, -2000000000);
+ TestGetterSetter(1, 'Uint8', 111, 200);
+ TestGetterSetter(2, 'Uint16', 31111, 60000);
+ TestGetterSetter(4, 'Uint32', 2111111111, 4000000000);
+ TestGetterSetter(4, 'Float32', Math.pow(10, 38), Math.pow(10, -38), Math.pow(10, 31), Math.pow(10, -45));
+ TestGetterSetter(8, 'Float64', Math.pow(10, 308), Math.pow(10, -293), Math.pow(10, 293), Math.pow(10, -308));
+
+ // Backword compatibility
+ TestGetterSetter(1, 'UInt8', 111, 200);
+ TestGetterSetter(2, 'UInt16', 31111, 60000);
+ TestGetterSetter(4, 'UInt32', 2111111111, 4000000000);
+}
+
+TestDataGetterSetters();
+
// General tests for properties
// Test property attribute [[Enumerable]]