Skip to content

ABI: implement private Object keys and values #188

Description

@chrisbbreuer

Parents: #163, #164
Depends on: #178, #180, #181

Implement the shared private Object.keys/Object.values boundary.

Acceptance:

  • Export exact JSC__JSValue__keys and JSC__JSValue__values signatures.
  • Apply ToObject in the selected realm, including string/number/boolean primitives, and publish nullish or foreign-VM failures through the shared pending-exception slot.
  • Return fresh selected-realm arrays of own enumerable string keys/values in ECMAScript property order; exclude symbols and non-enumerable properties.
  • Preserve UTF-16 string-wrapper index behavior, including astral and lone-surrogate strings.
  • Make keys observe proxy ownKeys/getOwnPropertyDescriptor behavior without reading property values.
  • Make values re-check enumerability and perform Get in order, invoking accessors/proxy traps exactly once and publishing thrown values without replacing an existing exception.
  • Accept same-VM sibling values and reject foreign-VM cells.
  • Refresh Home/Bun inventories and README/API documentation without changing public/extension counts.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions