[GCrypt] Gather SUBTLE_CRYPTO utility functions in a single header
[WebKit-https.git] / JSTests / heapProfiler / typed-array-sizes.js
1 load("./driver/driver.js");
2
3 (function() {
4     const bufferBytes = 4 * 2000;
5     const typedArraySize = 1000;
6     const typedArrayBytes = 4 * typedArraySize;
7     assert(typedArrayBytes < bufferBytes, "Sizes should be different");
8
9     let buffer = new ArrayBuffer(bufferBytes);
10     let view = new Float32Array(buffer);
11     let typedArray = new Uint32Array(typedArraySize);
12
13     let snapshot = createCheapHeapSnapshot();
14
15     let arrayBufferNodes = snapshot.nodesWithClassName("ArrayBuffer");
16     let viewNodes = snapshot.nodesWithClassName("Float32Array");
17     let typedArrayNodes = snapshot.nodesWithClassName("Uint32Array");
18     assert(arrayBufferNodes.length === 1, "Snapshot should contain 1 'ArrayBuffer' instance");
19     assert(viewNodes.length === 1, "Snapshot should contain 1 'Float32Array' instance");
20     assert(typedArrayNodes.length === 1, "Snapshot should contain 1 'Uint32Array' instance");
21
22     let arrayBufferNode = arrayBufferNodes[0];
23     let viewNode = viewNodes[0];
24     let typedArrayNode = typedArrayNodes[0];
25     assert(arrayBufferNode.size >= bufferBytes, "ArrayBuffer node should have a large size");
26     assert(viewNode.size <= 100, "Float32Array node should have a very small size, it just wraps the already large ArrayBuffer");
27     assert(typedArrayNode.size >= typedArrayBytes && typedArrayNode.size < bufferBytes, "Uint32Array node should have a large size, but not as large as the ArrayBuffer");
28 })();