1 week ago

We're shipping `Object.groupBy` and `Map.groupBy` in Firefox 119! :firefox:


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.

#firefox #javascript #tc39

3 weeks ago

I’m sure many will, like me, be disappointed to learn that the type annotations in JavaScript proposal is still trundling along. There’s a Community Meeting coming up, with an associated GitHub issue. You might wish to provide community feedback on this proposal there.

#javascript #typeannotations #tc39

Mark Gardner ‍:sdf:
5 months ago

#ECMAScript 2023 (its friends still call it #JavaScript) will standardize allowing #Unix-style shebang lines to indicate a #CommandLine interpreter.

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 🧓🏻

#ES2023 #Ecma #TC39

Doug Parker
5 months ago

@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.

Hugo Attal
6 months ago

I started writing a #tc39 proposal for a Primitive Proxy. It's my first time doing this, so I'd like to know if you guys find it useful, and what questions/objections/suggestions you may have! #javascript

every time i see “using” in c# or “from foo import *” in python, i throw up a little in my mouth

then feel a little more thankful for #TC39

CodeMonument - bjesuiter
10 months ago
Axel Rauschmayer
10 months ago

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)
#ECMAScript #JavaScript #TC39

Eemeli Aro
10 months ago

#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.

Shane Carr
10 months ago

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 to make scientific computing more accessible.

I like #boardgames, #hiking, #curling, #classicalmusic.

Robin Ricard
11 months ago

Now, #introduction time! I'm Robin, I work at Bloomberg on #javascript / #typescript infrastructure & tooling. I am also a #tc39 delegate, mainly working on the Record & Tuple proposal for ECMAScript. Whenever I can, I try to contribute to the things I use, but I have to admit, standardisation takes a lot of bandwidth so I have been focusing on that a lot lately...

2 years ago

TIL, on Bloomberg's #tc39 #JavaScript committee call discussing the records & tuple proposal

[NaN].includes(NaN) // true

new Set([NaN]).has(NaN) // true

Of course the numerical programmers know that

NaN === NaN // false

so the concession to ergonomics above (in arrays and set, and also in records and tuple) was surprising.

2 years ago

More news along these lines—former #Igalia cooperativista and #TC39 contributor littledan is joining #Bloomberg, wow:

It was cool that they explicitly called out Bloomberg's "psychologically safe culture" and its "lack of heavyweight perf/promo cycles".

I thought Bloomberg just had 💵💸💴 to spend on Igalia, et al., but folks here say that this didn't happen because of (just) 💰 but how collaborative these Bloomberg teams are with the open-source community.

2 years ago

Love causing me some #tc39 drama

3 years ago

Following on from my #TC39 proposal for an extended `switch` syntax, I've implemented it as an #npm library. The syntax isn't quite as straightforward as in the proposal but it keeps to the same principles.

3 years ago

Hey #javascript folks, I had an idea for a #tc39 proposal: allow developers to specify the type of comparison used in `switch` statements.

Read the details here:

What do people think, is this a good idea? Worth submitting it as an actual proposal?

4 years ago

#TC39 proposal (to the EcmaScript standards group that adds new features to #JavaScript) to add records (primitive versions of objects) and tuples (primitive versions of arrays):

#Scala and JVM is spoiling me, allowing tuples as keys in maps/sets, which JS can't do…

#ReasonML#OCaml is still in the lead for language to replace #TypeScript since it compiles to JS & has that static-typing juice 💖, but… still can't put objects/arrays in maps/sets in frontend JS 😭!