| Index: src/d8.js
|
| ===================================================================
|
| --- src/d8.js (revision 1765)
|
| +++ src/d8.js (working copy)
|
| @@ -653,17 +653,47 @@
|
| // Process arguments if any.
|
| if (args && args.length > 0) {
|
| var target = args;
|
| + var type = 'function';
|
| + var line;
|
| + var column;
|
| var condition;
|
| + var pos;
|
|
|
| - var pos = args.indexOf(' ');
|
| + // Check for breakpoint condition.
|
| + pos = args.indexOf(' ');
|
| if (pos > 0) {
|
| target = args.substring(0, pos);
|
| condition = args.substring(pos + 1, args.length);
|
| }
|
|
|
| + // Check for script breakpoint (name:line[:column]). If no ':' in break
|
| + // specification it is considered a function break point.
|
| + pos = target.indexOf(':');
|
| + if (pos > 0) {
|
| + type = 'script';
|
| + var tmp = target.substring(pos + 1, target.length);
|
| + target = target.substring(0, pos);
|
| +
|
| + // Check for both line and column.
|
| + pos = tmp.indexOf(':');
|
| + if (pos > 0) {
|
| + column = parseInt(tmp.substring(pos + 1, tmp.length)) - 1;
|
| + line = parseInt(tmp.substring(0, pos)) - 1;
|
| + } else {
|
| + line = parseInt(tmp) - 1;
|
| + }
|
| + } else if (target[0] == '#' && target[target.length - 1] == '#') {
|
| + type = 'handle';
|
| + target = target.substring(1, target.length - 1);
|
| + } else {
|
| + type = 'function';
|
| + }
|
| +
|
| request.arguments = {};
|
| - request.arguments.type = 'function';
|
| + request.arguments.type = type;
|
| request.arguments.target = target;
|
| + request.arguments.line = line;
|
| + request.arguments.column = column;
|
| request.arguments.condition = condition;
|
| } else {
|
| throw new Error('Invalid break arguments.');
|
| @@ -721,6 +751,9 @@
|
| }
|
|
|
| print('break location [condition]');
|
| + print(' break on named function: location is a function name');
|
| + print(' break on function: location is #<id>#');
|
| + print(' break on script position: location is name:line[:column]');
|
| print('clear <breakpoint #>');
|
| print('backtrace [from frame #] [to frame #]]');
|
| print('frame <frame #>');
|
|
|