mirror of https://github.com/boa-dev/boa.git
Tree:
41448e13f9
add-vhs-ci
benchmarks
control-flow-graph
dependabot/cargo/rust-dependencies-fd1ddd1272
dependabot/cargo/rustls-0.23.18
expect-lints
feature/node_span
feature/snapshot
features
gh-readonly-queue/main/pr-2877-b0ddf5eed00a53281d67fc7d846233fc0d99ce9c
gh-readonly-queue/main/pr-3144-8e48cec73fae708420b9af88813d4870243c491a
main
nan-boxing
optimization/static-shapes
real_conformance
reduce-environment-allocations
refactor/interner
refactor/register-vm
releases/0.17
releases/0.19
semver_checks
tco
utility-crate
wasm-debugger
nightly
v0.10
v0.11
v0.12
v0.13
v0.14
v0.15
v0.16
v0.17
v0.17.1
v0.17.2
v0.17.3
v0.18
v0.19
v0.19.1
v0.2.0
v0.2.1
v0.3.0
v0.4.0
v0.5.0
v0.5.1
v0.6.0
v0.7.0
v0.8.0
v0.9.0
${ noResults }
2236 Commits (41448e13f9fac16cd25f331001ef0d8bf2eb7aae)
Author | SHA1 | Message | Date |
---|---|---|---|
raskad | ffa854ce3f |
Implement `WeakSet` (#2586)
This Pull Request changes the following: - Implement `WeakSet` buildin object. - Supersedes #2009 Co-authored-by: raskad <32105367+raskad@users.noreply.github.com> |
2 years ago |
dependabot[bot] | c357ae7597 |
Bump measureme from 10.1.0 to 10.1.1 (#2595)
Bumps [measureme](https://github.com/rust-lang/measureme) from 10.1.0 to 10.1.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/measureme/releases">measureme's releases</a>.</em></p> <blockquote> <h2>10.1.1</h2> <h3>Changed</h3> <ul> <li><code>measureme</code>: Update <code>perf-event-open-sys</code> to 3.0 (<a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/198">GH-198</a>)</li> <li>Move profile data analysis into analyzeme from summarizeme (<a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/200">GH-200</a>)</li> <li><code>summarize</code>: Update <code>prettytable</code> dependency to avoid segfaults on large profiles (<a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/202">GH-202</a>)</li> </ul> <p><a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/198">GH-198</a>: <a href="https://github-redirect.dependabot.com/rust-lang/measureme/pull/198">rust-lang/measureme#198</a> <a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/200">GH-200</a>: <a href="https://github-redirect.dependabot.com/rust-lang/measureme/pull/200">rust-lang/measureme#200</a> <a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/202">GH-202</a>: <a href="https://github-redirect.dependabot.com/rust-lang/measureme/pull/202">rust-lang/measureme#202</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/measureme/blob/master/CHANGELOG.md">measureme's changelog</a>.</em></p> <blockquote> <h2>[10.1.1] - 2023-02-08</h2> <h3>Changed</h3> <ul> <li><code>measureme</code>: Update <code>perf-event-open-sys</code> to 3.0 (<a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/198">GH-198</a>)</li> <li>Move profile data analysis into analyzeme from summarizeme (<a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/200">GH-200</a>)</li> <li><code>summarize</code>: Update <code>prettytable</code> dependency to avoid segfaults on large profiles (<a href="https://github-redirect.dependabot.com/rust-lang/measureme/issues/202">GH-202</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 0ca8ce23b7 |
Bump serde_json from 1.0.92 to 1.0.93 (#2594)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.92 to 1.0.93. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p> <blockquote> <h2>v1.0.93</h2> <ul> <li>Support 128-bit integers in serde_json::to_value (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/982">#982</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 5020862ca9 |
Bump monaco-editor from 0.34.1 to 0.35.0 (#2592)
Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from 0.34.1 to 0.35.0. <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.35.0]</h2> <ul> <li>Adds sticky scrolling</li> <li>Support for custom diff algorithms</li> </ul> <h3>Breaking Changes</h3> <ul> <li>Renamed the option <code>enableDropIntoEditor</code> to <code>dropIntoEditor</code></li> <li>Changed <code>IContentWidgetPosition.range: Range</code> to <code>IContentWidgetPosition.secondaryPosition: Position</code></li> <li><code>renderFinalNewline</code> config: is now of type <code>'on' | 'off' | 'dimmed'</code> (was <code>boolean</code>).</li> <li><code>cursorSmoothCaretAnimation</code> config: is now of type <code>'off' | 'explicit' | 'on'</code> (was <code>boolean</code>)</li> </ul> <p>Contributions to <code>monaco-editor</code>:</p> <ul> <li><a href="https://github.com/andrewimcclement"><code>@andrewimcclement</code></a>: Add .props & .targets as XML extensions [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3510">#3510</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3510">microsoft/monaco-editor#3510</a>)</li> <li><a href="https://github.com/DetachHead"><code>@DetachHead</code></a>: add <code>satisfies</code> keyword to typescript [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3337">#3337</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3337">microsoft/monaco-editor#3337</a>)</li> <li><a href="https://github.com/jeremy-rifkin"><code>@jeremy-rifkin (Jeremy Rifkin)</code></a>: Add AVX 512 types to C++ syntax highlighting [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3286">#3286</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3286">microsoft/monaco-editor#3286</a>)</li> <li><a href="https://github.com/joecarl"><code>@joecarl (José Carlos)</code></a>: Add setModeConfiguration for monaco.languages.typescript.[typescript|javascript]Defaults [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3489">#3489</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3489">microsoft/monaco-editor#3489</a>)</li> <li><a href="https://github.com/jonatanklosko"><code>@jonatanklosko (Jonatan Kłosko)</code></a>: Update Elixir tokenizer [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3453">#3453</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3453">microsoft/monaco-editor#3453</a>)</li> <li><a href="https://github.com/JoyceZhu"><code>@JoyceZhu (Joyce Zhu)</code></a>: Update import path for <code>browser-esm-webpack-small</code> [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3402">#3402</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3402">microsoft/monaco-editor#3402</a>)</li> <li><a href="https://github.com/Jozebel11"><code>@Jozebel11 (Joseph Hardwicke)</code></a>: Add position styling to playground container to equal 'relative' [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3446">#3446</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3446">microsoft/monaco-editor#3446</a>)</li> <li><a href="https://github.com/kirjs"><code>@kirjs (Kirill Cherkashin)</code></a>: Fix broken link in the changelog [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3382">#3382</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3382">microsoft/monaco-editor#3382</a>)</li> <li><a href="https://github.com/LeoDog896"><code>@LeoDog896 (Tristan F.)</code></a> <ul> <li>Ignore dist from vite/parcel in prettier [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3466">#3466</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3466">microsoft/monaco-editor#3466</a>)</li> <li>Add .kts as a file extension [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3467">#3467</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3467">microsoft/monaco-editor#3467</a>)</li> </ul> </li> <li><a href="https://github.com/MasterOdin"><code>@MasterOdin (Matthew Peveler)</code></a>: Add new pgsql 15 functions [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3363">#3363</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3363">microsoft/monaco-editor#3363</a>)</li> <li><a href="https://github.com/mofux"><code>@mofux (Thomas Zilz)</code></a>: Resolve URIs with special characters correctly [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3392">#3392</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3392">microsoft/monaco-editor#3392</a>)</li> <li><a href="https://github.com/nnnnoel"><code>@nnnnoel (Noel Kim (김민혁))</code></a>: fix(mysql/tokenizer): Fix single quoted string escape [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3232">#3232</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3232">microsoft/monaco-editor#3232</a>)</li> <li><a href="https://github.com/rcjsuen"><code>@rcjsuen (Remy Suen)</code></a>: Fix the color provider's columns [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3348">#3348</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3348">microsoft/monaco-editor#3348</a>)</li> <li><a href="https://github.com/RubenRBS"><code>@RubenRBS (Rubén Rincón Blanco)</code></a>: Recognize \0 as an escape sequence [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3443">#3443</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3443">microsoft/monaco-editor#3443</a>)</li> <li><a href="https://github.com/sekedus"><code>@sekedus (Sekedus)</code></a>: add homepage url [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3497">#3497</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3497">microsoft/monaco-editor#3497</a>)</li> <li><a href="https://github.com/tr3ysmith"><code>@tr3ysmith (Trey Smith)</code></a>: Fix possible duplicate of editors in vite sample [PR <a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/issues/3390">#3390</a>](<a href="https://github-redirect.dependabot.com/microsoft/monaco-editor/pull/3390">microsoft/monaco-editor#3390</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/microsoft/monaco-editor/commits/v0.35.0">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~vscode-bot">vscode-bot</a>, a new releaser for monaco-editor since your current version.</p> </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.1&new-version=0.35.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> |
2 years ago |
dependabot[bot] | 9f4ecba11a |
Bump toml from 0.7.1 to 0.7.2 (#2593)
Bumps [toml](https://github.com/toml-rs/toml) from 0.7.1 to 0.7.2. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | c383ff77f9 |
Bump prettier from 2.8.3 to 2.8.4 (#2591)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.3 to 2.8.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/prettier/prettier/releases">prettier's releases</a>.</em></p> <blockquote> <h2>2.8.4</h2> <p>🔗 <a href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#284">Changelog</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's changelog</a>.</em></p> <blockquote> <h1>2.8.4</h1> <p><a href="https://github.com/prettier/prettier/compare/2.8.3...2.8.4">diff</a></p> <h4>Fix leading comments in mapped types with <code>readonly</code> (<a href="https://github-redirect.dependabot.com/prettier/prettier/pull/13427">#13427</a> by <a href="https://github.com/thorn0"><code>@thorn0</code></a>, <a href="https://github.com/sosukesuzuki"><code>@sosukesuzuki</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="tsx"><code>// Input type Type = { // comment readonly [key in Foo]; }; <p>// Prettier 2.8.3 type Type = { readonly // comment [key in Foo]; };</p> <p>// Prettier 2.8.4 type Type = { // comment readonly [key in Foo]; }; </code></pre></p> <h4>Group params in opening block statements (<a href="https://github-redirect.dependabot.com/prettier/prettier/pull/14067">#14067</a> by <a href="https://github.com/jamescdavis"><code>@jamescdavis</code></a>)</h4> <p>This is a follow-up to <a href="https://github-redirect.dependabot.com/prettier/prettier/issues/13930">#13930</a> to establish wrapping consistency between opening block statements and else blocks by grouping params in opening blocks. This causes params to break to a new line together and not be split across lines unless the length of params exceeds the print width. This also updates the else block wrapping to behave exactly the same as opening blocks.</p> <!-- raw HTML omitted --> <pre lang="hbs"><code>{{! Input }} {{#block param param param param param param param param param param as |blockParam|}} Hello {{else block param param param param param param param param param param as |blockParam|}} There {{/block}} <p>{{! Prettier 2.8.3 }} {{#block param param param param param </tr></table> </code></pre></p> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 3a2b58d89b |
Bump proc-macro2 from 1.0.50 to 1.0.51 (#2589)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.50 to 1.0.51. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's releases</a>.</em></p> <blockquote> <h2>1.0.51</h2> <ul> <li>Implement rustc's limit on the number of <code>#</code> used for delimiting a raw string literal: 255 (<a href="https://github-redirect.dependabot.com/dtolnay/proc-macro2/issues/364">#364</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 10adeeb49e |
Bump serde_json from 1.0.91 to 1.0.92 (#2588)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.91 to 1.0.92. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p> <blockquote> <h2>v1.0.92</h2> <ul> <li>Documentation improvements</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 36c7525b17 |
Bump test262 from `ad034f3` to `e7364ea` (#2590)
Bumps [test262](https://github.com/tc39/test262) from `ad034f3` to `e7364ea`. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 3c59a3ac5f |
Bump icu_datagen from 1.1.0 to 1.1.1 (#2583)
Bumps [icu_datagen](https://github.com/unicode-org/icu4x) from 1.1.0 to 1.1.1. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/unicode-org/icu4x/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=icu_datagen&package-manager=cargo&previous-version=1.1.0&new-version=1.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> |
2 years ago |
Kevin | c2809ef6f1 |
Try-catch-block control flow fix/refactor (#2568)
<!--- Thank you for contributing to Boa! Please fill out the template below, and remove or add any information as you feel necessary. ---> This Pull Request is meant to address #1900. While working on it, there was a decent amount of refactoring/restructuring. Initially, I had kept with the current approach of just keeping track of a kind and counter on the environment stack, especially because that kept the size of each stack entry to a minimum. I did, however, make a switch to having the opcode create the `EnvStackEntry` with a start address and exit address for a bit more precision. It changes the following: - Consolidates `loop_env_stack` and `try_env_stack` into one `EnvStackEntry` struct. - Changes `Continue`, `Break`, `LoopStart`, `LoopContinue`, `FinallyStart`, `FinallyEnd` and various others. Most of this primarily revolves around the creating of `EnvStackEntry` and interacting with the `env_stack`. - Changes/updates the try-catch-finally, break and continue statement compilations as necessary - Adds an `AbruptCompletionRecord` in place of the `finally_jump` vector. - Adds some tests for try-catch-finally blocks with breaks. |
2 years ago |
Iban Eguia Moraza | 3f9f6f0fce |
Module parsing (#2411)
I'm creating this draft PR, since I wanted to have some early feedback, and because I though I would have time to finish it last week, but I got caught up with other stuff. Feel free to contribute :) The main thing here is that I have divided `eval()`, `parse()` and similar functions so that they can decide if they are parsing scripts or modules. Let me know your thoughts. Then, I was checking the import & export parsing, and I noticed we are using `TokenKind::Identifier` for `IdentifierName`, so I changed that name. An `Identifier` is an `IdentifierName` that isn't a `ReservedWord`. This means we should probably also adapt all `IdentifierReference`, `BindingIdentifier` and so on parsing. I already created an `Identifier` parser. Something interesting there is that `await` is not a valid `Identifier` if the goal symbol is `Module`, as you can see in the [spec](https://tc39.es/ecma262/#prod-LabelIdentifier), but currently we don't have that information in the `InputElement` enumeration, we only have `Div`, `RegExp` and `TemplateTail`. How could we approach this? Co-authored-by: jedel1043 <jedel0124@gmail.com> |
2 years ago |
dependabot[bot] | 845a7f468d |
Bump wasm-bindgen from 0.2.83 to 0.2.84 (#2585)
Bumps [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen) from 0.2.83 to 0.2.84. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 95f0e73164 |
Bump tokio from 1.24.1 to 1.25.0 (#2587)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.24.1 to 1.25.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/tokio/releases">tokio's releases</a>.</em></p> <blockquote> <h2>Tokio v1.25.0</h2> <h1>1.25.0 (January 28, 2023)</h1> <h3>Fixed</h3> <ul> <li>rt: fix runtime metrics reporting (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/5330">#5330</a>)</li> </ul> <h3>Added</h3> <ul> <li>sync: add <code>broadcast::Sender::len</code> (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/5343">#5343</a>)</li> </ul> <h3>Changed</h3> <ul> <li>fs: increase maximum read buffer size to 2MiB (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/5397">#5397</a>)</li> </ul> <p><a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/5330">#5330</a>: <a href="https://github-redirect.dependabot.com/tokio-rs/tokio/pull/5330">tokio-rs/tokio#5330</a> <a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/5343">#5343</a>: <a href="https://github-redirect.dependabot.com/tokio-rs/tokio/pull/5343">tokio-rs/tokio#5343</a> <a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/5397">#5397</a>: <a href="https://github-redirect.dependabot.com/tokio-rs/tokio/pull/5397">tokio-rs/tokio#5397</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
Mrmaxmeier | 4aebe39e15 |
fuzzer: bubble up NoInstructionsRemain error instead of trying to handle as exception (#2566)
Hi, the `vm-implied` fuzzer panics when executing this testcase: ```javascript try { new function() { while (this) {} }(); } catch { } ``` `internal error: entered unreachable code: The NoInstructionsRemain native error cannot be converted to an opaque type` Handling the `NoInstructionsRemain` error upfront instead of going through the VM exception handling logic seems to work. |
2 years ago |
Kevin | 9d521f9acf |
Feature flag on builtins console import (#2584)
<!--- Thank you for contributing to Boa! Please fill out the template below, and remove or add any information as you feel necessary. ---> Adding a feature flag to the console import in `builtins`. I think this should fix the failing action on the `Upload docs and run benchmarks` step |
2 years ago |
raskad | 3725ff85f7 |
Implement binary `in` operation with private names (#2582)
This Pull Request changes the following: - Implement binary `in` operation with private names. - Adding a separate `BinaryInPrivate` expression in addition to the existing `Binary` expression seems like the best way to implement this in a typesafe manner. Other methods like adding an enum for the `Binary` lhs result in having to make assertions. |
2 years ago |
José Julián Espina | c03928309a |
Cleanup intrinsics and move to realm (#2555)
Small (ish?) step towards having proper realm records This PR changes the following: - Moves `Intrinsics` to `Realm`. - Cleans up the initialization logic of our intrinsics to not depend on `Context`, unblocking things like #2314. - Adds hooks to initialize the global object and the global this per the corresponding [`InitializeHostDefinedRealm ( )`](https://tc39.es/ecma262/#sec-initializehostdefinedrealm) hook. Though, this is currently broken because the vm uses `GlobalPropertyMap` instead of the `JsObject` API to initialize global properties. |
2 years ago |
raskad | b76050df44 |
Move increment and decrement operations to `Update` expression (#2565)
This Pull Request changes the following: - Move postfix/prefix increment and decrement operations from the `Unary` expression to a new `Update` expression. - Add a special type for the `Update` expression target as it is very limited in comparision to an `Unary` target. - This makes bytecode compilation more typesafe for these operations and removes syntax errors from the bytecompiler without introducing panics (see #1907). |
2 years ago |
José Julián Espina | ddf00c8c03 |
Improve identifier parsing (#2581)
Another change extracted from #2411. This PR changes the following: - Improves our identifier parsing with a new `Identifier` parser that unifies parsing for `IdentifierReference`, `BindingIdentifier` and `LabelIdentifier`. - Slightly improves some error messages. - Extracts our manual initialization of static `Sym`s with a new `static_syms` proc macro. - Adds `set_module_mode` and `module_mode` to the cursor to prepare for modules. |
2 years ago |
dependabot[bot] | 99eba55b27 |
Bump toml from 0.7.0 to 0.7.1 (#2580)
Bumps [toml](https://github.com/toml-rs/toml) from 0.7.0 to 0.7.1. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
José Julián Espina | 515d28f0a2 |
Create `Source` to abstract JS code sources (#2579)
Slightly related to #2411 since we need an API to pass module files, but more useful for #1760, #1313 and other error reporting issues. It changes the following: - Introduces a new `Source` API to store the path of a provided file or `None` if the source is a plain string. - Improves the display of `boa_tester` to show the path of the tests being run. This also enables hyperlinks to directly jump to the tested file from the VS terminal. - Adjusts the repo to this change. Hopefully, this will improve our error display in the future. |
2 years ago |
dependabot[bot] | 1ef11a05aa |
Bump toml from 0.6.0 to 0.7.0 (#2577)
Bumps [toml](https://github.com/toml-rs/toml) from 0.6.0 to 0.7.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | f4cc3c3cf9 |
Bump test262 from `ac1c354` to `ad034f3` (#2578)
Bumps [test262](https://github.com/tc39/test262) from `ac1c354` to `ad034f3`. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
José Julián Espina | 5a201daa98 |
Rename `check_parser` and `Identifier` (#2576)
Extracted from #2411 to reduce its size a bit. This PR: - Renames `Identifier` to `IdentifierName`, which is the name stated in the spec. - Renames the utility function `check_parser` to `check_script_parser` to prepare for modules. - Adds some missing `#[inline]` and rewrites some patterns. |
2 years ago |
José Julián Espina | b7782ab2c7 |
Fix failing collator tests (#2575)
This Pull Request fixes the regressed tests caused by the ICU4X version bump. |
2 years ago |
raskad | bd0652fe28 |
Add early errors for escaped identifiers (#2546)
This Pull Request changes the following: - Add early errors for escaped characters in object and class setters and getters. - Add early errors for escaped characters in class `static`. - Add early errors for escaped characters in `new.target`. - Add early errors for legacy octal/decial escapes that are used in string literals before a `"use strict"` directive. |
2 years ago |
raskad | aa8e0c55dd |
Update icu dependencies (#2574)
This Pull Request changes the following: - Update icu dependencies - Regenerate icu data |
2 years ago |
raskad | e6a1c3789d |
Fix rust 1.67 lints (#2567)
This Pull Request changes the following: - Fix rust 1.67 lints |
2 years ago |
dependabot[bot] | 753cab6a3b |
Bump num_enum from 0.5.7 to 0.5.9 (#2564)
Bumps [num_enum](https://github.com/illicitonion/num_enum) from 0.5.7 to 0.5.9. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/illicitonion/num_enum/commits/0.5.9">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=num_enum&package-manager=cargo&previous-version=0.5.7&new-version=0.5.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> |
2 years ago |
dependabot[bot] | 5f6ec59ec1 |
Bump clap from 4.1.1 to 4.1.4 (#2563)
Bumps [clap](https://github.com/clap-rs/clap) from 4.1.1 to 4.1.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.1.4</h2> <h2>[4.1.4] - 2023-01-24</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Respect <code>disable_colored_help</code> when using <code>arg_required_else_help</code></li> </ul> <h3>Performance</h3> <ul> <li>Speed up compiling <code>arg!</code> macro</li> </ul> <h2>v4.1.3</h2> <h2>[4.1.3] - 2023-01-23</h2> <h3>Fixes</h3> <ul> <li><em>(error)</em> Improve suggested flag/value/subcommand when two share a long preifx</li> <li><em>(error)</em> When suggesting one of several subcommands, use the plural <code>subcommands</code>, rather than <code>subcommand</code></li> </ul> <h2>v4.1.2</h2> <h2>[4.1.2] - 2023-01-23</h2> <h3>Fixes</h3> <ul> <li>In documentation, refer to <code>get_flag</code>, rather than <code>get_one::<bool></code></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.1.4] - 2023-01-24</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Respect <code>disable_colored_help</code> when using <code>arg_required_else_help</code></li> </ul> <h3>Performance</h3> <ul> <li>Speed up compiling <code>arg!</code> macro</li> </ul> <h2>[4.1.3] - 2023-01-23</h2> <h3>Fixes</h3> <ul> <li><em>(error)</em> Improve suggested flag/value/subcommand when two share a long preifx</li> <li><em>(error)</em> When suggesting one of several subcommands, use the plural <code>subcommands</code>, rather than <code>subcommand</code></li> </ul> <h2>[4.1.2] - 2023-01-23</h2> <h3>Fixes</h3> <ul> <li>In documentation, refer to <code>get_flag</code>, rather than <code>get_one::<bool></code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
José Julián Espina | 097f85e409 |
First batch of `no_std` support for some sub-crates (#2544)
<!--- Thank you for contributing to Boa! Please fill out the template below, and remove or add any information as you feel necessary. ---> This Pull Request enables support for `no_std` targets on some of our sub-crates. I intentionally left out `boa_ast` and `boa_cli` because they're the largest crates we have after `boa_engine`. `boa_gc` is a monster on its own, because we'll need to design a `no_std` multithreaded GC. Anyways, this changes the following: - Adds support for `no_std` on `boa_unicode`. - Adds support for `no_std` on `boa_profiler`. - Adds support for `no_std` on `boa_interner`. - Adds support for `no_std` on `boa_icu_provider`. |
2 years ago |
raskad | 787d4a8bc5 |
Fix double property access on assignment ops (#2551)
Currently the compilation of assignment operators leads to a double object property access, both on the get and set access. While this refactor adds special access handling instead of using the existing `access_set` and `access_get` functions, it fixes the double access and should also make the resulting code more efficient. |
2 years ago |
dependabot[bot] | 98a4ee7b8b |
Bump toml from 0.5.11 to 0.6.0 (#2560)
Bumps [toml](https://github.com/toml-rs/toml) from 0.5.11 to 0.6.0. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 878bd9d4cf |
Bump test262 from `2ac0d3c` to `ac1c354` (#2557)
Bumps [test262](https://github.com/tc39/test262) from `2ac0d3c` to `ac1c354`. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 64293d5c29 |
Bump arbitrary from 1.2.2 to 1.2.3 (#2558)
Bumps [arbitrary](https://github.com/rust-fuzz/arbitrary) from 1.2.2 to 1.2.3. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-fuzz/arbitrary/blob/main/CHANGELOG.md">arbitrary's changelog</a>.</em></p> <blockquote> <h2>1.2.3</h2> <p>Released 2023-01-20.</p> <h3>Fixed</h3> <ul> <li>The <code>derive(Arbitrary)</code> will now annotate the generated <code>impl</code>s with a <code>#[automatically_derived]</code> attribute to indicate to e.g. clippy that lints should not fire for the code within the derived implementation.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/rust-fuzz/arbitrary/commits/v1.2.3">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=arbitrary&package-manager=cargo&previous-version=1.2.2&new-version=1.2.3)](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> |
2 years ago |
José Julián Espina | 408809dda4 |
Pin tarpaulin version to 0.22 (#2562)
Our CI broke because the new version of `tarpaulin` released more assets than the default 'travis.tar.gz'. We'll have to pin our version of `tarpaulin` until the issue gets fixed. Co-authored-by: raskad <32105367+raskad@users.noreply.github.com> |
2 years ago |
raskad | 6c8e9c7070 |
Avoid creating `prototype` property on methods (#2553)
This Pull Request changes the following: - Stop creating a `prototype` property on class methods by passing a flag to the relevant opcodes. |
2 years ago |
raskad | 9355c77e0b |
Fix error for static class methods named `prototype` (#2552)
This Pull Request changes the following: - Remove wrong early errors for static class methods with the computed property name `prototype`. - Switch static class method definition opcodes from `__define_own_property__` to `define_property_or_throw` to correctly throw runtime errors on property redefinitions. |
2 years ago |
raskad | 96a6e0a346 |
Return the correct value from a statement list (#2554)
When compiling a statement list we need to make sure that the last expression that returns a value is compiled with the `use_expr` flag. Currently we set `use_expr` on the last statement of the statement list. This leads to incorrect returns when the last statement does not return a value. This PR fixes this by looking up the last value returning expression in a statement list and setting the `use_expr` appropriately. |
2 years ago |
José Julián Espina | 7c9eef8edc |
Improve the design of ephemerons in our GC (#2530)
This PR changes the following: - Modifies `EphemeronBox` to be more akin to `GcBox`, with its own header, roots and markers. This also makes it more similar to [Racket's](https://docs.racket-lang.org/reference/ephemerons.html) implementation. - Removes `EPHEMERON_QUEUE`. - Ephemerons are now tracked on a special `weak_start` linked list, instead of `strong_start` which is where all other GC boxes live. - Documents all unsafe blocks. - Documents our current garbage collection algorithm. I hope this'll clarify a bit what exactly are we doing on every garbage collection. - Renames/removes some functions. |
2 years ago |
raskad | f19467ab1d |
Fix some HoistableDeclaration parsing errors (#2532)
This Pull Request hanges the following: - Add early errors for invalid `yield` and `await` usage in function parameters. - Add missing function types to hoistable ordering. - Do not attempt to parse `async` with a following line terminator as an async function. |
2 years ago |
dependabot[bot] | 0d599293fd |
Bump rustyline from 10.1.0 to 10.1.1 (#2549)
Bumps [rustyline](https://github.com/kkawakam/rustyline) from 10.1.0 to 10.1.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kkawakam/rustyline/releases">rustyline's releases</a>.</em></p> <blockquote> <h2>10.1.1</h2> <p>Rollbacks incompatible changes relative to edition 2018 (<a href="https://github-redirect.dependabot.com/kkawakam/rustyline/issues/671">#671</a>) <strong>Full Changelog</strong>: <a href="https://github.com/kkawakam/rustyline/compare/v10.1.0...v10.1.1">https://github.com/kkawakam/rustyline/compare/v10.1.0...v10.1.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 2d8c6102ad |
Bump toml from 0.5.10 to 0.5.11 (#2548)
Bumps [toml](https://github.com/toml-rs/toml) from 0.5.10 to 0.5.11. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | eed1134dc0 |
Bump serde_yaml from 0.9.16 to 0.9.17 (#2550)
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.9.16 to 0.9.17. <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.17</h2> <ul> <li>Improve Debug representation of some error messages</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
Kevin | 90d310b184 |
Labelled ByteCompiler Fix (#2534)
<!--- 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 addresses #2295, and another case that I came across when I was adding `Break` to the `ByteCompiler` I did have a question that came up during this regarding the spec. We currently don't implement the [BreakableStatement](https://tc39.es/ecma262/#prod-BreakableStatement). Any thoughts on whether we should be? Especially since `BreakableStatement` seems to be a bit of a inaccurate since `LabelledStatement` is breakable too. It changes the following: - Moves handling of label jump out of `compile_block` and into `compile_labelled`. - Adds a couple more tests to keep track of `LabelledStatement` breaks. Co-authored-by: Ness <Kevin.Ness@Staples.com> |
2 years ago |
José Julián Espina | 5ab0aa21cc |
Implement host hooks and job queues APIs (#2529)
Follows from #2528, and should complement #2411 to implement the module import hooks. ~~Similarly to the Intl/ICU4X PR (#2478), this has a lot of trivial changes caused by the new lifetimes. I thought about passing the queue and the hooks by value, but it was very painful having to wrap everything with `Rc` in order to be accessible by the host. In contrast, `&dyn` can be easily provided by the host and has the advantage of not requiring additional allocations, with the downside of adding two more lifetimes to our `Context`, but I think it's worth.~~ I was able to unify all lifetimes into the shortest one of the three, making our API just like before! Changes: - Added a new `HostHooks` trait and a `&dyn HostHooks` field to `Context`. This allows hosts to implement the trait for their custom type, then pass it to the context. - Added a new `JobQueue` trait and a `&dyn JobQueue` field to our `Context`, allowing custom event loops and other fun things. - Added two simple implementations of `JobQueue`: `IdleJobQueue` which does nothing and `SimpleJobQueue` which runs all jobs until all successfully complete or until any of them throws an error. - Modified `boa_cli` to run all jobs until the queue is empty, even if a job returns `Err`. This also prints all errors to the user. |
2 years ago |
José Julián Espina | 08e5e46117 |
Make `JsSymbol` thread-safe (#2539)
The section about `Symbol` on the [specification](https://tc39.es/ecma262/#sec-ecmascript-language-types-symbol-type) says: > The Symbol type is the set of all non-String values that may be used as the key of an Object property ([6.1.7](https://tc39.es/ecma262/#sec-object-type)). Each possible Symbol value is unique and immutable. Our previous implementation of `JsSymbol` used `Rc` and a thread local `Cell<usize>`. However, this meant that two different symbols in two different threads could share the same hash, making symbols not unique. Also, the [GlobalSymbolRegistry](https://tc39.es/ecma262/#table-globalsymbolregistry-record-fields) is meant to be shared by all realms, including realms that are not in the same thread as the main one; this forces us to replace our current thread local global symbol registry with a thread-safe one that uses `DashMap` for concurrent access. However, the global symbol registry uses `JsString`s as keys and values, which forces us to either use `Vec<u16>` instead (wasteful and needs to allocate to convert to `JsString` on each access) or make `JsString` thread-safe with an atomic counter. For this reason, I implemented the second option. This PR changes the following: - Makes `JsSymbol` thread-safe by using Arc instead of Rc, and making `SYMBOL_HASH_COUNT` an `AtomicU64`. - ~~Makes `JsString` thread-safe by using `AtomicUsize` instead of `Cell<usize>` for its ref count.~~ EDIT: Talked with @jasonwilliams and we decided to use `Box<[u16]>` for the global registry instead, because this won't penalize common usage of `JsString`, which is used a LOT more than `JsSymbol`. - Makes the `GLOBAL_SYMBOL_REGISTRY` truly global, using `DashMap` as our global map that is shared by all threads. - Replaces some thread locals with thread-safe alternatives, such as static arrays and static indices. - Various improvements to all related code for this. |
2 years ago |
dependabot[bot] | 20af6a7f17 |
Bump proc-macro2 from 1.0.49 to 1.0.50 (#2541)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.49 to 1.0.50. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's releases</a>.</em></p> <blockquote> <h2>1.0.50</h2> <ul> <li>Implement Hash for proc_macro2::LineColumn (<a href="https://github-redirect.dependabot.com/dtolnay/proc-macro2/issues/362">#362</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | 1269381ac8 |
Correctly parse consecutive semicolons (#2533)
This Pull Request changes the following: - Do not skip consecutive semicolons while parsing a `StatementList`. - Expect semicolon in `LexicalDeclaration` and add an special case for `for` loop parsing. - Adjust `StatementList` compilation to skip empty statements. - Adjust/add tests to make sure consecutive semicolons are correctly parsed. |
2 years ago |