Skip to content

test262 built-ins/Promise — 38 fails (all/allSettled capability + then-iteration) #5590

Closed

Description

@proggeramlug

Current state — 38 failing. Snapshot from the 2026-06-29 full sweep (perry 0.5.1208, node v26.3.0). Supersedes the original body; the complete current failing-test list is inline below — no re-run needed to start.

Promise.all/allSettled capability records with a custom/subclassed constructor + then-iteration ordering. (Real class X extends Promise subclass support is the largest remaining piece.)

Failure reasons

n reason
5 TypeError: Bind must be called on a function
4 (no output)
3 TypeError: Promise resolve or reject function is not callable
3 Test262:AsyncTestFailure:Test262Error: Test262Error: Expected SameValu
3 Uncaught exception: Expected a Test262Error to be thrown but no except
3 Uncaught exception: Expected a TypeError to be thrown but no exception
2 Perry ran clean; Node rejected (missed negative)
2 TypeError: value is not a function
1 Test262:AsyncTestFailure:Test262Error: The promise should be rejected,
1 Uncaught exception: symbol Expected SameValue(«0», «1») to be true
1 Uncaught exception: null Expected a TypeError to be thrown but no exce
1 Uncaught exception: Expected the 'finally' method on a Promise to be '

All 38 failing tests (path — reason)

