Skip to content

ABI: implement exact fast built-in property reads #204

Description

@chrisbbreuer

Parent

Scope

Implement the pinned side-effect-controlled property reads:

  • JSC__JSValue__fastGetDirect_
  • JSC__JSValue__fastGet
  • JSC__JSValue__fastGetOwn
  • Bun__JSObject__getCodePropertyVMInquiry (Bun core only)

Acceptance criteria

  • Pin all 24 BuiltinName byte values, including Symbol.asyncIterator, and reject out-of-range IDs safely.
  • fastGetDirect_ reads only direct own data storage and returns empty for absence/accessors without walking prototypes or invoking user code.
  • fastGetOwn performs exact GetOwnProperty slot resolution, including own accessors and Proxy descriptor behavior, and returns empty for absence/exception.
  • fastGet uses the existing Bun-compatible Object.prototype-cutoff lookup and returns deleted for absence, empty for exception, and present undefined unchanged.
  • Bun's code VM inquiry rejects null/proxy receivers, walks data properties without invoking accessors/custom hooks, and returns empty for absence or non-pure slots.
  • Focused coverage includes all 24 IDs, Symbol identity, direct/own/inherited distinctions, Object.prototype cutoff, accessors, proxies, present undefined, invalid IDs, sibling realms, foreign values, and first-exception preservation.
  • Inventories, README/API evidence, and parent trackers are regenerated from checked-in results.

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