Skip to content

Commit cf38763

Browse files
committed
Add warning for Infra to JSON-JS-value algorithm
Also add some <div algorithm> and wrapping to the JSON section while there.
1 parent 4db814c commit cf38763

File tree

1 file changed

+42
-9
lines changed

1 file changed

+42
-9
lines changed

infra.bs

+42-9
Original file line numberDiff line numberDiff line change
@@ -1841,23 +1841,31 @@ without breaking literal syntax used by their dependencies. In that case a tuple
18411841
<p class=note>The conventions used in the algorithms in this section are those of the JavaScript
18421842
specification. [[!ECMA-262]]
18431843

1844-
<p>To <dfn export lt="parse a JSON string to a JavaScript value|parsing a JSON string to a JavaScript value">parse a JSON string to a JavaScript value</dfn>,
1844+
<div algorithm>
1845+
<p>To
1846+
<dfn export lt="parse a JSON string to a JavaScript value|parsing a JSON string to a JavaScript value">parse a JSON string to a JavaScript value</dfn>,
18451847
given a <a>string</a> |string|:
18461848

18471849
<ol>
18481850
<li><p>Return ? [$Call$](<a>%JSON.parse%</a>, undefined, « |string| »).
18491851
</ol>
1852+
</div>
18501853

1851-
<p>To <dfn export lt="parse JSON bytes to a JavaScript value|parsing JSON bytes to a JavaScript value|parse JSON from bytes">parse JSON bytes to a JavaScript value</dfn>,
1854+
<div algorithm>
1855+
<p>To
1856+
<dfn export lt="parse JSON bytes to a JavaScript value|parsing JSON bytes to a JavaScript value|parse JSON from bytes">parse JSON bytes to a JavaScript value</dfn>,
18521857
given a <a>byte sequence</a> |bytes|:
18531858

18541859
<ol>
18551860
<li><p>Let |string| be the result of running <a>UTF-8 decode</a> on |bytes|. [[!ENCODING]]
18561861

18571862
<li><p>Return the result of <a>parsing a JSON string to a JavaScript value</a> given |string|.
18581863
</ol>
1864+
</div>
18591865

1860-
<p>To <dfn export lt="serialize a JavaScript value to a JSON string|serializing a JavaScript value to a JSON string">serialize a JavaScript value to a JSON string</dfn>,
1866+
<div algorithm>
1867+
<p>To
1868+
<dfn export lt="serialize a JavaScript value to a JSON string|serializing a JavaScript value to a JSON string">serialize a JavaScript value to a JSON string</dfn>,
18611869
given a JavaScript value |value|:
18621870

18631871
<ol>
@@ -1877,8 +1885,11 @@ given a JavaScript value |value|:
18771885

18781886
<li><p>Return |result|.
18791887
</ol>
1888+
</div>
18801889

1881-
<p>To <dfn export lt="serialize a JavaScript value to JSON bytes|serializing a JavaScript value to JSON bytes|serialize JSON to bytes">serialize a JavaScript value to JSON bytes</dfn>,
1890+
<div algorithm>
1891+
<p>To
1892+
<dfn export lt="serialize a JavaScript value to JSON bytes|serializing a JavaScript value to JSON bytes|serialize JSON to bytes">serialize a JavaScript value to JSON bytes</dfn>,
18821893
given a JavaScript value |value|:
18831894

18841895
<ol>
@@ -1887,6 +1898,7 @@ given a JavaScript value |value|:
18871898

18881899
<li><p>Return the result of running <a>UTF-8 encode</a> on |string|. [[!ENCODING]]
18891900
</ol>
1901+
</div>
18901902

18911903
<hr>
18921904

@@ -1895,7 +1907,9 @@ the involved objects or arrays are tied to a particular <a lt="realm">JavaScript
18951907
standards, it is often more convenient to convert between JSON and realm-independent <a>maps</a>,
18961908
<a>lists</a>, <a>strings</a>, <a>booleans</a>, numbers, and nulls.
18971909

1898-
<p>To <dfn export lt="parse a JSON string to an Infra value|parsing a JSON string to an Infra value|parse JSON into Infra values">parse a JSON string to an Infra value</dfn>,
1910+
<div algorithm>
1911+
<p>To
1912+
<dfn export lt="parse a JSON string to an Infra value|parsing a JSON string to an Infra value|parse JSON into Infra values">parse a JSON string to an Infra value</dfn>,
18991913
given a <a>string</a> |string|:
19001914

