mirror of https://github.com/boa-dev/boa.git
Tree:
1dcd0e69a1
add-vhs-ci
benchmarks
bump-test262
control-flow-graph
dependabot/cargo/rust-dependencies-50dc4690b8
expect-lints
feature/node_span
feature/snapshot
features
gh-readonly-queue/main/pr-2877-b0ddf5eed00a53281d67fc7d846233fc0d99ce9c
gh-readonly-queue/main/pr-3144-8e48cec73fae708420b9af88813d4870243c491a
local-parameters-if-mapped-arguments-object-not-accessed
main
nan-boxing
optimization/static-shapes
real_conformance
refactor/interner
refactor/register-vm
releases/0.17
releases/0.19
semver_checks
tco
utility-crate
wasm-debugger
nightly
v0.10
v0.11
v0.12
v0.13
v0.14
v0.15
v0.16
v0.17
v0.17.1
v0.17.2
v0.17.3
v0.18
v0.19
v0.19.1
v0.2.0
v0.2.1
v0.20
v0.3.0
v0.4.0
v0.5.0
v0.5.1
v0.6.0
v0.7.0
v0.8.0
v0.9.0
${ noResults }
579 Commits (1dcd0e69a1732593af6e396eaa886e58df115241)
Author | SHA1 | Message | Date |
---|---|---|---|
dependabot[bot] | d7fb049082 |
Bump unicode-normalization from 0.1.20 to 0.1.21 (#2160)
Bumps [unicode-normalization](https://github.com/unicode-rs/unicode-normalization) from 0.1.20 to 0.1.21. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/unicode-rs/unicode-normalization/commits">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.20&new-version=0.1.21)](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 |
Halid Odat | 5bbc225b24 |
Dense/Packed JavaScript arrays (#2167)
This PR implements an optimization done by V8 and spidermonkey. Which stores indexed properties in two class storage methods dense and sparse. The dense method stores the property in a contiguous array ( `Vec<T>` ) where the index is the property key. This storage method is the default. While on the other hand we have sparse storage method which stores them in a hash map with key `u32` (like we currently do). This storage method is a backup and is slower to access because we have to do a hash map lookup, instead of an array access. In the dense array we can store only data descriptors that have a value field and are `writable`, `configurable` and `enumerable` (which by default array elements are). Since all the fields of the property descriptor are the same except value field, we can omit them an just store the `JsValue`s in `Vec<JsValue>` this decreases the memory consumption and because it is smaller we are less likely to have cache misses. There are cases where we have to convert from dense to sparse (the slow case): - If we insert index elements in a non-incremental way, like `array[1000] = 1000` (inserting an element to an index that is already occupied only replaces it does not make it sparse) - If we delete from the middle of the array (making a hole), like `delete array[10]` (only converts if there is actualy an element there, so calling delete on a non-existent index property will do nothing) Once it becomes sparse is *stays* sparse there is no way to convert it again. (the computation needed to check whether it can be converted outweighs the benefits of this optimization) I did some local benchmarks and on array creation/pop and push there is ~45% speed up and the impact _should_ be bigger the more elements we have. For example the code below on `main` takes `~21.5s` while with this optimization is `~3.5s` (both on release build). ```js let array = []; for (let i = 0; i < 50000; ++i) { array[i] = i; } ``` In addition I also made `Array::create_array_from_list` do a direct setting of the properties (small deviation from spec but it should have the same behaviour), with this #2058 should be fixed, conversion from `Vec` to `JsArray`, not `JsTypedArray` for that I will work on next :) |
3 years ago |
Kevin | d0d70345eb |
Implementation of JsMap Wrapper (#2115)
<!--- Thank you for contributing to Boa! Please fill out the template below, and remove or add any information as you feel neccessary. ---> This Pull Request related to JsMap for #2098. Any feedback on implementing JsMapIterator would be welcome. I wasn't entirely sure if it was the right approach, but as I worked on the example file, it felt like something at least similar would be needed to use Map's .entries(), .keys(), and .values() methods. It changes the following: - Implements JsMap Wrapper - Implements JsMapIterator Wrapper - Creates JsMap example in boa_examples |
3 years ago |
dependabot[bot] | 7a5da521d2 |
Bump once_cell from 1.12.0 to 1.13.0 (#2165)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.12.0 to 1.13.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.13.0</h2> <ul> <li>Add <code>Lazy::get</code>, similar to <code>OnceCell::get</code>.</li> </ul> <h2>1.12.1</h2> <ul> <li>Remove incorrect <code>debug_assert</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
Halid Odat | 64f59ddacb |
Store call frames in `Vec` instead of singly-linked list (#2164)
This storage method should be more cache friendly since we store in contiguous memory, besides that it should make #2157 a bit easier. Will work on that next after this gets merged :) It changes the following: - Remove the unneeded `prev` field in `CallFrame` - Preallocate some space for future calls (16 slots) |
3 years ago |
raskad | cdc49e35ea |
Implement `async function` and `await` (#2158)
This Pull Request changes the following: - Implement `AsyncFunction` builtin object. - Add `Async` as a function object data type. - Implement `async function` and `await` compilation and execution. - Parse `await` in more positions. |
3 years ago |
dependabot[bot] | cdaffa788a |
Bump serde from 1.0.137 to 1.0.138 (#2159)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.137 to 1.0.138. <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.138</h2> <ul> <li>Documentation improvements</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
3 years ago |
raskad | bd0bf78383 |
Fix remaining `Promise` bugs (#2156)
This Pull Request changes the following: - Fix `Promise.then` length to 2. - Fix `all`, `allSettled` and `any` element lists to actually be shared between closures. - Fix `allSettled` reject element function to call resolve instead of reject. The remaining failing tests for `Promise` fail because of some errors in the arrow function parsing. |
3 years ago |
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 |
3 years ago |
raskad | 6b4ebf9e3e |
Fix clippy 1.62.0 lints (#2154)
This Pull Request changes the following: - Fix clippy 1.62.0 lints |
3 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 :) |
3 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=" |
3 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. |
3 years ago |
raskad | c561aa3b2c |
Implement `Promise.allSettled` (#2146)
This Pull Request changes the following: - Implement `Promise.allSettled` |
3 years ago |
raskad | e81e06b462 |
Implement `Promise.any` (#2145)
This Pull Request changes the following: - Implement `Promise.any` |
3 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> |
3 years ago |
raskad | b043bca081 |
Implement `Promise.all` (#2140)
This Pull Request changes the following: - Implement `Promise.all` |
3 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=" |
3 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> |
3 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. |
3 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=" |
3 years ago |
raskad | 43f60e9bb1 |
Fix `eval` attributes (#2130)
This Pull Request changes the following: - Fix `eval` attributes - Fix `eval` length - Fix `eval` name |
3 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> |
3 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=" |
3 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=" |
3 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 ``` |
3 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 |