Bump Jint from 4.2.1 to 4.10.0#26
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
--- updated-dependencies: - dependency-name: Jint dependency-version: 4.10.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Author
|
Superseded by #27. |
dependabot
Bot
deleted the
dependabot/nuget/src/InMemoryEmulator.MongoDB.JsTriggers/Jint-4.10.0
branch
June 29, 2026 00:26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated Jint from 4.2.1 to 4.10.0.
Release notes
Sourced from Jint's releases.
4.10.0
Overview
Jint 4.10.0 is a performance- and memory-focused release. The bulk of this cycle went into making the interpreter run faster and allocate less, with additional work on CLR interop speed and diagnostics, plus a handful of correctness and spec-compliance fixes.
If you execute the same scripts repeatedly, run interop-heavy workloads, or care about GC pressure, this release should give you a meaningful, no-code-changes-required speedup.
Highlights
Interpreter performance
x++updates via version-gated inline caches (#2507, #2514).FunctionDeclarationInstantiationskipped entirely when there's nothing to do (#2502), lazy constructor.prototypecreation (#2512), and no more per-call closure allocation inEvaluateBody(#2534).evalandnew Functionsources (#2503), and a fix for prepared scripts that were running slower than re-parsed source (#2504).String.prototype.splitwith a string separator (#2519).Reduced allocations & memory footprint
slice/substring/substrresults, extended to bounded-waste substrings (#2506, #2518).RegExpsplit,Iterator.toArray, and object enumeration (#2524, #2526).JsDateshrunk by 8 bytes (#2535) andObjectInstanceslimmed by relocating_privateElementsto a per-engine weak table (#2536).CLR interop
for..inover wrapped objects (#2516).Correctness & spec compliance
Evaluate()during module execution (#2493).DefaultTypeConverter.Convertbypassing subclassTryConvertoverrides (#2498).4.10.0 contains no new breaking changes, but if you skip past 4.9.3 note its host-side breaking change:
Error.prototype.stackbecame aget/setaccessor on%Error.prototype%(it is no longer an own property of each error instance), so host code reading the trace viaObjectInstance.TryGetValue("stack", …)now getsundefined— useerrorObject.Get("stack")instead. See the v4.9.3 release notes for details (#2489).What's Changed
List<T>by @jnyrup in Parenthesize expressions to correctly pre-allocateList<T>sebastienros/jint#2501... (truncated)
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 surface changes, but host code that reads an error's
stackshould review the breaking-change note below, plus one additional minor behavioral note.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.stackaccessor (error-stack-accessor proposal) —stackis now a configurableget/setaccessor on%Error.prototype%rather than an own data property on each instance. This is a breaking change for host (C#) code that readsstack— see the breaking-change note below.ArrayBufferwrite rejection —%TypedArray%.prototypemutators (copyWithin/fill/reverse/set/sort), theAtomicsread-modify-write ops, andUint8ArraysetFromBase64/setFromHexnow throwTypeErrorbefore any observable side effect when the backing buffer is immutable.NumberFormatandDateTimeFormat, plus the newIntl.PluralRulescompactDisplayoption.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.import source x from "…"; export { x };is now supported (#2490).Performance
System.Array.Copy/Span<T>instead of per-element decode/encode loops.set,slice,copyWithin,with,fill,reverse,toReversed, and theindexOf/lastIndexOf/includesscans are now roughly 80×–350× faster with drastically lower allocations (#2488).Robustness
'x'.padStart(2147483647)orArray.from({ length: 50000000 }), along with theArray/%TypedArray%/RegExp/JSON/Stringbulk loops, now honorTimeoutInterval/MaxStatements/LimitMemoryand raise a catchableRangeErrorinstead of hanging or throwing an uncatchableOutOfMemoryException.Correctness
vpatterns that were incorrectly rejected (e.g./-/v,/&&/v,/[\!]/v) (#2481).new RegExp(...),RegExp(...),.compile(...),String.prototype.match, etc. (#2482).stackfrom host codeThe
Error.prototype.stackaccessor change above also affects host (C#) code that inspects an error's stack trace. Previouslystackwas an own data property of every error instance, so an own-property read found the trace directly. It is now aget/setaccessor defined on%Error.prototype%and is no longer an own property of the instance (#2489).As a result, reading the trace with
ObjectInstance.TryGetValue("stack", out var v)now yieldsundefined.TryGetValuestill walks the prototype chain and finds the accessor on%Error.prototype%, but it invokes the inherited getter with the prototype as the receiver instead of the original error instance. The prototype has no[[ErrorData]]internal slot, so the getter returnsundefinedand the captured trace is lost.Read the value through the accessor-aware
Get, which threads the correct receiver:For .NET
Regexobjects 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
... (truncated)
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/awaitand event-loop behavior:WaitForEventAsyncwaiters are all signaled now — previously only one waiter would wake when an event arrived (#2427).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 tolong, overflowing at ~9.22e18 and returning wrong digits (or throwing). The integer part now goes throughBigIntegeronce it exceedslongrange, producing the mathematically exact base-rrepresentation 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
RangeErrorinstead of silently overflowing (#2465).Spec conformance
Updated test262 to commit
673e9bacand 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 * as ns from "mod"/import.defer()andimport source x from "mod"/import.source()(TC39 proposals; 346 + 428 test262 tests pass) (#2396)import txt from "./file.txt" with { type: "text" }(TC39 Stage 3; complements the existingjson/bytespaths) (#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.
Array.prototype.sort/indexOf/includes/concatand sparse-array conversion optimized (#2408)new Array(N)plusArray.Copyfast paths forshift/unshift/splice(#2451)FunctionEnvironmentpooled perJintFunctionDefinition.State(#2413)JsStringprimitive reads (#2450)CLR interop
Options.Interop.PreferJsPrototypeMethods()makes JS prototype methods win over CLR methods on wrapped objects (list.reverse()/list.sort()now do the JS thing onIList<T>) (#2440)Dictionary<string, object>(#2392)ThrowOnUnresolvedMemberno longer throws on missing dictionary keys (#2446)MissingMemberExceptionon implicit string coercion of CLR objects (#2439)JintException.TryGetJavaScriptLocation/TryGetJavaScriptCallStack, or viaJavaScriptException.Locationwhen usingCatchClrExceptions()(#2459)Correctness & spec coverage
for-ofdestructuring resume bugs fixed (#2453, #2456)Function.prototype.toString()returns the original source text for non-native functions (#2394)RegexTimeout(#2457)NumberFormatpath and a newICalendarProviderextension point (#2390, #2407, #2409, #2411, #2414, #2423)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
PreparedScriptBenchmarkclass closer to the original by @Taritsyn in Make aPreparedScriptBenchmarkclass closer to the original sebastienros/jint#2325New 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
toJSONmethod invocation inJSON.stringifyby @Copilot in Fix CLR toJSON method invocation in JSON.stringify sebastienros/jint#2292UnwrapIfPromiseAsyncextension method for non-blocking promise resolution by @Copilot in AddUnwrapIfPromiseAsyncextension method for non-blocking promise resolution sebastienros/jint#2298Object.freeze()support for CLR dictionary-backedObjectWrapperby @Copilot in Fix Object.freeze() support for CLR dictionary-backed ObjectWrapper sebastienros/jint#2296InvalidCastExceptionwhen a property getter is a bound function by @Copilot in Fix InvalidCastException when a property getter is a bound function sebastienros/jint#2301Dateoperations and object resolution by @Copilot in Optimize Date operations and object resolution sebastienros/jint#2288Full 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
IReferenceResolverin #2266 ,undefinedandnullsemantics 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).
What's Changed
... (truncated)
4.4.2
What's Changed
BigIntmodulo assignment by @lahma in Fix BigInt modulo assignment sebastienros/jint#2178Object.iswhen providingBigIntvalues by @tomatosalat0 in Fix Object.is when providing BigInt values sebastienros/jint#2183Full Changelog: sebastienros/jint@v4.4.1...v4.4.2
4.4.1
What's Changed
Options.Constraints.PromiseTimeoutTo Control timeout forDisposeHint.AsyncandJintAwaitExpressionby @rocklau in AddOptions.Constraints.PromiseTimeoutTo Control timeout forDisposeHint.AsyncandJintAwaitExpressionsebastienros/jint#2150New Contributors
Options.Constraints.PromiseTimeoutTo Control timeout forDisposeHint.AsyncandJintAwaitExpressionsebastienros/jint#2150Full Changelog: sebastienros/jint@v4.4.0...v4.4.1
4.4.0
This release brings both
usingandawait usingstatements available to both native JS usage and NET interop. Interop will automatically wrapIDisposableandIAsyncDisposableto have handlers that will be called afterusingscope ends. Read more about the proposal.What's Changed
IListunder interop by @lahma in Support writing length to IList under interop sebastienros/jint#2135spacearg toOptions.Interop.SerializeToJsonby @Zaitonn in Passingspacearg toOptions.Interop.SerializeToJsonsebastienros/jint#2142usingandawait usingby @lahma in Add support for using and await using sebastienros/jint#2139New Contributors
spacearg toOptions.Interop.SerializeToJsonsebastienros/jint#2142Full Changelog: sebastienros/jint@v4.3.0...v4.4.0
4.3.0
What's Changed
ObjectAccessBenchmarktest by @mac-michael in Fix ObjectAccessBenchmark test sebastienros/jint#2100BuildTargetBinderDelegateby @warappa in #2114: Fix NRE in BuildTargetBinderDelegate sebastienros/jint#2116Halfinterop handling by @lahma in Improve Half interop handling sebastienros/jint#2121evalsyntax checks not descend into function declarations by @rg1 in Bugfix/2106 make eval syntax checks not descend into function declarations sebastienros/jint#2123Upsertby @lahma in Implement Upsert sebastienros/jint#2127New 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 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 rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill 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 versionwill 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 dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)