Drop the five Temporal members the proposal removed - #3014
Merged
Conversation
`Temporal.PlainDateTime.prototype.withPlainDate`, and `epochSeconds`, `epochMicroseconds`, `toPlainYearMonth` and `toPlainMonthDay` on `Temporal.ZonedDateTime.prototype`, went out with the same June 2024 removals that took the `Temporal.Now` methods dropped in sebastienros#2996. Neither prototype object lists them any more (https://tc39.es/proposal-temporal/#sec-properties-of-the-temporal-plaindatetime-prototype-object, https://tc39.es/proposal-temporal/#sec-properties-of-the-temporal-zoneddatetime-prototype-object), and without them both objects match the proposal's property list exactly: 39 names on `PlainDateTime.prototype`, 49 on `ZonedDateTime.prototype`. Nothing is orphaned this time. `FloorDivide` sits between the two removed accessors and still serves `epochMilliseconds`, and `ToTemporalDate` plus the `IsoDate` overloads of `PlainYearMonthConstructor.Construct` and `PlainMonthDayConstructor.Construct` all keep other callers. test262 needed no exclusion: all five directories are already gone at the pinned SHA, and the one place the suite asserts their absence is `staging/Temporal/removed-methods.js`, which Jint's harness does not generate. `TemporalRemovedMembersTests` pins both property lists instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
lahma
force-pushed
the
fix/temporal-removed-members
branch
from
August 14, 2026 07:59
40ebde2 to
46e16cd
Compare
This was referenced Aug 14, 2026
lahma
added a commit
to lahma/jint
that referenced
this pull request
Aug 15, 2026
…lready fixed comment saying the fix for sebastienros#3010 removes the entry. That fix merged first (sebastienros#3014, 2026-08-14), sebastienros#3016 merged after it, and nothing went back to delete the now-stale exclusion - so a test that passes has been skipped ever since. It asserts the absence of 28 members the Temporal proposal removed, five of which sebastienros#3014 dropped and the rest of which Jint never had. Both modes pass: Passed Temporal("staging/Temporal/removed-methods.js",False) Passed Temporal("staging/Temporal/removed-methods.js",True) Full suite with the entry gone: 102,324 passed, 0 failed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
lahma
added a commit
that referenced
this pull request
Aug 15, 2026
…#3023) comment saying the fix for #3010 removes the entry. That fix merged first (#3014, 2026-08-14), #3016 merged after it, and nothing went back to delete the now-stale exclusion - so a test that passes has been skipped ever since. It asserts the absence of 28 members the Temporal proposal removed, five of which #3014 dropped and the rest of which Jint never had. Both modes pass: Passed Temporal("staging/Temporal/removed-methods.js",False) Passed Temporal("staging/Temporal/removed-methods.js",True) Full suite with the entry gone: 102,324 passed, 0 failed. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.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.
#2996 dropped the
Temporal.Nowmethods the proposal removed. Five more members from the same June 2024 removals were still exposed; this takes them out.Temporal.PlainDateTime.prototype.withPlainDateTemporal.ZonedDateTime.prototype.epochSecondsTemporal.ZonedDateTime.prototype.epochMicrosecondsTemporal.ZonedDateTime.prototype.toPlainYearMonthTemporal.ZonedDateTime.prototype.toPlainMonthDayNone of them appears in the live proposal. Properties of the Temporal.PlainDateTime Prototype Object lists 22 accessors and 17 methods,
withPlainTimeamong them and nowithPlainDate. Properties of the Temporal.ZonedDateTime Prototype Object lists 28 accessors and 21 methods, withepochMillisecondsandepochNanosecondsthe only two epoch accessors andtoPlainDate/toPlainTime/toPlainDateTimethe only threetoPlain*methods. With the five gone,Object.getOwnPropertyNamesreports 39 names onPlainDateTime.prototypeand 49 onZonedDateTime.prototype, matching those lists name for name.This is breaking for anyone calling them, which is why it lands early in the 4.16 cycle rather than late. The replacements are what the proposal points at:
pdt.withPlainDate(d)becomesd.toPlainDateTime(pdt.toPlainTime()),zdt.epochSecondsbecomeszdt.epochMilliseconds / 1000(floored) orzdt.epochNanoseconds / 1_000_000_000n,zdt.epochMicrosecondsbecomeszdt.epochNanoseconds / 1000n, andzdt.toPlainYearMonth()/zdt.toPlainMonthDay()becomezdt.toPlainDate().toPlainYearMonth()/zdt.toPlainDate().toPlainMonthDay(), both of whichPlainDate.prototypekeeps.Nothing is orphaned.
FloorDividesits between the two removed accessors and still servesepochMilliseconds, so the deletion is not one contiguous block.ToTemporalDate, and theIsoDateoverloads ofPlainYearMonthConstructor.ConstructandPlainMonthDayConstructor.Construct, all keep other callers. Deleting the attributed method is the whole edit —Jint.SourceGenerators/ObjectGeneratoremits the property table and computes theBuiltinShape.Buildercapacity from the attributes, so the regenerated shapes went to 39 and 49 on their own with no hand-written count to decrement.test262
No exclusion was needed. At the pinned SHA (
3655e7464de3d52643ecddd4b5f9f4f3e7f62398) all five test directories are already gone upstream —built-ins/Temporal/PlainDateTime/prototype/withPlainDate, andbuilt-ins/Temporal/ZonedDateTime/prototype/{epochSeconds,epochMicroseconds,toPlainYearMonth,toPlainMonthDay}. Nothing else inbuilt-ins/orintl402/reaches these members; the remainingtoPlainYearMonth/toPlainMonthDayhits are all onPlainDate.prototype, which keeps them. The only place the suite asserts their absence isstaging/Temporal/removed-methods.js, and Jint's harness generatesannexB,built-ins,intl402andlanguageonly — so, exactly as in #2996, nothing in the suite was holding the line.TemporalRemovedMembersTestspins both full property lists instead, and cites that staging file.Pre-fix failure
The test was written first and run against the unfixed engine. 7 of its 8 cases failed; the eighth is the survivors control, which passes either way:
Verification
Release, freshly built, all green:
dotnet build -c ReleaseJint.Testsnet10.0Jint.Testsnet472Jint.Tests.PublicInterfacenet10.0Jint.Tests.PublicInterfacenet472Jint.Tests.Test262Closes #3010
🤖 Generated with Claude Code