Bumps [test262](https://github.com/tc39/test262) from `76a14bf` to `d216cc1`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="d216cc1972"><code>d216cc1</code></a> asyncHelpers implementation: Apply suggestions from code review</li>
<li><a href="eb44f67274"><code>eb44f67</code></a> asyncHelpers tests: Address code review feedback</li>
<li><a href="e0d5b780e7"><code>e0d5b78</code></a> Update CONTRIBUTING.md to suggest using asyncHelpers</li>
<li><a href="4fe158d39d"><code>4fe158d</code></a> Generated tests for refactoring (IIFE/async function).then($DONE, $DONE); t...</li>
<li><a href="4d9d5c570d"><code>4d9d5c5</code></a> Refactor simple cases of (IIFE/async function).then($DONE, $DONE); to use a...</li>
<li><a href="1d116b48a9"><code>1d116b4</code></a> harness/asyncHelpers.js: Refactor asyncTest to always return undefined instea...</li>
<li><a href="d810c684ae"><code>d810c68</code></a> harness/asyncHelpers.js: Refactor assert.throwsAsync to only accept a callable</li>
<li><a href="4bd0545b29"><code>4bd0545</code></a> harness/asyncHelpers.js: Remove dependency on Promise.</li>
<li><a href="98952c3c51"><code>98952c3</code></a> harness/asyncHelpers.js: Refactor assert.throwsAsync to be async function</li>
<li><a href="0294bea997"><code>0294bea</code></a> Harness tests for asyncHelpers.js' assert.throwsAsync function</li>
<li>Additional commits viewable in <a href="76a14bf659...d216cc1972">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Keep Integer type after running unary increment/decrement ops if possible. The integer type will be useful to take fast paths for accessing index properties. (e.g., `let a = 1; arr[++a]`)
~~Builds off of #2529.~~ Merged.
This Pull Request allows passing any function returning `impl Future<Output = JsResult<JsValue>>` to the `NativeFunction` constructor, allowing native concurrency hooks into the engine.
It changes the following:
- Adds a `NativeFunction::from_async_fn` function.
- Adds a new `JobQueue::enqueue_future_job` method.
- Adds an example usage on `boa_examples`.
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.107 to 1.0.108.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/syn/releases">syn's releases</a>.</em></p>
<blockquote>
<h2>1.0.108</h2>
<ul>
<li>Fix handling of unusual whitespace after escaped newlines in <code>LitStr::value</code> (<a href="https://github-redirect.dependabot.com/dtolnay/syn/issues/1381">#1381</a>, thanks <a href="https://github.com/ModProg"><code>@ModProg</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="01f69e937c"><code>01f69e9</code></a> Release 1.0.108</li>
<li><a href="62d0aeda48"><code>62d0aed</code></a> stricter parsing of string_continue escapes</li>
<li>See full diff in <a href="https://github.com/dtolnay/syn/compare/1.0.107...1.0.108">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syn&package-manager=cargo&previous-version=1.0.107&new-version=1.0.108)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [test262](https://github.com/tc39/test262) from `1c47728` to `76a14bf`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="76a14bf659"><code>76a14bf</code></a> Temporal: Tests for reference ISO dates</li>
<li><a href="a29788dd5d"><code>a29788d</code></a> Temporal: Tests for calendar-specific mergeFields</li>
<li><a href="6d7925a2d2"><code>6d7925a</code></a> fixup: Changes based on 1st RFC experience</li>
<li><a href="44c5e632fd"><code>44c5e63</code></a> RFC process documentation</li>
<li><a href="62df2cadef"><code>62df2ca</code></a> Correct typos</li>
<li><a href="ac098dbe6a"><code>ac098db</code></a> Apply suggestions from code review</li>
<li><a href="97477ad1f6"><code>97477ad</code></a> fixup! Document rationale for some maintenance practices</li>
<li><a href="f59823860e"><code>f598238</code></a> fixup! Document rationale for some maintenance practices</li>
<li><a href="17238ca018"><code>17238ca</code></a> fixup! Document rationale for some maintenance practices</li>
<li><a href="7e190c786d"><code>7e190c7</code></a> Document rationale for some maintenance practices</li>
<li>Additional commits viewable in <a href="1c47728a20...76a14bf659">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Similar to #2604, `GetPropertyByName`/`SetPropertyByName` has only string property key. So, we can skip index and utf16 conversions.
This improves QuickJS benchmark score 5.8% on average.
Richards: 37.0 -> 41.2
DeltaBlue: 38.1 -> 41.4
Crypto: 59.6 -> 59.8
RayTrace: 146 -> 159
EarleyBoyer: 138 -> 142
Splay: 104 -> 106
NavierStokes: 10.2 -> 10.3
This Pull Request closes#1907.
It changes the following:
- Implement several early errors relating to labels, `break` and `continue` in the parser.
- Implement an early error for invalid cover grammar of object literals in the parser.
- Remove all remaining syntax errors from the bytecompiler.
This Pull Request fixes#2605.
It changes the following:
- Adds a CI check to run `cargo test --doc` since `nextest` doesn't support doc tests at the moment.
- Fixes the failing doc tests.
When a rust string literal is given for a property key, boa checks if it can be parsed as an index and converts the string into a utf16 slice. This PR rewrites each hard-coded property key as a utf16 slice so that we can bypass those conversions at runtime.
This improves QuickJS benchmark score 5% on average.
Richards: 35.4 -> 37.0
DeltaBlue: 35.0 -> 38.1
Crypto: 57.6 -> 59.6
RayTrace: 137 -> 146
EarleyBoyer: 131 -> 138
Splay: 98.3 -> 104
NavierStokes: 10.2 -> 10.2
Bumps [clap](https://github.com/clap-rs/clap) from 4.1.4 to 4.1.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.1.6</h2>
<h2>[4.1.6] - 2023-02-15</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Don't show long help for <code>--help</code> just because hidden possible values include a description</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.1.6] - 2023-02-15</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Don't show long help for <code>--help</code> just because hidden possible values include a description</li>
</ul>
<h2>[4.1.5] - 2023-02-15</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Don't show long help for <code>--help</code> just because a hidden arg has a possible value with a description</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="5e240dddee"><code>5e240dd</code></a> chore: Release</li>
<li><a href="4648b6b49d"><code>4648b6b</code></a> docs: Update changelog</li>
<li><a href="8c92ef6c76"><code>8c92ef6</code></a> fix(help): Fix yet another --help long help edge case (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4712">#4712</a>)</li>
<li><a href="fb9435d026"><code>fb9435d</code></a> chore: Release</li>
<li><a href="9270d2382e"><code>9270d23</code></a> docs: Update changelog</li>
<li><a href="473cf175a2"><code>473cf17</code></a> fix(help): Fix --help help text in edge case (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4710">#4710</a>)</li>
<li><a href="62da8f94b9"><code>62da8f9</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4711">#4711</a> from aleksanderkrauze/improve-builder-str-inner-into...</li>
<li><a href="d6e7d4699f"><code>d6e7d46</code></a> Improve builder::str::inner::Inner::into_string implementation</li>
<li><a href="ad5d67623a"><code>ad5d676</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4696">#4696</a> from graves501/patch-1</li>
<li><a href="ad6778d206"><code>ad6778d</code></a> Fix typo in git.rs</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v4.1.4...v4.1.6">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.1.4&new-version=4.1.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.17.0 to 1.17.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/matklad/once_cell/blob/master/CHANGELOG.md">once_cell's changelog</a>.</em></p>
<blockquote>
<h2>1.17.1</h2>
<ul>
<li>Make <code>OnceRef</code> implementation compliant with <a href="https://github-redirect.dependabot.com/rust-lang/rust/issues/95228">strict provenance</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="35148638c5"><code>3514863</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/222">#222</a></li>
<li><a href="f0ad5f083d"><code>f0ad5f0</code></a> Bump version to 1.17.1 and update the changelog.</li>
<li><a href="78ab172105"><code>78ab172</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/219">#219</a></li>
<li><a href="6e351e5204"><code>6e351e5</code></a> Use AtomicPtr for race::OnceRef to avoid ptr-int-ptr casts (keeping</li>
<li><a href="d706539c6f"><code>d706539</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/214">#214</a></li>
<li><a href="cc07949250"><code>cc07949</code></a> Explain safety of <code>unsync::OnceCell::get(&self)</code> in more detail</li>
<li><a href="af9d29c966"><code>af9d29c</code></a> drop useless arg</li>
<li>See full diff in <a href="https://github.com/matklad/once_cell/compare/v1.17.0...v1.17.1">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=once_cell&package-manager=cargo&previous-version=1.17.0&new-version=1.17.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [test262](https://github.com/tc39/test262) from `e7364ea` to `1c47728`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="1c47728a20"><code>1c47728</code></a> Remove failing tests for CalendarFields and CalendarMergeFields</li>
<li><a href="b17b9411e0"><code>b17b941</code></a> Update DurationFormat and FormatToParts tests</li>
<li><a href="01425696e6"><code>0142569</code></a> Push into calls array in calendar and timeZone observers.</li>
<li><a href="408ecd0987"><code>408ecd0</code></a> ArrayBuffer.prototype.detached tests</li>
<li><a href="780b7b806e"><code>780b7b8</code></a> Add test to approximately format</li>
<li><a href="f5e2214b30"><code>f5e2214</code></a> Swap call order of NumberFormat's notation and roundingIncrement options</li>
<li><a href="d03f11a81b"><code>d03f11a</code></a> Fix ArrayBuffer#transfer tests to preserve maxByteLength</li>
<li>See full diff in <a href="e7364ea7dc...1c47728a20">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.92 to 1.0.93.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.93</h2>
<ul>
<li>Support 128-bit integers in serde_json::to_value (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/982">#982</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0ebeede28a"><code>0ebeede</code></a> Release 1.0.93</li>
<li><a href="4fd48503de"><code>4fd4850</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/982">#982</a> from serde-rs/integer128tovalue</li>
<li><a href="e3d13cd61a"><code>e3d13cd</code></a> Support 128-bit integers in to_value</li>
<li><a href="f77ad4750f"><code>f77ad47</code></a> Add test of integer128 to_value</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.92...v1.0.93">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.92&new-version=1.0.93)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [toml](https://github.com/toml-rs/toml) from 0.7.1 to 0.7.2.
<details>
<summary>Commits</summary>
<ul>
<li><a href="388d9b94dc"><code>388d9b9</code></a> chore: Release</li>
<li><a href="ffc0629027"><code>ffc0629</code></a> docs: Update changelog</li>
<li><a href="8003187ebc"><code>8003187</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/toml-rs/toml/issues/513">#513</a> from epage/u64</li>
<li><a href="d6964ab7b3"><code>d6964ab</code></a> fix(ser): Error on too-large u64</li>
<li><a href="cd4139fb8e"><code>cd4139f</code></a> test(serde): Demonstrate u64::MAX bug</li>
<li><a href="c8e6d3d1d1"><code>c8e6d3d</code></a> chore: Release</li>
<li><a href="379c8b6e01"><code>379c8b6</code></a> docs: Update changelog</li>
<li><a href="36ca0b9cea"><code>36ca0b9</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/toml-rs/toml/issues/510">#510</a> from epage/dup</li>
<li><a href="fc59238f9a"><code>fc59238</code></a> fix(parser): Error on duplicate table created as dotted</li>
<li><a href="e006c77e43"><code>e006c77</code></a> test(parser): Demonstrate duplicate table bug</li>
<li>Additional commits viewable in <a href="https://github.com/toml-rs/toml/compare/toml-v0.7.1...toml-v0.7.2">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=toml&package-manager=cargo&previous-version=0.7.1&new-version=0.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.50 to 1.0.51.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's releases</a>.</em></p>
<blockquote>
<h2>1.0.51</h2>
<ul>
<li>Implement rustc's limit on the number of <code>#</code> used for delimiting a raw string literal: 255 (<a href="https://github-redirect.dependabot.com/dtolnay/proc-macro2/issues/364">#364</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bc369f088f"><code>bc369f0</code></a> Release 1.0.51</li>
<li><a href="ec804f1267"><code>ec804f1</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/proc-macro2/issues/364">#364</a> from dtolnay/hashes</li>
<li><a href="dffd53caa1"><code>dffd53c</code></a> Reduce max hash in raw strings to 255</li>
<li><a href="f0a3490e97"><code>f0a3490</code></a> Add raw string literal test cases</li>
<li><a href="3b90e7d1ed"><code>3b90e7d</code></a> Ignore items_after_statements pedantic clippy lint</li>
<li><a href="bce0e5f0ab"><code>bce0e5f</code></a> Consistently use Self in the return of From impls</li>
<li><a href="3915aeedc6"><code>3915aee</code></a> Speed up cargo fuzz CI job</li>
<li>See full diff in <a href="https://github.com/dtolnay/proc-macro2/compare/1.0.50...1.0.51">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=proc-macro2&package-manager=cargo&previous-version=1.0.50&new-version=1.0.51)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.91 to 1.0.92.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p>
<blockquote>
<h2>v1.0.92</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a9c984f13e"><code>a9c984f</code></a> Release 1.0.92</li>
<li><a href="c42b724c14"><code>c42b724</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/980">#980</a> from serde-rs/docrepr</li>
<li><a href="eaa287cb3a"><code>eaa287c</code></a> Hide repr attribute from documentation</li>
<li><a href="7bc6c86310"><code>7bc6c86</code></a> RawValue -> repr(transparent)</li>
<li><a href="e41ee42d92"><code>e41ee42</code></a> Update indoc dev-dependency to version 2</li>
<li><a href="8cebe89500"><code>8cebe89</code></a> Speed up cargo fuzz CI job</li>
<li><a href="74f510e56d"><code>74f510e</code></a> Sync license text with rust-lang repos</li>
<li><a href="557f45c404"><code>557f45c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/964">#964</a> from dtolnay/docsrs</li>
<li><a href="9edf7fa9b3"><code>9edf7fa</code></a> Replace docs.serde.rs links with intra-rustdoc links</li>
<li><a href="9947ae606e"><code>9947ae6</code></a> Point documentation links to docs.rs instead of docs.serde.rs</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.91...v1.0.92">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.91&new-version=1.0.92)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [test262](https://github.com/tc39/test262) from `ad034f3` to `e7364ea`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="e7364ea7dc"><code>e7364ea</code></a> Temporal: Tests for upper limit on rounding increments</li>
<li><a href="8aeab83c98"><code>8aeab83</code></a> Temporal: Adjustments to order-of-operations tests</li>
<li><a href="788bc809bf"><code>788bc80</code></a> Update DateTimeFormat proleptic Gregorian testing to include era (<a href="https://github-redirect.dependabot.com/tc39/test262/issues/3722">#3722</a>)</li>
<li><a href="a157570ddc"><code>a157570</code></a> Regularize some of the "calendar-temporal-object" tests</li>
<li><a href="374aac475d"><code>374aac4</code></a> Regularize "calendar-case-insensitive" tests</li>
<li><a href="8700c92095"><code>8700c92</code></a> Temporal: Remove subsumed intl402 custom Calendar/TimeZone tests</li>
<li><a href="ea10ca0cc6"><code>ea10ca0</code></a> Temporal: Add intl402 custom Calendar/TimeZone tests to cover rejection of in...</li>
<li><a href="f9a62a4eb1"><code>f9a62a4</code></a> Temporal: Update custom Calendar/TimeZone tests to cover rejection of invalid...</li>
<li><a href="703873e1ca"><code>703873e</code></a> Test Array.prototype.findLast* length clamping</li>
<li>See full diff in <a href="ad034f3230...e7364ea7dc">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [icu_datagen](https://github.com/unicode-org/icu4x) from 1.1.0 to 1.1.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/unicode-org/icu4x/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=icu_datagen&package-manager=cargo&previous-version=1.1.0&new-version=1.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel necessary.
--->
This Pull Request is meant to address #1900. While working on it, there was a decent amount of refactoring/restructuring. Initially, I had kept with the current approach of just keeping track of a kind and counter on the environment stack, especially because that kept the size of each stack entry to a minimum.
I did, however, make a switch to having the opcode create the `EnvStackEntry` with a start address and exit address for a bit more precision.
It changes the following:
- Consolidates `loop_env_stack` and `try_env_stack` into one `EnvStackEntry` struct.
- Changes `Continue`, `Break`, `LoopStart`, `LoopContinue`, `FinallyStart`, `FinallyEnd` and various others. Most of this primarily revolves around the creating of `EnvStackEntry` and interacting with the `env_stack`.
- Changes/updates the try-catch-finally, break and continue statement compilations as necessary
- Adds an `AbruptCompletionRecord` in place of the `finally_jump` vector.
- Adds some tests for try-catch-finally blocks with breaks.
I'm creating this draft PR, since I wanted to have some early feedback, and because I though I would have time to finish it last week, but I got caught up with other stuff. Feel free to contribute :)
The main thing here is that I have divided `eval()`, `parse()` and similar functions so that they can decide if they are parsing scripts or modules. Let me know your thoughts.
Then, I was checking the import & export parsing, and I noticed we are using `TokenKind::Identifier` for `IdentifierName`, so I changed that name. An `Identifier` is an `IdentifierName` that isn't a `ReservedWord`. This means we should probably also adapt all `IdentifierReference`, `BindingIdentifier` and so on parsing. I already created an `Identifier` parser.
Something interesting there is that `await` is not a valid `Identifier` if the goal symbol is `Module`, as you can see in the [spec](https://tc39.es/ecma262/#prod-LabelIdentifier), but currently we don't have that information in the `InputElement` enumeration, we only have `Div`, `RegExp` and `TemplateTail`. How could we approach this?
Co-authored-by: jedel1043 <jedel0124@gmail.com>
Hi,
the `vm-implied` fuzzer panics when executing this testcase:
```javascript
try {
new function() {
while (this) {}
}();
} catch {
}
```
`internal error: entered unreachable code: The NoInstructionsRemain native error cannot be converted to an opaque type`
Handling the `NoInstructionsRemain` error upfront instead of going through the VM exception handling logic seems to work.
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel necessary.
--->
Adding a feature flag to the console import in `builtins`. I think this should fix the failing action on the `Upload docs and run benchmarks` step
This Pull Request changes the following:
- Implement binary `in` operation with private names.
- Adding a separate `BinaryInPrivate` expression in addition to the existing `Binary` expression seems like the best way to implement this in a typesafe manner. Other methods like adding an enum for the `Binary` lhs result in having to make assertions.
Small (ish?) step towards having proper realm records
This PR changes the following:
- Moves `Intrinsics` to `Realm`.
- Cleans up the initialization logic of our intrinsics to not depend on `Context`, unblocking things like #2314.
- Adds hooks to initialize the global object and the global this per the corresponding [`InitializeHostDefinedRealm ( )`](https://tc39.es/ecma262/#sec-initializehostdefinedrealm) hook. Though, this is currently broken because the vm uses `GlobalPropertyMap` instead of the `JsObject` API to initialize global properties.
This Pull Request changes the following:
- Move postfix/prefix increment and decrement operations from the `Unary` expression to a new `Update` expression.
- Add a special type for the `Update` expression target as it is very limited in comparision to an `Unary` target.
- This makes bytecode compilation more typesafe for these operations and removes syntax errors from the bytecompiler without introducing panics (see #1907).
Another change extracted from #2411.
This PR changes the following:
- Improves our identifier parsing with a new `Identifier` parser that unifies parsing for `IdentifierReference`, `BindingIdentifier` and `LabelIdentifier`.
- Slightly improves some error messages.
- Extracts our manual initialization of static `Sym`s with a new `static_syms` proc macro.
- Adds `set_module_mode` and `module_mode` to the cursor to prepare for modules.
Bumps [toml](https://github.com/toml-rs/toml) from 0.7.0 to 0.7.1.
<details>
<summary>Commits</summary>
<ul>
<li><a href="9a80a7878f"><code>9a80a78</code></a> chore: Release</li>
<li><a href="e90b292847"><code>e90b292</code></a> chore: Update release process</li>
<li><a href="410ee66dba"><code>410ee66</code></a> docs: Update changelog</li>
<li><a href="03bd12786f"><code>03bd127</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/toml-rs/toml/issues/502">#502</a> from robjtede/doc-features</li>
<li><a href="f2e6c0efc8"><code>f2e6c0e</code></a> docs(toml): display feature guarded items on docs.rs</li>
<li><a href="2d728d4b00"><code>2d728d4</code></a> docs(toml-edit): display feature guarded items on docs.rs</li>
<li><a href="5df84a5cd4"><code>5df84a5</code></a> docs(toml-datetime): display feature guarded items on docs.rs</li>
<li><a href="08ad143a50"><code>08ad143</code></a> docs(serde-spanned): display feature guarded items on docs.rs</li>
<li><a href="55d44e73c6"><code>55d44e7</code></a> docs(toml): Point people to 'toml_edit'</li>
<li>See full diff in <a href="https://github.com/toml-rs/toml/compare/toml-v0.7.0...toml-v0.7.1">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=toml&package-manager=cargo&previous-version=0.7.0&new-version=0.7.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Slightly related to #2411 since we need an API to pass module files, but more useful for #1760, #1313 and other error reporting issues.
It changes the following:
- Introduces a new `Source` API to store the path of a provided file or `None` if the source is a plain string.
- Improves the display of `boa_tester` to show the path of the tests being run. This also enables hyperlinks to directly jump to the tested file from the VS terminal.
- Adjusts the repo to this change.
Hopefully, this will improve our error display in the future.
Bumps [toml](https://github.com/toml-rs/toml) from 0.6.0 to 0.7.0.
<details>
<summary>Commits</summary>
<ul>
<li><a href="57c9bb07f4"><code>57c9bb0</code></a> chore: Release</li>
<li><a href="f0cc3febe0"><code>f0cc3fe</code></a> chore: Bump versions</li>
<li><a href="df34a73f37"><code>df34a73</code></a> docs: Update changelog</li>
<li><a href="a2984042b2"><code>a298404</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/toml-rs/toml/issues/500">#500</a> from epage/easy</li>
<li><a href="9bbb831b3f"><code>9bbb831</code></a> fix(ser)!: Remove deprecated tables_last function</li>
<li><a href="86280d7eb9"><code>86280d7</code></a> fix(ser)!: Remove deprecated pretty functions</li>
<li><a href="656ec56a16"><code>656ec56</code></a> fix(edit)!: Remove deprecated Error::line_col function</li>
<li><a href="688edee696"><code>688edee</code></a> fix(toml)!: Remove deprecated Error::line_col function</li>
<li><a href="10ea227818"><code>10ea227</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/toml-rs/toml/issues/499">#499</a> from epage/signed-offset</li>
<li><a href="6f0187eef5"><code>6f0187e</code></a> style: Make clippy happy</li>
<li>Additional commits viewable in <a href="https://github.com/toml-rs/toml/compare/toml-v0.6.0...toml-v0.7.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=toml&package-manager=cargo&previous-version=0.6.0&new-version=0.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [test262](https://github.com/tc39/test262) from `ac1c354` to `ad034f3`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="ad034f3230"><code>ad034f3</code></a> Update ArrayBuffer transfer feature flag</li>
<li><a href="59d5a6906d"><code>59d5a69</code></a> Update ArrayBuffer transfer tests for preserving resizability</li>
<li>See full diff in <a href="ac1c3546c3...ad034f3230">compare view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Extracted from #2411 to reduce its size a bit.
This PR:
- Renames `Identifier` to `IdentifierName`, which is the name stated in the spec.
- Renames the utility function `check_parser` to `check_script_parser` to prepare for modules.
- Adds some missing `#[inline]` and rewrites some patterns.
This Pull Request changes the following:
- Add early errors for escaped characters in object and class setters and getters.
- Add early errors for escaped characters in class `static`.
- Add early errors for escaped characters in `new.target`.
- Add early errors for legacy octal/decial escapes that are used in string literals before a `"use strict"` directive.
Bumps [num_enum](https://github.com/illicitonion/num_enum) from 0.5.7 to 0.5.9.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/illicitonion/num_enum/commits/0.5.9">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=num_enum&package-manager=cargo&previous-version=0.5.7&new-version=0.5.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Bumps [clap](https://github.com/clap-rs/clap) from 4.1.1 to 4.1.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v4.1.4</h2>
<h2>[4.1.4] - 2023-01-24</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Respect <code>disable_colored_help</code> when using <code>arg_required_else_help</code></li>
</ul>
<h3>Performance</h3>
<ul>
<li>Speed up compiling <code>arg!</code> macro</li>
</ul>
<h2>v4.1.3</h2>
<h2>[4.1.3] - 2023-01-23</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Improve suggested flag/value/subcommand when two share a long preifx</li>
<li><em>(error)</em> When suggesting one of several subcommands, use the plural <code>subcommands</code>, rather than <code>subcommand</code></li>
</ul>
<h2>v4.1.2</h2>
<h2>[4.1.2] - 2023-01-23</h2>
<h3>Fixes</h3>
<ul>
<li>In documentation, refer to <code>get_flag</code>, rather than <code>get_one::<bool></code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p>
<blockquote>
<h2>[4.1.4] - 2023-01-24</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Respect <code>disable_colored_help</code> when using <code>arg_required_else_help</code></li>
</ul>
<h3>Performance</h3>
<ul>
<li>Speed up compiling <code>arg!</code> macro</li>
</ul>
<h2>[4.1.3] - 2023-01-23</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Improve suggested flag/value/subcommand when two share a long preifx</li>
<li><em>(error)</em> When suggesting one of several subcommands, use the plural <code>subcommands</code>, rather than <code>subcommand</code></li>
</ul>
<h2>[4.1.2] - 2023-01-23</h2>
<h3>Fixes</h3>
<ul>
<li>In documentation, refer to <code>get_flag</code>, rather than <code>get_one::<bool></code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a59a53503e"><code>a59a535</code></a> chore: Release</li>
<li><a href="4348f43b21"><code>4348f43</code></a> docs: Update changelog</li>
<li><a href="7c4c6586d0"><code>7c4c658</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4673">#4673</a> from epage/arg</li>
<li><a href="bbe5eaa709"><code>bbe5eaa</code></a> perf: Speed up compiling <code>arg!</code> macro</li>
<li><a href="b3c4b4016c"><code>b3c4b40</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4672">#4672</a> from epage/help</li>
<li><a href="dc89379ff6"><code>dc89379</code></a> fix(help): Respect <code>disable_colored_help</code> for <code>arg_required_else_help</code></li>
<li><a href="10a87c662d"><code>10a87c6</code></a> chore: Release</li>
<li><a href="8ee9242a0e"><code>8ee9242</code></a> docs: Update changelog</li>
<li><a href="125dbe0cfd"><code>125dbe0</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4667">#4667</a> from corneliusroemer/fix-4666</li>
<li><a href="401d86fb9c"><code>401d86f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4668">#4668</a> from corneliusroemer/fix-4660</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/clap_complete-v4.1.1...v4.1.4">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.1.1&new-version=4.1.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel necessary.
--->
This Pull Request enables support for `no_std` targets on some of our sub-crates. I intentionally left out `boa_ast` and `boa_cli` because they're the largest crates we have after `boa_engine`.
`boa_gc` is a monster on its own, because we'll need to design a `no_std` multithreaded GC.
Anyways, this changes the following:
- Adds support for `no_std` on `boa_unicode`.
- Adds support for `no_std` on `boa_profiler`.
- Adds support for `no_std` on `boa_interner`.
- Adds support for `no_std` on `boa_icu_provider`.
Currently the compilation of assignment operators leads to a double object property access, both on the get and set access.
While this refactor adds special access handling instead of using the existing `access_set` and `access_get` functions, it fixes the double access and should also make the resulting code more efficient.