By this definition, the Emacs native compiler would be a jit, even though it is considered an AoT compiler.
I think there needs to be another caveat, where a jit uses some run time information to generate the machine code.
It makes me wonder if there are any JIT compilers that generate code based on runtime data, but not at runtime? Similar to profile guided optimizations in static languages. Basically collect your traces and runtime info, then generate the code offline. This would let you take more time to optimize, and you could save the new code to disk and reuse it.