src/evaluator/shell.js
function Shell(config) {
  this.config = config;
  this.commands = {};
  this.runtime = ijsrt;
  this.state = vm.createContext(createGlobals(this));
  this.code = '';

  require('../../node_modules/tern/plugin/node.js');
  var ternOptions = {
    defs: [require('../../node_modules/tern/defs/ecma5.json')],
    plugins: { node: {} }
  };
  this.ternServer = new tern.Server(ternOptions);
}
function Shell(config) {
  this.config = config;
  this.commands = {};
  this.runtime = ijsrt;
  this.state = vm.createContext(createGlobals(this));
  this.code = '';

  require('../../node_modules/tern/plugin/node.js');
  var ternOptions = {
    defs: [require('../../node_modules/tern/defs/ecma5.json')],
    plugins: { node: {} }
  };
  this.ternServer = new tern.Server(ternOptions);
}
The Shell object to manage configuration, shell functionality and session state.