You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: infra.bs
+42-9
Original file line number
Diff line number
Diff line change
@@ -1841,23 +1841,31 @@ without breaking literal syntax used by their dependencies. In that case a tuple
1841
1841
<p class=note>The conventions used in the algorithms in this section are those of the JavaScript
1842
1842
specification. [[!ECMA-262]]
1843
1843
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>,
<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>,
1852
1857
given a <a>byte sequence</a> |bytes|:
1853
1858
1854
1859
<ol>
1855
1860
<li><p>Let |string| be the result of running <a>UTF-8 decode</a> on |bytes|. [[!ENCODING]]
1856
1861
1857
1862
<li><p>Return the result of <a>parsing a JSON string to a JavaScript value</a> given |string|.
1858
1863
</ol>
1864
+
</div>
1859
1865
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>,
1861
1869
given a JavaScript value |value|:
1862
1870
1863
1871
<ol>
@@ -1877,8 +1885,11 @@ given a JavaScript value |value|:
1877
1885
1878
1886
<li><p>Return |result|.
1879
1887
</ol>
1888
+
</div>
1880
1889
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>,
1882
1893
given a JavaScript value |value|:
1883
1894
1884
1895
<ol>
@@ -1887,6 +1898,7 @@ given a JavaScript value |value|:
1887
1898
1888
1899
<li><p>Return the result of running <a>UTF-8 encode</a> on |string|. [[!ENCODING]]
1889
1900
</ol>
1901
+
</div>
1890
1902
1891
1903
<hr>
1892
1904
@@ -1895,7 +1907,9 @@ the involved objects or arrays are tied to a particular <a lt="realm">JavaScript
1895
1907
standards, it is often more convenient to convert between JSON and realm-independent <a>maps</a>,
1896
1908
<a>lists</a>, <a>strings</a>, <a>booleans</a>, numbers, and nulls.
1897
1909
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>,
1899
1913
given a <a>string</a> |string|:
1900
1914
1901
1915
<ol>
@@ -1904,17 +1918,23 @@ given a <a>string</a> |string|:
1904
1918
<li><p>Return the result of [=converting a JSON-derived JavaScript value to an Infra value=], given
1905
1919
|jsValue|.
1906
1920
</ol>
1921
+
</div>
1907
1922
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>,
1909
1926
given a <a>byte sequence</a> |bytes|:
1910
1927
1911
1928
<ol>
1912
1929
<li><p>Let |string| be the result of running <a>UTF-8 decode</a> on |bytes|. [[!ENCODING]]
1913
1930
1914
1931
<li><p>Return the result of <a>parsing a JSON string to an Infra value</a> given |string|.
1915
1932
</ol>
1933
+
</div>
1916
1934
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>,
1918
1938
given a JavaScript value |jsValue|:
1919
1939
1920
1940
<ol>
@@ -1965,8 +1985,11 @@ given a JavaScript value |jsValue|:
1965
1985
1966
1986
<li><p>Return |result|.
1967
1987
</ol>
1988
+
</div>
1968
1989
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>,
1970
1993
given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</a>-keyed <a>map</a>
1971
1994
|value|:
1972
1995
@@ -1980,8 +2003,11 @@ given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</
1980
2003
<p class=note>Since no additional arguments are passed to <a>%JSON.stringify%</a>, the resulting
1981
2004
string will have no whitespace inserted.
1982
2005
</ol>
2006
+
</div>
1983
2007
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>,
1985
2011
given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</a>-keyed <a>map</a>
1986
2012
|value|:
1987
2013
@@ -1991,7 +2017,9 @@ given a <a>string</a>, <a>boolean</a>, number, null, <a>list</a>, or <a>string</
1991
2017
1992
2018
<li><p>Return the result of running <a>UTF-8 encode</a> on |string|. [[!ENCODING]]
1993
2019
</ol>
2020
+
</div>
1994
2021
2022
+
<div algorithm>
1995
2023
<p>To
1996
2024
<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>,
1997
2025
given |value|:
@@ -2043,6 +2071,11 @@ given |value|:
2043
2071
</ol>
2044
2072
</ol>
2045
2073
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>.
0 commit comments