gc icon indicating copy to clipboard operation
gc copied to clipboard

js-api: ToValueType doesn't accept GC heap types

Open eqrion opened this issue 2 years ago • 2 comments

Ref to the spec.

ToValueType (which is used in global and table constructors) doesn't appear to support any of the GC heap types such as anyref. SM and V8 appear to both support this for most of the GC heap types. We appear to diverge around the bottom types (SM accepts 'nullfuncref', V8 does not).

It also looks like SM has a form of {ref: heaptypestring, nullable: boolean} that we support as well. I think we added this for testing and it slipped through.

cc: @takikawa @jakobkummerow

eqrion avatar Dec 19 '23 21:12 eqrion

I had assumed the new types were intentionally left out for now.

But while looking, I also noticed #501.

rossberg avatar Dec 20 '23 09:12 rossberg

I had assumed the new types were intentionally left out for now.

But while looking, I also noticed #501.

That may have been the case, but it seems that both V8 and SM at least implement some of the GC heap types. I personally think supporting all the GC heap types via their shorthands makes sense as it's pretty easy. Non-nullable types or references to type definitions should probably be left out for now.

eqrion avatar Dec 20 '23 20:12 eqrion