mirror of https://github.com/boa-dev/boa.git
Tree:
a23335b550
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
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 }
563 Commits (a23335b550290c1a36860b16109433a8ad89a08b)
Author | SHA1 | Message | Date |
---|---|---|---|
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% ``` |
2 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% ``` |
2 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> |
2 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` |
2 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. |
2 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. |
2 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 |
2 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. |
2 years ago |
raskad | ae01d5c20b |
Parse private generator methods in classes (#2092)
This Pull Request changes the following: - Parse private generator methods in classes |
2 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 |
2 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=" |
2 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`. |
2 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 |
raskad | 8b66988574 |
Move redeclaration errors to parser (#2027)
This Pull Request changes the following: - Implement redeclaration errors in the parser - Remove redeclaration errors from the compiler (this is a big step towards #1907) - Fix some failing tests on the way This requires a slight change in our public api. The Parser new requires a full `Context` instead of just the `Interner` for parsing new code. This is required, because if multiple scripts are parsed (e.g. every input in the REPL) global variables must be checked for redeclarations. |
3 years ago |
raskad | 3226e5494c |
Allow `let` as variable declaration name (#2044)
This Pull Request changes the following: - Allow `let` as variable declaration name |
3 years ago |
raskad | 55c89c7617 |
Fix early return in `for in loop` head (#2043)
This Pull Request changes the following: - Fix early return in `for in loop` head |
3 years ago |
NorbertGarfield | df19f7f606 |
Partial implementation for Intl.DateTimeFormat (#2025)
<!--- 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 provides initial implementation for DateTimeFormat constructor. It relates to #1562. It changes the following: - Adds `Intl.DateTimeFormat` property - Partially implements `DateTimeFormat` constructor (`InitializeDateTimeFormat` step is postponed). - Introduces `ObjectData::DateTimeFormat` |
3 years ago |
Halid Odat | 6bffe3e9c6 |
Make `Array.prototype` an array object (#2033)
It changes the following: - Make `Array.prototype` an array object |
3 years ago |
Halid Odat | 5a9ced3806 |
Implement `get RegExp.prototype.hasIndices` (#2031)
It changes the following: - Implement `get RegExp.prototype.hasIndices` - Update Implement `get RegExp.prototype.flags` to currect spec - Update `RegExpFlags` |
3 years ago |
Halid Odat | 2d6e93cc83 |
Fix `Symbol` and `BigInt` constructors (#2032)
It changes the following: - `Symbol` object has `[[Construct]]` internal method - Fix and comment step 1 in `Symbol` constructor. - Implement step 1 in `BigInt` constructor. |
3 years ago |
lupd | be15b85171 |
Allow creating object with true/false property names (#2028)
This Pull Request allows "true"/"false" as property names when instantiating objects. This should make some additional tests in the test suite pass. |
3 years ago |