Update test262 to 673e9bac and fix newly-revealed issues#2473
Merged
Conversation
lahma
enabled auto-merge (squash)
May 14, 2026 08:55
Bumps the test262 suite to commit 673e9bac, which brings stage-4 spec updates for the immutable-arraybuffer proposal and a stricter ArrayBuffer.prototype.sliceToImmutable algorithm. Twelve test cases now pass with the following fixes: - ArrayBufferPrototype.SliceToImmutable: rewrite to the new spec algorithm. first/final are still computed from the original len, but the detach check now precedes the bounds check and a RangeError is thrown when the buffer has shrunk below final during coercion. - TypeConverter.ToNumber(string): guard against empty input after TrimEx. The pre-trim IsNullOrWhiteSpace check misses BOM and other characters that the spec-compliant TrimEx removes, which previously caused an IndexOutOfRangeException on the whitespace-padded empty string used by the new argument-coercion.js test. - Uint8Array.prototype.setFromBase64 / setFromHex: assert the viewed buffer is not immutable before writing, per the new spec step. - %TypedArray%.from / .of: assert the buffer of a custom constructor's result is not immutable before populating it (the "write" mutability intent in TypedArrayCreateFromConstructor). - TypedArrayConstructor.IterableToList: pass the already-fetched iterator method through to GetIterator instead of re-reading Symbol.iterator on the source. Also fixes a CI-host crash on PR sebastienros#2427: a FinalizationRegistry cleanup callback can throw arbitrary exceptions (e.g. TimeoutException when engine constraints trip), and they were escaping the GC finalizer thread and aborting the entire test process. The callback invocation is now wrapped in a swallow-all try/catch, matching the spec's intent that these callbacks run in an isolated Job. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lahma
force-pushed
the
test262-update-2026-05-14
branch
from
May 14, 2026 08:56
4abc6cc to
7e0a990
Compare
This was referenced May 18, 2026
This was referenced Jun 4, 2026
This was referenced Jun 29, 2026
This was referenced Jul 7, 2026
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.
Summary
Bumps the Test262 suite hash from
2b2eceadto673e9bac, which brings stage-4 spec updates for the immutable-arraybuffer proposal and a stricterArrayBuffer.prototype.sliceToImmutablealgorithm. Twelve previously failing test cases now pass:built-ins/ArrayBuffer/prototype/sliceToImmutable/this-shrinks.jsbuilt-ins/ArrayBuffer/prototype/sliceToImmutable/argument-coercion.jsbuilt-ins/TypedArrayConstructors/from/custom-ctor-returns-immutable-arraybuffer.jsbuilt-ins/TypedArrayConstructors/of/custom-ctor-returns-immutable-arraybuffer.jsbuilt-ins/Uint8Array/prototype/setFromBase64/throws-when-target-is-backed-by-immutable-arraybuffer.jsbuilt-ins/Uint8Array/prototype/setFromHex/throws-when-target-is-backed-by-immutable-arraybuffer.jsFixes
ArrayBufferPrototype.SliceToImmutablerewritten to the latest spec.first/finalare still computed from the originallen, but the detach check now precedes the bounds check, and aRangeErroris thrown when the buffer has shrunk belowfinalduring argument coercion.TypeConverter.ToNumber(string)guards against empty input afterTrimEx. The pre-trimstring.IsNullOrWhiteSpacecheck misses BOM () and other characters that the spec-compliantTrimExremoves — this previously caused anIndexOutOfRangeExceptionon whitespace-padded empty strings (the newargument-coercion.jsreaches that path).Uint8Array.prototype.setFromBase64/setFromHexcallAssertNotImmutable()on the viewed buffer before writing, per the new spec step.%TypedArray%.from/.ofcallAssertNotImmutable()on a custom constructor's result before populating it (thewritemutability intent inTypedArrayCreateFromConstructor).TypedArrayConstructor.IterableToListnow passes the already-fetched iterator method through toGetIteratorinstead of re-readingSymbol.iteratoron the source.CI host crash fix
A
FinalizationRegistrycleanup callback can throw arbitrary exceptions (e.g.TimeoutExceptionwhen engine constraints trip), and they were escaping the GC finalizer thread and aborting the whole test process — visible on this run. The callback invocation is now wrapped in a swallow-alltry/catch, matching the spec's intent that these callbacks run in an isolated Job.Test plan
Jint.Testsgreen (2885 passed).Jint.Tests.PublicInterfacegreen (79 passed).Jint.Tests.CommonScriptsgreen (28 passed).🤖 Generated with Claude Code