I agree, async/await is very nice. Though it is worth pointing out async/await is quite literally syntactic sugar on top of promises. Essentially adding language syntax for common promise idioms.
Or, for that matter, const. Though perhaps const is just syntatic sugar for not reassigning to the same darn name? ;)
Object.defineProperty(this, 'five', { enumerable: true, writable: false, value: 5, configurable: false });
If in global scope, 'five' will look like a const.
WeakMap and WeakSet have polyfills with minor caveats.
I guess you're defining language features as not "syntactic sugar" if they can't be absolutely 100% polyfilled.