• TC39 Roundup Drama Edition Part I: Shared Structs

  • 2024/12/03
  • 再生時間: 31 分
  • ポッドキャスト

TC39 Roundup Drama Edition Part I: Shared Structs

  • サマリー

  • In this episode, Surma talks about the Stage 2 proposal "JavaScript Struct", which introduces fixed-layout objects and the ability to share them between realms.

    Notes & Corrections from Shu:

    Surma was slightly wrong about why private fields were originally considered problematic for sharability. The problem occurs when a class can be evaluated multiple times:

    function makeClass() { return class MyClass { #priv; getPrivateField(instance) { return instance.#priv; } }; } const C1 = makeClass(); const C2 = makeClass(); const i1 = new C1(); const i2 = new C2(); // this throws! i1.getPrivateField(i2);

    This behavior makes it hard to compile private fields just as "slots" on an object, as clearly additional behavior is required. This is somewhat at odds with the goal of achieving a fixed layout.

    Also, launching is mid-2025 is very optimistic.

    Resources:
    • SharedArrayBuffer
    • Structs proposal
    • Return overrides
    • Records & Tuples proposal
    • Surma’s buffer-backed-object library for SharedArrayBuffer
    続きを読む 一部表示

あらすじ・解説

In this episode, Surma talks about the Stage 2 proposal "JavaScript Struct", which introduces fixed-layout objects and the ability to share them between realms.

Notes & Corrections from Shu:

Surma was slightly wrong about why private fields were originally considered problematic for sharability. The problem occurs when a class can be evaluated multiple times:

function makeClass() { return class MyClass { #priv; getPrivateField(instance) { return instance.#priv; } }; } const C1 = makeClass(); const C2 = makeClass(); const i1 = new C1(); const i2 = new C2(); // this throws! i1.getPrivateField(i2);

This behavior makes it hard to compile private fields just as "slots" on an object, as clearly additional behavior is required. This is somewhat at odds with the goal of achieving a fixed layout.

Also, launching is mid-2025 is very optimistic.

Resources:
  • SharedArrayBuffer
  • Structs proposal
  • Return overrides
  • Records & Tuples proposal
  • Surma’s buffer-backed-object library for SharedArrayBuffer
activate_buybox_copy_target_t1

TC39 Roundup Drama Edition Part I: Shared Structsに寄せられたリスナーの声

カスタマーレビュー:以下のタブを選択することで、他のサイトのレビューをご覧になれます。