• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3// User passed `-e` or `--eval` arguments to Node without `-i` or
4// `--interactive`.
5
6const {
7  globalThis,
8} = primordials;
9
10const {
11  prepareMainThreadExecution,
12  markBootstrapComplete,
13} = require('internal/process/pre_execution');
14const { evalModule, evalScript } = require('internal/process/execution');
15const { addBuiltinLibsToObject } = require('internal/modules/helpers');
16
17const { getOptionValue } = require('internal/options');
18
19prepareMainThreadExecution();
20addBuiltinLibsToObject(globalThis, '<eval>');
21markBootstrapComplete();
22
23const source = getOptionValue('--eval');
24const print = getOptionValue('--print');
25const loadESM = getOptionValue('--import').length > 0 || getOptionValue('--experimental-loader').length > 0;
26if (getOptionValue('--input-type') === 'module' ||
27  (getOptionValue('--experimental-default-type') === 'module' && getOptionValue('--input-type') !== 'commonjs')) {
28  evalModule(source, print);
29} else {
30  evalScript('[eval]',
31             source,
32             getOptionValue('--inspect-brk'),
33             print,
34             loadESM);
35}
36