Bumps [once_cell](https://github.com/matklad/once_cell) from 1.16.0 to 1.17.0.
<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.0</h2>
<ul>
<li>Add <code>race::OnceRef</code> for storing a <code>&'a T</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="85e372f818"><code>85e372f</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/213">#213</a></li>
<li><a href="fae9f73da6"><code>fae9f73</code></a> Add once_cell::race::OnceRef</li>
<li><a href="0d0dae1260"><code>0d0dae1</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/212">#212</a></li>
<li><a href="e94003a299"><code>e94003a</code></a> Removed Debug impls to de-clutter example</li>
<li><a href="3f750e1b6b"><code>3f750e1</code></a> Fixed <code>LateInit</code> example stack overflow</li>
<li><a href="ba8b9fe98b"><code>ba8b9fe</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/209">#209</a></li>
<li><a href="ea438d8e50"><code>ea438d8</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/210">#210</a></li>
<li><a href="f68835a884"><code>f68835a</code></a> fix miri tests</li>
<li><a href="6d46f401f7"><code>6d46f40</code></a> Add references to generic_once_cell</li>
<li><a href="47bf9ae994"><code>47bf9ae</code></a> Readme: Sync related crates to docs</li>
<li>See full diff in <a href="https://github.com/matklad/once_cell/compare/v1.16.0...v1.17.0">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.16.0&new-version=1.17.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 [serde](https://github.com/serde-rs/serde) from 1.0.151 to 1.0.152.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.152</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="ccf9c6fc07"><code>ccf9c6f</code></a> Release 1.0.152</li>
<li><a href="b25d0ea7f9"><code>b25d0ea</code></a> Link to Hjson data format</li>
<li><a href="4f4557fd05"><code>4f4557f</code></a> Link to bencode data format</li>
<li><a href="bf400d6799"><code>bf400d6</code></a> Link to serde_tokenstream data format</li>
<li><a href="4d2e36d19b"><code>4d2e36d</code></a> Wrap flexbuffers bullet point to 80 columns</li>
<li><a href="df6310e5f5"><code>df6310e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2347">#2347</a> from dtolnay/docsrs</li>
<li><a href="938ab5ddec"><code>938ab5d</code></a> Replace docs.serde.rs links with intra-rustdoc links</li>
<li><a href="ef5a0de384"><code>ef5a0de</code></a> Point documentation links to docs.rs instead of docs.serde.rs</li>
<li><a href="5d186c77a6"><code>5d186c7</code></a> Opt out -Zrustdoc-scrape-examples on docs.rs</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.151...v1.0.152">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.151&new-version=1.0.152)](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](https://github.com/serde-rs/serde) from 1.0.150 to 1.0.151.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.151</h2>
<ul>
<li>Update <code>serde::</code>{<code>ser</code>,<code>de</code>}<code>::StdError</code> to re-export <code>core::error::Error</code> when serde is built with <code>feature="std"</code> <strong>off</strong> and <code>feature="unstable"</code> <strong>on</strong> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2344">#2344</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="44bf3633af"><code>44bf363</code></a> Release 1.0.151</li>
<li><a href="f261184416"><code>f261184</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2344">#2344</a> from dtolnay/coreerror</li>
<li><a href="df40f80fcf"><code>df40f80</code></a> Make StdError identical to core::error::Error on feature="unstable"</li>
<li><a href="e7060ba83d"><code>e7060ba</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2342">#2342</a> from atouchet/badges</li>
<li><a href="d98f0eea3d"><code>d98f0ee</code></a> Update build status badge</li>
<li><a href="4f157a8b81"><code>4f157a8</code></a> Prevent build.rs rerunning unnecessarily on all source changes</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.150...v1.0.151">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.150&new-version=1.0.151)](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](https://github.com/serde-rs/serde) from 1.0.149 to 1.0.150.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.150</h2>
<ul>
<li>Relax some trait bounds from the <code>Serialize</code> impl of <code>HashMap</code> and <code>BTreeMap</code> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2334">#2334</a>)</li>
<li>Enable <code>Serialize</code> and <code>Deserialize</code> impls of <code>std::sync::atomic</code> types on more platforms (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2337">#2337</a>, thanks <a href="https://github.com/badboy"><code>@badboy</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d493649f52"><code>d493649</code></a> Release 1.0.150</li>
<li><a href="0e947e6c3b"><code>0e947e6</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2338">#2338</a> from serde-rs/atomic</li>
<li><a href="9249dab54c"><code>9249dab</code></a> Deduplicate atomic_impl macro calls</li>
<li><a href="7440e56c53"><code>7440e56</code></a> Deduplicate atomic_impl macro implementations</li>
<li><a href="0d79306285"><code>0d79306</code></a> Update atomic_impl macros to have same input syntax in all cfgs</li>
<li><a href="37faaf295e"><code>37faaf2</code></a> Mention target_has_atomic stabilization</li>
<li><a href="650358fa00"><code>650358f</code></a> Replace obsolete comment about target_has_atomic support</li>
<li><a href="6159ead404"><code>6159ead</code></a> Invert use_target_has_atomic cfg</li>
<li><a href="692ac99c69"><code>692ac99</code></a> Format PR 2337 with rustfmt</li>
<li><a href="86161ce15f"><code>86161ce</code></a> Adjust spacing in some macro matchers</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.149&new-version=1.0.150)](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](https://github.com/serde-rs/serde) from 1.0.148 to 1.0.149.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.149</h2>
<ul>
<li>Relax some trait bounds from the <code>Serialize</code> impl of <code>BinaryHeap</code>, <code>BTreeSet</code>, and <code>HashSet</code> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2333">#2333</a>, thanks <a href="https://github.com/jonasbb"><code>@jonasbb</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0353354d61"><code>0353354</code></a> Release 1.0.149</li>
<li><a href="34ae0422f4"><code>34ae042</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2333">#2333</a> from jonasbb/remove-trait-bounds</li>
<li><a href="cc128feb4c"><code>cc128fe</code></a> Remove some Serialize trait bounds</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.148&new-version=1.0.149)](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](https://github.com/serde-rs/serde) from 1.0.147 to 1.0.148.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.148</h2>
<ul>
<li>Support <code>remote</code> derive for generic types that have private fields (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2327">#2327</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7766103174"><code>7766103</code></a> Release 1.0.148</li>
<li><a href="30f7c7110d"><code>30f7c71</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2331">#2331</a> from dtolnay/remote</li>
<li><a href="50354c2d0b"><code>50354c2</code></a> Improve error message on remote derive duplicate generics</li>
<li><a href="c4f67e679f"><code>c4f67e6</code></a> Add ui test of duplicate generics in remote derive</li>
<li><a href="0daafe423f"><code>0daafe4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2330">#2330</a> from dtolnay/remote</li>
<li><a href="37021910c9"><code>3702191</code></a> Fix Into conversion involving generic remote derive with getter</li>
<li><a href="7328b34810"><code>7328b34</code></a> Add test of generic remote derive with getter</li>
<li><a href="fabbd2b097"><code>fabbd2b</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2329">#2329</a> from dtolnay/safety</li>
<li><a href="6814f978d7"><code>6814f97</code></a> Revert Buf::as_str safety change from PR 2319</li>
<li><a href="4ea403c54a"><code>4ea403c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2328">#2328</a> from dtolnay/remote</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.148">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.147&new-version=1.0.148)](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 [indexmap](https://github.com/bluss/indexmap) from 1.9.1 to 1.9.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/bluss/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p>
<blockquote>
<ul>
<li>
<p>1.9.2</p>
<ul>
<li><code>IndexMap</code> and <code>IndexSet</code> both implement <code>arbitrary::Arbitrary<'_></code> and
<code>quickcheck::Arbitrary</code> if those optional dependency features are enabled.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4d52cf338c"><code>4d52cf3</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bluss/indexmap/issues/247">#247</a> from cuviper/arbitrary-1.x</li>
<li><a href="4d410509d2"><code>4d41050</code></a> Release 1.9.2</li>
<li><a href="bc1a12f7f3"><code>bc1a12f</code></a> Add an Arbitrary release note</li>
<li><a href="2251812717"><code>2251812</code></a> impl Arbitrary for IndexMap and IndexSet</li>
<li><a href="fe98ec2a03"><code>fe98ec2</code></a> Revert "Run CI on 1.56.1 until next hashbrown release"</li>
<li>See full diff in <a href="https://github.com/bluss/indexmap/compare/1.9.1...1.9.2">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=indexmap&package-manager=cargo&previous-version=1.9.1&new-version=1.9.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>
This Pull Request offers a fuzzer which is capable of detecting faults in the parser and interner. It does so by ensuring that the parsed AST remains the same between a parsed source and the result of parsing the `to_interned_string` result of the first parsed source.
It changes the following:
- Adds a fuzzer for the parser and interner.
Any issues I raise in association with this fuzzer will link back to this fuzzer.
You may run the fuzzer using the following commands:
```bash
$ cd boa_engine
$ cargo +nightly fuzz run -s none parser-idempotency
```
Co-authored-by: Addison Crump <addison.crump@cispa.de>
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.15.0 to 1.16.0.
<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.16.0</h2>
<ul>
<li>Add <code>no_std</code> implementation based on <code>critical-section</code>,
<a href="https://github-redirect.dependabot.com/matklad/once_cell/pull/195">#195</a>.</li>
<li>Deprecate <code>atomic-polyfill</code> feature (use the new <code>critical-section</code> instead)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="18e47d7308"><code>18e47d7</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/206">#206</a></li>
<li><a href="06ff1bd31f"><code>06ff1bd</code></a> publish 1.16.0</li>
<li><a href="04e1d59ce7"><code>04e1d59</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/204">#204</a></li>
<li><a href="32ba3f8aa8"><code>32ba3f8</code></a> clarify MSRV</li>
<li><a href="0ebafa5d2f"><code>0ebafa5</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/203">#203</a></li>
<li><a href="cb85e6b8b8"><code>cb85e6b</code></a> publish 1.16.0-pre.1</li>
<li><a href="b56e329d70"><code>b56e329</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/195">#195</a></li>
<li><a href="7d9afdb9d7"><code>7d9afdb</code></a> Add comment explaining <code>Mutex\<unsync::OnceCell></code>.</li>
<li><a href="32dada4dbe"><code>32dada4</code></a> Fix features.</li>
<li><a href="23d129038f"><code>23d1290</code></a> Decrease <code>critical-section</code> version.</li>
<li>Additional commits viewable in <a href="https://github.com/matklad/once_cell/compare/v1.15.0...v1.16.0">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.15.0&new-version=1.16.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 [serde](https://github.com/serde-rs/serde) from 1.0.145 to 1.0.147.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.147</h2>
<ul>
<li>Add <code>serde:🇩🇪:value::EnumAccessDeserializer</code> which transforms an <code>EnumAccess</code> into a <code>Deserializer</code> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2305">#2305</a>)</li>
</ul>
<h2>v1.0.146</h2>
<ul>
<li>Allow internally tagged newtype variant to contain unit (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2303">#2303</a>, thanks <a href="https://github.com/tage64"><code>@tage64</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f41509261e"><code>f415092</code></a> Release 1.0.147</li>
<li><a href="6d009711a2"><code>6d00971</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2305">#2305</a> from serde-rs/enumaccessdeserializer</li>
<li><a href="354b48fd40"><code>354b48f</code></a> Add EnumAccessDeserializer to turn EnumAccess into a Deserializer</li>
<li><a href="3fd8e52f0c"><code>3fd8e52</code></a> Release 1.0.146</li>
<li><a href="142dce0d3d"><code>142dce0</code></a> Touch up PR 2303</li>
<li><a href="6aed101630"><code>6aed101</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2303">#2303</a> from tage64/master</li>
<li><a href="e2ccfd9ea7"><code>e2ccfd9</code></a> Remove bad deserialization from sequence to internally tagged newtype variant...</li>
<li><a href="a07d794f74"><code>a07d794</code></a> Update test_suite/tests/test_annotations.rs</li>
<li><a href="90d28fc314"><code>90d28fc</code></a> Serialize and deserialize a tagged newtype variant over unit () as if it was ...</li>
<li><a href="55cf0ac51a"><code>55cf0ac</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2297">#2297</a> from serde-rs/output</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.145...v1.0.147">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.145&new-version=1.0.147)](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>
I think it's time to address the elephant in the room.
This Pull Request will (hopefully!) solve part of #736.
This is a complete rewrite of `JsString`, but instead of storing `u8` bytes it stores `u16` words. The `encode!` macro (renamed to `utf16!` for simplicity) from the `const-utf16` crate allows us to create UTF-16 encoded arrays at compilation time. `JsString` implements `Deref<Target=[u16]>` to unlock the slice methods and possibly make some manipulations easier. However, we would need to create our own library of utilities for `JsString`.
This Pull Request switches our codebase to the brand new [workspace inherited keys](https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table), which allows us to define common package options that are usable within each crate's Cargo.toml file.
It also allows to share dependency versions between crates, but I defined only shared versions for our workspace members. It would be a good follow-up to lift all the shared dependencies between crates into the global Cargo.toml.
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.144 to 1.0.145.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.145</h2>
<ul>
<li>Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is <code>Sized</code> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2282">#2282</a>, thanks <a href="https://github.com/ChayimFriedman2"><code>@ChayimFriedman2</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8c036ee5a3"><code>8c036ee</code></a> Release 1.0.145</li>
<li><a href="d99009f3c6"><code>d99009f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2282">#2282</a> from ChayimFriedman2/sized-mutex-refcell-rwlock</li>
<li><a href="be3c37eb8b"><code>be3c37e</code></a> Serialize unsized <code>RefCell</code>, <code>Mutex</code> and <code>RwLock</code></li>
<li><a href="f0346ae054"><code>f0346ae</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2281">#2281</a> from dtolnay/try</li>
<li><a href="fa6ce42056"><code>fa6ce42</code></a> Redefine 'try' macro to omit From::from error conversion</li>
<li><a href="a9320db6f9"><code>a9320db</code></a> Consistently avoid '?' throughout serde crate</li>
<li><a href="d208762c81"><code>d208762</code></a> Command-line ignore let_underscore_drop clippy lint</li>
<li><a href="5386897d24"><code>5386897</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2273">#2273</a> from sashashura/patch-1</li>
<li><a href="68eb59df0c"><code>68eb59d</code></a> Update ci.yml</li>
<li><a href="a7f4551669"><code>a7f4551</code></a> Add dev-dependencies keyword for serde_test</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.144...v1.0.145">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.144&new-version=1.0.145)](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](https://github.com/serde-rs/serde) from 1.0.143 to 1.0.144.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.144</h2>
<ul>
<li>Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2263">#2263</a>, thanks <a href="https://github.com/taiki-e"><code>@taiki-e</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f52d134c14"><code>f52d134</code></a> Release 1.0.144</li>
<li><a href="6660676b0d"><code>6660676</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2263">#2263</a> from taiki-e/ordering</li>
<li><a href="1d42d3571a"><code>1d42d35</code></a> Relax orderings of Serialize impl for atomic types to match the latest stable</li>
<li><a href="ebd06eebdb"><code>ebd06ee</code></a> Link to apache-avro crate's published docs</li>
<li><a href="f1985823a3"><code>f198582</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2258">#2258</a> from Mottl/patch-1</li>
<li><a href="60e4092b8e"><code>60e4092</code></a> Fixes link to Apache Avro in documentation</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.143...v1.0.144">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.143&new-version=1.0.144)](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 [phf](https://github.com/rust-phf/rust-phf) from 0.11.0 to 0.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/rust-phf/rust-phf/releases">phf's releases</a>.</em></p>
<blockquote>
<h2>phf v0.11.1</h2>
<h3>Chore</h3>
<ul>
<li><!-- raw HTML omitted --> point to local crates for now</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>state allowed key expressions in <code>phf_map</code></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p>remove now-unnecessary <code>proc-macro-hack</code> crate usage
Resolves <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/255">rust-phf/rust-phf#255</a>.</p>
<p>This resolves an issue with Windows Defender identifying <code>proc-macro-hack</code> as threats. It also sheds
a depedency that is no longer necessary, now that the MSRV of this crate is 1.46 and
<code>proc-macro-hack</code> is only useful for providing support for Rust versions 1.31 through 1.45. Per
<a href="https://github.com/dtolnay/proc-macro-hack">upstream</a>:</p>
<blockquote>
<p><strong>Note:</strong> <em>As of Rust 1.45 this crate is superseded by native support for #[proc_macro] in
expression position. Only consider using this crate if you care about supporting compilers between
1.31 and 1.45.</em></p>
</blockquote>
</li>
</ul>
<h3>Commit Statistics</h3>
<ul>
<li>234 commits contributed to the release over the course of 2957 calendar days.</li>
<li>3 commits where understood as <a href="https://www.conventionalcommits.org">conventional</a>.</li>
<li>1 unique issue was worked on: <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/249">#249</a></li>
</ul>
<h3>Commit Details</h3>
<!-- raw HTML omitted -->
<!-- raw HTML omitted -->
<ul>
<li><strong><a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/249">#249</a></strong>
<ul>
<li>Add <code>Map::new()</code> function and <code>Default</code> implementation to create new, empty map (baac7d0)</li>
</ul>
</li>
<li><strong>Uncategorized</strong>
<ul>
<li>Replace handmade changelog with generated one by <code>cargo-smart-release</code> (cb84cf6)</li>
<li>Add category to crates (32a72c3)</li>
<li>Update repository links on Cargo.toml (1af3b0f)</li>
<li>Release 0.11.0 (d2efdc0)</li>
<li>Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/257">#257</a> from JohnTitor/edition-2021 (36ec885)</li>
<li>Make crates edition 2021 (b9d25da)</li>
<li>remove now-unnecessary <code>proc-macro-hack</code> crate usage (caf1ce7)</li>
<li>point to local crates for now (92e7b43)</li>
<li>Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/253">#253</a> from JohnTitor/action-tweaks (a3e04bc)</li>
<li>Fix some Clippy warnings (71fd47c)</li>
<li>Make "unicase + macros" features work (11bb242)</li>
<li>Prepare 0.10.1 release (4cc8344)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-phf/rust-phf/blob/master/RELEASE_PROCESS.md">phf's changelog</a>.</em></p>
<blockquote>
<h1>How to make a new release</h1>
<p>Since v0.11.1, this repository uses <a href="https://crates.io/crates/cargo-smart-release"><code>cargo-smart-release</code></a> to release crates.</p>
<h2>Installation</h2>
<pre lang="sh"><code>cargo install cargo-smart-release
</code></pre>
<h2>Before running <code>cargo-smart-release</code></h2>
<p>If the next version has a major change or bumps MSRV, i.e. it increases a minor version on <code>v0.Y.Z</code> or a major version on <code>vX.Y.Z</code>,
update the versions mentioned on the README and doc comments (and CI config if it touches MSRV).</p>
<h2>Run <code>cargo-smart-release</code></h2>
<p>First, just run:</p>
<pre lang="sh"><code>cargo smart-release phf phf_codegen phf_generator phf_macros phf_shared
</code></pre>
<p>This would show what <code>cargo-smart-release</code> would do, e.g. how it updates the version number, changelog, etc.
If you satisfy the output, run:</p>
<pre lang="sh"><code>cargo smart-release -u -e phf phf_codegen phf_generator phf_macros phf_shared
</code></pre>
<p>This would make actual releases. <code>-e</code> means that it executes actual releases and <code>-u</code> means that it always updates crates-index.
<code>cargo-smart-release</code> also takes care of the Git tags.</p>
<p>After executing it, ensure that all the releases are actually happened and the tags are pushed.
If all the things are fine, that's it!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3897b21c6d"><code>3897b21</code></a> Release phf_shared v0.11.1, phf_generator v0.11.1, phf_macros v0.11.1, phf v0...</li>
<li><a href="3c6af3f7d7"><code>3c6af3f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/265">#265</a> from rust-phf/unpin-criterion</li>
<li><a href="27a2ce4b07"><code>27a2ce4</code></a> phf_generator: Unpin the <code>criterion</code> dependency</li>
<li><a href="97f997d2be"><code>97f997d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/264">#264</a> from rust-phf/tweak-changelog</li>
<li><a href="cb84cf6636"><code>cb84cf6</code></a> Replace handmade changelog with generated one by <code>cargo-smart-release</code></li>
<li><a href="d441940cbb"><code>d441940</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/263">#263</a> from lopopolo/lopopolo/rand-no-default-features</li>
<li><a href="deefda1cdf"><code>deefda1</code></a> Disable default features for rand dep in phf_generator</li>
<li><a href="1407ebe536"><code>1407ebe</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-phf/rust-phf/issues/260">#260</a> from JohnTitor/fix-repo-link</li>
<li><a href="488b1638d2"><code>488b163</code></a> Fix a typo</li>
<li><a href="e0b34fa0a6"><code>e0b34fa</code></a> Add README.md for some crates</li>
<li>Additional commits viewable in <a href="https://github.com/rust-phf/rust-phf/compare/v0.11.0...phf-v0.11.1">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=phf&package-manager=cargo&previous-version=0.11.0&new-version=0.11.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 [serde](https://github.com/serde-rs/serde) from 1.0.142 to 1.0.143.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.143</h2>
<ul>
<li>Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2253">#2253</a>, thanks <a href="https://github.com/taiki-e"><code>@taiki-e</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3d0251666e"><code>3d02516</code></a> Release 1.0.143</li>
<li><a href="7770da4929"><code>7770da4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2253">#2253</a> from taiki-e/test-cfg</li>
<li><a href="a5fd85a9ef"><code>a5fd85a</code></a> Invert build.rs cfgs in serde_test</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.142...v1.0.143">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.142&new-version=1.0.143)](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](https://github.com/serde-rs/serde) from 1.0.141 to 1.0.142.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.142</h2>
<ul>
<li>Add keywords to crates.io metadata</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="abb2a8494d"><code>abb2a84</code></a> Release 1.0.142</li>
<li><a href="a31d0be191"><code>a31d0be</code></a> Update keywords in crates.io metadata</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.141...v1.0.142">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.141&new-version=1.0.142)](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](https://github.com/serde-rs/serde) from 1.0.140 to 1.0.141.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.141</h2>
<ul>
<li>Add <code>no-std</code> category to crates.io metadata</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d786e750d7"><code>d786e75</code></a> Release 1.0.141</li>
<li><a href="10e4839f83"><code>10e4839</code></a> Move Postcard link up to Bincode spot</li>
<li><a href="85e72653c8"><code>85e7265</code></a> Add categories to crates.io metadata</li>
<li><a href="c9cc8a8924"><code>c9cc8a8</code></a> Add authors to Cargo.toml</li>
<li><a href="a925ce4119"><code>a925ce4</code></a> Sort package entries in Cargo.toml</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.140...v1.0.141">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.140&new-version=1.0.141)](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](https://github.com/serde-rs/serde) from 1.0.139 to 1.0.140.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.140</h2>
<ul>
<li>Invert serde_derive cfgs to convenience non-Cargo builds on a modern toolchain (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2251">#2251</a>, thanks <a href="https://github.com/taiki-e"><code>@taiki-e</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c5f6338ce2"><code>c5f6338</code></a> Release 1.0.140</li>
<li><a href="5185487d73"><code>5185487</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2251">#2251</a> from taiki-e/derive-cfg</li>
<li><a href="efaafd4458"><code>efaafd4</code></a> Invert build.rs cfgs in serde_derive</li>
<li><a href="a0eb83a5d4"><code>a0eb83a</code></a> Resolve invalid_utf8_in_unchecked clippy lint in ancient test code</li>
<li><a href="7cc6f7fbb0"><code>7cc6f7f</code></a> Ignore new_without_default clippy lint</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.139...v1.0.140">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.139&new-version=1.0.140)](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](https://github.com/serde-rs/serde) from 1.0.138 to 1.0.139.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.139</h2>
<ul>
<li>Add <code>new</code> constructor function for all <code>IntoDeserializer</code> impls (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2246">#2246</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="44b9496c91"><code>44b9496</code></a> Release 1.0.139</li>
<li><a href="7e1486d0da"><code>7e1486d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2246">#2246</a> from dtolnay/valuedenew</li>
<li><a href="8170ffef2e"><code>8170ffe</code></a> Add constructor function for all IntoDeserializer impls</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.138...v1.0.139">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.138&new-version=1.0.139)](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](https://github.com/serde-rs/serde) from 1.0.137 to 1.0.138.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.138</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4b622f6bbf"><code>4b622f6</code></a> Release 1.0.138</li>
<li><a href="0ee71c70af"><code>0ee71c7</code></a> Ignore explicit_auto_deref clippy lint</li>
<li><a href="6c098e497e"><code>6c098e4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2240">#2240</a> from Kixunil/patch-1</li>
<li><a href="41ffa6df7e"><code>41ffa6d</code></a> Call <code>reserve()</code> in <code>DeserializeSeed</code> example</li>
<li><a href="845b900fd5"><code>845b900</code></a> Exclude deliberately pinned prettyplease crate from cargo outdated</li>
<li><a href="7891ae7184"><code>7891ae7</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2228">#2228</a> from serde-rs/expandtest</li>
<li><a href="bac90d19b9"><code>bac90d1</code></a> Update macrotest to 1.0.9 and enable in CI</li>
<li><a href="227bf3023a"><code>227bf30</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2229">#2229</a> from dtolnay/expandlinguist</li>
<li><a href="f4535f68c1"><code>f4535f6</code></a> Mark expandtest outputs as generated code</li>
<li><a href="c6c35b5a31"><code>c6c35b5</code></a> Ignore buggy doc_link_with_quotes clippy lint</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.137...v1.0.138">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.137&new-version=1.0.138)](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>
So, @raskad and myself had a short discussion about the state of #736, and we came to the conclusion that it would be a good time to implement our own string interner; partly because the `string-interner` crate is a bit unmaintained (as shown by https://github.com/Robbepop/string-interner/pull/42 and https://github.com/Robbepop/string-interner/pull/47), and partly because it would be hard to experiment with custom optimizations for UTF-16 strings. I still want to thank @Robbepop for the original implementation though, because some parts of this design have been shamelessly stolen from it 😅.
Having said that, this PR is a complete reimplementation of the interner, but with some modifications to (hopefully!) make it a bit easier to experiment with UTF-16 strings, apply optimizations, and whatnot :)
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->
This Pull Request integrates an `ICU4X` data provider API in our codebase, to make use of the internationalization APIs that this crate provides.
It changes the following:
- Creates an API for pluggable icu data providers at `Context` creation, adding an `Icu` struct to store the provider (and some other internationalization tools) at runtime.
- Slightly changes locale related functions to preserve the `Locale` type and ensure correctness. (Will make some other changes related to this).
- Integrates the `sys_locale` crate to fetch the current default locale of an user instead of always returning `en-US`.
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.136 to 1.0.137.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.137</h2>
<ul>
<li>Update documentation links to some data formats whose repos have moved (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2201">#2201</a>, thanks <a href="https://github.com/atouchet"><code>@atouchet</code></a>)</li>
<li>Fix declared <code>rust-version</code> of serde and serde_test (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2168">#2168</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="17c3c0cf86"><code>17c3c0c</code></a> Release 1.0.137</li>
<li><a href="210e6c354e"><code>210e6c3</code></a> Clean up clippy allows which are superseded by msrv in clippy.toml</li>
<li><a href="41823a96df"><code>41823a9</code></a> Ignore more type_repetition_in_bounds</li>
<li><a href="7ca13ff240"><code>7ca13ff</code></a> Ignore type_repetition_in_bounds lint that is incompatible with msrv</li>
<li><a href="52391fd868"><code>52391fd</code></a> Inform clippy of supported compiler version in clippy.toml</li>
<li><a href="9b2d8dfc6b"><code>9b2d8df</code></a> Add a miri test job in CI</li>
<li><a href="07ba7ea8dd"><code>07ba7ea</code></a> Update workflows to actions/checkout@v3</li>
<li><a href="9f29f6bb4a"><code>9f29f6b</code></a> Disable expandtest on miri</li>
<li><a href="f6c104fd1d"><code>f6c104f</code></a> Ignore unused ignore attribute warning in some configurations</li>
<li><a href="8a3a6fb101"><code>8a3a6fb</code></a> Disable ui test on miri</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.136...v1.0.137">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.136&new-version=1.0.137)](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>
This Pull Request closes#1948.
It changes the following:
- set `readme` in `boa_engine` so `README.md` will be published to crates.io
- remove unnecessary `exclude` field from `Cargo.toml` in all apps
I was unsure whether using a path outside of the workspace root was allowed for `readme` since it [doesn't get included in the release tarball](https://github.com/rust-lang/cargo/issues/5911), but this exact path is used by [juniper](https://github.com/graphql-rust/juniper/blob/master/juniper/Cargo.toml#L13) and [seems to work there](https://crates.io/crates/juniper). I believe `cargo publish` does a bit more than just uploading the tarball, including pulling the `readme` from any arbitrary path.
The default behaviour of `cargo package`/`cargo publish` if neither `exclude` or `include` is specified is to include all files from the package root, excluding
- dotfiles
- .gitignore'd files
- subpackages (any subdirectory with a `Cargo.toml` file)
- the `/target` directory
There's no need to explicitly exclude files from the parent directory since they're already excluded by default. This can be verified by running `cargo package --list` inside any workspace app:
```plain
$ cd boa_wasm
$ cargo package --list
.gitignore
Cargo.toml
Cargo.toml.orig
src/lib.rs
```
You can read more [here](https://doc.rust-lang.org/cargo/reference/manifest.html#the-exclude-and-include-fields).
The main idea behind this is to upgrade the Unicode version from 13 to 14. I also upgraded the rest of the dependencies, so this closes#1802, #1800 and #1799.
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.134 to 1.0.135.
<details>
<summary>Commits</summary>
<ul>
<li><a href="8932c852a5"><code>8932c85</code></a> Release 1.0.135</li>
<li><a href="9f3dd3c7c4"><code>9f3dd3c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2163">#2163</a> from serde-rs/discord</li>
<li><a href="dd9b415ff9"><code>dd9b415</code></a> Add discord invite links</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.134...v1.0.135">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.134&new-version=1.0.135)](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>
This builds on top of #1758 to try to bring #1763 to life.
Something that should probably be done here would be to convert `JsString` to a `Sym` internally. Then, further optimizations could be done adding common strings to a custom interner type (those that we know statically).
This is definitely work in progress, but I would like to have feedback on the API, and feel free to contribute.
Co-authored-by: raskad <32105367+raskad@users.noreply.github.com>
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?