Skip to content

Reshaping the Extensions proposal #18

@nesk

Description

@nesk

Pretty much like @hax did before in tc39/proposal-bind-operator#56, I'd like to suggest reshaping the Extensions proposal.

There's been no updates to the proposal for more than two years, despite the fact that it could help a lot of developers with real-world use cases.

I'd like to suggest an alternative to what's been worked on. Essentially, it consists to reduce the scope furthermore and make all functions usable as extension functions without any new syntax or operator, something like that:

function countWords() {
  return this.split(/\s/).length;
}

// Any function within the current scope can be called with a receiver:

"Hello, World!".countWords();
// Returns: 2

I already have a lot of things in mind to provide a specification of this reshape, what should I do to make this happen?

I see in tc39/proposal-bind-operator#56 that @hax had to create a new proposal. Should I do the same? Or can we work together to reshape the current proposal? (if you agree @hax)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions