mirror of https://github.com/boa-dev/boa.git
Tree:
f708a764c2
add-vhs-ci
benchmarks
control-flow-graph
dependabot/cargo/rust-dependencies-35d06b3251
dependabot/cargo/thiserror-1.0.69
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 }
192 Commits (f708a764c2cfe223df89f16013c9edec76615512)
Author | SHA1 | Message | Date |
---|---|---|---|
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] | 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 |
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 |
José Julián Espina | c645f8530e |
Bump serde_json from 1.0.85 to 1.0.86 (#2341)
Replaces #2339 since dependabot has a small bug. |
2 years ago |
José Julián Espina | df70302194 |
First prototype for new `JsString` using UTF-16 (#1659)
I think it's time to address the elephant in the room. This Pull Request will (hopefully!) solve part of #736. This is a complete rewrite of `JsString`, but instead of storing `u8` bytes it stores `u16` words. The `encode!` macro (renamed to `utf16!` for simplicity) from the `const-utf16` crate allows us to create UTF-16 encoded arrays at compilation time. `JsString` implements `Deref<Target=[u16]>` to unlock the slice methods and possibly make some manipulations easier. However, we would need to create our own library of utilities for `JsString`. |
2 years ago |
Calli | c8f6f85d61 |
Separate JsObjectType implementors to their own module (#2324)
This Pull Request closes #2080. It moves all implementors of the `JsObjectType` trait into their own `js_object` module. This should simplify documentation and by doing a `pub(crate)` export in `object` little to no imports within the crate need to be changed, simplifying the usage of this module within the boa_engine crate. Documentation within the `object` module has been updated to reflect this change and in a way that it is shown on the home page of the documentation. |
2 years ago |
Kevin | eaf94284bd |
Implement `JsDataView` (#2308)
<!--- Thank you for contributing to Boa! Please fill out the template below, and remove or add any information as you feel necessary. ---> This Pull Request is related to #2098 . It changes the following: - Implements a wrapper for `DataView` - Adds an example of `JsDataView` to the `JsArrayBuffer` example file under boa_examples Co-authored-by: jedel1043 <jedel0124@gmail.com> |
2 years ago |
raskad | 7f1d1a992a |
Parse static async private methods in classes (#2315)
This Pull Request changes the following: - Adjust `AsyncMethod` parsing to parse private identifiers. |
2 years ago |
raskad | 5b5498d1ae |
Fix double conversion to primitive in `ToNumeric` (#2310)
This Pull Request changes the following: - Fix double conversion to primitive in `ToNumeric`. - Optimize object check in `ToPrimitive`. |
2 years ago |
raskad | 9f0ac30082 |
Fix some Array spec deviations (#2306)
This Pull Request changes the following: - Fix array constructor realm comparison. - Fix error that ignored `ToObject`. - Ignore `array-grouping` feature tests. |
2 years ago |
raskad | 0213f9f1e5 |
Fix function property order (#2305)
This Pull Request changes the following: - Fix function property order |
2 years ago |
José Julián Espina | e9e85f5a49 |
Switch to workspace inherited properties (#2297)
This Pull Request switches our codebase to the brand new [workspace inherited keys](https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table), which allows us to define common package options that are usable within each crate's Cargo.toml file. It also allows to share dependency versions between crates, but I defined only shared versions for our workspace members. It would be a good follow-up to lift all the shared dependencies between crates into the global Cargo.toml. |
2 years ago |
raskad | c58a8997ca |
Implement `new.target` expression (#2299)
This Pull Request changes the following: - Implement `new.target` expression |
2 years ago |
creampnx_x | 573ac14458 |
Add unicode terminator to line comment (#2301)
This PR sloves the unicode terminator to single line comment + [{u+2028}](https://unicode-table.com/en/2028/) + [{u+2029}](https://unicode-table.com/en/2029/) + [related test]( |
2 years ago |
Iban Eguia | f5be60975b |
Updated dependencies for 0.16 release (#2300)
This Pull Request updates the dependencies for the 0.16 release. Co-authored-by: José Julián Espina <jedel0124@gmail.com> |
2 years ago |
dependabot[bot] | c4c608c17a |
Bump serde from 1.0.144 to 1.0.145 (#2298)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.144 to 1.0.145. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p> <blockquote> <h2>v1.0.145</h2> <ul> <li>Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is <code>Sized</code> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2282">#2282</a>, thanks <a href="https://github.com/ChayimFriedman2"><code>@ChayimFriedman2</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
Iban Eguia | 77e739c5da |
Upgrading to Unicode 15 (#2291)
This Pull Request overrides #2288.
It changes the following:
- Updates dependencies to use Unicode 15
- Updates the boa_unicode crate to use Unicode 15
It's still waiting on the unicode-general-category 0.6 release, which was tagged 3 days ago:
|
2 years ago |
dependabot[bot] | 198dfcc394 |
Bump once_cell from 1.14.0 to 1.15.0 (#2296)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.14.0 to 1.15.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.15.0</h2> <ul> <li>Increase minimal supported Rust version to 1.56.0.</li> <li>Implement <code>UnwindSafe</code> even if the <code>std</code> feature is disabled.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | d28633925c |
Implement `for await...of` loops (#2286)
This Pull Request changes the following: - Implement `for await...of` loop parsing - Implement `for await...of` execution |
2 years ago |
raskad | db8a299386 |
Implement missing global object internal methods (#2287)
This Pull Request fixes/closes #1987. It changes the following: - Add a prototype to the global object. - Implement `__get_prototype_of__`, `__set_prototype_of__`, `__get_own_property__`, and `__own_property_keys__` for the global object |
2 years ago |
creampnx_x | dbbcc57809 |
Fix labelled block statement (#2285)
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->
This Pull Request fixes [x-after-break-to-label](
|
2 years ago |
Iban Eguia | 779384d87f |
Add URI encoding and decoding functions (#2267)
This Pull Request closes #894.
It changes the following:
- Adds the `encodeURI()`, `decodeURI()`, `encodeURIComponent()` and `decodeURIComponent()` functions
- Passes all the tests except for those depending on #1987 or on the comment below.
Things to discuss:
- I'm unable to find in the spec information regarding the only failing tests, which relate to [this](
|
2 years ago |
raskad | 09e35a85a2 |
Implement Async-from-Sync Iterator Objects (#2234)
This Pull Request changes the following: - Implement [Async-from-Sync Iterator Objects](https://tc39.es/ecma262/#sec-async-from-sync-iterator-objects) - Give the proper `async` hint to `GetIterator` when executing a delegate yield expression in an async generator function |
2 years ago |
Iban Eguia | af35be683e |
Fixed assignment expression parsing (#2268)
This Pull Request fixes/closes #2148. It changes the following: - When we start an assignment expression, the `/` token must be a regular expression literal. The division can only occur between expressions after the assignment operator. - Added tests for the new behaviour, taken from #2177 This overrides #2177 |
2 years ago |
Iban Eguia | f4d88b7942 |
Added a bit more integer operation consistency to ByteDataBlock creation (#2272)
This Pull Request fixes a potential overflow when trying to convert a `u64` into a `usize` and then trying to create a byte data block. Related to this, we seem to be using a `u64` and `i64` as a general approach for an "integer", but ECMAScript doesn't have bounds for them, so they could be as big as infinite. Should we use `u128` and `i128` to have a bigger range? This would add a performance penalty, though, and we don't have 128-bit platforms usually, so the benefit would probably be minimal, at least when trying to allocate. |
2 years ago |
dependabot[bot] | fb68a8d734 |
Update criterion requirement from 0.3.5 to 0.4.0 in /boa_engine (#2279)
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md">criterion's changelog</a>.</em></p> <blockquote> <h2>[0.4.0] - 2022-09-10</h2> <h3>Removed</h3> <ul> <li>The <code>Criterion::can_plot</code> function has been removed.</li> <li>The <code>Criterion::bench_function_over_inputs</code> function has been removed.</li> <li>The <code>Criterion::bench_functions</code> function has been removed.</li> <li>The <code>Criterion::bench</code> function has been removed.</li> </ul> <h3>Changed</h3> <ul> <li>HTML report hidden behind non-default feature flag: 'html_reports'</li> <li>Standalone support (ie without cargo-criterion) feature flag: 'cargo_bench_support'</li> <li>MSRV bumped to 1.57</li> <li><code>rayon</code> and <code>plotters</code> are optional (and default) dependencies.</li> <li>Status messages ('warming up', 'analyzing', etc) are printed to stderr, benchmark results are printed to stdout.</li> <li>Accept subsecond durations for <code>--warm-up-time</code>, <code>--measurement-time</code> and <code>--profile-time</code>.</li> <li>Replaced serde_cbor with ciborium because the former is no longer maintained.</li> <li>Upgrade clap to v3 and regex to v1.5.</li> </ul> <h3>Added</h3> <ul> <li>A <code>--discard-baseline</code> flag for discarding rather than saving benchmark results.</li> <li>Formal support for benchmarking code compiled to web-assembly.</li> <li>A <code>--quiet</code> flag for printing just a single line per benchmark.</li> <li>A <code>Throughput::BytesDecimal</code> option for measuring throughput in bytes but printing them using decimal units like kilobytes instead of binary units like kibibytes.</li> </ul> <h3>Fixed</h3> <ul> <li>When using <code>bench_with_input</code>, the input parameter will now be passed through <code>black_box</code> before passing it to the benchmark.</li> </ul> <h2>[0.3.6] - 2022-07-06</h2> <h3>Changed</h3> <ul> <li>MSRV bumped to 1.49</li> <li>Symbol for microseconds changed from ASCII 'us' to unicode 'µs'</li> <li>Documentation fixes</li> <li>Clippy fixes</li> </ul> <h2>[0.3.5] - 2021-07-26</h2> <h3>Fixed</h3> <ul> <li>Corrected <code>Criterion.toml</code> in the book.</li> <li>Corrected configuration typo in the book.</li> </ul> <h3>Changed</h3> <ul> <li>Bump plotters dependency to always include a bug-fix.</li> <li>MSRV bumped to 1.46.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
Choongwoo Han | 43c7d7748a |
Fix regex literal /[/]/ (#2277)
This PR fixes a case where a forward slash is located in a regex class: `let regex = /[/]/;`. In this case, the forward slash should not close the regex literal. This fixes `test/built-ins/RegExp/regexp-class-chars.js` |
2 years ago |
creampnx_x | c43539a428 |
fix computed property methods can call super methods (#2274)
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->
This Pull Request fixes:
|
2 years ago |
Choongwoo Han | 2072f51faf |
Allow some keywords as identifiers (#2269)
This PR fixes #2275 There are keywords that are allowed as identifiers. https://tc39.es/ecma262/#sec-keywords-and-reserved-words > Those that are always allowed as identifiers, but also appear as keywords within certain syntactic productions, at places where Identifier is not allowed: as, async, from, get, meta, of, set, and target. This PR adds test cases for them, and fixes some cases such as `class A { set(a, b) { } }` `function of() { }` `let obj = {async: true}` `async()` |
2 years ago |
Choongwoo Han | 90ec460b3f |
Fix property access of call expression (#2273)
Fix a syntax error when accessing literal-like property names of call expression. e.g.) `fn().true` |
2 years ago |
Choongwoo Han | b63d04c48b |
Do not auto-insert semicolon in VariableDeclarationList (#2266)
There can be a line terminator in the middle of variable declaration statement. For example, ```js var a , b; ``` In this case, we should not insert semicolon automatically. This fixes: - test262/test/language/asi/S7.9_A7_T8.js - test262/test/language/asi/S7.9_A7_T9.js |
2 years ago |
Choongwoo Han | 3983363124 |
Add integer type to fast path of to_property_key (#2261)
Skip `to_string` for integer type primitives in `to_property_key`. It's unnecessary to convert the integer value to string and convert back to `Index(u32)` type. In this example code, it improves around 10% of runtime. ```js let arr = [1,2,3,4,5]; for (let i = 0; i < 10000000; i++) { arr[0] = 123; } ``` Before: 6.24s After: 5.38s |
2 years ago |
dependabot[bot] | 5858d82989 |
Bump once_cell from 1.13.1 to 1.14.0 (#2263)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.13.1 to 1.14.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.14.0</h2> <ul> <li>Add extension to <code>unsync</code> and <code>sync</code> <code>Lazy</code> mut API: <ul> <li><code>force_mut</code></li> <li><code>get_mut</code></li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | ab9f0d6052 |
Bump serde_json from 1.0.83 to 1.0.85 (#2247)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.83 to 1.0.85. <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.85</h2> <ul> <li>Make <code>Display</code> for <code>Number</code> produce the same representation as serializing (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/919">#919</a>)</li> </ul> <h2>v1.0.84</h2> <ul> <li>Make <code>Debug</code> impl of <code>serde_json::Value</code> more compact (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/918">#918</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | eb5d24ed4a |
Bump serde from 1.0.143 to 1.0.144 (#2249)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.143 to 1.0.144. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p> <blockquote> <h2>v1.0.144</h2> <ul> <li>Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2263">#2263</a>, thanks <a href="https://github.com/taiki-e"><code>@taiki-e</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | ae10d40dc0 |
Fix `arguments` object iterator function (#2231)
This Pull Request changes the following: - Create the `%Array.prototype.values%` function object once and use it in both the `Array` prototype and as the `@@iterator` value of `arguments` objects. This fixes a test where `arguments[Symbol.iterator]` and `[][Symbol.iterator]` would not be equal. |
2 years ago |
raskad | 95042557b5 |
Fix spread arguments in function calls (#2216)
Currently we only spread spread-expressions if they are the last argument in the function call. With this fix all arguments are spread if needed. The downside is that an array object is allocated to store all arguments if the arguments contain a spread-expression. But with dense indexed properties inplemented in #2167 this should be reasonably fast. |
2 years ago |
dependabot[bot] | a18e9130f9 |
Bump once_cell from 1.13.0 to 1.13.1 (#2242)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.13.0 to 1.13.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.13.1</h2> <ul> <li>Make implementation compliant with <a href="https://github-redirect.dependabot.com/rust-lang/rust/issues/95228">strict provenance</a>.</li> <li>Upgrade <code>atomic-polyfill</code> to <code>1.0</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
Iban Eguia | 47ab7e0a80 |
Removed some unsafe_empty_trace!() calls to improve performance (#2233)
<!--- Thank you for contributing to Boa! Please fill out the template below, and remove or add any information as you feel neccesary. ---> This Pull Request fixes #1615. It changes the following: - Removes the `Trace` implementation from types that don't need it (except for `JsSymbol` and `JsString`, which are needed elsewere). - Uses `#[unsafe_ignore_trace]` in places where we need to implement `Trace` for part of a structure. - Implements a custom `Trace` in enums where deriving it is not possible, since `#[unsafe_ignore_trace]` doesn't work for enums. Co-authored-by: raskad <32105367+raskad@users.noreply.github.com> |
2 years ago |
dependabot[bot] | e444f8bff3 |
Bump chrono from 0.4.21 to 0.4.22 (#2238)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.21 to 0.4.22. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p> <blockquote> <h2>0.4.22</h2> <p>Unfortunately the introduction of the iana-time-zone dependency in 0.4.21 caused some new regressions with lesser known platforms. This release fixes all of the issues we've encountered, improving the situation on some WebAssembly targets, SGX and on macOS/iOS. We've improved our CI setup to hopefully catch more of these issues before release in the future.</p> <ul> <li>Make wasm-bindgen optional on <code>wasm32-unknown-unknown</code> target (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/771">#771</a>)</li> <li>Avoid iana-time-zone dependency on <code>x86_64-fortanix-unknown-sgx</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/767">#767</a>, thanks to <a href="https://github.com/trevor-crypto"><code>@trevor-crypto</code></a>)</li> <li>Update <code>iana-time-zone</code> version to 0.1.44 to avoid cyclic dependencies (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/773">#773</a>, thanks to <a href="https://github.com/Kijewski"><code>@Kijewski</code></a> for the upstream PRs)</li> <li>Clarify documentation about year range in formatting/parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/765">#765</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p> <blockquote> <h2>0.4.22</h2> <ul> <li>Allow wasmbindgen to be optional on <code>wasm32-unknown-unknown</code> target [(<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/771">#771</a>)](<a href="https://github-redirect.dependabot.com/chronotope/chrono/pull/771">chronotope/chrono#771</a>)</li> <li>Fix compile error for <code>x86_64-fortanix-unknown-sgx</code> [(<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/767">#767</a>)](<a href="https://github-redirect.dependabot.com/chronotope/chrono/pull/767">chronotope/chrono#767</a>)</li> <li>Update <code>iana-time-zone</code> version to 1.44 [(<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/773">#773</a>)](<a href="https://github-redirect.dependabot.com/chronotope/chrono/pull/773">chronotope/chrono#773</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | 2dcdf51407 |
Add field accessors to destructing assignment (#2213)
This Pull Request changes the following: - Implement parsing/cover-conversion for field accessor member expressions in [DestructuringAssignmentTarget](https://tc39.es/ecma262/#prod-DestructuringAssignmentTarget). - Modify the `CopyDataProperties` opcode to account for excluded keys that are only known at runtime. |
2 years ago |
raskad | 492d843ae0 |
Fix `yield` expression to end on line terminator (#2232)
This Pull Request changes the following: - Fix `yield` expression to end on line terminator |
2 years ago |
raskad | 5909e9a963 |
Implement Async Generators (#2200)
This Pull Request fixes #1560. It changes the following: - Implement `AsyncGeneratorFunction` builtin object. - Implement `AsyncGenerator` builtin object. - Implement async generator execution. - Add some parse errors for async generators. The `AsyncGenerator.prototype.return()` method currently does not work correctly with `finally` blocks, but I think we should merge this first to not increase the complexity of the pr too much. |
2 years ago |
raskad | d6fc7af2a1 |
Fix Rust 1.63 clippy lints (#2230)
This Pull Request changes the following: - Fix Rust 1.63 clippy lints |
2 years ago |
dependabot[bot] | f3e5ccbcdc |
Bump chrono from 0.4.20 to 0.4.21 (#2227)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.20 to 0.4.21. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p> <blockquote> <p>0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:</p> <ul> <li>Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, <code>TimeZone::now()</code> fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.</li> <li>Correctly detect timezone on Android (also <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/756">#756</a>). Android does have the timezone database installed, but it's in a different path, and it does not use <code>/etc/localtime</code> to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.</li> </ul> <p>Additionally, there is a documentation fix that reverts an incorrect guarantee:</p> <ul> <li>Document that <code>%Y</code> can have a negative value, both in formatting and in parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/760">#760</a>, thanks to <a href="https://github.com/alex"><code>@alex</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p> <blockquote> <h1>ChangeLog for Chrono</h1> <p>This documents all notable changes to <a href="https://github.com/chronotope/chrono">Chrono</a>.</p> <p>Chrono obeys the principle of <a href="http://semver.org/">Semantic Versioning</a>, with one caveat: we may move previously-existing code behind a feature gate and put it behind a new feature. This new feature will always be placed in the <code>previously-default</code> feature, which you can use to prevent breakage if you use <code>no-default-features</code>.</p> <p>There were/are numerous minor versions before 1.0 due to the language changes. Versions with only mechanical changes will be omitted from the following list.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | a15dd2f305 |
Bump serde from 1.0.142 to 1.0.143 (#2225)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.142 to 1.0.143. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p> <blockquote> <h2>v1.0.143</h2> <ul> <li>Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2253">#2253</a>, thanks <a href="https://github.com/taiki-e"><code>@taiki-e</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | 3d6a8d5232 |
Parse class private async generator methods (#2220)
Currently async generator class methods are not being parsed correctly. In comparison to the current main branch this only fixes a few tests, but after #2200 is merged, it should be aroud 1000 additional passing tests. |
2 years ago |
dependabot[bot] | a1f52ef51d |
Bump chrono from 0.4.19 to 0.4.20 (#2222)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.19 to 0.4.20. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p> <blockquote> <h2>0.4.20</h2> <p>chrono is a date and time library for Rust and 0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to <a href="https://github.com/quodlibetor"><code>@quodlibetor</code></a> for their stewardship of the chrono crate for many years! The new maintainers are <a href="https://github.com/djc"><code>@djc</code></a> and <a href="https://github.com/esheppa"><code>@esheppa</code></a>. Our first priority has been fixing the soundness issues with calls to <code>localtime_r()</code> as first reported in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/499">#499</a> and the <a href="https://rustsec.org/advisories/RUSTSEC-2020-0159">RUSTSEC-2020-0159 </a> advisory. In order to do this we adapted code from the tz-rs crate maintained by <a href="https://github.com/x-hgg-x"><code>@x-hgg-x</code></a> for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.</p> <p>Due to compatibility reasons, this release does not yet remove the time 0.1 dependency, though chrono 0.4.20 does not depend on the vulnerable parts of the time 0.1.x versions. In a future 0.5 release, we will remove the time dependency.</p> <p>The minimum supported Rust version for 0.4.20 is 1.32.0, which is intentionally still quite conservative. If you are using chrono 0.4 with a Rust version older than 1.52, we'd like to hear from you since we'd like to further modernize the code base to ease maintenance.</p> <h2>Fixes</h2> <ul> <li>Fix unsound call to <code>localtime_r()</code> by parsing timezone files in Rust on Unix (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/677">#677</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/728">#728</a>)</li> <li>Allow RFC 2822 parser to deal with comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/733">#733</a> then <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/737">#737</a>, thanks to <a href="https://github.com/Finomnis"><code>@Finomnis</code></a>)</li> <li>Avoid panicking during parsing (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/686">#686</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li> <li>Avoid panics when rounding durations (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/659">#659</a>, thanks to <a href="https://github.com/ARBaart"><code>@ARBaart</code></a>)</li> <li>Fix <code>Duration::abs()</code> behavior in case of negative durations with nanoseconds (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/734">#734</a>, thanks to <a href="https://github.com/abreis"><code>@abreis</code></a>)</li> </ul> <h2>Additions</h2> <ul> <li>Make <code>ParserErrorKind</code> public and available through <code>ParseError::kind()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/588">#588</a>, thanks to <a href="https://github.com/sbrocket"><code>@sbrocket</code></a>)</li> <li>Expose associated <code>MIN</code> and <code>MAX</code> const values in favor of free-standing consts (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/726">#726</a>)</li> <li>Add (optional) support for rkyv (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/644">#644</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/701">#701</a>, thanks to <a href="https://github.com/dovahcrow"><code>@dovahcrow</code></a>)</li> <li>Support month-based calculations against <code>NaiveDate</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/732">#732</a> with follow up in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/752">#752</a>, thanks to <a href="https://github.com/avantgardnerio"><code>@avantgardnerio</code></a>)</li> <li>Add <code>NaiveWeek</code> type to facilitate week-based calculations (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/666">#666</a>, thanks to <a href="https://github.com/sestrella"><code>@sestrella</code></a>)</li> <li>Add <code>NaiveDateTime::and_local_timezone()</code> method (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/711">#711</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li> <li>Add <code>DateTime::from_local()</code> method (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/572">#572</a>, thanks to <a href="https://github.com/retrhelo"><code>@retrhelo</code></a>)</li> <li>Extend serde integration for <code>NaiveDateTime</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/664">#664</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li> <li>Implement <code>DoubleEndedIterator</code> for <code>NaiveDateDaysIterator</code>/<code>NaiveDateWeeksIterator</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/697">#697</a>, thanks to <a href="https://github.com/teobouvard"><code>@teobouvard</code></a>)</li> <li>Implement <code>std::iter::Sum</code> for <code>Duration</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/522">#522</a>, thanks to <a href="https://github.com/jakevossen5"><code>@jakevossen5</code></a>)</li> <li>Add <code>years_since()</code> method to <code>DateTime</code>/<code>Date</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/557">#557</a> then <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/707">#707</a>, thanks to <a href="https://github.com/yozhgoor"><code>@yozhgoor</code></a>)</li> <li>Implement <code>AddAssign</code>/<code>SubAssign</code> for <code>DateTime</code>/<code>Date</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/698">#698</a>, thanks to <a href="https://github.com/MrGunflame"><code>@MrGunflame</code></a>)</li> <li>Fix imports on WASM targets (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/672">#672</a>, thanks to <a href="https://github.com/danielalvsaaker"><code>@danielalvsaaker</code></a>)</li> <li>Implement std::error::Error for ParseWeekdayError (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/745">#745</a>)</li> </ul> <h2>Non-functional improvements</h2> <ul> <li>Improve CI to better exercise WASM targets (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/662">#662</a>, thanks to <a href="https://github.com/AmateurECE"><code>@AmateurECE</code></a>)</li> <li>More WASM testing improvements, enable dependencies by default (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/746">#746</a>)</li> <li>Fix compiling for wasm32-unknown-emscripten target (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/568">#568</a>, thanks to <a href="https://github.com/orion78fr"><code>@orion78fr</code></a>)</li> <li>Use stub implementation for anything not unix and not windows (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/593">#593</a>, thanks to <a href="https://github.com/yu-re-ka"><code>@yu-re-ka</code></a>)</li> <li>Remove now unused libc dependency (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/710">#710</a>, thanks to <a href="https://github.com/metent"><code>@metent</code></a>)</li> <li>Clean up some clippy warnings (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/721">#721</a>, thanks to <a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li> <li>Clarify documentation for <code>Utc::now()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/647">#647</a>, thanks to <a href="https://github.com/ModProg"><code>@ModProg</code></a>)</li> <li>Clarify documentation for <code>DateTime::with_timezone()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/747">#747</a>, thanks to <a href="https://github.com/kevincox"><code>@kevincox</code></a>)</li> <li>Improve examples for <code>naive</code> serde integration (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/616">#616</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li> <li>Clean up <code>extern crate</code> statements and outdated comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/665">#665</a>, thanks to <a href="https://github.com/nickelc"><code>@nickelc</code></a>)</li> <li>Fix typo in deprecation notice (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/744">#744</a>, thanks to <a href="https://github.com/Mike-Dax"><code>@Mike-Dax</code></a>)</li> <li>Fix some typos in documentation (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/680">#680</a> and <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/695">#695</a>, thanks to <a href="https://github.com/cuishuang"><code>@cuishuang</code></a> and <a href="https://github.com/fxredeemer"><code>@fxredeemer</code></a>)</li> <li>Implement caching for CI (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/609">#609</a>, thanks to <a href="https://github.com/Milo123459"><code>@Milo123459</code></a>)</li> </ul> <h2>0.4.20-rc.1</h2> <p>0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to <a href="https://github.com/quodlibetor"><code>@quodlibetor</code></a> for their stewardship of the chrono crate for many years! The new maintainers are <a href="https://github.com/djc"><code>@djc</code></a> and <a href="https://github.com/esheppa"><code>@esheppa</code></a>. Our first priority has been fixing the soundness issues with calls to <code>localtime_r()</code> as first reported in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/499">#499</a> and the <a href="https://rustsec.org/advisories/RUSTSEC-2020-0159">RUSTSEC-2020-0159 </a> advisory. In order to do this we adapted code from the tz-rs crate maintained by <a href="https://github.com/x-hgg-x"><code>@x-hgg-x</code></a> for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p> <blockquote> <h2>0.4.20 (unreleased)</h2> <ul> <li>Add more formatting documentation and examples.</li> <li>Add support for microseconds timestamps serde serialization/deserialization (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/304">#304</a>)</li> <li>Fix <code>DurationRound</code> is not TZ aware (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/495">#495</a>)</li> <li>Implement <code>DurationRound</code> for <code>NaiveDateTime</code></li> <li>Implement <code>std::iter::Sum</code> for <code>Duration</code></li> <li>Add <code>DateTime::from_local()</code> to construct from given local date and time (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/572">#572</a>)</li> <li>Add a function that calculates the number of years elapsed between now and a given <code>Date</code> or <code>DateTime</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/557">#557</a>)</li> <li>Correct build for wasm32-unknown-emscripten target (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/568">#568</a>)</li> <li>Change <code>Local::now()</code> and <code>Utc::now()</code> documentation from "current date" to "current date and time" (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/647">#647</a>)</li> <li>Fix <code>duration_round</code> panic on rounding by <code>Duration::zero()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/658">#658</a>)</li> <li>Add optional rkyv support.</li> <li>Add support for microseconds timestamps serde serialization for <code>NaiveDateTime</code>.</li> <li>Add support for optional timestamps serde serialization for <code>NaiveDateTime</code>.</li> <li>Fix build for wasm32-unknown-emscripten (<a href="https://github.com/yu-re-ka"><code>@yu-re-ka</code></a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/593">#593</a>)</li> <li>Make <code>ParseErrorKind</code> public and available through <code>ParseError::kind()</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/588">#588</a>)</li> <li>Implement <code>DoubleEndedIterator</code> for <code>NaiveDateDaysIterator</code> and <code>NaiveDateWeeksIterator</code></li> <li>Fix panicking when parsing a <code>DateTime</code> (<a href="https://github.com/botahamec"><code>@botahamec</code></a>)</li> <li>Add support for getting week bounds based on a specific <code>NaiveDate</code> and a <code>Weekday</code> (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/666">#666</a>)</li> <li>Remove libc dependency from Cargo.toml.</li> <li>Add the <code>and_local_timezone</code> method to <code>NaiveDateTime</code></li> <li>Fix the behavior of <code>Duration::abs()</code> for negative durations with non-zero nanos</li> <li>Add compatibility with rfc2822 comments (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/733">#733</a>)</li> <li>Make <code>js-sys</code> and <code>wasm-bindgen</code> enabled by default when target is <code>wasm32-unknown-unknown</code> for ease of API discovery</li> <li>Add the <code>Months</code> struct and associated <code>Add</code> and <code>Sub</code> impls</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |