explaining js vm in js