Skip to content

test262 built-ins/Object — 37 (self-contained worklist) #5901

Closed

Description

@proggeramlug

Self-contained worklist — 37 failing. Snapshot 2026-07-03 full sweep (perry 0.5.1218, node v26.3.0). Everything you need is in this issue; no history to read, no re-measure to start.

Object ToObject boxing, assign source-prop error propagation, descriptor edge cases, seal/freeze + proxy. Overlaps #3986. Crate: perry-runtime (object).

Setup (any box)

git clone https://github.com/PerryTS/perry && cd perry
cargo build --release -p perry -p perry-runtime-static -p perry-stdlib-static
git clone --depth 1 https://github.com/tc39/test262 vendor/test262   # checkout test-compat/test262/pinned-sha.txt
# node on PATH (differential oracle). See test-compat/test262/README.md.

Measure/verify: scripts/test262_subset.py --root vendor/test262 --dir built-ins/Object --jobs 8 (the .failures.txt sidecar lists failures; diff before/after for zero-regression).

Failure reasons

n reason
10 (no output)
5 Uncaught exception: Expected a TypeError to be thrown b
3 [perry] dynamic Function refused (AOT) — 0 arg(s); body
2 Uncaught exception: result !== true
2 Uncaught exception: hasProperty !== true
2 Uncaught exception: Expected true but got false
1 Uncaught exception: Actual [1, 2, 3] and expected [1, 2
1 Uncaught exception: Actual [0, foo] and expected [0, fo
1 Uncaught exception: Expected SameValue(«undefined», «10
1 Uncaught exception: arrObj.hasOwnProperty("prop") Expec
1 Uncaught exception: Expected SameValue(«undefined», «"d
1 Uncaught exception: this.prop should take precedence ov

All 37 failing cases (path — reason)

built-ins/Object/assign/target-Array.js    Uncaught exception: Actual [1, 2, 3] and expected [1, 2] should have the same co
built-ins/Object/create/15.2.3.5-4-15.js    Uncaught exception: result !== true
built-ins/Object/create/properties-arg-to-object-non-empty-string.js    Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Object/defineProperties/15.2.3.7-2-16.js    Uncaught exception: result !== true
built-ins/Object/defineProperties/15.2.3.7-6-a-150.js    (no output)
built-ins/Object/defineProperties/15.2.3.7-6-a-151.js    (no output)
built-ins/Object/defineProperties/15.2.3.7-6-a-17.js    Uncaught exception: hasProperty !== true
built-ins/Object/defineProperties/15.2.3.7-6-a-20.js    Uncaught exception: hasProperty !== true
built-ins/Object/defineProperties/proxy-no-ownkeys-returned-keys-order.js    Uncaught exception: Actual [0, foo] and expected [0, foo, Symbol()] should have 
built-ins/Object/defineProperty/15.2.3.6-4-116.js    (no output)
built-ins/Object/defineProperty/15.2.3.6-4-154.js    (no output)
built-ins/Object/defineProperty/15.2.3.6-4-155.js    (no output)
built-ins/Object/defineProperty/15.2.3.6-4-243-2.js    Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Object/defineProperty/15.2.3.6-4-410.js    Uncaught exception: Expected SameValue(«undefined», «1001») to be true
built-ins/Object/defineProperty/15.2.3.6-4-579.js    Uncaught exception: arrObj.hasOwnProperty("prop") Expected SameValue(«true», «fa
built-ins/Object/defineProperty/15.2.3.6-4-586.js    Uncaught exception: Expected SameValue(«undefined», «"data"») to be true
built-ins/Object/defineProperty/15.2.3.6-4-625gs.js    Uncaught exception: this.prop should take precedence over Object.prototype.prop
built-ins/Object/defineProperty/symbol-data-property-default-strict.js    Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Object/entries/observable-operations.js    (no output)
built-ins/Object/freeze/frozen-object-contains-symbol-properties-strict.js    Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Object/getOwnPropertyDescriptors/observable-operations.js    Uncaught exception: log Expected SameValue(«"|ownKeys|getOwnPropertyDescriptor:a
built-ins/Object/getOwnPropertySymbols/order-after-define-property.js    Uncaught exception: Actual [Symbol(b), Symbol(a)] and expected [Symbol(a), Symbo
built-ins/Object/internals/DefineOwnProperty/consistent-writable-regexp-dollar1.js    TypeError: Cannot read properties of undefined (reading 'writable')
built-ins/Object/isExtensible/15.2.3.13-2-13.js    Uncaught exception: e Expected SameValue(«false», «true») to be true
built-ins/Object/preventExtensions/15.2.3.10-3-13.js    Uncaught exception: Expected true but got false
built-ins/Object/preventExtensions/15.2.3.10-3-3.js    Uncaught exception: Expected true but got false
built-ins/Object/preventExtensions/symbol-object-contains-symbol-properties-strict.js    Uncaught exception: Expected a TypeError to be thrown but no exception was throw
built-ins/Object/prototype/S15.2.4_A1_T2.js    Uncaught exception: The result of evaluating (e instanceof TypeError) is expecte
built-ins/Object/prototype/S15.2.4_A4.js    Uncaught exception: `new Object.prototype` throws a TypeError exception Expected
built-ins/Object/prototype/isPrototypeOf/arg-is-proxy.js    (no output)
built-ins/Object/prototype/toLocaleString/S15.2.4.3_A1.js    (no output)
built-ins/Object/prototype/toLocaleString/primitive_this_value_getter.js    Uncaught exception: Expected SameValue(«"object"», «"boolean"») to be true
built-ins/Object/seal/seal-arrowfunction.js    [perry] dynamic Function refused (AOT) — 0 arg(s); body[..160]=""
built-ins/Object/seal/seal-asyncarrowfunction.js    [perry] dynamic Function refused (AOT) — 0 arg(s); body[..160]=""
built-ins/Object/seal/seal-asyncfunction.js    [perry] dynamic Function refused (AOT) — 0 arg(s); body[..160]=""
built-ins/Object/values/observable-operations.js    (no output)
built-ins/Object/values/order-after-define-property.js    (no output)

Workflow

Pick a coherent single-root subcluster, localize (cargo run --release -- f.ts --trace hir --focus <fn> / --trace llvm), fix, verify listed cases pass AND re-run the slice for zero regressions. Code-only PR (no Cargo.toml/Cargo.lock version bump, no CLAUDE.md Current-Version, no CHANGELOG — maintainer folds metadata). cargo fmt --all -- --check + bash scripts/check_file_size.sh must pass (files < 2000 lines). Reference this issue. Never reference internal infrastructure hostnames.

Activity

  1. added
    parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
    on Jul 3, 2026
  2. added 2 commits that reference this issue on Jul 4, 2026
  3. proggeramlug commented on Aug 11, 2026

    @proggeramlug
    ContributorAuthor

    Re-measured on main @ db44b31b7 with the pinned test262 (4249661388e5), using this issue's own command:

    scripts/test262_subset.py --root vendor/test262 --dir built-ins/Object --jobs 8
    

    37 → 25. The snapshot in this issue is from perry 0.5.1218 (2026-07-03); main is 0.5.1461, and the worklist has drifted in both directions.

    snapshot now
    failing 37 25
    passing — 3148
    compile-fail — 0
    diff (wrong output vs node) — 0
    parity — 99.2%

    Worth noting all 25 are runtime-fail: nothing in this subtree fails to compile, and nothing produces silently-wrong output against the node oracle.

    Fixed since the snapshot — 14, strike these from the worklist

    built-ins/Object/assign/target-Array.js
    built-ins/Object/defineProperty/symbol-data-property-default-strict.js
    built-ins/Object/entries/observable-operations.js
    built-ins/Object/freeze/frozen-object-contains-symbol-properties-strict.js
    built-ins/Object/getOwnPropertyDescriptors/observable-operations.js
    built-ins/Object/getOwnPropertySymbols/order-after-define-property.js
    built-ins/Object/isExtensible/15.2.3.13-2-13.js
    built-ins/Object/preventExtensions/15.2.3.10-3-13.js
    built-ins/Object/preventExtensions/15.2.3.10-3-3.js
    built-ins/Object/seal/seal-arrowfunction.js
    built-ins/Object/seal/seal-asyncarrowfunction.js
    built-ins/Object/seal/seal-asyncfunction.js
    built-ins/Object/values/observable-operations.js
    built-ins/Object/values/order-after-define-property.js
    

    The clusters that closed are coherent rather than scattered: the three seal/seal-*function cases, the four observable-operations / order-after-define-property cases, and both preventExtensions/15.2.3.10-3-* cases. That is consistent with unrelated work on property-enumeration order and function-object sealing rather than with anyone working this list.

    Appeared since the snapshot — 2, add these

    built-ins/Object/defineProperty/15.2.3.6-4-585.js
    built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-32.js
    

    The remaining 25

    built-ins/Object/create/15.2.3.5-4-15.js
    built-ins/Object/create/properties-arg-to-object-non-empty-string.js
    built-ins/Object/defineProperties/15.2.3.7-2-16.js
    built-ins/Object/defineProperties/15.2.3.7-6-a-150.js
    built-ins/Object/defineProperties/15.2.3.7-6-a-151.js
    built-ins/Object/defineProperties/15.2.3.7-6-a-17.js
    built-ins/Object/defineProperties/15.2.3.7-6-a-20.js
    built-ins/Object/defineProperties/proxy-no-ownkeys-returned-keys-order.js
    built-ins/Object/defineProperty/15.2.3.6-4-116.js
    built-ins/Object/defineProperty/15.2.3.6-4-154.js
    built-ins/Object/defineProperty/15.2.3.6-4-155.js
    built-ins/Object/defineProperty/15.2.3.6-4-243-2.js
    built-ins/Object/defineProperty/15.2.3.6-4-410.js
    built-ins/Object/defineProperty/15.2.3.6-4-579.js
    built-ins/Object/defineProperty/15.2.3.6-4-585.js
    built-ins/Object/defineProperty/15.2.3.6-4-586.js
    built-ins/Object/defineProperty/15.2.3.6-4-625gs.js
    built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-2-32.js
    built-ins/Object/internals/DefineOwnProperty/consistent-writable-regexp-dollar1.js
    built-ins/Object/preventExtensions/symbol-object-contains-symbol-properties-strict.js
    built-ins/Object/prototype/isPrototypeOf/arg-is-proxy.js
    built-ins/Object/prototype/S15.2.4_A1_T2.js
    built-ins/Object/prototype/S15.2.4_A4.js
    built-ins/Object/prototype/toLocaleString/primitive_this_value_getter.js
    built-ins/Object/prototype/toLocaleString/S15.2.4.3_A1.js
    

    Still concentrated where the issue said: defineProperty (9) and defineProperties (5) are 14 of the 25, with create (2), prototype (2), toLocaleString (2), and one each in getOwnPropertyDescriptor, internals/DefineOwnProperty, preventExtensions, isPrototypeOf.

    Not closing — 25 real failures remain. Posting so the next person starts from the current list instead of chasing 14 tests that already pass. The sidecar (test-compat/test262/report.failures.txt) carries a one-line reason per test, which is the fastest way in.

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