full list — click to expand
built-ins/Promise/all/ctx-ctor.js    TypeError: Promise resolve or reject function is not callable
built-ins/Promise/all/does-not-invoke-array-setters.js    Perry ran clean; Node rejected (missed negative)
built-ins/Promise/all/invoke-resolve-on-promises-every-iteration-of-custom.js    TypeError: Bind must be called on a function
built-ins/Promise/allSettled/ctx-ctor.js    TypeError: Promise resolve or reject function is not callable
built-ins/Promise/allSettled/does-not-invoke-array-setters.js    Perry ran clean; Node rejected (missed negative)
built-ins/Promise/allSettled/invoke-resolve-on-promises-every-iteration-of-custom.js    TypeError: Bind must be called on a function
built-ins/Promise/allSettled/iter-arg-is-poisoned.js    Test262:AsyncTestFailure:Test262Error: The promise should be rejected, but was resolved
built-ins/Promise/any/invoke-resolve-on-promises-every-iteration-of-custom.js    TypeError: Bind must be called on a function
built-ins/Promise/any/invoke-resolve-on-values-every-iteration-of-custom.js    TypeError: Bind must be called on a function
built-ins/Promise/any/iter-arg-is-poisoned.js    Test262:AsyncTestFailure:Test262Error: Test262Error: Expected SameValue(«AggregateError», 
built-ins/Promise/prototype/catch/this-value-obj-coercible.js    Uncaught exception: symbol Expected SameValue(«0», «1») to be true
built-ins/Promise/prototype/catch/this-value-then-not-callable.js    Uncaught exception: null Expected a TypeError to be thrown but no exception was thrown at 
built-ins/Promise/prototype/finally/is-a-method.js    Uncaught exception: Expected the `finally` method on a Promise to be `Promise.prototype.fi
built-ins/Promise/prototype/finally/rejected-observable-then-calls-PromiseResolve.js    (no output)
built-ins/Promise/prototype/finally/rejected-observable-then-calls.js    Test262:AsyncTestFailure:Test262Error: Test262Error: Expected SameValue(«3», «5») to be tr
built-ins/Promise/prototype/finally/resolved-observable-then-calls-PromiseResolve.js    (no output)
built-ins/Promise/prototype/finally/resolved-observable-then-calls.js    Test262:AsyncTestFailure:Test262Error: Test262Error: Expected SameValue(«3», «5») to be tr
built-ins/Promise/prototype/finally/species-constructor.js    TypeError: value is not a function
built-ins/Promise/prototype/finally/subclass-reject-count.js    (no output)
built-ins/Promise/prototype/finally/subclass-resolve-count.js    (no output)
built-ins/Promise/prototype/finally/this-value-proxy.js    TypeError: Promise.prototype.finally called on non-object
built-ins/Promise/prototype/finally/this-value-then-not-callable.js    Uncaught exception: undefined Expected a TypeError to be thrown but no exception was throw
built-ins/Promise/prototype/finally/this-value-then-poisoned.js    Uncaught exception: Expected a Test262Error to be thrown but no exception was thrown at al
built-ins/Promise/prototype/finally/this-value-then-throws.js    Uncaught exception: Expected a Test262Error to be thrown but no exception was thrown at al
built-ins/Promise/prototype/then/S25.4.5.3_A2.1_T1.js    Uncaught exception: Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Promise/prototype/then/S25.4.5.3_A4.1_T1.js    Test262:AsyncTestFailure:TypeError: value is not a function
built-ins/Promise/prototype/then/S25.4.5.3_A4.1_T2.js    Test262:AsyncTestFailure:Test262Error: Test262Error: The value of result is expected to eq
built-ins/Promise/prototype/then/capability-executor-called-twice.js    TypeError: value is not a function
built-ins/Promise/prototype/then/capability-executor-not-callable.js    Uncaught exception: executor not called at all Expected SameValue(«""», «"a"») to be true
built-ins/Promise/prototype/then/ctor-access-count.js    Test262:AsyncTestFailure:Test262Error: Expected constructor access count: 1. Actual: 0
built-ins/Promise/prototype/then/ctor-null.js    Uncaught exception: Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Promise/prototype/then/ctor-poisoned.js    Uncaught exception: Expected a Test262Error to be thrown but no exception was thrown at al
built-ins/Promise/prototype/then/deferred-is-resolved-value.js    Uncaught exception: then() returns object Expected SameValue(«1», «[object Object]») to be
built-ins/Promise/race/ctx-ctor.js    TypeError: Promise resolve or reject function is not callable
built-ins/Promise/race/invoke-resolve-on-promises-every-iteration-of-custom.js    TypeError: Bind must be called on a function
built-ins/Promise/resolve/ctx-ctor.js    TypeError: Promise.resolve called on non-object
built-ins/Promise/resolve/resolve-prms-cstm-then.js    Uncaught exception: Expected SameValue(«undefined», «[object Object]») to be true
built-ins/Promise/undefined-newtarget.js    Uncaught exception: Expected a TypeError to be thrown but no exception was thrown at all

Reproduce

scripts/test262_subset.py --root vendor/test262 --dir built-ins/Promise --jobs 6

Each path is under vendor/test262/test/; assemble harness + case per test-compat/test262/README.md to run one under perry compile.

Activity

  1. added
    parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
    on Jun 23, 2026
  2. changed the title [-]test262 built-ins/Promise (60) — resolve/reject callability, Promise.all/allSettled context, then-iteration[/-] [+]test262 built-ins/Promise — 58 fails (all/allSettled capability + then-iteration)[/+] on Jun 27, 2026
  3. proggeramlug commented on Jun 28, 2026

    @proggeramlug
    ContributorAuthor

    Cloud worker → PR #5748 (code-only, perry-runtime, +45/-3). Fixed the custom-then subcluster — a native Promise carrying a user-defined own then was ignored in (1) method-call dispatch (then/catch/finally were excluded from the own-expando override check, so combinators routed to the intrinsic js_promise_then) and (2) promise_resolve_assimilating (native fast-path bypassed the spec Get(resolution,"then")). built-ins/Promise 58 → 42 (+16), zero regressions. Remaining 42 are chiefly Promise-subclass support (class X extends Promise — super(executor) is a no-op today; drives ctx-ctor, subclass-*-count finally, and the Subclass.resolve.bind "Bind must be called on a function" cases) + prototype/finally/this-value-* and then/ctor-* validation.

  4. added 4 commits that reference this issue on Jun 28, 2026
  5. changed the title [-]test262 built-ins/Promise — 58 fails (all/allSettled capability + then-iteration)[/-] [+]test262 built-ins/Promise — 42 fails (all/allSettled capability + then-iteration)[/+] on Jun 28, 2026
  6. changed the title [-]test262 built-ins/Promise — 42 fails (all/allSettled capability + then-iteration)[/-] [+]test262 built-ins/Promise — 38 fails (all/allSettled capability + then-iteration)[/+] on Jun 28, 2026
  7. added a commit that references this issue on Jun 30, 2026
  8. proggeramlug commented on Jul 1, 2026

    @proggeramlug
    ContributorAuthor

    Superseded by self-contained per-area worklist tickets — each has the complete current failing-test list inline (2026-07-01 sweep), so an agent can open one and work immediately (no history, no re-measure):

    #5832 language/class · #5833 language-misc · #5834 built-ins-misc · #5835 intl-small · #5836 RegExp · #5837 NumberFormat · #5838 Array · #5839 Temporal · #5840 DateTimeFormat · #5841 eval-code · #5842 Object · #5843 String · #5844 Proxy · #5845 intl402-misc · #5846 Function · #5847 JSON · #5848 annexB-misc · #5849 Promise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions