src/jdk/nashorn/internal/ir/LexicalContext.java

Print this page




 570             }
 571         }
 572         assert false : label + " was expected in lexical context " + LexicalContext.this + " but wasn't";
 573         return false;
 574     }
 575 
 576     @Override
 577     public String toString() {
 578         final StringBuffer sb = new StringBuffer();
 579         sb.append("[ ");
 580         for (int i = 0; i < sp; i++) {
 581             final Object node = stack[i];
 582             sb.append(node.getClass().getSimpleName());
 583             sb.append('@');
 584             sb.append(Debug.id(node));
 585             sb.append(':');
 586             if (node instanceof FunctionNode) {
 587                 final FunctionNode fn = (FunctionNode)node;
 588                 final Source source = fn.getSource();
 589                 String src = source.toString();
 590                 if (src.indexOf(File.pathSeparator) != -1) {
 591                     src = src.substring(src.lastIndexOf(File.pathSeparator));
 592                 }
 593                 src += ' ';
 594                 src += source.getLine(fn.getStart());
 595                 sb.append(src);
 596             }
 597             sb.append(' ');
 598         }
 599         sb.append(" ==> ]");
 600         return sb.toString();
 601     }
 602 
 603     private class NodeIterator <T extends LexicalContextNode> implements Iterator<T> {
 604         private int index;
 605         private T next;
 606         private final Class<T> clazz;
 607         private LexicalContextNode until;
 608 
 609         NodeIterator(final Class<T> clazz) {
 610             this(clazz, null);
 611         }
 612 
 613         NodeIterator(final Class<T> clazz, final LexicalContextNode until) {
 614             this.index = sp - 1;




 570             }
 571         }
 572         assert false : label + " was expected in lexical context " + LexicalContext.this + " but wasn't";
 573         return false;
 574     }
 575 
 576     @Override
 577     public String toString() {
 578         final StringBuffer sb = new StringBuffer();
 579         sb.append("[ ");
 580         for (int i = 0; i < sp; i++) {
 581             final Object node = stack[i];
 582             sb.append(node.getClass().getSimpleName());
 583             sb.append('@');
 584             sb.append(Debug.id(node));
 585             sb.append(':');
 586             if (node instanceof FunctionNode) {
 587                 final FunctionNode fn = (FunctionNode)node;
 588                 final Source source = fn.getSource();
 589                 String src = source.toString();
 590                 if (src.contains(File.pathSeparator)) {
 591                     src = src.substring(src.lastIndexOf(File.pathSeparator));
 592                 }
 593                 src += ' ';
 594                 src += fn.getLineNumber();
 595                 sb.append(src);
 596             }
 597             sb.append(' ');
 598         }
 599         sb.append(" ==> ]");
 600         return sb.toString();
 601     }
 602 
 603     private class NodeIterator <T extends LexicalContextNode> implements Iterator<T> {
 604         private int index;
 605         private T next;
 606         private final Class<T> clazz;
 607         private LexicalContextNode until;
 608 
 609         NodeIterator(final Class<T> clazz) {
 610             this(clazz, null);
 611         }
 612 
 613         NodeIterator(final Class<T> clazz, final LexicalContextNode until) {
 614             this.index = sp - 1;