LGTM to experiment from M141 to M147 inclusive.

On 8/13/25 4:40 p.m., 'Thomas Lively' via blink-dev wrote:
Good question! The first toolchain to support custom descriptors is j2cl <https://github.com/google/j2cl>, which is an open source Java-to-JS/Wasm compiler developed by Google. Developers will enable the feature via an option <https://github.com/google/j2cl/commit/a8cdfa7aa36d4c46e8b794139a38ccefcd99e5fb#diff-be4e99d1c21ff16eff4ab47ef7d35d297118d455e283f292745218a53d853553R147-R151> passed to the compiler. We hope that once the feature is available via an origin trial, other toolchains will be motivated to start experimenting with it as well.

Note that in the initial experiments we don't expect toolchains to expose any new developer-facing functionality based on this feature. The use of custom descriptors will only be an internal implementation detail in the compiler that results in less memory usage at runtime. Later experimentation will additionally enable the JS interop features built on top of custom descriptors, and it will vary from toolchain to toolchain whether this enables new developer-facing functionality or enables a performance improvement in existing functionality.

Also note that this feature will generally only be usable from managed-memory languages that compile to WasmGC such as Java, Kotlin, and Dart. It's unlikely that C/C++/Rust and similar languages will ever make use of custom descriptors.

On Wed, Aug 13, 2025 at 12:24 PM Daniel Bratell <bratel...@gmail.com> wrote:

    I might have missed it, but how is this new feature going to be
    used by web developers? Do you have custom C compiler for the
    experiment? And do you need to do something in C to enable it? Or
    whatever language people prefer.

    /Daniel

    On 2025-08-13 20:04, Thomas Lively wrote:
    Yes, apologies. The explainer link should be the same as the
    specification link:
    
https://github.com/WebAssembly/custom-descriptors/blob/main/proposals/custom-descriptors/Overview.md

    On Wed, Aug 13, 2025 at 7:58 AM Daniel Bratell
    <bratel...@gmail.com> wrote:

        The explainer link is dead, but maybe it was meant to be the
        same as the Specification link?

        /Daniel

        On 2025-08-12 00:50, 'Thomas Lively' via blink-dev wrote:


                Contact emails

        tliv...@google.com, ecmzieg...@chromium.org,
        jkumme...@chromium.org


                Explainer

        
https://github.com/WebAssembly/custom-descriptors/blob/main/proposals/custom-rtts/Overview.md
        
<https://github.com/WebAssembly/custom-rtts/blob/main/proposals/custom-rtts/Overview.md>


                Specification

        
https://github.com/WebAssembly/custom-descriptors/blob/main/proposals/custom-descriptors/Overview.md


                Summary

        Allows WebAssembly to store data associated with
        source-level types more efficiently in new "custom
        descriptor" objects. These custom descriptors can be
        configured with prototypes for the WebAssembly objects of
        that source-level type. This allows methods to be installed
        on a WebAssembly object's prototype chain and called
        directly from JS using normal method call syntax. The
        prototypes and methods can be configured declaratively using
        an imported builtin function.



                Blink component

        Blink>JavaScript>WebAssembly
        
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EJavaScript%3EWebAssembly%22>


                TAG review

        None


                TAG review status

        Pending


                Origin Trial documentation link

        
https://github.com/WebAssembly/custom-descriptors/blob/main/proposals/custom-descriptors/Overview.md


                Risks



                Interoperability and Compatibility

        None



        /Gecko/: No signal

        /WebKit/: No signal

        /Web developers/: No signals

        /Other signals/:


                WebView application risks

        Does this intent deprecate or change behavior of existing
        APIs, such that it has potentially high risk for Android
        WebView-based applications?

        None



                Goals for experimentation

        Initially we are looking to measure real-world performance,
        heap usage, and OOM rate impact of just the core Wasm part
        of the proposal. We want to verify that heap usage and OOM
        rates will decrease as expected and that the performance
        impact is negligible. If we do measure a performance impact,
        that will inform additional optimization work we would need
        to do in the implementation. Notably, the JS interop
        features of the proposal are out of scope for this initial
        experimentation. They will likely be evaluated in follow-on
        experiments.


                Ongoing technical constraints

        None.



                Debuggability

        None



                Will this feature be supported on all six Blink
                platforms (Windows, Mac, Linux, ChromeOS, Android,
                and Android WebView)?

        No


                Is this feature fully tested by web-platform-tests
                
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?

        No


                Flag name on about://flags

        None


                Finch feature name

        None


                Non-finch justification

        None


                Requires code in //chrome?

        False


                Estimated milestones

        Origin trial desktop first      141
        Origin trial desktop last       147



                Link to entry on the Chrome Platform Status

        https://chromestatus.com/feature/6024844719947776?gate=5062088692858880

        This intent message was generated by Chrome Platform Status
        <https://chromestatus.com/>.
-- You received this message because you are subscribed to the
        Google Groups "blink-dev" group.
        To unsubscribe from this group and stop receiving emails
        from it, send an email to blink-dev+unsubscr...@chromium.org.
        To view this discussion visit
        
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJZD_EWidxA-LogDRBnDVM9cOMbu3OX3_3onqCZcSLVJm7%3DnvA%40mail.gmail.com
        
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJZD_EWidxA-LogDRBnDVM9cOMbu3OX3_3onqCZcSLVJm7%3DnvA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJZD_EUC9rpqgjKR7QYC5jZ9OgdLJ4%2BVNW088%2BCbGOr9McnykQ%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJZD_EUC9rpqgjKR7QYC5jZ9OgdLJ4%2BVNW088%2BCbGOr9McnykQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e0a13bc4-bbf7-4092-b3c7-b409188c2860%40chromium.org.

Reply via email to