- From: Domenic Denicola <notifications@github.com>
- Date: Wed, 17 May 2017 11:01:17 -0700
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/323/c302175579@github.com>
I was going make a few more tweaks, but it appears "enable edits from collaborators" is not enabled, so here's a diff:
```diff
diff --git a/index.bs b/index.bs
index 3757492..2fd5d64 100644
--- a/index.bs
+++ b/index.bs
@@ -2026,7 +2026,7 @@ Additionaly, in the ECMAScript language binding,
the <code>toJSON</code> operation can take a [{{Default}}] [=extended attribute=],
in which case the [=default toJSON operation=] is exposed instead.
-<div class="example">
+<div class="example" id="tojson-example">
The following [=IDL fragment=] defines an interface <code class="idl">Transaction</code>
that has a <code>toJSON</code> method defined in prose:
@@ -2055,18 +2055,18 @@ in which case the [=default toJSON operation=] is exposed instead.
<div algorithm="example tojson">
- To invoke the <code>toJSON</code> operation of the <code class="idl">Transaction</code> interface
- on |target|, run the following steps:
+ To invoke the <code>toJSON()</code> operation of the <code class="idl">Transaction</code>
+ interface, run the following steps:
1. Let |json| be a new <code class="idl">TransactionJSONValue</code> dictionary.
- 1. [=list/For each=] attribute [=identifier=] |attr| in [=list=] « "from", "to", "amount", "description" »:
+ 1. [=list/For each=] attribute [=identifier=] |attr| in « "from", "to", "amount", "description" »:
1. Let |value| be result of [=get the underlying value|getting the underlying value=]
- of [=attribute=] |attr| of <code class="idl">Transaction</code> on |target|.
+ of the [=attribute=] identified by |attr|, given |target|.
1. Set |json|[|attr|] to |value|.
1. Return |json|.
</div>
- In the ECMAScript language binding, there would exist a <code>toJSON</code> method on
+ In the ECMAScript language binding, there would exist a <code>toJSON()</code> method on
<code class="idl">Transaction</code> objects:
<pre highlight="js">
@@ -7897,7 +7897,7 @@ The [{{Default}}] extended attribute must not
be used on anything other than a [=regular operation=]
for which a [=corresponding default operation=] has been defined.
-<div class="example">
+<div class="example" id="example-tojson-default">
As an example, the [{{Default}}] extended attribute is suitable
for use on the <code>toJSON</code> [=regular operation=] of the
@@ -10355,7 +10355,7 @@ The characteristics of this property are as follows:
[=extended attribute=], then return <emu-val>undefined</emu-val>.
1. Otherwise, [=ECMAScript/throw=] a <emu-val>TypeError</emu-val>.
1. Let |R| be the result of [=get the underlying value|getting the underlying value=]
- of |attribute| on |O|.
+ of |attribute| given |O|.
1. Return the result of [=converted to an ECMAScript value|converting=] |R| to an
ECMAScript value of the type |attribute| is declared as.
@@ -10609,7 +10609,7 @@ The [=return type=] of the [=default toJSON operation=] must be {{object}}.
that is an [=interface member=] of |I|, in order:
1. Let |id| be the [=identifier=] of |attr|.
1. Let |value| be the result of [=get the underlying value|getting the underlying value=]
- of |attr| for |O|.
+ of |attr| given |O|.
1. If |value| is a [=JSON type=], then [=map/set=] |map|[|id|] to |value|.
1. [=list|For each=] [=implements statements=] where the left-hand side [=identifier=] references |I|:
1. Let |rhs| be the [=interface=] represented by the right-hand side [=identifier=].
@@ -10635,7 +10635,7 @@ The [=return type=] of the [=default toJSON operation=] must be {{object}}.
1. Return |stack|.
</div>
-<div class=example>
+<div class=example id=example-tojson-default-inheritance-and-mixins>
The following [=IDL fragment=] defines a number of [=interfaces=]
which are [=inherited interface|inherited=] or [=consequential interfaces=] of <code class="idl">A</code>,
@@ -10719,7 +10719,7 @@ The [=return type=] of the [=default toJSON operation=] must be {{object}}.
}
</pre>
- An object implementing interface `B` would return:
+ An object implementing interface <code class="idl">B</code> would return:
<pre highlight=json>
{
```
> It feels sort of icky that the whole default operation is ES-only, especially since the boundary between the IDL part and the ES binding is now so clear.
It seems fine to me. All extended attributes, including [PutForwards], are ES-specific; they're in the ECMAScript binding section. I agree there's some confusing bleed-over, e.g. the interfaces section says which extended attributes are applicable to interfaces; maybe that should be consolidated into the extended attribute definitions instead. But yeah, not worth worrying about for now.
---
Still would be good to replace the PaymentRequest example with a made-up one.
--
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/323#issuecomment-302175579
Received on Wednesday, 17 May 2017 18:01:51 UTC