Use DOM / WebIDL language for throwing errors
authorMark Watson <watsonm@netflix.com>
Wed, 22 Oct 2014 15:50:08 -0700
changeset 264 4c8aa1eee8c8
parent 263 1e509576870d
child 265 7dd14c51e4b7
Use DOM / WebIDL language for throwing errors
spec/Overview-WebCryptoAPI.xml
spec/Overview.html
--- a/spec/Overview-WebCryptoAPI.xml	Wed Oct 22 14:11:57 2014 -0700
+++ b/spec/Overview-WebCryptoAPI.xml	Wed Oct 22 15:50:08 2014 -0700
@@ -722,7 +722,7 @@
             <p>
               If <var>exactData</var> was specified, and all of the bytes of <var>data</var> were
               not consumed during the parsing phase, then
-              <a href="#concept-return-an-error">return an error</a> named
+              <a href="#concept-throw">throw</a> a
               <a href="#dfn-DataError"><code>DataError</code></a>.
             </p>
           </li>
@@ -784,7 +784,7 @@
           <li>
             <p>
               If the <code>"kty"</code> field of <var>key</var> is not defined, then <a
-              href="#concept-return-an-error">return an error</a> named <a
+              href="#concept-throw">throw</a> a <a
               href="#dfn-DataError"><code>DataError</code></a>.
             </p>
           </li>
@@ -943,14 +943,14 @@
               <li>
                 <p>
                   If <var>array</var> is not of an integer type (i.e., Int8Array, Uint8Array,
-                  Int16Array, Uint16Array, Int32Array, or Uint32Array), throw a
+                  Int16Array, Uint16Array, Int32Array, or Uint32Array), <a href="#concept-throw">throw</a> a
                   <code>TypeMismatchError</code> and
                   <a href="#terminate-the-algorithm">terminate the algorithm</a>.
                 </p>
               </li>
               <li>
                 <p>
-                  If the <code>byteLength</code> of <var>array</var> is greater than 65536, throw a
+                  If the <code>byteLength</code> of <var>array</var> is greater than 65536, <a href="#concept-throw">throw</a> a
                   <code>QuotaExceededError</code> and
                   <a href="#terminate-the-algorithm">terminate the algorithm</a>.
                 </p>
@@ -1400,7 +1400,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1412,7 +1412,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1420,7 +1420,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>key</var> does not contain an entry that is <code>"encrypt"</code>, then <a
-                  href="#concept-return-an-error">return an error</a> named <a
+                  href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1491,7 +1491,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1503,7 +1503,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1511,7 +1511,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>key</var> does not contain an entry that is <code>"decrypt"</code>, then <a
-                  href="#concept-return-an-error">return an error</a> named <a
+                  href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1583,7 +1583,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1595,7 +1595,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1603,7 +1603,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>key</var> does not contain an entry that is <code>"sign"</code>, then <a
-                  href="#concept-return-an-error">return an error</a> named <a
+                  href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1680,7 +1680,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1692,7 +1692,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1700,7 +1700,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>key</var> does not contain an entry that is <code>"verify"</code>, then <a
-                  href="#concept-return-an-error">return an error</a> named <a
+                  href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1770,7 +1770,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1837,7 +1837,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1847,7 +1847,7 @@
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>,
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> an
                   <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1865,8 +1865,7 @@
                     <p>
                       If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                       <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                      <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                      named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                      <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                     </p>                  
                   </dd>
                   <dt>If <var>result</var> is a <a href="#dfn-CryptoKeyPair">CryptoKeyPair</a> object:</dt>
@@ -1875,8 +1874,7 @@
                       If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of the
                       <a href="#dfn-CryptoKeyPair-privateKey">privateKey</a> attribute of
                       <var>result</var> is the empty sequence, then
-                      <a href="#concept-return-an-error">return an error</a>
-                      named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                      <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                     </p>
                   </dd>
                 </dl>
@@ -1947,7 +1945,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1958,7 +1956,7 @@
                   If the <a href="#dfn-Algorithm-name">name</a> member of
                   <var>normalizedAlgorithm</var> does not identify a <a
                   href="#algorithms">registered algorithm</a> that supports the derive bits
-                  operation, then <a href="#concept-return-an-error">return an error</a> named <a
+                  operation, then <a href="#concept-throw">throw</a > a  <a
                   href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>             
@@ -1967,7 +1965,7 @@
                   If the <a href="#dfn-Algorithm-name">name</a> member of
                   <var>normalizedDerivedKeyAlgorithm</var> does not identify a
                   <a href="#algorithms">registered algorithm</a> that supports the get key length
-                  operation, then <a href="#concept-return-an-error">return an error</a> named
+                  operation, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
@@ -1977,7 +1975,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>baseKey</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>baseKey</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1985,7 +1983,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>baseKey</var> does not contain an entry that is <code>"deriveKey"</code>,
-                  then <a href="#concept-return-an-error">return an error</a> named <a
+                  then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1993,7 +1991,7 @@
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>, 
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> an
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2024,8 +2022,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                   <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                  <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                  <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                 </p>
               </li>
               <li>
@@ -2081,7 +2078,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2093,7 +2090,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>baseKey</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>baseKey</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -2101,7 +2098,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>baseKey</var> does not contain an entry that is <code>"deriveBits"</code>,
-                  then <a href="#concept-return-an-error">return an error</a> named <a
+                  then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -2174,7 +2171,7 @@
                         <p>
                           If the <code>keyData</code> parameter passed to the
                           <a href="#dfn-SubtleCrypto-method-importKey">importKey</a> method is a
-                          JsonWebKey dictionary, <a href="#concept-return-an-error">return an error</a> named
+                          JsonWebKey dictionary, <a href="#concept-throw">throw</a> a
                           <a href="#dfn-TypeError"><code>TypeError</code></a>.
                         </p>
                       </li>
@@ -2197,7 +2194,7 @@
                         <p>
                           If the <code>keyData</code> parameter passed to the
                           <a href="#dfn-SubtleCrypto-method-importKey">importKey</a> method is not a
-                          JsonWebKey dictionary, <a href="#concept-return-an-error">return an error</a> named
+                          JsonWebKey dictionary, <a href="#concept-throw">throw</a> a
                           <a href="#dfn-TypeError"><code>TypeError</code></a>.
                         </p>
                       </li>
@@ -2214,7 +2211,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2224,7 +2221,7 @@
                 <p>
                   If <var>format</var> is not
                   a <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a> named
+                  format value</a>, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2232,7 +2229,7 @@
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>,
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2249,8 +2246,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                   <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                  <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                  <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                 </p>
               </li>
               <li>
@@ -2313,7 +2309,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2323,7 +2319,7 @@
                 <p>
                   If <var>format</var> is not a
                   <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a> named
+                  format value</a>, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2333,15 +2329,14 @@
                   href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
                   <var>key</var> does not identify a <a href="#algorithms">registered algorithm</a>
                   that supports the export key operation, then <a
-                  href="#concept-return-an-error">return an error</a> named <a
+                  href="#concept-throw">throw</a > a <a
                   href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-extractable">extractable</a>]] internal slot
-                  of <var>key</var> is false, then <a href="#concept-return-an-error">return an
-                  error</a> named <a
+                  of <var>key</var> is false, then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>         
               </li>
@@ -2412,7 +2407,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2423,15 +2418,14 @@
                   If the <a href="#dfn-Algorithm-name">name</a> member of
                   <var>normalizedAlgorithm</var> does not identify a
                   <a href="#algorithms">registered algorithm</a> that supports the encrypt or wrap
-                  key operation, then <a href="#concept-return-an-error">return an error</a> named
+                  key operation, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If <var>format</var> is not a <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                  format value</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
               <li>
