Decoding JavaScript: How JavaScript Really Works?