Skip to content

Sorting out completion records #1796

@bakkot

Description

@bakkot

I would like to get completion records sorted out. My current plan is to

  1. Change the [[Value]] slot of Completion Records to allow it to hold any type of value, not just ECMAScript language value (thus resolving abstract operations don't always return Completion Records #496 via the first of the two solutions discussed in this comment)
  2. Remove the bit which asserts that all runtime semantics return a completion record
  3. Label each abstract operation with the type it returns (in prose), so that non-completion-record-returning operations are not said to return completion records
  4. Ensure all callers of an abstract operation consume the returned value properly: in particular, if the operation returns a completion record, it is explicitly treated as such, and if it does not, it is not
  5. Remove the bit which allows implicit unwrapping of completion records

I'm going to prepare a PR which does this as soon as I have time.

Metadata

Metadata

Assignees

Labels

completion recordsRelates to completion records, and ? / ! notation.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions