In this case `z` shows as a "Macro" because it's indeed the default for the type the parser emits (thanks to C's macros), and `xsq` shows as a "Function" because the JavaScript parser (wrongly) recognizes it as not being a plain constant but actually a "lambda" function. JavaScript is tricky to parse, and here the problem is that the function part is recognized, but not the fact it's an inline call. We'd have to check if the upstream universal-ctags parser has this issue, and if not update it.