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.