Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Array.from #1331

Merged
merged 1 commit into from
Feb 23, 2024
Merged

Fix Array.from #1331

merged 1 commit into from
Feb 23, 2024

Conversation

stonechoe
Copy link
Contributor

Following code behaves differently depending on whether the native version is loaded, or if the polyfill is required and loaded:

const f = require("core-js-pure/es/array/from");

const a = function () {
    throw 42;
};

const b = {};
b[Symbol.iterator] = () => undefined

f.call(a, b) // throw '42' in native, throw 'TypeError' in polyfill

The difference comes from the order of construction and type checking - construct should be done first. spec

try {
    f.call(a, b)
} catch (e) {
    e === 42 // This should be true
}

@zloirock zloirock merged commit 72d78b7 into zloirock:master Feb 23, 2024
14 checks passed
Vylpes pushed a commit to Vylpes/Droplet that referenced this pull request 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants