JavaScript Runtime Environment and The Event Loop