Skip to content

Update dependency Jint to 4.16.1 - #1192

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

Update dependency Jint to 4.16.1#1192
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/jint-4.x

Conversation

@renovate

@renovate renovate Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
Jint 4.16.04.16.1 age confidence

Release Notes

sebastienros/jint (Jint)

v4.16.1: 4.16.1

Jint 4.16.1 is the first release from the new 4.x maintenance branch, and it marks the point where the two lines separate: main is now 5.0.0 development, and 4.x is where the 4.16.x line continues.

What that means for you. If you are on 4.16.0, this is a drop-in update — it is correctness and conformance work only, no API change and no changed default. Every public signature is the same one 4.16.0 shipped, on all five target frameworks. If you want the 4.x line, take it from 4.x and expect fixes rather than features. If you want to follow where the engine is going, watch main — v5 brings breaking API changes, an opt-in WHATWG web API surface, Web Workers, Node compatibility and a raised .NET Framework floor, and every one of them is recorded as it lands in docs/v5-migration.md.

From this release onward the 4.x public surface is snapshotted per target framework in Jint.Tests.PublicInterface/Verify/, so "did the API move?" is a diff rather than a judgement call — on this branch a diff there is a bug, and comparing those files against main's is the v4→v5 delta.

Highlights

Conformance, from a suite that now runs more of test262. The staging/ directory is generated and executed for the first time (#​3016), which is roughly 2,800 additional cases — largely SpiderMonkey's own suite contributed upstream, covering behaviour the stable directories never reach. Much of the work below is what it found.

Built-ins do what the spec says, step by step. The array built-ins perform the internal methods they name rather than equivalents (#​3066); Array.from honours IsConstructor and a typed array's length write throws (#​3043); an array truncation walks downwards and the generics report the writes they fail (#​3072); argument validation and evaluation order are corrected in five built-ins (#​3069); Map and Set get the [[SetData]] tombstone their traversals are specified over (#​3073); Date.prototype.setTime stores the clipped time value (#​3042); and Array.prototype.values/keys/entries no longer gate on an array-like receiver (#​3236).

Iterators and control flow. A throw from the iterator step no longer closes the iterator (#​3047); the done flag is consulted before stepping again (#​3048); a rejected return() propagates out of an abandoned for await loop (#​3113); an optional-chain short circuit is distinguished from a genuine undefined (#​3040); a computed property key is evaluated even when spelled as a literal (#​3039) and survives an await or yield intact (#​3144, #​3150); and destructuring the rest of an exhausted array yields an empty array rather than 2³² elements (#​3263).

Numeric and string accuracy. Math.acosh, asinh, atanh, cbrt, expm1 and log1p are ported from fdlibm for correctly-rounded results across every target framework (#​3050); toFixed formats from the double's exact value and reads this from [[NumberData]] (#​3071); String.prototype case conversion derives from Jint's own Unicode tables rather than the host's culture data (#​3068); and the regex engine is chosen per subject, with RegExp.prototype.replace no longer rewriting lastIndex (#​3070).

Bounds that hold. JavaScript strings have a maximum length instead of a wrapped array rent (#​3015); a JSON document too long to become a string is refused while it is being built (#​3028); a frame displaced by a proper tail call keeps counting while its trampoline runs, so MaxRecursionDepth cannot be evaded by leaving and re-entering the trampoline (#​3022); and an Atomics waiter is released when nothing can ever notify it again (#​3029).

Error messages no longer run user JavaScript (#​3041) — rendering a message for a value with a script-supplied toString used to invoke it, from inside the failure path.

Internationalization. The five Temporal members the proposal removed are dropped (#​3014), and u-extension options are canonicalized with every date format the spec allows (#​3018).

Two fixes in this release come from @​svenrog — a sloppy function answering its own arguments (#​3061) and the outer link on a parked Function-constructor environment (#​3063).

What's Changed

  • Drop the five Temporal members the proposal removed by @​lahma in #​3014
  • Canonicalize u-extension options and format every date the spec allows by @​lahma in #​3018
  • Mark a global created by an unresolvable assignment, and stop a waitAsync timeout outliving its engine by @​lahma in #​3019
  • Run test262's staging/ directory too by @​lahma in #​3016
  • Give JavaScript strings a maximum length instead of a wrapped array rent by @​lahma in #​3015
  • Let a for-of frame decline the unwind it can only rethrow by @​lahma in #​3017
  • Keep counting a frame a tail call replaced while its trampoline runs by @​lahma in #​3022
  • Unpark staging/Temporal/removed-methods.js, which #​3014 already fixed by @​lahma in #​3023
  • Drop the Islamic date conversions no calendar path reaches by @​lahma in #​3027
  • Let an Atomics waiter go when nothing can ever notify it again by @​lahma in #​3029
  • Refuse a JSON document too long to be a string while it is being built by @​lahma in #​3028
  • Bump the microsoft group with 3 updates by @​dependabot[bot] in #​3033
  • Bump the analyzers group with 1 update by @​dependabot[bot] in #​3031
  • Add initial threat model for untrusted scripts by @​sebastienros in #​3030
  • Stop ClassBenchmark rebuilding its engine per iteration by @​lahma in #​3053
  • createRealm installs a full $262 on the new realm and returns it by @​lahma in #​3044
  • Give the benchmark suite a measurement environment by @​lahma in #​3055
  • Evaluate a computed property key even when it is spelled as a literal by @​lahma in #​3039
  • Stop error messages from running user JavaScript by @​lahma in #​3041
  • Array.from honours IsConstructor, and a typed array's length write throws by @​lahma in #​3043
  • Consult the iterator's done flag before stepping it again by @​lahma in #​3048
  • Date.prototype.setTime must store the clipped time value by @​lahma in #​3042
  • Answer a sloppy function's own arguments instead of throwing by @​svenrog in #​3061
  • Keep the outer link on a parked Function-constructor environment by @​svenrog in #​3063
  • A throw from the iterator step must not close the iterator by @​lahma in #​3047
  • Attribute a cross-realm built-in's errors and result arrays to its own realm by @​lahma in #​3049
  • Distinguish an optional-chain short circuit from a genuine undefined by @​lahma in #​3040
  • Update every package the solution can update, and adapt to xUnit v4 by @​lahma in #​3064
  • Port fdlibm for acosh, asinh, atanh, cbrt, expm1 and log1p by @​lahma in #​3050
  • Separate the permanently declined test262 exclusions from the temporary ones by @​lahma in #​3065
  • Honor the receiver in an arguments object's [[Set]] and rebind a body var over a parameter by @​lahma in #​3067
  • Walk an array truncation downwards, and report the writes the generics fail by @​lahma in #​3072
  • Choose the regex engine per subject, and stop RegExp replace from rewriting lastIndex by @​lahma in #​3070
  • Format toFixed from the double's exact value and read this from [[NumberData]] by @​lahma in #​3071
  • Derive String.prototype case conversion from Jint's own Unicode tables by @​lahma in #​3068
  • Write Annex B's block-function var alias when the declaration is evaluated by @​lahma in #​3076
  • Settle a source-phase dynamic import with the module's [[ModuleSource]] by @​lahma in #​3074
  • Warm the stack-guard recovery test before it measures depth by @​lahma in #​3080
  • Maintenance: give the 4.x branch its CI, its version and its row in the README by @​lahma in #​3291
  • Backport fifteen correctness and conformance fixes for 4.16.1 by @​lahma in #​3298
  • Public API: record 4.x's shipped surface, so the v4 to v5 delta is a diff by @​lahma in #​3306

Full Changelog: sebastienros/jint@v4.16.0...v4.16.1


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

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

Rebasing: Whenever PR becomes conflicted, 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 requested a review from a team as a code owner August 23, 2026 13:44
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