Skip to content

Improve interop performance against dictionary#2088

Merged
lahma merged 2 commits into
sebastienros:mainfrom
lahma:interop-perf-improvements
Apr 4, 2025
Merged

Improve interop performance against dictionary#2088
lahma merged 2 commits into
sebastienros:mainfrom
lahma:interop-perf-improvements

Conversation

@lahma

@lahma lahma commented Apr 3, 2025

Copy link
Copy Markdown
Collaborator

I'm adding the test case and also the option which shows converting to native JsValue objects from JSON deserialization. If use case is reading then native types should produce best performance. I might have made mistakes so take it with a grain of salt.

The delegate building is now cached against AST node reference so it should align quite well with the idea of preparing and caching AST when needed.

Jint.Benchmark.InteropLambdaBenchmark

Diff Type Method Mean Error Allocated
Old ClrObject InlineCSharp 13.958 μs 0.1449 μs 30.08 KB
New 12.110 μs (-13%) 0.2307 μs 28.2 KB (-6%)
Old ClrObject InlineEngineInvoke 14.468 μs 0.1819 μs 30 KB
New 12.620 μs (-13%) 0.1171 μs 28.13 KB (-6%)
Old ClrObject Inline 14.810 μs 0.1906 μs 29.61 KB
New 12.871 μs (-13%) 0.1735 μs 27.73 KB (-6%)
Old ClrObject ForLoopEngineInvoke 20.211 μs 0.1940 μs 34.92 KB
New 18.729 μs (-7%) 0.3184 μs 32.66 KB (-6%)
Old ClrObject ForLoop 20.554 μs 0.3373 μs 34.53 KB
New 18.925 μs (-8%) 0.3124 μs 33.05 KB (-4%)
Old JsonNode ForLoop 49.571 μs 0.7526 μs 60.63 KB
New 34.749 μs (-30%) 0.6410 μs 47.97 KB (-21%)
Old JsonNode ForLoopEngineInvoke 50.650 μs 0.6915 μs 61.02 KB
New 34.759 μs (-31%) 0.6888 μs 47.58 KB (-22%)
Old JsonNode Inline 56.960 μs 1.1315 μs 75.87 KB
New 41.791 μs (-27%) 0.8285 μs 62.82 KB (-17%)
Old JsonNode InlineCSharp 61.993 μs 1.2329 μs 76.34 KB
New 41.995 μs (-32%) 0.8274 μs 63.29 KB (-17%)
Old JsonNode InlineEngineInvoke 62.023 μs 1.2133 μs 76.26 KB
New 42.142 μs (-32%) 0.8274 μs 63.21 KB (-17%)
Old Dictionary ForLoop 37.053 μs 0.3455 μs 47.11 KB
New 22.510 μs (-39%) 0.2309 μs 42.58 KB (-10%)
Old Dictionary ForLoopEngineInvoke 37.151 μs 0.4640 μs 47.5 KB
New 23.255 μs (-37%) 0.2261 μs 33.13 KB (-30%)
Old Dictionary Inline 2,421.450 μs 31.9202 μs 150.02 KB
New 23.602 μs (-99%) 0.4647 μs 42.5 KB (-72%)
Old Dictionary InlineEngineInvoke 2,426.210 μs 42.1312 μs 150.42 KB
New 23.608 μs (-99%) 0.3058 μs 42.11 KB (-72%)
Old Dictionary InlineCSharp 2,439.785 μs 47.8304 μs 150.5 KB
New 23.728 μs (-99%) 0.3679 μs 33.52 KB (-78%)
Old JsValue InlineCSharp 8.711 μs 0.1299 μs 18.91 KB
New 8.943 μs (+3%) 0.1251 μs 18.91 KB (0%)
Old JsValue InlineEngineInvoke 9.205 μs 0.1786 μs 18.83 KB
New 9.063 μs (-2%) 0.0782 μs 18.83 KB (0%)
Old JsValue Inline 9.278 μs 0.1288 μs 18.44 KB
New 9.175 μs (-1%) 0.1086 μs 18.44 KB (0%)
Old JsValue ForLoopEngineInvoke 14.978 μs 0.1502 μs 23.75 KB
New 14.975 μs (0%) 0.1385 μs 23.75 KB (0%)
Old JsValue ForLoop 15.345 μs 0.2494 μs 23.36 KB
New 15.260 μs (-1%) 0.1876 μs 23.36 KB (0%)

fixes #2087

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request improves interop performance when working with dictionaries and native JsValue conversions and updates the caching mechanisms involved in array-like wrappers, delegate conversion, and operator overload method lookups. The changes include refactoring the array-like wrapper resolution for performance, updating delegate caching in type conversion, modifying function construction and object conversion, and adding caching for extension and operator overload methods.

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

File Description
Jint/Runtime/Interop/ObjectWrapper.cs Refactored array-like wrapper resolution using a ConcurrentDictionary and optimized property access.
Jint/Runtime/Interop/DefaultTypeConverter.cs Updated delegate caching mechanism with ConditionalWeakTable and improved array conversion check.
Jint/Native/Function/Function.cs Simplified constructor parameters and added a ToObject override to return the delegate directly.
Jint/Extensions/ReflectionExtensions.cs Introduced caching for operator overload method lookups to reduce reflection overhead.
Comments suppressed due to low confidence (1)

Jint/Runtime/Interop/DefaultTypeConverter.cs:135

  • [nitpick] The variable name 'astFunction' could be more descriptive (e.g., 'functionDefinition') to clarify that it represents the underlying function definition for delegate caching.
var astFunction = (func.Target as Function)?._functionDefinition?.Function;

@lahma
lahma force-pushed the interop-perf-improvements branch from 395384b to 9f46d98 Compare April 3, 2025 18:54
@sebastienros

Copy link
Copy Markdown
Owner

