code: private static boolean isEmpty(MsgNode msg) {
      for (SoyNode child : msg.getChildren()) {
        if (child instanceof RawTextNode && ((RawTextNode) child).getRawText().isEmpty()) {
          continue;
        }
        return false;
      }
      return true;
    }
docs: If the only children are empty raw text nodes, then the node is empty.
  
  <p>Empty raw text nodes are inserted by the parser to keep track of trimmed whitespace for the
  html parser and removed later in the compiler.