test_DominatorTreeNode_insert_01.js (2742B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 // Test that we can insert new children into an existing DominatorTreeNode tree. 6 7 const tree = makeTestDominatorTreeNode({ nodeId: 1000 }, [ 8 makeTestDominatorTreeNode({}), 9 makeTestDominatorTreeNode({ nodeId: 2000 }, [ 10 makeTestDominatorTreeNode({}), 11 makeTestDominatorTreeNode({ nodeId: 3000 }), 12 makeTestDominatorTreeNode({}), 13 ]), 14 makeTestDominatorTreeNode({}), 15 ]); 16 17 const path = [1000, 2000, 3000]; 18 19 const newChildren = [ 20 makeTestDominatorTreeNode({ parentId: 3000 }), 21 makeTestDominatorTreeNode({ parentId: 3000 }), 22 ]; 23 24 const moreChildrenAvailable = false; 25 26 const expected = { 27 nodeId: 1000, 28 parentId: undefined, 29 label: undefined, 30 shallowSize: 1, 31 retainedSize: 7, 32 children: [ 33 { 34 nodeId: 0, 35 label: undefined, 36 shallowSize: 1, 37 retainedSize: 1, 38 parentId: 1000, 39 moreChildrenAvailable: true, 40 children: undefined, 41 }, 42 { 43 nodeId: 2000, 44 label: undefined, 45 shallowSize: 1, 46 retainedSize: 4, 47 parentId: 1000, 48 children: [ 49 { 50 nodeId: 1, 51 label: undefined, 52 shallowSize: 1, 53 retainedSize: 1, 54 parentId: 2000, 55 moreChildrenAvailable: true, 56 children: undefined, 57 }, 58 { 59 nodeId: 3000, 60 label: undefined, 61 shallowSize: 1, 62 retainedSize: 1, 63 parentId: 2000, 64 children: [ 65 { 66 nodeId: 7, 67 parentId: 3000, 68 label: undefined, 69 shallowSize: 1, 70 retainedSize: 1, 71 moreChildrenAvailable: true, 72 children: undefined, 73 }, 74 { 75 nodeId: 8, 76 parentId: 3000, 77 label: undefined, 78 shallowSize: 1, 79 retainedSize: 1, 80 moreChildrenAvailable: true, 81 children: undefined, 82 }, 83 ], 84 moreChildrenAvailable: false, 85 }, 86 { 87 nodeId: 3, 88 label: undefined, 89 shallowSize: 1, 90 retainedSize: 1, 91 parentId: 2000, 92 moreChildrenAvailable: true, 93 children: undefined, 94 }, 95 ], 96 moreChildrenAvailable: true, 97 }, 98 { 99 nodeId: 5, 100 label: undefined, 101 shallowSize: 1, 102 retainedSize: 1, 103 parentId: 1000, 104 moreChildrenAvailable: true, 105 children: undefined, 106 }, 107 ], 108 moreChildrenAvailable: true, 109 }; 110 111 function run_test() { 112 assertDominatorTreeNodeInsertion( 113 tree, 114 path, 115 newChildren, 116 moreChildrenAvailable, 117 expected 118 ); 119 }