|  | // META: title=IndexedDB: large nested objects are cloned correctly | 
|  | // META: global=window,worker | 
|  | // META: script=resources/support-promises.js | 
|  | // META: script=resources/nested-cloning-common.js | 
|  | // META: timeout=long | 
|  |  | 
|  | // Spec: https://w3c.github.io/IndexedDB/#abort-transaction | 
|  |  | 
|  | 'use strict'; | 
|  |  | 
|  | cloningTest('large typed array', [ | 
|  | {type: 'buffer', size: wrapThreshold, seed: 1}, | 
|  | // This test uses non-random data to test that compression doesn't | 
|  | // break functionality. | 
|  | {type: 'buffer', size: wrapThreshold, seed: 0}, | 
|  | ]) | 
|  |  | 
|  | cloningTestWithKeyGenerator('blob with large typed array', [ | 
|  | { | 
|  | blob: { | 
|  | type: 'blob', | 
|  | size: wrapThreshold, | 
|  | mimeType: 'text/x-blink-01', | 
|  | seed: 1 | 
|  | }, | 
|  | buffer: {type: 'buffer', size: wrapThreshold, seed: 2}, | 
|  | }, | 
|  | ]); | 
|  |  | 
|  | cloningTestWithKeyGenerator('array of blobs and large typed arrays', [ | 
|  | [ | 
|  | {type: 'blob', size: wrapThreshold, mimeType: 'text/x-blink-01', seed: 1}, | 
|  | {type: 'buffer', size: wrapThreshold, seed: 2}, | 
|  | {type: 'blob', size: wrapThreshold, mimeType: 'text/x-blink-03', seed: 3}, | 
|  | {type: 'buffer', size: wrapThreshold, seed: 4}, | 
|  | {type: 'blob', size: wrapThreshold, mimeType: 'text/x-blink-05', seed: 5}, | 
|  | ], | 
|  | ]); | 
|  |  | 
|  | cloningTestWithKeyGenerator('object with blobs and large typed arrays', [ | 
|  | { | 
|  | blob: | 
|  | {type: 'blob', size: wrapThreshold, mimeType: 'text/x-blink1', seed: 1}, | 
|  | more: [ | 
|  | {type: 'buffer', size: wrapThreshold, seed: 2}, | 
|  | {type: 'blob', size: wrapThreshold, mimeType: 'text/x-blink3', seed: 3}, | 
|  | {type: 'buffer', size: wrapThreshold, seed: 4}, | 
|  | ], | 
|  | blob2: | 
|  | {type: 'blob', size: wrapThreshold, mimeType: 'text/x-blink5', seed: 5}, | 
|  | }, | 
|  | ]); |