(block)
| 884 | * @returns {void} |
| 885 | */ |
| 886 | const processEntryBlock = (block) => { |
| 887 | statProcessedBlocks++; |
| 888 | // get prepared block info |
| 889 | const blockModules = getBlockModules(block, chunkGroupInfo.runtime); |
| 890 | |
| 891 | if (blockModules !== undefined) { |
| 892 | // Traverse all referenced modules in reverse order |
| 893 | for (let i = blockModules.length - 3; i >= 0; i -= 3) { |
| 894 | const refModule = /** @type {Module} */ (blockModules[i]); |
| 895 | const activeState = /** @type {ConnectionState} */ ( |
| 896 | blockModules[i + 1] |
| 897 | ); |
| 898 | // enqueue, then add and enter to be in the correct order |
| 899 | // this is relevant with circular dependencies |
| 900 | queue.push({ |
| 901 | action: |
| 902 | activeState === true ? ADD_AND_ENTER_ENTRY_MODULE : PROCESS_BLOCK, |
| 903 | block: refModule, |
| 904 | module: refModule, |
| 905 | chunk, |
| 906 | chunkGroup, |
| 907 | chunkGroupInfo |
| 908 | }); |
| 909 | } |
| 910 | } |
| 911 | |
| 912 | // Traverse all Blocks |
| 913 | for (const b of block.blocks) { |
| 914 | iteratorBlock(b); |
| 915 | } |
| 916 | |
| 917 | if (block.blocks.length > 0 && module !== block) { |
| 918 | blocksWithNestedBlocks.add(block); |
| 919 | } |
| 920 | }; |
| 921 | |
| 922 | const processQueue = () => { |
| 923 | while (queue.length) { |
no test coverage detected