src/com/google/javascript/rhino/Node.java
/**
   * Checks if the subtree under this node is the same as another subtree. Returns null if it's
   * equal, or a message describing the differences. Should be called with {@code this} as the
   * "expected" node and {@code actual} as the "actual" node.
   */
Checks if the subtree under this node is the same as another subtree. Returns null if it's
equal, or a message describing the differences. Should be called with  this as the
"expected" node and  actual as the "actual" node.
Checks if the subtree under this node is the same as another subtree . Returns null if it ' s equal or a message describing the differences . Should be called with this as the " expected " node and actual as the " actual " node .
@VisibleForTesting
  @Nullable
  public final String checkTreeEquals(Node actual) {
      NodeMismatch diff = checkTreeEqualsImpl(actual);
      if (diff != null) {
        return "Node tree inequality:" +
            "\nTree1:\n" + toStringTree() +
            "\n\nTree2:\n" + actual.toStringTree() +
            "\n\nSubtree1: " + diff.nodeExpected.toStringTree() +
            "\n\nSubtree2: " + diff.nodeActual.toStringTree();
      }
      return null;
  }
@ VisibleForTesting @ Nullable public final String checkTreeEquals ( Node actual ) { NodeMismatch diff = checkTreeEqualsImpl ( actual ) ; if ( diff != null ) { return "Node tree inequality:" + "\nTree1:\n" + toStringTree ( ) + "\n\nTree2:\n" + actual . toStringTree ( ) + "\n\nSubtree1: " + diff . nodeExpected . toStringTree ( ) + "\n\nSubtree2: " + diff . nodeActual . toStringTree ( ) ; } return null ; }
Checks if the subtree under this node is the same as another subtree.
Checks if the subtree under this node is the same as another subtree .