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.