Bump Jint from 4.16.0 to 4.16.2 - #369
Merged
Merged
Conversation
--- updated-dependencies: - dependency-name: Jint dependency-version: 4.16.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
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.16.0 to 4.16.2.
Release notes
Sourced from Jint's releases.
4.16.2
Jint 4.16.2 is a maintenance release from the
4.xbranch: correctness and conformance fixes backported frommain, and nothing that changes an existing API or an existing default. If you are on 4.16.1 it is a drop-in update — every public signature is the one 4.16.0 shipped, on all five target frameworks, and the per-framework snapshots inJint.Tests.PublicInterface/Verify/are unchanged.mainremains 5.0.0 development; what is coming there is recorded as it lands indocs/v5-migration.md.Highlights
Failures that used to end the process, or never end. A native error raised while a call's arguments are being evaluated is propagated instead of leaving an empty value behind, which on 4.16.1 could recurse until the process died —
decodeURIComponenton a malformed sequence was enough (#4009). Native recursion and the forwarding paths through bound functions and proxies are guarded so a deep native chain raises a catchable error (#4007). A module graph too deep to link raises an error the host can catch instead of overflowing the stack (#3548). Temporal and Intl parsing cannot throw an uncatchableRegexMatchTimeoutExceptionbecause the machine was busy (#3543), a Temporal difference past a calendar's range raisesRangeErrorinstead of spinning forever (#3555), and the process-wide Intl culture cache and Temporal zone cache are read-only and bounded, with a rejected zone no longer remembered — closing a script-driven unbounded growth (#3546).Generators and built-ins, step by step. A
yield*delegation reached again by a loop both re-delegates and keeps its place:countdown(3)in a loop no longer hangs, and a delegating generator no longer returns the memoized first result (#3545).Array.prototype.mapandslicehand a@@speciesconstructor the lengthToLengthproduced, and a non-callablemapargument is aTypeError(#3547). A trailing NUL pads neither a numeric string nor an array index (#3552). A removed property slot is a tombstone rather than a free slot to reuse, so enumeration order survives a delete-and-readd (#3318), andLengthOfArrayLikeno longer clamps through auintoverload (#3328).Interop that answers for the right engine. Two engines in one process no longer decide each other's conversions and operators (#3559), a host type converter's answer stays with the engine whose converter gave it (#3563), and a value the host registers on a
ShadowRealm— and the members its wrapper builds eagerly — belong to that realm (#3557). Realm construction state is restored after nesting or a failure (#4008). Overload selection is by the arguments in hand: an operator overload is chosen that way (#3611), aparamsoverload is chosen by the array's element type with a failing element declining rather than throwing (#3782), an overload the argument cannot bind to is not a match, and a host operator that throws reports what it threw (#3554). An index on a wrapped host collection is one property however it is spelled, and a member filter that hides the indexer hides it (#3562); a read-only host collection refuses a write with a JavaScriptTypeErrorrather than the CLR'sNotSupportedException(#3556).Internationalization and Temporal. The Persian calendar extends into proleptic years on its 33-year cycle, so the ends of Temporal's range land in the right Persian year (#4006); a calendar that counts Gregorian months writes their names (#3612); and a
-u-extension carrying more than one key is read whole (#3613).Errors. Only a string-valued
stackcounts as a pre-existing stack when aJavaScriptExceptionis built, so an accessor or non-stringstackon a thrown object no longer breaks error reporting (#3677, reported by @jeske).Every change was verified failing-first against the unfixed branch on both .NET Framework and .NET 10, and the release was gated on a paired SunSpider and Dromaeo comparison against 4.16.1 on an idle machine: no row regressed outside run-to-run noise, most run 1–4 % faster.
What's Changed
-u-extension carrying more than one key is read whole (backport of #3594) by @lahma in Intl: a-u-extension carrying more than one key is read whole (backport of #3594) sebastienros/jint#3613Full Changelog: sebastienros/jint@v4.16.1...v4.16.2
4.16.1
Jint 4.16.1 is the first release from the new
4.xmaintenance branch, and it marks the point where the two lines separate:mainis now 5.0.0 development, and4.xis 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.xand expect fixes rather than features. If you want to follow where the engine is going, watchmain— 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 indocs/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 againstmain'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.fromhonoursIsConstructorand a typed array'slengthwrite 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);MapandSetget the[[SetData]]tombstone their traversals are specified over (#3073);Date.prototype.setTimestores the clipped time value (#3042); andArray.prototype.values/keys/entriesno 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
doneflag is consulted before stepping again (#3048); a rejectedreturn()propagates out of an abandonedfor awaitloop (#3113); an optional-chain short circuit is distinguished from a genuineundefined(#3040); a computed property key is evaluated even when spelled as a literal (#3039) and survives anawaitoryieldintact (#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,expm1andlog1pare ported from fdlibm for correctly-rounded results across every target framework (#3050);toFixedformats from the double's exact value and readsthisfrom[[NumberData]](#3071);String.prototypecase conversion derives from Jint's own Unicode tables rather than the host's culture data (#3068); and the regex engine is chosen per subject, withRegExp.prototype.replaceno longer rewritinglastIndex(#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
MaxRecursionDepthcannot be evaded by leaving and re-entering the trampoline (#3022); and anAtomicswaiter 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
toStringused 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 parkedFunction-constructor environment (#3063).What's Changed
... (truncated)
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)