ECMAScript 2017 async & await atomic & non-atomic operations function parameters ending comma Object.getOwnPropertyDescriptors() Object.values() & Object.entries() SharedArrayBuffer String padding