Is V8’s ignition a compiler or line by line interpreter?

I have tried looking into some of the V8 blogs to understand this, but it seems they use compiler and interpreter interchangeably. I want to know if ignition converts/compiles to bytecode and then it converts/interprets it and execute the resulting machine code, line by line. Or does it stop its work at generating bytecode. Then, what component interprets line by line? Also I think turbofan only compiles hot functions to optimise the execution.

How does Ignition and turbofan work together? Is it like ignition creates bytecode and also interprets and runs line by line a few times, and information about execution, like data types are profiled. Next, using this information, wherever possible turbofan optimizes code by generating machine code for hot functions. So ignition interprets line by line the non hot functions and the hot functions’ machine code is just executed.
Where unexpected data type change is encountered the optimized code fails and engine reverts back to line by line interpretation again by ignition. Is this how it all works?