mirror of https://github.com/boa-dev/boa.git
Tree:
9d521f9acf
add-vhs-ci
benchmarks
bump-temporal-version
control-flow-graph
dependabot/cargo/rust-dependencies-50dc4690b8
expect-lints
feature/node_span
feature/snapshot
features
gh-readonly-queue/main/pr-2877-b0ddf5eed00a53281d67fc7d846233fc0d99ce9c
gh-readonly-queue/main/pr-3144-8e48cec73fae708420b9af88813d4870243c491a
local-parameters-if-mapped-arguments-object-not-accessed
main
nan-boxing
optimization/static-shapes
real_conformance
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.20
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 }
2021 Commits (9d521f9acff0ded989c3c8b57c946418849426d2)
Author | SHA1 | Message | Date |
---|---|---|---|
raskad | dc3b09a001 |
Implement async arrow functions (#2393)
This Pull Request fixes #1805. It changes the following: - Implement async arrow function parsing and execution. - Handle special case when a function expressions binding identifier need to be bound in the function body. - Implement special silent ignored assignment for the above case. - Fix issue with getting the correct promise capability for function returns. - Complete function object `toString` todo. I will fix the two failing assignmenttargettype tests in a follow up PR. |
2 years ago |
José Julián Espina | 49a58675cc |
Replace `contains` and friends with visitors (#2403)
This Pull Request replaces `contains`, `contains_arguments`, `has_direct_super` and `function_contains_super` with visitors. (~1000 removed lines!) Also, the new visitor implementation caught a bug where we weren't setting the home object of async functions, generators and async generators for methods of classes, which caused a stack overflow on `super` calls, and I think that's pretty cool! Next is `var_declared_names`, `lexically_declared_names` and friends, which will be on another PR. |
2 years ago |
José Julián Espina | b4da172f91 |
Extract the ast to a crate (#2402)
This should hopefully improve our compilation times, both from a clean build and from an incremental compilation snapshot. Next would be the parser, but it imports `Context`, so it'll require a bit more work. The number of file changes is obviously big, but almost nothing was changed, I just moved everything to another crate and readjusted the imports of the `parser` module. (Though, I did have to change some details, because there were some functions on the ast that returned `ParseError`s, and the tests had to be moved to the parser) |
2 years ago |
Addison Crump | b5b8cdfa18 |
Implement AST Visitor pattern (attempt #3) (#2392)
This Pull Request closes no specific issue, but allows for analysis and post-processing passes by both internal and external developers. It changes the following: - Adds a Visitor trait, to be implemented by visitors of a particular node type. - Adds `Type`Visitor traits which offer access to private members of a node. - Adds an example which demonstrates the use of Visitor traits by walking over an AST and printing its contents. At this time, the PR is more of a demonstration of intent rather than a full PR. Once it's in a satisfactory state, I'll mark it as not a draft. Co-authored-by: Addison Crump <addison.crump@cispa.de> |
2 years ago |
José Julián Espina | c72e4c20c9 |
Implement delete for references (#2395)
This Pull Request implements `delete` for variable references: ```Javascript x = 5; console.log(x) // 5; delete x; console.log(x) // ReferenceError ``` It changes the following: - Implements delete for references. - Fixes tests related to deletions of function definitions inside `eval`. - Implements an op to throw an error on super property deletion. This puts us at a conformance of 97.98% for the `test/language/expressions/delete` suite. The last 2 failing tests are related to `with` statements ([11.4.1-4.a-5.js]( |
2 years ago |
dependabot[bot] | 6c70dd6243 |
Bump once_cell from 1.15.0 to 1.16.0 (#2396)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.15.0 to 1.16.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/matklad/once_cell/blob/master/CHANGELOG.md">once_cell's changelog</a>.</em></p> <blockquote> <h2>1.16.0</h2> <ul> <li>Add <code>no_std</code> implementation based on <code>critical-section</code>, <a href="https://github-redirect.dependabot.com/matklad/once_cell/pull/195">#195</a>.</li> <li>Deprecate <code>atomic-polyfill</code> feature (use the new <code>critical-section</code> instead)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 8c58339b38 |
Bump test262 from `b5d3192` to `85373b4` (#2397)
Bumps [test262](https://github.com/tc39/test262) from `b5d3192` to `85373b4`. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
Halid Odat | bc2dd9c4bd |
Fix order dependent execution in assignment. (#2378)
Fixes #1917 (fixes the code example given with the hashes) Fixes the order dependent execution of assignment, so the following code works correctly: ```javascript function f(x) { console.log(x) } // used to check the order of execution let a = [[]] (f(1), a)[(f(2), 0)][(f(3), 0)] = (f(4), 123) // 🤮 ``` Prints out: ```bash 1 2 3 4 123 ``` As expected This introduces some opcodes: - ~~`Swap3`: currently used only to keep some previous code working that needs refactoring.~~ - ~~`RotateRight n`: Rotates the `n` top values from the top of the stack to the right by `1`.~~ Already added by #2390 ~~Besides the new opcodes,~~ Some opcodes pop and push order of values on the stack have been changed. To eliminate many swaps and to make this change easier. ~~This PR is still a WIP and needs more refactoring~~ This is now ready for review/merge :) |
2 years ago |
José Julián Espina | 18824baba8 |
Generate `Opcode` impl using macro (#2391)
This reduces a lot of the repetition from the `Opcode` functions and makes it easier to add a new Op. |
2 years ago |
José Julián Espina | 4b892a931d |
Implement optional chains (#2390)
This Pull Request implements optional chains.
Example:
```Javascript
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
console.log(adventurer.cat?.name); // Dinah
console.log(adventurer.dog?.name); // undefined
```
Since I needed to implement `Opcode::RotateLeft`, and #2378 had an implementation for `Opcode::RotateRight`, I took the opportunity to integrate both ops into this PR (big thanks to @HalidOdat for the original implementation!).
This PR almost has 100% conformance for the `optional-chaining` test suite. However, there's this one [test](
|
2 years ago |
raskad | f446c0970f |
Remove invalid optimization in addition (#2387)
This Pull Request changes the following: - Remove invalid optimization in addition where `ToPrimitive` calls where skipped. |
2 years ago |
raskad | b67596bc9b |
Add named evaluation of logical assignments (#2389)
This Pull Request changes the following: - Add named evaluation of logical assignments |
2 years ago |
raskad | 203c1961bb |
Skip prototype field definition for arrow function (#2388)
This Pull Request changes the following: - Skip prototype field definition for arrow function - Add `GetArrowFunction` opcode |
2 years ago |
raskad | 786357919f |
Set `in` to `true` when parsing AssignmentExpression in ConditionalExpression (#2386)
This Pull Request fixes the following: - Set `in` to `true` when parsing AssignmentExpression in ConditionalExpression |
2 years ago |
Kevin | f026f2005a |
Implement `JsGenerator` and wrapper docs clean up (#2380)
<!--- 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) |
2 years ago |
José Julián Espina | 762dd93d44 |
Fix var collisions in strict eval calls (#2382)
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. |
2 years ago |
José Julián Espina | 8a5f141125 |
Reduce documentation size in blog (#2383)
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. |
2 years ago |
José Julián Espina | 447fca4cc0 |
Implement member accessors in initializer of for loops (#2381)
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 ``` |
2 years ago |
José Julián Espina | 89e3081672 |
Document the AST (#2377)
As promised in https://github.com/boa-dev/boa/pull/2319#issuecomment-1280095047. There are still some style inconsistencies (which require a bit more time and effort), but having the whole module documented is a lot better for clarity. |
2 years ago |
Iban Eguia Moraza | 6a43878b04 |
Updated the Code of Conduct (#2365)
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 |
2 years ago |
João Borges | 48e6513564 |
Cleanup and speed-up CI (#2376)
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.~~ |
2 years ago |
dependabot[bot] | 946a4ddf74 |
Bump serde from 1.0.145 to 1.0.147 (#2374)
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=" |
2 years ago |
dependabot[bot] | d10df0221c |
Bump serde_yaml from 0.9.13 to 0.9.14 (#2373)
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=" |
2 years ago |
dependabot[bot] | b9335b72ac |
Bump boa-dev/criterion-compare-action from 3.2.3 to 3.2.4 (#2372)
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=" |
2 years ago |
dependabot[bot] | 5ba101d4bc |
Bump test262 from `ee7c379` to `b5d3192` (#2375)
Bumps [test262](https://github.com/tc39/test262) from `ee7c379` to `b5d3192`. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | de231df63a |
Allow LineTerminator before Semicolon in `continue` (#2371)
This Pull Request changes the following: - Check if there is a Semicolon after a LineTerminator is found in a `continue` statement. |
2 years ago |
Kevin | af5970e8e7 |
Changes neccesary -> necessary (#2370)
<!---
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 😄
|
2 years ago |
Iban Eguia Moraza | f4cef141b0 |
Removed some duplicate code, added `ToIndentedString` (#2367)
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? |
2 years ago |
Kevin | 9a05b1ef81 |
Split vm/opcode into modules (#2343)
<!--- 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> |
2 years ago |
raskad | 80017fdf15 |
Fix error in `Proxy` set implementation (#2369)
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> |
2 years ago |
José Julián Espina | d4c220a70b |
Implement `LabelledStatement` (#2349)
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. |
2 years ago |
Choongwoo Han | 904e422d36 |
Fix Regex literal parsing in MemberExpression (#2328)
This Pull Request fixes/closes #2327 It changes the following: - set_goal(RegExp) for PrimaryExpression parsing |
2 years ago |
Iban Eguia Moraza | a47d9ec732 |
Modified the `loadfile` example to show how Boa can read bytes (#2363)
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. |
2 years ago |
Iban Eguia Moraza | 5e75cf68ff |
Removed the "VM Implementation" headline for Test262 (#2364)
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. |
2 years ago |
Iban Eguia Moraza | f708a764c2 |
Fixed some documentation and clippy warnings in tests (#2362)
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. |
2 years ago |
dependabot[bot] | 2c559392f1 |
Bump clap from 4.0.17 to 4.0.18 (#2360)
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=" |
2 years ago |
dependabot[bot] | f6e189e628 |
Bump getrandom from 0.2.7 to 0.2.8 (#2359)
Bumps [getrandom](https://github.com/rust-random/getrandom) from 0.2.7 to 0.2.8. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md">getrandom's changelog</a>.</em></p> <blockquote> <h2>[0.2.8] - 2022-10-20</h2> <h3>Changed</h3> <ul> <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API">Web Cryptography API</a> will now be preferred on <code>wasm32-unknown-unknown</code> when using the <code>"js"</code> feature, even on Node.js <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/284">#284</a> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/295">#295</a></li> </ul> <h3>Added</h3> <ul> <li>Added benchmarks to track buffer initialization cost <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/272">#272</a></li> </ul> <h3>Fixed</h3> <ul> <li>Use <code>$crate</code> in <code>register_custom_getrandom!</code> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/270">#270</a></li> </ul> <h3>Documentation</h3> <ul> <li>Add information about enabling <code>"js"</code> feature <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/280">#280</a></li> <li>Fix link to <code>wasm-bindgen</code> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/278">#278</a></li> <li>Document the varied implementations for underlying randomness sources <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/276">#276</a></li> </ul> <p><a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/284">#284</a>: <a href="https://github-redirect.dependabot.com/rust-random/getrandom/pull/284">rust-random/getrandom#284</a> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/295">#295</a>: <a href="https://github-redirect.dependabot.com/rust-random/getrandom/pull/295">rust-random/getrandom#295</a> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/272">#272</a>: <a href="https://github-redirect.dependabot.com/rust-random/getrandom/pull/272">rust-random/getrandom#272</a> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/270">#270</a>: <a href="https://github-redirect.dependabot.com/rust-random/getrandom/pull/270">rust-random/getrandom#270</a> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/280">#280</a>: <a href="https://github-redirect.dependabot.com/rust-random/getrandom/pull/280">rust-random/getrandom#280</a> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/278">#278</a>: <a href="https://github-redirect.dependabot.com/rust-random/getrandom/pull/278">rust-random/getrandom#278</a> <a href="https://github-redirect.dependabot.com/rust-random/getrandom/issues/276">#276</a>: <a href="https://github-redirect.dependabot.com/rust-random/getrandom/pull/276">rust-random/getrandom#276</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 96d4ed8d70 |
Bump syn from 1.0.102 to 1.0.103 (#2358)
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=" |
2 years ago |
dependabot[bot] | e07f79254c |
Bump anyhow from 1.0.65 to 1.0.66 (#2361)
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=" |
2 years ago |
dependabot[bot] | d51fee7237 |
Bump serde_json from 1.0.86 to 1.0.87 (#2355)
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=" |
2 years ago |
José Julián Espina | dc9c1cb275 |
Create new lazy Error type (#2283)
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) |
2 years ago |
dependabot[bot] | 4601b928e0 |
Bump clap from 4.0.16 to 4.0.17 (#2354)
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=" |
2 years ago |
dependabot[bot] | deb9ec208c |
Bump crazy-max/ghaction-github-pages from 3.0.0 to 3.1.0 (#2353)
Bumps [crazy-max/ghaction-github-pages](https://github.com/crazy-max/ghaction-github-pages) from 3.0.0 to 3.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/crazy-max/ghaction-github-pages/releases">crazy-max/ghaction-github-pages's releases</a>.</em></p> <blockquote> <h2>v3.1.0</h2> <ul> <li>Bump <code>@actions/core</code> from 1.6.0 to 1.10.0 (<a href="https://github-redirect.dependabot.com/crazy-max/ghaction-github-pages/issues/177">#177</a> <a href="https://github-redirect.dependabot.com/crazy-max/ghaction-github-pages/issues/178">#178</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-github-pages/compare/v3.0.0...v3.1.0">https://github.com/crazy-max/ghaction-github-pages/compare/v3.0.0...v3.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 427bd17941 |
Bump test262 from `eb67a76` to `ee7c379` (#2348)
Bumps [test262](https://github.com/tc39/test262) from `eb67a76` to `ee7c379`. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | b0cf873a46 |
Bump monaco-editor from 0.34.0 to 0.34.1 (#2351)
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> |
2 years ago |
dependabot[bot] | c51382ae75 |
Bump clap from 4.0.12 to 4.0.16 (#2352)
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=" |
2 years ago |
dependabot[bot] | e592a8234e |
Bump boa-dev/criterion-compare-action from 3.2.2 to 3.2.3 (#2347)
Bumps [boa-dev/criterion-compare-action](https://github.com/boa-dev/criterion-compare-action) from 3.2.2 to 3.2.3. <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.3</h2> <p>This release updates the used dependencies.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
José Julián Espina | 959b9f1b6d |
Split `Node` into `Statement`, `Expression` and `Declaration` (#2319)
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. |
2 years ago |
Kevin | 13dcdd4a97 |
Implement `JsRegExp` (#2326)
<!--- 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` |
2 years ago |
Iban Eguia | 9998a6787c |
Upgrade clap to 4.0, add value hints for zsh and fish (#2336)
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> |
2 years ago |