I want to see the issue updated with the new results now.

@lahma

lahma commented Apr 3, 2025

Copy link
Copy Markdown
Collaborator Author

I want to see the issue updated with the new results now.

I copied the benchmarks and modified to support running as single (params for scenario) with addition of projecting to JsValue data (ideal). So I would guess this reflects the original problem.

@lahma

lahma commented Apr 3, 2025

Copy link
Copy Markdown
Collaborator Author

The codebase is mostly benchmarked against JS scenarios so these interop ones can be tricky. You could probably start a consulting business about the performance traps with interop and JS...

@lahma

lahma commented Apr 4, 2025

Copy link
Copy Markdown
Collaborator Author

Here's the full non-compared benchmark result:


BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.3624)
12th Gen Intel Core i9-12900H, 1 CPU, 20 logical and 14 physical cores
.NET SDK 9.0.202
  [Host]     : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2
  DefaultJob : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2


Method Type Mean Error StdDev Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
InlineCSharp ClrObject 12.110 μs 0.2307 μs 0.2265 μs 0.65 0.02 1 2.2888 0.0153 28.2 KB 0.86
InlineEngineInvoke ClrObject 12.620 μs 0.1171 μs 0.1096 μs 0.67 0.01 1 2.2888 0.0153 28.13 KB 0.86
Inline ClrObject 12.871 μs 0.1735 μs 0.1449 μs 0.69 0.01 1 2.2583 0.0153 27.73 KB 0.85
ForLoop ClrObject 18.729 μs 0.3184 μs 0.2978 μs 1.00 0.02 2 2.6550 - 32.66 KB 1.00
ForLoopEngineInvoke ClrObject 18.925 μs 0.3124 μs 0.2922 μs 1.01 0.02 2 2.6855 - 33.05 KB 1.01
ForLoopEngineInvoke JsonNode 34.749 μs 0.6410 μs 0.5996 μs 1.00 0.02 1 3.9063 - 47.97 KB 1.01
ForLoop JsonNode 34.759 μs 0.6888 μs 0.6443 μs 1.00 0.03 1 3.8452 - 47.58 KB 1.00
Inline JsonNode 41.791 μs 0.8285 μs 1.2899 μs 1.20 0.04 2 4.8828 - 62.82 KB 1.32
InlineCSharp JsonNode 41.995 μs 0.8274 μs 0.7740 μs 1.21 0.03 2 4.8828 - 63.29 KB 1.33
InlineEngineInvoke JsonNode 42.142 μs 0.8274 μs 1.2128 μs 1.21 0.04 2 4.8828 - 63.21 KB 1.33
InlineCSharp Dictionary 22.510 μs 0.2309 μs 0.2047 μs 0.97 0.01 1 3.4485 0.0305 42.58 KB 1.29
ForLoop Dictionary 23.255 μs 0.2261 μs 0.2005 μs 1.00 0.01 1 2.6855 - 33.13 KB 1.00
InlineEngineInvoke Dictionary 23.602 μs 0.4647 μs 0.4120 μs 1.01 0.02 1 3.4485 0.0305 42.5 KB 1.28
Inline Dictionary 23.608 μs 0.3058 μs 0.2861 μs 1.02 0.01 1 3.4180 0.0305 42.11 KB 1.27
ForLoopEngineInvoke Dictionary 23.728 μs 0.3679 μs 0.3441 μs 1.02 0.02 1 2.7161 - 33.52 KB 1.01
InlineCSharp JsValue 8.943 μs 0.1251 μs 0.1045 μs 0.59 0.01 1 1.5411 - 18.91 KB 0.81
InlineEngineInvoke JsValue 9.063 μs 0.0782 μs 0.0694 μs 0.59 0.01 1 1.5259 - 18.83 KB 0.81
Inline JsValue 9.175 μs 0.1086 μs 0.0963 μs 0.60 0.01 1 1.4954 - 18.44 KB 0.79
ForLoopEngineInvoke JsValue 14.975 μs 0.1385 μs 0.1296 μs 0.98 0.01 2 1.9379 - 23.75 KB 1.02
ForLoop JsValue 15.260 μs 0.1876 μs 0.1755 μs 1.00 0.02 2 1.8921 - 23.36 KB 1.00

@lahma
lahma merged commit e4800fa into sebastienros:main Apr 4, 2025
@lahma
lahma deleted the interop-perf-improvements branch April 4, 2025 06:36
break-pointer added a commit to shestakov/jint that referenced this pull request Jan 29, 2026
* Tweak object wrapper reported members logic (#1956)

* Bump the all-dependencies group with 2 updates (#1957)

Bumps the all-dependencies group with 2 updates: [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) and [NUnit](https://github.com/nunit/nunit).


Updates `Microsoft.NET.Test.Sdk` from 17.10.0 to 17.11.0
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.10.0...v17.11.0)

Updates `NUnit` from 4.1.0 to 4.2.1
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/main/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/4.1.0...4.2.1)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update test262 test suite and fix issues (#1958)

* Bump the all-dependencies group with 2 updates (#1960)

Bumps the all-dependencies group with 2 updates: [YantraJS.Core](https://github.com/yantrajs/yantra) and [NUnit](https://github.com/nunit/nunit).


Updates `YantraJS.Core` from 1.2.218 to 1.2.232
- [Release notes](https://github.com/yantrajs/yantra/releases)
- [Commits](https://github.com/yantrajs/yantra/compare/v1.2.218...v1.2.232)

Updates `NUnit` from 4.2.1 to 4.2.2
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/main/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/4.2.1...4.2.2)

---
updated-dependencies:
- dependency-name: YantraJS.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Prefer CLR type's shadowing property over base's hidden (#1963)

* Remove some unnecessary excludes from Test262Harness.settings.json (#1964)

* Bump the all-dependencies group with 4 updates (#1965)

Bumps the all-dependencies group with 4 updates: [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest), [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions), [NodaTime](https://github.com/nodatime/nodatime) and [FluentAssertions](https://github.com/fluentassertions/fluentassertions).


Updates `Microsoft.NET.Test.Sdk` from 17.11.0 to 17.11.1
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.11.0...v17.11.1)

Updates `Microsoft.Extensions.TimeProvider.Testing` from 8.8.0 to 8.9.1
- [Release notes](https://github.com/dotnet/extensions/releases)
- [Commits](https://github.com/dotnet/extensions/commits)

Updates `NodaTime` from 3.1.11 to 3.1.12
- [Release notes](https://github.com/nodatime/nodatime/releases)
- [Commits](https://github.com/nodatime/nodatime/compare/3.1.11...3.1.12)

Updates `FluentAssertions` from 6.12.0 to 6.12.1
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases)
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/develop/AcceptApiChanges.ps1)
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/6.12.0...6.12.1)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: NodaTime
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: FluentAssertions
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Implement Math.sumPrecise (#1966)

* Improve interop finding of properties in derived types (#1969)

* Bump the all-dependencies group with 2 updates (#1970)

Bumps the all-dependencies group with 2 updates: [xunit](https://github.com/xunit/xunit) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `xunit` from 2.9.0 to 2.9.1
- [Commits](https://github.com/xunit/xunit/compare/2.9.0...2.9.1)

Updates `Meziantou.Analyzer` from 2.0.163 to 2.0.168
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.163...2.0.168)

---
updated-dependencies:
- dependency-name: xunit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group with 2 updates (#1973)

Bumps the all-dependencies group with 2 updates: [xunit](https://github.com/xunit/xunit) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `xunit` from 2.9.1 to 2.9.2
- [Commits](https://github.com/xunit/xunit/compare/v2-2.9.1...v2-2.9.2)

Updates `Meziantou.Analyzer` from 2.0.168 to 2.0.169
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.168...2.0.169)

---
updated-dependencies:
- dependency-name: xunit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix Array.prototype.toString() stackoverflow (#1976)

* Bump the all-dependencies group with 5 updates (#1978)

Bumps the all-dependencies group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [System.Text.Json](https://github.com/dotnet/runtime) | `8.0.4` | `8.0.5` |
| [YantraJS.Core](https://github.com/yantrajs/yantra) | `1.2.232` | `1.2.234` |
| [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions) | `8.9.1` | `8.10.0` |
| [NodaTime](https://github.com/nodatime/nodatime) | `3.1.12` | `3.2.0` |
| [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime) | `8.0.0` | `8.0.1` |


Updates `System.Text.Json` from 8.0.4 to 8.0.5
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.4...v8.0.5)

Updates `YantraJS.Core` from 1.2.232 to 1.2.234
- [Release notes](https://github.com/yantrajs/yantra/releases)
- [Commits](https://github.com/yantrajs/yantra/compare/v1.2.232...v1.2.234)

Updates `System.Text.Json` from 8.0.4 to 8.0.5
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.4...v8.0.5)

Updates `Microsoft.Extensions.TimeProvider.Testing` from 8.9.1 to 8.10.0
- [Release notes](https://github.com/dotnet/extensions/releases)
- [Commits](https://github.com/dotnet/extensions/commits)

Updates `NodaTime` from 3.1.12 to 3.2.0
- [Release notes](https://github.com/nodatime/nodatime/releases)
- [Commits](https://github.com/nodatime/nodatime/compare/3.1.12...3.2.0)

Updates `Microsoft.Extensions.DependencyInjection` from 8.0.0 to 8.0.1
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.0...v8.0.1)

---
updated-dependencies:
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: YantraJS.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: NodaTime
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump Meziantou.Analyzer in the all-dependencies group (#1982)

Bumps the all-dependencies group with 1 update: [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `Meziantou.Analyzer` from 2.0.169 to 2.0.173
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.169...2.0.173)

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Promise.withResolvers() returned object had resolve and reject functions swapped (#1983)

* Made test of cancellation of engine execution more robust (#1984)

* Early out in ObjectPool to avoid loop execution (#1985)

* Optimize ValueStringBuilder and some character checks (#1986)

* Make JsSet public (#1987)

* Make JsSet public
* Some code review changes
* Use intrinsics to construct, add public API test, IEnumerable, SetDelete => Remove

---------

Co-authored-by: Marko Lahma <marko.lahma@gmail.com>

* Make JsMap public (#1988)

* make JsSet and JsMap members new as they indicate a specific usage scenario

* Make JsSet int indexer internal (#1989)

* might not be easily available if backing storage changes

* Exclude static fields and properties from ObjectWrapper by default (#1981)

* Add Options.InteropOptions.BuildCallStackHandler (#1793)


---------

Co-authored-by: Marko Lahma <marko.lahma@gmail.com>

* Revert back to favoring SearchValues<char> (#1990)

* Bump Meziantou.Analyzer from 2.0.173 to 2.0.176 in the all-dependencies group (#1991)

Bumps the all-dependencies group with 1 update: [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `Meziantou.Analyzer` from 2.0.173 to 2.0.176
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.173...2.0.176)

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve interop conversion logic between numeric types (#1995)

* Use Array.Resize when growing ArrayInstance (#1997)

* Bump the all-dependencies group with 2 updates (#1998)

Bumps the all-dependencies group with 2 updates: [YantraJS.Core](https://github.com/yantrajs/yantra) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `YantraJS.Core` from 1.2.234 to 1.2.238
- [Release notes](https://github.com/yantrajs/yantra/releases)
- [Commits](https://github.com/yantrajs/yantra/compare/v1.2.234...v1.2.238)

Updates `Meziantou.Analyzer` from 2.0.176 to 2.0.177
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.176...2.0.177)

---
updated-dependencies:
- dependency-name: YantraJS.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump FluentAssertions in the all-dependencies group (#2001)

Bumps the all-dependencies group with 1 update: [FluentAssertions](https://github.com/fluentassertions/fluentassertions).


Updates `FluentAssertions` from 6.12.1 to 6.12.2
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases)
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/develop/AcceptApiChanges.ps1)
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/6.12.1...6.12.2)

---
updated-dependencies:
- dependency-name: FluentAssertions
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve infinity detection when parsing numbers on full framework (#2003)

* Bump the all-dependencies group across 1 directory with 9 updates (#2008)

Bumps the all-dependencies group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [PolySharp](https://github.com/Sergio0694/PolySharp) | `1.14.1` | `1.15.0` |
| [Jurassic](https://github.com/paulbartrum/Jurassic) | `3.2.7` | `3.2.8` |
| [System.Text.Json](https://github.com/dotnet/runtime) | `8.0.5` | `9.0.0` |
| [YantraJS.Core](https://github.com/yantrajs/yantra) | `1.2.238` | `1.2.242` |
| [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) | `13.0.3` | `13.0.1` |
| [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) | `17.11.1` | `17.12.0` |
| [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions) | `8.10.0` | `9.0.0` |
| [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime) | `8.0.1` | `9.0.0` |
| [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) | `2.0.177` | `2.0.180` |



Updates `PolySharp` from 1.14.1 to 1.15.0
- [Release notes](https://github.com/Sergio0694/PolySharp/releases)
- [Commits](https://github.com/Sergio0694/PolySharp/compare/1.14.1...1.15.0)

Updates `Jurassic` from 3.2.7 to 3.2.8
- [Release notes](https://github.com/paulbartrum/Jurassic/releases)
- [Commits](https://github.com/paulbartrum/Jurassic/commits)

Updates `System.Text.Json` from 8.0.5 to 9.0.0
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.5...v9.0.0)

Updates `YantraJS.Core` from 1.2.238 to 1.2.242
- [Release notes](https://github.com/yantrajs/yantra/releases)
- [Commits](https://github.com/yantrajs/yantra/compare/v1.2.238...v1.2.242)

Updates `Newtonsoft.Json` from 13.0.3 to 13.0.1
- [Release notes](https://github.com/JamesNK/Newtonsoft.Json/releases)
- [Commits](https://github.com/JamesNK/Newtonsoft.Json/compare/13.0.3...13.0.1)

Updates `Microsoft.NET.Test.Sdk` from 17.11.1 to 17.12.0
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](https://github.com/microsoft/vstest/compare/v17.11.1...v17.12.0)

Updates `Microsoft.Extensions.TimeProvider.Testing` from 8.10.0 to 9.0.0
- [Release notes](https://github.com/dotnet/extensions/releases)
- [Commits](https://github.com/dotnet/extensions/compare/v8.10.0...v9.0.0)

Updates `Microsoft.Extensions.DependencyInjection` from 8.0.1 to 9.0.0
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.1...v9.0.0)

Updates `Meziantou.Analyzer` from 2.0.177 to 2.0.180
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.177...2.0.180)

---
updated-dependencies:
- dependency-name: PolySharp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Jurassic
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-dependencies
- dependency-name: YantraJS.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Newtonsoft.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group with 3 updates (#2010)

Bumps the all-dependencies group with 3 updates: [YantraJS.Core](https://github.com/yantrajs/yantra), [FluentAssertions](https://github.com/fluentassertions/fluentassertions) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `YantraJS.Core` from 1.2.242 to 1.2.246
- [Release notes](https://github.com/yantrajs/yantra/releases)
- [Commits](https://github.com/yantrajs/yantra/compare/v1.2.242...v1.2.246)

Updates `FluentAssertions` from 6.12.2 to 7.0.0
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases)
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/develop/AcceptApiChanges.ps1)
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/6.12.2...7.0.0)

Updates `Meziantou.Analyzer` from 2.0.180 to 2.0.182
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.180...2.0.182)

---
updated-dependencies:
- dependency-name: YantraJS.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: FluentAssertions
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump NUnit from 4.2.2 to 4.3.0 in the all-dependencies group (#2014)

Bumps the all-dependencies group with 1 update: [NUnit](https://github.com/nunit/nunit).


Updates `NUnit` from 4.2.2 to 4.3.0
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/main/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/4.2.2...4.3.0)

---
updated-dependencies:
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group with 2 updates (#2016)

Bumps the all-dependencies group with 2 updates: [NUnit](https://github.com/nunit/nunit) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `NUnit` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/main/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/4.3.0...4.3.1)

Updates `Meziantou.Analyzer` from 2.0.182 to 2.0.183
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.182...2.0.183)

---
updated-dependencies:
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group across 1 directory with 4 updates (#2020)

Bumps the all-dependencies group with 4 updates in the / directory: [Acornima](https://github.com/adams85/acornima), [Acornima.Extras](https://github.com/adams85/acornima), [NUnit](https://github.com/nunit/nunit) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `Acornima` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/adams85/acornima/releases)
- [Commits](https://github.com/adams85/acornima/compare/v1.1.0...v1.1.1)

Updates `Acornima.Extras` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/adams85/acornima/releases)
- [Commits](https://github.com/adams85/acornima/compare/v1.1.0...v1.1.1)

Updates `NUnit` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/main/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/4.3.1...4.3.2)

Updates `Meziantou.Analyzer` from 2.0.183 to 2.0.184
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.183...2.0.184)

---
updated-dependencies:
- dependency-name: Acornima
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Acornima.Extras
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix building on GH Actions Ubuntu 24.04 (#2024)

* Use net472 to run full framework tests (#2026)

* Bump the all-dependencies group across 1 directory with 7 updates (#2027)

Bumps the all-dependencies group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [System.Text.Json](https://github.com/dotnet/runtime) | `9.0.0` | `9.0.1` |
| [FluentAssertions](https://github.com/fluentassertions/fluentassertions) | `7.0.0` | `8.0.0` |
| [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions) | `9.0.0` | `9.1.0` |
| [xunit](https://github.com/xunit/xunit) | `2.9.2` | `2.9.3` |
| [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) | `2.8.2` | `3.0.1` |
| [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime) | `9.0.0` | `9.0.1` |
| [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) | `2.0.184` | `2.0.186` |



Updates `System.Text.Json` from 9.0.0 to 9.0.1
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.0...v9.0.1)

Updates `FluentAssertions` from 7.0.0 to 8.0.0
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases)
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/develop/AcceptApiChanges.ps1)
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/7.0.0...8.0.0)

Updates `Microsoft.Extensions.TimeProvider.Testing` from 9.0.0 to 9.1.0
- [Release notes](https://github.com/dotnet/extensions/releases)
- [Commits](https://github.com/dotnet/extensions/commits)

Updates `xunit` from 2.9.2 to 2.9.3
- [Commits](https://github.com/xunit/xunit/compare/v2-2.9.2...v2-2.9.3)

Updates `xunit.runner.visualstudio` from 2.8.2 to 3.0.1
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.8.2...3.0.1)

Updates `Microsoft.Extensions.DependencyInjection` from 9.0.0 to 9.0.1
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.0...v9.0.1)

Updates `Meziantou.Analyzer` from 2.0.184 to 2.0.186
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.184...2.0.186)

---
updated-dependencies:
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: FluentAssertions
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: xunit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: xunit.runner.visualstudio
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Pin FluentAssertions to version 7.0.0 (#2028)

* Update test262 harness and fix issues (#2029)

* Implement Error.isError (#2030)

* Fix statement counting code in MaxStatementsConstraint (#2035)

* Fix MaxStatementsConstraint

Current implementation of MaxStatementsConstraint allows one more statement to be executed.

* Add unit test

* Cleanup custom dictionary implementations (#2036)

* Create ExpressionCache to unify constant lookups (#2037)

* Remove closure allocations from JintFunctionDefinition (#2039)

* Flatten declarative record instance creation lookups (#2040)

* Support running DromaeoBenchmark with modern JS syntax (#2041)

* Use NET 9 to run tests and benchmarks, remove NET 6 target (#2042)

* Add extension point for custom Function.toString() logic (#2043)

* Improve environment initialization performance (#2045)

* Bump the all-dependencies group across 1 directory with 2 updates (#2046)

Bumps the all-dependencies group with 2 updates in the / directory: [FluentAssertions](https://github.com/fluentassertions/fluentassertions) and [NodaTime](https://github.com/nodatime/nodatime).


Updates `FluentAssertions` from 7.0.0 to 7.1.0
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases)
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/main/AcceptApiChanges.ps1)
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/7.0.0...7.1.0)

Updates `NodaTime` from 3.2.0 to 3.2.1
- [Release notes](https://github.com/nodatime/nodatime/releases)
- [Commits](https://github.com/nodatime/nodatime/compare/3.2.0...3.2.1)

---
updated-dependencies:
- dependency-name: FluentAssertions
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: NodaTime
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add configurable limit for Atomics.pause iterations (#2047)

* Add support for block statement preparation (#2048)

* fix benchmark issues between modern and classic in dromaeo-object-string

* Add fast paths for object Get/Set for simple objects (#2050)

* Bump YantraJS.Core from 1.2.246 to 1.2.261 in the all-dependencies group (#2051)

Bumps the all-dependencies group with 1 update: [YantraJS.Core](https://github.com/yantrajs/yantra).


Updates `YantraJS.Core` from 1.2.246 to 1.2.261
- [Release notes](https://github.com/yantrajs/yantra/releases)
- [Commits](https://github.com/yantrajs/yantra/compare/v1.2.246...v1.2.261)

---
updated-dependencies:
- dependency-name: YantraJS.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Upgrade to new Microsoft Test Platform when using NUnit (#2052)

* Add support for object return values in Func callbacks (#2053)

If a Func defines a none value-type return type that does
not implement IConvertible a InvalidCastException was
thrown. This update skips Convert.ChangeType if the returned
value is not IConvertible and just casts the result.

Co-authored-by: Martin Burtscher <martin.burtscher@teslab.com>

* Create global alias for JsValue[] arguments (#2055)

* Bump the all-dependencies group with 3 updates (#2056)

Bumps the all-dependencies group with 3 updates: [System.Text.Json](https://github.com/dotnet/runtime), [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions) and [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime).


Updates `System.Text.Json` from 9.0.1 to 9.0.2
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.1...v9.0.2)

Updates `Microsoft.Extensions.TimeProvider.Testing` from 9.1.0 to 9.2.0
- [Release notes](https://github.com/dotnet/extensions/releases)
- [Commits](https://github.com/dotnet/extensions/compare/v9.1.0...v9.2.0)

Updates `Microsoft.Extensions.DependencyInjection` from 9.0.1 to 9.0.2
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.1...v9.0.2)

---
updated-dependencies:
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Remove apparently-redundant `DateFlags` calculation in `JsDate` constructor (#2058)

* Add `DateFlags.DateTime{Min,Max}Value` tests

ref. https://github.com/sebastienros/jint/issues/2057

* Remove apparently-redundant `DateFlags` calculation

This constructor calls `engine.Realm.Intrinsics.Date.FromDateTime(value)`
i.e. `DateConstructor.FromDateTime` which already sets these flags correctly:

```csharp
internal DatePresentation FromDateTime(DateTime dt, bool negative = false)
{
    if (dt == DateTime.MinValue)
    {
        return DatePresentation.MinValue;
    }

    if (dt == DateTime.MaxValue)
    {
        return DatePresentation.MaxValue;
    }
```

Tests added confirm that this code appears redundant.

ref. https://github.com/sebastienros/jint/issues/2057

* Avoid creating context for eval if eval is not present (#2059)

* Improve function arguments parameter expression detection (#2060)

* Bump the all-dependencies group with 5 updates (#2061)

Bumps the all-dependencies group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [Jurassic](https://github.com/paulbartrum/Jurassic) | `3.2.8` | `3.2.9` |
| [YantraJS.Core](https://github.com/yantrajs/yantra) | `1.2.261` | `1.2.282` |
| [FluentAssertions](https://github.com/fluentassertions/fluentassertions) | `7.1.0` | `7.2.0` |
| [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) | `3.0.1` | `3.0.2` |
| [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) | `2.0.186` | `2.0.188` |


Updates `Jurassic` from 3.2.8 to 3.2.9
- [Release notes](https://github.com/paulbartrum/Jurassic/releases)
- [Commits](https://github.com/paulbartrum/Jurassic/commits)

Updates `YantraJS.Core` from 1.2.261 to 1.2.282
- [Release notes](https://github.com/yantrajs/yantra/releases)
- [Commits](https://github.com/yantrajs/yantra/compare/v1.2.261...v1.2.282)

Updates `FluentAssertions` from 7.1.0 to 7.2.0
- [Release notes](https://github.com/fluentassertions/fluentassertions/releases)
- [Changelog](https://github.com/fluentassertions/fluentassertions/blob/main/AcceptApiChanges.ps1)
- [Commits](https://github.com/fluentassertions/fluentassertions/compare/7.1.0...7.2.0)

Updates `xunit.runner.visualstudio` from 3.0.1 to 3.0.2
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/3.0.1...3.0.2)

Updates `Meziantou.Analyzer` from 2.0.186 to 2.0.188
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.186...2.0.188)

---
updated-dependencies:
- dependency-name: Jurassic
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: YantraJS.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: FluentAssertions
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: xunit.runner.visualstudio
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Check against long.MaxValue instead of int in memory limit configuration (#2068)

* Update bug_report.md (#2070)

* Remove unused usings (#2072)

* Use collection expressions (#2073)

* Enforce code style on build and fix issues (#2074)

* Use matrix to run PR builds, add ARM runner (#2075)

* Create config.yml for issues templates (#2077)

* Bump the all-dependencies group with 3 updates (#2079)

Bumps the all-dependencies group with 3 updates: [System.Text.Json](https://github.com/dotnet/runtime), [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions) and [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime).


Updates `System.Text.Json` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3)

Updates `Microsoft.Extensions.TimeProvider.Testing` from 9.2.0 to 9.3.0
- [Release notes](https://github.com/dotnet/extensions/releases)
- [Commits](https://github.com/dotnet/extensions/compare/v9.2.0...v9.3.0)

Updates `Microsoft.Extensions.DependencyInjection` from 9.0.2 to 9.0.3
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.2...v9.0.3)

---
updated-dependencies:
- dependency-name: System.Text.Json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group with 2 updates (#2080)

Bumps the all-dependencies group with 2 updates: [NodaTime](https://github.com/nodatime/nodatime) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `NodaTime` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/nodatime/nodatime/releases)
- [Commits](https://github.com/nodatime/nodatime/compare/3.2.1...3.2.2)

Updates `Meziantou.Analyzer` from 2.0.188 to 2.0.189
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.188...2.0.189)

---
updated-dependencies:
- dependency-name: NodaTime
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve interop performance with delegates and dictionaries (#2088)

* Bump Meziantou.Analyzer in the all-dependencies group (#2089)

Bumps the all-dependencies group with 1 update: [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `Meziantou.Analyzer` from 2.0.189 to 2.0.193
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.189...2.0.193)

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.193
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group with 4 updates (#2091)

Bumps the all-dependencies group with 4 updates: [System.Text.Json](https://github.com/dotnet/runtime), [Microsoft.Extensions.TimeProvider.Testing](https://github.com/dotnet/extensions), [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `System.Text.Json` from 9.0.3 to 9.0.4
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.3...v9.0.4)

Updates `Microsoft.Extensions.TimeProvider.Testing` from 9.3.0 to 9.4.0
- [Release notes](https://github.com/dotnet/extensions/releases)
- [Commits](https://github.com/dotnet/extensions/compare/v9.3.0...v9.4.0)

Updates `Microsoft.Extensions.DependencyInjection` from 9.0.3 to 9.0.4
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v9.0.3...v9.0.4)

Updates `Meziantou.Analyzer` from 2.0.193 to 2.0.196
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.193...2.0.196)

---
updated-dependencies:
- dependency-name: System.Text.Json
  dependency-version: 9.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-version: 9.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-version: 9.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.196
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update Meziantou.Analyzer to 2.0.197 (#2093)

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.197
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.DotNet.ILCompiler
  dependency-version: 9.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.DotNet.ILCompiler
  dependency-version: 9.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.NET.ILLink.Tasks
  dependency-version: 8.0.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group across 1 directory with 2 updates (#2096)

Bumps the all-dependencies group with 2 updates in the / directory: [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) and [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer).


Updates `xunit.runner.visualstudio` from 3.0.2 to 3.1.0
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](https://github.com/xunit/visualstudio.xunit/compare/3.0.2...3.1.0)

Updates `Meziantou.Analyzer` from 2.0.197 to 2.0.201
- [Release notes](https://github.com/meziantou/Meziantou.Analyzer/releases)
- [Commits](https://github.com/meziantou/Meziantou.Analyzer/compare/2.0.197...2.0.201)

---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.201
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix ObjectAccessBenchmark test (#2100)

* Add default 10 second timeout for promise unwrapping (#2103)

* Update: (#2104)

- Microsoft.Extensions.DependencyInjection to 9.0.5
- Microsoft.Extensions.TimeProvider.Testing to 9.5.0
- System.Text.Json to 9.0.5
- Test262Harness to 1.0.2

---
updated-dependencies:
- dependency-name: Microsoft.DotNet.ILCompiler
  dependency-version: 9.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.DotNet.ILCompiler
  dependency-version: 9.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-version: 9.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-version: 9.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.ILLink.Tasks
  dependency-version: 8.0.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: System.Text.Json
  dependency-version: 9.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Test262Harness
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* #2099: Fix over-caching by providing each function instance with it's own interop variant (#2105)

* Update: (#2107)

- BenchmarkDotNet to 0.15.0
- Microsoft.NET.Test.Sdk to 17.14.0

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: Microsoft.DotNet.ILCompiler
  dependency-version: 9.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.DotNet.ILCompiler
  dependency-version: 9.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.NET.ILLink.Tasks
  dependency-version: 8.0.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 17.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 17.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 17.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 17.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix calling pop on generic list of value types (#2112)

* Fix NRE in BuildTargetBinderDelegate (#2116)

* remove unnecessary reflection
* add BoundFunction interop test

* Bump the all-dependencies group with 3 updates (#2117)

Bumps BenchmarkDotNet from 0.15.0 to 0.15.1
Bumps Microsoft.NET.Test.Sdk from 17.14.0 to 17.14.1
Bumps xunit.runner.visualstudio from 3.1.0 to 3.1.1

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-version: 0.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 17.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: xunit.runner.visualstudio
  dependency-version: 3.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group with 6 updates (#2120)

Bumps BenchmarkDotNet from 0.15.1 to 0.15.2
Bumps Meziantou.Analyzer from 2.0.201 to 2.0.202
Bumps Microsoft.Extensions.DependencyInjection from 9.0.5 to 9.0.6
Bumps Microsoft.Extensions.TimeProvider.Testing from 9.5.0 to 9.6.0
Bumps NiL.JS from 2.5.1684 to 2.6.1700
Bumps System.Text.Json from 9.0.5 to 9.0.6

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-version: 0.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.202
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-version: 9.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-version: 9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: NiL.JS
  dependency-version: 2.6.1700
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: System.Text.Json
  dependency-version: 9.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve Half interop handling (#2121)

* eval syntax checks should not descend into function declarations (#2123)



---------

Co-authored-by: Rolf Grossmann <git@megacynic.33mail.com>

* Update ES2025 support status to README.md (#2125)

* Update test262 harness and fix issues (#2126)

* fix promise issues
* fix ObjectPrototype.setPrototypeOf
* exclude some unsupported regex cases
* assignment cleanup & exclude some cases
* add more validation to decodeURIComponent

* Implement Upsert (#2127)

* Remove some duplication and align with spec naming (#2128)

* Use V8-based stacktraces (#2129)

* Improve interop member resolution when enum indexer present (#2131)

* Fix default parameter handling under interop (#2134)

* use state for best match resolving

* Support writing length to IList under interop (#2135)

* Support passing `space` arg to `SerializeToJsonDelegate` (#2142)

* Add explicit resource management supporting types (#2143)

* Upgrade to Acornima v1.2.0 (#2145)

* Bump the all-dependencies group with 2 updates (#2144)

Bumps Meziantou.Analyzer from 2.0.202 to 2.0.205
Bumps YantraJS.Core from 1.2.282 to 1.2.286

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.205
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: YantraJS.Core
  dependency-version: 1.2.286
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add support for using and await using (#2139)

* Bump the all-dependencies group with 3 updates (#2146)

Bumps Microsoft.Extensions.DependencyInjection from 9.0.6 to 9.0.7
Bumps Microsoft.Extensions.TimeProvider.Testing from 9.6.0 to 9.7.0
Bumps xunit.runner.visualstudio from 3.1.1 to 3.1.2

---
updated-dependencies:
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-version: 9.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-version: 9.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: xunit.runner.visualstudio
  dependency-version: 3.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Rename ExceptionHelper to Throw and shorter method names (#2148)

* Add `Options.Constraints.PromiseTimeout` to control timeout for `DisposeHint.Async` and `JintAwaitExpression` (#2150)

---------

Co-authored-by: liuyan <liuyan@ezgrid.cn>

* Bump the all-dependencies group with 1 update (#2149)

Bumps xunit.runner.visualstudio from 3.1.2 to 3.1.3

---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
  dependency-version: 3.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix iterating a CLR list proxy and length property under interop (#2151)

Co-authored-by: Martin Burtscher <martin.burtscher@teslab.com>

* Fix MethodAccessor property flags (#2153)


---------

Co-authored-by: Martin Burtscher <martin.burtscher@teslab.com>

* Upgrade to xUnit v3 (#2154)

* Fix BigInt modulo assignment (#2178)

* Upgrade Test262Harness to version 1.0.3 (#2184)

* Object.is fix when providing BigInt values (#2183)

* Bump the all-dependencies group with 12 updates (#2187)

Bumps BenchmarkDotNet from 0.15.2 to 0.15.4
Bumps Meziantou.Analyzer from 2.0.205 to 2.0.227
Bumps Microsoft.Extensions.DependencyInjection from 9.0.7 to 9.0.10
Bumps Microsoft.Extensions.TimeProvider.Testing from 9.7.0 to 9.10.0
Bumps Microsoft.NET.Test.Sdk from 17.14.1 to 18.0.0
Bumps Newtonsoft.Json from 13.0.3 to 13.0.4
Bumps NiL.JS from 2.6.1700 to 2.6.1706
Bumps NUnit from 4.3.2 to 4.4.0
Bumps NUnit3TestAdapter from 5.0.0 to 5.2.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.5
Bumps xunit.v3 from 3.0.0 to 3.1.0
Bumps YantraJS.Core from 1.2.286 to 1.2.290

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-version: 0.15.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.227
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-version: 9.0.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Microsoft.Extensions.TimeProvider.Testing
  dependency-version: 9.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-dependencies
- dependency-name: Newtonsoft.Json
  dependency-version: 13.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: NiL.JS
  dependency-version: 2.6.1706
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: NUnit
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: NUnit3TestAdapter
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: xunit.runner.visualstudio
  dependency-version: 3.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: xunit.v3
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: YantraJS.Core
  dependency-version: 1.2.290
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the all-dependencies group with 2 updates (#2188)

Bumps Meziantou.Analyzer from 2.0.227 to 2.0.238
Bumps YantraJS.Core from 1.2.290 to 1.2.292

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.238
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: YantraJS.Core
  dependency-version: 1.2.292
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Prevent accidental leakage of arguments between separate calls (#2193)

Prevent accidential leakage of arguments between separate calls because of the JsValueArrayPool.

* Rewrite of flaky test (#2195)

* Allow garbage collector to collect unused memory (#2196)

* Allow garbage collector to collect unused memory
* Added polyfill for Array.Fill for full framework
* Polyfill also used for dotnet standard 2.0

* Bump the all-dependencies group with 4 updates (#2192)

Bumps BenchmarkDotNet from 0.15.4 to 0.15.5
Bumps Meziantou.Analyzer from 2.0.238 to 2.0.248
Bumps xunit.v3 from 3.1.0 to 3.2.0
Bumps YantraJS.Core from 1.2.292 to 1.2.293

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-version: 0.15.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.248
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: xunit.v3
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
- dependency-name: YantraJS.Core
  dependency-version: 1.2.293
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Allow conversion of Promise to task when passing an async function as an argument (#2197)

* Bump the all-dependencies group with 3 updates (#2198)

Bumps BenchmarkDotNet from 0.15.5 to 0.15.6
Bumps Meziantou.Analyzer from 2.0.248 to 2.0.250
Bumps NiL.JS from 2.6.1706 to 2.6.1707

---
updated-dependencies:
- dependency-name: BenchmarkDotNet
  dependency-version: 0.15.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.250
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: NiL.JS
  dependency-version: 2.6.1707
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix missing control characters in JSON Parse Key (#2202)

* Use NET 10 SDK to build and test (#2185)

* Upgrade packages (#2212)

* Convert solution to slnx format (#2213)

* convert solution to slnx format
* use checkout action v6
* skip ShouldRespectCustomProvidedTimeoutWhenUnwrapping for now

* Defer iterator next method check until actually iterating (#2214)

* Add ArrayExpression and ObjectExpression to computed property key types (#2215)

* Fix parameter TDZ and eval-var-scope handling (#2216)

- Fix duplicate detection in GetBoundNames: check target.Contains(key)
  BEFORE target.Add(key) to avoid false positives that caused hasDuplicates
  to be incorrectly set for functions with default parameters

- When hasDuplicates was incorrectly true, parameter bindings were created
  with Undefined instead of null, breaking TDZ enforcement for default
  parameter expressions referencing later parameters (e.g., f(x = y, y))

* ES6 Generators (#824)

* Bump the all-dependencies group with 1 update (#2217)

Bumps Meziantou.Analyzer from 2.0.264 to 2.0.266

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.266
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Refactor generator control flow from exceptions to flags (#2218)

* Implement Iterator Helpers (#2032)

* Implement Iterator Sequencing (#2031)

* Update test262 test suite and fix issues (#2219)

* Implement RegExp.escape() (#2220)

* Implement Immutable ArrayBuffers (#2222)

* Implement Joint Iteration (#2221)

* Improve REPL for AI usage (#2224)

* add CLAUDE.md

* Implement JSON.parse source text access (#2223)

* Rename IsGeneratorSuspended to IsSuspended (#2226)

* Implement ECMAScript-compliant async/await with proper suspension (#2225)

* Top-Level Await (TLA) support for ES modules

* Filter TypeReference constructors using TypeResolver.MemberFilter (#2227)

* Implement Asynchronous iteration (#2228)

* Implement Array.fromAsync (#2229)

* Add agent support to test262 testing (#2231)

* Bump the all-dependencies group with 2 updates (#2232)

Bumps Meziantou.Analyzer from 2.0.266 to 2.0.267
Bumps NodaTime from 3.2.3 to 3.3.0

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.267
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: NodaTime
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Implement Atomics (#2230)

* ValueTask<TResult> and IAsyncEnumerable<T> interop support (#2233)

* Disable fail-fast in GitHub Actions workflow (#2235)

* Add jsValue.UnwrapIfPromise(CancellationToken cancellationToken) (#2234)

* Fix Test262Test setTimeout concurrency issue (#2236)

* tweak ShouldConsiderConstraintsWhenCallingInvoke

* Type resolution should use runtime type when declared type has indexer (#2237)

* JavaScriptException.GetBaseException() should not return JavaScriptErrorWrapperException (#2238)

* Enable decorator tests (#2239)

* Fix Final_Sigma_U180E issue (#2240)

* Improve TypeReference method parameter scoring (#2241)

* Add test coverage for async functions (#2242)

* Fall back to non-generic list wrapper on error (#2244)

* Update VersionPrefix from 4.0.0 to 4.5.0 (#2245)

* Cleanup suspend logic (#2246)

* Bump the all-dependencies group with 2 updates (#2247)

Bumps Meziantou.Analyzer from 2.0.267 to 2.0.276
Bumps NUnit3TestAdapter from 6.0.1 to 6.1.0

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 2.0.276
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-dependencies
- dependency-name: NUnit3TestAdapter
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Preserve lexical …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Using Dictionary<string, object> data with a lambdas drops execution performance by factor 50

3 participants