function ScriptManager(config, session) {
  config = config || {};
  var self = Object.create(ScriptManager.prototype, {
    _sources: { value: {}, writable: true },
    _hidden: { value: config.hidden || [] },
    _frontendClient: { value: session.frontendClient },
    _debuggerClient: { value: session.debuggerClient }
  });
  self._debuggerClient.on('afterCompile', self._onAfterCompile.bind(self));
  self._debuggerClient.on('compileError', self._onCompileError.bind(self));
  return self;
}
@param {{hidden}} config
@param {FrontendClient} frontendClient
@param {DebuggerClient} debuggerClient
@constructor