Skip to content

Bump Jint from 4.2.1 to 4.9.3#23

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

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

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 8, 2026

Copy link
Copy Markdown

Updated Jint from 4.2.1 to 4.9.3.

Release notes

Sourced from Jint's releases.

4.9.3

Highlights

Jint 4.9.3 is a maintenance release on top of 4.9.2 that closes the remaining test262 gaps from the 4.9.x line, hardens bulk built-ins against runaway inputs, and delivers large TypedArray performance gains. There are no public API changes (aside from one minor behavioral note below).

ECMAScript spec coverage

The bundled test262 suite was bumped to its latest snapshot and the spec gaps it surfaced were implemented — the full conformance suite now passes with 0 failures (#​2489, #​2490):

  • Error.prototype.stack accessor (error-stack-accessor proposal) — stack is now a configurable get/set accessor on %Error.prototype% rather than an own data property on each instance.
  • Immutable ArrayBuffer write rejection%TypedArray%.prototype mutators (copyWithin / fill / reverse / set / sort), the Atomics read-modify-write ops, and Uint8Array setFromBase64 / setFromHex now throw TypeError before any observable side effect when the backing buffer is immutable.
  • Intl legacy-constructor mode (normative-optional) for NumberFormat and DateTimeFormat, plus the new Intl.PluralRules compactDisplay option.
  • Temporal.ZonedDateTime — rejects not-yet-adopted calendar annotations and correctly rounds to start-of-day when midnight occurs twice across a fall-back DST transition.
  • Source-phase import re-exportsimport source x from "…"; export { x }; is now supported (#​2490).

Performance

  • TypedArray bulk operations were rewritten around System.Array.Copy / Span<T> instead of per-element decode/encode loops. set, slice, copyWithin, with, fill, reverse, toReversed, and the indexOf / lastIndexOf / includes scans are now roughly 80×–350× faster with drastically lower allocations (#​2488).

Robustness

  • Bulk built-ins are now interruptible by execution constraints (#​2487, fixes #​2486). Operations such as 'x'.padStart(2147483647) or Array.from({ length: 50000000 }), along with the Array / %TypedArray% / RegExp / JSON / String bulk loops, now honor TimeoutInterval / MaxStatements / LimitMemory and raise a catchable RangeError instead of hanging or throwing an uncatchable OutOfMemoryException.

Correctness

  • Custom regex engine: fixed flag v patterns that were incorrectly rejected (e.g. /-/v, /&&/v, /[\!]/v) (#​2481).
  • Corrected escaping of regexp patterns built at run-time via new RegExp(...), RegExp(...), .compile(...), String.prototype.match, etc. (#​2482).

⚠️ Minor behavioral change

For .NET Regex objects exposed to the engine, JsRegExp.Source / ToString() now return the placeholder ?[native regex] instead of the raw .NET pattern — the .NET pattern was misleading because it isn't a valid JS pattern (#​2482).


What's Changed

Full Changelog: sebastienros/jint@v4.9.2...v4.9.3

4.9.2

What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.9.1...v4.9.2

4.9.1

A bug-fix release focused on async correctness, number-to-string conversion, and CLR interop edge cases.

Highlights

Async correctness

Three fixes together close a set of holes in async/await and event-loop behavior:

  • Concurrent WaitForEventAsync waiters are all signaled now — previously only one waiter would wake when an event arrived (#​2427).
  • Async resume now flows through control-flow statements (if/for/while/try/switch) (#​2469) and through every expression type (#​2475). Awaiting inside these constructs no longer drops state or fails to resume.

If you use Jint's async API, this release is worth picking up.

Number.prototype.toString(radix) no longer overflows

(-12345e+30).toString(2) and other large-magnitude calls used to cast directly to long, overflowing at ~9.22e18 and returning wrong digits (or throwing). The integer part now goes through BigInteger once it exceeds long range, producing the mathematically exact base-r representation for radix 2 through 36 (#​2471).

CLR interop: oversize numeric inputs

Numeric values that don't fit in the target CLR type now surface as a JavaScript RangeError instead of silently overflowing (#​2465).

Spec conformance

Updated test262 to commit 673e9bac and fixed the issues that surfaced (#​2473).


What's Changed

New Contributors

Full Changelog: sebastienros/jint@v4.9.0...v4.9.1

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.3
  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 Jun 8, 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 Jun 8, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jun 22, 2026

Copy link
Copy Markdown
Author

Superseded by #26.

@dependabot dependabot Bot closed this Jun 22, 2026
@dependabot
dependabot Bot deleted the dependabot/nuget/src/InMemoryEmulator.MongoDB.JsTriggers/Jint-4.9.3 branch June 22, 2026 00:26
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