Skip to content

Bump Jint from 4.2.1 to 4.9.0#15

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/src/MongoDB.InMemoryEmulator.JsTriggers/Jint-4.9.0
Closed

Bump Jint from 4.2.1 to 4.9.0#15
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/src/MongoDB.InMemoryEmulator.JsTriggers/Jint-4.9.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github May 11, 2026

Copy link
Copy Markdown

Updated Jint from 4.2.1 to 4.9.0.

Release notes

Sourced from Jint's releases.

4.9.0

Highlights

Jint 4.9.0 is a large release focused on performance, CLR interop ergonomics, and ECMAScript spec coverage.

New language features

  • Import Defer and Source Phase Importsimport defer * as ns from "mod" / import.defer() and import source x from "mod" / import.source() (TC39 proposals; 346 + 428 test262 tests pass) (#​2396)
  • Import Textimport txt from "./file.txt" with { type: "text" } (TC39 Stage 3; complements the existing json / bytes paths) (#​2403)

Performance

The interpreter and built-ins got broad attention this release — see the v4.8.0 → v4.9.0 comparison table below for measured deltas.

  • Custom regex engine interpreter optimized (#​2388)
  • URI decode / unescape: faster and lower-allocation (#​2389)
  • Array.prototype.sort / indexOf / includes / concat and sparse-array conversion optimized (#​2408)
  • Lazy backing for new Array(N) plus Array.Copy fast paths for shift / unshift / splice (#​2451)
  • Shape-versioned inline cache for member-expression reads (#​2412)
  • FunctionEnvironment pooled per JintFunctionDefinition.State (#​2413)
  • Identifier resolution: cached binding location in the slot fast path, walks skipped through empty function environments, inline small block-env slot resets (#​2416, #​2419, #​2420)
  • Recursion pool + zero-alloc JsString primitive reads (#​2450)
  • Avoid double-evaluating assignment bases in member access (#​2402)

CLR interop

  • New opt-in Options.Interop.PreferJsPrototypeMethods() makes JS prototype methods win over CLR methods on wrapped objects (list.reverse() / list.sort() now do the JS thing on IList<T>) (#​2440)
  • JS function call signatures preserved when functions are stored in Dictionary<string, object> (#​2392)
  • Non-string CLR dictionary keys are now supported (#​2449)
  • ThrowOnUnresolvedMember no longer throws on missing dictionary keys (#​2446)
  • Fixed MissingMemberException on implicit string coercion of CLR objects (#​2439)
  • CLR exceptions raised from JS now carry the originating JS source location and call stack — read via JintException.TryGetJavaScriptLocation / TryGetJavaScriptCallStack, or via JavaScriptException.Location when using CatchClrExceptions() (#​2459)

Correctness & spec coverage

  • Async for-of destructuring resume bugs fixed (#​2453, #​2456)
  • Module system correctness improvements (#​2395)
  • Function.prototype.toString() returns the original source text for non-native functions (#​2394)
  • Custom-engine regex literals now honor the prepare-time RegexTimeout (#​2457)
  • Regex parsing cleanup and improved fallback-to-custom-engine detection (#​2393, #​2398)
  • Many test262 exclusions dropped: Unicode SpecialCasing, calendar arithmetic, PlainMonthDay, NumberFormat precision, Hebrew leap-month, era/year consistency, locale numbering, plus a precision-aware NumberFormat path and a new ICalendarProvider extension point (#​2390, #​2407, #​2409, #​2411, #​2414, #​2423)
  • Acornima parser upgraded to 1.6.1 (#​2415)

Performance: Jint 4.8.0 → 4.9.0

Same machine, same scripts, default BenchmarkDotNet settings on the v4.8.0 and v4.9.0 tags. Lower is better. Negative deltas are improvements.

Hardware: AMD Ryzen 9 5950X · Windows 11 · .NET 10.0.7 · BenchmarkDotNet 0.15.8.

Cold path — Engine.Execute(string) (parses on every call)

... (truncated)

4.8.0

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.7.1...v4.8.0

4.7.1

What's Changed

Full Changelog: sebastienros/jint@v4.7.0...v4.7.1

4.7.0

What's Changed

Full Changelog: sebastienros/jint@v4.6.4...v4.7.0

4.6.4

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.6.3...v4.6.4

4.6.3

What's Changed

Full Changelog: sebastienros/jint@v4.6.2...v4.6.3

4.6.2

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.6.1...v4.6.2

4.6.1

What's Changed

Full Changelog: sebastienros/jint@v4.6.0...v4.6.1

4.6.0

This release brings Temporal and internationalization APIs available. There still might be some rough edges and specific non-English cultures might be missing specific formatting. There's a breaking change for custom IReferenceResolver in #​2266 , undefined and null semantics changed to make engine work as required by the official specification.

Temporal and internationalization APIs are augmented with plugins to provide data from NodaTime and ICU4N, see https://github.com/sebastienros/jint/tree/main/Jint.Tests.Test262 for example implementations.

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.5.0...v4.6.0

4.5.0

This is a significant milestone as this release graduates generators functionality from experimental and contains proper suspension and resume logic for both generators and async/await logic. There are a lot of changes to internals so make sure you test thoroughly.

Task interop is still marked as experimental and requires enabling explicitly in Engine options, but it also has had improvements to make it work better in Engine's event loop.

For background work to complete without engine interaction (evaluation) you need to manually process the tasks (for example if you have a timeout pending after script has been run).

engine.Execute(script);
for (var i = 0; i < 100; ++i)
{
    engine.Advanced.ProcessTasks();
    await Task.Delay(100);
}

What's Changed

4.4.2

What's Changed

Full Changelog: sebastienros/jint@v4.4.1...v4.4.2

4.4.1

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.4.0...v4.4.1

4.4.0

This release brings both using and await using statements available to both native JS usage and NET interop. Interop will automatically wrap IDisposable and IAsyncDisposable to have handlers that will be called after using scope ends. Read more about the proposal.

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.3.0...v4.4.0

4.3.0

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.2.2...v4.3.0

4.2.2

This release improves interop performance when you target CLR methods with lambda functions, like List<string>.Find(x => x === "test").

What's Changed

Full Changelog: sebastienros/jint@v4.2.1...v4.2.2

Commits viewable in compare view.

Dependabot compatibility score

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 commands and options

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 show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @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)

---
updated-dependencies:
- dependency-name: Jint
  dependency-version: 4.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github May 11, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies, nuget. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot dependabot Bot mentioned this pull request May 11, 2026
@dependabot @github

dependabot Bot commented on behalf of github May 18, 2026

Copy link
Copy Markdown
Author

Superseded by #17.

@dependabot dependabot Bot closed this May 18, 2026
@dependabot
dependabot Bot deleted the dependabot/nuget/src/MongoDB.InMemoryEmulator.JsTriggers/Jint-4.9.0 branch May 18, 2026 00:49
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.

0 participants