When I render the following document with xelatex...
\documentclass{scrbook}
\usepackage{fontspec}
\usepackage{listings}
\newfontface{\emojifont}{Symbola_hint.ttf}
\begin{document}
\emojifont{The emoji end up in front of the punctuation: \lstinline`<,/+`}
\end{document}
I end up with the content of the inline code span looking like <,/+—the Emoji are moved across the punctuation, to the start of the span. This doesn't happen (or at least happens differently) with non-punctuation characters.
The same happens in code listing blocks, and since I have to typeset some programs with emoji in them, this is rather disruptive. Any ideas on why this is happening and whether there's a way to work around it?
Using \texttt instead of \lstinline removes the issue, but I really prefer to keep using listings, since it does several things that I need.

listingsis processed… – egreg Feb 03 '18 at 10:34