Specifications missing history info?

As a JavaScript implementor, one of the main reasons I refer to MDN is to find out in which version of ECMAscript a particular feature was defined, and in which other versions that definition changed.

MDN used to be excellent for this: the Specifications section would list all the relevant spec versions. But at some point fairly recently (i.e., last year or two) that changed, and the Specifications section seems just to list " ECMAScript (ECMA-262)".

The previous table of versions was extraordinarily useful; the new one is totally useless.

Is there any hope that we can get the former back?

1 Like

Hey Christopher, thanks for reaching out and giving the MDN community feedback.

The previous table of versions was extraordinarily useful; the new one is totally useless.

I think “totally useless” isn’t fair. :slight_smile:

Last year, TC39 representatives and JavaScript implementors gave us the feedback that linking to outdated or initial specs is harmful. So, we’ve updated the tables to only link to the source of truth, which is the current spec.

the Specifications section would list all the relevant spec versions

Can you define what “all relevant spec versions” means to you? What we agreed on was that only the most recent version is relevant. How are older specs relevant to you?

Is there any hope that we can get the former back?

There is a discussion to add the year of initial definition back, so that you can tell how old a feature is in terms of the spec it was first introduced in. The discussion takes place in https://github.com/mdn/sprints/issues/2735

However, I don’t think there is hope that we will link to outdated specs again.

I think “totally useless” isn’t fair. :slight_smile:

My apologies for excessive hyperbole: obviously it’s extremely useful in the general case—just not nearly so useful given my particular need to track changes to the spec.

Can you define what “all relevant spec versions” means to you? What we agreed on was that only the most recent version is relevant. How are older specs relevant to you?

The JavaScript interpreter I maintain targets ES 5.1 with limited, carefully selected support for newer features. It uses Acorn as its front end, because Acorn will parse against a specified ES version. I expect that, as we begin to support more modern ES versions, we will similarly provide flags to control which version of the spec to use.

For my purposes, the most useful thing that could be provided would be a table containing:

  • A link to the earliest version of the spec containing a given feature.
  • Links to each subsequent version of the spec in which the behaviour of the feature changed in an observable way, along with a brief summary of the change (e.g., prior to ES6, Array.prototype.join would join at most 2**32-1 items).

I actually have almost no use for a link to the most recent version of the spec, since that link is always the same for all of JavaScript at any given time—but since it might be helpful to those who have the misfortune to also have to deal with stuff from the HTML spec I’m not specifically advocating its removal! :rofl: