Skip to content
This repository has been archived by the owner on Oct 9, 2024. It is now read-only.

Path to Stage 4! #15

Closed
31 tasks done
ljharb opened this issue Feb 7, 2024 · 14 comments
Closed
31 tasks done

Path to Stage 4! #15

ljharb opened this issue Feb 7, 2024 · 14 comments
Assignees

Comments

@ljharb
Copy link
Member

ljharb commented Feb 7, 2024

Stage 4

  • committee approval
  • two implementations
    • WebKit, behind a flag and with arg forwarding (PR) - no longer behind a flag (PR)
    • Keisel
    • Boa
    • LibJS
    • Chrome / v8 (v128)
    • Firefox / spidermonkey issue issue 2 (behind a flag in v132 nightly, targeted for 133 or 134 unflagged)
    • Bun (tweet)
    • CloudFlare Workers (tweet
  • significant in-the-field experience
  • ecma262 PR approved
  • prepare ecma262 PR (PR)

Stage 3

  • merge test262 tests
  • write test262 tests (PR)
  • receive implementer feedback

Stage 2.7

Stage 2

  • incorporate enumeration (✨ stage 2 #17)
  • committee approval
  • spec text written

Stage 1

  • committee approval
@rkirsling
Copy link
Member

LGTM overall; my one comment would be that maybe we should include the NOTE attached to Promise.resolve here too.

@ljharb
Copy link
Member Author

ljharb commented Feb 8, 2024

Thanks, done in fdb9bd2

@rkirsling
Copy link
Member

Went ahead and implemented it in JSC right away: WebKit/WebKit@6d51d57

@syg
Copy link

syg commented Apr 8, 2024

Editorially, spec draft lgtm.

Normatively, I'd like #16 merged (which also lgtm).

@bakkot
Copy link

bakkot commented Apr 8, 2024

LGTM with #16.

@michaelficarra
Copy link
Member

LGTM

@linusg
Copy link
Member

linusg commented Apr 8, 2024

Implemented in Kiesel: https://codeberg.org/kiesel-js/kiesel/commit/5e215d3dc8839768960343f4ca7e2764c188828a

@linusg
Copy link
Member

linusg commented Apr 9, 2024

This was so simple that I decided to implement it in two more engines :)

@gibson042
Copy link

gibson042 commented Apr 9, 2024

I have reservations about Promise.try accepting variadic arguments that leave no room for ever specifying a receiver—setting it apart from Function.prototype.{apply,call} and Reflect.apply. However, they do not rise to the level of a blocking concern. Consider this a signoff from me.

@jridgewell
Copy link
Member

I have reservations about Promise.try accepting variadic arguments that leave no room for ever specifying a receiver—setting it apart from Function.prototype.{apply,call} and Reflect.apply.

AsyncContext is also doing this for our run methods, so this won't be the only one.

Vylpes pushed a commit to Vylpes/Droplet that referenced this issue Apr 10, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [core-js](https://github.com/zloirock/core-js) | dependencies | minor | [`3.35.1` -> `3.36.1`](https://renovatebot.com/diffs/npm/core-js/3.35.1/3.36.1) |

---

### Release Notes

<details>
<summary>zloirock/core-js (core-js)</summary>

### [`v3.36.1`](https://github.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3361---20240319)

[Compare Source](zloirock/core-js@v3.36.0...v3.36.1)

-   Changes [v3.36.0...v3.36.1](zloirock/core-js@v3.36.0...v3.36.1)
-   Fixed some validation cases in `Object.setPrototypeOf`, [#&#8203;1329](zloirock/core-js#1329), thanks [**@&#8203;minseok-choe**](https://github.com/minseok-choe)
-   Fixed the order of validations in `Array.from`, [#&#8203;1331](zloirock/core-js#1331), thanks [**@&#8203;minseok-choe**](https://github.com/minseok-choe)
-   Added a fix of [Bun `queueMicrotask` arity](oven-sh/bun#9249)
-   Added a fix of [Bun `URL.canParse` arity](oven-sh/bun#9250)
-   Added a fix of Bun `SuppressedError` [extra arguments support](oven-sh/bun#9283) and [arity](oven-sh/bun#9282)
-   Compat data improvements:
    -   [`value` argument of `URLSearchParams.prototype.{ has, delete }`](https://url.spec.whatwg.org/#dom-urlsearchparams-delete) marked as supported [from Bun 1.0.31](oven-sh/bun#9263)
    -   Added React Native 0.74 Hermes compat data, `Array.prototype.{ toSpliced, toReversed, with }` and `atob` marked as supported
    -   Added Deno 1.41.3 compat data mapping
    -   Added Opera Android 81 compat data mapping
    -   Added Samsung Internet 25 compat data mapping
    -   Added Oculus Quest Browser 32 compat data mapping
    -   Updated Electron 30 compat data mapping

### [`v3.36.0`](https://github.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3360---20240214)

[Compare Source](zloirock/core-js@v3.35.1...v3.36.0)

-   [`ArrayBuffer.prototype.transfer` and friends proposal](https://github.com/tc39/proposal-arraybuffer-transfer):
    -   Built-ins:
        -   `ArrayBuffer.prototype.detached`
        -   `ArrayBuffer.prototype.transfer`
        -   `ArrayBuffer.prototype.transferToFixedLength`
    -   Moved to stable ES, [Febrary 2024 TC39 meeting](tc39/proposals@c84d3dd)
    -   Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries
-   [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64):
    -   Methods:
        -   `Uint8Array.fromBase64`
        -   `Uint8Array.fromHex`
        -   `Uint8Array.prototype.toBase64`
        -   `Uint8Array.prototype.toHex`
    -   Moved to stage 3, [Febrary 2024 TC39 meeting](tc39/proposals@278ab28)
    -   Added `/actual/` namespace entries
    -   Skipped adding new methods of writing to existing arrays to clarification some moments
-   [`Promise.try` proposal](https://github.com/tc39/proposal-promise-try) has been resurrected and moved to stage 2, [Febrary 2024 TC39 meeting](tc39/proposal-promise-try#15)
-   Added an entry point for [the new TC39 proposals stage](https://tc39.es/process-document/) - `core-js/stage/2.7` - still empty
-   Fixed regression in `Set.prototype.intersection` feature detection
-   Fixed a missed check in `Array.prototype.{ indexOf, lastIndexOf, includes }`, [#&#8203;1325](zloirock/core-js#1325), thanks [**@&#8203;minseok-choe**](https://github.com/minseok-choe)
-   Fixed a missed check in `Array.prototype.{ reduce, reduceRight }`, [#&#8203;1327](zloirock/core-js#1327), thanks [**@&#8203;minseok-choe**](https://github.com/minseok-choe)
-   Fixed `Array.from` and some other methods with proxy targets, [#&#8203;1322](zloirock/core-js#1322), thanks [**@&#8203;minseok-choe**](https://github.com/minseok-choe)
-   Fixed dependencies loading for modules from `ArrayBuffer.prototype.transfer` and friends proposal in some specific cases in IE10-
-   Dropped context workaround from collection static methods entries since with current methods semantic it's no longer required
-   Added instance methods polyfills to entries of collections static methods that produce collection instances
-   Added missed `Date.prototype.toJSON` to `JSON.stringify` entries dependencies
-   Added debugging info in some missed cases
-   Compat data improvements:
    -   [`{ Map, Object }.groupBy`](https://github.com/tc39/proposal-array-grouping), [`Promise.withResolvers`](https://github.com/tc39/proposal-promise-with-resolvers), [`ArrayBuffer.prototype.transfer` and friends](https://github.com/tc39/proposal-arraybuffer-transfer) marked as supported from [Safari 17.4](https://developer.apple.com/documentation/safari-release-notes/safari-17\_4-release-notes#JavaScript)
    -   [New `Set` methods](https://github.com/tc39/proposal-set-methods) [fixed](https://bugs.chromium.org/p/v8/issues/detail?id=14559#c4) and marked as supported from V8 ~ Chrome 123
    -   Added [Deno 1.40](https://deno.com/blog/v1.40) compat data mapping
    -   `Symbol.metadata` marked as supported from [Deno 1.40.4](https://github.com/denoland/deno/releases/tag/v1.40.4)
    -   Updated Electron 30 compat data mapping

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/Droplet/pulls/294
Reviewed-by: Vylpes <ethan@vylpes.com>
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
@gibson042
Copy link

I have reservations about Promise.try accepting variadic arguments that leave no room for ever specifying a receiver—setting it apart from Function.prototype.{apply,call} and Reflect.apply.

AsyncContext is also doing this for our run methods, so this won't be the only one.

Then the same concerns apply there: tc39/proposal-async-context#80

ljharb added a commit to ljharb/ecma262 that referenced this issue May 14, 2024
@ljharb ljharb closed this as completed in 53d3351 Oct 9, 2024
ljharb added a commit to ljharb/ecma262 that referenced this issue Oct 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests