Skip to content

chore(deps): update dependency jint to v4#1604

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/jint-4.x
Open

chore(deps): update dependency jint to v4#1604
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/jint-4.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Dec 12, 2024

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
Jint 3.0.14.9.2 age confidence

Release Notes

sebastienros/jint (Jint)

v4.9.2

What's Changed

New Contributors

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

v4.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

v4.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)

Script v4.8.0 Mean v4.9.0 Mean Δ Time v4.8.0 Alloc v4.9.0 Alloc Δ Alloc
array-stress 4,532.5 µs 3,600.1 µs −20.6% 7,375.95 KB 1,940.45 KB −73.7%
dromaeo-object-array 29,904.0 µs 18,464.3 µs −38.3% 96,765.24 KB 10,512.56 KB −89.1%
dromaeo-object-array-modern 31,247.4 µs 17,622.9 µs −43.6% 96,765.93 KB 10,513.07 KB −89.1%
dromaeo-core-eval 2,723.9 µs 2,460.3 µs −9.7% 1,342.64 KB 1,344.95 KB +0.2%
dromaeo-object-regexp 140,426.3 µs 134,688.6 µs −4.1% 164,829.32 KB 165,485.78 KB +0.4%
dromaeo-string-base64-modern 35,122.2 µs 32,706.7 µs −6.9% 3,780.89 KB 3,773.89 KB −0.2%
stopwatch 213,814.7 µs 194,933.2 µs −8.8% 72,704.98 KB 39,418.89 KB −45.8%
stopwatch-modern 252,239.1 µs 237,843.5 µs −5.7% 72,921.34 KB 39,635.13 KB −45.6%

Cached path — Engine.Execute(Prepared<Script>) (parse once, reuse)

Script v4.8.0 Mean v4.9.0 Mean Δ Time v4.8.0 Alloc v4.9.0 Alloc Δ Alloc
array-stress 4,488.8 µs 3,668.5 µs −18.3% 7,347.16 KB 1,911.66 KB −74.0%
dromaeo-object-array 31,308.0 µs 17,237.0 µs −45.0% 96,717.15 KB 10,464.17 KB −89.2%
dromaeo-object-array-modern 33,145.1 µs 18,542.6 µs −44.1% 96,718.78 KB 10,465.81 KB −89.2%
dromaeo-object-regexp 111,053.6 µs 96,606.3 µs −13.0% 162,817.15 KB 165,386.35 KB +1.6%
dromaeo-object-regexp-modern 111,853.0 µs 103,489.0 µs −7.5% 165,813.27 KB 165,159.68 KB −0.4%
dromaeo-string-base64 28,926.7 µs 27,136.3 µs −6.2% 3,682.73 KB 3,675.61 KB −0.2%
stopwatch 215,316.7 µs 210,552.7 µs −2.2% 72,673.29 KB 39,387.13 KB −45.8%
stopwatch-modern 268,956.0 µs 250,468.4 µs −6.9% 72,889.02 KB 39,602.85 KB −45.7%

What's Changed

  • Optimize URI decode/unescape performance and memory usage by @​lahma in #​2389
  • Update Test262Harness settings to remove unicode exclusions by @​lahma in #​2390
  • Optimize custom regex engine interpreter performance by @​lahma in #​2388
  • Regexp parsing cleanup by @​adams85 in #​2393
  • Preserve JS function call signatures when functions are stored in Dictionary<string, object> by @​Copilot in #​2392
  • Improve module system correctness and update test262 suite by @​lahma in #​2395
  • Improve fallback to custom engine detection logic for regexps by @​adams85 in #​2398
  • Bump GitHubActionsTestLogger and 3 others by @​dependabot[bot] in #​2397
  • Improve Function.prototype.toString() to return source text for non-native functions by @​adams85 in #​2394
  • Avoid double-evaluating assignment bases in member access by @​Copilot in #​2402
  • Implement import defer and source phase imports proposals by @​lahma in #​2396
  • Update README.md by @​adams85 in #​2404
  • Bump the all-dependencies group with 4 updates by @​dependabot[bot] in #​2406
  • Implement import text proposal by @​lahma in #​2403
  • Drop test262 exclusions for cover-LHS naming, method toString, and Unicode SpecialCasing by @​lahma in #​2407
  • Optimize Array.prototype.{sort,indexOf,includes,concat} and ArrayInstance.ConvertToSparse by @​lahma in #​2408
  • Reduce test262 exclusions: PYM since/until, with(), calendarresolvefields, PMD monthCode, locale numbering by @​lahma in #​2409
  • Drop Temporal/intl402 test262 exclusions: Hebrew leap-month, era/year consistency, PMD validation, plus cleanups by @​lahma in #​2411
  • Use shape-versioned inline cache for member-expression reads by @​lahma in #​2412
  • Pool FunctionEnvironment per JintFunctionDefinition.State by @​lahma in #​2413
  • Upgrade to Acornima v1.6.1 by @​adams85 in #​2415
  • Cache binding location in JintIdentifierExpression slot fast path by @​lahma in #​2416
  • Document the (uint)i < (uint)length bounds-check idiom and apply it to four sites by @​lahma in #​2417
  • Skip identifier walk through empty FunctionEnvironments by @​lahma in #​2419
  • Inline small block-env slot reset by @​lahma in #​2420
  • Source generator for built-in object registration by @​lahma in #​1076
  • Reduce test262 exclusions across calendar arithmetic and PlainMonthDay by @​lahma in #​2414
  • Source generator: expand to Boolean, Error, Number, Function, Object prototypes by @​lahma in #​2421
  • Source generator: migrate Date, Array, String, RegExp prototypes by @​lahma in #​2422
  • Reduce test262 exclusions: precision-aware NumberFormat + ICalendarProvider extension point by @​lahma in #​2423
  • Source generator: migrate JSON, Reflect, Symbol, BigInt prototypes by @​lahma in #​2425
  • Source generator: migrate Promise/WeakMap/WeakRef/FinalizationRegistry prototypes + Symbol/BigInt constructors by @​lahma in #​2426
  • Source generator: migrate ArrayBuffer/SharedArrayBuffer/DataView prototypes by @​lahma in #​2433
  • Source generator: add [JsSymbolAccessor] + migrate Proxy/ArrayBuffer/SharedArrayBuffer/Map constructors by @​lahma in #​2434
  • Source generator: migrate Atomics + WeakSetPrototype + SetConstructor by @​lahma in #​2435
  • Source generator: migrate Map + Set prototypes + IteratorPrototype family by @​lahma in #​2436
  • Fix MissingMemberException on implicit string coercion of CLR objects by @​lahma in #​2439
  • Source generator: finish rollout, spec-shaped signatures, strip redundant Length by @​lahma in #​2437
  • Add option to prefer JS prototype methods over CLR on wrapped objects by @​lahma in #​2440
  • Source generator: add [JsIntrinsicReference], migrate GlobalObject, cache Keys by @​lahma in #​2442
  • Benchmarks: add 7 source-gen perf suites for Phase 2/3/4 follow-ups by @​lahma in #​2443
  • Source generator + Math: variadic [Rest, ToX] + AggressiveInlining + slot elimination + selective [JsProperty] cache by @​lahma in #​2444
  • Don't throw on missing dictionary keys with ThrowOnUnresolvedMember by @​lahma in #​2446
  • Convert issue templates to YAML forms, add PR template and SECURITY.md by @​lahma in #​2447
  • Support non-string CLR dictionary keys by @​lahma in #​2449
  • Close perf regressions vs v4.8.0: recursion pool + JsString primitive read alloc by @​lahma in #​2450
  • Bump the all-dependencies group with 7 updates by @​dependabot[bot] in #​2428
  • Reduce Array allocations: lazy new Array(N) backing + Array.Copy fast path for shift/unshift/splice by @​lahma in #​2451
  • Fix async for-of destructuring resume by @​nfcampos in #​2453
  • Fix one-shot iterable head destructuring on async for-of body resume by @​lahma in #​2456
  • Honor prepare-time RegexTimeout for custom-engine regex literals (#​2454) by @​lahma in #​2457
  • JintIdentifierExpression: gate slot cache walk on engine identity by @​lahma in #​2458
  • Bump the all-dependencies group with 6 updates by @​lahma in #​2460
  • Bump Meziantou.Analyzer and YantraJS.Core by @​dependabot[bot] in #​2461
  • Attach JS source location to CLR exceptions (#​2429) by @​lahma in #​2459

New Contributors

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

v4.8.0

What's Changed

New Contributors

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

v4.7.1

What's Changed

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

v4.7.0

What's Changed

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

v4.6.4

What's Changed

  • Bump the all-dependencies group with 7 updates by @​dependabot[bot] in #​2327
  • Fix Date.toString() showing StandardName instead of DaylightName during DST by @​Copilot in #​2329
  • Make a PreparedScriptBenchmark class closer to the original by @​Taritsyn in #​2325
  • Fix toLocaleString timeZoneName returning full name instead of abbreviation by @​Copilot in #​2330
  • Update Regex terminology in README by @​codeman4033 in #​2333
  • Fix typo in README for RegExp to Regex by @​codeman4033 in #​2334
  • Fix mixed-type addition chain incorrectly treated as pure string concatenation by @​Copilot in #​2337
  • fix: prevent StackOverflow, IndexOutOfRange, and InvalidCast crashes on malformed JavaScript by @​Copilot in #​2340
  • Support running test262 using Jint.Repl by @​ivankra in #​2326
  • Update test262 suite to latest commit and fix 3 new failures by @​Copilot in #​2341
  • Implement non-ISO calendar support for Temporal (Chinese, Dangi, Hebrew, Persian) by @​lahma in #​2342
  • Replace embedded resource text files with inline data for Intl CLDR data by @​lahma in #​2343
  • Enable Intl.Era-monthcode and implement 7 new calendar systems (+2,498 test262 passes) by @​lahma in #​2344
  • Optimize interpreter hot paths for arithmetic, comparisons, and control flow by @​lahma in #​2345
  • Eliminate lazy initialization overhead from interpreter hot paths (~8% faster) by @​lahma in #​2346
  • Fix Temporal calendar handling and enable 2,782 more test262 passes by @​lahma in #​2347
  • Optimize Intl and Temporal hot paths with caching and algorithmic fixes by @​lahma in #​2348
  • Fix BigInt exponentiation bypassing execution constraints by @​lahma in #​2350

New Contributors

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

v4.6.3

What's Changed

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

v4.6.2

What's Changed

New Contributors

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

v4.6.1

What's Changed

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

v4.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

v4.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

New Contributors

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

v4.4.2

What's Changed

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

v4.4.1

What's Changed

  • Add Options.Constraints.PromiseTimeout To Control timeout for DisposeHint.Async and `JintAwai

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM (* 0-3 * * *)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot force-pushed the renovate/jint-4.x branch from eb384eb to 1b2ceae Compare December 13, 2024 13:56
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from 1b2ceae to df16bf9 Compare January 20, 2025 19:22
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from df16bf9 to 3613da1 Compare January 28, 2025 20:55
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from 3613da1 to b8b6bc5 Compare March 9, 2025 18:12
@renovate renovate Bot force-pushed the renovate/jint-4.x branch 5 times, most recently from 5b2f63b to 1182bd6 Compare April 5, 2025 07:02
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from 1182bd6 to 0c23074 Compare April 17, 2025 06:02
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from 0c23074 to 8503050 Compare April 25, 2025 19:28
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from 8503050 to e93b1ec Compare June 30, 2025 19:36
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from e93b1ec to 7d7fc10 Compare July 12, 2025 22:36
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from 7d7fc10 to 6298659 Compare July 26, 2025 14:43
@renovate renovate Bot force-pushed the renovate/jint-4.x branch from 6298659 to 4e9126f Compare September 8, 2025 19:30
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Sep 8, 2025

All contributors have signed the CLA!

Thank you for signing the Contributor License Agreement. Your contribution can now be reviewed and merged! 🚀
Posted by the CLA Assistant Lite bot.

@renovate renovate Bot force-pushed the renovate/jint-4.x branch 14 times, most recently from 57f64e2 to d46c5c3 Compare September 14, 2025 11:33
@renovate renovate Bot force-pushed the renovate/jint-4.x branch 5 times, most recently from 5043e1e to 598af89 Compare October 4, 2025 10:39
@renovate renovate Bot force-pushed the renovate/jint-4.x branch 5 times, most recently from a6ec4c6 to e0a0187 Compare October 8, 2025 05:28
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Oct 8, 2025

@renovate renovate Bot force-pushed the renovate/jint-4.x branch from e0a0187 to 36448f5 Compare November 9, 2025 22:10
@renovate renovate Bot force-pushed the renovate/jint-4.x branch 15 times, most recently from ddb63cc to d126091 Compare December 5, 2025 16:36
@sonarqubecloud
Copy link
Copy Markdown

@sonarqubecloud
Copy link
Copy Markdown

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