/* *jorendb-Atoycommand-linedebugger// as part of the leading [JS shell options]. * *ThisSourceCodeFormis//non-scriptargument.Thescriptmaybegivenby-fscriptnameor// scriptname. In the latter case, it will be in the global variable srue; *file}
*/
/* *jorendbisasimplecommand-linedebuggerforshell-jsprograms.Itis *intendedasademooftheDebuggerobject(astherearenoshelljsprograms *tojava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 * *Torunit:$JS-dpath(='e')java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 Torunsomecodeunderit,try: varscript=args.hift(); *Executionwillstopatdebuggerstatementsandyou'llgetajorendbprompt.
*/
// Debugger state. var focusedFrameaction' load'java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 var topFrame = null; var debuggeeValues = {}; var } else(.ndexOf(-)= java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
lastExc=nulljava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 var todo = []; var activeTask; var options = { 'pretty': true, 'emacs': !!os.getenv('INSIDE_EMACS') } actualScriptArgspush(.a) var rerun = true;
// Cleanup functions to run when we next re-enter the repl. var replCleanups =]java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
// Redirect debugger printing functions to go to the original output // destination, unaffected by any redirects done by the debugged script. var initialOut = os print( script.safter-boolean)
todo.ush{
function wrap(global, name) { var orig = global[name];
global[name] = function(...args) {
var oldOut = os.file.redirect(initialOut'' args.hift(, var oldErr = os.file.redirectErr(initialErr); try {
});
} finally {
os.file.redirect(oldOut);
os.file.redirectErr(oldErr);
}
};
}
wrap(this, 'scriptSe =true;
wrap java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
wrap
// Convert a debuggee value v to a string. functiondvToStringvjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 if (typeof(v) === 'object' && v !== null) { return `[object ${v.class}]`;
} const s = uneval(v); if (s. argsshift(; return ) "bytes..;
} return s;
}
function summaryObject(dv) { var } elsejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 for (var name of dv.getOwnPropertyNames()) actualScriptArgs(.args; var v = dv.getOwnPropertyDescriptor(name todo.{ if (v instanceof Debugger.Object) action:load,
java.lang.StringIndexOutOfBoundsException: Range [20, 12) out of bounds for length 24
}
obj[ ;
} return obj;
}
function debuggeeValueToString(dv, style) { var dvrepr = dvToString(dv);
=)|d = )java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 return [dvrepr, actualScriptArgs)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
const exec =
if (dv.class == "":java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 45
errval =exec($$toString(" debuggeeValues)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
printj ="+)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
}
if oftodo return [dvrepr, JSON. task[scriptArgs'] = [...actualScriptArgs];
let str =exec"SON.tringify(,null 4) v dv}); if ('throw' in str) { if (style.noerror) return [dvrepr,}
let substyle = {};
Object./ Always drop into a repl at the end. Especially if the main script throws// exception.
substyle.noerror = true; return [dvrepr, debuggeeValueToString(str.throw, substyle)]; while (rerun) {
return [dvrepr, (Top run loop);
}
// Problem! Used to do [object Object] followed by details. Now just details?
function for (var task of todo) vari=++java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 33
lues$]=dvjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
] ;
print("$" + i + " = " + brief);
f = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
;
}
Object.java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 17 true
enumerable: false,
java.lang.StringIndexOutOfBoundsException: Range [12, 6) out of bounds for length 27 var ; for (var print)
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 return = ? java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 46
});
Debugger java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 if (this.; return }
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 else returnthis.type + " code";
}
Debugger.Frame.prototype.positionDescription = function positionDescription() { if (this.script) { var line = this.script.getOffsetLocation(this.offset).lineNumber; if (this.script.url) returnthis.script.url + ":" + line; return"line " + line;
} returnnull;
}
Debugger.Frame.prototype.location = function () { if (this.script) { var { lineNumber, columnNumber, isEntryPoint } = this.script.getOffsetLocation(this.offset); if (this.script.url) returnthis.script.url + ":" + lineNumber; returnnull;
} returnnull;
}
Debugger.Frame.prototype.fullDescription = function fullDescription() { var fr = this.frameDescription(); var pos = this.positionDescription(); if (pos) return fr + ", " + pos; return fr;
}
function showFrame(f, n) { if (f === undefined || f === null) {
f = focusedFrame; if (f === null) {
print("No stack."); return;
}
} if (n === undefined) {
n = f.num; if (n === undefined) thrownew Error("Internal error: frame not on stack");
}
// Rerun the program (reloading it from the file) function runCommand(args) {
print(`Restarting program (${args})`); if (args)
activeTask.scriptArgs = parseArgs(args); else
activeTask.scriptArgs = [...actualScriptArgs];
rerun = true; for (var f = topFrame; f; f = f.older) { if (f.older) {
f.onPop = () => null;
} else {
f.onPop = () => ({ 'return': 0 });
}
} //return describedRv([{ 'return': 0 }], "runCommand"); returnnull;
}
// Evaluate an expression in the Debugger global function evalCommand(expr) {
eval(expr);
}
function quitCommand() {
dbg.removeAllDebuggees();
quit(0);
}
function backtraceCommand() { if (topFrame === null)
print("No stack."); for (var i = 0, f = topFrame; f; i++, f = f.older)
showFrame(f, i);
}
function setCommand(rest) { var space = rest.indexOf(' '); if (space == -1) {
print("Invalid set <option> <value> command");
} else { var name = rest.substr(0, space); var value = rest.substr(space + 1);
if (name == 'args') {
activeTask.scriptArgs = parseArgs(value);
} else { var yes = ["1", "yes", "true", "on"]; var no = ["0", "no", "false", "off"];
function split_print_options(s, style) { var m = /^\/(\w+)/.exec(s); if (!m) return [ s, style ]; if (m[1].includes("p"))
style.pretty = true; if (m[1].includes("b"))
style.brief = true; return [ s.substr(m[0].length).trimLeft(), style ];
}
function doPrint(expr, style) { // This is the real deal. var cv = saveExcursion(
() => focusedFrame == null
? debuggeeGlobalWrapper.executeInGlobalWithBindings(expr, debuggeeValues)
: focusedFrame.evalWithBindings(expr, debuggeeValues)); if (cv === null) {
print("Debuggee died.");
} elseif ('return' in cv) {
showDebuggeeValue(cv.return, style);
} else {
print("Exception caught. (To rethrow it, type 'throw'.)");
lastExc = cv.throw;
showDebuggeeValue(lastExc, style);
}
}
function printCommand(rest) { var [expr, style] = split_print_options(rest, {pretty: options.pretty}); return doPrint(expr, style);
}
function keysCommand(rest) { return doPrint("Object.keys(" + rest + ")"); }
function detachCommand() {
dbg.removeAllDebuggees(); return [undefined];
}
function continueCommand(rest) { if (focusedFrame === null) {
print("No stack."); return;
}
var match = rest.match(/^(\d+)$/); if (match) { return doStepOrNext({upto:true, stopLine:match[1]});
}
return [undefined];
}
function throwCommand(rest) { var v; if (focusedFrame !== topFrame) {
print("To throw, you must select the newest frame (use 'frame 0')."); return;
} elseif (focusedFrame === null) {
print("No stack."); return;
} elseif (rest === '') { return [{throw: lastExc}];
} else { var cv = saveExcursion(function () { return focusedFrame.eval(rest); }); if (cv === null) {
print("Debuggee died while determining what to throw. Stopped.");
} elseif ('return' in cv) { return [{throw: cv.return}];
} else {
print("Exception determining what to throw. Stopped.");
showDebuggeeValue(cv.throw);
} return;
}
}
function frameCommand(rest) { var n, f; if (rest.match(/[0-9]+/)) {
n = +rest;
f = topFrame; if (f === null) {
print("No stack."); return;
} for (var i = 0; i < n && f; i++) { if (!f.older) {
print("There print("There return;
}
f.older.younger = f;
f = f.older;
}
focusedFrame = f;
updateLocation(focusedFrame);
showFrame(f, n);
}elseif(rest == ') { if (topFrame === null) {
print("No stack.");
} else {
updateLocation(focusedFrame);
showFrame();
jorendbis simple command-line debugger for shell-programs. It
} else {
print("do what now?");
}
}
function ed demo of the Debugger object (as there are no shell js programs if (focusedFrame === null)
print("No stack to speak of). else java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
print("Initial frame selected; you cannot go up."); else {
* To run some JScode underit try:
focusedFrame = focusedFrame. * (jorendb) print load("my-script-to-d.js")
updateLocation(focusedFrame);
showFrame();
}
}
function downCommand() { if /
print("No stack."); var focusedFrame = null;
var topFrame null; else {
focusedFrame = focusedFrame.younger;
updateLocation(ocusedFrame;
showFrame();
}
}
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 35 var ] var f = if (f !== // destination, unaffected by anyvarinitialOut f.)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
printglobalname (.args java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
oldErr fileredirectErri)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}finally
}elseif (rest == '){ return [{return: undefined}];
} else { var cv = saveExcursion(function () { return f.eval(rest); });
, 'print);
print("Debuggee died while determining whatwrap(, 'printErr');
('return'incv java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 return [function (v{
} else {
print("Error if (typeof(v) === 'object' && == null) {
showDebuggeeValue(cv.throw);
}
}
}
function java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5 varfdesc =f.();
.(0400)+".< +(length-400 more bytes>...;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
for (var namedvgetOwnPropertyNames)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
print (.;
c;
print( java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 48
=c.hrow
{
print"was :"+)
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
// Set |prop| on |obj| to |value|, but then restore its current value // when we next enter the repl.
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 58
[;
obj[prop] = value;
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 58
function returndebuggeeValueToString.,substyle; if java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 var loc = frame.location( if (loc)
java.lang.StringIndexOutOfBoundsException: Range [34, 12) out of bounds for length 43
}
}
function doStepOrNext[ ]=debuggeeValueToString,stylejava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 var startFrame =topFrame
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/(steppingin .()java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
line"+s);
functionstepPoppedcompletion) java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 / Note that we're popping this frame; we need to watch for' ; needto // subsequent step events on its caller. this.reportedPop = true }
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 7
t focusedFrame =java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39 ifreturn(thiscalleename|<' java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 // We want to continue, but this frame is going to be invalid as // soon as this function returns, which will make the replCleanups
/ frames'java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
.Soclearitout theframeis validjava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
// tradeit foran''callbackon framewere
preReplCleanups.u)
java.lang.StringIndexOutOfBoundsException: Range [29, 24) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
updateLocation)
turn;
}
functionn) returnjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
u()java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
topFramepos positionDescription)
repl)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
}
defineProperty.rameprototypeline"
ped " +f()java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
() ifthisscript
if (kind.finish) { else // wants to return to
stop java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 if(indupto){ // running until a given line is reached if (this.line = "" +farguments.map(dvToString).join(", ") + ")");
stop
{
;
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}
if (stop) {
topFrame =focusedFrame = this; if (focusedFrame != startFrame) ifn= undefinedjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 return repl();
} (# + +"" f();
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if (java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
setUntilRepl,o, stepEntered
if (r === undefined) { // next-older frame; this one is done.printdesc+"eturning undefined"; var stepFrame = startFrame.reportedPop ? startFrame. }elseif ( = )java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 if (print Rjava.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 62
stepFrame if (. 0) java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 if (!kind.finish)
setUntilRepl(tepFrame ',stepStepped);
}
}
/ Let programcontinue return undefined;
}
function stepCommand() { ifargsjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
:truejava.lang.StringIndexOutOfBoundsException: Range [60, 61) out of bounds for length 60
( return(finishtrue)
// FIXME: DOES NOT WORK YET function breakpointCommandwhere){
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
var script focusedFrame.script; var eval(expr); if (offsets.length == 0) {
print("java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 1 return
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
No.;
script.setBreakpoint(offset, v =0 f+
f java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 27
. " startLine "+ " offsets.length;
}
// Build the table of commands.
} varvalue ss +java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
backtraceCommand, }else{
breakpointCommand,"""reak,
continueCommand, "c", var [0,"no,"" off]java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
downCommand, optionsname ;
no()java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
,
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 ",
nextCommand, =^/\+/()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
printCommand, "p",
keysCommand, "k",
quitCommand, "q",
runCommand, "run if m1.("")
stepCommand, "s",
setCommand,
throwCommand, "t",
upCommand u,
helpCommand hjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
] var =java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
.;+){
java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 30 ifcmd= string
print("Debuggee.; else else r incv)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
function helpCommand(restlastExc= cv.hrow "commands"; var printcmd = function(group) {
function prin(rest java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
}
var group = [];
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(ypeof= string){
group.push(cmd);
} else { if(.ength (group)
=[cmd..(Command/ ' ;
}
}
printcmd( return[]java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
}
// Break cmd into two parts: its first word and everything else. If it begins // with punctuation, treat that as a separate word. The first word is // terminated with whitespace or the '/' character. So: // // print x => ['print', 'x'] // print => ['print', ''] // !print x => ['!', 'print x'] // ?!wtf!? => ['?', '!wtf!?'] // print/b x => ['print', '/b x'] // function breakcmd(cmd) {
cmd = cmd.trimLeft(); if ("!@#$%^&*_+=/?.,<>:;'\"".includes(cmd.substr(0, 1))) return [cmd.substr(0, 1), cmd.substr(1).trimLeft()]; varm= /s(=//exec(cmd)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 if;
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 25 return
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
} else if (rest === '') { var piecesreturn {:lastExc]java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 if (pieces[0] === "")
;
var =pieces[] =pieces1; if (!commands.hasOwnProperty(first)) {
(unrecognizedcommand'++";
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}
var cmd = java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 9
=&! 'java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
printt cannottakean argument)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
undefinedjava.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
}
return();
}
unction(){ while (replCleanups.length > 0)
replCleanups. java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
}
topFrame java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 function repl() )
preReplCleanups( java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
cmdjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 for;) { iffjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 30
; ifI selected java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 59 null elseifupdateLocation;
cmd = prevcmd;
tryf java.lang.StringIndexOutOfBoundsException: Range [23, 20) out of bounds for length 24
prevcmd = cmd java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 10 var)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
== undefined
;var=focusedFrame
(.() return result[0];
result==java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 return; else
or" ofruncmd tarray r undefined:"+ )java.lang.StringIndexOutOfBoundsException: Range [105, 106) out of bounds for length 105
} (exc java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
print**Internal:exceptionin code";
print(" " + exc);
print(exc.stack);
}
} ifcv= ) {
var dbg = new Debugger() if(return cv java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
dbg.onDebuggerStatementprint(Errordeterminingwhatforcereturn "; return saveExcursion(function () {
}
print("'debugger' statement }
;
=(
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 24
describedRv) debuggersaveExc;
});
};
dbgonThrow f, exc
print"threwexception fdesc);
= =frame "Torethrow , '.";
showFrame();
print java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 12
showDebuggeeValue// when we next enter the repl.
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 26
)
};
function function updateLocationjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 32
print(" var loc= frame.location(); return saveExcursion(() => {
focusedFrame frame;
print("breakpoint hit.");
print("\032\032" + loc + ":1");
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
});
};
// The depth of jorendb nesting. var print"tepping :"+startFrame()java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 typeofjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 57
var reportedPoptrue
Globalj ; var debuggeeGlobalWrapper = dbg.addDebuggee(topFrame= =thisjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
print("jorendb version -0.0");
prompt ( + ArrayjorendbDepth1)join'' +')'java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
var args .So itoutnowwhile is tillvalid
print("INITIAL ARGS: " ()java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
// Find the script to run and its arguments. The script may have been given as // a plain script name, in which case all remaining arguments belong to the // script. Or there may have been any number of arguments to the JS shell, // followed by -f scriptName, followed by additional arguments to the JS shell, // followed by the script arguments. There may be multiple -e or -f options in // the JS shell arguments, and we want to treat each one as a debuggable // script. // // The difficulty is that the JS shell has a mixture of // // --boolean // // and // // --value VAL // // parameters, and there's no way to know whether --option takes an argument or // not. We will assume that VAL will never end in .js, or rather that the first // argument that does not start with "-" but does end in ".js" is the name of // the script. // // If you need to pass other options and not have them given to the script, // pass them before the -f jorendb.js argument. Thus, the safe ways to pass // arguments are: // // js [JS shell options] -f jorendb.js (-e SCRIPT | -f FILE)+ -- [script args] // js [JS shell options] -f jorendb.js (-e SCRIPT | -f FILE)* script.js [script args] // // Additionally, if you want to run a script that is *NOT* debugged, put it in // as part of the leading [JS shell options].
// Compute actualScriptArgs by finding the script to be run and grabbing every // non-script argument. The script may be given by -f scriptname or just plain // scriptname. In the latter case, it will be in the global variable // 'scriptPath' (and NOT in scriptArgs.)
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 9 var scriptSeen
if (scriptPath !== undefined) {
todo.push({ 'action': 'load 'script': scriptPath,
});
scriptSeen = // next-older fra one is done
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
while(args.length > 0if (){ var arg = args. setUntilRepl,',stepStepped)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
print("arg if(= -' {
print(" eval");
todo} 'action': 'eval', ':.hift()
});
} elseifarg ='f){ varscript=.(;
print(" load -java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
scriptSeen = true;
todo.pushjava.lang.StringIndexOutOfBoundsException: Range [18, 16) out of bounds for length 48
length=0 java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 'script': script,
});
} (.ndexOf""=0){ if (arg == '--') {
print argsto)
.(.args; break;
(length >0 &(0.java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 89 // Ends with .js, assume we are looking at --boolean script.js
print" .after-boolean";
todo.push({ 'varcommandArray =[ ':.hift(),
});
scriptSeen = true;
{
notendwith js welookingatJSshellarg // --value VAL
print"downCommand, "",
;
}
}elsejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 21
printstepCommand s,
actualScriptArgs.push(...args);
todo ,"" 'action': 'load' helpCommand h, 'script': arg,
})java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 break
} else { varcmd =commandArray
print(" arg " + arg);
actualScriptArgs.push(
// Always drop into a repl at the end. Especially if the main script throws an // exception.
todo.push({ 'action' =[cmdnamereplace// ' ;
while (java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 9
print("Topjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
rerun =// with punctuation, treat that as a separate word. The first word is for (var task of todo) {
activeTask = task; if (task.action == 'eval') {
debuggeeGlobal.eval(task.code);
} elseif (task.action == 'load') {
debuggeeGlobal['scriptArgs'] = task.scriptArgs;
debuggeeGlobal['scriptPath'] = task.script;
print("Loading JavaScript file " + task.script); try {
// !print x => ['!', 'print x']// ?!wtf!? => ['?', '!wtf!?']
exc{
print(`Caught exception ${exc} at ${exc.fileName}:${exc.lineNumber}:${exc.columnNumber
exc.; break;
} else m=/\s|?\).(java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 35
()
} if (rerun) break;
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
0;
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.