| Index: LayoutTests/fast/canvas/webgl/array-unit-tests.html
|
| ===================================================================
|
| --- LayoutTests/fast/canvas/webgl/array-unit-tests.html (revision 138669)
|
| +++ LayoutTests/fast/canvas/webgl/array-unit-tests.html (working copy)
|
| @@ -70,6 +70,7 @@
|
| }
|
|
|
| try {
|
| + running('testSlice');
|
| var buffer = new ArrayBuffer(32);
|
| var array = new Int8Array(buffer);
|
| for (var i = 0; i < 32; ++i)
|
| @@ -102,6 +103,7 @@
|
| test("buffer.slice(-20, -8)", 12, 12);
|
| test("buffer.slice(-40, 16)", 0, 16);
|
| test("buffer.slice(-40, 40)", 0, 32);
|
| + pass();
|
| } catch (e) {
|
| fail(e);
|
| }
|
| @@ -218,11 +220,11 @@
|
| var expectedResults;
|
|
|
| if (unsigned) {
|
| - sourceData = [0.6, 10.6];
|
| + sourceData = [0.6, 10.6, 0.2, 10.2, 10.5, 11.5];
|
| if (type === Uint8ClampedArray) {
|
| - expectedResults = [1, 11];
|
| + expectedResults = [1, 11, 0, 10, 10, 12];
|
| } else {
|
| - expectedResults = [0, 10];
|
| + expectedResults = [0, 10, 0, 10, 10, 11];
|
| }
|
| } else {
|
| sourceData = [0.6, 10.6, -0.6, -10.6];
|
| @@ -552,6 +554,22 @@
|
| }
|
| }
|
|
|
| +function shouldThrowTypeError(func, text) {
|
| + var ok = false;
|
| + try {
|
| + func();
|
| + } catch (e) {
|
| + if (e instanceof TypeError) {
|
| + ok = true;
|
| + }
|
| + }
|
| + if (ok) {
|
| + testPassed(text + " threw TypeError");
|
| + } else {
|
| + testFailed(text + " should throw TypeError");
|
| + }
|
| +}
|
| +
|
| function testConstructionWithOutOfRangeValues(type, name) {
|
| shouldThrowIndexSizeErr(function() {
|
| var buffer = new ArrayBuffer(4);
|
| @@ -901,6 +919,34 @@
|
| }
|
| }
|
|
|
| +function testInheritanceHierarchy() {
|
| + debug('test inheritance hierarchy of typed array views');
|
| +
|
| + try {
|
| + var foo = ArrayBufferView;
|
| + testPassed('ArrayBufferView does not have [NoInterfaceObject] extended attribute and should be defined');
|
| +
|
| + shouldBe('new Int8Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Uint8Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Uint8ClampedArray(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Int16Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Uint16Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Int32Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Uint32Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Float32Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new Float64Array(1) instanceof ArrayBufferView', 'true');
|
| + shouldBe('new DataView(new ArrayBuffer(8)) instanceof ArrayBufferView', 'true');
|
| +
|
| + shouldThrowTypeError(function() { new ArrayBufferView() }, "new ArrayBufferView()");
|
| + } catch (e) {
|
| + testFailed('ArrayBufferView does not have [NoInterfaceObject] extended attribute but was not defined');
|
| + }
|
| +
|
| + // There is currently only one kind of view that inherits from another
|
| + shouldBe('new Uint8ClampedArray(1) instanceof Uint8Array', 'true');
|
| +}
|
| +
|
| +
|
| //
|
| // Test driver
|
| //
|
| @@ -909,6 +955,7 @@
|
| allPassed = true;
|
|
|
| testSlice();
|
| + testInheritanceHierarchy();
|
|
|
| // The "name" attribute is a concession to browsers which don't
|
| // implement the "name" property on function objects
|
|
|