# Latest

**URL:** https://es.discourse.group/latest.md

[Latest](https://es.discourse.group/latest.md) · [Categories](https://es.discourse.group/categories.md) · [Tags](https://es.discourse.group/tags.md)

---

## ["indexOf" should be "firstIndexOf"](https://es.discourse.group/t/indexof-should-be-firstindexof/2654)

<div class="topic-metadata">

**Author:** [@jaroslav.tavgen](https://es.discourse.group/u/jaroslav.tavgen)\
**Replies:** 6\
**Last updated:** [September 23, 2026, 12:47pm UTC](https://es.discourse.group/t/indexof-should-be-firstindexof/2654 "2026-09-23T12:47:52Z")

</div>

"indexOf" is essentially "firstIndexOf". Especially given the fact that the "lastIndexOf" property exists. It would be extemely logical to have "firstIndexOf" and "lastIndexOf" properties. \[1, 2, 3, 4, 2, 5\].indexOf(2)…

---

## [struct object sub-type](https://es.discourse.group/t/struct-object-sub-type/2652)

<div class="topic-metadata">

**Author:** [@YeesterPlus](https://es.discourse.group/u/YeesterPlus)\
**Replies:** 6\
**Last updated:** [September 16, 2026, 12:12pm UTC](https://es.discourse.group/t/struct-object-sub-type/2652 "2026-09-16T12:12:32Z")

</div>

I propose the Struct class or the struct keyword. Any subclass of Struct or any struct class should be of the struct type and final, when the struct object exits the constructor it should be sealed, and have value seman…

---

## [Symbol.equal - a way to define the weak equals operator on objects](https://es.discourse.group/t/symbol-equal-a-way-to-define-the-weak-equals-operator-on-objects/2651)

<div class="topic-metadata">

**Author:** [@YeesterPlus](https://es.discourse.group/u/YeesterPlus)\
**Replies:** 9\
**Last updated:** [September 16, 2026, 12:07pm UTC](https://es.discourse.group/t/symbol-equal-a-way-to-define-the-weak-equals-operator-on-objects/2651 "2026-09-16T12:07:16Z")

</div>

I propose something new for object comparison called Symbol.equal. The == operator should call the Symbol.equal method if the left hand side is an object or only the right hand side is an object. example: class Box{ …

---

## [Protected support for \`class\`](https://es.discourse.group/t/protected-support-for-class/68)

<div class="topic-metadata">

**Author:** [@rdking](https://es.discourse.group/u/rdking)\
**Replies:** 32\
**Last updated:** [September 12, 2026, 2:42pm UTC](https://es.discourse.group/t/protected-support-for-class/68 "2026-09-12T14:42:18Z")

</div>

For better or worse, class-fields is pretty much a given. However, it doesn't provide any support for protected access. One of the reasons why is due to the risk of loose scoping that would allow an inheriting class' met…

---

## [\`new WeakMap(entries, { properties: true });\`](https://es.discourse.group/t/new-weakmap-entries-properties-true/2645)

<div class="topic-metadata">

**Author:** [@conartist6](https://es.discourse.group/u/conartist6)\
**Replies:** 15\
**Last updated:** [September 10, 2026, 6:02pm UTC](https://es.discourse.group/t/new-weakmap-entries-properties-true/2645 "2026-09-10T18:02:27Z")

</div>

This is an observation of the WeakMap API and my experiences using it. The core observation is: it was always possible for the engine to implement WeakMap in two different ways. As hash map with weakly-held keys. (what…

---

## [Concise syntax for comparing multiple values](https://es.discourse.group/t/concise-syntax-for-comparing-multiple-values/2646)

<div class="topic-metadata">

**Author:** [@SabziDev](https://es.discourse.group/u/SabziDev)\
**Replies:** 1\
**Last updated:** [September 8, 2026, 4:17pm UTC](https://es.discourse.group/t/concise-syntax-for-comparing-multiple-values/2646 "2026-09-08T16:17:16Z")

</div>

Problem When multiple values need to satisfy the same condition, the condition has to be repeated: if (a === 1 && b === 1 && c === 1) {} This can become verbose when the same comparison is repeated for many values. P…

---

## [Should %WrapForValidIteratorPrototype% define a Symbol.toStringTag?](https://es.discourse.group/t/should-wrapforvaliditeratorprototype-define-a-symbol-tostringtag/2602)

<div class="topic-metadata">

**Author:** [@senocular](https://es.discourse.group/u/senocular)\
**Replies:** 6\
**Last updated:** [September 6, 2026, 5:19am UTC](https://es.discourse.group/t/should-wrapforvaliditeratorprototype-define-a-symbol-tostringtag/2602 "2026-09-06T05:19:44Z")

</div>

I noticed most prototypes used with Generators/Iterators define toStringTags: Iterator prototype: "Iterator" Generator prototype: "Generator" GeneratorFunction prototype: "GeneratorFunction" Iterator helper prototype: …

---

## [Lightweight Protected Fields](https://es.discourse.group/t/lightweight-protected-fields/1102)

<div class="topic-metadata">

**Author:** [@Jamesernator](https://es.discourse.group/u/Jamesernator)\
**Replies:** 14\
**Last updated:** [August 31, 2026, 11:38am UTC](https://es.discourse.group/t/lightweight-protected-fields/1102 "2026-08-31T11:38:29Z")

</div>

Lightweight Protected Fields Introduction and Problem Something I have seen both in TC39 proposals, on Twitter and various other places is that there is quite a lot of interest in some form of protected fields. Now some…

---

## [Protected and friend access modifier for class members](https://es.discourse.group/t/protected-and-friend-access-modifier-for-class-members/732)

<div class="topic-metadata">

**Author:** [@RHeinze](https://es.discourse.group/u/RHeinze)\
**Replies:** 41\
**Last updated:** [August 30, 2026, 11:01pm UTC](https://es.discourse.group/t/protected-and-friend-access-modifier-for-class-members/732 "2026-08-30T23:01:07Z")

</div>

Private static and instance properties/accessor properties/methods of classes in Javascript are currently at stage 3 of the TC39 standardization process (see here). My idea is based on that work. Most OOP languages (e.g.…

---

## [Weak/Map and Weak/Set \`put(key, value): value\` anyone?](https://es.discourse.group/t/weak-map-and-weak-set-put-key-value-value-anyone/2633)

<div class="topic-metadata">

**Author:** [@WebReflection](https://es.discourse.group/u/WebReflection)\
**Replies:** 2\
**Last updated:** [July 28, 2026, 9:49pm UTC](https://es.discourse.group/t/weak-map-and-weak-set-put-key-value-value-anyone/2633 "2026-07-28T21:49:25Z")

</div>

I've written a utility library that provides extends of Map, Set, WeakMap and WeakSet that do only one thing: add a put(key, value):value method because returning this has been a long-time-ago battle of mine, suggesting …

---

## [ES2026 feature summary missing in published spec?](https://es.discourse.group/t/es2026-feature-summary-missing-in-published-spec/2632)

<div class="topic-metadata">

**Author:** [@senocular](https://es.discourse.group/u/senocular)\
**Replies:** 1\
**Last updated:** [July 28, 2026, 12:12am UTC](https://es.discourse.group/t/es2026-feature-summary-missing-in-published-spec/2632 "2026-07-28T00:12:55Z")

</div>

I noticed the the 2026 spec published on ecma-international org doesn't appear to have the 2026 feature summary in the Introduction. I found this PR from April which looks like maybe it should have made it in...? The cur…

---

## [Proposal: tomb — Irreversible Variable Finalization](https://es.discourse.group/t/proposal-tomb-irreversible-variable-finalization/2626)

<div class="topic-metadata">

**Author:** [@jefferson-it](https://es.discourse.group/u/jefferson-it)\
**Replies:** 4\
**Last updated:** [July 25, 2026, 9:04pm UTC](https://es.discourse.group/t/proposal-tomb-irreversible-variable-finalization/2626 "2026-07-25T21:04:48Z")

</div>

Proposal: tomb — Irreversible Variable Finalization Author: Jefferson Status: Idea / Stage 0 Discussion Summary This proposal introduces a new JavaScript keyword: tomb variable; The purpose of tomb is to permanently…

---

## [Proposal: The gate keyword for conditional early returns](https://es.discourse.group/t/proposal-the-gate-keyword-for-conditional-early-returns/2627)

<div class="topic-metadata">

**Author:** [@lukas](https://es.discourse.group/u/lukas)\
**Replies:** 3\
**Last updated:** [July 25, 2026, 6:57pm UTC](https://es.discourse.group/t/proposal-the-gate-keyword-for-conditional-early-returns/2627 "2026-07-25T18:57:59Z")

</div>

I recently looked at my code and realised that my core logic was diluted with error handling code. After calling a function, I want to be sure that whatever happens inside it worked as expected, so I always add the line …

---

## [(Champion needed) Improve handling of network data](https://es.discourse.group/t/champion-needed-improve-handling-of-network-data/2529)

<div class="topic-metadata">

**Author:** [@Guthib-of-Dan](https://es.discourse.group/u/Guthib-of-Dan)\
**Replies:** 17\
**Last updated:** [July 24, 2026, 7:16am UTC](https://es.discourse.group/t/champion-needed-improve-handling-of-network-data/2529 "2026-07-24T07:16:53Z")

</div>

Hello. All the data someone sends via HTTP / WebSocket requests to us is untrusted. On the frontend or the backend we receive data as ArraBuffer(s), decode into JS string, likely parse with JSON.parse and handle it. Howe…

---

## [\`import source\`: why not an attribute?](https://es.discourse.group/t/import-source-why-not-an-attribute/2621)

<div class="topic-metadata">

**Author:** [@Josh-Cena](https://es.discourse.group/u/Josh-Cena)\
**Replies:** 6\
**Last updated:** [July 21, 2026, 9:17am UTC](https://es.discourse.group/t/import-source-why-not-an-attribute/2621 "2026-07-21T09:17:42Z")

</div>

I'm finding the new import source syntax barely justifiable because we already have the now-omnipotent with that can basically change everything about module-importing, so I'm wondering: what benefits does import source …

---

## [AbortSignal-like abstraction without event dispatch?](https://es.discourse.group/t/abortsignal-like-abstraction-without-event-dispatch/2620)

<div class="topic-metadata">

**Author:** [@juner](https://es.discourse.group/u/juner)\
**Replies:** 2\
**Last updated:** [July 18, 2026, 7:30pm UTC](https://es.discourse.group/t/abortsignal-like-abstraction-without-event-dispatch/2620 "2026-07-18T19:30:36Z")

</div>

While reading the discussion in whatwg/dom#1461, I started wondering whether the underlying abstraction behind AbortSignal could be separated from its event-based aspects. Related discussion: whatwg/dom#1461 — "AbortS…

---

## [\`Object.upgrade()\`: Like \`Object.setPrototypeOf()\` but only for prototype specialization at the leafs](https://es.discourse.group/t/object-upgrade-like-object-setprototypeof-but-only-for-prototype-specialization-at-the-leafs/2618)

<div class="topic-metadata">

**Author:** [@LeaVerou](https://es.discourse.group/u/LeaVerou)\
**Replies:** 7\
**Last updated:** [July 9, 2026, 8:20pm UTC](https://es.discourse.group/t/object-upgrade-like-object-setprototypeof-but-only-for-prototype-specialization-at-the-leafs/2618 "2026-07-09T20:20:56Z")

</div>

Why? We have Object.setPrototypeOf() but it's so slow in the general case that the messaging is basically "never use this". However, literally every single use case I've ever encountered for it was much more narrowly sc…

---

## [Differences between \`RunSuspendedContext\` and \`RunCallerContext\` resumption value passing](https://es.discourse.group/t/differences-between-runsuspendedcontext-and-runcallercontext-resumption-value-passing/2617)

<div class="topic-metadata">

**Author:** [@John-Clint](https://es.discourse.group/u/John-Clint)\
**Replies:** 1\
**Last updated:** [July 2, 2026, 6:48pm UTC](https://es.discourse.group/t/differences-between-runsuspendedcontext-and-runcallercontext-resumption-value-passing/2617 "2026-07-02T18:48:32Z")

</div>

Both RunSuspendedContext and RunCallerContext have the following text in their description: It resumes X context (sending it Y as the resumption value) X and Y are different, but the point is that both resume a conte…

---

## [Were ISO/IEC TR 10176 guidelines usable for ECMA-262?](https://es.discourse.group/t/were-iso-iec-tr-10176-guidelines-usable-for-ecma-262/2616)

<div class="topic-metadata">

**Author:** [@sword-2](https://es.discourse.group/u/sword-2)\
**Replies:** 2\
**Last updated:** [July 1, 2026, 4:01pm UTC](https://es.discourse.group/t/were-iso-iec-tr-10176-guidelines-usable-for-ecma-262/2616 "2026-07-01T16:01:01Z")

</div>

The title of ISO/IEC TR 10176 was: Information technology — Guidelines for the preparation of programming language standards (Fourth edition 2003-04-15) The ISO/IEC TR had guidelines for terminology in section 4.2.1 co…

---

## [Differences between promises and thenables](https://es.discourse.group/t/differences-between-promises-and-thenables/2613)

<div class="topic-metadata">

**Author:** [@John-Clint](https://es.discourse.group/u/John-Clint)\
**Replies:** 4\
**Last updated:** [June 29, 2026, 7:10pm UTC](https://es.discourse.group/t/differences-between-promises-and-thenables/2613 "2026-06-29T19:10:36Z")

</div>

Taken from ECMAScript® 2027 Language Specification : A Promise is an object that is used as a placeholder for the eventual results of a deferred (and possibly asynchronous) computation. I don't think that this defini…

---

## [Map.prototype.with](https://es.discourse.group/t/map-prototype-with/2611)

<div class="topic-metadata">

**Author:** [@Dagur](https://es.discourse.group/u/Dagur)\
**Replies:** 4\
**Last updated:** [June 23, 2026, 4:53pm UTC](https://es.discourse.group/t/map-prototype-with/2611 "2026-06-23T16:53:44Z")

</div>

I'd like to be able to create a copy of a Map with a single value changed so instead of having to first clone the Map object and then calling Map.prototype.set, I'd like to be able to do this in one call. const newMap =…

---

## [Map and set getters to give a way to get an item at an order](https://es.discourse.group/t/map-and-set-getters-to-give-a-way-to-get-an-item-at-an-order/2541)

<div class="topic-metadata">

**Author:** [@Jingcong](https://es.discourse.group/u/Jingcong)\
**Replies:** 34\
**Last updated:** [June 22, 2026, 6:11pm UTC](https://es.discourse.group/t/map-and-set-getters-to-give-a-way-to-get-an-item-at-an-order/2541 "2026-06-22T18:11:13Z")

</div>

Map.prototype.at() & Set.prototype.at() Stage: 0 (with a dream) Author: Someone tired of converting Maps to arrays Help wanted: Champion, spec writers, emotional support The Pitch Arrays and strings got .at() in ES202…

---

## [(Champion needed) Ideas For Iterator Block Expressions](https://es.discourse.group/t/champion-needed-ideas-for-iterator-block-expressions/2605)

<div class="topic-metadata">

**Author:** [@fierflame](https://es.discourse.group/u/fierflame)\
**Replies:** 4\
**Last updated:** [June 19, 2026, 11:27am UTC](https://es.discourse.group/t/champion-needed-ideas-for-iterator-block-expressions/2605 "2026-06-19T11:27:53Z")

</div>

\[中文版本(Github)\] \[中文版本(Gitee)\] Proposal Details The block {} can be defined as a syntactic sugar similar to for..of, but it differs from for..of in the following ways: block {} will pass the result of the last statemen…

---

## [\`new Thead()\` for shared-memory isolation](https://es.discourse.group/t/new-thead-for-shared-memory-isolation/2604)

<div class="topic-metadata">

**Author:** [@conartist6](https://es.discourse.group/u/conartist6)\
**Replies:** 1\
**Last updated:** [June 18, 2026, 5:45pm UTC](https://es.discourse.group/t/new-thead-for-shared-memory-isolation/2604 "2026-06-18T17:45:43Z")

</div>

I'm offering this idea on behalf of Jarred Sumner, who has gone ahead and had AI implement it in webkit in lieu of designing the feature: Shared-memory threads for JavaScriptCore (experimental, not working yet) by Jarred…

---

## [A More Idiomatic Enum for JavaScript](https://es.discourse.group/t/a-more-idiomatic-enum-for-javascript/2566)

<div class="topic-metadata">

**Author:** [@yxdtg](https://es.discourse.group/u/yxdtg)\
**Replies:** 4\
**Last updated:** [June 13, 2026, 11:47am UTC](https://es.discourse.group/t/a-more-idiomatic-enum-for-javascript/2566 "2026-06-13T11:47:46Z")

</div>

A More Idiomatic Enum for JavaScript Idiomatic to JavaScript Semantic Progressive Arbitrary value types Mergeable Straightforward desugaring Straightforward TypeScript typing Basic Syntax enum STATUS { Ready: 0, …

---

## [A meta proposal: An AI proposals submission page](https://es.discourse.group/t/a-meta-proposal-an-ai-proposals-submission-page/2600)

<div class="topic-metadata">

**Author:** [@David263](https://es.discourse.group/u/David263)\
**Replies:** 1\
**Last updated:** [June 12, 2026, 8:38pm UTC](https://es.discourse.group/t/a-meta-proposal-an-ai-proposals-submission-page/2600 "2026-06-12T20:38:16Z")

</div>

TC39 is difficult for non-delegates to contribute to, so non-delegates with really useful ideas may tend to be stuck and give up. I've come up with a solution that won't overload either the delegates or the TC39 infras…

---

## [JSONRegistry - Allows branded instances in regular JSON](https://es.discourse.group/t/jsonregistry-allows-branded-instances-in-regular-json/2569)

<div class="topic-metadata">

**Author:** [@WebReflection](https://es.discourse.group/u/WebReflection)\
**Replies:** 50\
**Last updated:** [June 10, 2026, 10:58am UTC](https://es.discourse.group/t/jsonregistry-allows-branded-instances-in-regular-json/2569 "2026-06-10T10:58:18Z")

</div>

I've written so many serializer/encoder/decoder but I feel like going back to basics every single time, although this time I think I've nailed a prototype that works well with both native JSON API and flatted, downloaded…

---

## [Native CBOR support](https://es.discourse.group/t/native-cbor-support/1492)

<div class="topic-metadata">

**Author:** [@mbalex99](https://es.discourse.group/u/mbalex99)\
**Replies:** 10\
**Last updated:** [May 24, 2026, 5:21am UTC](https://es.discourse.group/t/native-cbor-support/1492 "2026-05-24T05:21:34Z")

</div>

Since WebAuthN uses CBOR, I felt it would be a good idea to bring broad base support for CBOR throughout. What is CBOR? CBOR is a serialization format much like JSON (and some more). However, unlike JSON, CBOR is a bina…

---

## [Additional features to \`import \* as Object from 'module'\`](https://es.discourse.group/t/additional-features-to-import-as-object-from-module/1164)

<div class="topic-metadata">

**Author:** [@tomma5o](https://es.discourse.group/u/tomma5o)\
**Replies:** 14\
**Last updated:** [May 23, 2026, 11:01pm UTC](https://es.discourse.group/t/additional-features-to-import-as-object-from-module/1164 "2026-05-23T23:01:05Z")

</div>

Hey, my first time here, sorry in advance if I've made some error about the process of opening a proposal. Just want to discuss the import \* as Object from 'module' feature in ECMAScript. Why there is no way to import …

---

## [Proposal: Observable State with Mutation History Tracking](https://es.discourse.group/t/proposal-observable-state-with-mutation-history-tracking/2567)

<div class="topic-metadata">

**Author:** [@Muddabirchohan](https://es.discourse.group/u/Muddabirchohan)\
**Replies:** 1\
**Last updated:** [May 18, 2026, 1:34am UTC](https://es.discourse.group/t/proposal-observable-state-with-mutation-history-tracking/2567 "2026-05-18T01:34:40Z")

</div>

There is no native way to: track changes over time inspect previous values debug state transitions replay or revert changes Motivation Modern applications require observability of state changes for: debugging comple…

[Next page](https://es.discourse.group/latest.md?page=1)
