[heycam/webidl] Define "implements" checks using internal slots (#595)

- Define an imperative algorithm for instantiating a platform object,
  which everything theoretically calls into, and which sets the primary
  interface into a new internal slot [[PrimaryInterface]].
- Define the "implements" algorithm as checking the [[PrimaryInterface]]
  internal slot.

The algorithm here is roughly in correspondence with the V8 implementation,
where operation functions are allocated with a reference to a
FunctionTemplate object (which is in corresondence with WebIDL interfaces).
When checking the receiver of a method that came from WebIDL, the original
prototype chain is traversed by looking at the FunctionTemplate's parent.
The same FunctionTemplate is used in multiple JavaScript realms.

This PR procrastinates on defining an imperative algorithm for [Global]
interfaces, which would be a bit more text. It also doesn't define which
global object is associated with platform objects, or how this association
is represented.

Fixes #97
You can view, comment on, or merge this pull request online at:

  https://github.com/heycam/webidl/pull/595

-- Commit Summary --

  * Define "implements" checks using internal slots

-- File Changes --

    M index.bs (197)

-- Patch Links --

https://github.com/heycam/webidl/pull/595.patch
https://github.com/heycam/webidl/pull/595.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/pull/595

Received on Sunday, 9 December 2018 17:12:38 UTC