code: private static Node getDeclarationRValue(Node n) {
      checkNotNull(n);
      checkArgument(NodeUtil.isNameDeclaration(n));
      n = n.getFirstFirstChild();
      if (n == null) {
        return null;
      }
      while (n.isAssign()) {
        n = n.getLastChild();
      }
      return n;
    }
docs: Given a VAR node (variable declaration) returns the node of initial value.
  
  <pre><code>
  var x;  // null
  var y = "value"; // STRING "value" node
  var z = x = y = function() {}; // FUNCTION node
  <code></pre>
  @param n VAR node.
  @return the assigned initial value, or the rightmost rvalue of an assignment
  chain, or null.