[Web API type definition issue] Wasm64 Support

Open Beginner friendly
#2,485 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
typescript, wasm
Domain
api, tooling

Research direction

Start in inputfiles/overridingTypes.jsonc around the WebAssembly.AddressValue override referenced in the issue, then trace how the generator applies that definition to WebAssembly memory and table APIs. Done means the generated TypeScript definitions represent AddressValue as number | bigint for the listed Wasm64-related parameters and properties, with the repository's relevant generation checks passing.

Written by the indexing model from the issue text.

Description

lib.d.ts bug
Summary

WebAssembly.AddressValue should be number | bigint instead of number

Expected vs. Actual Behavior

There are a bunch of APIs relying on the type definition of WebAssembly.AddressValue:

  • WebAssembly.Memory.grow()
  • WebAssembly.Table.*
  • `WebAssembly.MemoryDescriptor.*
  • WebAssembly.TableDescriptor.*

With Wasm64 memory and tables can be 64-bit, requiring some of the parameters and properties to be bigint instead of number. Currently AddressValue is defines as number, but it should be number | bigint instead.

Maybe the API could be further improved with a separate table or memory type, in which the constructor with the help of WebAssembly.MemoryDescriptor or WebAssembly.TableDescriptor can determine which type we are dealing with.

Playground Link

No response

Browser Support
  • This API is supported in at least two major browser engines (not two Chromium-based browsers).
Have Tried The Latest Releases
  • This issue applies to the latest release of TypeScript.
  • This issue applies to the latest release of @types/web.
Additional Context

This has been explicitly overwritten internally here.

Dominant language
TypeScript
Stars
740
Forks
474
Avg merge
2d 8h
Merged PRs (30d)
15

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/TypeScript-DOM-lib-generator

All issues in microsoft/TypeScript-DOM-lib-generator

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.