News for hackers. Stuff that matters.
Re:TypeScript Is Surprisingly OK for Compilers by shrimpx on Friday August 18, 2023 @06:16AM (#37173617)
> aren't syntax sugar

They aren't syntactic sugar? Pretty sure `class Foo { blah() {} }` is equivalent to `function Foo() {}; Foo.prototype.blah = function() {}`.

Re:TypeScript Is Surprisingly OK for Compilers by bornfreddy on Friday August 18, 2023 @06:20AM (#37173641)
> the fact they aren't syntax sugar over prototypes was a mistake

Totally different meaning.

Re:TypeScript Is Surprisingly OK for Compilers by shrimpx on Friday August 18, 2023 @06:22AM (#37173652)
What else would 'syntax sugar over prototypes' mean?
Re:TypeScript Is Surprisingly OK for Compilers by zdragnar on Friday August 18, 2023 @10:15AM (#37175907)
There are a few very specific differences. In a subclass, 'this' doesn't exist until you call "super" for example, and the constructor will throw an error of invoked without the "new" keyword. [O]

These differences let you extend built-in things that simply can't be done with old prototype constructor syntax. [1]

[O] I should probably be using a more recent reference like MDN, but the 2ality series always sticks out in my mind whenever "just syntax sugar" comes up: https://2ality.com/2015/02/es6-classes-final.html#safety-che...

[1] https://2ality.com/2015/02/es6-classes-final.html#subclassin...

Re:TypeScript Is Surprisingly OK for Compilers by shrimpx on Friday August 18, 2023 @03:58PM (#37181260)
Thanks. It sounds like subclassing built-ins is where transpilers hit a hard wall. Other syntactic features of es6 can be transpiled.
Re:TypeScript Is Surprisingly OK for Compilers by zdragnar on Saturday August 19, 2023 @10:06AM (#37188913)
http://kangax.github.io/compat-table/es6/

This page lists features from es6 (and newer versions linked at the top) along with compliance to the spec. First column is the current browser, second is babel+corejs polyfills.

Overall, babel gets about 70% of the way there.

Re:TypeScript Is Surprisingly OK for Compilers by cxr on Friday August 18, 2023 @10:40AM (#37176302)
[delayed]
Re:TypeScript Is Surprisingly OK for Compilers by junon on Friday August 18, 2023 @11:38AM (#37177122)
They are not, no.
Re:TypeScript Is Surprisingly OK for Compilers by shrimpx on Friday August 18, 2023 @04:00PM (#37181298)
My example is incorrect because it doesn’t cover all the edge cases but you can desugar es6 to es5, except in es5 you can’t subclass builtins.