How well you can read code? Especially bad code.
Obviously you have to be comfortable writing code, and you have to know what library functions are available, and so on. And at a basic level, reading might seem easy, because you can guess a lot from context or similarity to other languages. But you don't need to know operator precedence to write a long expression, because you can add more parentheses when in doubt. You do need to know operator precedence to correctly read a long expression without parens.
Consider a "spot the bug" interview question containing an algorithmic flaw (unchecked buffer, say), and a misuse of a language feature (incorrect operator precedence, say). A general programmer spots the former. Someone who knows the language spots the latter. The person you want doing your code review spots both.
Beyond basic level, the same applies. Most languages have obscure corners you wouldn't use every day, or even every year: an "expert" might be defined by how well you have those covered. The true expert level is that if you can write a compiler/interpreter, that means you can read anything written in the language.
I try to answer the question by reference to years experience, projects worked, and comparison with other skills the questioner is interested in. So rather than saying, "intermediate but not expert", say, "it's not my main language, but I have spent the last couple of years supporting a product with bug-fixing and new features, for half a day a week". The reason for this is that since there's no standard meaning of "expert", you could waste a lot of time agonising over what languages to claim "expert level" in, but the questioner gains no information useful in comparing you with other people.