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]]);
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");
}