OLD | NEW |
1 window.jsTestIsAsync = true; | 1 window.jsTestIsAsync = true; |
2 | 2 |
3 description('Test transfer of control semantics for ArrayBuffers.'); | 3 description('Test transfer of control semantics for ArrayBuffers.'); |
4 window.testsComplete = 0; | 4 window.testsComplete = 0; |
5 | 5 |
6 var arraySize = 40; | 6 var arraySize = 40; |
7 var arrayOffset = 8; | 7 var arrayOffset = 8; |
8 var arrayEffectiveSize = arraySize - arrayOffset; | 8 var arrayEffectiveSize = arraySize - arrayOffset; |
9 | 9 |
10 var basicBufferTypes = | 10 var basicBufferTypes = |
(...skipping 13 matching lines...) Expand all Loading... |
24 [ | 24 [ |
25 ["Int32", Int32Array, 4], | 25 ["Int32", Int32Array, 4], |
26 ["Uint32", Uint32Array, 4], | 26 ["Uint32", Uint32Array, 4], |
27 ["Int8", Int8Array, 1], | 27 ["Int8", Int8Array, 1], |
28 ["Uint8", Uint8Array, 1], | 28 ["Uint8", Uint8Array, 1], |
29 ["Uint8Clamped", Uint8ClampedArray, 1], | 29 ["Uint8Clamped", Uint8ClampedArray, 1], |
30 ["Int16", Int16Array, 2], | 30 ["Int16", Int16Array, 2], |
31 ["Uint16", Uint16Array, 2], | 31 ["Uint16", Uint16Array, 2], |
32 ["Float32", Float32Array, 4], | 32 ["Float32", Float32Array, 4], |
33 ["Float64", Float64Array, 8], | 33 ["Float64", Float64Array, 8], |
34 ["DataView", DataView, 1] | 34 ["DataView", DataView, 1] |
35 ]; | 35 ]; |
36 | 36 |
37 function isTypedArray(view) | 37 function isTypedArray(view) |
38 { | 38 { |
39 for (var i = 0; i < basicBufferTypes.length; ++i) { | 39 for (var i = 0; i < basicBufferTypes.length; ++i) { |
40 var bufferType = basicBufferTypes[i]; | 40 var bufferType = basicBufferTypes[i]; |
41 if (view instanceof bufferType[1]) { | 41 if (view instanceof bufferType[1]) { |
42 return true; | 42 return true; |
43 } | 43 } |
44 } | 44 } |
45 return false; | 45 return false; |
46 } | 46 } |
47 | 47 |
48 function isDataView(view) | 48 function isDataView(view) |
49 { | 49 { |
50 return (view instanceof DataView); | 50 return (view instanceof DataView); |
51 } | 51 } |
52 | 52 |
53 function isArrayBuffer(buffer) | 53 function isArrayBuffer(buffer) |
54 { | 54 { |
55 return (buffer instanceof ArrayBuffer); | 55 return (buffer instanceof ArrayBuffer); |
56 } | 56 } |
57 | 57 |
| 58 function isDataCloneError(e) |
| 59 { |
| 60 return (e.name === "DataCloneError"); |
| 61 } |
| 62 |
58 function assertBufferClosed(testName, buffer) | 63 function assertBufferClosed(testName, buffer) |
59 { | 64 { |
60 if (buffer === null) { | 65 if (buffer === null) { |
61 return true; | 66 return true; |
62 } | 67 } |
63 if (!isArrayBuffer(buffer)) { | 68 if (!isArrayBuffer(buffer)) { |
64 testFailed(testName + ": not an array buffer (" + buffer + ")"); | 69 testFailed(testName + ": not an array buffer (" + buffer + ")"); |
65 return false; | 70 return false; |
66 } | 71 } |
67 if (buffer.byteLength !== 0 || !(buffer.byteLength === 0)) { | 72 if (buffer.byteLength !== 0 || !(buffer.byteLength === 0)) { |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 return false; | 255 return false; |
251 } | 256 } |
252 return true; | 257 return true; |
253 } | 258 } |
254 | 259 |
255 function wrapFailSend(testName, message, xfer) | 260 function wrapFailSend(testName, message, xfer) |
256 { | 261 { |
257 try { | 262 try { |
258 window.postMessage(message, '*', xfer); | 263 window.postMessage(message, '*', xfer); |
259 } catch (e) { | 264 } catch (e) { |
| 265 if (!isDataCloneError(e)) { |
| 266 testFailed(testName + ": expected postMessage to throw DataCloneErro
r but it didn't."); |
| 267 return false; |
| 268 } |
260 return true; | 269 return true; |
261 } | 270 } |
262 testFailed(testName + ": expected postMessage to fail but it didn't."); | 271 testFailed(testName + ": expected postMessage to fail but it didn't."); |
263 return false; | 272 return false; |
264 } | 273 } |
265 | 274 |
266 var testList = [{ | 275 var testList = [{ |
267 name: "sanity check", | 276 name: "sanity check", |
268 send: function (name) { wrapSend(name, [], []); }, | 277 send: function (name) { wrapSend(name, [], []); }, |
269 test: function (name, e) { return true; } | 278 test: function (name, e) { return true; } |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 } | 456 } |
448 doneTest(); | 457 doneTest(); |
449 } | 458 } |
450 | 459 |
451 window.addEventListener('message', windowHandleMessage); | 460 window.addEventListener('message', windowHandleMessage); |
452 window.testsComplete = -1; | 461 window.testsComplete = -1; |
453 doneTest(); | 462 doneTest(); |
454 | 463 |
455 successfullyParsed = true; | 464 successfullyParsed = true; |
456 | 465 |
OLD | NEW |