mirror of https://github.com/boa-dev/boa.git
Tree:
6412b30d5d
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 }
371 Commits (6412b30d5da5923139202a4aedf4ba151ce93416)
Author | SHA1 | Message | Date |
---|---|---|---|
raskad | aaeee43c4f |
Fix `this` in function calls (#2153)
This Pull Request changes the following: - Fix the `this` value that is passend to function calls to be `undefined` if the function is not a property reference - Add special handling for setting the `this` value for function calls where the function is a private property reference or a super property reference |
2 years ago |
raskad | 6b4ebf9e3e |
Fix clippy 1.62.0 lints (#2154)
This Pull Request changes the following: - Fix clippy 1.62.0 lints |
2 years ago |
jedel1043 | f7aef10a61 |
Remove `string-interner` dependency and implement custom string `Interner` (#2147)
So, @raskad and myself had a short discussion about the state of #736, and we came to the conclusion that it would be a good time to implement our own string interner; partly because the `string-interner` crate is a bit unmaintained (as shown by https://github.com/Robbepop/string-interner/pull/42 and https://github.com/Robbepop/string-interner/pull/47), and partly because it would be hard to experiment with custom optimizations for UTF-16 strings. I still want to thank @Robbepop for the original implementation though, because some parts of this design have been shamelessly stolen from it 😅. Having said that, this PR is a complete reimplementation of the interner, but with some modifications to (hopefully!) make it a bit easier to experiment with UTF-16 strings, apply optimizations, and whatnot :) |
2 years ago |
dependabot[bot] | 8657dd2b11 |
Bump serde_json from 1.0.81 to 1.0.82 (#2152)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.81 to 1.0.82. <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.82</h2> <ul> <li>Implement <code>From<Option<T>></code> for serde_json::Value where <code>T: Into<Value></code> (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/900">#900</a>, thanks <a href="https://github.com/kvnvelasco"><code>@kvnvelasco</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | 13df9a1984 |
Implement `super` expressions (#2116)
This Pull Request changes the following: - Implement `super` expression parsing / execution. - Implement early errors for `super` expressions. - Refactor / add internal slot representation for environment and function objects. |
2 years ago |
raskad | c561aa3b2c |
Implement `Promise.allSettled` (#2146)
This Pull Request changes the following: - Implement `Promise.allSettled` |
2 years ago |
raskad | e81e06b462 |
Implement `Promise.any` (#2145)
This Pull Request changes the following: - Implement `Promise.any` |
2 years ago |
dependabot[bot] | 724d182570 |
Bump unicode-normalization from 0.1.19 to 0.1.20 (#2142)
Bumps [unicode-normalization](https://github.com/unicode-rs/unicode-normalization) from 0.1.19 to 0.1.20. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/unicode-rs/unicode-normalization/commits/v0.1.20">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=unicode-normalization&package-manager=cargo&previous-version=0.1.19&new-version=0.1.20)](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 |
raskad | b043bca081 |
Implement `Promise.all` (#2140)
This Pull Request changes the following: - Implement `Promise.all` |
2 years ago |
dependabot[bot] | d355d3c3a6 |
Bump indexmap from 1.9.0 to 1.9.1 (#2139)
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.9.0 to 1.9.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/bluss/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <ul> <li> <p>1.9.1</p> <ul> <li>The MSRV now allows Rust 1.56.0 as well. However, currently <code>hashbrown</code> 0.12.1 requires 1.56.1, so users on 1.56.0 should downgrade that to 0.12.0 until there is a later published version relaxing its requirement.</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
jedel1043 | 0ebb3cf439 |
Refactor `construct` and `PromiseCapability` to preserve `JsObject` invariants (#2136)
This Pull Request changes the signature of `construct` to always return `JsObject`s, and refactors `PromiseCapability` to store only `JsObject`/`JsFunction`s. This preserves the following invariants specified in the spec: https://tc39.es/ecma262/multipage/ordinary-and-exotic-objects-behaviours.html#sec-ecmascript-function-objects-construct-argumentslist-newtarget > The [[Construct]] internal method of an ECMAScript function object ... returns either a normal completion containing an Object or a throw completion ... https://tc39.es/ecma262/multipage/control-abstraction-objects.html#sec-promisecapability-records Table 82: [PromiseCapability Record](https://tc39.es/ecma262/multipage/control-abstraction-objects.html#sec-promisecapability-records) Fields Field Name | Value | Meaning -- | -- | -- [[Promise]] | an Object | An object that is usable as a promise. [[Resolve]] | a function object | The function that is used to resolve the given promise. [[Reject]] | a function object | The function that is used to reject the given promise. Co-authored-by: Iban Eguia <razican@protonmail.ch> |
2 years ago |
raskad | 613f4c3eab |
Fix for in/of loop initializer environment (#2135)
This Pull Request changes the following: - Add an additional environment when a for in/of loop is initialized with a `let` or `const` binding. |
2 years ago |
dependabot[bot] | 39cd3b8bdf |
Bump dyn-clone from 1.0.5 to 1.0.6 (#2133)
Bumps [dyn-clone](https://github.com/dtolnay/dyn-clone) from 1.0.5 to 1.0.6. <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
raskad | 43f60e9bb1 |
Fix `eval` attributes (#2130)
This Pull Request changes the following: - Fix `eval` attributes - Fix `eval` length - Fix `eval` name |
2 years ago |
Iban Eguia | d173e08529 |
Started adding the [[Done]] field to iterators (#2125)
This Pull Request adds the `[[Done]]` field to iterator records. Co-authored-by: raskad <32105367+raskad@users.noreply.github.com> |
2 years ago |
dependabot[bot] | 4f95eb756d |
Bump sys-locale from 0.2.0 to 0.2.1 (#2128)
Bumps [sys-locale](https://github.com/1Password/sys-locale) from 0.2.0 to 0.2.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/1Password/sys-locale/releases">sys-locale's releases</a>.</em></p> <blockquote> <h2>v0.2.1</h2> <p>See <a href="https://github.com/1Password/sys-locale/blob/main/CHANGELOG.md#020---2022-03-01">the changelog</a> for details.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/1Password/sys-locale/blob/main/CHANGELOG.md">sys-locale's changelog</a>.</em></p> <blockquote> <h2>[0.2.1] - 2022-06-16</h2> <h3>New</h3> <ul> <li>The crate now supports being used via WASM in a WebWorker environment.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
dependabot[bot] | 94b2b096fc |
Bump indexmap from 1.8.2 to 1.9.0 (#2129)
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.8.2 to 1.9.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/bluss/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <ul> <li> <p>1.9.0</p> <ul> <li> <p><strong>MSRV</strong>: Rust 1.56.1 or later is now required.</p> </li> <li> <p>The <code>hashbrown</code> dependency has been updated to version 0.12.</p> </li> <li> <p><code>IterMut</code> and <code>ValuesMut</code> now implement <code>Debug</code>.</p> </li> <li> <p>The new <code>IndexMap::shrink_to</code> and <code>IndexSet::shrink_to</code> methods shrink the capacity with a lower bound.</p> </li> <li> <p>The new <code>IndexMap::move_index</code> and <code>IndexSet::move_index</code> methods change the position of an item from one index to another, shifting the items between to accommodate the move.</p> </li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
2 years ago |
Iban Eguia | 0454ddec19 |
Execution stack & promises (#2107)
This PR overrides #1923. It also removes the `queues` dependency added there, and rebases it to the latest `main` branch state. It adds the following: - A job queue (in `Context`) - The constructor [`Promise`](https://tc39.es/ecma262/#sec-promise-executor) - [`Promise.race`](https://tc39.es/ecma262/#sec-promise.race) - [`Promise.reject`](https://tc39.es/ecma262/#sec-promise.reject) - [`Promise.resolve`](https://tc39.es/ecma262/#sec-promise.resolve) - [`get Promise [ @@species ]`](https://tc39.es/ecma262/#sec-get-promise-@@species) - [`Promise.prototype [ @@toStringTag ]`](https://tc39.es/ecma262/#sec-promise.prototype-@@tostringtag) - [`Promise.prototype.then`](https://tc39.es/ecma262/#sec-promise.prototype.then) - [`Promise.prototype.finally`](https://tc39.es/ecma262/#sec-promise.prototype.finally) - [`Promise.prototype.catch`](https://tc39.es/ecma262/#sec-promise.prototype.catch) - The additional needed infrastructure - [`PerformPromiseThen ( promise, onFulfilled, onRejected [ , resultCapability ] )`](https://tc39.es/ecma262/#sec-performpromisethen) - [`TriggerPromiseReactions ( reactions, argument )`](https://tc39.es/ecma262/#sec-triggerpromisereactions) - [`PerformPromiseRace ( iteratorRecord, constructor, resultCapability, promiseResolve )`](https://tc39.es/ecma262/#sec-performpromiserace) - [`RejectPromise ( promise, reason )`](https://tc39.es/ecma262/#sec-rejectpromise) - [`FulfillPromise ( promise, value )`](https://tc39.es/ecma262/#sec-fulfillpromise) - [`IfAbruptRejectPromise ( value, capability )`](https://tc39.es/ecma262/#sec-ifabruptrejectpromise) - [`CreateResolvingFunctions ( promise )`](https://tc39.es/ecma262/#sec-createresolvingfunctions) - [`NewPromiseCapability ( C )`](https://tc39.es/ecma262/#sec-newpromisecapability) - [`NewPromiseReactionJob ( reaction, argument )`](https://tc39.es/ecma262/#sec-newpromisereactionjob) - [`NewPromiseResolveThenableJob ( promiseToResolve, thenable, then )`](https://tc39.es/ecma262/#sec-newpromiseresolvethenablejob) - [`PromiseResolve ( C, x )`](https://tc39.es/ecma262/#sec-promise-resolve) - A test case showcasing the run-to-completion semantics. An example program that shows the control flow with this addition is: ```javascript new Promise((res, rej) => { console.log("A"); res(undefined); }).then((_) => console.log("B")); console.log("C"); ``` Which would output: ``` A C B ``` |
2 years ago |
Sorck | 6477f61fb1 |
Implement Object.prototype.__lookupSetter__ (#2113)
This Pull Request closes #2067 It changes the following: - Implement `Object.prototype.__lookupSetter__` This passes all tests from `./test262/test/built-ins/Object/prototype/__lookupSetter__/` ``` Loading the test suite... Test suite loaded, starting tests... Suite __lookupSetter__: `lookup-own-get-err` (strict mode): starting `lookup-own-get-err` (strict mode): Passed `lookup-own-get-err`: starting `lookup-own-get-err`: Passed `length` (strict mode): starting `length` (strict mode): Passed `length`: starting `length`: Passed `lookup-proto-proto-err` (strict mode): starting `lookup-proto-proto-err` (strict mode): Passed `lookup-proto-proto-err`: starting `lookup-proto-proto-err`: Passed `lookup-own-acsr-wo-setter` (strict mode): starting `lookup-own-acsr-wo-setter` (strict mode): Passed `lookup-own-acsr-wo-setter`: starting `lookup-own-acsr-wo-setter`: Passed `lookup-not-found` (strict mode): starting `lookup-not-found` (strict mode): Passed `lookup-not-found`: starting `lookup-not-found`: Passed `lookup-proto-acsr-wo-setter` (strict mode): starting `lookup-proto-acsr-wo-setter` (strict mode): Passed `lookup-proto-acsr-wo-setter`: starting `lookup-proto-acsr-wo-setter`: Passed `lookup-proto-acsr-w-setter` (strict mode): starting `lookup-proto-acsr-w-setter` (strict mode): Passed `lookup-proto-acsr-w-setter`: starting `lookup-proto-acsr-w-setter`: Passed `name` (strict mode): starting `name` (strict mode): Passed `name`: starting `name`: Passed `lookup-own-acsr-w-setter` (strict mode): starting `lookup-own-acsr-w-setter` (strict mode): Passed `lookup-own-acsr-w-setter`: starting `lookup-own-acsr-w-setter`: Passed `lookup-own-proto-err` (strict mode): starting `lookup-own-proto-err` (strict mode): Passed `lookup-own-proto-err`: starting `lookup-own-proto-err`: Passed `lookup-proto-data` (strict mode): starting `lookup-proto-data` (strict mode): Passed `lookup-proto-data`: starting `lookup-proto-data`: Passed `lookup-own-data` (strict mode): starting `lookup-own-data` (strict mode): Passed `lookup-own-data`: starting `lookup-own-data`: Passed `lookup-proto-get-err` (strict mode): starting `lookup-proto-get-err` (strict mode): Passed `lookup-proto-get-err`: starting `lookup-proto-get-err`: Passed `prop-desc` (strict mode): starting `prop-desc` (strict mode): Passed `prop-desc`: starting `prop-desc`: Passed `key-invalid` (strict mode): starting `key-invalid` (strict mode): Passed `key-invalid`: starting `key-invalid`: Passed `this-non-obj` (strict mode): starting `this-non-obj` (strict mode): Passed `this-non-obj`: starting `this-non-obj`: Passed Suite __lookupSetter__ results: total: 32, passed: 32, ignored: 0, failed: 0 (panics: 0), conformance: 100.00% Results: Total tests: 32 Passed tests: 32 Ignored tests: 0 Failed tests: 0 (panics: 0) Conformance: 100.00% ``` |
3 years ago |
Sorck | c9b891fbfd |
Implement Object.prototype.__lookupGetter__ (#2112)
This Pull Request fixes part of #2067 It changes the following: - Implement `Object.prototype.__lookupGetter__` This passes all tests from `./test262/test/built-ins/Object/prototype/__lookupGetter__/` ``` Loading the test suite... Test suite loaded, starting tests... Suite __lookupGetter__: `lookup-own-get-err` (strict mode): starting `lookup-own-get-err` (strict mode): Passed `lookup-own-get-err`: starting `lookup-own-get-err`: Passed `length` (strict mode): starting `length` (strict mode): Passed `length`: starting `length`: Passed `lookup-proto-proto-err` (strict mode): starting `lookup-proto-proto-err` (strict mode): Passed `lookup-proto-proto-err`: starting `lookup-proto-proto-err`: Passed `lookup-not-found` (strict mode): starting `lookup-not-found` (strict mode): Passed `lookup-not-found`: starting `lookup-not-found`: Passed `lookup-own-acsr-wo-getter` (strict mode): starting `lookup-own-acsr-wo-getter` (strict mode): Passed `lookup-own-acsr-wo-getter`: starting `lookup-own-acsr-wo-getter`: Passed `name` (strict mode): starting `name` (strict mode): Passed `name`: starting `name`: Passed `lookup-own-acsr-w-getter` (strict mode): starting `lookup-own-acsr-w-getter` (strict mode): Passed `lookup-own-acsr-w-getter`: starting `lookup-own-acsr-w-getter`: Passed `lookup-own-proto-err` (strict mode): starting `lookup-own-proto-err` (strict mode): Passed `lookup-own-proto-err`: starting `lookup-own-proto-err`: Passed `lookup-proto-data` (strict mode): starting `lookup-proto-data` (strict mode): Passed `lookup-proto-data`: starting `lookup-proto-data`: Passed `lookup-proto-acsr-w-getter` (strict mode): starting `lookup-proto-acsr-w-getter` (strict mode): Passed `lookup-proto-acsr-w-getter`: starting `lookup-proto-acsr-w-getter`: Passed `lookup-own-data` (strict mode): starting `lookup-own-data` (strict mode): Passed `lookup-own-data`: starting `lookup-own-data`: Passed `lookup-proto-acsr-wo-getter` (strict mode): starting `lookup-proto-acsr-wo-getter` (strict mode): Passed `lookup-proto-acsr-wo-getter`: starting `lookup-proto-acsr-wo-getter`: Passed `lookup-proto-get-err` (strict mode): starting `lookup-proto-get-err` (strict mode): Passed `lookup-proto-get-err`: starting `lookup-proto-get-err`: Passed `prop-desc` (strict mode): starting `prop-desc` (strict mode): Passed `prop-desc`: starting `prop-desc`: Passed `key-invalid` (strict mode): starting `key-invalid` (strict mode): Passed `key-invalid`: starting `key-invalid`: Passed `this-non-obj` (strict mode): starting `this-non-obj` (strict mode): Passed `this-non-obj`: starting `this-non-obj`: Passed Suite __lookupGetter__ results: total: 32, passed: 32, ignored: 0, failed: 0 (panics: 0), conformance: 100.00% Results: Total tests: 32 Passed tests: 32 Ignored tests: 0 Failed tests: 0 (panics: 0) Conformance: 100.00% ``` |
3 years ago |
cybai (Haku) | 220af1c375 |
Implement getter and setter of Object.prototype.__proto__ (#2110)
This Pull Request fixes part of #2067. It changes the following: - implemented getter of `Object.prototype.__proto__` - implemented setter of `Object.prototype.__proto__` I've tried to run tests with `test262/test/built-ins/Object/prototype/__proto__/` and all tests under that directory are pass now 🙏 <details> <summary>Toggle to see __proto__ test status</summary> ``` Compiling boa_engine v0.15.0 (/codespace/rust/boa/boa_engine) Compiling boa_tester v0.15.0 (/codespace/rust/boa/boa_tester) Finished release [optimized] target(s) in 2m 57s Running `target/release/boa_tester run -vv -d -s /codespace/rust/boa/test262/test/built-ins/Object/prototype/__proto__/` Loading the test suite... Test suite loaded, starting tests... Suite __proto__: `get-fn-name` (strict mode): starting `get-fn-name` (strict mode): Passed `get-fn-name`: starting `get-fn-name`: Passed `set-cycle-shadowed` (strict mode): starting `set-cycle-shadowed` (strict mode): Passed `set-cycle-shadowed`: starting `set-cycle-shadowed`: Passed `set-abrupt` (strict mode): starting `set-abrupt` (strict mode): Passed `set-abrupt`: starting `set-abrupt`: Passed `get-to-obj-abrupt` (strict mode): starting `get-to-obj-abrupt` (strict mode): Passed `get-to-obj-abrupt`: starting `get-to-obj-abrupt`: Passed `set-fn-name` (strict mode): starting `set-fn-name` (strict mode): Passed `set-fn-name`: starting `set-fn-name`: Passed `get-ordinary-obj` (strict mode): starting `get-ordinary-obj` (strict mode): Passed `get-ordinary-obj`: starting `get-ordinary-obj`: Passed `set-non-object` (strict mode): starting `set-non-object` (strict mode): Passed `set-non-object`: starting `set-non-object`: Passed `set-invalid-value` (strict mode): starting `set-invalid-value` (strict mode): Passed `set-invalid-value`: starting `set-invalid-value`: Passed `set-immutable` (strict mode): starting `set-immutable` (strict mode): Passed `set-immutable`: starting `set-immutable`: Passed `set-non-obj-coercible` (strict mode): starting `set-non-obj-coercible` (strict mode): Passed `set-non-obj-coercible`: starting `set-non-obj-coercible`: Passed `set-cycle` (strict mode): starting `set-cycle` (strict mode): Passed `set-cycle`: starting `set-cycle`: Passed `prop-desc` (strict mode): starting `prop-desc` (strict mode): Passed `prop-desc`: starting `prop-desc`: Passed `get-abrupt` (strict mode): starting `get-abrupt` (strict mode): Passed `get-abrupt`: starting `get-abrupt`: Passed `set-ordinary-obj` (strict mode): starting `set-ordinary-obj` (strict mode): Passed `set-ordinary-obj`: starting `set-ordinary-obj`: Passed `set-non-extensible` (strict mode): starting `set-non-extensible` (strict mode): Passed `set-non-extensible`: starting `set-non-extensible`: Passed Suite __proto__ results: total: 30, passed: 30, ignored: 0, failed: 0 (panics: 0), conformance: 100.00% Results: Total tests: 30 Passed tests: 30 Ignored tests: 0 Failed tests: 0 (panics: 0) Conformance: 100.00% ``` </details> |
3 years ago |
cybai (Haku) | 637ffcfd78 |
Fix spec links for some object operation methods (#2111)
It changes the following: Fix spec links for - `create_data_property` - `create_data_property_or_throw` - `delete_property_or_throw` |
3 years ago |
Ngo Iok Ui (Wu Yu Wei) | 0eb771d343 |
Implement `Object.prototype.__defineSetter__` (#2109)
<!--- 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 part of https://github.com/boa-dev/boa/issues/2067. It adds the legacy `Object.prototype.__defineSetter__` function. |
3 years ago |
cybai (Haku) | b7e84d4c7d |
Implement `Object.prototype.__defineGetter__` (#2108)
This Pull Request fixes part of #2067. It introduces the legacy `Object.prototype.__defineGetter__` function. |
3 years ago |
raskad | 9025c36b1b |
Remove unnecessary `Trace` and `Finalize` implementations from AST (#2103)
This Pull Request fchanges the following: - Remove unnecessary `Trace` and `Finalize` implementations from AST - Add `#[unsafe_ignore_trace]` to parameters stored in `CodeBlock` - Remove unused `RcStatementList` type Relates to #1615 |
3 years ago |
Iban Eguia | 1dbd31e2b7 |
Added changelog, updated dependencies, bumped version number for 0.15 (#2102)
This Pull Request bumps the version number to 0.15, adds the changelog for this new versions and updates all dependencies to the latest versions. |
3 years ago |
raskad | ae01d5c20b |
Parse private generator methods in classes (#2092)
This Pull Request changes the following: - Parse private generator methods in classes |
3 years ago |
raskad | f0378068a0 |
Implement `Function` constructor (#2090)
This Pull Request changes the following: - Implement `Function` constructor - Ignore non-standard `caller` feature in 262 tests - Fix `Function.apply` length - Use `TypeError` in `Function.caller` and `Function.arguments` accessors |
3 years ago |
dependabot[bot] | 273beb4c33 |
Bump indexmap from 1.8.1 to 1.8.2 (#2094)
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.8.1 to 1.8.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/bluss/indexmap/blob/1.8.2/RELEASES.rst">indexmap's changelog</a>.</em></p> <blockquote> <ul> <li> <p>1.8.2</p> <ul> <li>Bump the <code>rustc-rayon</code> dependency, for compiler use only.</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
jedel1043 | 518bad8109 |
Integrate ICU4X into `Intl` module (#2083)
<!--- 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 integrates an `ICU4X` data provider API in our codebase, to make use of the internationalization APIs that this crate provides. It changes the following: - Creates an API for pluggable icu data providers at `Context` creation, adding an `Icu` struct to store the provider (and some other internationalization tools) at runtime. - Slightly changes locale related functions to preserve the `Locale` type and ensure correctness. (Will make some other changes related to this). - Integrates the `sys_locale` crate to fetch the current default locale of an user instead of always returning `en-US`. |
3 years ago |
dependabot[bot] | c9391c1226 |
Bump once_cell from 1.11.0 to 1.12.0 (#2085)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.11.0 to 1.12.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.12.0</h2> <ul> <li>Add <code>OnceCell::wait</code>, a blocking variant of <code>get</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
dependabot[bot] | 3b75c45dd6 |
Bump jemallocator from 0.3.2 to 0.5.0 (#2088)
Bumps [jemallocator](https://github.com/tikv/jemallocator) from 0.3.2 to 0.5.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tikv/jemallocator/releases">jemallocator's releases</a>.</em></p> <blockquote> <h2>0.4.3</h2> <ul> <li>Added riscv64 support (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/14">#14</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tikv/jemallocator/blob/main/CHANGELOG.md">jemallocator's changelog</a>.</em></p> <blockquote> <h1>0.5.0 - 2022-05-19</h1> <ul> <li>Update jemalloc to 5.3.0 (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/23">#23</a>)</li> </ul> <h1>0.4.3 - 2022-02-21</h1> <ul> <li>Added riscv64 support (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/14">#14</a>)</li> </ul> <h1>0.4.2 - 2021-08-09</h1> <ul> <li>Fixed prof not working under certain condition (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/9">#9</a>) (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/12">#12</a>)</li> <li>Updated paste to 1 (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/11">#11</a>)</li> </ul> <h1>0.4.1 - 2020-11-16</h1> <ul> <li>Updated jemalloc to fix deadlock during initialization</li> <li>Fixed failure of generating docs on release version</li> </ul> <h1>0.4.0 - 2020-07-21</h1> <ul> <li>Forked from jemallocator master</li> <li>Upgraded jemalloc to 5.2.1 (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/1">#1</a>)</li> <li>Fixed wrong version in generated C header (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/1">#1</a>)</li> <li>Upgraded project to 2018 edition (<a href="https://github-redirect.dependabot.com/tikv/jemallocator/issues/2">#2</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/tikv/jemallocator/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jemallocator&package-manager=cargo&previous-version=0.3.2&new-version=0.5.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> |
3 years ago |
raskad | 45dd2d416c |
Remove `strict` flag from `Context` (#2069)
The `Context` currently contains a `strict` flag that indicates is global strict mode is active. This is redundant to the strict flag that is set on every function and causes some non spec compliant situations. This pull request removes the strict flag from `Context` and fixes some resulting errors. Detailed changes: - Remove strict flag from `Context` - Make 262 tester compliant with the strict section in [test262/INTERPRETING.md]( |
3 years ago |
dependabot[bot] | ace28e51f4 |
Update icu requirement from 0.5.0 to 0.6.0 in /boa_engine (#2078)
Updates the requirements on [icu](https://github.com/unicode-org/icu4x) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/releases">icu's releases</a>.</em></p> <blockquote> <h2>ICU4X 0.5.0 (January 31, 2022)</h2> <p>ICU4X 0.5.0 is our major winter release. Key changes:</p> <ol> <li>Major improvements to the <code>datetime</code> component, including support for non-gregorian calendars, week-of-year, and eras</li> <li>Lots of improvements to the <code>properties</code> component, including support for <code>Canonical_Combining_Class</code>, <code>Script_Extensions</code>, <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, <code>Sentence_Break</code>.</li> <li>Improvements to our data infrastructure crates <code>yoke</code> and <code>zerovec</code></li> </ol> <p>There are also bug fixes and feature improvements in other components including <code>LocaleCanonicalizer</code>. For more details, see the <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md#icu4x-050-jan-31-2022">changelog</a>.</p> <p>We hope to continue bringing early adopters onboard as we eye a stable 1.0 release in the first half of 2022.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">icu's changelog</a>.</em></p> <blockquote> <h2>icu4x 0.5.0 (Jan 31, 2022)</h2> <ul> <li>General data model <ul> <li><code>DataPayload</code> no longer needs a lifetime (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1297">#1297</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1279">#1279</a>)</li> <li>Re-write ResourceKey (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1511">#1511</a>)</li> <li>Rewrite ErasedDataProvider as AnyProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1495">#1495</a>)</li> <li>Add EitherProvider and rename IterableDataProviderCore to IterableProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1455">#1455</a>)</li> <li>Change DataRequest to be borrowed in BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1416">#1416</a>)</li> <li>Replace SerdeDeDataProvider with BufferProvider (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1369">#1369</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1384">#1384</a>)</li> </ul> </li> <li>Components <ul> <li><code>calendar</code>: <ul> <li>Julian, Japanese, and Buddhist calendars (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1351">#1351</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1394">#1394</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1305">#1305</a>)</li> <li><code>DateTimeFormat</code> integration (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1339">#1339</a>)</li> <li>Bugfix around arithmetic (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1352">#1352</a>)</li> </ul> </li> <li><code>datetime</code>: <ul> <li>Week-of-year support (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1206">#1206</a>)</li> <li><code>DateTimeFormat::resolve_components()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1362">#1362</a>)</li> <li>Era formatting (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1346">#1346</a>)</li> <li><code>TimeZoneFormatConfig</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1256">#1256</a>)</li> <li>New data model for organizing calendar data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1300">#1300</a>)</li> <li>Bugfix around missing localized strings in time zone data (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1405">#1405</a>)</li> </ul> </li> <li><code>decimal</code>: No updates</li> <li><code>locale_canonicalizer</code>: <ul> <li>Bugfix in maximization (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1171">#1171</a>)</li> <li>Update data model to use <code>LiteMap</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1275">#1275</a>)</li> </ul> </li> <li><code>locid</code>: No updates</li> <li><code>plurals</code>: <ul> <li>Update data model to use <code>ZeroVec</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1240">#1240</a>)</li> </ul> </li> <li><code>properties</code>: <ul> <li>Rename resource key category for properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1406">#1406</a>)</li> <li>Rename enums for <code>General_Category</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1355">#1355</a>)</li> <li>Implement the <code>Canonical_Combining_Class</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1347">#1347</a>)</li> <li>Implement <code>Script_Extensions</code> property (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1353">#1353</a>)</li> <li>Add <code>General_Category</code> predicate functions (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1310">#1310</a>)</li> <li>Implement <code>Grapheme_Cluster_Break</code>, <code>Word_Break</code>, and <code>Sentence_Break</code> Unicode properties (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1233">#1233</a>)</li> </ul> </li> </ul> </li> <li>Utilities <ul> <li><code>codepointtrie</code>: No changes</li> <li><code>deduplicating_array</code>: New utility for efficient serialized representation of data with duplicates</li> <li><code>fixed_decimal</code>: <ul> <li>Padding and truncation APIs (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1482">#1482</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1507">#1507</a>, <a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1195">#1195</a>)</li> <li>Add double-to-decimal via ryū (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1217">#1217</a>)</li> <li>Handle exponents in <code>FixedDecimal::from_str()</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1265">#1265</a>)</li> </ul> </li> <li><code>litemap</code>: <ul> <li>Add <code>LiteMap::get_indexed()</code> and <code>LiteMap::find_index()</code></li> <li>Handle serialization of tuples (etc) in litemaps (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1306">#1306</a>)</li> </ul> </li> <li><code>pattern</code>: No updates</li> <li><code>uniset</code>: No updates</li> <li><code>writeable</code>: <ul> <li>Adding parts functionality to <code>Writeable</code> (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1438">#1438</a>)</li> <li>Change <code>Writeable::writeable_to_string</code> to return a Cow (<a href="https://github-redirect.dependabot.com/unicode-org/icu4x/issues/1452">#1452</a>)</li> </ul> </li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/unicode-org/icu4x/compare/icu@0.5.0...icu@0.5.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Co-authored-by: jedel1043 <jedel0124@gmail.com> |
3 years ago |
jedel1043 | 406c642041 |
Implement `ProxyBuilder` (#2076)
This Pull Request fixes/closes #2075. It changes the following: - Implements a `ProxyBuilder` struct to be able to create `Proxy` objects from native function traps. - Documents `ProxyBuilder` and adjusts some documentation. - Fixes a clippy lint. |
3 years ago |
jedel1043 | 29330225ef |
Create `Date` standard constructor (#2079)
Apparently we didn't have a `Date` intrinsic constructor, we were setting the prototype of all `Date` objects to the `Object` prototype. |
3 years ago |
dependabot[bot] | fcf456e5de |
Bump once_cell from 1.10.0 to 1.11.0 (#2081)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.10.0 to 1.11.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> <h1>Changelog</h1> <h2>Unreleased</h2> <ul> <li></li> </ul> <h2>1.11</h2> <ul> <li>Add <code>OnceCell::with_value</code> to create initialized <code>OnceCell</code> in <code>const</code> context.</li> <li>Improve <code>Clone</code> implementation for <code>OnceCell</code>.</li> <li>Rewrite <code>parking_lot</code> version on top of <code>parking_lot_core</code>, for even smaller cells!</li> </ul> <h2>1.10</h2> <ul> <li>upgrade <code>parking_lot</code> to <code>0.12.0</code> (note that this bumps MSRV with <code>parking_lot</code> feature enabled to <code>1.49.0</code>).</li> </ul> <h2>1.9</h2> <ul> <li>Added an <code>atomic-polyfill</code> optional dependency to compile <code>race</code> on platforms without atomics</li> </ul> <h2>1.8.0</h2> <ul> <li>Add <code>try_insert</code> API -- a version of <code>set</code> that returns a reference.</li> </ul> <h2>1.7.2</h2> <ul> <li>Improve code size when using parking_lot feature.</li> </ul> <h2>1.7.1</h2> <ul> <li>Fix <code>race::OnceBox<T></code> to also impl <code>Default</code> even if <code>T</code> doesn't impl <code>Default</code>.</li> </ul> <h2>1.7.0</h2> <ul> <li>Hide the <code>race</code> module behind (default) <code>race</code> feature. Turns out that adding <code>race</code> by default was a breaking change on some platforms without atomics. In this release, we make the module opt-out. Technically, this is a breaking change for those who use <code>race</code> with <code>no_default_features</code>. Given that the <code>race</code> module itself only several days old, the breakage is deemed acceptable.</li> </ul> <h2>1.6.0</h2> <ul> <li>Add <code>Lazy::into_value</code></li> <li>Stabilize <code>once_cell::race</code> module for "first one wins" no_std-compatible initialization flavor.</li> <li>Migrate from deprecated <code>compare_and_swap</code> to <code>compare_exchange</code>.</li> </ul> <h2>1.5.2</h2> <ul> <li><code>OnceBox</code> API uses <code>Box<T></code>. This a breaking change to unstable API.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
Iban Eguia | 456da4949a |
Fixing build for changes in clippy for Rust 1.61 (#2082)
This fixes the CI after the upgrade to Rust 1.61. I had to "allow" the `use_self` lint, due to https://github.com/rust-lang/rust-clippy/issues/8845 and https://github.com/rust-lang/rust-clippy/issues/6902. It removed some false negatives, though, so I fixed some of the usage. |
3 years ago |
NorbertGarfield | 5a0ff9116b |
DateTimeFormat helpers (#2064)
This Pull Request adds several helpers to resolve #1562. It adds the following subroutines: - toDateTimeOptions - GetOption - GetNumberOption - DefaultNumberOption |
3 years ago |
raskad | 8721a3167b |
Implement the global `eval()` function (#2041)
This Pull Request fixes/closes #948. It changes the following: - Implement the global `eval()` function. Runtime code evaluation brings some challenges for environments. Currently the setting and getting of variable bindings is done via indices that are calculated at compile time. This prevents costly hashmap lookups at runtime. Evaluiation at runtime needs access to existing compile time environments. This is a relatively easy change. We wrap compile time environments in `Gc` and make them accessible at runtime. Because `eval()` can add var bindings to existing function environments, we have to adjust the environments for this. Because we cannot recompile all previously stored binding indices, we have to fallback to hashmap lookups at runtime. To prevent this from tanking our performance we add a flag to each environment that marks if any `eval()` has been executed in that environment (or outer environments). This makes it possible to retain the performance of precompiled environment lookups while having a fallback for `eval()`. TLDR: `eval()` is not only horribly unsafe but also a burden for performance. [Never use eval()!](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#never_use_eval!) |
3 years ago |
raskad | e42e2f64be |
Refactor `IdentifierReference` parsing (#2055)
This Pull Request changes the following: - Crate dedicated `IdentifierReference` parser and refactor `PrimaryExpression` and `PropertyDefinition` parsers to use it. - Move `BindingIdentifier` and `LabelIdentifier` parsers from statement parser module to expression parser module to conform with the spec. - Add and early error case while converting an `ObjectLiteral` to an `ObjectAssignmentPattern` |
3 years ago |
dependabot[bot] | bae970ff17 |
Bump serde_json from 1.0.80 to 1.0.81 (#2059)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.80 to 1.0.81. <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.81</h2> <ul> <li>Work around <code>indexmap</code>/<code>autocfg</code> not always properly detecting whether a <code>std</code> sysroot crate is available (<a href="https://github-redirect.dependabot.com/serde-rs/json/issues/885">#885</a>, thanks <a href="https://github.com/cuviper"><code>@cuviper</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
NorbertGarfield | d40d938d5a |
Implement ResolveLocale helper (#2036)
<!--- 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 implements ResolveLocale abstract method. It is required for further InitializeDateTimeFormat development. It changes the following: - Adds several helpers to operate with locale extensions - Adds DefaultLocale placeholder - Implements BestAvailableLocale and locale matchers - Implements UnicodeExtensionsComponents - Introduces testing |
3 years ago |
dependabot[bot] | dd37603faa |
Bump num-traits from 0.2.14 to 0.2.15 (#2056)
Bumps [num-traits](https://github.com/rust-num/num-traits) from 0.2.14 to 0.2.15. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-num/num-traits/blob/master/RELEASES.md">num-traits's changelog</a>.</em></p> <blockquote> <h1>Release 0.2.15 (2022-05-02)</h1> <ul> <li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/195">The new <code>Euclid</code> trait calculates Euclidean division</a>, where the remainder is always positive or zero.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/210">The new <code>LowerBounded</code> and <code>UpperBounded</code> traits</a> separately describe types with lower and upper bounds. These traits are automatically implemented for all fully-<code>Bounded</code> types.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/207">The new <code>Float::copysign</code> method copies the sign of the argument</a> to to the magnitude of <code>self</code>.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/205">The new <code>PrimInt::leading_ones</code> and <code>trailing_ones</code> methods</a> are the complement of the existing methods that count zero bits.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/202">The new <code>PrimInt::reverse_bits</code> method reverses the order of all bits</a> of a primitive integer.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/201">Improved <code>Num::from_str_radix</code> for floats</a>, also <a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/214">ignoring case</a>.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/196"><code>Float</code> and <code>FloatCore</code> use more from <code>libm</code></a> when that is enabled.</li> </ul> <p><strong>Contributors</strong>: <a href="https://github.com/alion02"><code>@alion02</code></a>, <a href="https://github.com/clarfonthey"><code>@clarfonthey</code></a>, <a href="https://github.com/cuviper"><code>@cuviper</code></a>, <a href="https://github.com/ElectronicRU"><code>@ElectronicRU</code></a>, <a href="https://github.com/ibraheemdev"><code>@ibraheemdev</code></a>, <a href="https://github.com/SparrowLii"><code>@SparrowLii</code></a>, <a href="https://github.com/sshilovsky"><code>@sshilovsky</code></a>, <a href="https://github.com/tspiteri"><code>@tspiteri</code></a>, <a href="https://github.com/XAMPPRocky"><code>@XAMPPRocky</code></a>, <a href="https://github.com/Xiretza"><code>@Xiretza</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
dependabot[bot] | 72ae29b0fa |
Bump serde from 1.0.136 to 1.0.137 (#2052)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.136 to 1.0.137. <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.137</h2> <ul> <li>Update documentation links to some data formats whose repos have moved (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2201">#2201</a>, thanks <a href="https://github.com/atouchet"><code>@atouchet</code></a>)</li> <li>Fix declared <code>rust-version</code> of serde and serde_test (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2168">#2168</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
dependabot[bot] | 8b6f3561e4 |
Bump serde_json from 1.0.79 to 1.0.80 (#2051)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.79 to 1.0.80. <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
dependabot[bot] | 668b224b1b |
Bump num-integer from 0.1.44 to 0.1.45 (#2053)
Bumps [num-integer](https://github.com/rust-num/num-integer) from 0.1.44 to 0.1.45. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-num/num-integer/blob/master/RELEASES.md">num-integer's changelog</a>.</em></p> <blockquote> <h1>Release 0.1.45 (2022-04-29)</h1> <ul> <li><a href="https://github-redirect.dependabot.com/rust-num/num-integer/pull/45"><code>Integer::next_multiple_of</code> and <code>prev_multiple_of</code> no longer overflow -1</a>.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-integer/pull/47"><code>Integer::is_multiple_of</code> now handles a 0 argument without panicking</a> for primitive integers.</li> <li><a href="https://github-redirect.dependabot.com/rust-num/num-integer/pull/46"><code>ExtendedGcd</code> no longer has any private fields</a>, making it possible for external implementations to customize <code>Integer::extended_gcd</code>.</li> </ul> <p><strong>Contributors</strong>: <a href="https://github.com/ciphergoth"><code>@ciphergoth</code></a>, <a href="https://github.com/cuviper"><code>@cuviper</code></a>, <a href="https://github.com/tspiteri"><code>@tspiteri</code></a>, <a href="https://github.com/WizardOfMenlo"><code>@WizardOfMenlo</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
raskad | 6bda5fd1a4 |
Refactor `RegExp` constructor methods (#2049)
This Pull Request changes the following: - Refactor `RegExp` constructor methods to match the spec and be more efficient |
3 years ago |
兰陈昕 | 5de3a7a2c4 |
Improve `JsString` performance (#2042)
It changes the following:
- The current `JsString` implementation has a lot of duplicate heap allocations. For static strings, `JsString` only needs to store the index of `CONSTANTS_ARRAY`. ~~I let `JsString` can store pointer to heap or static area. The two are distinguished by the first bit. (This implementation is rough, maybe we should put flag into `Inner`, like [arcstr](
|
3 years ago |
Halid Odat | 7796216a1c |
Feature `JsFunction` (#2015)
This PR adds `JsFunction` wrapper around JavaScript `Function` object, like #1746 With this PR we can distinguish between regular object and function object when we need, such as accessors (because they always need to be functions), predicates in `JsArray` methods like `map`, `find`, etc. With this abstraction we leverage the type system of rust which cleans the API making intentions clear. It changes the following: - Make methods that take predicate/callback function take `JsFunction`s - Make `.accessor()` and `.static_accessor()` take `Option<JsFunction>` - Make `FunctionBuilder` return `JsFunction` - Make `ConstructorBuilder` return `JsFunction` - Make `ClassBuilder` return `JsFunction` |
3 years ago |