OLD | NEW |
1 function verifyArray(ta, length) { | 1 function verifyArray(ta, length) { |
| 2 var i; |
2 for (i = 0; i < length; ++i) { | 3 for (i = 0; i < length; ++i) { |
3 if (ta[i] != i) { | 4 if (ta[i] != i) { |
4 postMessage("FAIL: Transferred data is incorrect. Expected " + | 5 postMessage("FAIL: Transferred data is incorrect. Expected " + |
5 i + " got " + ta[i]); | 6 i + " got " + ta[i]); |
6 return; | 7 return; |
7 } | 8 } |
8 } | 9 } |
9 postMessage("PASS: Transferred data is OK."); | 10 postMessage("PASS: Transferred data is OK."); |
10 } | 11 } |
11 | 12 |
12 function verifyArrayType(ta, name) { | 13 function verifyArrayType(ta, name) { |
13 var className = Object.prototype.toString.call(ta); | 14 var className = Object.prototype.toString.call(ta); |
14 if (className.indexOf(name) != -1) | 15 if (className.indexOf(name) != -1) |
15 postMessage("PASS: Transferred array type is OK."); | 16 postMessage("PASS: Transferred array type is OK."); |
16 else | 17 else |
17 postMessage("FAIL: Expected array type " + name + " got " + className); | 18 postMessage("FAIL: Expected array type " + name + " got " + className); |
18 } | 19 } |
19 | 20 |
20 self.addEventListener('message', function(e) { | 21 self.addEventListener('message', function(e) { |
21 var i; | 22 var ab; |
22 var sab; | 23 var sab; |
| 24 var sab2; |
23 var ta; | 25 var ta; |
24 | 26 |
25 switch (e.data.name) { | 27 switch (e.data.name) { |
26 case 'SharedArrayBuffer': | 28 case 'SharedArrayBuffer': |
27 sab = e.data.data; | 29 sab = e.data.data; |
28 ta = new Uint8Array(sab); | 30 ta = new Uint8Array(sab); |
29 verifyArray(ta, e.data.length); | 31 verifyArray(ta, e.data.length); |
30 break; | 32 break; |
31 | 33 |
32 case 'Int8Array': | 34 case 'Int8Array': |
33 case 'Uint8Array': | 35 case 'Uint8Array': |
34 case 'Uint8ClampedArray': | 36 case 'Uint8ClampedArray': |
35 case 'Int16Array': | 37 case 'Int16Array': |
36 case 'Uint16Array': | 38 case 'Uint16Array': |
37 case 'Int32Array': | 39 case 'Int32Array': |
38 case 'Uint32Array': | 40 case 'Uint32Array': |
39 case 'Float32Array': | 41 case 'Float32Array': |
40 case 'Float64Array': | 42 case 'Float64Array': |
41 ta = e.data.data; | 43 ta = e.data.data; |
42 verifyArrayType(ta, e.data.name); | 44 verifyArrayType(ta, e.data.name); |
43 verifyArray(ta, e.data.length); | 45 verifyArray(ta, e.data.length); |
44 break; | 46 break; |
45 | 47 |
| 48 case 'ArrayBufferAndSharedArrayBuffer': |
| 49 ab = e.data.ab; |
| 50 sab = e.data.sab; |
| 51 verifyArray(new Uint8Array(ab), e.data.abByteLength); |
| 52 verifyArray(new Uint8Array(sab), e.data.sabByteLength); |
| 53 break; |
| 54 |
| 55 case 'SharedArrayBufferTwice': |
| 56 sab = e.data.sab; |
| 57 sab2 = e.data.sab2; |
| 58 if (sab !== sab2) { |
| 59 postMessage('FAIL: Expected two SharedArrayBuffers to be equal.'
); |
| 60 } |
| 61 verifyArray(new Uint8Array(sab), e.data.sabByteLength); |
| 62 break; |
| 63 |
46 default: | 64 default: |
47 postMessage("ERROR: unknown command " + e.data.name); | 65 postMessage("ERROR: unknown command " + e.data.name); |
48 break; | 66 break; |
49 } | 67 } |
50 postMessage("DONE"); | 68 postMessage("DONE"); |
51 }); | 69 }); |
OLD | NEW |