@@ -2440,7 +2434,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>wrappingKey</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>wrappingKey</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -2448,7 +2442,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>wrappingKey</var> does not contain an entry that is <code>"wrapKey"</code>,
-                  then <a href="#concept-return-an-error">return an error</a> named <a
+                  then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -2457,15 +2451,14 @@
                   If the algorithm identified by the [[<a
                   href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
                   <var>key</var> does not support the export key operation, then <a
-                  href="#concept-return-an-error">return an error</a> named <a
+                  href="#concept-throw">throw</a > a  <a
                   href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-extractable">extractable</a>]] internal slot
-                  of <var>key</var> is false, then <a href="#concept-return-an-error">return an
-                  error</a> named <a
+                  of <var>key</var> is false, then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>         
               </li>
@@ -2552,7 +2545,7 @@
                   </dd>
                   <dt>Otherwise:</dt>
                   <dd>
-                    <a href="#concept-return-an-error">Return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </dd>
                 </dl>
@@ -2643,7 +2636,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2655,7 +2648,7 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>unwrappingKey</var> then <a href="#concept-return-an-error">return an error</a> named <a
+                  <var>unwrappingKey</var> then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -2663,23 +2656,21 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>unwrappingKey</var> does not contain an entry that is
-                  <code>"unwrapKey"</code>, then <a href="#concept-return-an-error">return an
-                  error</a> named <a
+                  <code>"unwrapKey"</code>, then <a href="#concept-throw">throw</a> an <a
                   href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If <var>format</var> is not a <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                  format value</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>,
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2704,7 +2695,7 @@
                   </dd>
                   <dt>Otherwise:</dt>
                   <dd>
-                    <a href="#concept-return-an-error">Return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </dd>
                 </dl>
@@ -2742,8 +2733,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                   <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                  <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                  <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
               <li>
@@ -2814,10 +2804,11 @@
           </table>
           <p>
             When this specification says to
-            <dfn id="concept-return-an-error">return an error</dfn> named <var>error</var>,
-            where <var>error</var>
-            is one of the above error names, the user agent must return a
-            <a href="#dfn-DOMException">DOMException</a> with name <var>error</var>.
+            <dfn id="concept-throw">throw</dfn> an error, the user agent must
+            <a href="http://heycam.github.io/webidl/#dfn-throw">throw</a> an error as described in
+            [<a href="#WebIDL">WEBIDL</a>]. When this occurs in a sub-algorithm,
+            this results in termination of execution of the sub-algorithm and all ancestor algorithms
+            until one is reached that explicitly describes procedures for catching exceptions.
           </p>
         </div>
       </div>
@@ -3815,7 +3806,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"private"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -3835,7 +3826,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -3855,7 +3846,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"public"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -3876,7 +3867,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -3896,7 +3887,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                      <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -3913,7 +3904,7 @@
                 <li>
                   <p>
                     If generation of the key pair fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -4066,7 +4057,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"verify"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a > a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -4080,7 +4071,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a > a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4164,7 +4155,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a > a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4192,7 +4183,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a > a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4214,7 +4205,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4240,7 +4231,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                              <code>"sign"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -4254,7 +4245,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4338,7 +4329,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4366,7 +4357,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4388,7 +4379,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4424,7 +4415,7 @@
                             is not present and
                             <var>usages</var> contains an entry which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -4432,7 +4423,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not a
                             case-sensitive string match to <code>"RSA"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4440,7 +4431,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not a case-sensitive string match to <code>"sig"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4450,7 +4441,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4524,7 +4515,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4552,7 +4543,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4570,7 +4561,7 @@
                                     If <var>jwk</var> does not meet the requirements of
                                     Section 6.3.2 of <a href="#jwa">JSON Web
                                     Algorithms</a>,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4598,7 +4589,7 @@
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
                                     6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4625,7 +4616,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -4688,8 +4679,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -4701,7 +4691,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"public"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -4759,7 +4749,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"private"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -4887,7 +4877,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -4962,7 +4952,7 @@
                     <dt>Otherwise</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -5060,7 +5050,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"private"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -5084,7 +5074,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -5104,7 +5094,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"public"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -5129,7 +5119,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -5150,7 +5140,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                     <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -5167,7 +5157,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -5314,7 +5304,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -5328,7 +5318,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5374,7 +5364,7 @@
                                     If <var>params</var> is not defined, or is not an instance of
                                     the <code>RSASSA-PSS-params</code> ASN.1 type defined in
                                     <a href="#RFC3447">RFC3447</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5443,7 +5433,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -5458,7 +5448,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     equivalent to the OID <code>id-mgf1</code> defined in <a
                                     href="#RFC3447">RFC 3447</a>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -5468,8 +5458,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -5478,7 +5467,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -5504,7 +5493,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5526,7 +5515,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5552,7 +5541,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"sign"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -5566,7 +5555,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5612,7 +5601,7 @@
                                     If <var>params</var> is not defined, or is not an instance of
                                     the <code>RSASSA-PSS-params</code> ASN.1 type defined in
                                     <a href="#RFC3447">RFC3447</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -5681,7 +5670,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -5695,7 +5684,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     equivalent to the OID <code>id-mgf1</code> defined in <a
                                     href="#RFC3447">RFC 3447</a>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -5705,8 +5694,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -5715,7 +5703,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -5741,7 +5729,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5763,7 +5751,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5799,7 +5787,7 @@
                             is not present and
                             <var>usages</var> contains an entry which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -5807,7 +5795,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not a
                             case-sensitive string match to <code>"RSA"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5815,7 +5803,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not a case-sensitive string match to <code>"sig"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5825,7 +5813,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5893,7 +5881,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5921,7 +5909,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5939,7 +5927,7 @@
                                     If <var>jwk</var> does not meet the requirements of
                                     Section 6.3.2 of <a href="#jwa">JSON Web
                                     Algorithms</a>,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5967,7 +5955,7 @@
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
                                     6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5994,7 +5982,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -6057,8 +6045,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -6070,7 +6057,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"public"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -6270,7 +6257,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"private"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -6609,7 +6596,7 @@
                     <dt>Otherwise</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -6708,7 +6695,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of <var>key</var>
                     is not <code>"public"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -6740,7 +6727,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -6760,7 +6747,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of <var>key</var>
                     is not <code>"private"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -6792,7 +6779,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -6813,7 +6800,7 @@
                     If <var>usages</var> contains an entry which is not
                     <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -6830,7 +6817,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -6980,7 +6967,7 @@
                             If <var>usages</var> contains an entry which is not
                             <code>"encrypt"</code> or
                             <code>"wrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -6994,7 +6981,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7039,7 +7026,7 @@
                                     If <var>params</var> is not defined, or is not an instance of
                                     the <code>RSAES-OAEP-params</code> ASN.1 type defined in
                                     <a href="#RFC3447">RFC3447</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7108,7 +7095,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -7122,7 +7109,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     equivalent to the OID <code>id-mgf1</code> defined in <a
                                     href="#RFC3447">RFC 3447</a>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -7132,8 +7119,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -7142,7 +7128,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -7168,7 +7154,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7190,7 +7176,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7216,7 +7202,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"decrypt"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -7230,7 +7216,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7276,7 +7262,7 @@
                                     If <var>params</var> is not defined, or is not an instance of
                                     the <code>RSAES-OAEP-params</code> ASN.1 type defined in <a
                                     href="#RFC3447">RFC3447</a>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -7349,7 +7335,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -7363,7 +7349,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     equivalent to the OID <code>id-mgf1</code> defined in <a
                                     href="#RFC3447">RFC 3447</a>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -7373,8 +7359,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a
                                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -7383,7 +7368,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -7409,7 +7394,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7431,7 +7416,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7464,7 +7449,7 @@
                             If the <code>"d"</code> field of <var>jwk</var> is present and
                             <var>usages</var> contains an entry which is not
                             <code>"decrypt"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -7473,7 +7458,7 @@
                             If the <code>"d"</code> field of <var>jwk</var> is not present and
                             <var>usages</var> contains an entry which is not
                             <code>"encrypt"</code> or <code>"wrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -7481,7 +7466,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not a
                             case-sensitive string match to <code>"RSA"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7489,7 +7474,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not a case-sensitive string match to <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7499,7 +7484,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7544,7 +7529,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7572,7 +7557,7 @@
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
                                     <var>normalizedAlgorithm</var>, <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7589,7 +7574,7 @@
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
                                     6.3.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7617,7 +7602,7 @@
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
                                     6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                    href="#concept-return-an-error">return an error</a> named <a
+                                    href="#concept-throw">throw</a> a <a
                                     href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7644,7 +7629,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -7706,8 +7691,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> a <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -7719,7 +7703,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                             <var>key</var> is not <code>"public"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -7908,7 +7892,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                             <var>key</var> is not <code>"private"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -8252,7 +8236,7 @@
                     <dt>Otherwise</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -8404,7 +8388,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"private"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -8419,7 +8403,7 @@
                     If <var>hashAlgorithm</var> does not describe a
                     <a href="#algorithms">registered algorithm</a> that supports the digest
                     operation,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </p>
                 </li>
@@ -8511,7 +8495,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"public"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -8527,7 +8511,7 @@
                     If <var>hashAlgorithm</var> does not describe a
                     <a href="#algorithms">registered algorithm</a> that supports the digest
                     operation,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </p>
                 </li>
@@ -8601,7 +8585,7 @@
                   <p>
                     If <var>usages</var> contains a value which is not
                     one of <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -8635,7 +8619,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-OperationError"><code>NotSupportedError</code></a>
                       </p>
                     </dd>
@@ -8644,7 +8628,7 @@
                 <li>
                   <p>
                     If performing the key generation operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -8772,7 +8756,7 @@
                           <p>
                             If <var>usages</var> contains a value which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -8786,7 +8770,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8796,7 +8780,7 @@
                             <code>algorithm</code> AlgorithmIdentifier field of <var>spki</var> is
                             not equal to the <code>id-ecPublicKey</code>
                             object identifier defined in <a href="#RFC5480">RFC 5480</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8804,7 +8788,7 @@
                           <p>
                             If the <code>parameters</code> field of the <code>algorithm</code>
                             AlgorithmIdentifier field of <var>spki</var> is absent,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8820,7 +8804,7 @@
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
                             <code>namedCurve</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8889,7 +8873,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -8902,7 +8886,7 @@
                             If <var>namedCurve</var> is defined, and not equal to the <a
                             href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
                             <var>normalizedAlgorithm</var>, <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8945,7 +8929,7 @@
                           <p>
                             If <var>usages</var> contains a value which is not
                             <code>"sign"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -8959,7 +8943,7 @@
                         <li>
                           <p>
                             If an error occurs while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8970,7 +8954,7 @@
                             <var>privateKeyInfo</var> is not equal to the
                             <code>id-ecPublicKey</code> object identifier defined in <a
                             href="#RFC5480">RFC 5480</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8979,7 +8963,7 @@
                             If the <code>parameters</code> field of the
                             <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                             of <var>privateKeyInfo</var> is not present,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8996,7 +8980,7 @@
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
                             <code>namedCurve</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9055,7 +9039,7 @@
                                 <li>
                                   <p>
                                     If an error occurred while parsing,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -9067,7 +9051,7 @@
                                     the same object identifier as the <code>parameters</code> field of the
                                     <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                                     of <var>privateKeyInfo</var>,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -9098,7 +9082,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -9111,7 +9095,7 @@
                             If <var>namedCurve</var> is defined, and not equal to the <a
                             href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
                             <var>normalizedAlgorithm</var>, <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9159,7 +9143,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9171,7 +9155,7 @@
                             if the <code>"d"</code> field is not present and <var>usages</var> contains
                             a value which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -9179,7 +9163,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"EC"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9187,7 +9171,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"sig"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9197,7 +9181,7 @@
                             is invalid according to the requirements of <a href="#jwk">JSON Web
                             Key</a>, or it does not contain all of the specified <var>usages</var>
                             values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9205,7 +9189,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9220,7 +9204,7 @@
                             If <var>namedCurve</var> is not equal to the <a
                             href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
                             <var>normalizedAlgorithm</var>, <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9264,7 +9248,7 @@
                                     </dd>
                                     <dt>otherwise:</dt>
                                     <dd>
-                                      <a href="#concept-return-an-error">Return an error</a> named
+                                      <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                   </dl>
@@ -9272,8 +9256,7 @@
                                 <li>
                                   <p>
                                     If <var>algNamedCurve</var> is defined, and is not equal to
-                                    <var>namedCurve</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>namedCurve</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -9285,7 +9268,7 @@
                                           <p>
                                             If <var>jwk</var> does not meet the requirements of Section
                                             6.2.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                            href="#concept-return-an-error">return an error</a> named <a
+                                            href="#concept-throw">throw</a> a <a
                                             href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -9313,7 +9296,7 @@
                                           <p>
                                             If <var>jwk</var> does not meet the requirements of Section
                                             6.2.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                            href="#concept-return-an-error">return an error</a> named <a
+                                            href="#concept-throw">throw</a> a <a
                                             href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -9357,7 +9340,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -9394,7 +9377,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -9421,8 +9404,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -9434,7 +9416,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"public"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -9583,7 +9565,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"private"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -9889,7 +9871,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -9984,7 +9966,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                     <code>"deriveKey"</code> or <code>"deriveBits"</code>
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -10019,7 +10001,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-OperationError"><code>NotSupportedError</code></a>
                       </p>
                     </dd>
@@ -10028,7 +10010,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -10148,7 +10130,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"private"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -10163,7 +10145,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>publicKey</var> is not <code>"public"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -10174,8 +10156,7 @@
                     <var>publicKey</var> is not equal to the <a
                     href="#dfn-EcKeyAlgorithm-namedCurve">namedCurve</a> property of the [[<a
                     href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                    <var>key</var>, then <a href="#concept-return-an-error">return an error</a>
-                    named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -10224,7 +10205,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-OperationError"><code>NotSupportedError</code></a>
                       </p>
                     </dd>
@@ -10234,7 +10215,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -10250,7 +10231,7 @@
                           <var>length</var>:
                         </dt>
                         <dd>
-                          <a href="#concept-return-an-error">Return an error</a> named
+                          <a href="#concept-throw">throw</a> an
                           <a href="#dfn-OperationError"><code>OperationError</code></a>.
                         </dd>
                         <dt>Otherwise:</dt>
@@ -10276,7 +10257,7 @@
                         <li>
                           <p>
                             If <var>usages</var> is not empty
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -10290,7 +10271,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10300,7 +10281,7 @@
                             <code>algorithm</code> AlgorithmIdentifier field of <var>spki</var> is
                             not equal to the <code>id-ecPublicKey</code> or <code>id-ecDH</code>
                             object identifiers defined in <a href="#RFC5480">RFC 5480</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10308,7 +10289,7 @@
                           <p>
                             If the <code>parameters</code> field of the <code>algorithm</code>
                             AlgorithmIdentifier field of <var>spki</var> is absent,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10324,7 +10305,7 @@
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
                             <code>namedCurve</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10393,7 +10374,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10406,7 +10387,7 @@
                             If <var>namedCurve</var> is defined, and not equal to the <a
                             href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
                             <var>normalizedAlgorithm</var>, <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10449,7 +10430,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"deriveKey"</code> or <code>"deriveBits"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -10463,7 +10444,7 @@
                         <li>
                           <p>
                             If an error occurs while parsing,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10474,7 +10455,7 @@
                             <var>privateKeyInfo</var> is not equal to the
                             <code>id-ecPublicKey</code> or <code>id-ecDH</code> object identifiers
                             defined in <a href="#RFC5480">RFC 5480</a>,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10483,7 +10464,7 @@
                             If the <code>parameters</code> field of the
                             <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                             of <var>privateKeyInfo</var> is not present,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10500,7 +10481,7 @@
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
                             <code>namedCurve</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10559,7 +10540,7 @@
                                 <li>
                                   <p>
                                     If an error occurred while parsing,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10571,7 +10552,7 @@
                                     the same object identifier as the <code>parameters</code> field of the
                                     <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                                     of <var>privateKeyInfo</var>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10602,7 +10583,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10615,7 +10596,7 @@
                             If <var>namedCurve</var> is defined, and not equal to the <a
                             href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
                             <var>normalizedAlgorithm</var>, <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10663,7 +10644,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10672,7 +10653,7 @@
                             If the <code>"d"</code> field is present and if <var>usages</var>
                             contains an entry which is not
                             <code>"deriveKey"</code> or <code>"deriveBits"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -10680,7 +10661,7 @@
                           <p>
                             If the <code>"d"</code> field is present and if <var>usages</var> is not
                             empty
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -10688,14 +10669,14 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is
                             to <code>"EC"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10704,15 +10685,14 @@
                             If the <code>"key_ops"</code> field of <var>jwk</var> is present, and
                             is invalid according to the requirements of <a href="#jwk">JSON Web
                             Key</a>, or it does not contain all of the specified <var>usages</var>
-                            values, then <a href="#concept-return-an-error">return an error</a>
-                            named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            values, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10727,7 +10707,7 @@
                             If <var>namedCurve</var> is not equal to the <a
                             href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
                             <var>normalizedAlgorithm</var>, <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> a <a
                             href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10746,7 +10726,7 @@
                                       <p>
                                         If <var>jwk</var> does not meet the requirements of Section
                                         6.2.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                        href="#concept-return-an-error">return an error</a> named <a
+                                        href="#concept-throw">throw</a> a <a
                                         href="#dfn-DataError"><code>DataError</code></a>.
                                       </p>
                                     </li>
@@ -10774,7 +10754,7 @@
                                       <p>
                                         If <var>jwk</var> does not meet the requirements of Section
                                         6.2.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a
-                                        href="#concept-return-an-error">return an error</a> named <a
+                                        href="#concept-throw">throw</a> a <a
                                         href="#dfn-DataError"><code>DataError</code></a>.
                                       </p>
                                     </li>
@@ -10814,7 +10794,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10856,21 +10836,21 @@
                             If the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a>
                             member of <var>normalizedAlgorithm</var> is not a
                             <a href="#dfn-NamedCurve">named curve</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If <var>usages</var> is not the empty list,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If <var>extractable</var> is false,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> an
                             <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -10915,7 +10895,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10980,8 +10960,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -10993,7 +10972,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"public"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -11135,7 +11114,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"private"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -11441,7 +11420,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"public"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -11613,7 +11592,7 @@
                     If the <a href="#dfn-AesCtrParams-counter">counter</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11622,7 +11601,7 @@
                     If the <a href="#dfn-AesCtrParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is zero or is greater
                     than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11657,7 +11636,7 @@
                     If the <a href="#dfn-AesCtrParams-counter">counter</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11666,7 +11645,7 @@
                     If the <a href="#dfn-AesCtrParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is zero or is greater
                     than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11701,7 +11680,7 @@
                     If <var>usages</var> contains any entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -11710,7 +11689,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11725,7 +11704,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11789,7 +11768,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -11806,7 +11785,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11825,7 +11804,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                              <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11833,7 +11812,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11849,26 +11828,26 @@
                             <dd>
                               If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                               not <code>"A128CTR"</code>, then <a
-                              href="#concept-return-an-error">return an error</a> named <a
+                              href="#concept-throw">throw</a> a <a
                               href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>
                               If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                               not <code>"A192CTR"</code>, then <a
-                              href="#concept-return-an-error">return an error</a> named <a
+                              href="#concept-throw">throw</a> a <a
                               href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>
                               If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                               not <code>"A256CTR"</code>, then <a
-                              href="#concept-return-an-error">return an error</a> named <a
+                              href="#concept-throw">throw</a> a <a
                               href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                           </dl>
                         </li>
@@ -11876,7 +11855,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11886,7 +11865,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11894,7 +11873,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11902,7 +11881,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -11952,8 +11931,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -12041,7 +12019,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -12061,7 +12039,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
@@ -12163,7 +12141,7 @@
                     If the <a href="#dfn-AesCbcParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12202,7 +12180,7 @@
                     If the <a href="#dfn-AesCbcParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12227,7 +12205,7 @@
                   <p>
                     If <var>p</var> is zero or greater than 16, or if any of the last <var>p</var>
                     octets of <var>paddedPlaintext</var> have a value which is not <var>p</var>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12252,7 +12230,7 @@
                     If <var>usages</var> contains any entry which is not
                      one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -12261,7 +12239,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12276,7 +12254,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12340,7 +12318,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -12357,7 +12335,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12376,7 +12354,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             to <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12384,7 +12362,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12399,21 +12377,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128CBC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192CBC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256CBC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -12422,7 +12400,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12432,7 +12410,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or                           
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12440,7 +12418,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12448,7 +12426,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                     </dd>
                   </dl>
@@ -12497,8 +12475,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -12585,7 +12562,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -12605,7 +12582,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12704,7 +12681,7 @@
                 <li>
                   <p>
                     If <var>length</var> is zero or greater than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12736,7 +12713,7 @@
                 <li>
                   <p>
                     If <var>length</var> is zero or greater than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12764,7 +12741,7 @@
                   <p>
                     If <var>usages</var> contains any entry which is not
                      <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -12773,7 +12750,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12787,7 +12764,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12850,7 +12827,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                      <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -12867,7 +12844,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12886,7 +12863,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             to <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12894,7 +12871,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12909,21 +12886,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128CMAC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192CMAC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256CMAC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -12932,7 +12909,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12942,7 +12919,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12950,7 +12927,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12958,7 +12935,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -13007,8 +12984,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13096,7 +13072,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -13116,7 +13092,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13213,7 +13189,7 @@
                   <p>
                     If <var>plaintext</var> has a length greater than 2^39 - 256
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13222,7 +13198,7 @@
                     If the <a href="#dfn-AesGcmParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> has a length greater than 2^64 - 1
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13231,7 +13207,7 @@
                     If the <a href="#dfn-AesGcmParams-additionalData">additionalData</a> member
                     of <var>normalizedAlgorithm</var> is present and has a length
                     greater than 2^64 - 1 bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13247,7 +13223,7 @@
                      <var>normalizedAlgorithm</var></dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                   </dl>
@@ -13299,7 +13275,7 @@
                      <var>normalizedAlgorithm</var></dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                   </dl>
@@ -13307,7 +13283,7 @@
                 <li>
                   <p>
                     If <var>plaintext</var> has a length less than <var>tagLength</var> bits,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13316,7 +13292,7 @@
                     If the <a href="#dfn-AesGcmParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> has a length greater than 2^64 - 1
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13326,7 +13302,7 @@
                     of <var>normalizedAlgorithm</var> is present and has a length
                     greater than 2^64 - 1
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13370,7 +13346,7 @@
                     <dt>If the result of the algorithm is the indication of inauthenticity,
                     "<var>FAIL</var>":</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>
                     </dd>
                     <dt>Otherwise:</dt>
@@ -13393,7 +13369,7 @@
                     If <var>usages</var> contains any entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -13402,7 +13378,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13417,7 +13393,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13481,7 +13457,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -13498,7 +13474,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13517,7 +13493,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13525,7 +13501,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13540,21 +13516,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128GCM"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192GCM"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256GCM"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -13563,7 +13539,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13573,7 +13549,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13581,7 +13557,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13589,7 +13565,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -13638,8 +13614,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13727,7 +13702,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -13747,7 +13722,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13842,7 +13817,7 @@
                   <p>
                     If the <a href="#dfn-AesCfbParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16 bytes, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13872,7 +13847,7 @@
                   <p>
                     If the <a href="#dfn-AesCfbParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16 bytes, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13902,15 +13877,14 @@
                   <p>
                     If <var>usages</var> contains any entry which is not one of
                     <code>"encrypt"</code>, <code>"decrypt"</code>, <code>"wrapKey"</code> or
-                    <code>"unwrapKey"</code>, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <code>"unwrapKey"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of 128, 192 or 256, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13924,7 +13898,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13988,7 +13962,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -14006,7 +13980,7 @@
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
                             
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14025,7 +13999,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14033,7 +14007,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14048,21 +14022,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128CFB8"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192CFB8"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256CFB8"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                           </dl>
                         </li>
@@ -14070,7 +14044,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14080,7 +14054,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14088,7 +14062,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14096,7 +14070,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -14158,8 +14132,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -14247,7 +14220,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -14267,7 +14240,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> property of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -14351,7 +14324,7 @@
                 <li>
                   <p>
                     If <var>plaintext</var> is not a multiple of 64 bits in length,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> an
                             <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -14384,7 +14357,7 @@
                 <li>
                   <p>
                     If the Key Unwrap operation returns an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -14402,7 +14375,7 @@
                   <p>
                     If <var>usages</var> contains any entry which is not one of
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> a <a
                     href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -14410,14 +14383,14 @@
                   <p>
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> property of
                     <var>normalizedAlgorithm</var> is not equal to one of 128, 192 or 256, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If the key generation step fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -14481,7 +14454,7 @@
                     If <var>usages</var> contains an entry which is not
                      one of <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
                     
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -14499,7 +14472,7 @@
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
                             
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14518,7 +14491,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14526,7 +14499,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14541,21 +14514,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128KW"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192KW"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256KW"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -14564,7 +14537,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14574,7 +14547,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14582,14 +14555,14 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.                          </p>
                         </li>
                       </ol>
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -14638,8 +14611,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -14726,7 +14698,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -14746,7 +14718,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -14916,8 +14888,7 @@
                 <li>
                   <p>
                     If <var>usages</var> contains any entry which is not <code>"sign"</code> or
-                    <code>"verify"</code>, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <code>"verify"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -14942,7 +14913,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                   </dl>
@@ -14956,7 +14927,7 @@
                 <li>
                   <p>
                     If the key generation step fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -15034,7 +15005,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                     <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -15065,7 +15036,7 @@
                             </dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                             </dd>
                           </dl>
@@ -15085,7 +15056,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -15093,7 +15064,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -15128,7 +15099,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS1"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -15139,7 +15110,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS256"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -15150,7 +15121,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS384"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -15161,7 +15132,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS512"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -15180,7 +15151,7 @@
                                     </dd>
                                     <dt>Otherwise:</dt>
                                     <dd>
-                                      <a href="#concept-return-an-error">Return an error</a> named
+                                      <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                   </dl>
@@ -15193,7 +15164,7 @@
                                 <li>
                                   <p>
                                     If the <code>alg</code> field of <var>jwk</var> is not present,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -15250,7 +15221,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"sign"</code>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -15260,7 +15231,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -15268,7 +15239,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -15276,7 +15247,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -15290,7 +15261,7 @@
                 <li>
                   <p>
                     If <var>length</var> is zero
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
@@ -15307,7 +15278,7 @@
                           <var>normalizedAlgorithm</var> is greater than <var>length</var>:
                         </dt>
                         <dd>
-                          <a href="#concept-return-an-error">Return an error</a> named
+                          <a href="#concept-throw">throw</a> a
                           <a href="#dfn-DataError"><code>DataError</code></a>.
                         </dd>
                         <dt>
@@ -15316,7 +15287,7 @@
                           <var>length</var> minus eight:
                         </dt>
                         <dd>
-                          <a href="#concept-return-an-error">Return an error</a> named
+                          <a href="#concept-throw">throw</a> a
                           <a href="#dfn-DataError"><code>DataError</code></a>.
                         </dd>
                         <dt>
@@ -15381,8 +15352,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15513,7 +15483,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -15541,7 +15511,7 @@
                           <p>
                             If the <a href="#dfn-HmacImportParams-hash">hash</a> member
                             of <var>normalizedDerivedKeyAlgorithm</var> is not present,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -15565,7 +15535,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                     </dd>
                   </dl>
@@ -15680,7 +15650,7 @@
                   <p>
                     If <var>usages</var> contains a value which is not
                     one of <code>"deriveKey"</code> or <code>"deriveBits"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -15697,7 +15667,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -15823,7 +15793,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>key</var> is not <code>"private"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -15839,7 +15809,7 @@
                     If the <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the [[<a
                     href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
                     <var>publicKey</var> is not <code>"DH"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> a <a
                     href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
@@ -15847,7 +15817,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                     <var>publicKey</var> is not <code>"public"</code>, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> a <a
                     href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
@@ -15858,8 +15828,7 @@
                     <var>publicKey</var> is not equal to the <a
                     href="#dfn-DhKeyAlgorithm-prime">prime</a> attribute of the [[<a
                     href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                    <var>key</var>, then <a href="#concept-return-an-error">return an error</a>
-                    named <a href="#dfn-DataError"><code>DataError</code></a>.
+                    <var>key</var>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15869,8 +15838,7 @@
                     <var>publicKey</var> is not equal to the <a
                     href="#dfn-DhKeyAlgorithm-generator">generator</a> attribute of the [[<a
                     href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                    <var>key</var>, then <a href="#concept-return-an-error">return an error</a>
-                    named <a href="#dfn-DataError"><code>DataError</code></a>.
+                    <var>key</var>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15885,7 +15853,7 @@
                   <dl class="switch">
                     <dt>If performing the operation results in an error:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                     <dt>Otherwise:</dt>
@@ -15901,7 +15869,7 @@
                       <var>length</var>:
                     </dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                     <dt>Otherwise:</dt>
@@ -15926,14 +15894,14 @@
                     <li>
                       <p>
                         If <var>usages</var> is not empty
-                        then <a href="#concept-return-an-error">return an error</a> named
+                        then <a href="#concept-throw">throw</a> a
                         <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
                     <li>
                       <p>
                         If <var>extractable</var> is false,
-                        then <a href="#concept-return-an-error">return an error</a> named
+                        then <a href="#concept-throw">throw</a> a
                         <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
@@ -16009,7 +15977,7 @@
                     <li>
                       <p>
                         If <var>usages</var> is not empty
-                        then <a href="#concept-return-an-error">return an error</a> named
+                        then <a href="#concept-throw">throw</a> a
                         <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
@@ -16023,7 +15991,7 @@
                     <li>
                       <p>
                         If an error occurred while parsing, then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
@@ -16033,7 +16001,7 @@
                         <code>algorithm</code> AlgorithmIdentifier field of <var>spki</var> is not
                         equivalent to the <code>dhKeyAgreement</code> OID defined in Section 9 of
                         [<a href="#PKCS3">PKCS #3</a>], then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
@@ -16041,7 +16009,7 @@
                       <p>
                         If the <code>parameters</code> field of the <code>algorithm</code>
                         AlgorithmIdentifier field of <var>spki</var> is absent, then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
@@ -16055,7 +16023,7 @@
                       <p>
                         If <var>params</var> is not an instance of the <code>DHParameter</code>
                         ASN.1 type defined in Section 9 of <a href="#PKCS3">PKCS #3</a>, then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
@@ -16123,7 +16091,7 @@
                       <p>
                         If <var>usages</var> contains a value which is not one of
                         <code>"deriveKey"</code> or <code>"deriveBits"</code>, then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
@@ -16137,7 +16105,7 @@
                     <li>
                       <p>
                         If an error occurred while parsing, then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
@@ -16147,8 +16115,7 @@
                         <code>algorithm</code> AlgorithmIdentifier field of
                         <var>privateKeyInfo</var> is not equivalent to the
                         <code>dhKeyAgreement</code> OID defined in Section 9 of [<a
-                        href="#PKCS3">PKCS #3</a>], then <a href="#concept-return-an-error">return
-                        an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        href="#PKCS3">PKCS #3</a>], then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -16156,7 +16123,7 @@
                         If the <code>parameters</code> field of the
                         <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field of
                         <var>privateKeyInfo</var> is absent, then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
@@ -16171,7 +16138,7 @@
                       <p>
                         If <var>params</var> is not an instance of the <code>DHParameter</code>
                         ASN.1 type defined in Section 9 of <a href="#PKCS3">PKCS #3</a>, then <a
-                        href="#concept-return-an-error">return an error</a> named <a
+                        href="#concept-throw">throw</a> a <a
                         href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
@@ -16230,7 +16197,7 @@
                 </dd>
                 <dt>Otherwise:</dt>
                 <dd>
-                  <a href="#concept-return-an-error">Return an error</a> named
+                  <a href="#concept-throw">throw</a> a
                   <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </dd>
               </dl>
@@ -16242,8 +16209,7 @@
                   <p>
                     If the underlying cryptographic key material represented by the [[<a
                     href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -16292,7 +16258,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"public"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -16375,7 +16341,7 @@
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
                             of <var>key</var> is not <code>"private"</code>, then <a
-                            href="#concept-return-an-error">return an error</a> named <a
+                            href="#concept-throw">throw</a> an <a
                             href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -16451,7 +16417,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>                  
                   </dl>
@@ -16561,7 +16527,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -16678,7 +16644,7 @@
                 <li>
                   <p>
                     If the operation fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -16716,8 +16682,7 @@
                       </dt>
                       <dd>
                         <p>
-                          <a href="#concept-return-an-error">Return an error</a> with the same name
-                          as <var>result</var>.
+                          <a href="#concept-throw">throw</a> <var>result</var>.
                         </p>
                       </dd>
                     </dl>
@@ -16735,7 +16700,7 @@
                             If <var>usages</var> contains a value that is not 
                             <code>"deriveKey"</code> or <code>"deriveBits"</code>,
                             
-                                then <a href="#concept-return-an-error">return an error</a> named
+                                then <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -16778,7 +16743,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -16882,8 +16847,7 @@
               <ol>
                 <li>
                   <p>
-                    If <var>length</var> is null, then <a href="#concept-return-an-error">return
-                    an error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    If <var>length</var> is null, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -16891,7 +16855,7 @@
                     If the <a href="#dfn-HkdfCtrParams-hash">hash</a> member of
                     <var>normalizedAlgorithm</var> does not describe a <a href="#algorithms">
                     recognized algorithm</a> that supports the digest operation, then
-                    <a href="#concept-return-an-error">return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                   </p>
                 </li>
@@ -16972,7 +16936,7 @@
                 <li>
                   <p>
                     If the key derivation operation fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -17001,7 +16965,7 @@
                             If <var>usages</var> contains a value that is not 
                              <code>"deriveKey"</code> or <code>"deriveBits"</code>,
                             
-                                then <a href="#concept-return-an-error">return an error</a> named
+                                then <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -17044,7 +17008,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -17141,7 +17105,7 @@
                 <li>
                   <p>
                     If <var>length</var> is null or is not a multiple of 8, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> an <a
                     href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -17150,7 +17114,7 @@
                     If the <a href="#dfn-Pbkdf2Params-hash">hash</a> member of
                     <var>normalizedAlgorithm</var> does not describe a <a href="#algorithms">
                     recognized algorithm</a> that supports the digest operation, then
-                    <a href="#concept-return-an-error">return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                   </p>
                 </li>
@@ -17179,7 +17143,7 @@
                 <li>
                   <p>
                     If the key derivation operation fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -17197,14 +17161,13 @@
                   <p>
                     If <var>usages</var> contains a value that is not
                     <code>"deriveKey"</code> or <code>"deriveBits"</code>, then
-                    <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If <var>extractable</var> is true, then <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> a <a
                     href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -17269,7 +17232,7 @@
                 <li>
                   <p>
                     If <var>format</var> is not <code>"raw"</code>, <a
-                    href="#concept-return-an-error">return an error</a> named <a
+                    href="#concept-throw">throw</a> a <a
                     href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                   </p>
                 </li>
@@ -17277,8 +17240,7 @@
                   <p>
                     If <var>usages</var> contains a value that is not
                     <code>"deriveKey"</code>  or <code>"deriveBits"</code>, then
-                    <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
--- a/spec/Overview.html	Wed Oct 22 14:11:57 2014 -0700
+++ b/spec/Overview.html	Wed Oct 22 15:50:08 2014 -0700
@@ -729,7 +729,7 @@
             <p>
               If <var>exactData</var> was specified, and all of the bytes of <var>data</var> were
               not consumed during the parsing phase, then
-              <a href="#concept-return-an-error">return an error</a> named
+              <a href="#concept-throw">throw</a> a
               <a href="#dfn-DataError"><code>DataError</code></a>.
             </p>
           </li>
@@ -790,7 +790,7 @@
           </li>
           <li>
             <p>
-              If the <code>"kty"</code> field of <var>key</var> is not defined, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+              If the <code>"kty"</code> field of <var>key</var> is not defined, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
             </p>
           </li>
           <li>
@@ -948,14 +948,14 @@
               <li>
                 <p>
                   If <var>array</var> is not of an integer type (i.e., Int8Array, Uint8Array,
-                  Int16Array, Uint16Array, Int32Array, or Uint32Array), throw a
+                  Int16Array, Uint16Array, Int32Array, or Uint32Array), <a href="#concept-throw">throw</a> a
                   <code>TypeMismatchError</code> and
                   <a href="#terminate-the-algorithm">terminate the algorithm</a>.
                 </p>
               </li>
               <li>
                 <p>
-                  If the <code>byteLength</code> of <var>array</var> is greater than 65536, throw a
+                  If the <code>byteLength</code> of <var>array</var> is greater than 65536, <a href="#concept-throw">throw</a> a
                   <code>QuotaExceededError</code> and
                   <a href="#terminate-the-algorithm">terminate the algorithm</a>.
                 </p>
@@ -1394,7 +1394,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1406,13 +1406,13 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
-                  <var>key</var> does not contain an entry that is <code>"encrypt"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> does not contain an entry that is <code>"encrypt"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
@@ -1482,7 +1482,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1494,13 +1494,13 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
-                  <var>key</var> does not contain an entry that is <code>"decrypt"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> does not contain an entry that is <code>"decrypt"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
@@ -1570,7 +1570,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1582,13 +1582,13 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
-                  <var>key</var> does not contain an entry that is <code>"sign"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> does not contain an entry that is <code>"sign"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
@@ -1663,7 +1663,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1675,13 +1675,13 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
-                  <var>key</var> does not contain an entry that is <code>"verify"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>key</var> does not contain an entry that is <code>"verify"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
@@ -1750,7 +1750,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1817,7 +1817,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1827,7 +1827,7 @@
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>,
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> an
                   <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
@@ -1845,8 +1845,7 @@
                     <p>
                       If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                       <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                      <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                      named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                      <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                     </p>                  
                   </dd>
                   <dt>If <var>result</var> is a <a href="#dfn-CryptoKeyPair">CryptoKeyPair</a> object:</dt>
@@ -1855,8 +1854,7 @@
                       If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of the
                       <a href="#dfn-CryptoKeyPair-privateKey">privateKey</a> attribute of
                       <var>result</var> is the empty sequence, then
-                      <a href="#concept-return-an-error">return an error</a>
-                      named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                      <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                     </p>
                   </dd>
                 </dl>
@@ -1926,7 +1924,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -1936,7 +1934,7 @@
                 <p>
                   If the <a href="#dfn-Algorithm-name">name</a> member of
                   <var>normalizedAlgorithm</var> does not identify a <a href="#algorithms">registered algorithm</a> that supports the derive bits
-                  operation, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                  operation, then <a href="#concept-throw">throw</a> a  <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>             
               <li>
@@ -1944,7 +1942,7 @@
                   If the <a href="#dfn-Algorithm-name">name</a> member of
                   <var>normalizedDerivedKeyAlgorithm</var> does not identify a
                   <a href="#algorithms">registered algorithm</a> that supports the get key length
-                  operation, then <a href="#concept-return-an-error">return an error</a> named
+                  operation, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
@@ -1954,21 +1952,21 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>baseKey</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>baseKey</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>baseKey</var> does not contain an entry that is <code>"deriveKey"</code>,
-                  then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>, 
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> an
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -1999,8 +1997,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                   <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                  <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                  <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                 </p>
               </li>
               <li>
@@ -2056,7 +2053,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2068,14 +2065,14 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>baseKey</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>baseKey</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>baseKey</var> does not contain an entry that is <code>"deriveBits"</code>,
-                  then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
@@ -2144,7 +2141,7 @@
                         <p>
                           If the <code>keyData</code> parameter passed to the
                           <a href="#dfn-SubtleCrypto-method-importKey">importKey</a> method is a
-                          JsonWebKey dictionary, <a href="#concept-return-an-error">return an error</a> named
+                          JsonWebKey dictionary, <a href="#concept-throw">throw</a> a
                           <a href="#dfn-TypeError"><code>TypeError</code></a>.
                         </p>
                       </li>
@@ -2167,7 +2164,7 @@
                         <p>
                           If the <code>keyData</code> parameter passed to the
                           <a href="#dfn-SubtleCrypto-method-importKey">importKey</a> method is not a
-                          JsonWebKey dictionary, <a href="#concept-return-an-error">return an error</a> named
+                          JsonWebKey dictionary, <a href="#concept-throw">throw</a> a
                           <a href="#dfn-TypeError"><code>TypeError</code></a>.
                         </p>
                       </li>
@@ -2184,7 +2181,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2194,7 +2191,7 @@
                 <p>
                   If <var>format</var> is not
                   a <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a> named
+                  format value</a>, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2202,7 +2199,7 @@
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>,
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2219,8 +2216,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                   <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                  <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError">SyntaxError</a>.
+                  <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError">SyntaxError</a>.
                 </p>
               </li>
               <li>
@@ -2280,7 +2276,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2290,7 +2286,7 @@
                 <p>
                   If <var>format</var> is not a
                   <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a> named
+                  format value</a>, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2298,14 +2294,13 @@
                 <p>
                   If the <a href="#dfn-Algorithm-name">name</a> member of of the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
                   <var>key</var> does not identify a <a href="#algorithms">registered algorithm</a>
-                  that supports the export key operation, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                  that supports the export key operation, then <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-extractable">extractable</a>]] internal slot
-                  of <var>key</var> is false, then <a href="#concept-return-an-error">return an
-                  error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  of <var>key</var> is false, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>         
               </li>
               <li>
@@ -2374,7 +2369,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2385,15 +2380,14 @@
                   If the <a href="#dfn-Algorithm-name">name</a> member of
                   <var>normalizedAlgorithm</var> does not identify a
                   <a href="#algorithms">registered algorithm</a> that supports the encrypt or wrap
-                  key operation, then <a href="#concept-return-an-error">return an error</a> named
+                  key operation, then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If <var>format</var> is not a <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                  format value</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
               <li>
@@ -2402,27 +2396,26 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>wrappingKey</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>wrappingKey</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>wrappingKey</var> does not contain an entry that is <code>"wrapKey"</code>,
-                  then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the algorithm identified by the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>key</var> does not support the export key operation, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                  <var>key</var> does not support the export key operation, then <a href="#concept-throw">throw</a> a  <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-extractable">extractable</a>]] internal slot
-                  of <var>key</var> is false, then <a href="#concept-return-an-error">return an
-                  error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  of <var>key</var> is false, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>         
               </li>
               <li>
@@ -2508,7 +2501,7 @@
                   </dd>
                   <dt>Otherwise:</dt>
                   <dd>
-                    <a href="#concept-return-an-error">Return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </dd>
                 </dl>
@@ -2598,7 +2591,7 @@
               <li>
                 <p>
                   If the following steps or referenced procedures say to
-                  <a href="#concept-return-an-error">return an error</a>,
+                  <a href="#concept-throw">throw</a> an error,
                   reject <var>promise</var> with
                   the returned error and then
                   <a href="#terminate-the-algorithm">terminate the algorithm.</a>
@@ -2610,29 +2603,27 @@
                   <var>normalizedAlgorithm</var> is not equal to the
                   <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the
                   [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                  <var>unwrappingKey</var> then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <var>unwrappingKey</var> then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-usages">usages</a>]] internal slot of
                   <var>unwrappingKey</var> does not contain an entry that is
-                  <code>"unwrapKey"</code>, then <a href="#concept-return-an-error">return an
-                  error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                  <code>"unwrapKey"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If <var>format</var> is not a <a href="#dfn-RecognizedKeyFormats">recognized key
-                  format value</a>, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                  format value</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
               <li>
                 <p>
                   If <var>usages</var> includes a value that is not a
                   <a href="#dfn-RecognizedKeyUsage">recognized key usage value</a>,
-                  then <a href="#concept-return-an-error">return an error</a> named
+                  then <a href="#concept-throw">throw</a> a
                   <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
@@ -2657,7 +2648,7 @@
                   </dd>
                   <dt>Otherwise:</dt>
                   <dd>
-                    <a href="#concept-return-an-error">Return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </dd>
                 </dl>
@@ -2695,8 +2686,7 @@
                 <p>
                   If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
                   <var>result</var> is <code>"secret"</code> or <code>"private"</code> and
-                  <var>usages</var> is empty, then <a href="#concept-return-an-error">return an error</a>
-                  named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                  <var>usages</var> is empty, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                 </p>
               </li>
               <li>
@@ -2767,10 +2757,11 @@
           </table>
           <p>
             When this specification says to
-            <dfn id="concept-return-an-error">return an error</dfn> named <var>error</var>,
-            where <var>error</var>
-            is one of the above error names, the user agent must return a
-            <a href="#dfn-DOMException">DOMException</a> with name <var>error</var>.
+            <dfn id="concept-throw">throw</dfn> an error, the user agent must
+            <a href="http://heycam.github.io/webidl/#dfn-throw">throw</a> an error as described in
+            [<a href="#WebIDL">WEBIDL</a>]. When this occurs in a sub-algorithm,
+            this results in termination of execution of the sub-algorithm and all ancestor algorithms
+            until one is reached that explicitly describes procedures for catching exceptions.
           </p>
         </div>
       </div>
@@ -3755,7 +3746,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -3769,7 +3760,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -3788,7 +3779,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -3807,7 +3798,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -3827,7 +3818,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                      <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -3843,7 +3834,7 @@
                 <li>
                   <p>
                     If generation of the key pair fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -3996,7 +3987,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"verify"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -4010,7 +4001,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4094,7 +4085,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4121,7 +4112,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -4141,7 +4132,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4167,7 +4158,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                              <code>"sign"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -4181,7 +4172,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4265,7 +4256,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4292,7 +4283,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -4312,7 +4303,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4348,7 +4339,7 @@
                             is not present and
                             <var>usages</var> contains an entry which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -4356,7 +4347,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not a
                             case-sensitive string match to <code>"RSA"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4364,7 +4355,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not a case-sensitive string match to <code>"sig"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4374,7 +4365,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -4448,7 +4439,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4475,7 +4466,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -4492,7 +4483,7 @@
                                     If <var>jwk</var> does not meet the requirements of
                                     Section 6.3.2 of <a href="#jwa">JSON Web
                                     Algorithms</a>,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -4518,7 +4509,7 @@
                                 <li>
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
-                                    6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -4543,7 +4534,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -4604,8 +4595,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -4616,7 +4606,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -4671,7 +4661,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -4795,7 +4785,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -4866,7 +4856,7 @@
                     <dt>Otherwise</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -4963,7 +4953,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -4981,7 +4971,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -5000,7 +4990,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -5021,7 +5011,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -5042,7 +5032,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                     <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -5058,7 +5048,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -5205,7 +5195,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -5219,7 +5209,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5265,7 +5255,7 @@
                                     If <var>params</var> is not defined, or is not an instance of
                                     the <code>RSASSA-PSS-params</code> ASN.1 type defined in
                                     <a href="#RFC3447">RFC3447</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5334,7 +5324,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -5347,7 +5337,7 @@
                                   <p>
                                     If the <code>algorithm</code> object identifier field of the
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
-                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -5356,8 +5346,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -5365,7 +5354,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -5390,7 +5379,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -5410,7 +5399,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5436,7 +5425,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"sign"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -5449,7 +5438,7 @@
                         </li>
                         <li>
                           <p>
-                            If an error occurred while parsing, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            If an error occurred while parsing, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -5494,7 +5483,7 @@
                                     If <var>params</var> is not defined, or is not an instance of
                                     the <code>RSASSA-PSS-params</code> ASN.1 type defined in
                                     <a href="#RFC3447">RFC3447</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
@@ -5563,7 +5552,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -5575,7 +5564,7 @@
                                   <p>
                                     If the <code>algorithm</code> object identifier field of the
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
-                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -5584,8 +5573,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -5593,7 +5581,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -5618,7 +5606,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -5638,7 +5626,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5674,7 +5662,7 @@
                             is not present and
                             <var>usages</var> contains an entry which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -5682,7 +5670,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not a
                             case-sensitive string match to <code>"RSA"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5690,7 +5678,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not a case-sensitive string match to <code>"sig"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5700,7 +5688,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -5768,7 +5756,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5795,7 +5783,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -5812,7 +5800,7 @@
                                     If <var>jwk</var> does not meet the requirements of
                                     Section 6.3.2 of <a href="#jwa">JSON Web
                                     Algorithms</a>,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -5838,7 +5826,7 @@
                                 <li>
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
-                                    6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -5863,7 +5851,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -5924,8 +5912,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -5936,7 +5923,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -6118,7 +6105,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -6433,7 +6420,7 @@
                     <dt>Otherwise</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -6532,7 +6519,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of <var>key</var>
                     is not <code>"public"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -6559,7 +6546,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -6579,7 +6566,7 @@
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of <var>key</var>
                     is not <code>"private"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
@@ -6606,7 +6593,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -6627,7 +6614,7 @@
                     If <var>usages</var> contains an entry which is not
                     <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -6643,7 +6630,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -6793,7 +6780,7 @@
                             If <var>usages</var> contains an entry which is not
                             <code>"encrypt"</code> or
                             <code>"wrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -6807,7 +6794,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -6852,7 +6839,7 @@
                                     If <var>params</var> is not defined, or is not an instance of
                                     the <code>RSAES-OAEP-params</code> ASN.1 type defined in
                                     <a href="#RFC3447">RFC3447</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -6921,7 +6908,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -6933,7 +6920,7 @@
                                   <p>
                                     If the <code>algorithm</code> object identifier field of the
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
-                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -6942,8 +6929,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -6951,7 +6937,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -6976,7 +6962,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -6996,7 +6982,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7022,7 +7008,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"decrypt"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -7035,7 +7021,7 @@
                         </li>
                         <li>
                           <p>
-                            If an error occurred while parsing, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            If an error occurred while parsing, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -7078,7 +7064,7 @@
                                 <li>
                                   <p>
                                     If <var>params</var> is not defined, or is not an instance of
-                                    the <code>RSAES-OAEP-params</code> ASN.1 type defined in <a href="#RFC3447">RFC3447</a>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    the <code>RSAES-OAEP-params</code> ASN.1 type defined in <a href="#RFC3447">RFC3447</a>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -7150,7 +7136,7 @@
                                             If an error occured or there are no
                                             <a href="#dfn-applicable-specifications">applicable
                                             specifications</a>,
-                                            <a href="#concept-return-an-error">return an error</a> named
+                                            <a href="#concept-throw">throw</a> a
                                             <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
@@ -7162,7 +7148,7 @@
                                   <p>
                                     If the <code>algorithm</code> object identifier field of the
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
-                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    equivalent to the OID <code>id-mgf1</code> defined in <a href="#RFC3447">RFC 3447</a>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -7171,8 +7157,7 @@
                                     <code>maskGenAlgorithm</code> field of <var>params</var> is not
                                     an instance of the <code>HashAlgorithm</code> ASN.1 type that is
                                     identical in content to the <code>hashAlglorithm</code> field of
-                                    <var>params</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
+                                    <var>params</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -7180,7 +7165,7 @@
                             <dt>Otherwise:</dt>
                             <dd>
                               <p>
-                                <a href="#concept-return-an-error">Return an error</a> named
+                                <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-DataError"><code>DataError</code></a>.
                               </p>
                             </dd>
@@ -7205,7 +7190,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -7225,7 +7210,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7258,7 +7243,7 @@
                             If the <code>"d"</code> field of <var>jwk</var> is present and
                             <var>usages</var> contains an entry which is not
                             <code>"decrypt"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -7267,7 +7252,7 @@
                             If the <code>"d"</code> field of <var>jwk</var> is not present and
                             <var>usages</var> contains an entry which is not
                             <code>"encrypt"</code> or <code>"wrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -7275,7 +7260,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not a
                             case-sensitive string match to <code>"RSA"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7283,7 +7268,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not a case-sensitive string match to <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7293,7 +7278,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -7338,7 +7323,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -7365,7 +7350,7 @@
                                   <p>
                                     If <var>normalizedHash</var> is not equal to the
                                     <a href="#dfn-RsaHashedImportParams-hash">hash</a> member of
-                                    <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                               </ol>
@@ -7380,7 +7365,7 @@
                                 <li>
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
-                                    6.3.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    6.3.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -7405,7 +7390,7 @@
                                 <li>
                                   <p>
                                     If <var>jwk</var> does not meet the requirements of Section
-                                    6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    6.3.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -7430,7 +7415,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -7491,8 +7476,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> a <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -7503,7 +7487,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                            <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -7677,7 +7661,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                            <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -7993,7 +7977,7 @@
                     <dt>Otherwise</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -8144,7 +8128,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -8158,7 +8142,7 @@
                     If <var>hashAlgorithm</var> does not describe a
                     <a href="#algorithms">registered algorithm</a> that supports the digest
                     operation,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </p>
                 </li>
@@ -8249,7 +8233,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -8264,7 +8248,7 @@
                     If <var>hashAlgorithm</var> does not describe a
                     <a href="#algorithms">registered algorithm</a> that supports the digest
                     operation,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                   </p>
                 </li>
@@ -8337,7 +8321,7 @@
                   <p>
                     If <var>usages</var> contains a value which is not
                     one of <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -8371,7 +8355,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-OperationError"><code>NotSupportedError</code></a>
                       </p>
                     </dd>
@@ -8380,7 +8364,7 @@
                 <li>
                   <p>
                     If performing the key generation operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -8508,7 +8492,7 @@
                           <p>
                             If <var>usages</var> contains a value which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -8522,7 +8506,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8532,7 +8516,7 @@
                             <code>algorithm</code> AlgorithmIdentifier field of <var>spki</var> is
                             not equal to the <code>id-ecPublicKey</code>
                             object identifier defined in <a href="#RFC5480">RFC 5480</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8540,7 +8524,7 @@
                           <p>
                             If the <code>parameters</code> field of the <code>algorithm</code>
                             AlgorithmIdentifier field of <var>spki</var> is absent,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8555,7 +8539,7 @@
                             If <var>params</var> is not an instance of the
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
-                            <code>namedCurve</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <code>namedCurve</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -8622,7 +8606,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -8633,7 +8617,7 @@
                         <li>
                           <p>
                             If <var>namedCurve</var> is defined, and not equal to the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
-                            <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -8674,7 +8658,7 @@
                           <p>
                             If <var>usages</var> contains a value which is not
                             <code>"sign"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -8688,7 +8672,7 @@
                         <li>
                           <p>
                             If an error occurs while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8698,7 +8682,7 @@
                             <code>privateKeyAlgorithm</code> PrivateKeyAlgorithm field of
                             <var>privateKeyInfo</var> is not equal to the
                             <code>id-ecPublicKey</code> object identifier defined in <a href="#RFC5480">RFC 5480</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8707,7 +8691,7 @@
                             If the <code>parameters</code> field of the
                             <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                             of <var>privateKeyInfo</var> is not present,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8723,7 +8707,7 @@
                             If <var>params</var> is not an instance of the
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
-                            <code>namedCurve</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <code>namedCurve</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -8779,7 +8763,7 @@
                                 <li>
                                   <p>
                                     If an error occurred while parsing,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -8791,7 +8775,7 @@
                                     the same object identifier as the <code>parameters</code> field of the
                                     <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                                     of <var>privateKeyInfo</var>,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -8821,7 +8805,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -8832,7 +8816,7 @@
                         <li>
                           <p>
                             If <var>namedCurve</var> is defined, and not equal to the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
-                            <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -8878,7 +8862,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8890,7 +8874,7 @@
                             if the <code>"d"</code> field is not present and <var>usages</var> contains
                             a value which is not
                             <code>"verify"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -8898,7 +8882,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"EC"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8906,7 +8890,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"sig"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8916,7 +8900,7 @@
                             is invalid according to the requirements of <a href="#jwk">JSON Web
                             Key</a>, or it does not contain all of the specified <var>usages</var>
                             values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8924,7 +8908,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -8937,7 +8921,7 @@
                         <li>
                           <p>
                             If <var>namedCurve</var> is not equal to the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
-                            <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -8980,7 +8964,7 @@
                                     </dd>
                                     <dt>otherwise:</dt>
                                     <dd>
-                                      <a href="#concept-return-an-error">Return an error</a> named
+                                      <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                   </dl>
@@ -8988,8 +8972,7 @@
                                 <li>
                                   <p>
                                     If <var>algNamedCurve</var> is defined, and is not equal to
-                                    <var>namedCurve</var>, <a href="#concept-return-an-error">return an
-                                    error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                    <var>namedCurve</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
                                 <li>
@@ -9000,7 +8983,7 @@
                                         <li>
                                           <p>
                                             If <var>jwk</var> does not meet the requirements of Section
-                                            6.2.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                            6.2.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
                                         <li>
@@ -9024,7 +9007,7 @@
                                         <li>
                                           <p>
                                             If <var>jwk</var> does not meet the requirements of Section
-                                            6.2.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                            6.2.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                           </p>
                                         </li>
                                         <li>
@@ -9065,7 +9048,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -9101,7 +9084,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -9127,8 +9110,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -9139,7 +9121,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -9277,7 +9259,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -9566,7 +9548,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -9661,7 +9643,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                     <code>"deriveKey"</code> or <code>"deriveBits"</code>
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -9695,7 +9677,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-OperationError"><code>NotSupportedError</code></a>
                       </p>
                     </dd>
@@ -9704,7 +9686,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -9823,7 +9805,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -9836,7 +9818,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>publicKey</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>publicKey</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -9844,8 +9826,7 @@
                     If the <a href="#dfn-EcKeyAlgorithm-namedCurve">namedCurve</a> attribute of
                     the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
                     <var>publicKey</var> is not equal to the <a href="#dfn-EcKeyAlgorithm-namedCurve">namedCurve</a> property of the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                    <var>key</var>, then <a href="#concept-return-an-error">return an error</a>
-                    named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -9890,7 +9871,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-OperationError"><code>NotSupportedError</code></a>
                       </p>
                     </dd>
@@ -9900,7 +9881,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -9916,7 +9897,7 @@
                           <var>length</var>:
                         </dt>
                         <dd>
-                          <a href="#concept-return-an-error">Return an error</a> named
+                          <a href="#concept-throw">throw</a> an
                           <a href="#dfn-OperationError"><code>OperationError</code></a>.
                         </dd>
                         <dt>Otherwise:</dt>
@@ -9942,7 +9923,7 @@
                         <li>
                           <p>
                             If <var>usages</var> is not empty
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -9956,7 +9937,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9966,7 +9947,7 @@
                             <code>algorithm</code> AlgorithmIdentifier field of <var>spki</var> is
                             not equal to the <code>id-ecPublicKey</code> or <code>id-ecDH</code>
                             object identifiers defined in <a href="#RFC5480">RFC 5480</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9974,7 +9955,7 @@
                           <p>
                             If the <code>parameters</code> field of the <code>algorithm</code>
                             AlgorithmIdentifier field of <var>spki</var> is absent,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -9989,7 +9970,7 @@
                             If <var>params</var> is not an instance of the
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
-                            <code>namedCurve</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <code>namedCurve</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -10056,7 +10037,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10067,7 +10048,7 @@
                         <li>
                           <p>
                             If <var>namedCurve</var> is defined, and not equal to the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
-                            <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -10108,7 +10089,7 @@
                           <p>
                             If <var>usages</var> contains an entry which is not
                             <code>"deriveKey"</code> or <code>"deriveBits"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -10122,7 +10103,7 @@
                         <li>
                           <p>
                             If an error occurs while parsing,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10133,7 +10114,7 @@
                             <var>privateKeyInfo</var> is not equal to the
                             <code>id-ecPublicKey</code> or <code>id-ecDH</code> object identifiers
                             defined in <a href="#RFC5480">RFC 5480</a>,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10142,7 +10123,7 @@
                             If the <code>parameters</code> field of the
                             <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                             of <var>privateKeyInfo</var> is not present,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10158,7 +10139,7 @@
                             If <var>params</var> is not an instance of the
                             <code>ECParameters</code> ASN.1 type defined in
                             <a href="#RFC5480">RFC 5480</a> that specifies a
-                            <code>namedCurve</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <code>namedCurve</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -10216,7 +10197,7 @@
                                 <li>
                                   <p>
                                     If an error occurred while parsing,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10228,7 +10209,7 @@
                                     the same object identifier as the <code>parameters</code> field of the
                                     <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field
                                     of <var>privateKeyInfo</var>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10258,7 +10239,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10269,7 +10250,7 @@
                         <li>
                           <p>
                             If <var>namedCurve</var> is defined, and not equal to the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
-                            <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -10315,7 +10296,7 @@
                         <li>
                           <p>
                             If an error occurred while parsing,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10324,7 +10305,7 @@
                             If the <code>"d"</code> field is present and if <var>usages</var>
                             contains an entry which is not
                             <code>"deriveKey"</code> or <code>"deriveBits"</code>
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -10332,7 +10313,7 @@
                           <p>
                             If the <code>"d"</code> field is present and if <var>usages</var> is not
                             empty
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -10340,14 +10321,14 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is
                             to <code>"EC"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10356,15 +10337,14 @@
                             If the <code>"key_ops"</code> field of <var>jwk</var> is present, and
                             is invalid according to the requirements of <a href="#jwk">JSON Web
                             Key</a>, or it does not contain all of the specified <var>usages</var>
-                            values, then <a href="#concept-return-an-error">return an error</a>
-                            named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            values, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -10377,7 +10357,7 @@
                         <li>
                           <p>
                             If <var>namedCurve</var> is not equal to the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a> member of
-                            <var>normalizedAlgorithm</var>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                            <var>normalizedAlgorithm</var>, <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -10394,7 +10374,7 @@
                                     <li>
                                       <p>
                                         If <var>jwk</var> does not meet the requirements of Section
-                                        6.2.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                        6.2.2 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                       </p>
                                     </li>
                                     <li>
@@ -10418,7 +10398,7 @@
                                     <li>
                                       <p>
                                         If <var>jwk</var> does not meet the requirements of Section
-                                        6.2.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                                        6.2.1 of <a href="#jwa">JSON Web Algorithms</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                                       </p>
                                     </li>
                                     <li>
@@ -10455,7 +10435,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10496,21 +10476,21 @@
                             If the <a href="#dfn-EcKeyImportParams-namedCurve">namedCurve</a>
                             member of <var>normalizedAlgorithm</var> is not a
                             <a href="#dfn-NamedCurve">named curve</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If <var>usages</var> is not the empty list,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
                         <li>
                           <p>
                             If <var>extractable</var> is false,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> an
                             <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
@@ -10555,7 +10535,7 @@
                                     If an error occured or there are no
                                     <a href="#dfn-applicable-specifications">applicable
                                     specifications</a>,
-                                    <a href="#concept-return-an-error">return an error</a> named
+                                    <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -10617,8 +10597,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -10629,7 +10608,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -10760,7 +10739,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -11049,7 +11028,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -11218,7 +11197,7 @@
                     If the <a href="#dfn-AesCtrParams-counter">counter</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11227,7 +11206,7 @@
                     If the <a href="#dfn-AesCtrParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is zero or is greater
                     than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11258,7 +11237,7 @@
                     If the <a href="#dfn-AesCtrParams-counter">counter</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11267,7 +11246,7 @@
                     If the <a href="#dfn-AesCtrParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is zero or is greater
                     than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11298,7 +11277,7 @@
                     If <var>usages</var> contains any entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -11307,7 +11286,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11322,7 +11301,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11386,7 +11365,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -11403,7 +11382,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11422,7 +11401,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                              <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11430,7 +11409,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11445,21 +11424,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>
                               If the <code>"alg"</code> field of <var>jwk</var> is present, and is
-                              not <code>"A128CTR"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                              not <code>"A128CTR"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>
                               If the <code>"alg"</code> field of <var>jwk</var> is present, and is
-                              not <code>"A192CTR"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                              not <code>"A192CTR"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>
                               If the <code>"alg"</code> field of <var>jwk</var> is present, and is
-                              not <code>"A256CTR"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                              not <code>"A256CTR"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                           </dl>
                         </li>
@@ -11467,7 +11446,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11477,7 +11456,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11485,7 +11464,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11493,7 +11472,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -11541,8 +11520,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -11626,7 +11604,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -11646,7 +11624,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
@@ -11748,7 +11726,7 @@
                     If the <a href="#dfn-AesCbcParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11784,7 +11762,7 @@
                     If the <a href="#dfn-AesCbcParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> does not have length 16
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11805,7 +11783,7 @@
                   <p>
                     If <var>p</var> is zero or greater than 16, or if any of the last <var>p</var>
                     octets of <var>paddedPlaintext</var> have a value which is not <var>p</var>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11830,7 +11808,7 @@
                     If <var>usages</var> contains any entry which is not
                      one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -11839,7 +11817,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11854,7 +11832,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -11918,7 +11896,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -11935,7 +11913,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11954,7 +11932,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             to <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11962,7 +11940,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -11977,21 +11955,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128CBC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192CBC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256CBC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -12000,7 +11978,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12010,7 +11988,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or                           
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12018,7 +11996,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12026,7 +12004,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                     </dd>
                   </dl>
@@ -12074,8 +12052,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -12158,7 +12135,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -12178,7 +12155,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12277,7 +12254,7 @@
                 <li>
                   <p>
                     If <var>length</var> is zero or greater than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12309,7 +12286,7 @@
                 <li>
                   <p>
                     If <var>length</var> is zero or greater than 128,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12337,7 +12314,7 @@
                   <p>
                     If <var>usages</var> contains any entry which is not
                      <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -12346,7 +12323,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12360,7 +12337,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12423,7 +12400,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                      <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -12440,7 +12417,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12459,7 +12436,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             to <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12467,7 +12444,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12482,21 +12459,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128CMAC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192CMAC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256CMAC"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -12505,7 +12482,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12515,7 +12492,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12523,7 +12500,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -12531,7 +12508,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -12579,8 +12556,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -12664,7 +12640,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -12684,7 +12660,7 @@
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
                     <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12781,7 +12757,7 @@
                   <p>
                     If <var>plaintext</var> has a length greater than 2^39 - 256
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12790,7 +12766,7 @@
                     If the <a href="#dfn-AesGcmParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> has a length greater than 2^64 - 1
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12799,7 +12775,7 @@
                     If the <a href="#dfn-AesGcmParams-additionalData">additionalData</a> member
                     of <var>normalizedAlgorithm</var> is present and has a length
                     greater than 2^64 - 1 bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12815,7 +12791,7 @@
                      <var>normalizedAlgorithm</var></dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                   </dl>
@@ -12861,7 +12837,7 @@
                      <var>normalizedAlgorithm</var></dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                   </dl>
@@ -12869,7 +12845,7 @@
                 <li>
                   <p>
                     If <var>plaintext</var> has a length less than <var>tagLength</var> bits,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12878,7 +12854,7 @@
                     If the <a href="#dfn-AesGcmParams-iv">iv</a> member of
                     <var>normalizedAlgorithm</var> has a length greater than 2^64 - 1
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12888,7 +12864,7 @@
                     of <var>normalizedAlgorithm</var> is present and has a length
                     greater than 2^64 - 1
                     bytes,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12926,7 +12902,7 @@
                     <dt>If the result of the algorithm is the indication of inauthenticity,
                     "<var>FAIL</var>":</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>
                     </dd>
                     <dt>Otherwise:</dt>
@@ -12949,7 +12925,7 @@
                     If <var>usages</var> contains any entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -12958,7 +12934,7 @@
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
                     <var>normalizedAlgorithm</var> is not equal to one of
                     128, 192 or 256,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -12973,7 +12949,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13037,7 +13013,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -13054,7 +13030,7 @@
                         <li>
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13073,7 +13049,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13081,7 +13057,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13096,21 +13072,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128GCM"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192GCM"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256GCM"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -13119,7 +13095,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13129,7 +13105,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13137,7 +13113,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13145,7 +13121,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -13193,8 +13169,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13278,7 +13253,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -13297,7 +13272,7 @@
                 <li>
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
-                    <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13390,7 +13365,7 @@
                 <li>
                   <p>
                     If the <a href="#dfn-AesCfbParams-iv">iv</a> member of
-                    <var>normalizedAlgorithm</var> does not have length 16 bytes, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    <var>normalizedAlgorithm</var> does not have length 16 bytes, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13415,7 +13390,7 @@
                 <li>
                   <p>
                     If the <a href="#dfn-AesCfbParams-iv">iv</a> member of
-                    <var>normalizedAlgorithm</var> does not have length 16 bytes, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    <var>normalizedAlgorithm</var> does not have length 16 bytes, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13441,14 +13416,13 @@
                   <p>
                     If <var>usages</var> contains any entry which is not one of
                     <code>"encrypt"</code>, <code>"decrypt"</code>, <code>"wrapKey"</code> or
-                    <code>"unwrapKey"</code>, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <code>"unwrapKey"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> member of
-                    <var>normalizedAlgorithm</var> is not equal to one of 128, 192 or 256, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    <var>normalizedAlgorithm</var> is not equal to one of 128, 192 or 256, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13460,7 +13434,7 @@
                 <li>
                   <p>
                     If the key generation step fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13524,7 +13498,7 @@
                     If <var>usages</var> contains an entry which is not
                     one of <code>"encrypt"</code>, <code>"decrypt"</code>,
                     <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -13542,7 +13516,7 @@
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
                             
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13561,7 +13535,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13569,7 +13543,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13584,21 +13558,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128CFB8"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192CFB8"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256CFB8"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                           </dl>
                         </li>
@@ -13606,7 +13580,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13616,7 +13590,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13624,7 +13598,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -13632,7 +13606,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -13693,8 +13667,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13778,7 +13751,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -13797,7 +13770,7 @@
                 <li>
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> property of
-                    <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -13880,7 +13853,7 @@
                 <li>
                   <p>
                     If <var>plaintext</var> is not a multiple of 64 bits in length,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> an
                             <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13913,7 +13886,7 @@
                 <li>
                   <p>
                     If the Key Unwrap operation returns an error,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -13930,19 +13903,19 @@
                 <li>
                   <p>
                     If <var>usages</var> contains any entry which is not one of
-                    <code>"wrapKey"</code> or <code>"unwrapKey"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <code>"wrapKey"</code> or <code>"unwrapKey"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If the <a href="#dfn-AesKeyGenParams-length">length</a> property of
-                    <var>normalizedAlgorithm</var> is not equal to one of 128, 192 or 256, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    <var>normalizedAlgorithm</var> is not equal to one of 128, 192 or 256, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If the key generation step fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -14006,7 +13979,7 @@
                     If <var>usages</var> contains an entry which is not
                      one of <code>"wrapKey"</code> or <code>"unwrapKey"</code>,
                     
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -14024,7 +13997,7 @@
                           <p>
                             If the length in bits of <var>data</var> is not 128, 192 or 256
                             
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14043,7 +14016,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14051,7 +14024,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14066,21 +14039,21 @@
                             <dt>If <var>data</var> has length 128 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A128KW"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 192 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A192KW"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>If <var>data</var> has length 256 bits:</dt>
                             <dd>If the <code>"alg"</code> field of <var>jwk</var> is present, and is
                             not  <code>"A256KW"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.</dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                             </dd>
                           </dl>
@@ -14089,7 +14062,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"enc"</code>, 
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14099,7 +14072,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14107,14 +14080,14 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                              then <a href="#concept-return-an-error">return an error</a> named
+                              then <a href="#concept-throw">throw</a> a
                               <a href="#dfn-DataError"><code>DataError</code></a>.                          </p>
                         </li>
                       </ol>
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -14162,8 +14135,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -14246,7 +14218,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -14265,7 +14237,7 @@
                 <li>
                   <p>
                     If the <a href="#dfn-AesDerivedKeyParams-length">length</a> member of
-                    <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    <var>normalizedDerivedKeyAlgorithm</var> is not 128, 192 or 256, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -14430,8 +14402,7 @@
                 <li>
                   <p>
                     If <var>usages</var> contains any entry which is not <code>"sign"</code> or
-                    <code>"verify"</code>, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <code>"verify"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -14456,7 +14427,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                   </dl>
@@ -14470,7 +14441,7 @@
                 <li>
                   <p>
                     If the key generation step fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -14548,7 +14519,7 @@
                   <p>
                     If <var>usages</var> contains an entry which is not
                     <code>"sign"</code> or <code>"verify"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -14579,7 +14550,7 @@
                             </dd>
                             <dt>Otherwise:</dt>
                             <dd>
-                              <a href="#concept-return-an-error">Return an error</a> named
+                              <a href="#concept-throw">throw</a> a
                               <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                             </dd>
                           </dl>
@@ -14599,7 +14570,7 @@
                           <p>
                             If the <code>"kty"</code> field of <var>jwk</var> is not
                             <code>"oct"</code>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14607,7 +14578,7 @@
                           <p>
                             If <var>jwk</var> does not meet the requirements of
                             Section 6.4 of <a href="#jwa">JSON Web Algorithms</a>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14641,7 +14612,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS1"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -14652,7 +14623,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS256"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -14663,7 +14634,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS384"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -14674,7 +14645,7 @@
                                     <dd>
                                       If the <code>"alg"</code> field of <var>jwk</var> is present
                                       and is not <code>"HS512"</code>,
-                                      then <a href="#concept-return-an-error">return an error</a> named
+                                      then <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                     <dt>
@@ -14693,7 +14664,7 @@
                                     </dd>
                                     <dt>Otherwise:</dt>
                                     <dd>
-                                      <a href="#concept-return-an-error">Return an error</a> named
+                                      <a href="#concept-throw">throw</a> a
                                       <a href="#dfn-DataError"><code>DataError</code></a>.
                                     </dd>
                                   </dl>
@@ -14706,7 +14677,7 @@
                                 <li>
                                   <p>
                                     If the <code>alg</code> field of <var>jwk</var> is not present,
-                                    then <a href="#concept-return-an-error">return an error</a> named
+                                    then <a href="#concept-throw">throw</a> a
                                     <a href="#dfn-DataError"><code>DataError</code></a>.
                                   </p>
                                 </li>
@@ -14763,7 +14734,7 @@
                           <p>
                             If the <code>"use"</code> field of <var>jwk</var> is present, and is
                             not  <code>"sign"</code>, 
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14773,7 +14744,7 @@
                             is invalid according to the requirements of
                             <a href="#jwk">JSON Web Key</a> or
                             does not contain all of the specified <var>usages</var> values,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14781,7 +14752,7 @@
                           <p>
                             If the <code>"ext"</code> field of <var>jwk</var> is present and
                             has the value false and <var>extractable</var> is true,
-                            then <a href="#concept-return-an-error">return an error</a> named
+                            then <a href="#concept-throw">throw</a> a
                             <a href="#dfn-DataError"><code>DataError</code></a>.
                           </p>
                         </li>
@@ -14789,7 +14760,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -14803,7 +14774,7 @@
                 <li>
                   <p>
                     If <var>length</var> is zero
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
@@ -14820,7 +14791,7 @@
                           <var>normalizedAlgorithm</var> is greater than <var>length</var>:
                         </dt>
                         <dd>
-                          <a href="#concept-return-an-error">Return an error</a> named
+                          <a href="#concept-throw">throw</a> a
                           <a href="#dfn-DataError"><code>DataError</code></a>.
                         </dd>
                         <dt>
@@ -14829,7 +14800,7 @@
                           <var>length</var> minus eight:
                         </dt>
                         <dd>
-                          <a href="#concept-return-an-error">Return an error</a> named
+                          <a href="#concept-throw">throw</a> a
                           <a href="#dfn-DataError"><code>DataError</code></a>.
                         </dd>
                         <dt>
@@ -14893,8 +14864,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15020,7 +14990,7 @@
                     <dt>Otherwise:</dt>
                     <dd>
                       <p>
-                        <a href="#concept-return-an-error">Return an error</a> named
+                        <a href="#concept-throw">throw</a> a
                         <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                       </p>
                     </dd>
@@ -15048,7 +15018,7 @@
                           <p>
                             If the <a href="#dfn-HmacImportParams-hash">hash</a> member
                             of <var>normalizedDerivedKeyAlgorithm</var> is not present,
-                            <a href="#concept-return-an-error">return an error</a> named
+                            <a href="#concept-throw">throw</a> a
                             <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -15072,7 +15042,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                     </dd>
                   </dl>
@@ -15187,7 +15157,7 @@
                   <p>
                     If <var>usages</var> contains a value which is not
                     one of <code>"deriveKey"</code> or <code>"deriveBits"</code>,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> a
                     <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
@@ -15204,7 +15174,7 @@
                 <li>
                   <p>
                     If performing the operation results in an error, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -15329,7 +15299,7 @@
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                    <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15342,21 +15312,20 @@
                 <li>
                   <p>
                     If the <a href="#dfn-KeyAlgorithm-name">name</a> attribute of the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                    <var>publicKey</var> is not <code>"DH"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                    <var>publicKey</var> is not <code>"DH"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot of
-                    <var>publicKey</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                    <var>publicKey</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
                 <li>
                   <p>
                     If the <a href="#dfn-DhKeyAlgorithm-prime">prime</a> attribute of the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
                     <var>publicKey</var> is not equal to the <a href="#dfn-DhKeyAlgorithm-prime">prime</a> attribute of the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                    <var>key</var>, then <a href="#concept-return-an-error">return an error</a>
-                    named <a href="#dfn-DataError"><code>DataError</code></a>.
+                    <var>key</var>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15364,8 +15333,7 @@
                     If the <a href="#dfn-DhKeyAlgorithm-generator">generator</a> attribute of the
                     [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
                     <var>publicKey</var> is not equal to the <a href="#dfn-DhKeyAlgorithm-generator">generator</a> attribute of the [[<a href="#dfn-CryptoKey-slot-algorithm">algorithm</a>]] internal slot of
-                    <var>key</var>, then <a href="#concept-return-an-error">return an error</a>
-                    named <a href="#dfn-DataError"><code>DataError</code></a>.
+                    <var>key</var>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15377,7 +15345,7 @@
                   <dl class="switch">
                     <dt>If performing the operation results in an error:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                     <dt>Otherwise:</dt>
@@ -15393,7 +15361,7 @@
                       <var>length</var>:
                     </dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> an
                       <a href="#dfn-OperationError"><code>OperationError</code></a>.
                     </dd>
                     <dt>Otherwise:</dt>
@@ -15418,14 +15386,14 @@
                     <li>
                       <p>
                         If <var>usages</var> is not empty
-                        then <a href="#concept-return-an-error">return an error</a> named
+                        then <a href="#concept-throw">throw</a> a
                         <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
                     <li>
                       <p>
                         If <var>extractable</var> is false,
-                        then <a href="#concept-return-an-error">return an error</a> named
+                        then <a href="#concept-throw">throw</a> a
                         <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
@@ -15496,7 +15464,7 @@
                     <li>
                       <p>
                         If <var>usages</var> is not empty
-                        then <a href="#concept-return-an-error">return an error</a> named
+                        then <a href="#concept-throw">throw</a> a
                         <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
@@ -15508,7 +15476,7 @@
                     </li>
                     <li>
                       <p>
-                        If an error occurred while parsing, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        If an error occurred while parsing, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -15516,13 +15484,13 @@
                         If the <code>algorithm</code> object identifier field of the
                         <code>algorithm</code> AlgorithmIdentifier field of <var>spki</var> is not
                         equivalent to the <code>dhKeyAgreement</code> OID defined in Section 9 of
-                        [<a href="#PKCS3">PKCS #3</a>], then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        [<a href="#PKCS3">PKCS #3</a>], then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
                       <p>
                         If the <code>parameters</code> field of the <code>algorithm</code>
-                        AlgorithmIdentifier field of <var>spki</var> is absent, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        AlgorithmIdentifier field of <var>spki</var> is absent, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -15534,7 +15502,7 @@
                     <li>
                       <p>
                         If <var>params</var> is not an instance of the <code>DHParameter</code>
-                        ASN.1 type defined in Section 9 of <a href="#PKCS3">PKCS #3</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        ASN.1 type defined in Section 9 of <a href="#PKCS3">PKCS #3</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -15599,7 +15567,7 @@
                     <li>
                       <p>
                         If <var>usages</var> contains a value which is not one of
-                        <code>"deriveKey"</code> or <code>"deriveBits"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                        <code>"deriveKey"</code> or <code>"deriveBits"</code>, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -15611,7 +15579,7 @@
                     </li>
                     <li>
                       <p>
-                        If an error occurred while parsing, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        If an error occurred while parsing, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -15619,15 +15587,14 @@
                         If the <code>algorithm</code> object identifier field of the
                         <code>algorithm</code> AlgorithmIdentifier field of
                         <var>privateKeyInfo</var> is not equivalent to the
-                        <code>dhKeyAgreement</code> OID defined in Section 9 of [<a href="#PKCS3">PKCS #3</a>], then <a href="#concept-return-an-error">return
-                        an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        <code>dhKeyAgreement</code> OID defined in Section 9 of [<a href="#PKCS3">PKCS #3</a>], then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
                       <p>
                         If the <code>parameters</code> field of the
                         <code>privateKeyAlgorithm</code> PrivateKeyAlgorithmIdentifier field of
-                        <var>privateKeyInfo</var> is absent, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        <var>privateKeyInfo</var> is absent, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -15640,7 +15607,7 @@
                     <li>
                       <p>
                         If <var>params</var> is not an instance of the <code>DHParameter</code>
-                        ASN.1 type defined in Section 9 of <a href="#PKCS3">PKCS #3</a>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-DataError"><code>DataError</code></a>.
+                        ASN.1 type defined in Section 9 of <a href="#PKCS3">PKCS #3</a>, then <a href="#concept-throw">throw</a> a <a href="#dfn-DataError"><code>DataError</code></a>.
                       </p>
                     </li>
                     <li>
@@ -15698,7 +15665,7 @@
                 </dd>
                 <dt>Otherwise:</dt>
                 <dd>
-                  <a href="#concept-return-an-error">Return an error</a> named
+                  <a href="#concept-throw">throw</a> a
                   <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                 </dd>
               </dl>
@@ -15709,8 +15676,7 @@
                 <li>
                   <p>
                     If the underlying cryptographic key material represented by the [[<a href="#dfn-CryptoKey-slot-handle">handle</a>]] internal slot of <var>key</var>
-                    cannot be accessed, then <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    cannot be accessed, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -15757,7 +15723,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"public"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -15832,7 +15798,7 @@
                         <li>
                           <p>
                             If the [[<a href="#dfn-CryptoKey-slot-type">type</a>]] internal slot
-                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
+                            of <var>key</var> is not <code>"private"</code>, then <a href="#concept-throw">throw</a> an <a href="#dfn-InvalidAccessError"><code>InvalidAccessError</code></a>.
                           </p>
                         </li>
                         <li>
@@ -15902,7 +15868,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>                  
                   </dl>
@@ -16011,7 +15977,7 @@
                 </li>
                 <li>
                   <p>
-                    If performing the operation results in an error, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    If performing the operation results in an error, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -16127,7 +16093,7 @@
                 <li>
                   <p>
                     If the operation fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -16165,8 +16131,7 @@
                       </dt>
                       <dd>
                         <p>
-                          <a href="#concept-return-an-error">Return an error</a> with the same name
-                          as <var>result</var>.
+                          <a href="#concept-throw">throw</a> <var>result</var>.
                         </p>
                       </dd>
                     </dl>
@@ -16184,7 +16149,7 @@
                             If <var>usages</var> contains a value that is not 
                             <code>"deriveKey"</code> or <code>"deriveBits"</code>,
                             
-                                then <a href="#concept-return-an-error">return an error</a> named
+                                then <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -16227,7 +16192,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -16331,8 +16296,7 @@
               <ol>
                 <li>
                   <p>
-                    If <var>length</var> is null, then <a href="#concept-return-an-error">return
-                    an error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    If <var>length</var> is null, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -16340,7 +16304,7 @@
                     If the <a href="#dfn-HkdfCtrParams-hash">hash</a> member of
                     <var>normalizedAlgorithm</var> does not describe a <a href="#algorithms">
                     recognized algorithm</a> that supports the digest operation, then
-                    <a href="#concept-return-an-error">return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                   </p>
                 </li>
@@ -16418,7 +16382,7 @@
                 <li>
                   <p>
                     If the key derivation operation fails,
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -16447,7 +16411,7 @@
                             If <var>usages</var> contains a value that is not 
                              <code>"deriveKey"</code> or <code>"deriveBits"</code>,
                             
-                                then <a href="#concept-return-an-error">return an error</a> named
+                                then <a href="#concept-throw">throw</a> a
                                 <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                           </p>
                         </li>
@@ -16490,7 +16454,7 @@
                     </dd>
                     <dt>Otherwise:</dt>
                     <dd>
-                      <a href="#concept-return-an-error">Return an error</a> named
+                      <a href="#concept-throw">throw</a> a
                       <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>.
                     </dd>
                   </dl>
@@ -16586,7 +16550,7 @@
               <ol>
                 <li>
                   <p>
-                    If <var>length</var> is null or is not a multiple of 8, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-OperationError"><code>OperationError</code></a>.
+                    If <var>length</var> is null or is not a multiple of 8, then <a href="#concept-throw">throw</a> an <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -16594,7 +16558,7 @@
                     If the <a href="#dfn-Pbkdf2Params-hash">hash</a> member of
                     <var>normalizedAlgorithm</var> does not describe a <a href="#algorithms">
                     recognized algorithm</a> that supports the digest operation, then
-                    <a href="#concept-return-an-error">return an error</a> named
+                    <a href="#concept-throw">throw</a> a
                     <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                   </p>
                 </li>
@@ -16621,7 +16585,7 @@
                 <li>
                   <p>
                     If the key derivation operation fails, 
-                    then <a href="#concept-return-an-error">return an error</a> named
+                    then <a href="#concept-throw">throw</a> an
                     <a href="#dfn-OperationError"><code>OperationError</code></a>.
                   </p>
                 </li>
@@ -16639,13 +16603,12 @@
                   <p>
                     If <var>usages</var> contains a value that is not
                     <code>"deriveKey"</code> or <code>"deriveBits"</code>, then
-                    <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
-                  </p>
-                </li>
-                <li>
-                  <p>
-                    If <var>extractable</var> is true, then <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                  </p>
+                </li>
+                <li>
+                  <p>
+                    If <var>extractable</var> is true, then <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>
@@ -16708,15 +16671,14 @@
               <ol>
                 <li>
                   <p>
-                    If <var>format</var> is not <code>"raw"</code>, <a href="#concept-return-an-error">return an error</a> named <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
+                    If <var>format</var> is not <code>"raw"</code>, <a href="#concept-throw">throw</a> a <a href="#dfn-NotSupportedError"><code>NotSupportedError</code></a>
                   </p>
                 </li>
                 <li>
                   <p>
                     If <var>usages</var> contains a value that is not
                     <code>"deriveKey"</code>  or <code>"deriveBits"</code>, then
-                    <a href="#concept-return-an-error">return an
-                    error</a> named <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
+                    <a href="#concept-throw">throw</a> a <a href="#dfn-SyntaxError"><code>SyntaxError</code></a>.
                   </p>
                 </li>
                 <li>