FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Request for adding observable by nihil-pro · Pull Request #302 · WebKit/JetStream · GitHub

Request for adding observable - #302

Open
nihil-pro wants to merge 1 commit into
WebKit:mainfrom
nihil-pro:aded-observable
Open

Request for adding observable#302
nihil-pro wants to merge 1 commit into
WebKit:mainfrom
nihil-pro:aded-observable

Conversation

Copy link
Copy Markdown

Add observable benchmark — Proxy + class inheritance reactivity

What this adds

This PR adds a new workload benchmarking observable, a reactive state library that implements observability via Proxy combined with class inheritance, without redefining any object properties.

Why it complements the existing mobx workload

JetStream already includes a MobX benchmark, which makes this a natural addition — but observable exercises a meaningfully different engine codepath for achieving the same goal (reactive state tracking).

The two approaches differ at a fundamental level:

MobX observable
Mechanism Redefines properties as getter/setter pairs; falls back to Proxy for some cases Pure Proxy + class inheritance, no property redefinition
Object shape Modified post-construction Preserved as-is
Proxy usage Partial / fallback Always, as the primary mechanism
[[Get]] / [[Set]] traps Via descriptors Via Proxy handler

This distinction matters for engine benchmarking. JS engines optimize property access on objects with stable hidden classes/shapes. MobX's getter/setter approach mutates those shapes, while observable leaves the underlying object intact and routes all access through a Proxy wrapping an inherited prototype chain. These two patterns stress different parts of the runtime — property descriptor lookup vs. Proxy trap dispatch — making them complementary workloads rather than redundant ones.

Why this is a realistic workload

Proxy-based reactivity with class inheritance is a growing pattern in the JS ecosystem. Libraries that avoid property mutation are increasingly preferred for their compatibility with class fields, decorators, and stricter object models. Benchmarking this pattern gives engine developers and implementors signal on how well Proxy + prototype-chain access performs under sustained reactive workloads, which MobX alone does not cover.

Summary

The existing mobx benchmark tests reactivity through property descriptor manipulation. This PR adds a workload that tests reactivity through Proxy interception on top of class inheritance — a distinct, real-world pattern that deserves its own benchmark slot in JetStream.

netlify Bot commented Apr 5, 2026
edited
Loading

Copy link
Copy Markdown

Deploy Preview for webkit-jetstream-preview ready!

Name Link
🔨 Latest commit d263643
🔍 Latest deploy log https://app.netlify.com/projects/webkit-jetstream-preview/deploys/69d23ccf5e29380008cbfc8c
😎 Deploy Preview https://deploy-preview-302--webkit-jetstream-preview.netlify.app
📱 Preview on mobile Toggle QR Code...



Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant


Back | FazBrowse Home | New Git URL