Internal method linking#711
Merged
Merged
Conversation
bakkot
force-pushed
the
internal-method-linking
branch
from
July 14, 2026 03:03
dc1a377 to
8fa3b04
Compare
nicolo-ribaudo
approved these changes
Jul 15, 2026
nicolo-ribaudo
left a comment
Member
There was a problem hiding this comment.
One minor suggestion but otherwise it looks good 👍
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Followup to #666. Fixes #116.
Corresponding ecma262 PR at tc39/ecma262#3912.
This is a breaking change because it now expects
type="internal method"clauses, which are the clauses that define the actual implementations of the various methods on the various kinds of object, to have a corresponding definition in the tables of essential internal methods.Claude wrote this from the following prompt, wherein I basically told it to copy #666.
prompt
This is ecmarkup, the tool used to build the JS spec.
In commit 2720d8e, we added support for linking abstract/concrete methods within the spec (these have nothing to do with JS methods). These are things like
HasBindingon Environment Records, which has multiple implementations (for a block scope vs awithscope, e.g.). Read that commit for context.We want to do something similar for so-called "internal methods". These currently look like
Note that they already have a type and structured header, so there is less to do than there was for concrete methods (which did not). Also note that these always have the
[[brackets; they are invoked as e.g._foo_.[[GetPrototypeOf]](). Otherwise, we want to take a very similar approach as in the above commit, including the new element for generating the list of implementations.plus a couple minor followups.