X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fjs%2FJSFunction.java;fp=src%2Forg%2Fibex%2Fjs%2FJSFunction.java;h=40a550dab55bcb51a6d9b789a29d76f51823e283;hb=64b8c4b435a4457e342fd03fc4a725d5ea16da36;hp=4bf41e4831c2b678d41d5c0ccf4c01da67984b17;hpb=2b3517021799c6d2f5ebbd3af4f399ddbfd2c4e8;p=org.ibex.core.git diff --git a/src/org/ibex/js/JSFunction.java b/src/org/ibex/js/JSFunction.java index 4bf41e4..40a550d 100644 --- a/src/org/ibex/js/JSFunction.java +++ b/src/org/ibex/js/JSFunction.java @@ -105,10 +105,12 @@ class JSFunction extends JS implements ByteCodes, Tokens, Task { public String toString() { return "JSFunction [" + sourceName + ":" + firstLine + "]"; } - public String dump() { + String dump() { return dump(""); } + private String dump(String prefix) { StringBuffer sb = new StringBuffer(1024); sb.append("\n" + sourceName + ": " + firstLine + "\n"); for (int i=0; i < size; i++) { + sb.append(prefix); sb.append(i).append(" (").append(line[i]).append(") :"); if (op[i] < 0) sb.append(bytecodeToString[-op[i]]); else sb.append(codeToString[op[i]]); @@ -120,6 +122,8 @@ class JSFunction extends JS implements ByteCodes, Tokens, Task { int[] jmps = (int[]) arg[i]; sb.append(" catch: ").append(jmps[0] < 0 ? "No catch block" : ""+(i+jmps[0])); sb.append(" finally: ").append(jmps[1] < 0 ? "No finally block" : ""+(i+jmps[1])); + } else if(op[i] == NEWFUNCTION) { + sb.append(((JSFunction) arg[i]).dump(prefix + " ")); } sb.append("\n"); }