code: static Node getBestLValueRoot(@Nullable Node lValue) {
      if (lValue == null) {
        return null;
      }
      switch (lValue.getToken()) {
        case STRING_KEY:
          // NOTE: beware of getBestLValue returning null (or be null-permissive?)
          return getBestLValueRoot(NodeUtil.getBestLValue(lValue.getParent()));
        case GETPROP:
        case GETELEM:
          return getBestLValueRoot(lValue.getFirstChild());
        case THIS:
        case SUPER:
        case NAME:
          return lValue;
        default:
          return null;
      }
    }
docs: Gets the root of a qualified name l-value.