'use strict';
const common = require('../common');

common.skipIfInspectorDisabled();

const fixtures = require('../common/fixtures');
const startCLI = require('../common/debugger');

const assert = require('assert');

// exec .scope
{
  const cli = startCLI([fixtures.path('debugger/backtrace.js')]);

  function onFatal(error) {
    cli.quit();
    throw error;
  }

  cli.waitForInitialBreak()
    .then(() => cli.waitForPrompt())
    .then(() => cli.stepCommand('c'))
    .then(() => cli.command('exec .scope'))
    .then(() => {
      assert.match(
        cli.output,
        /'moduleScoped'/, 'displays closure from module body');
      assert.match(cli.output, /'a'/, 'displays local / function arg');
      assert.match(cli.output, /'l1'/, 'displays local scope');
      assert.doesNotMatch(
        cli.output,
        /'encodeURIComponent'/,
        'omits global scope'
      );
    })
    .then(() => cli.quit())
    .then(null, onFatal);
}