Re: [heycam/webidl] Revamp interface bindings (#283)

tobie commented on this pull request.



> +    1.  If |I| inherits from some other interface |P|,
+        then set |proto| to the [=interface object=] of |P|.
+    1.  Let |F| be [=!=] [=CreateBuiltinFunction=](|realm|, |steps|, |proto|).
+    1.  Perform [=!=] [=SetFunctionName=](|F|, |id|).
+    1.  Let |length| be 0.
+    1.  If |I| was declared with a [{{Constructor}}] [=extended attribute=], then
+        1.  Initialize |S| to the [=effective overload set=]
+            for constructors with [=identifier=] |id| on [=interface=] |I| and
+            with argument count 0.
+        1.  Set |length| to the length of the
+            shortest argument list of the entries in |S|.
+    1.  Perform [=!=] [=DefinePropertyOrThrow=](|F|, "length",
+        PropertyDescriptor{\[[Value]]: |length|, \[[Writable]]: <emu-val>false</emu-val>, \[[Enumerable]]: <emu-val>false</emu-val>, \[[Configurable]]: <emu-val>true</emu-val>}).
+    1.  Let |obj| be the [=interface prototype object=] of [=interface=] |I|.
+    1.  Perform [=!=] [=DefinePropertyOrThrow=](|F|, "prototype",
+        PropertyDescriptor{\[[Value]]: |obj|, \[[Writable]]: <emu-val>false</emu-val>, \[[Enumerable]]: <emu-val>false</emu-val>, \[[Configurable]]: <emu-val>false</emu-val>}).

That's correct, actually. |obj| is the [=interface prototype object=]. prototype. |proto| is the [[Prototype]] slot of the [=interface object=].

Agree that the variables are ill-named.

-- 
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/283

Received on Wednesday, 1 February 2017 09:58:30 UTC