mirror of https://github.com/boa-dev/boa.git
Tree:
f8b682085d
add-vhs-ci
benchmarks
control-flow-graph
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
release-0.20
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 }
2045 Commits (f8b682085d7fe0bbfcd0333038e93cf2f5aee710)
Author | SHA1 | Message | Date |
---|---|---|---|
Choongwoo Han | f8b682085d |
Optimize Get/SetPropertyByName (#2608)
Similar to #2604, `GetPropertyByName`/`SetPropertyByName` has only string property key. So, we can skip index and utf16 conversions. This improves QuickJS benchmark score 5.8% on average. Richards: 37.0 -> 41.2 DeltaBlue: 38.1 -> 41.4 Crypto: 59.6 -> 59.8 RayTrace: 146 -> 159 EarleyBoyer: 138 -> 142 Splay: 104 -> 106 NavierStokes: 10.2 -> 10.3 |
2 years ago |
raskad | f457ea95f8 |
Fix string to number conversion for `infinity` (#2607)
This Pull Request changes the following: - Fix string to number conversion for all invalid variants of `infinity` |
2 years ago |
raskad | 310c67195a |
Remove Syntax Errors from Bytecompiler (#2598)
This Pull Request closes #1907. It changes the following: - Implement several early errors relating to labels, `break` and `continue` in the parser. - Implement an early error for invalid cover grammar of object literals in the parser. - Remove all remaining syntax errors from the bytecompiler. |
2 years ago |
José Julián Espina | 60c25b45e7 |
Fix doc tests and add CI check (#2606)
This Pull Request fixes #2605. It changes the following: - Adds a CI check to run `cargo test --doc` since `nextest` doesn't support doc tests at the moment. - Fixes the failing doc tests. |
2 years ago |
Choongwoo Han | 4750e8d53a |
Fast path for static property keys (#2604)
When a rust string literal is given for a property key, boa checks if it can be parsed as an index and converts the string into a utf16 slice. This PR rewrites each hard-coded property key as a utf16 slice so that we can bypass those conversions at runtime. This improves QuickJS benchmark score 5% on average. Richards: 35.4 -> 37.0 DeltaBlue: 35.0 -> 38.1 Crypto: 57.6 -> 59.6 RayTrace: 137 -> 146 EarleyBoyer: 131 -> 138 Splay: 98.3 -> 104 NavierStokes: 10.2 -> 10.2 |
2 years ago |
raskad | f538cb214c |
Implement `WeakMap` (#2597)
This Pull Request changes the following: - Implement `WeakMap` buildin object. |
2 years ago |
dependabot[bot] | e93b927e70 |
Bump clap from 4.1.4 to 4.1.6 (#2603)
Bumps [clap](https://github.com/clap-rs/clap) from 4.1.4 to 4.1.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.1.6</h2> <h2>[4.1.6] - 2023-02-15</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Don't show long help for <code>--help</code> just because hidden possible values include a description</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.1.6] - 2023-02-15</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Don't show long help for <code>--help</code> just because hidden possible values include a description</li> </ul> <h2>[4.1.5] - 2023-02-15</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Don't show long help for <code>--help</code> just because a hidden arg has a possible value with a description</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 4ca067a16c |
Bump once_cell from 1.17.0 to 1.17.1 (#2602)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.17.0 to 1.17.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/matklad/once_cell/blob/master/CHANGELOG.md">once_cell's changelog</a>.</em></p> <blockquote> <h2>1.17.1</h2> <ul> <li>Make <code>OnceRef</code> implementation compliant with <a href="https://github-redirect.dependabot.com/rust-lang/rust/issues/95228">strict provenance</a>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 7da5082233 |
Bump test262 from `e7364ea` to `1c47728` (#2600)
Bumps [test262](https://github.com/tc39/test262) from `e7364ea` to `1c47728`. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
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 |