(parser, frame)
| 206 | * @returns {GuardFormula | null} formula, or null when it has no knowable atom |
| 207 | */ |
| 208 | const buildFrameFormula = (parser, frame) => { |
| 209 | const HarmonyImportSpecifierDependency = |
| 210 | getHarmonyImportSpecifierDependency(); |
| 211 | const deps = /** @type {Module} */ (parser.state.module).dependencies; |
| 212 | /** @type {Map<number, HarmonyImportSpecifierDependency>} */ |
| 213 | const depByRangeStart = new Map(); |
| 214 | for (let i = /** @type {number} */ (frame.depStart); i < deps.length; i++) { |
| 215 | const dep = deps[i]; |
| 216 | if (dep instanceof HarmonyImportSpecifierDependency && dep.range) { |
| 217 | depByRangeStart.set(dep.range[0], dep); |
| 218 | } |
| 219 | } |
| 220 | return buildGuardFormula( |
| 221 | /** @type {Expression} */ (frame.test), |
| 222 | depByRangeStart |
| 223 | ); |
| 224 | }; |
| 225 | |
| 226 | /** |
| 227 | * Tags a freshly created dependency with the active dependency guards. |
no test coverage detected