MaxGraey
Да я вообще считаю, что wasm GC абсолютно переоценен. Многие думают, что вот только его для счастья не хватает и тут же Go станет в 10 раз меньше весить, Python Ruby и прочие будут сразу как AOT компилиться) Проблема в том, что GC сможет манипулировать только ref types и возможно tuplets и records. А теперь посмотрите на ref types proposal и скажите что он полезен=) Возможно и полезен в 5-10% случаев, когда нужно прокинуть из внешего импорта сравнить это с нулем, возможно достать какое то свойство через ревлексию (что весьма накладно) и отправить его дальше если нужно как параметр для экпортов. Это opaque тип, вы с ним ничего интерестного непосредственно сделать не сможете и тем более на основе него строить все managed объекты=) Пфф. Это будет чудовишно медленно и со здоровенным оверхедом так же по размеру кода
С колокольни языков с JVM-подобной моделью памяти: Все языковые managed объекты не стоит делать из opaque JS anyref. Предпологается, что они будут состоять из структур и массивов, состоящих из чисел и ссылок на структуры, массивы и функции.
Но ссылки на JS значения полезны, когда прогрмма хочет целенаправленно взаимодействовать с JS. Рефлексию использовать не обязательно. Можно импортировать в Wasm API для работы с этими обектаи и выражать их в языке, например, как классы.