()
| 920 | }; |
| 921 | |
| 922 | const processQueue = () => { |
| 923 | while (queue.length) { |
| 924 | statProcessedQueueItems++; |
| 925 | const queueItem = /** @type {QueueItem} */ (queue.pop()); |
| 926 | module = queueItem.module; |
| 927 | block = queueItem.block; |
| 928 | chunk = queueItem.chunk; |
| 929 | chunkGroup = queueItem.chunkGroup; |
| 930 | chunkGroupInfo = queueItem.chunkGroupInfo; |
| 931 | |
| 932 | switch (queueItem.action) { |
| 933 | case ADD_AND_ENTER_ENTRY_MODULE: |
| 934 | chunkGraph.connectChunkAndEntryModule( |
| 935 | chunk, |
| 936 | module, |
| 937 | /** @type {Entrypoint} */ (chunkGroup) |
| 938 | ); |
| 939 | // fallthrough |
| 940 | case ADD_AND_ENTER_MODULE: { |
| 941 | const isModuleInChunk = chunkGraph.isModuleInChunk(module, chunk); |
| 942 | |
| 943 | if (isModuleInChunk) { |
| 944 | // already connected, skip it |
| 945 | break; |
| 946 | } |
| 947 | // We connect Module and Chunk |
| 948 | chunkGraph.connectChunkAndModule(chunk, module); |
| 949 | const moduleOrdinal = getModuleOrdinal(module); |
| 950 | let chunkMask = /** @type {bigint} */ (maskByChunk.get(chunk)); |
| 951 | chunkMask |= ONE_BIGINT << BigInt(moduleOrdinal); |
| 952 | maskByChunk.set(chunk, chunkMask); |
| 953 | } |
| 954 | // fallthrough |
| 955 | case ENTER_MODULE: { |
| 956 | const index = chunkGroup.getModulePreOrderIndex(module); |
| 957 | if (index === undefined) { |
| 958 | chunkGroup.setModulePreOrderIndex( |
| 959 | module, |
| 960 | chunkGroupInfo.preOrderIndex++ |
| 961 | ); |
| 962 | } |
| 963 | |
| 964 | if ( |
| 965 | moduleGraph.setPreOrderIndexIfUnset( |
| 966 | module, |
| 967 | nextFreeModulePreOrderIndex |
| 968 | ) |
| 969 | ) { |
| 970 | nextFreeModulePreOrderIndex++; |
| 971 | } |
| 972 | |
| 973 | // reuse queueItem |
| 974 | queueItem.action = LEAVE_MODULE; |
| 975 | queue.push(queueItem); |
| 976 | } |
| 977 | // fallthrough |
| 978 | case PROCESS_BLOCK: { |
| 979 | processBlock(block); |
no test coverage detected