19011915
<ol>
@@ -1904,17 +1918,23 @@ given a <a>string</a> |string|:
19041918
<li><p>Return the result of [=converting a JSON-derived JavaScript value to an Infra value=], given
19051919
|jsValue|.
19061920
</ol>
1921+
</div>
19071922

1908-
<p>To <dfn export lt="parse JSON bytes to an Infra value|parsing JSON bytes to an Infra value">parse JSON bytes to an Infra value</dfn>,
1923+
<div algorithm>
1924+
<p>To
1925+
<dfn export lt="parse JSON bytes to an Infra value|parsing JSON bytes to an Infra value">parse JSON bytes to an Infra value</dfn>,
19091926
given a <a>byte sequence</a> |bytes|:
19101927

19111928
<ol>
19121929
<li><p>Let |string| be the result of running <a>UTF-8 decode</a> on |bytes|. [[!ENCODING]]
19131930

19141931
<li><p>Return the result of <a>parsing a JSON string to an Infra value</a> given |string|.
19151932
</ol>
1933+
</div>
19161934

1917-
<p>To <dfn lt="convert a JSON-derived JavaScript value to an Infra value|converting a JSON-derived JavaScript value to an Infra value">convert a JSON-derived JavaScript value to an Infra value</dfn>,
1935+
<div algorithm>
1936+
<p>To
1937+
<dfn lt="convert a JSON-derived JavaScript value to an Infra value|converting a JSON-derived JavaScript value to an Infra value">convert a JSON-derived JavaScript value to an Infra value</dfn>,
19181938
given a JavaScript value |jsValue|:
19191939

19201940
<ol>
@@ -1965,8 +1985,11 @@ given a JavaScript value |jsValue|:
19651985

19661986
<li><p>Return |result|.
19671987
</ol>
1988+
</div>
19681989

1969-
<p>To <dfn export lt="serialize an Infra value to a JSON string|serializing an Infra value to a JSON string">serialize an Infra value to a JSON string</dfn>,
1990+
<div algorithm>
1991+
<p>To
1992+
<dfn export lt="serialize an Infra value to a JSON string|serializing an Infra value to a JSON string">serialize an Infra value to a JSON string</dfn>,
19701993
given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</a>-keyed <a>map</a>
19711994
|value|:
19721995

@@ -1980,8 +2003,11 @@ given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</
19802003
<p class=note>Since no additional arguments are passed to <a>%JSON.stringify%</a>, the resulting
19812004
string will have no whitespace inserted.
19822005
</ol>
2006+
</div>
19832007

1984-
<p>To <dfn export lt="serialize an Infra value to JSON bytes|serializing an Infra value to JSON bytes">serialize an Infra value to JSON bytes</dfn>,
2008+
<div algorithm>
2009+
<p>To
2010+
<dfn export lt="serialize an Infra value to JSON bytes|serializing an Infra value to JSON bytes">serialize an Infra value to JSON bytes</dfn>,
19852011
given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</a>-keyed <a>map</a>
19862012
|value|:
19872013

@@ -1991,7 +2017,9 @@ given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</
19912017

19922018
<li><p>Return the result of running <a>UTF-8 encode</a> on |string|. [[!ENCODING]]
19932019
</ol>
2020+
</div>
19942021

2022+
<div algorithm>
19952023
<p>To
19962024
<dfn export lt="convert an Infra value to a JSON-compatible JavaScript value|converting an Infra value to a JSON-compatible JavaScript value">convert an Infra value to a JSON-compatible JavaScript value</dfn>,
19972025
given |value|:
@@ -2043,6 +2071,11 @@ given |value|:
20432071
</ol>
20442072
</ol>
20452073

2074+
<p class=warning>As this is a rather nuanced algorithm, please
2075+
<a href="https://github.com/whatwg/infra/issues/new">file an issue</a> before using
2076+
<a>convert an Infra value to a JSON-compatible JavaScript value</a>.
2077+
</div>
2078+
20462079

20472080
<h2 id=forgiving-base64>Forgiving base64</h2>
20482081

0 commit comments

Comments
 (0)