Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 140x 140x 140x 140x 140x 140x 140x 140x 140x 214x 140x 140x 140x 140x 140x 140x 140x 140x 1400x 1400x 1400x 1400x 140x 1235x 1235x 1235x 1235x 4x 4x 1223x 1235x 1235x 1235x 1235x 1235x 1235x 140x 1469x 1469x 1469x 1469x 140x 140x | 'use strict'; const ModuleJob = require('internal/modules/esm/module_job'); const { kImplicitAssertType } = require('internal/modules/esm/assert'); const { ObjectCreate, SafeMap, } = primordials; let debug = require('internal/util/debuglog').debuglog('esm', (fn) => { debug = fn; }); const { ERR_INVALID_ARG_TYPE } = require('internal/errors').codes; const { validateString } = require('internal/validators'); // Tracks the state of the loader-level module cache class ModuleMap extends SafeMap { constructor(i) { super(i); } // eslint-disable-line no-useless-constructor get(url, type = kImplicitAssertType) { validateString(url, 'url'); validateString(type, 'type'); return super.get(url)?.[type]; } set(url, type = kImplicitAssertType, job) { validateString(url, 'url'); validateString(type, 'type'); if (job instanceof ModuleJob !== true && typeof job !== 'function') { throw new ERR_INVALID_ARG_TYPE('job', 'ModuleJob', job); } debug(`Storing ${url} (${ type === kImplicitAssertType ? 'implicit type' : type }) in ModuleMap`); const cachedJobsForUrl = super.get(url) ?? ObjectCreate(null); cachedJobsForUrl[type] = job; return super.set(url, cachedJobsForUrl); } has(url, type = kImplicitAssertType) { validateString(url, 'url'); validateString(type, 'type'); return super.get(url)?.[type] !== undefined; } } module.exports = ModuleMap; |