code: static Node newQName(
        AbstractCompiler compiler, String name, Node basisNode,
        String originalName) {
      Node node = newQName(compiler, name);
      useSourceInfoForNewQName(node, basisNode);
      if (!originalName.equals(node.getOriginalName())) {
        // If basisNode already had the correct original name, then it will already be set correctly.
        // Setting it again will force the QName node to have a different property list from all of
        // its children, causing greater memory consumption.
        node.setOriginalName(originalName);
      }
      return node;
    }
docs: Creates a node representing a qualified name, copying over the source
  location information from the basis node and assigning the given original
  name to the node.
  
  @param name A qualified name (e.g. "foo" or "foo.bar.baz")
  @param basisNode The node that represents the name as currently found in
  the AST.
  @param originalName The original name of the item being represented by the
  NAME node. Used for debugging information.
  
  @return A NAME or GETPROP node