<!---
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 related to #2098.
It changes the following:
- Implements a wrapper for the `Generator` built-in object
- Adds to some of the documentation across the builtin wrappers with the goal of trying to clean up the documentation by making it a bit more consistent [on boa's docs](https://boa-dev.github.io/boa/doc/boa_engine/object/builtins/index.html)
This Pull Request allows collisions of var declarations with already existing lexical bindings if the `eval` call is strict or occurs within strict code. In short, it allows:
```Javascript
{
let x;
{
eval('"use strict"; var x;');
}
}
```
and
```Javascript
"use strict";
{
let x;
{
eval('var x;');
}
}
```
This is valid since in strict code all `eval` calls get their own function environment, making it impossible to declare a new var in the outer function environment. This change also skips poisoning environments on strict code, because `eval` cannot add new declarations for the current environment in that situation.
The documentation page of our blog is a whooping 532 MB in size. This is because we're uploading the whole documentation of all our deps instead of only our crates. This PR modifies our CI to only upload a lightweight version of our documentation, which excludes all deps (replaces all hyperlinks with crates.io links) and only builds our crates docs. This brings the total size of our docs down to 87 MB.
This Pull Request implements member accessors in `for ... in` and `for ... of` loops. This unlocks patterns like:
```Javascript
let obj = {a: 0, b: 1};
for (obj.a of [1,2,3]) {
}
console.log(obj.a) // 3
```
This updates the Code of Conduct to the Contributor Covenant v2.1 version (we were using the 2.0 version until now). Changes are very minor. As far as I can tell, the only content difference is the explicit mention of _caste_ and _color_ among the potential traits that could cause harassment.
Then it just changes the format a bit to make links a bit more user friendly, by not posting URLs directly.
But I have a question: should we update the contact method? It currently says the following:
> Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [discord](https://discord.gg/tUFFk9Y) by contacting _JaseW_.
Maybe we should mention the `@boa-dev` group, and that they can contact anyone there. What do you think? I would also like to update this before https://github.com/boa-dev/ryu-js/pull/22
Currently we run 7 different jobs:
- tests linux
- tests macos
- tests windows
- rustfmt
- clippy
- examples
- documentation
With this change I reduced them to 4 and hopefully sped them up.
The total execution time is limited by the tests, especially linux that calculates coverage. Having separate jobs for clippy and rustfmt (which take a very small amount of time) is a waste of energy.
With this PR:
Introduced a new cargo profile, `ci`, that should create smaller sized binaries and reduce the our cache usage.
I changed the test runner for macos and windows to [nextest](https://nexte.st/), which should be faster and is specifically designed for CI.
I merged all smaller tasks in a single job, misc, the steps clearly identify what is being tested so it shouldn't affect clarity.
Switched to using the [rust-cache](https://github.com/Swatinem/rust-cache) GH action, this simplifies our work by no longer having to worry about which directories to cache, rust-cache handles all that for us.
~~The bors task should also be modified, I'll get to it as soon as I have time. I believe it should be possible for us to have a single workflow described and have it both be the normal CI and the bors test.~~
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>
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.9.13 to 0.9.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/serde-yaml/releases">serde_yaml's releases</a>.</em></p>
<blockquote>
<h2>0.9.14</h2>
<ul>
<li>Implement <code>Deserializer</code> for <code>TaggedValue</code> and <code>&TaggedValue</code> (<a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/issues/339">#339</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8948d368c0"><code>8948d36</code></a> Release 0.9.14</li>
<li><a href="8d95125eed"><code>8d95125</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/serde-yaml/issues/339">#339</a> from dtolnay/deserializertaggedvalue</li>
<li><a href="371f764d32"><code>371f764</code></a> Implement Deserializer for TaggedValue and &TaggedValue</li>
<li><a href="c5523fe475"><code>c5523fe</code></a> Replace nonstandard SError name used only in Value Deserialize</li>
<li><a href="516fdff567"><code>516fdff</code></a> Ignore uninlined_format_args pedantic clippy lint</li>
<li><a href="31fa98e396"><code>31fa98e</code></a> Pull in unsafe-libyaml 0.2.4</li>
<li>See full diff in <a href="https://github.com/dtolnay/serde-yaml/compare/0.9.13...0.9.14">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_yaml&package-manager=cargo&previous-version=0.9.13&new-version=0.9.14)](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 [boa-dev/criterion-compare-action](https://github.com/boa-dev/criterion-compare-action) from 3.2.3 to 3.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/boa-dev/criterion-compare-action/releases">boa-dev/criterion-compare-action's releases</a>.</em></p>
<blockquote>
<h2>v3.2.4</h2>
<p>This release fixes an issue that could happen in some cases when checking out the base branch. It also updates dependencies.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="adfd3a9463"><code>adfd3a9</code></a> Bumped version number</li>
<li><a href="ad09f21939"><code>ad09f21</code></a> Fixing git checkout error (<a href="https://github-redirect.dependabot.com/boa-dev/criterion-compare-action/issues/79">#79</a>)</li>
<li><a href="421db6a51d"><code>421db6a</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/boa-dev/criterion-compare-action/issues/78">#78</a> from boa-dev/dependabot/github_actions/actions/setup-n...</li>
<li><a href="aaf4259b7b"><code>aaf4259</code></a> Bump actions/setup-node from 3.4.1 to 3.5.1</li>
<li>See full diff in <a href="https://github.com/boa-dev/criterion-compare-action/compare/v3.2.3...v3.2.4">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=boa-dev/criterion-compare-action&package-manager=github_actions&previous-version=3.2.3&new-version=3.2.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>
Bumps [test262](https://github.com/tc39/test262) from `ee7c379` to `b5d3192`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="b5d3192914"><code>b5d3192</code></a> Temporal: Test Calendar.p.mergeFields enumeration changes</li>
<li><a href="99bc91e0f5"><code>99bc91e</code></a> Temporal: Test change from MergeLargestUnitOption to CopyDataProperties</li>
<li><a href="dfbeca3c79"><code>dfbeca3</code></a> Temporal: Fix mergeFields test for non-string keys</li>
<li><a href="d59d28defa"><code>d59d28d</code></a> Meta: Add GraalJS issue reporting link</li>
<li><a href="4161042bf7"><code>4161042</code></a> Upgrade esvu</li>
<li><a href="1f59bf5911"><code>1f59bf5</code></a> Temporal: Add tests for fast path in ToTemporalTimeZone</li>
<li><a href="34805283d9"><code>3480528</code></a> Temporal: Add tests for fast path in ToTemporalCalendar</li>
<li><a href="fefa14c285"><code>fefa14c</code></a> Temporal: Clarify names of some time zone tests</li>
<li><a href="5a858cc0c4"><code>5a858cc</code></a> Add missing includes to toSorted/toReversed this-value-invalid.js tests</li>
<li><a href="6f4601d095"><code>6f4601d</code></a> Add "Change Array by Copy" tests (stage 3) (<a href="https://github-redirect.dependabot.com/tc39/test262/issues/3464">#3464</a>)</li>
<li>Additional commits viewable in <a href="ee7c379375...b5d3192914">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>
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->
Just a small fix to a typo in the comment on the PR template 😄
In most cases, the `ToInternedString` was just calling `self.to_indented_string(interner, 0)`. This avoids all this duplicate code by adding a new trait, `ToIndentedString`. Any type implementing that automatically implements `ToInternedString`.
I have also added a bunch of `#[inline]` in one-liners, and some one-line documentations for some functions.
I have noticed that we also use `contains()` and `contains_arguments()` a lot. Would it make sense to create traits for this?
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel necessary.
--->
Hi!
This isn't really related to a pull request that I know of. I was trying to better wrap my head around Boa's VM and thought I'd break it apart so that the file wasn't 2500+ lines. I figured I'd submit it as a draft and get feedback/see if anyone was interested in it. The way the modules were broken apart was primarily based off the opcode name (`GetFunction` & `GetFunctionAsync` -> `./get/function.rs`).
It changes the following:
- Adds an `Operation` trait to opcode/mod.rs
- Implements `Operation` for each Opcode variant, moving the executable instruction code from `vm/mod.rs` to the respective module
Co-authored-by: raskad <32105367+raskad@users.noreply.github.com>
This Pull Request changes the following:
- Fix error in `Proxy` set implementation
After this all other failing `Proxy` tests fail because of us missing the `with` implementation.
Co-authored-by: RageKnify <RageKnify@gmail.com>
This Pull Request changes the following:
- Implements the `LabelledStatement` Parse node.
- Removes `label` from all label-able items (switch, blocks and loop statements).
- Adjusts parsing to the new AST.
#2295 isn't fixed by this, but with this change it should be easier to fix.
Boa's `Context::eval()` and `Context::parse()` functions allow reading a byte slice directly, apart from a string. We were not showing this properly in our examples, so this modifies the `loadfile.rs` example to use a byte vector instead of a string, which allows us to use UTF-16 files, if I'm not mistaken.
We were always getting a "VM Implementation" headline in Test262 results for PRs. This was a leftover from the time when we had 2 distinct implementations for the execution. This is no longer the case, so we can remove it to reduce clutter.
This Pull Request fixes a small error in the documentation of `Context::register_global_function()` method, and a few clippy errors we were getting in the tests.
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.17 to 4.0.18.
<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.0.18</h2>
<h2>[4.0.18] - 2022-10-20</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Allow <code>#[command(skip)]</code> to also work with enum variants with a value</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.0.18] - 2022-10-20</h2>
<h3>Fixes</h3>
<ul>
<li><em>(derive)</em> Allow <code>#[command(skip)]</code> to also work with enum variants with a value</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7e2a1b5d94"><code>7e2a1b5</code></a> chore: Release</li>
<li><a href="3a0f9fe4a2"><code>3a0f9fe</code></a> docs: Update changelog</li>
<li><a href="422298ceb3"><code>422298c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4412">#4412</a> from epage/skip</li>
<li><a href="91daec67ca"><code>91daec6</code></a> fix(derive): Allow skipping enum variants with a value</li>
<li><a href="996636d56f"><code>996636d</code></a> chore: Release</li>
<li><a href="3e23cd102f"><code>3e23cd1</code></a> fix: Require release versions of clap</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.17...v4.0.18">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.0.17&new-version=4.0.18)](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 [syn](https://github.com/dtolnay/syn) from 1.0.102 to 1.0.103.
<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.103</h2>
<ul>
<li>Implement <code>PartialOrd</code> for <code>Cursor</code> (<a href="https://github-redirect.dependabot.com/dtolnay/syn/issues/1236">#1236</a>, <a href="https://github-redirect.dependabot.com/dtolnay/syn/issues/1237">#1237</a>, thanks <a href="https://github.com/CAD97"><code>@CAD97</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c29c2abf1b"><code>c29c2ab</code></a> Release 1.0.103</li>
<li><a href="8e81cad736"><code>8e81cad</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/syn/issues/1237">#1237</a> from dtolnay/partialord</li>
<li><a href="8db5adbb2b"><code>8db5adb</code></a> Ignore cast_possible_wrap pedantic clippy lint</li>
<li><a href="f6f7d8a6b3"><code>f6f7d8a</code></a> Restrict PartialOrd comparison to only tokens in the same buffer</li>
<li><a href="8dd9b01c58"><code>8dd9b01</code></a> Touch up PR 1236</li>
<li><a href="2b3f742696"><code>2b3f742</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/syn/issues/1236">#1236</a> from CAD97/cursor-cmp</li>
<li><a href="f6a43aa4d6"><code>f6a43aa</code></a> Handle the case where verbatim enters a None group</li>
<li><a href="e9fb6a9ea5"><code>e9fb6a9</code></a> Implement PartialOrd for Cursor</li>
<li><a href="26a605e565"><code>26a605e</code></a> Add test for Item::Verbatim splitting a None group</li>
<li><a href="a807b16011"><code>a807b16</code></a> Update test suite to nightly-2022-10-13</li>
<li>Additional commits viewable in <a href="https://github.com/dtolnay/syn/compare/1.0.102...1.0.103">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.102&new-version=1.0.103)](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 [anyhow](https://github.com/dtolnay/anyhow) from 1.0.65 to 1.0.66.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/dtolnay/anyhow/releases">anyhow's releases</a>.</em></p>
<blockquote>
<h2>1.0.66</h2>
<ul>
<li>Reduce unhelpful backtrace frames in backtraces captured during a <code>context</code> call (<a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/279">#279</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="8de29aafd4"><code>8de29aa</code></a> Release 1.0.66</li>
<li><a href="54fc812209"><code>54fc812</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/dtolnay/anyhow/issues/279">#279</a> from dtolnay/contextbacktrace</li>
<li><a href="131249b11c"><code>131249b</code></a> Remove 2 frames of noise from 'context' backtraces</li>
<li><a href="f2123ab51b"><code>f2123ab</code></a> Ui test changes for trybuild 1.0.66</li>
<li><a href="9bd74a1540"><code>9bd74a1</code></a> Restore pre-nightly-2022-10-05 behavior of test_path PhantomData tests</li>
<li><a href="77c4fa4566"><code>77c4fa4</code></a> Update test suite to nightly-2022-10-05</li>
<li><a href="7b171d651d"><code>7b171d6</code></a> Ignore bool_to_int_with_if clippy lint in test suite</li>
<li><a href="94ae34b0d5"><code>94ae34b</code></a> Raise minimum tested toolchain to rust 1.56</li>
<li><a href="94f6f4df66"><code>94f6f4d</code></a> Remove default package.readme metadata from Cargo.toml</li>
<li>See full diff in <a href="https://github.com/dtolnay/anyhow/compare/1.0.65...1.0.66">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anyhow&package-manager=cargo&previous-version=1.0.65&new-version=1.0.66)](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.86 to 1.0.87.
<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.87</h2>
<ul>
<li>Add <code>write_i128</code> and <code>write_u128</code> methods to <code>serde_json::Formatter</code> to control the formatting of 128-bit integers (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/940">#940</a>, thanks <a href="https://github.com/Lucretiel"><code>@Lucretiel</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="993e7a6eea"><code>993e7a6</code></a> Release 1.0.87</li>
<li><a href="31070349af"><code>3107034</code></a> Eliminate needless 'tri!' from Serializer impl</li>
<li><a href="46c9778ce1"><code>46c9778</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/942">#942</a> from serde-rs/integer128</li>
<li><a href="37e76e0f85"><code>37e76e0</code></a> Assume serde_if_integer128 is true</li>
<li><a href="ec0456ad7b"><code>ec0456a</code></a> Use existing macros to implement 128-bit From impls</li>
<li><a href="c183125e04"><code>c183125</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/json/issues/941">#941</a> from serde-rs/alloc</li>
<li><a href="ab0f884fb6"><code>ab0f884</code></a> Delete 1.36+ caveat from descriptions of alloc feature</li>
<li><a href="486598bbef"><code>486598b</code></a> Merge pull request 940 from Lucretiel/int128</li>
<li><a href="84d6d95e01"><code>84d6d95</code></a> Add direct support for i128 and u128 via itoa</li>
<li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.86...v1.0.87">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.86&new-version=1.0.87)](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 is an experiment that tries to migrate the codebase from eager `Error` objects to lazy ones.
In short words, this redefines `JsResult = Result<JsValue, JsError>`, where `JsError` is a brand new type that stores only the essential part of an error type, and only transforms those errors to `JsObject`s on demand (when having to pass them as arguments to functions or store them inside async/generators).
This change is pretty big, because it unblocks a LOT of code from having to take a `&mut Context` on each call. It also paves the road for possibly making `JsError` a proper variant of `JsValue`, which can be a pretty big optimization for try/catch.
A downside of this is that it exposes some brand new error types to our public API. However, we can now implement `Error` on `JsError`, making our `JsResult` type a bit more inline with Rust's best practices.
~Will mark this as draft, since it's missing some documentation and a lot of examples, but~ it's pretty much feature complete. As always, any comments about the design are very much appreciated!
Note: Since there are a lot of changes which are essentially just rewriting `context.throw` to `JsNativeError::%type%`, I'll leave an "index" of the most important changes here:
- [boa_engine/src/error.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-f15f2715655440626eefda5c46193d29856f4949ad37380c129a8debc6b82f26)
- [boa_engine/src/builtins/error/mod.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-3eb1e4b4b5c7210eb98192a5277f5a239148423c6b970c4ae05d1b267f8f1084)
- [boa_tester/src/exec/mod.rs](https://github.com/boa-dev/boa/pull/2283/files#diff-fc3d7ad7b5e64574258c9febbe56171f3309b74e0c8da35238a76002f3ee34d9)
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.16 to 4.0.17.
<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.0.17</h2>
<h2>[4.0.17] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li>Allow using <code>Arg::last(true)</code> with <code>Arg::value_hint(ValueHint::CommandWithArguments)</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.0.17] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li>Allow using <code>Arg::last(true)</code> with <code>Arg::value_hint(ValueHint::CommandWithArguments)</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b9dfbbf7e4"><code>b9dfbbf</code></a> chore: Release</li>
<li><a href="a6c8f6a5bd"><code>a6c8f6a</code></a> docs: Update changelog</li>
<li><a href="e11afa284b"><code>e11afa2</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4401">#4401</a> from epage/last</li>
<li><a href="1ead5ef421"><code>1ead5ef</code></a> fix(complete): Support last(true) with CommandWithArguments</li>
<li><a href="e50a11a404"><code>e50a11a</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4399">#4399</a> from j-browne/link-fix</li>
<li><a href="a1d4476f24"><code>a1d4476</code></a> Fix a broken link in ValueEnum docs</li>
<li>See full diff in <a href="https://github.com/clap-rs/clap/compare/v4.0.16...v4.0.17">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.0.16&new-version=4.0.17)](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 `eb67a76` to `ee7c379`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="ee7c379375"><code>ee7c379</code></a> Harness: Ensure $DONE called only once in async-gc.js</li>
<li><a href="1bb7ecee5b"><code>1bb7ece</code></a> Harness: Account for Symbols being thrown in async tests</li>
<li><a href="554a18c34d"><code>554a18c</code></a> Add tests for regular and well-known Symbols as weak values</li>
<li><a href="a10968b462"><code>a10968b</code></a> Add "Symbols as WeakMap keys" feature flag</li>
<li><a href="d101ab9bc4"><code>d101ab9</code></a> Adapt descriptions of existing tests using Objects as weak values</li>
<li><a href="6291e42a72"><code>6291e42</code></a> Adapt existing tests regarding Symbols as weak values</li>
<li><a href="735f95adf5"><code>735f95a</code></a> Add WeakMap and WeakSet features to tests affected by symbols-as-weakmap-keys</li>
<li><a href="145c440069"><code>145c440</code></a> Remove duplicate WeakSet test</li>
<li><a href="01f73e96ca"><code>01f73e9</code></a> Temporal: Add tests for avoiding observable iteration in CalendarFields</li>
<li><a href="1550f7f7e1"><code>1550f7f</code></a> Temporal: Test that the offset option has the last word in ZDT.from()</li>
<li>Additional commits viewable in <a href="eb67a7689f...ee7c379375">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 [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.34.0 to 0.34.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md">monaco-editor's changelog</a>.</em></p>
<blockquote>
<h2>[0.34.1]</h2>
<ul>
<li>Adds API to register global actions, commands, or keybinding rules</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/microsoft/monaco-editor/commits">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=monaco-editor&package-manager=npm_and_yarn&previous-version=0.34.0&new-version=0.34.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 [clap](https://github.com/clap-rs/clap) from 4.0.12 to 4.0.16.
<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.0.16</h2>
<h2>[4.0.16] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li><code>Arg::exclusive(true)</code> should not be exclusive with the argument's own <code>ArgGroup</code></li>
</ul>
<h2>v4.0.15</h2>
<h2>[4.0.15] - 2022-10-13</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Don't suggest <code>--</code> when it doesn't help</li>
<li><em>(error)</em> Be more consistent in quoting, punctuation, and indentation in errors</li>
</ul>
<h2>v4.0.14</h2>
<h2>[4.0.14] - 2022-10-12</h2>
<h3>Fixes</h3>
<ul>
<li>Only put <code>ArgGroup</code> in <code>ArgMatches</code> when explicitly specified, fixing derives handling of option-flattened fields (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4375">#4375</a>)</li>
</ul>
<h2>v4.0.13</h2>
<h2>[4.0.13] - 2022-10-11</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> Allow <code>()</code> for fields to mean "don't read" (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4371">#4371</a>)</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.0.16] - 2022-10-18</h2>
<h3>Fixes</h3>
<ul>
<li><code>Arg::exclusive(true)</code> should not be exclusive with the argument's own <code>ArgGroup</code></li>
</ul>
<h2>[4.0.15] - 2022-10-13</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> Don't suggest <code>--</code> when it doesn't help</li>
<li><em>(error)</em> Be more consistent in quoting, punctuation, and indentation in errors</li>
</ul>
<h2>[4.0.14] - 2022-10-12</h2>
<h3>Fixes</h3>
<ul>
<li>Only put <code>ArgGroup</code> in <code>ArgMatches</code> when explicitly specified, fixing derives handling of option-flattened fields (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4375">#4375</a>)</li>
</ul>
<h2>[4.0.13] - 2022-10-11</h2>
<h3>Features</h3>
<ul>
<li><em>(derive)</em> Allow <code>()</code> for fields to mean "don't read" (<a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4371">#4371</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="cbb05d54f8"><code>cbb05d5</code></a> chore: Release</li>
<li><a href="b77bd0cc6a"><code>b77bd0c</code></a> docs: Update changelog</li>
<li><a href="466b6f837e"><code>466b6f8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4397">#4397</a> from epage/exclusive</li>
<li><a href="45dcf0ed22"><code>45dcf0e</code></a> fix(parser): Don't make Args <code>exclusive</code> with their ArgGroup</li>
<li><a href="a40c7b491e"><code>a40c7b4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4390">#4390</a> from sergejp/master</li>
<li><a href="3250bcec4c"><code>3250bce</code></a> docs: Provide a better example for positional arg append under derive</li>
<li><a href="e6436a0967"><code>e6436a0</code></a> docs: Provide a better example for positional arg append</li>
<li><a href="bd5a6eab3b"><code>bd5a6ea</code></a> chore: Release</li>
<li><a href="7eaeed3abd"><code>7eaeed3</code></a> docs: Update changelog</li>
<li><a href="0f6ef3003d"><code>0f6ef30</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/clap-rs/clap/issues/4384">#4384</a> from epage/consistent</li>
<li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/v4.0.12...v4.0.16">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.0.12&new-version=4.0.16)](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 fixes#1371. And yeah, the number of file changes is real...
It changes the following:
- Split the ast `Node` into `Statement` and `Expression`.
- Rewrite the parser and bytecompiler to conform to this change.
- Refactor some ast nodes into reusable structures.
- Rewrite `contains_arguments` and `contains` to ease the transition into a future ast visitor.
List of things that were apparently fixed by this refactor?:
- Implement read-assign operation for private accessors (e.g. `this.#field ||= 5`).
- `var await` declaration now allowed outside `async` functions and inside functions nested in async functions.
- Reject redeclarations of variables declared in the init list of a for loop.
Still missing some documentation adjustments, will try to do it ASAP.
<!---
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 related to #2098.
It changes the following:
- Implements `JsRegExp`
- Adds a brief `JsRegExp` example under `boa_examples`
This Pull Request fixes/closes #2330.
It changes the following:
- Upgrades from clap 3 to clap 4 (note that criterion still uses clap 3, tracked here: https://github.com/bheisler/criterion.rs/issues/596)
- Updates the derive syntax with the new 4.0 syntax
- Adds hints for fish & zsh
Co-authored-by: José Julián Espina <jedel0124@gmail.com>
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`.
Bumps [test262](https://github.com/tc39/test262) from `58b7a23` to `eb67a76`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="eb67a7689f"><code>eb67a76</code></a> Temporal: Add tests for observable operations in MoveRelativeDate</li>
<li><a href="ae52931aae"><code>ae52931</code></a> Temporal: Add TemporalHelpers.calendarObserver</li>
<li><a href="12f919e45d"><code>12f919e</code></a> Temporal: Add TemporalHelpers.timeZoneObserver</li>
<li><a href="534b94eb63"><code>534b94e</code></a> Temporal: Add tests for calendar validation normative change</li>
<li><a href="b83af50771"><code>b83af50</code></a> Temporal: Adapt existing custom calendar getter tests, and expand</li>
<li><a href="89116e95dd"><code>89116e9</code></a> Temporal: Add some assertion messages to help with debugging</li>
<li><a href="e292fb80de"><code>e292fb8</code></a> Import SpiderMonkey Temporal tests</li>
<li><a href="46c3823117"><code>46c3823</code></a> Temporal: Add TemporalHelpers.crossDateLineTimeZone</li>
<li><a href="886f091bd3"><code>886f091</code></a> Temporal: Use TemporalHelpers.springForwardFallBackTimeZone in staging</li>
<li><a href="42074e7fe7"><code>42074e7</code></a> Temporal: Remove calendars and time zones from tests in staging</li>
<li>See full diff in <a href="58b7a23582...eb67a7689f">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>
This Pull Request closes#2080.
It moves all implementors of the `JsObjectType` trait into their own `js_object` module.
This should simplify documentation and by doing a `pub(crate)` export in `object` little to no imports within the crate need to be changed, simplifying the usage of this module within the boa_engine crate.
Documentation within the `object` module has been updated to reflect this change and in a way that it is shown on the home page of the documentation.
Bumps [test262](https://github.com/tc39/test262) from `e849d40` to `58b7a23`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="58b7a23582"><code>58b7a23</code></a> Sync to intl-duration-format PR 119</li>
<li><a href="c44b6e3e76"><code>c44b6e3</code></a> Temporal: Add assertion messages to PlainTime/p/{add,subtract}/argument-objec...</li>
<li><a href="eaf85892fb"><code>eaf8589</code></a> Import SpiderMonkey Temporal tests</li>
<li>See full diff in <a href="e849d40605...58b7a23582">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>
<!---
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 related to #2098 .
It changes the following:
- Implements a wrapper for `DataView`
- Adds an example of `JsDataView` to the `JsArrayBuffer` example file under boa_examples
Co-authored-by: jedel1043 <jedel0124@gmail.com>
Bumps [test262](https://github.com/tc39/test262) from `9215420` to `e849d40`.
<details>
<summary>Commits</summary>
<ul>
<li><a href="e849d40605"><code>e849d40</code></a> CI: Update CircleCI Docker images.</li>
<li><a href="8565eea8be"><code>8565eea</code></a> Temporal: Test tiebreaker rounding modes more thoroughly</li>
<li><a href="c84e5701cd"><code>c84e570</code></a> Temporal: Add tests for new rounding modes</li>
<li><a href="4155842c37"><code>4155842</code></a> Temporal: Regularize and expand tests for round() rounding modes</li>
<li><a href="a788188c2f"><code>a788188</code></a> Temporal: Regularize and expand tests for difference rounding modes</li>
<li><a href="9c4aed29b7"><code>9c4aed2</code></a> Temporal: Remove now-valid rounding modes from roundingmode-invalid-string tests</li>
<li><a href="e79a1935ed"><code>e79a193</code></a> Add tests for Unicode v15 Identifier{Start,Part} (<a href="https://github-redirect.dependabot.com/tc39/test262/issues/3662">#3662</a>)</li>
<li><a href="3eaa7c9313"><code>3eaa7c9</code></a> Update RegExp <code>\p{…}</code> tests per Unicode 15</li>
<li><a href="ef59ea225a"><code>ef59ea2</code></a> Temporal: Add TemporalHelpers.propertyBagObserver()</li>
<li><a href="38dd3c2823"><code>38dd3c2</code></a> Temporal: Consistently format property names in call logs</li>
<li>Additional commits viewable in <a href="9215420dee...e849d40605">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>