#Development #Proposals
TC39 advances 9 JavaScript proposals · Three features are ready to join ECMAScript https://ilo.im/164is3
_____
#TC39 #EcmaScript #JavaScript #WebDev #Frontend #Backend
#Development #Proposals
TC39 advances 9 JavaScript proposals · Three features are ready to join ECMAScript https://ilo.im/164is3
_____
#TC39 #EcmaScript #JavaScript #WebDev #Frontend #Backend
I'm gonna settle it once and for all:
the tc39 should adopt the F# style for pipeline operator.
No questions asked.
Just noticed this #js behaviour found it interesting/surprising
```javascript
let o = {}
let i = 0;
o?.f?.(i++)
```
The value of `i` is `0` after this expression. I would have thought that the orders of evaluation would still lead to `i++` occurring even if the method call is short circuited. But `i++` never evaluates.
@deebloo I think the world would be better if instead of moving "browser features" to JS build tools we should put the same effort/time/resources into standardizing the server interface as it prepared to deliver HTML to the browser so that we could get a single coordinated SSR solution.
OH at plenary “if people would stop using the word orthogonality, that would be great” #TC39
The overall cognitive capacity of TC39 delegates is reflective of the last hour or two of the final day, day three. the off-topic channel has completely gone off the rails, and the on-topic channel is just barely hanging on. Contributions are constructive yet somehow also unhinged.
we're halfway through day two.
Who likes themselves some #webComponents related #interop2024 proposals?
+1 them while they are hot!
Reference Target: https://github.com/web-platform-tests/interop/issues/792
:host(:has(...)) and :host:has(...): https://github.com/web-platform-tests/interop/issues/791
:has-slotted: https://github.com/web-platform-tests/interop/issues/790
Import Attributes: https://github.com/web-platform-tests/interop/issues/733
CSS Module Scripts: https://github.com/web-platform-tests/interop/issues/703
It's gonna be a good year!
From the agenda for the 104th meeting of Ecma #TC39 (https://github.com/tc39/agendas/blob/main/2024/10.md#agenda-items). Longer or open-ended discussions: JSSugar/JS0: https://docs.google.com/presentation/d/1ylROTu3N6MyHzNzWJXQAc7Bo1O0FHO3lNKfQMfPOA4o/mobilepresent?slide=id.g30432c5cd9c_0_688. Slide 40 onward :
Let's standardize as the ecosystem uses it:
JS0: the language implemented by the engines
JSSugar: features that must be compiled by tools to JS0
If #tc39 could finally get approved and supported by #javascript in the #browser -- that'd be great, mkay? #webdev #programming
Is it wrong if I'm kind of enjoying the drama about #ljharb?
Burn tc39 down! Make the web anew!
The only standard is death comes to everything!
Any #TC39 or similar #JavaScript spec experts in the chat?
Tagged Template Literals work as follows: push a string until interrupted by a variable.
So,
```javascript
unimportant`just an example ${2}`
```
the args are:
```javascript
{
strings: ["just an example ", ""],
values: [2]
}
```
Why? Why doesn't the the spec go "nothing left, no need to do anything"?
Or why not remove all the empty strings before giving me those args?
I tried reading the Ecmascript spec but it's obtuse.
New episode of JS Party!
@littledan joins us to discuss new features that have landed in JavaScript and to preview what’s cooking in various standards bodies across the web platform
We're shipping `Object.groupBy` and `Map.groupBy` in Firefox 119!
Documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/groupBy
Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1792650
The initial proposal was a non-static `groupBy` method on `Array.prototype` but when we implemented it in Firefox Nightly we found out it wasn't web compatible. The second version, `group`, also broke some websites. The proposal was then changed to the static methods we have now.
#ECMAScript 2023 (its friends still call it #JavaScript) will standardize allowing #Unix-style shebang lines to indicate a #CommandLine interpreter.
https://github.com/tc39/proposal-hashbang/blob/gh-pages/README.md#why-hashbang-instead-of-shebang
Of course, the JavaScript kiddies want to call them “hashbangs” because “hash is commonly associated with modern terms involving # such as #hashtag.” No respect for tradition
@leaverou This was an interesting rabbit hole to dive down. Fundamentally I feel like there is a contradiction here:
First, private fields are intended to provide true, unspoofable encapsulation of state.
Second, proxies are intended to introspect and intercept operations on an object.
These are inherently conflicting goals and you cannot provide either without violating the other. This means using private fields + proxies will fundamentally be broken, the question is just about *how* it's broken.
Seems #TC39 went with the first option. We can certainly debate which one is better, and it's always possible the second approach would have a better outcome. But in the end if we did go that route there would be just as many blog posts about "Proxies considered harmful" or "Private fields aren't actually private, so why are we bothering, just use TypeScript".
This really feels like a "damned if you do, damned if you don't" situation.
The ECMAScript proposal “Set Methods for JavaScript” advanced to stage 3. It provides the following Set methods:
* .intersection(other)
* .union(other)
* .difference(other)
* .symmetricDifference(other)
* .isSubsetOf(other)
* .isSupersetOf(other)
* .isDisjointFrom(other)
https://github.com/tc39/proposal-set-methods
#ECMAScript #JavaScript #TC39
#introduction 1/2
Hello! My current Big Project is fixing #localization, making it easier for software and sites to communicate in various human languages. So I'm spending quite a bit of time in #unicode and #tc39 trying to shepherd along spec proposals so that we can fix this for everyone. Nowadays I even get paid for this, on account of being a staff software engineer on the l10n team at #mozilla.
#introduction
I am passionate about making software, knowledge, and information accessible to everyone around the world.
To this end, I'm a Staff Software Engineer at Google on the #i18n engineering team. I lead the team that builds ICU4X, the open-source, modular, portable i18n library in #Rust. I chair #TC39 TG2 for better i18n in #ECMAScript.
I built octave-online.net to make scientific computing more accessible.
I like #boardgames, #hiking, #curling, #classicalmusic.