Permalink
Browse files

lib: remove _debugger.js

The file no longer works after the removal of the --debug/--debug-brk
switches in commit 47f8f74 ("src: remove support for --debug".)

This commit also removes several tests that still referenced the
old debugger but were either unit-testing its internals or passing
for the wrong reason (like expecting an operation to fail, which
it did because the debugger is gone.)

PR-URL: #12495
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information...
bnoordhuis committed Apr 18, 2017
1 parent e0b076a commit 90476ac6ee070f809894cbb28c4af81c5e3255eb
View

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -122,9 +122,7 @@
const internalModule = NativeModule.require('internal/module');
internalModule.addBuiltinLibsToObject(global);
run(() => {
evalScript('[eval]');
});
evalScript('[eval]');
} else if (process.argv[1]) {
// make process.argv[1] into a full path
const path = NativeModule.require('path');
@@ -143,7 +141,7 @@
}
preloadModules();
run(Module.runMain);
Module.runMain();
} else {
preloadModules();
// If -i or --interactive were passed, or stdin is a TTY.
@@ -417,33 +415,6 @@
}
}
function isDebugBreak() {
return process.execArgv.some((arg) => /^--debug-brk(=[0-9]+)?$/.test(arg));
}
function run(entryFunction) {
if (process._debugWaitConnect && isDebugBreak()) {
// XXX Fix this terrible hack!
//
// Give the client program a few ticks to connect.
// Otherwise, there's a race condition where `node debug foo.js`
// will not be able to connect in time to catch the first
// breakpoint message on line 1.
//
// A better fix would be to somehow get a message from the
// V8 debug object about a connection, and runMain when
// that occurs. --isaacs
const debugTimeout = +process.env.NODE_DEBUG_TIMEOUT || 50;
setTimeout(entryFunction, debugTimeout);
} else {
// Main entry point into most programs:
entryFunction();
}
}
function checkScriptSyntax(source, filename) {
const Module = NativeModule.require('module');
const vm = NativeModule.require('vm');
View
@@ -23,7 +23,6 @@
'library_files': [
'lib/internal/bootstrap_node.js',
'lib/_debug_agent.js',
'lib/_debugger.js',
'lib/assert.js',
'lib/buffer.js',
'lib/child_process.js',
@@ -1,134 +0,0 @@
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
const common = require('../common');
const path = require('path');
const assert = require('assert');
const spawn = require('child_process').spawn;
const debug = require('_debugger');
const scenarios = [];
addScenario('global.js', 2);
addScenario('timeout.js', 2);
run();
/***************** IMPLEMENTATION *****************/
function addScenario(scriptName, throwsOnLine) {
scenarios.push(
runScenario.bind(null, scriptName, throwsOnLine, run)
);
}
function run() {
const next = scenarios.shift();
if (next) next();
}
function runScenario(scriptName, throwsOnLine, next) {
let asserted = false;
const port = common.PORT;
const testScript = path.join(
common.fixturesDir,
'uncaught-exceptions',
scriptName
);
const child = spawn(process.execPath, [ '--debug-brk=' + port, testScript ]);
child.on('close', function() {
assert(asserted, 'debugger did not pause on exception');
if (next) next();
});
const exceptions = [];
let stderr = '';
function stderrListener(data) {
stderr += data;
if (stderr.includes('Debugger listening on ')) {
setTimeout(setupClient.bind(null, runTest), 200);
child.stderr.removeListener('data', stderrListener);
}
}
child.stderr.setEncoding('utf8');
child.stderr.on('data', stderrListener);
function setupClient(callback) {
const client = new debug.Client();
client.once('ready', callback.bind(null, client));
client.on('unhandledResponse', function(body) {
console.error('unhandled response: %j', body);
});
client.on('error', function(err) {
if (asserted) return;
assert.ifError(err);
});
client.connect(port);
}
let interval;
function runTest(client) {
client.req(
{
command: 'setexceptionbreak',
arguments: {
type: 'uncaught',
enabled: true
}
},
function(error) {
assert.ifError(error);
client.on('exception', function(event) {
exceptions.push(event.body);
});
client.reqContinue(function(error) {
assert.ifError(error);
interval = setInterval(assertHasPaused.bind(null, client), 10);
});
}
);
}
function assertHasPaused(client) {
if (!exceptions.length) return;
assert.strictEqual(exceptions.length, 1,
'debugger did not pause on exception');
assert.strictEqual(exceptions[0].uncaught, true);
assert.strictEqual(exceptions[0].script.name, testScript);
assert.strictEqual(exceptions[0].sourceLine + 1, throwsOnLine);
asserted = true;
client.reqContinue(assert.ifError);
clearInterval(interval);
}
}
Oops, something went wrong.

0 comments on commit 90476ac

Please sign in to comment.