Skip to content

Machine readable API list #3748

@o-

Description

@o-

There have been some attempts in the past to specify the API exposed by ecma262 in a machine readable form. These attempts have revealed a large design space and debates on the best approach. At the same time there are various usecases where basically any machine readable list of the APIs would be extremely beneficial:

  • Documentation (provide a quick overview of the whole api)
  • Test coverage (check that each API function is covered by a test262)
  • Fuzzing (discover new API to generate code for)
  • Tooling (IDE support, languages compiling to JS, ...)
  • Interop (verifying availability of the whole API surface)

And probably many more. Incidentally we happen to need such a list in V8 soon and we wondered if there was a pragmatic way of providing such a machine readable list of the whole API surface in ecma262. It does not have to be perfect and does not have to solve all the problems. It could be as simple as an appendix that lists all functions. Slightly more useful would be to additionally list arguments and some information about them. For instance option bags, or conversions or type checks which are unconditionally applied to them. Anything that can be done with low effort now is better than nothing and imho does not stand in the way of having a proper solution (IDL yada yada) longterm.

Metadata

Metadata

Assignees

No one assigned

    Labels

    editor callto be discussed in the next editor call

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions