does V8 uses stack and heap like the JVM? if so does it put primitives on the stack and objects on the heap?
null, undefined, true and false internally are heap allocated objects. If you are comming from Java you can say that true and false in V8 are more like Boolean.TRUE and Boolean.FALSE in Java.V8 has two compilers: non-optimizing (aka full) and optimizing one:
Speaking of JVM: it can perform so called stack allocation and allocate a non-escaping object on the stack instead of the heap. A more generic optimization (scalar replacement) can sometimes completely eliminate allocation of non-escaping object and explode it into separate fields.