Understanding ECMAScript 6: The Definitive Guide for JavaScript Developers