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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 39x 8x 39x 39x 39x 35x 35x 35x 35x 35x 2x 2x 2x 2x 33x 35x 39x 35x 35x 35x 8x 35x 27x 27x 27x 27x 27x 27x 35x 35x 6x 6x 6x 6x 29x 29x 29x 29x 35x | 'use strict'; // If user passed `-c` or `--check` arguments to Node, check its syntax // instead of actually running the file. const { getOptionValue } = require('internal/options'); const { prepareMainThreadExecution, markBootstrapComplete } = require('internal/process/pre_execution'); const { readStdin } = require('internal/process/execution'); const { pathToFileURL } = require('url'); const { Module: { _resolveFilename: resolveCJSModuleName, }, wrapSafe, } = require('internal/modules/cjs/loader'); // TODO(joyeecheung): not every one of these are necessary prepareMainThreadExecution(true); if (process.argv[1] && process.argv[1] !== '-') { // Expand process.argv[1] into a full path. const path = require('path'); process.argv[1] = path.resolve(process.argv[1]); // Read the source. const filename = resolveCJSModuleName(process.argv[1]); const fs = require('fs'); const source = fs.readFileSync(filename, 'utf-8'); markBootstrapComplete(); loadESMIfNeeded(() => checkSyntax(source, filename)); } else { markBootstrapComplete(); loadESMIfNeeded(() => readStdin((code) => { checkSyntax(code, '[stdin]'); })); } function loadESMIfNeeded(cb) { const { getOptionValue } = require('internal/options'); const hasModulePreImport = getOptionValue('--import').length > 0; if (hasModulePreImport) { const { loadESM } = require('internal/process/esm_loader'); loadESM(cb); return; } cb(); } async function checkSyntax(source, filename) { let isModule = true; if (filename === '[stdin]' || filename === '[eval]') { isModule = getOptionValue('--input-type') === 'module'; } else { const { defaultResolve } = require('internal/modules/esm/resolve'); const { defaultGetFormat } = require('internal/modules/esm/get_format'); const { url } = await defaultResolve(pathToFileURL(filename).toString()); const format = await defaultGetFormat(url); isModule = format === 'module'; } if (isModule) { const { ModuleWrap } = internalBinding('module_wrap'); new ModuleWrap(filename, undefined, source, 0, 0); return; } const { loadESM } = require('internal/process/esm_loader'); const { handleMainPromise } = require('internal/modules/run_main'); handleMainPromise(loadESM((loader) => wrapSafe(filename, source))); } |