mirror of
https://github.com/bendtherules/ask262.git
synced 2026-08-18 13:21:55 +00:00
1251 lines
702 KiB
HTML
1251 lines
702 KiB
HTML
<!doctype html><html lang="en-GB-oxendict">
|
||
<head><meta name="viewport" content="width=device-width, initial-scale=1"><meta charset="utf-8"><meta property="og:image" content="https://tc39.es/ecmarkup/ecma-logo.png"><meta property="og:title" content="ECMAScript® 2026 Language Specification"><meta property="og:description" content="Introduction
|
||
This Ecma Standard defines the ECMAScript 2026 Language. It is the seventeenth edition of the ECMAScript Language Specification. ECMAScript is based on several originating technologies, the most well-known being JavaScript (Netscape) and JScript (Microsoft). The language was invent">
|
||
<link rel="icon" href="../img/favicon.ico">
|
||
<link rel="stylesheet" href="../assets/css/ecmarkup.css"><link rel="stylesheet" href="../assets/css/print.css" media="print">
|
||
|
||
<title>ECMAScript® 2026 Language Specification</title><script src="../assets/js/multipage.js?cache=Wu2V1pj2" defer=""></script><script src="../assets/js/ecmarkup.js?cache=BPFBckdu" defer=""></script><link rel="canonical" href="../#sec-additional-ecmascript-features-for-web-browsers"></head>
|
||
<body><div id="menu"><div id="menu-search"><input type="text" id="menu-search-box" placeholder="Search..."><div id="menu-search-results" class="inactive"></div></div><div id="menu-pins"><div class="menu-pane-header">Pins<button class="unpin-all">clear</button></div><ul id="menu-pins-list"></ul></div><div class="menu-pane-header">Table of Contents</div><div id="menu-toc"><ol class="toc"><li><span class="item-toggle-none"></span><a href="./#sec-intro" title="Introduction">Introduction</a></li><li><span class="item-toggle-none"></span><a href="scope.html#sec-scope" title="Scope"><span class="secnum">1</span> Scope</a></li><li><span class="item-toggle">+</span><a href="conformance.html#sec-conformance" title="Conformance"><span class="secnum">2</span> Conformance</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="conformance.html#sec-conformance-normative-optional" title="Example Normative Optional Clause Heading"><span class="secnum">2.1</span> Example Normative Optional Clause Heading</a></li><li><span class="item-toggle-none"></span><a href="conformance.html#sec-conformance-legacy" title="Example Legacy Clause Heading"><span class="secnum">2.2</span> Example Legacy Clause Heading</a></li><li><span class="item-toggle-none"></span><a href="conformance.html#sec-conformance-legacy-normative-optional" title="Example Legacy Normative Optional Clause Heading"><span class="secnum">2.3</span> Example Legacy Normative Optional Clause Heading</a></li></ol></li><li><span class="item-toggle-none"></span><a href="normative-references.html#sec-normative-references" title="Normative References"><span class="secnum">3</span> Normative References</a></li><li><span class="item-toggle">+</span><a href="overview.html#sec-overview" title="Overview"><span class="secnum">4</span> Overview</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="overview.html#sec-web-scripting" title="Web Scripting"><span class="secnum">4.1</span> Web Scripting</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-hosts-and-implementations" title="Hosts and Implementations"><span class="secnum">4.2</span> Hosts and Implementations</a></li><li><span class="item-toggle">+</span><a href="overview.html#sec-ecmascript-overview" title="ECMAScript Overview"><span class="secnum">4.3</span> ECMAScript Overview</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="overview.html#sec-objects" title="Objects"><span class="secnum">4.3.1</span> Objects</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-strict-variant-of-ecmascript" title="The Strict Variant of ECMAScript"><span class="secnum">4.3.2</span> The Strict Variant of ECMAScript</a></li></ol></li><li><span class="item-toggle">+</span><a href="overview.html#sec-terms-and-definitions" title="Terms and Definitions"><span class="secnum">4.4</span> Terms and Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-implementation-approximated" title="implementation-approximated"><span class="secnum">4.4.1</span> implementation-approximated</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-implementation-defined" title="implementation-defined"><span class="secnum">4.4.2</span> implementation-defined</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-host-defined" title="host-defined"><span class="secnum">4.4.3</span> host-defined</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-type" title="type"><span class="secnum">4.4.4</span> type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-primitive-value" title="primitive value"><span class="secnum">4.4.5</span> primitive value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-object" title="object"><span class="secnum">4.4.6</span> object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-constructor" title="constructor"><span class="secnum">4.4.7</span> constructor</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-prototype" title="prototype"><span class="secnum">4.4.8</span> prototype</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-ordinary-object" title="ordinary object"><span class="secnum">4.4.9</span> ordinary object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-exotic-object" title="exotic object"><span class="secnum">4.4.10</span> exotic object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-standard-object" title="standard object"><span class="secnum">4.4.11</span> standard object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-built-in-object" title="built-in object"><span class="secnum">4.4.12</span> built-in object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-undefined-value" title="undefined value"><span class="secnum">4.4.13</span> undefined value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-undefined-type" title="Undefined type"><span class="secnum">4.4.14</span> Undefined type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-null-value" title="null value"><span class="secnum">4.4.15</span> null value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-null-type" title="Null type"><span class="secnum">4.4.16</span> Null type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-boolean-value" title="Boolean value"><span class="secnum">4.4.17</span> Boolean value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-boolean-type" title="Boolean type"><span class="secnum">4.4.18</span> Boolean type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-boolean-object" title="Boolean object"><span class="secnum">4.4.19</span> Boolean object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-string-value" title="String value"><span class="secnum">4.4.20</span> String value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-string-type" title="String type"><span class="secnum">4.4.21</span> String type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-string-object" title="String object"><span class="secnum">4.4.22</span> String object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-number-value" title="Number value"><span class="secnum">4.4.23</span> Number value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-number-type" title="Number type"><span class="secnum">4.4.24</span> Number type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-number-object" title="Number object"><span class="secnum">4.4.25</span> Number object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-infinity" title="Infinity"><span class="secnum">4.4.26</span> Infinity</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-nan" title="NaN"><span class="secnum">4.4.27</span> NaN</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-bigint-value" title="BigInt value"><span class="secnum">4.4.28</span> BigInt value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-bigint-type" title="BigInt type"><span class="secnum">4.4.29</span> BigInt type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-bigint-object" title="BigInt object"><span class="secnum">4.4.30</span> BigInt object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-symbol-value" title="Symbol value"><span class="secnum">4.4.31</span> Symbol value</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-symbol-type" title="Symbol type"><span class="secnum">4.4.32</span> Symbol type</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-symbol-object" title="Symbol object"><span class="secnum">4.4.33</span> Symbol object</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-terms-and-definitions-function" title="function"><span class="secnum">4.4.34</span> function</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-built-in-function" title="built-in function"><span class="secnum">4.4.35</span> built-in function</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-built-in-constructor" title="built-in constructor"><span class="secnum">4.4.36</span> built-in constructor</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-property" title="property"><span class="secnum">4.4.37</span> property</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-method" title="method"><span class="secnum">4.4.38</span> method</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-built-in-method" title="built-in method"><span class="secnum">4.4.39</span> built-in method</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-attribute" title="attribute"><span class="secnum">4.4.40</span> attribute</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-own-property" title="own property"><span class="secnum">4.4.41</span> own property</a></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-inherited-property" title="inherited property"><span class="secnum">4.4.42</span> inherited property</a></li></ol></li><li><span class="item-toggle-none"></span><a href="overview.html#sec-organization-of-this-specification" title="Organization of This Specification"><span class="secnum">4.5</span> Organization of This Specification</a></li></ol></li><li><span class="item-toggle">+</span><a href="notational-conventions.html#sec-notational-conventions" title="Notational Conventions"><span class="secnum">5</span> Notational Conventions</a><ol class="toc"><li><span class="item-toggle">+</span><a href="notational-conventions.html#sec-syntactic-and-lexical-grammars" title="Syntactic and Lexical Grammars"><span class="secnum">5.1</span> Syntactic and Lexical Grammars</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-context-free-grammars" title="Context-Free Grammars"><span class="secnum">5.1.1</span> Context-Free Grammars</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-lexical-and-regexp-grammars" title="The Lexical and RegExp Grammars"><span class="secnum">5.1.2</span> The Lexical and RegExp Grammars</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-numeric-string-grammar" title="The Numeric String Grammar"><span class="secnum">5.1.3</span> The Numeric String Grammar</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-syntactic-grammar" title="The Syntactic Grammar"><span class="secnum">5.1.4</span> The Syntactic Grammar</a></li><li><span class="item-toggle">+</span><a href="notational-conventions.html#sec-grammar-notation" title="Grammar Notation"><span class="secnum">5.1.5</span> Grammar Notation</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-terminal-symbols" title="Terminal Symbols"><span class="secnum">5.1.5.1</span> Terminal Symbols</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-nonterminal-symbols-and-productions" title="Nonterminal Symbols and Productions"><span class="secnum">5.1.5.2</span> Nonterminal Symbols and Productions</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-optional-symbols" title="Optional Symbols"><span class="secnum">5.1.5.3</span> Optional Symbols</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-grammatical-parameters" title="Grammatical Parameters"><span class="secnum">5.1.5.4</span> Grammatical Parameters</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-one-of" title="one of"><span class="secnum">5.1.5.5</span> one of</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-empty" title="[empty]"><span class="secnum">5.1.5.6</span> [empty]</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-lookahead-restrictions" title="Lookahead Restrictions"><span class="secnum">5.1.5.7</span> Lookahead Restrictions</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-no-lineterminator-here" title="[no LineTerminator here]"><span class="secnum">5.1.5.8</span> [no <emu-nt>LineTerminator</emu-nt> here]</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-but-not" title="but not"><span class="secnum">5.1.5.9</span> but not</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-descriptive-phrases" title="Descriptive Phrases"><span class="secnum">5.1.5.10</span> Descriptive Phrases</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="notational-conventions.html#sec-algorithm-conventions" title="Algorithm Conventions"><span class="secnum">5.2</span> Algorithm Conventions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-evaluation-order" title="Evaluation Order"><span class="secnum">5.2.1</span> Evaluation Order</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-algorithm-conventions-abstract-operations" title="Abstract Operations"><span class="secnum">5.2.2</span> Abstract Operations</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations" title="Syntax-Directed Operations"><span class="secnum">5.2.3</span> Syntax-Directed Operations</a></li><li><span class="item-toggle">+</span><a href="notational-conventions.html#sec-runtime-semantics" title="Runtime Semantics"><span class="secnum">5.2.4</span> Runtime Semantics</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-completion-ao" title="Completion ( completionRecord )"><span class="secnum">5.2.4.1</span> Completion ( <var>completionRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-throw-an-exception" title="Throw an Exception"><span class="secnum">5.2.4.2</span> Throw an Exception</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-shorthands-for-unwrapping-completion-records" title="Shorthands for Unwrapping Completion Records"><span class="secnum">5.2.4.3</span> Shorthands for Unwrapping Completion Records</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-implicit-normal-completion" title="Implicit Normal Completion"><span class="secnum">5.2.4.4</span> Implicit Normal Completion</a></li></ol></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-static-semantic-rules" title="Static Semantics"><span class="secnum">5.2.5</span> Static Semantics</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-mathematical-operations" title="Mathematical Operations"><span class="secnum">5.2.6</span> Mathematical Operations</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-value-notation" title="Value Notation"><span class="secnum">5.2.7</span> Value Notation</a></li><li><span class="item-toggle-none"></span><a href="notational-conventions.html#sec-identity" title="Identity"><span class="secnum">5.2.8</span> Identity</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-data-types-and-values" title="ECMAScript Data Types and Values"><span class="secnum">6</span> ECMAScript Data Types and Values</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types" title="ECMAScript Language Types"><span class="secnum">6.1</span> ECMAScript Language Types</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-undefined-type" title="The Undefined Type"><span class="secnum">6.1.1</span> The Undefined Type</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-null-type" title="The Null Type"><span class="secnum">6.1.2</span> The Null Type</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-boolean-type" title="The Boolean Type"><span class="secnum">6.1.3</span> The Boolean Type</a></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type" title="The String Type"><span class="secnum">6.1.4</span> The String Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-stringindexof" title="StringIndexOf ( string, searchValue, fromIndex )"><span class="secnum">6.1.4.1</span> StringIndexOf ( <var>string</var>, <var>searchValue</var>, <var>fromIndex</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-stringlastindexof" title="StringLastIndexOf ( string, searchValue, fromIndex )"><span class="secnum">6.1.4.2</span> StringLastIndexOf ( <var>string</var>, <var>searchValue</var>, <var>fromIndex</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-symbol-type" title="The Symbol Type"><span class="secnum">6.1.5</span> The Symbol Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-well-known-symbols" title="Well-Known Symbols"><span class="secnum">6.1.5.1</span> Well-Known Symbols</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-numeric-types" title="Numeric Types"><span class="secnum">6.1.6</span> Numeric Types</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type" title="The Number Type"><span class="secnum">6.1.6.1</span> The Number Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-unaryMinus" title="Number::unaryMinus ( x )"><span class="secnum">6.1.6.1.1</span> Number::unaryMinus ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-bitwiseNOT" title="Number::bitwiseNOT ( x )"><span class="secnum">6.1.6.1.2</span> Number::bitwiseNOT ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-exponentiate" title="Number::exponentiate ( base, exponent )"><span class="secnum">6.1.6.1.3</span> Number::exponentiate ( <var>base</var>, <var>exponent</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-multiply" title="Number::multiply ( x, y )"><span class="secnum">6.1.6.1.4</span> Number::multiply ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-divide" title="Number::divide ( x, y )"><span class="secnum">6.1.6.1.5</span> Number::divide ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-remainder" title="Number::remainder ( n, d )"><span class="secnum">6.1.6.1.6</span> Number::remainder ( <var>n</var>, <var>d</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-add" title="Number::add ( x, y )"><span class="secnum">6.1.6.1.7</span> Number::add ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-subtract" title="Number::subtract ( x, y )"><span class="secnum">6.1.6.1.8</span> Number::subtract ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-leftShift" title="Number::leftShift ( x, y )"><span class="secnum">6.1.6.1.9</span> Number::leftShift ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-signedRightShift" title="Number::signedRightShift ( x, y )"><span class="secnum">6.1.6.1.10</span> Number::signedRightShift ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-unsignedRightShift" title="Number::unsignedRightShift ( x, y )"><span class="secnum">6.1.6.1.11</span> Number::unsignedRightShift ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-lessThan" title="Number::lessThan ( x, y )"><span class="secnum">6.1.6.1.12</span> Number::lessThan ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-equal" title="Number::equal ( x, y )"><span class="secnum">6.1.6.1.13</span> Number::equal ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-sameValue" title="Number::sameValue ( x, y )"><span class="secnum">6.1.6.1.14</span> Number::sameValue ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-sameValueZero" title="Number::sameValueZero ( x, y )"><span class="secnum">6.1.6.1.15</span> Number::sameValueZero ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numberbitwiseop" title="NumberBitwiseOp ( op, x, y )"><span class="secnum">6.1.6.1.16</span> NumberBitwiseOp ( <var>op</var>, <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-bitwiseAND" title="Number::bitwiseAND ( x, y )"><span class="secnum">6.1.6.1.17</span> Number::bitwiseAND ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-bitwiseXOR" title="Number::bitwiseXOR ( x, y )"><span class="secnum">6.1.6.1.18</span> Number::bitwiseXOR ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-bitwiseOR" title="Number::bitwiseOR ( x, y )"><span class="secnum">6.1.6.1.19</span> Number::bitwiseOR ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-tostring" title="Number::toString ( x, radix )"><span class="secnum">6.1.6.1.20</span> Number::toString ( <var>x</var>, <var>radix</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-bigint-type" title="The BigInt Type"><span class="secnum">6.1.6.2</span> The BigInt Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-unaryMinus" title="BigInt::unaryMinus ( x )"><span class="secnum">6.1.6.2.1</span> BigInt::unaryMinus ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-bitwiseNOT" title="BigInt::bitwiseNOT ( x )"><span class="secnum">6.1.6.2.2</span> BigInt::bitwiseNOT ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-exponentiate" title="BigInt::exponentiate ( base, exponent )"><span class="secnum">6.1.6.2.3</span> BigInt::exponentiate ( <var>base</var>, <var>exponent</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-multiply" title="BigInt::multiply ( x, y )"><span class="secnum">6.1.6.2.4</span> BigInt::multiply ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-divide" title="BigInt::divide ( x, y )"><span class="secnum">6.1.6.2.5</span> BigInt::divide ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-remainder" title="BigInt::remainder ( n, d )"><span class="secnum">6.1.6.2.6</span> BigInt::remainder ( <var>n</var>, <var>d</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-add" title="BigInt::add ( x, y )"><span class="secnum">6.1.6.2.7</span> BigInt::add ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-subtract" title="BigInt::subtract ( x, y )"><span class="secnum">6.1.6.2.8</span> BigInt::subtract ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-leftShift" title="BigInt::leftShift ( x, y )"><span class="secnum">6.1.6.2.9</span> BigInt::leftShift ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-signedRightShift" title="BigInt::signedRightShift ( x, y )"><span class="secnum">6.1.6.2.10</span> BigInt::signedRightShift ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-unsignedRightShift" title="BigInt::unsignedRightShift ( x, y )"><span class="secnum">6.1.6.2.11</span> BigInt::unsignedRightShift ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-lessThan" title="BigInt::lessThan ( x, y )"><span class="secnum">6.1.6.2.12</span> BigInt::lessThan ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-equal" title="BigInt::equal ( x, y )"><span class="secnum">6.1.6.2.13</span> BigInt::equal ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-binaryand" title="BinaryAnd ( x, y )"><span class="secnum">6.1.6.2.14</span> BinaryAnd ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-binaryor" title="BinaryOr ( x, y )"><span class="secnum">6.1.6.2.15</span> BinaryOr ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-binaryxor" title="BinaryXor ( x, y )"><span class="secnum">6.1.6.2.16</span> BinaryXor ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-bigintbitwiseop" title="BigIntBitwiseOp ( op, x, y )"><span class="secnum">6.1.6.2.17</span> BigIntBitwiseOp ( <var>op</var>, <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-bitwiseAND" title="BigInt::bitwiseAND ( x, y )"><span class="secnum">6.1.6.2.18</span> BigInt::bitwiseAND ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-bitwiseXOR" title="BigInt::bitwiseXOR ( x, y )"><span class="secnum">6.1.6.2.19</span> BigInt::bitwiseXOR ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-bitwiseOR" title="BigInt::bitwiseOR ( x, y )"><span class="secnum">6.1.6.2.20</span> BigInt::bitwiseOR ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-tostring" title="BigInt::toString ( x, radix )"><span class="secnum">6.1.6.2.21</span> BigInt::toString ( <var>x</var>, <var>radix</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-object-type" title="The Object Type"><span class="secnum">6.1.7</span> The Object Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-property-attributes" title="Property Attributes"><span class="secnum">6.1.7.1</span> Property Attributes</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-object-internal-methods-and-internal-slots" title="Object Internal Methods and Internal Slots"><span class="secnum">6.1.7.2</span> Object Internal Methods and Internal Slots</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-invariants-of-the-essential-internal-methods" title="Invariants of the Essential Internal Methods"><span class="secnum">6.1.7.3</span> Invariants of the Essential Internal Methods</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-well-known-intrinsic-objects" title="Well-Known Intrinsic Objects"><span class="secnum">6.1.7.4</span> Well-Known Intrinsic Objects</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-ecmascript-specification-types" title="ECMAScript Specification Types"><span class="secnum">6.2</span> ECMAScript Specification Types</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-enum-specification-type" title="The Enum Specification Type"><span class="secnum">6.2.1</span> The Enum Specification Type</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type" title="The List and Record Specification Types"><span class="secnum">6.2.2</span> The List and Record Specification Types</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-set-and-relation-specification-type" title="The Set and Relation Specification Types"><span class="secnum">6.2.3</span> The Set and Relation Specification Types</a></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type" title="The Completion Record Specification Type"><span class="secnum">6.2.4</span> The Completion Record Specification Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-normalcompletion" title="NormalCompletion ( value )"><span class="secnum">6.2.4.1</span> NormalCompletion ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-throwcompletion" title="ThrowCompletion ( value )"><span class="secnum">6.2.4.2</span> ThrowCompletion ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-returncompletion" title="ReturnCompletion ( value )"><span class="secnum">6.2.4.3</span> ReturnCompletion ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-updateempty" title="UpdateEmpty ( completionRecord, value )"><span class="secnum">6.2.4.4</span> UpdateEmpty ( <var>completionRecord</var>, <var>value</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-reference-record-specification-type" title="The Reference Record Specification Type"><span class="secnum">6.2.5</span> The Reference Record Specification Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-ispropertyreference" title="IsPropertyReference ( V )"><span class="secnum">6.2.5.1</span> IsPropertyReference ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-isunresolvablereference" title="IsUnresolvableReference ( V )"><span class="secnum">6.2.5.2</span> IsUnresolvableReference ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-issuperreference" title="IsSuperReference ( V )"><span class="secnum">6.2.5.3</span> IsSuperReference ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-isprivatereference" title="IsPrivateReference ( V )"><span class="secnum">6.2.5.4</span> IsPrivateReference ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-getvalue" title="GetValue ( V )"><span class="secnum">6.2.5.5</span> GetValue ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-putvalue" title="PutValue ( V, W )"><span class="secnum">6.2.5.6</span> PutValue ( <var>V</var>, <var>W</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-getthisvalue" title="GetThisValue ( V )"><span class="secnum">6.2.5.7</span> GetThisValue ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-initializereferencedbinding" title="InitializeReferencedBinding ( V, W )"><span class="secnum">6.2.5.8</span> InitializeReferencedBinding ( <var>V</var>, <var>W</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-makeprivatereference" title="MakePrivateReference ( baseValue, privateIdentifier )"><span class="secnum">6.2.5.9</span> MakePrivateReference ( <var>baseValue</var>, <var>privateIdentifier</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-property-descriptor-specification-type" title="The Property Descriptor Specification Type"><span class="secnum">6.2.6</span> The Property Descriptor Specification Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-isaccessordescriptor" title="IsAccessorDescriptor ( Desc )"><span class="secnum">6.2.6.1</span> IsAccessorDescriptor ( <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-isdatadescriptor" title="IsDataDescriptor ( Desc )"><span class="secnum">6.2.6.2</span> IsDataDescriptor ( <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-isgenericdescriptor" title="IsGenericDescriptor ( Desc )"><span class="secnum">6.2.6.3</span> IsGenericDescriptor ( <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-frompropertydescriptor" title="FromPropertyDescriptor ( Desc )"><span class="secnum">6.2.6.4</span> FromPropertyDescriptor ( <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-topropertydescriptor" title="ToPropertyDescriptor ( Obj )"><span class="secnum">6.2.6.5</span> ToPropertyDescriptor ( <var>Obj</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-completepropertydescriptor" title="CompletePropertyDescriptor ( Desc )"><span class="secnum">6.2.6.6</span> CompletePropertyDescriptor ( <var>Desc</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-lexical-environment-and-environment-record-specification-types" title="The Environment Record Specification Type"><span class="secnum">6.2.7</span> The Environment Record Specification Type</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-abstract-closure" title="The Abstract Closure Specification Type"><span class="secnum">6.2.8</span> The Abstract Closure Specification Type</a></li><li><span class="item-toggle">+</span><a href="ecmascript-data-types-and-values.html#sec-data-blocks" title="Data Blocks"><span class="secnum">6.2.9</span> Data Blocks</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-createbytedatablock" title="CreateByteDataBlock ( size )"><span class="secnum">6.2.9.1</span> CreateByteDataBlock ( <var>size</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-createsharedbytedatablock" title="CreateSharedByteDataBlock ( size )"><span class="secnum">6.2.9.2</span> CreateSharedByteDataBlock ( <var>size</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-copydatablockbytes" title="CopyDataBlockBytes ( toBlock, toIndex, fromBlock, fromIndex, count )"><span class="secnum">6.2.9.3</span> CopyDataBlockBytes ( <var>toBlock</var>, <var>toIndex</var>, <var>fromBlock</var>, <var>fromIndex</var>, <var>count</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-privateelement-specification-type" title="The PrivateElement Specification Type"><span class="secnum">6.2.10</span> The PrivateElement Specification Type</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-classfielddefinition-record-specification-type" title="The ClassFieldDefinition Record Specification Type"><span class="secnum">6.2.11</span> The ClassFieldDefinition Record Specification Type</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-private-names" title="Private Names"><span class="secnum">6.2.12</span> Private Names</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-data-types-and-values.html#sec-classstaticblockdefinition-record-specification-type" title="The ClassStaticBlockDefinition Record Specification Type"><span class="secnum">6.2.13</span> The ClassStaticBlockDefinition Record Specification Type</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-abstract-operations" title="Abstract Operations"><span class="secnum">7</span> Abstract Operations</a><ol class="toc"><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-type-conversion" title="Type Conversion"><span class="secnum">7.1</span> Type Conversion</a><ol class="toc"><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-toprimitive" title="ToPrimitive ( input [ , preferredType ] )"><span class="secnum">7.1.1</span> ToPrimitive ( <var>input</var> [ , <var>preferredType</var> ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-ordinarytoprimitive" title="OrdinaryToPrimitive ( O, hint )"><span class="secnum">7.1.1.1</span> OrdinaryToPrimitive ( <var>O</var>, <var>hint</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-toboolean" title="ToBoolean ( argument )"><span class="secnum">7.1.2</span> ToBoolean ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-tonumeric" title="ToNumeric ( value )"><span class="secnum">7.1.3</span> ToNumeric ( <var>value</var> )</a></li><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-tonumber" title="ToNumber ( argument )"><span class="secnum">7.1.4</span> ToNumber ( <var>argument</var> )</a><ol class="toc"><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-tonumber-applied-to-the-string-type" title="ToNumber Applied to the String Type"><span class="secnum">7.1.4.1</span> ToNumber Applied to the String Type</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-stringtonumber" title="StringToNumber ( str )"><span class="secnum">7.1.4.1.1</span> StringToNumber ( <var>str</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-runtime-semantics-stringnumericvalue" title="Runtime Semantics: StringNumericValue"><span class="secnum">7.1.4.1.2</span> RS: StringNumericValue</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-roundmvresult" title="RoundMVResult ( n )"><span class="secnum">7.1.4.1.3</span> RoundMVResult ( <var>n</var> )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-tointegerorinfinity" title="ToIntegerOrInfinity ( argument )"><span class="secnum">7.1.5</span> ToIntegerOrInfinity ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-toint32" title="ToInt32 ( argument )"><span class="secnum">7.1.6</span> ToInt32 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-touint32" title="ToUint32 ( argument )"><span class="secnum">7.1.7</span> ToUint32 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-toint16" title="ToInt16 ( argument )"><span class="secnum">7.1.8</span> ToInt16 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-touint16" title="ToUint16 ( argument )"><span class="secnum">7.1.9</span> ToUint16 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-toint8" title="ToInt8 ( argument )"><span class="secnum">7.1.10</span> ToInt8 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-touint8" title="ToUint8 ( argument )"><span class="secnum">7.1.11</span> ToUint8 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-touint8clamp" title="ToUint8Clamp ( argument )"><span class="secnum">7.1.12</span> ToUint8Clamp ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-tobigint" title="ToBigInt ( argument )"><span class="secnum">7.1.13</span> ToBigInt ( <var>argument</var> )</a></li><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-stringtobigint" title="StringToBigInt ( str )"><span class="secnum">7.1.14</span> StringToBigInt ( <var>str</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-stringintegerliteral-grammar" title="StringIntegerLiteral Grammar"><span class="secnum">7.1.14.1</span> StringIntegerLiteral Grammar</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-runtime-semantics-mv-for-stringintegerliteral" title="Runtime Semantics: MV"><span class="secnum">7.1.14.2</span> RS: MV</a></li></ol></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-tobigint64" title="ToBigInt64 ( argument )"><span class="secnum">7.1.15</span> ToBigInt64 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-tobiguint64" title="ToBigUint64 ( argument )"><span class="secnum">7.1.16</span> ToBigUint64 ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-tostring" title="ToString ( argument )"><span class="secnum">7.1.17</span> ToString ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-toobject" title="ToObject ( argument )"><span class="secnum">7.1.18</span> ToObject ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-topropertykey" title="ToPropertyKey ( argument )"><span class="secnum">7.1.19</span> ToPropertyKey ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-tolength" title="ToLength ( argument )"><span class="secnum">7.1.20</span> ToLength ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-canonicalnumericindexstring" title="CanonicalNumericIndexString ( argument )"><span class="secnum">7.1.21</span> CanonicalNumericIndexString ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-toindex" title="ToIndex ( value )"><span class="secnum">7.1.22</span> ToIndex ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-testing-and-comparison-operations" title="Testing and Comparison Operations"><span class="secnum">7.2</span> Testing and Comparison Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-requireobjectcoercible" title="RequireObjectCoercible ( argument )"><span class="secnum">7.2.1</span> RequireObjectCoercible ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-isarray" title="IsArray ( argument )"><span class="secnum">7.2.2</span> IsArray ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iscallable" title="IsCallable ( argument )"><span class="secnum">7.2.3</span> IsCallable ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-isconstructor" title="IsConstructor ( argument )"><span class="secnum">7.2.4</span> IsConstructor ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-isextensible-o" title="IsExtensible ( O )"><span class="secnum">7.2.5</span> IsExtensible ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-isregexp" title="IsRegExp ( argument )"><span class="secnum">7.2.6</span> IsRegExp ( <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-isstringwellformedunicode" title="Static Semantics: IsStringWellFormedUnicode ( string )"><span class="secnum">7.2.7</span> SS: IsStringWellFormedUnicode ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-sametype" title="SameType ( x, y )"><span class="secnum">7.2.8</span> SameType ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-samevalue" title="SameValue ( x, y )"><span class="secnum">7.2.9</span> SameValue ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-samevaluezero" title="SameValueZero ( x, y )"><span class="secnum">7.2.10</span> SameValueZero ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-samevaluenonnumber" title="SameValueNonNumber ( x, y )"><span class="secnum">7.2.11</span> SameValueNonNumber ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-islessthan" title="IsLessThan ( x, y, LeftFirst )"><span class="secnum">7.2.12</span> IsLessThan ( <var>x</var>, <var>y</var>, <var>LeftFirst</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-islooselyequal" title="IsLooselyEqual ( x, y )"><span class="secnum">7.2.13</span> IsLooselyEqual ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-isstrictlyequal" title="IsStrictlyEqual ( x, y )"><span class="secnum">7.2.14</span> IsStrictlyEqual ( <var>x</var>, <var>y</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-operations-on-objects" title="Operations on Objects"><span class="secnum">7.3</span> Operations on Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-makebasicobject" title="MakeBasicObject ( internalSlotsList )"><span class="secnum">7.3.1</span> MakeBasicObject ( <var>internalSlotsList</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-get-o-p" title="Get ( O, P )"><span class="secnum">7.3.2</span> Get ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getv" title="GetV ( V, P )"><span class="secnum">7.3.3</span> GetV ( <var>V</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-set-o-p-v-throw" title="Set ( O, P, V, Throw )"><span class="secnum">7.3.4</span> Set ( <var>O</var>, <var>P</var>, <var>V</var>, <var>Throw</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-createdataproperty" title="CreateDataProperty ( O, P, V )"><span class="secnum">7.3.5</span> CreateDataProperty ( <var>O</var>, <var>P</var>, <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-createdatapropertyorthrow" title="CreateDataPropertyOrThrow ( O, P, V )"><span class="secnum">7.3.6</span> CreateDataPropertyOrThrow ( <var>O</var>, <var>P</var>, <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-createnonenumerabledatapropertyorthrow" title="CreateNonEnumerableDataPropertyOrThrow ( O, P, V )"><span class="secnum">7.3.7</span> CreateNonEnumerableDataPropertyOrThrow ( <var>O</var>, <var>P</var>, <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-definepropertyorthrow" title="DefinePropertyOrThrow ( O, P, desc )"><span class="secnum">7.3.8</span> DefinePropertyOrThrow ( <var>O</var>, <var>P</var>, <var>desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-deletepropertyorthrow" title="DeletePropertyOrThrow ( O, P )"><span class="secnum">7.3.9</span> DeletePropertyOrThrow ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getmethod" title="GetMethod ( V, P )"><span class="secnum">7.3.10</span> GetMethod ( <var>V</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-hasproperty" title="HasProperty ( O, P )"><span class="secnum">7.3.11</span> HasProperty ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-hasownproperty" title="HasOwnProperty ( O, P )"><span class="secnum">7.3.12</span> HasOwnProperty ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-call" title="Call ( F, V [ , argumentsList ] )"><span class="secnum">7.3.13</span> Call ( <var>F</var>, <var>V</var> [ , <var>argumentsList</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-construct" title="Construct ( F [ , argumentsList [ , newTarget ] ] )"><span class="secnum">7.3.14</span> Construct ( <var>F</var> [ , <var>argumentsList</var> [ , <var>newTarget</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-setintegritylevel" title="SetIntegrityLevel ( O, level )"><span class="secnum">7.3.15</span> SetIntegrityLevel ( <var>O</var>, <var>level</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-testintegritylevel" title="TestIntegrityLevel ( O, level )"><span class="secnum">7.3.16</span> TestIntegrityLevel ( <var>O</var>, <var>level</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-createarrayfromlist" title="CreateArrayFromList ( elements )"><span class="secnum">7.3.17</span> CreateArrayFromList ( <var>elements</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-lengthofarraylike" title="LengthOfArrayLike ( obj )"><span class="secnum">7.3.18</span> LengthOfArrayLike ( <var>obj</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-createlistfromarraylike" title="CreateListFromArrayLike ( obj [ , validElementTypes ] )"><span class="secnum">7.3.19</span> CreateListFromArrayLike ( <var>obj</var> [ , <var>validElementTypes</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-invoke" title="Invoke ( V, P [ , argumentsList ] )"><span class="secnum">7.3.20</span> Invoke ( <var>V</var>, <var>P</var> [ , <var>argumentsList</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-ordinaryhasinstance" title="OrdinaryHasInstance ( C, O )"><span class="secnum">7.3.21</span> OrdinaryHasInstance ( <var>C</var>, <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-speciesconstructor" title="SpeciesConstructor ( O, defaultConstructor )"><span class="secnum">7.3.22</span> SpeciesConstructor ( <var>O</var>, <var>defaultConstructor</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-enumerableownproperties" title="EnumerableOwnProperties ( O, kind )"><span class="secnum">7.3.23</span> EnumerableOwnProperties ( <var>O</var>, <var>kind</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getfunctionrealm" title="GetFunctionRealm ( obj )"><span class="secnum">7.3.24</span> GetFunctionRealm ( <var>obj</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-copydataproperties" title="CopyDataProperties ( target, source, excludedItems )"><span class="secnum">7.3.25</span> CopyDataProperties ( <var>target</var>, <var>source</var>, <var>excludedItems</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-privateelementfind" title="PrivateElementFind ( O, P )"><span class="secnum">7.3.26</span> PrivateElementFind ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-privatefieldadd" title="PrivateFieldAdd ( O, P, value )"><span class="secnum">7.3.27</span> PrivateFieldAdd ( <var>O</var>, <var>P</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-privatemethodoraccessoradd" title="PrivateMethodOrAccessorAdd ( O, method )"><span class="secnum">7.3.28</span> PrivateMethodOrAccessorAdd ( <var>O</var>, <var>method</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-hostensurecanaddprivateelement" title="HostEnsureCanAddPrivateElement ( O )"><span class="secnum">7.3.29</span> HostEnsureCanAddPrivateElement ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-privateget" title="PrivateGet ( O, P )"><span class="secnum">7.3.30</span> PrivateGet ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-privateset" title="PrivateSet ( O, P, value )"><span class="secnum">7.3.31</span> PrivateSet ( <var>O</var>, <var>P</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-definefield" title="DefineField ( receiver, fieldRecord )"><span class="secnum">7.3.32</span> DefineField ( <var>receiver</var>, <var>fieldRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-initializeinstanceelements" title="InitializeInstanceElements ( O, constructor )"><span class="secnum">7.3.33</span> InitializeInstanceElements ( <var>O</var>, <var>constructor</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-add-value-to-keyed-group" title="AddValueToKeyedGroup ( groups, key, value )"><span class="secnum">7.3.34</span> AddValueToKeyedGroup ( <var>groups</var>, <var>key</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-groupby" title="GroupBy ( items, callback, keyCoercion )"><span class="secnum">7.3.35</span> GroupBy ( <var>items</var>, <var>callback</var>, <var>keyCoercion</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getoptionsobject" title="GetOptionsObject ( options )"><span class="secnum">7.3.36</span> GetOptionsObject ( <var>options</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-SetterThatIgnoresPrototypeProperties" title="SetterThatIgnoresPrototypeProperties ( thisValue, home, p, v )"><span class="secnum">7.3.37</span> SetterThatIgnoresPrototypeProperties ( <var>thisValue</var>, <var>home</var>, <var>p</var>, <var>v</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="abstract-operations.html#sec-operations-on-iterator-objects" title="Operations on Iterator Objects"><span class="secnum">7.4</span> Operations on Iterator Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iterator-records" title="Iterator Records"><span class="secnum">7.4.1</span> Iterator Records</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getiteratordirect" title="GetIteratorDirect ( obj )"><span class="secnum">7.4.2</span> GetIteratorDirect ( <var>obj</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getiteratorfrommethod" title="GetIteratorFromMethod ( obj, method )"><span class="secnum">7.4.3</span> GetIteratorFromMethod ( <var>obj</var>, <var>method</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getiterator" title="GetIterator ( obj, kind )"><span class="secnum">7.4.4</span> GetIterator ( <var>obj</var>, <var>kind</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-getiteratorflattenable" title="GetIteratorFlattenable ( obj, primitiveHandling )"><span class="secnum">7.4.5</span> GetIteratorFlattenable ( <var>obj</var>, <var>primitiveHandling</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratornext" title="IteratorNext ( iteratorRecord [ , value ] )"><span class="secnum">7.4.6</span> IteratorNext ( <var>iteratorRecord</var> [ , <var>value</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratorcomplete" title="IteratorComplete ( iteratorResult )"><span class="secnum">7.4.7</span> IteratorComplete ( <var>iteratorResult</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratorvalue" title="IteratorValue ( iteratorResult )"><span class="secnum">7.4.8</span> IteratorValue ( <var>iteratorResult</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratorstep" title="IteratorStep ( iteratorRecord )"><span class="secnum">7.4.9</span> IteratorStep ( <var>iteratorRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratorstepvalue" title="IteratorStepValue ( iteratorRecord )"><span class="secnum">7.4.10</span> IteratorStepValue ( <var>iteratorRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratorclose" title="IteratorClose ( iteratorRecord, completion )"><span class="secnum">7.4.11</span> IteratorClose ( <var>iteratorRecord</var>, <var>completion</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratorcloseall" title="IteratorCloseAll ( iters, completion )"><span class="secnum">7.4.12</span> IteratorCloseAll ( <var>iters</var>, <var>completion</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-ifabruptcloseiterator" title="IfAbruptCloseIterator ( value, iteratorRecord )"><span class="secnum">7.4.13</span> IfAbruptCloseIterator ( <var>value</var>, <var>iteratorRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-asynciteratorclose" title="AsyncIteratorClose ( iteratorRecord, completion )"><span class="secnum">7.4.14</span> AsyncIteratorClose ( <var>iteratorRecord</var>, <var>completion</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-ifabruptcloseasynciterator" title="IfAbruptCloseAsyncIterator ( value, iteratorRecord )"><span class="secnum">7.4.15</span> IfAbruptCloseAsyncIterator ( <var>value</var>, <var>iteratorRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-createiterresultobject" title="CreateIteratorResultObject ( value, done )"><span class="secnum">7.4.16</span> CreateIteratorResultObject ( <var>value</var>, <var>done</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-createlistiteratorRecord" title="CreateListIteratorRecord ( list )"><span class="secnum">7.4.17</span> CreateListIteratorRecord ( <var>list</var> )</a></li><li><span class="item-toggle-none"></span><a href="abstract-operations.html#sec-iteratortolist" title="IteratorToList ( iteratorRecord )"><span class="secnum">7.4.18</span> IteratorToList ( <var>iteratorRecord</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="syntax-directed-operations.html#sec-syntax-directed-operations" title="Syntax-Directed Operations"><span class="secnum">8</span> Syntax-Directed Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">8.1</span> RS: Evaluation</a></li><li><span class="item-toggle">+</span><a href="syntax-directed-operations.html#sec-syntax-directed-operations-scope-analysis" title="Scope Analysis"><span class="secnum">8.2</span> Scope Analysis</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-boundnames" title="Static Semantics: BoundNames"><span class="secnum">8.2.1</span> SS: BoundNames</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-declarationpart" title="Static Semantics: DeclarationPart"><span class="secnum">8.2.2</span> SS: DeclarationPart</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-isconstantdeclaration" title="Static Semantics: IsConstantDeclaration"><span class="secnum">8.2.3</span> SS: IsConstantDeclaration</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-lexicallydeclarednames" title="Static Semantics: LexicallyDeclaredNames"><span class="secnum">8.2.4</span> SS: LexicallyDeclaredNames</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-lexicallyscopeddeclarations" title="Static Semantics: LexicallyScopedDeclarations"><span class="secnum">8.2.5</span> SS: LexicallyScopedDeclarations</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-vardeclarednames" title="Static Semantics: VarDeclaredNames"><span class="secnum">8.2.6</span> SS: VarDeclaredNames</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-varscopeddeclarations" title="Static Semantics: VarScopedDeclarations"><span class="secnum">8.2.7</span> SS: VarScopedDeclarations</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-toplevellexicallydeclarednames" title="Static Semantics: TopLevelLexicallyDeclaredNames"><span class="secnum">8.2.8</span> SS: TopLevelLexicallyDeclaredNames</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-toplevellexicallyscopeddeclarations" title="Static Semantics: TopLevelLexicallyScopedDeclarations"><span class="secnum">8.2.9</span> SS: TopLevelLexicallyScopedDeclarations</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-toplevelvardeclarednames" title="Static Semantics: TopLevelVarDeclaredNames"><span class="secnum">8.2.10</span> SS: TopLevelVarDeclaredNames</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-toplevelvarscopeddeclarations" title="Static Semantics: TopLevelVarScopedDeclarations"><span class="secnum">8.2.11</span> SS: TopLevelVarScopedDeclarations</a></li></ol></li><li><span class="item-toggle">+</span><a href="syntax-directed-operations.html#sec-syntax-directed-operations-labels" title="Labels"><span class="secnum">8.3</span> Labels</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-containsduplicatelabels" title="Static Semantics: ContainsDuplicateLabels"><span class="secnum">8.3.1</span> SS: ContainsDuplicateLabels</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedbreaktarget" title="Static Semantics: ContainsUndefinedBreakTarget"><span class="secnum">8.3.2</span> SS: ContainsUndefinedBreakTarget</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedcontinuetarget" title="Static Semantics: ContainsUndefinedContinueTarget"><span class="secnum">8.3.3</span> SS: ContainsUndefinedContinueTarget</a></li></ol></li><li><span class="item-toggle">+</span><a href="syntax-directed-operations.html#sec-syntax-directed-operations-function-name-inference" title="Function Name Inference"><span class="secnum">8.4</span> Function Name Inference</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-hasname" title="Static Semantics: HasName"><span class="secnum">8.4.1</span> SS: HasName</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-isfunctiondefinition" title="Static Semantics: IsFunctionDefinition"><span class="secnum">8.4.2</span> SS: IsFunctionDefinition</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-isanonymousfunctiondefinition" title="Static Semantics: IsAnonymousFunctionDefinition ( expr )"><span class="secnum">8.4.3</span> SS: IsAnonymousFunctionDefinition ( <var>expr</var> )</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-isidentifierref" title="Static Semantics: IsIdentifierRef"><span class="secnum">8.4.4</span> SS: IsIdentifierRef</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-runtime-semantics-namedevaluation" title="Runtime Semantics: NamedEvaluation"><span class="secnum">8.4.5</span> RS: NamedEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="syntax-directed-operations.html#sec-syntax-directed-operations-contains" title="Contains"><span class="secnum">8.5</span> Contains</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-contains" title="Static Semantics: Contains"><span class="secnum">8.5.1</span> SS: Contains</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-computedpropertycontains" title="Static Semantics: ComputedPropertyContains"><span class="secnum">8.5.2</span> SS: ComputedPropertyContains</a></li></ol></li><li><span class="item-toggle">+</span><a href="syntax-directed-operations.html#sec-syntax-directed-operations-miscellaneous" title="Miscellaneous"><span class="secnum">8.6</span> Miscellaneous</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-runtime-semantics-instantiatefunctionobject" title="Runtime Semantics: InstantiateFunctionObject"><span class="secnum">8.6.1</span> RS: InstantiateFunctionObject</a></li><li><span class="item-toggle">+</span><a href="syntax-directed-operations.html#sec-runtime-semantics-bindinginitialization" title="Runtime Semantics: BindingInitialization"><span class="secnum">8.6.2</span> RS: BindingInitialization</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-initializeboundname" title="InitializeBoundName ( name, value, environment )"><span class="secnum">8.6.2.1</span> InitializeBoundName ( <var>name</var>, <var>value</var>, <var>environment</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-runtime-semantics-iteratorbindinginitialization" title="Runtime Semantics: IteratorBindingInitialization"><span class="secnum">8.6.3</span> RS: IteratorBindingInitialization</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-assignmenttargettype" title="Static Semantics: AssignmentTargetType"><span class="secnum">8.6.4</span> SS: AssignmentTargetType</a></li><li><span class="item-toggle-none"></span><a href="syntax-directed-operations.html#sec-static-semantics-propname" title="Static Semantics: PropName"><span class="secnum">8.6.5</span> SS: PropName</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-executable-code-and-execution-contexts" title="Executable Code and Execution Contexts"><span class="secnum">9</span> Executable Code and Execution Contexts</a><ol class="toc"><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-environment-records" title="Environment Records"><span class="secnum">9.1</span> Environment Records</a><ol class="toc"><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-the-environment-record-type-hierarchy" title="The Environment Record Type Hierarchy"><span class="secnum">9.1.1</span> The Environment Record Type Hierarchy</a><ol class="toc"><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records" title="Declarative Environment Records"><span class="secnum">9.1.1.1</span> Declarative Environment Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-hasbinding-n" title="HasBinding ( N )"><span class="secnum">9.1.1.1.1</span> HasBinding ( <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-createmutablebinding-n-d" title="CreateMutableBinding ( N, D )"><span class="secnum">9.1.1.1.2</span> CreateMutableBinding ( <var>N</var>, <var>D</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-createimmutablebinding-n-s" title="CreateImmutableBinding ( N, S )"><span class="secnum">9.1.1.1.3</span> CreateImmutableBinding ( <var>N</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-initializebinding-n-v" title="InitializeBinding ( N, V )"><span class="secnum">9.1.1.1.4</span> InitializeBinding ( <var>N</var>, <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-setmutablebinding-n-v-s" title="SetMutableBinding ( N, V, S )"><span class="secnum">9.1.1.1.5</span> SetMutableBinding ( <var>N</var>, <var>V</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-getbindingvalue-n-s" title="GetBindingValue ( N, S )"><span class="secnum">9.1.1.1.6</span> GetBindingValue ( <var>N</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-deletebinding-n" title="DeleteBinding ( N )"><span class="secnum">9.1.1.1.7</span> DeleteBinding ( <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-hasthisbinding" title="HasThisBinding ( )"><span class="secnum">9.1.1.1.8</span> HasThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-getthisbinding" title="GetThisBinding ( )"><span class="secnum">9.1.1.1.9</span> GetThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-hassuperbinding" title="HasSuperBinding ( )"><span class="secnum">9.1.1.1.10</span> HasSuperBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-declarative-environment-records-withbaseobject" title="WithBaseObject ( )"><span class="secnum">9.1.1.1.11</span> WithBaseObject ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records" title="Object Environment Records"><span class="secnum">9.1.1.2</span> Object Environment Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-hasbinding-n" title="HasBinding ( N )"><span class="secnum">9.1.1.2.1</span> HasBinding ( <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-createmutablebinding-n-d" title="CreateMutableBinding ( N, D )"><span class="secnum">9.1.1.2.2</span> CreateMutableBinding ( <var>N</var>, <var>D</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-createimmutablebinding-n-s" title="CreateImmutableBinding ( N, S )"><span class="secnum">9.1.1.2.3</span> CreateImmutableBinding ( <var>N</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-initializebinding-n-v" title="InitializeBinding ( N, V )"><span class="secnum">9.1.1.2.4</span> InitializeBinding ( <var>N</var>, <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-setmutablebinding-n-v-s" title="SetMutableBinding ( N, V, S )"><span class="secnum">9.1.1.2.5</span> SetMutableBinding ( <var>N</var>, <var>V</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-getbindingvalue-n-s" title="GetBindingValue ( N, S )"><span class="secnum">9.1.1.2.6</span> GetBindingValue ( <var>N</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-deletebinding-n" title="DeleteBinding ( N )"><span class="secnum">9.1.1.2.7</span> DeleteBinding ( <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-hasthisbinding" title="HasThisBinding ( )"><span class="secnum">9.1.1.2.8</span> HasThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-getthisbinding" title="GetThisBinding ( )"><span class="secnum">9.1.1.2.9</span> GetThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-hassuperbinding" title="HasSuperBinding ( )"><span class="secnum">9.1.1.2.10</span> HasSuperBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-object-environment-records-withbaseobject" title="WithBaseObject ( )"><span class="secnum">9.1.1.2.11</span> WithBaseObject ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-function-environment-records" title="Function Environment Records"><span class="secnum">9.1.1.3</span> Function Environment Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-bindthisvalue" title="BindThisValue ( envRec, V )"><span class="secnum">9.1.1.3.1</span> BindThisValue ( <var>envRec</var>, <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-function-environment-records-hasthisbinding" title="HasThisBinding ( )"><span class="secnum">9.1.1.3.2</span> HasThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-function-environment-records-getthisbinding" title="GetThisBinding ( )"><span class="secnum">9.1.1.3.3</span> GetThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-function-environment-records-hassuperbinding" title="HasSuperBinding ( )"><span class="secnum">9.1.1.3.4</span> HasSuperBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-getsuperbase" title="GetSuperBase ( envRec )"><span class="secnum">9.1.1.3.5</span> GetSuperBase ( <var>envRec</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records" title="Global Environment Records"><span class="secnum">9.1.1.4</span> Global Environment Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-hasbinding-n" title="HasBinding ( N )"><span class="secnum">9.1.1.4.1</span> HasBinding ( <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-createmutablebinding-n-d" title="CreateMutableBinding ( N, D )"><span class="secnum">9.1.1.4.2</span> CreateMutableBinding ( <var>N</var>, <var>D</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-createimmutablebinding-n-s" title="CreateImmutableBinding ( N, S )"><span class="secnum">9.1.1.4.3</span> CreateImmutableBinding ( <var>N</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-initializebinding-n-v" title="InitializeBinding ( N, V )"><span class="secnum">9.1.1.4.4</span> InitializeBinding ( <var>N</var>, <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-setmutablebinding-n-v-s" title="SetMutableBinding ( N, V, S )"><span class="secnum">9.1.1.4.5</span> SetMutableBinding ( <var>N</var>, <var>V</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-getbindingvalue-n-s" title="GetBindingValue ( N, S )"><span class="secnum">9.1.1.4.6</span> GetBindingValue ( <var>N</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-deletebinding-n" title="DeleteBinding ( N )"><span class="secnum">9.1.1.4.7</span> DeleteBinding ( <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-hasthisbinding" title="HasThisBinding ( )"><span class="secnum">9.1.1.4.8</span> HasThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-getthisbinding" title="GetThisBinding ( )"><span class="secnum">9.1.1.4.9</span> GetThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-hassuperbinding" title="HasSuperBinding ( )"><span class="secnum">9.1.1.4.10</span> HasSuperBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-global-environment-records-withbaseobject" title="WithBaseObject ( )"><span class="secnum">9.1.1.4.11</span> WithBaseObject ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-haslexicaldeclaration" title="HasLexicalDeclaration ( envRec, N )"><span class="secnum">9.1.1.4.12</span> HasLexicalDeclaration ( <var>envRec</var>, <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-hasrestrictedglobalproperty" title="HasRestrictedGlobalProperty ( envRec, N )"><span class="secnum">9.1.1.4.13</span> HasRestrictedGlobalProperty ( <var>envRec</var>, <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-candeclareglobalvar" title="CanDeclareGlobalVar ( envRec, N )"><span class="secnum">9.1.1.4.14</span> CanDeclareGlobalVar ( <var>envRec</var>, <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-candeclareglobalfunction" title="CanDeclareGlobalFunction ( envRec, N )"><span class="secnum">9.1.1.4.15</span> CanDeclareGlobalFunction ( <var>envRec</var>, <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-createglobalvarbinding" title="CreateGlobalVarBinding ( envRec, N, D )"><span class="secnum">9.1.1.4.16</span> CreateGlobalVarBinding ( <var>envRec</var>, <var>N</var>, <var>D</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-createglobalfunctionbinding" title="CreateGlobalFunctionBinding ( envRec, N, V, D )"><span class="secnum">9.1.1.4.17</span> CreateGlobalFunctionBinding ( <var>envRec</var>, <var>N</var>, <var>V</var>, <var>D</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-module-environment-records" title="Module Environment Records"><span class="secnum">9.1.1.5</span> Module Environment Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-module-environment-records-getbindingvalue-n-s" title="GetBindingValue ( N, S )"><span class="secnum">9.1.1.5.1</span> GetBindingValue ( <var>N</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-module-environment-records-deletebinding-n" title="DeleteBinding ( N )"><span class="secnum">9.1.1.5.2</span> DeleteBinding ( <var>N</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-module-environment-records-hasthisbinding" title="HasThisBinding ( )"><span class="secnum">9.1.1.5.3</span> HasThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-module-environment-records-getthisbinding" title="GetThisBinding ( )"><span class="secnum">9.1.1.5.4</span> GetThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-createimportbinding" title="CreateImportBinding ( envRec, N, M, N2 )"><span class="secnum">9.1.1.5.5</span> CreateImportBinding ( <var>envRec</var>, <var>N</var>, <var>M</var>, <var>N2</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-environment-record-operations" title="Environment Record Operations"><span class="secnum">9.1.2</span> Environment Record Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-getidentifierreference" title="GetIdentifierReference ( env, name, strict )"><span class="secnum">9.1.2.1</span> GetIdentifierReference ( <var>env</var>, <var>name</var>, <var>strict</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-newdeclarativeenvironment" title="NewDeclarativeEnvironment ( E )"><span class="secnum">9.1.2.2</span> NewDeclarativeEnvironment ( <var>E</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-newobjectenvironment" title="NewObjectEnvironment ( O, W, E )"><span class="secnum">9.1.2.3</span> NewObjectEnvironment ( <var>O</var>, <var>W</var>, <var>E</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-newfunctionenvironment" title="NewFunctionEnvironment ( F, newTarget )"><span class="secnum">9.1.2.4</span> NewFunctionEnvironment ( <var>F</var>, <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-newglobalenvironment" title="NewGlobalEnvironment ( G, thisValue )"><span class="secnum">9.1.2.5</span> NewGlobalEnvironment ( <var>G</var>, <var>thisValue</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-newmoduleenvironment" title="NewModuleEnvironment ( E )"><span class="secnum">9.1.2.6</span> NewModuleEnvironment ( <var>E</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-privateenvironment-records" title="PrivateEnvironment Records"><span class="secnum">9.2</span> PrivateEnvironment Records</a><ol class="toc"><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-privateenvironment-record-operations" title="PrivateEnvironment Record Operations"><span class="secnum">9.2.1</span> PrivateEnvironment Record Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-newprivateenvironment" title="NewPrivateEnvironment ( outerPrivateEnv )"><span class="secnum">9.2.1.1</span> NewPrivateEnvironment ( <var>outerPrivateEnv</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-resolve-private-identifier" title="ResolvePrivateIdentifier ( privateEnv, identifier )"><span class="secnum">9.2.1.2</span> ResolvePrivateIdentifier ( <var>privateEnv</var>, <var>identifier</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-code-realms" title="Realms"><span class="secnum">9.3</span> Realms</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-initializehostdefinedrealm" title="InitializeHostDefinedRealm ( )"><span class="secnum">9.3.1</span> InitializeHostDefinedRealm ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-createintrinsics" title="CreateIntrinsics ( realmRec )"><span class="secnum">9.3.2</span> CreateIntrinsics ( <var>realmRec</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-setdefaultglobalbindings" title="SetDefaultGlobalBindings ( realmRec )"><span class="secnum">9.3.3</span> SetDefaultGlobalBindings ( <var>realmRec</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-execution-contexts" title="Execution Contexts"><span class="secnum">9.4</span> Execution Contexts</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-getactivescriptormodule" title="GetActiveScriptOrModule ( )"><span class="secnum">9.4.1</span> GetActiveScriptOrModule ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-resolvebinding" title="ResolveBinding ( name [ , env ] )"><span class="secnum">9.4.2</span> ResolveBinding ( <var>name</var> [ , <var>env</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-getthisenvironment" title="GetThisEnvironment ( )"><span class="secnum">9.4.3</span> GetThisEnvironment ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-resolvethisbinding" title="ResolveThisBinding ( )"><span class="secnum">9.4.4</span> ResolveThisBinding ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-getnewtarget" title="GetNewTarget ( )"><span class="secnum">9.4.5</span> GetNewTarget ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-getglobalobject" title="GetGlobalObject ( )"><span class="secnum">9.4.6</span> GetGlobalObject ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-jobs" title="Jobs and Host Operations to Enqueue Jobs"><span class="secnum">9.5</span> Jobs and Host Operations to Enqueue Jobs</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-jobcallback-records" title="JobCallback Records"><span class="secnum">9.5.1</span> JobCallback Records</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-hostmakejobcallback" title="HostMakeJobCallback ( callback )"><span class="secnum">9.5.2</span> HostMakeJobCallback ( <var>callback</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-hostcalljobcallback" title="HostCallJobCallback ( jobCallback, V, argumentsList )"><span class="secnum">9.5.3</span> HostCallJobCallback ( <var>jobCallback</var>, <var>V</var>, <var>argumentsList</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-hostenqueuegenericjob" title="HostEnqueueGenericJob ( job, realm )"><span class="secnum">9.5.4</span> HostEnqueueGenericJob ( <var>job</var>, <var>realm</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-hostenqueuepromisejob" title="HostEnqueuePromiseJob ( job, realm )"><span class="secnum">9.5.5</span> HostEnqueuePromiseJob ( <var>job</var>, <var>realm</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-hostenqueuetimeoutjob" title="HostEnqueueTimeoutJob ( timeoutJob, realm, milliseconds )"><span class="secnum">9.5.6</span> HostEnqueueTimeoutJob ( <var>timeoutJob</var>, <var>realm</var>, <var>milliseconds</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-agents" title="Agents"><span class="secnum">9.6</span> Agents</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-agentsignifier" title="AgentSignifier ( )"><span class="secnum">9.6.1</span> AgentSignifier ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-agentcansuspend" title="AgentCanSuspend ( )"><span class="secnum">9.6.2</span> AgentCanSuspend ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-IncrementModuleAsyncEvaluationCount" title="IncrementModuleAsyncEvaluationCount ( )"><span class="secnum">9.6.3</span> IncrementModuleAsyncEvaluationCount ( )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-agent-clusters" title="Agent Clusters"><span class="secnum">9.7</span> Agent Clusters</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-forward-progress" title="Forward Progress"><span class="secnum">9.8</span> Forward Progress</a></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-weakref-processing-model" title="Processing Model of WeakRef and FinalizationRegistry Targets"><span class="secnum">9.9</span> Processing Model of WeakRef and FinalizationRegistry Targets</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-weakref-invariants" title="Objectives"><span class="secnum">9.9.1</span> Objectives</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-liveness" title="Liveness"><span class="secnum">9.9.2</span> Liveness</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-weakref-execution" title="Execution"><span class="secnum">9.9.3</span> Execution</a></li><li><span class="item-toggle">+</span><a href="executable-code-and-execution-contexts.html#sec-weakref-host-hooks" title="Host Hooks"><span class="secnum">9.9.4</span> Host Hooks</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-host-cleanup-finalization-registry" title="HostEnqueueFinalizationRegistryCleanupJob ( finalizationRegistry )"><span class="secnum">9.9.4.1</span> HostEnqueueFinalizationRegistryCleanupJob ( <var>finalizationRegistry</var> )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-clear-kept-objects" title="ClearKeptObjects ( )"><span class="secnum">9.10</span> ClearKeptObjects ( )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-addtokeptobjects" title="AddToKeptObjects ( value )"><span class="secnum">9.11</span> AddToKeptObjects ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-cleanup-finalization-registry" title="CleanupFinalizationRegistry ( finalizationRegistry )"><span class="secnum">9.12</span> CleanupFinalizationRegistry ( <var>finalizationRegistry</var> )</a></li><li><span class="item-toggle-none"></span><a href="executable-code-and-execution-contexts.html#sec-canbeheldweakly" title="CanBeHeldWeakly ( v )"><span class="secnum">9.13</span> CanBeHeldWeakly ( <var>v</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-and-exotic-objects-behaviours" title="Ordinary and Exotic Objects Behaviours"><span class="secnum">10</span> Ordinary and Exotic Objects Behaviours</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots" title="Ordinary Object Internal Methods and Internal Slots"><span class="secnum">10.1</span> Ordinary Object Internal Methods and Internal Slots</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-getprototypeof" title="[[GetPrototypeOf]] ( )"><span class="secnum">10.1.1</span> <var class="field">[[GetPrototypeOf]]</var> ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarygetprototypeof" title="OrdinaryGetPrototypeOf ( O )"><span class="secnum">10.1.1.1</span> OrdinaryGetPrototypeOf ( <var>O</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-setprototypeof-v" title="[[SetPrototypeOf]] ( V )"><span class="secnum">10.1.2</span> <var class="field">[[SetPrototypeOf]]</var> ( <var>V</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarysetprototypeof" title="OrdinarySetPrototypeOf ( O, V )"><span class="secnum">10.1.2.1</span> OrdinarySetPrototypeOf ( <var>O</var>, <var>V</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-isextensible" title="[[IsExtensible]] ( )"><span class="secnum">10.1.3</span> <var class="field">[[IsExtensible]]</var> ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinaryisextensible" title="OrdinaryIsExtensible ( O )"><span class="secnum">10.1.3.1</span> OrdinaryIsExtensible ( <var>O</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-preventextensions" title="[[PreventExtensions]] ( )"><span class="secnum">10.1.4</span> <var class="field">[[PreventExtensions]]</var> ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarypreventextensions" title="OrdinaryPreventExtensions ( O )"><span class="secnum">10.1.4.1</span> OrdinaryPreventExtensions ( <var>O</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-getownproperty-p" title="[[GetOwnProperty]] ( P )"><span class="secnum">10.1.5</span> <var class="field">[[GetOwnProperty]]</var> ( <var>P</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarygetownproperty" title="OrdinaryGetOwnProperty ( O, P )"><span class="secnum">10.1.5.1</span> OrdinaryGetOwnProperty ( <var>O</var>, <var>P</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-defineownproperty-p-desc" title="[[DefineOwnProperty]] ( P, Desc )"><span class="secnum">10.1.6</span> <var class="field">[[DefineOwnProperty]]</var> ( <var>P</var>, <var>Desc</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarydefineownproperty" title="OrdinaryDefineOwnProperty ( O, P, Desc )"><span class="secnum">10.1.6.1</span> OrdinaryDefineOwnProperty ( <var>O</var>, <var>P</var>, <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-iscompatiblepropertydescriptor" title="IsCompatiblePropertyDescriptor ( Extensible, Desc, Current )"><span class="secnum">10.1.6.2</span> IsCompatiblePropertyDescriptor ( <var>Extensible</var>, <var>Desc</var>, <var>Current</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-validateandapplypropertydescriptor" title="ValidateAndApplyPropertyDescriptor ( O, P, extensible, Desc, current )"><span class="secnum">10.1.6.3</span> ValidateAndApplyPropertyDescriptor ( <var>O</var>, <var>P</var>, <var>extensible</var>, <var>Desc</var>, <var>current</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-hasproperty-p" title="[[HasProperty]] ( P )"><span class="secnum">10.1.7</span> <var class="field">[[HasProperty]]</var> ( <var>P</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinaryhasproperty" title="OrdinaryHasProperty ( O, P )"><span class="secnum">10.1.7.1</span> OrdinaryHasProperty ( <var>O</var>, <var>P</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-get-p-receiver" title="[[Get]] ( P, Receiver )"><span class="secnum">10.1.8</span> <var class="field">[[Get]]</var> ( <var>P</var>, <var>Receiver</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinaryget" title="OrdinaryGet ( O, P, Receiver )"><span class="secnum">10.1.8.1</span> OrdinaryGet ( <var>O</var>, <var>P</var>, <var>Receiver</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-set-p-v-receiver" title="[[Set]] ( P, V, Receiver )"><span class="secnum">10.1.9</span> <var class="field">[[Set]]</var> ( <var>P</var>, <var>V</var>, <var>Receiver</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinaryset" title="OrdinarySet ( O, P, V, Receiver )"><span class="secnum">10.1.9.1</span> OrdinarySet ( <var>O</var>, <var>P</var>, <var>V</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarysetwithowndescriptor" title="OrdinarySetWithOwnDescriptor ( O, P, V, Receiver, ownDesc )"><span class="secnum">10.1.9.2</span> OrdinarySetWithOwnDescriptor ( <var>O</var>, <var>P</var>, <var>V</var>, <var>Receiver</var>, <var>ownDesc</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-delete-p" title="[[Delete]] ( P )"><span class="secnum">10.1.10</span> <var class="field">[[Delete]]</var> ( <var>P</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarydelete" title="OrdinaryDelete ( O, P )"><span class="secnum">10.1.10.1</span> OrdinaryDelete ( <var>O</var>, <var>P</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys" title="[[OwnPropertyKeys]] ( )"><span class="secnum">10.1.11</span> <var class="field">[[OwnPropertyKeys]]</var> ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinaryownpropertykeys" title="OrdinaryOwnPropertyKeys ( O )"><span class="secnum">10.1.11.1</span> OrdinaryOwnPropertyKeys ( <var>O</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinaryobjectcreate" title="OrdinaryObjectCreate ( proto [ , additionalInternalSlotsList ] )"><span class="secnum">10.1.12</span> OrdinaryObjectCreate ( <var>proto</var> [ , <var>additionalInternalSlotsList</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarycreatefromconstructor" title="OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto [ , internalSlotsList ] )"><span class="secnum">10.1.13</span> OrdinaryCreateFromConstructor ( <var>constructor</var>, <var>intrinsicDefaultProto</var> [ , <var>internalSlotsList</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-getprototypefromconstructor" title="GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto )"><span class="secnum">10.1.14</span> GetPrototypeFromConstructor ( <var>constructor</var>, <var>intrinsicDefaultProto</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot" title="RequireInternalSlot ( O, internalSlot )"><span class="secnum">10.1.15</span> RequireInternalSlot ( <var>O</var>, <var>internalSlot</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ecmascript-function-objects" title="ECMAScript Function Objects"><span class="secnum">10.2</span> ECMAScript Function Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ecmascript-function-objects-call-thisargument-argumentslist" title="[[Call]] ( thisArgument, argumentsList )"><span class="secnum">10.2.1</span> <var class="field">[[Call]]</var> ( <var>thisArgument</var>, <var>argumentsList</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-prepareforordinarycall" title="PrepareForOrdinaryCall ( F, newTarget )"><span class="secnum">10.2.1.1</span> PrepareForOrdinaryCall ( <var>F</var>, <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarycallbindthis" title="OrdinaryCallBindThis ( F, calleeContext, thisArgument )"><span class="secnum">10.2.1.2</span> OrdinaryCallBindThis ( <var>F</var>, <var>calleeContext</var>, <var>thisArgument</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-runtime-semantics-evaluatebody" title="Runtime Semantics: EvaluateBody"><span class="secnum">10.2.1.3</span> RS: EvaluateBody</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarycallevaluatebody" title="OrdinaryCallEvaluateBody ( F, argumentsList )"><span class="secnum">10.2.1.4</span> OrdinaryCallEvaluateBody ( <var>F</var>, <var>argumentsList</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ecmascript-function-objects-construct-argumentslist-newtarget" title="[[Construct]] ( argumentsList, newTarget )"><span class="secnum">10.2.2</span> <var class="field">[[Construct]]</var> ( <var>argumentsList</var>, <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinaryfunctioncreate" title="OrdinaryFunctionCreate ( functionPrototype, sourceText, ParameterList, Body, thisMode, env, privateEnv )"><span class="secnum">10.2.3</span> OrdinaryFunctionCreate ( <var>functionPrototype</var>, <var>sourceText</var>, <var>ParameterList</var>, <var>Body</var>, <var>thisMode</var>, <var>env</var>, <var>privateEnv</var> )</a></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-addrestrictedfunctionproperties" title="AddRestrictedFunctionProperties ( F, realm )"><span class="secnum">10.2.4</span> AddRestrictedFunctionProperties ( <var>F</var>, <var>realm</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-%throwtypeerror%" title="%ThrowTypeError% ( )"><span class="secnum">10.2.4.1</span> %ThrowTypeError% ( )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-makeconstructor" title="MakeConstructor ( F [ , writablePrototype [ , prototype ] ] )"><span class="secnum">10.2.5</span> MakeConstructor ( <var>F</var> [ , <var>writablePrototype</var> [ , <var>prototype</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-makeclassconstructor" title="MakeClassConstructor ( F )"><span class="secnum">10.2.6</span> MakeClassConstructor ( <var>F</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-makemethod" title="MakeMethod ( F, homeObject )"><span class="secnum">10.2.7</span> MakeMethod ( <var>F</var>, <var>homeObject</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-definemethodproperty" title="DefineMethodProperty ( homeObject, key, closure, enumerable )"><span class="secnum">10.2.8</span> DefineMethodProperty ( <var>homeObject</var>, <var>key</var>, <var>closure</var>, <var>enumerable</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-setfunctionname" title="SetFunctionName ( F, name [ , prefix ] )"><span class="secnum">10.2.9</span> SetFunctionName ( <var>F</var>, <var>name</var> [ , <var>prefix</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-setfunctionlength" title="SetFunctionLength ( F, length )"><span class="secnum">10.2.10</span> SetFunctionLength ( <var>F</var>, <var>length</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-functiondeclarationinstantiation" title="FunctionDeclarationInstantiation ( func, argumentsList )"><span class="secnum">10.2.11</span> FunctionDeclarationInstantiation ( <var>func</var>, <var>argumentsList</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-built-in-function-objects" title="Built-in Function Objects"><span class="secnum">10.3</span> Built-in Function Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-built-in-function-objects-call-thisargument-argumentslist" title="[[Call]] ( thisArgument, argumentsList )"><span class="secnum">10.3.1</span> <var class="field">[[Call]]</var> ( <var>thisArgument</var>, <var>argumentsList</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-built-in-function-objects-construct-argumentslist-newtarget" title="[[Construct]] ( argumentsList, newTarget )"><span class="secnum">10.3.2</span> <var class="field">[[Construct]]</var> ( <var>argumentsList</var>, <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-builtincallorconstruct" title="BuiltinCallOrConstruct ( F, thisArgument, argumentsList, newTarget )"><span class="secnum">10.3.3</span> BuiltinCallOrConstruct ( <var>F</var>, <var>thisArgument</var>, <var>argumentsList</var>, <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-createbuiltinfunction" title="CreateBuiltinFunction ( behaviour, length, name, additionalInternalSlotsList [ , realm [ , prototype [ , prefix [ , async ] ] ] ] )"><span class="secnum">10.3.4</span> CreateBuiltinFunction ( <var>behaviour</var>, <var>length</var>, <var>name</var>, <var>additionalInternalSlotsList</var> [ , <var>realm</var> [ , <var>prototype</var> [ , <var>prefix</var> [ , <var>async</var> ] ] ] ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-built-in-exotic-object-internal-methods-and-slots" title="Built-in Exotic Object Internal Methods and Slots"><span class="secnum">10.4</span> Built-in Exotic Object Internal Methods and Slots</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-bound-function-exotic-objects" title="Bound Function Exotic Objects"><span class="secnum">10.4.1</span> Bound Function Exotic Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-bound-function-exotic-objects-call-thisargument-argumentslist" title="[[Call]] ( thisArgument, argumentsList )"><span class="secnum">10.4.1.1</span> <var class="field">[[Call]]</var> ( <var>thisArgument</var>, <var>argumentsList</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-bound-function-exotic-objects-construct-argumentslist-newtarget" title="[[Construct]] ( argumentsList, newTarget )"><span class="secnum">10.4.1.2</span> <var class="field">[[Construct]]</var> ( <var>argumentsList</var>, <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-boundfunctioncreate" title="BoundFunctionCreate ( targetFunction, boundThis, boundArgs )"><span class="secnum">10.4.1.3</span> BoundFunctionCreate ( <var>targetFunction</var>, <var>boundThis</var>, <var>boundArgs</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-array-exotic-objects" title="Array Exotic Objects"><span class="secnum">10.4.2</span> Array Exotic Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-array-exotic-objects-defineownproperty-p-desc" title="[[DefineOwnProperty]] ( P, Desc )"><span class="secnum">10.4.2.1</span> <var class="field">[[DefineOwnProperty]]</var> ( <var>P</var>, <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arraycreate" title="ArrayCreate ( length [ , proto ] )"><span class="secnum">10.4.2.2</span> ArrayCreate ( <var>length</var> [ , <var>proto</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arrayspeciescreate" title="ArraySpeciesCreate ( originalArray, length )"><span class="secnum">10.4.2.3</span> ArraySpeciesCreate ( <var>originalArray</var>, <var>length</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arraysetlength" title="ArraySetLength ( A, Desc )"><span class="secnum">10.4.2.4</span> ArraySetLength ( <var>A</var>, <var>Desc</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-string-exotic-objects" title="String Exotic Objects"><span class="secnum">10.4.3</span> String Exotic Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-string-exotic-objects-getownproperty-p" title="[[GetOwnProperty]] ( P )"><span class="secnum">10.4.3.1</span> <var class="field">[[GetOwnProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-string-exotic-objects-defineownproperty-p-desc" title="[[DefineOwnProperty]] ( P, Desc )"><span class="secnum">10.4.3.2</span> <var class="field">[[DefineOwnProperty]]</var> ( <var>P</var>, <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-string-exotic-objects-ownpropertykeys" title="[[OwnPropertyKeys]] ( )"><span class="secnum">10.4.3.3</span> <var class="field">[[OwnPropertyKeys]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-stringcreate" title="StringCreate ( value, prototype )"><span class="secnum">10.4.3.4</span> StringCreate ( <var>value</var>, <var>prototype</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-stringgetownproperty" title="StringGetOwnProperty ( S, P )"><span class="secnum">10.4.3.5</span> StringGetOwnProperty ( <var>S</var>, <var>P</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arguments-exotic-objects" title="Arguments Exotic Objects"><span class="secnum">10.4.4</span> Arguments Exotic Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arguments-exotic-objects-getownproperty-p" title="[[GetOwnProperty]] ( P )"><span class="secnum">10.4.4.1</span> <var class="field">[[GetOwnProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arguments-exotic-objects-defineownproperty-p-desc" title="[[DefineOwnProperty]] ( P, Desc )"><span class="secnum">10.4.4.2</span> <var class="field">[[DefineOwnProperty]]</var> ( <var>P</var>, <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arguments-exotic-objects-get-p-receiver" title="[[Get]] ( P, Receiver )"><span class="secnum">10.4.4.3</span> <var class="field">[[Get]]</var> ( <var>P</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arguments-exotic-objects-set-p-v-receiver" title="[[Set]] ( P, V, Receiver )"><span class="secnum">10.4.4.4</span> <var class="field">[[Set]]</var> ( <var>P</var>, <var>V</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-arguments-exotic-objects-delete-p" title="[[Delete]] ( P )"><span class="secnum">10.4.4.5</span> <var class="field">[[Delete]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-createunmappedargumentsobject" title="CreateUnmappedArgumentsObject ( argumentsList )"><span class="secnum">10.4.4.6</span> CreateUnmappedArgumentsObject ( <var>argumentsList</var> )</a></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-createmappedargumentsobject" title="CreateMappedArgumentsObject ( func, formals, argumentsList, env )"><span class="secnum">10.4.4.7</span> CreateMappedArgumentsObject ( <var>func</var>, <var>formals</var>, <var>argumentsList</var>, <var>env</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-makearggetter" title="MakeArgGetter ( name, env )"><span class="secnum">10.4.4.7.1</span> MakeArgGetter ( <var>name</var>, <var>env</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-makeargsetter" title="MakeArgSetter ( name, env )"><span class="secnum">10.4.4.7.2</span> MakeArgSetter ( <var>name</var>, <var>env</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-exotic-objects" title="TypedArray Exotic Objects"><span class="secnum">10.4.5</span> TypedArray Exotic Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-preventextensions" title="[[PreventExtensions]] ( )"><span class="secnum">10.4.5.1</span> <var class="field">[[PreventExtensions]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-getownproperty" title="[[GetOwnProperty]] ( P )"><span class="secnum">10.4.5.2</span> <var class="field">[[GetOwnProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-hasproperty" title="[[HasProperty]] ( P )"><span class="secnum">10.4.5.3</span> <var class="field">[[HasProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-defineownproperty" title="[[DefineOwnProperty]] ( P, Desc )"><span class="secnum">10.4.5.4</span> <var class="field">[[DefineOwnProperty]]</var> ( <var>P</var>, <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-get" title="[[Get]] ( P, Receiver )"><span class="secnum">10.4.5.5</span> <var class="field">[[Get]]</var> ( <var>P</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-set" title="[[Set]] ( P, V, Receiver )"><span class="secnum">10.4.5.6</span> <var class="field">[[Set]]</var> ( <var>P</var>, <var>V</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-delete" title="[[Delete]] ( P )"><span class="secnum">10.4.5.7</span> <var class="field">[[Delete]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-ownpropertykeys" title="[[OwnPropertyKeys]] ( )"><span class="secnum">10.4.5.8</span> <var class="field">[[OwnPropertyKeys]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarray-with-buffer-witness-records" title="TypedArray With Buffer Witness Records"><span class="secnum">10.4.5.9</span> TypedArray With Buffer Witness Records</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-maketypedarraywithbufferwitnessrecord" title="MakeTypedArrayWithBufferWitnessRecord ( obj, order )"><span class="secnum">10.4.5.10</span> MakeTypedArrayWithBufferWitnessRecord ( <var>obj</var>, <var>order</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarraycreate" title="TypedArrayCreate ( prototype )"><span class="secnum">10.4.5.11</span> TypedArrayCreate ( <var>prototype</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarraybytelength" title="TypedArrayByteLength ( taRecord )"><span class="secnum">10.4.5.12</span> TypedArrayByteLength ( <var>taRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarraylength" title="TypedArrayLength ( taRecord )"><span class="secnum">10.4.5.13</span> TypedArrayLength ( <var>taRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-istypedarrayoutofbounds" title="IsTypedArrayOutOfBounds ( taRecord )"><span class="secnum">10.4.5.14</span> IsTypedArrayOutOfBounds ( <var>taRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-istypedarrayfixedlength" title="IsTypedArrayFixedLength ( O )"><span class="secnum">10.4.5.15</span> IsTypedArrayFixedLength ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-isvalidintegerindex" title="IsValidIntegerIndex ( O, index )"><span class="secnum">10.4.5.16</span> IsValidIntegerIndex ( <var>O</var>, <var>index</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarraygetelement" title="TypedArrayGetElement ( O, index )"><span class="secnum">10.4.5.17</span> TypedArrayGetElement ( <var>O</var>, <var>index</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-typedarraysetelement" title="TypedArraySetElement ( O, index, value )"><span class="secnum">10.4.5.18</span> TypedArraySetElement ( <var>O</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-isarraybufferviewoutofbounds" title="IsArrayBufferViewOutOfBounds ( O )"><span class="secnum">10.4.5.19</span> IsArrayBufferViewOutOfBounds ( <var>O</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects" title="Module Namespace Exotic Objects"><span class="secnum">10.4.6</span> Module Namespace Exotic Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-getprototypeof" title="[[GetPrototypeOf]] ( )"><span class="secnum">10.4.6.1</span> <var class="field">[[GetPrototypeOf]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-setprototypeof-v" title="[[SetPrototypeOf]] ( V )"><span class="secnum">10.4.6.2</span> <var class="field">[[SetPrototypeOf]]</var> ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-isextensible" title="[[IsExtensible]] ( )"><span class="secnum">10.4.6.3</span> <var class="field">[[IsExtensible]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-preventextensions" title="[[PreventExtensions]] ( )"><span class="secnum">10.4.6.4</span> <var class="field">[[PreventExtensions]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-getownproperty-p" title="[[GetOwnProperty]] ( P )"><span class="secnum">10.4.6.5</span> <var class="field">[[GetOwnProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-defineownproperty-p-desc" title="[[DefineOwnProperty]] ( P, Desc )"><span class="secnum">10.4.6.6</span> <var class="field">[[DefineOwnProperty]]</var> ( <var>P</var>, <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-hasproperty-p" title="[[HasProperty]] ( P )"><span class="secnum">10.4.6.7</span> <var class="field">[[HasProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-get-p-receiver" title="[[Get]] ( P, Receiver )"><span class="secnum">10.4.6.8</span> <var class="field">[[Get]]</var> ( <var>P</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-set-p-v-receiver" title="[[Set]] ( P, V, Receiver )"><span class="secnum">10.4.6.9</span> <var class="field">[[Set]]</var> ( <var>P</var>, <var>V</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-delete-p" title="[[Delete]] ( P )"><span class="secnum">10.4.6.10</span> <var class="field">[[Delete]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-module-namespace-exotic-objects-ownpropertykeys" title="[[OwnPropertyKeys]] ( )"><span class="secnum">10.4.6.11</span> <var class="field">[[OwnPropertyKeys]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-modulenamespacecreate" title="ModuleNamespaceCreate ( module, exports )"><span class="secnum">10.4.6.12</span> ModuleNamespaceCreate ( <var>module</var>, <var>exports</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-immutable-prototype-exotic-objects" title="Immutable Prototype Exotic Objects"><span class="secnum">10.4.7</span> Immutable Prototype Exotic Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-immutable-prototype-exotic-objects-setprototypeof-v" title="[[SetPrototypeOf]] ( V )"><span class="secnum">10.4.7.1</span> <var class="field">[[SetPrototypeOf]]</var> ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-set-immutable-prototype" title="SetImmutablePrototype ( O, V )"><span class="secnum">10.4.7.2</span> SetImmutablePrototype ( <var>O</var>, <var>V</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots" title="Proxy Object Internal Methods and Internal Slots"><span class="secnum">10.5</span> Proxy Object Internal Methods and Internal Slots</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-getprototypeof" title="[[GetPrototypeOf]] ( )"><span class="secnum">10.5.1</span> <var class="field">[[GetPrototypeOf]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-setprototypeof-v" title="[[SetPrototypeOf]] ( V )"><span class="secnum">10.5.2</span> <var class="field">[[SetPrototypeOf]]</var> ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-isextensible" title="[[IsExtensible]] ( )"><span class="secnum">10.5.3</span> <var class="field">[[IsExtensible]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-preventextensions" title="[[PreventExtensions]] ( )"><span class="secnum">10.5.4</span> <var class="field">[[PreventExtensions]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p" title="[[GetOwnProperty]] ( P )"><span class="secnum">10.5.5</span> <var class="field">[[GetOwnProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc" title="[[DefineOwnProperty]] ( P, Desc )"><span class="secnum">10.5.6</span> <var class="field">[[DefineOwnProperty]]</var> ( <var>P</var>, <var>Desc</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p" title="[[HasProperty]] ( P )"><span class="secnum">10.5.7</span> <var class="field">[[HasProperty]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver" title="[[Get]] ( P, Receiver )"><span class="secnum">10.5.8</span> <var class="field">[[Get]]</var> ( <var>P</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver" title="[[Set]] ( P, V, Receiver )"><span class="secnum">10.5.9</span> <var class="field">[[Set]]</var> ( <var>P</var>, <var>V</var>, <var>Receiver</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-delete-p" title="[[Delete]] ( P )"><span class="secnum">10.5.10</span> <var class="field">[[Delete]]</var> ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys" title="[[OwnPropertyKeys]] ( )"><span class="secnum">10.5.11</span> <var class="field">[[OwnPropertyKeys]]</var> ( )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist" title="[[Call]] ( thisArgument, argumentsList )"><span class="secnum">10.5.12</span> <var class="field">[[Call]]</var> ( <var>thisArgument</var>, <var>argumentsList</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget" title="[[Construct]] ( argumentsList, newTarget )"><span class="secnum">10.5.13</span> <var class="field">[[Construct]]</var> ( <var>argumentsList</var>, <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-validatenonrevokedproxy" title="ValidateNonRevokedProxy ( proxy )"><span class="secnum">10.5.14</span> ValidateNonRevokedProxy ( <var>proxy</var> )</a></li><li><span class="item-toggle-none"></span><a href="ordinary-and-exotic-objects-behaviours.html#sec-proxycreate" title="ProxyCreate ( target, handler )"><span class="secnum">10.5.15</span> ProxyCreate ( <var>target</var>, <var>handler</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-source-code.html#sec-ecmascript-language-source-code" title="ECMAScript Language: Source Text"><span class="secnum">11</span> ECMAScript Language: Source Text</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-source-code.html#sec-source-text" title="Source Text"><span class="secnum">11.1</span> Source Text</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint" title="Static Semantics: UTF16EncodeCodePoint ( cp )"><span class="secnum">11.1.1</span> SS: UTF16EncodeCodePoint ( <var>cp</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-codepointstostring" title="Static Semantics: CodePointsToString ( text )"><span class="secnum">11.1.2</span> SS: CodePointsToString ( <var>text</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-utf16decodesurrogatepair" title="Static Semantics: UTF16SurrogatePairToCodePoint ( lead, trail )"><span class="secnum">11.1.3</span> SS: UTF16SurrogatePairToCodePoint ( <var>lead</var>, <var>trail</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-codepointat" title="Static Semantics: CodePointAt ( string, position )"><span class="secnum">11.1.4</span> SS: CodePointAt ( <var>string</var>, <var>position</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-stringtocodepoints" title="Static Semantics: StringToCodePoints ( string )"><span class="secnum">11.1.5</span> SS: StringToCodePoints ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-parsetext" title="Static Semantics: ParseText ( sourceText, goalSymbol )"><span class="secnum">11.1.6</span> SS: ParseText ( <var>sourceText</var>, <var>goalSymbol</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-source-code.html#sec-types-of-source-code" title="Types of Source Code"><span class="secnum">11.2</span> Types of Source Code</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-directive-prologues-and-the-use-strict-directive" title="Directive Prologues and the Use Strict Directive"><span class="secnum">11.2.1</span> Directive Prologues and the Use Strict Directive</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-source-code.html#sec-strict-mode-code" title="Strict Mode Code"><span class="secnum">11.2.2</span> Strict Mode Code</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-isstrict" title="Static Semantics: IsStrict ( node )"><span class="secnum">11.2.2.1</span> SS: IsStrict ( <var>node</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-source-code.html#sec-non-ecmascript-functions" title="Non-ECMAScript Functions"><span class="secnum">11.2.3</span> Non-ECMAScript Functions</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-ecmascript-language-lexical-grammar" title="ECMAScript Language: Lexical Grammar"><span class="secnum">12</span> ECMAScript Language: Lexical Grammar</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-unicode-format-control-characters" title="Unicode Format-Control Characters"><span class="secnum">12.1</span> Unicode Format-Control Characters</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-white-space" title="White Space"><span class="secnum">12.2</span> White Space</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-line-terminators" title="Line Terminators"><span class="secnum">12.3</span> Line Terminators</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-comments" title="Comments"><span class="secnum">12.4</span> Comments</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-hashbang" title="Hashbang Comments"><span class="secnum">12.5</span> Hashbang Comments</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-tokens" title="Tokens"><span class="secnum">12.6</span> Tokens</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-names-and-keywords" title="Names and Keywords"><span class="secnum">12.7</span> Names and Keywords</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-identifier-names" title="Identifier Names"><span class="secnum">12.7.1</span> Identifier Names</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-identifier-names-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">12.7.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoints" title="Static Semantics: IdentifierCodePoints"><span class="secnum">12.7.1.2</span> SS: IdentifierCodePoints</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoint" title="Static Semantics: IdentifierCodePoint"><span class="secnum">12.7.1.3</span> SS: IdentifierCodePoint</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-keywords-and-reserved-words" title="Keywords and Reserved Words"><span class="secnum">12.7.2</span> Keywords and Reserved Words</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-punctuators" title="Punctuators"><span class="secnum">12.8</span> Punctuators</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-ecmascript-language-lexical-grammar-literals" title="Literals"><span class="secnum">12.9</span> Literals</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-null-literals" title="Null Literals"><span class="secnum">12.9.1</span> Null Literals</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-boolean-literals" title="Boolean Literals"><span class="secnum">12.9.2</span> Boolean Literals</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-literals-numeric-literals" title="Numeric Literals"><span class="secnum">12.9.3</span> Numeric Literals</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-numeric-literals-early-errors" title="Static Semantics: Early Errors"><span class="secnum">12.9.3.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-mv" title="Static Semantics: MV"><span class="secnum">12.9.3.2</span> SS: MV</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-numericvalue" title="Static Semantics: NumericValue"><span class="secnum">12.9.3.3</span> SS: NumericValue</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-literals-string-literals" title="String Literals"><span class="secnum">12.9.4</span> String Literals</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-string-literals-early-errors" title="Static Semantics: Early Errors"><span class="secnum">12.9.4.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-sv" title="Static Semantics: SV"><span class="secnum">12.9.4.2</span> SS: SV</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-string-literals-static-semantics-mv" title="Static Semantics: MV"><span class="secnum">12.9.4.3</span> SS: MV</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-literals-regular-expression-literals" title="Regular Expression Literals"><span class="secnum">12.9.5</span> Regular Expression Literals</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-bodytext" title="Static Semantics: BodyText"><span class="secnum">12.9.5.1</span> SS: BodyText</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-flagtext" title="Static Semantics: FlagText"><span class="secnum">12.9.5.2</span> SS: FlagText</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-template-literal-lexical-components" title="Template Literal Lexical Components"><span class="secnum">12.9.6</span> Template Literal Lexical Components</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-tv" title="Static Semantics: TV"><span class="secnum">12.9.6.1</span> SS: TV</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-trv" title="Static Semantics: TRV"><span class="secnum">12.9.6.2</span> SS: TRV</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-automatic-semicolon-insertion" title="Automatic Semicolon Insertion"><span class="secnum">12.10</span> Automatic Semicolon Insertion</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-rules-of-automatic-semicolon-insertion" title="Rules of Automatic Semicolon Insertion"><span class="secnum">12.10.1</span> Rules of Automatic Semicolon Insertion</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-examples-of-automatic-semicolon-insertion" title="Examples of Automatic Semicolon Insertion"><span class="secnum">12.10.2</span> Examples of Automatic Semicolon Insertion</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-interesting-cases-of-automatic-semicolon-insertion" title="Interesting Cases of Automatic Semicolon Insertion"><span class="secnum">12.10.3</span> Interesting Cases of Automatic Semicolon Insertion</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-asi-interesting-cases-in-statement-lists" title="Interesting Cases of Automatic Semicolon Insertion in Statement Lists"><span class="secnum">12.10.3.1</span> Interesting Cases of Automatic Semicolon Insertion in Statement Lists</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-lexical-grammar.html#sec-asi-cases-with-no-lineterminator-here" title="Cases of Automatic Semicolon Insertion and “[no LineTerminator here]”"><span class="secnum">12.10.3.2</span> Cases of Automatic Semicolon Insertion and “[no <emu-nt>LineTerminator</emu-nt> here]”</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-lexical-grammar.html#sec-no-lineterminator-here-automatic-semicolon-insertion-list" title="List of Grammar Productions with Optional Operands and “[no LineTerminator here]”"><span class="secnum">12.10.3.2.1</span> List of Grammar Productions with Optional Operands and “[no <emu-nt>LineTerminator</emu-nt> here]”</a></li></ol></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-ecmascript-language-expressions" title="ECMAScript Language: Expressions"><span class="secnum">13</span> ECMAScript Language: Expressions</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-identifiers" title="Identifiers"><span class="secnum">13.1</span> Identifiers</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-identifiers-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-static-semantics-stringvalue" title="Static Semantics: StringValue"><span class="secnum">13.1.2</span> SS: StringValue</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-identifiers-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.1.3</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-primary-expression" title="Primary Expression"><span class="secnum">13.2</span> Primary Expression</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-this-keyword" title="The this Keyword"><span class="secnum">13.2.1</span> The <code>this</code> Keyword</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-this-keyword-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.2.1.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-identifier-reference" title="Identifier Reference"><span class="secnum">13.2.2</span> Identifier Reference</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-primary-expression-literals" title="Literals"><span class="secnum">13.2.3</span> Literals</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-literals-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.2.3.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-array-initializer" title="Array Initializer"><span class="secnum">13.2.4</span> Array Initializer</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-arrayaccumulation" title="Runtime Semantics: ArrayAccumulation"><span class="secnum">13.2.4.1</span> RS: ArrayAccumulation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-array-initializer-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.2.4.2</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-object-initializer" title="Object Initializer"><span class="secnum">13.2.5</span> Object Initializer</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-object-initializer-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.2.5.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-static-semantics-iscomputedpropertykey" title="Static Semantics: IsComputedPropertyKey"><span class="secnum">13.2.5.2</span> SS: IsComputedPropertyKey</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-static-semantics-propertynamelist" title="Static Semantics: PropertyNameList"><span class="secnum">13.2.5.3</span> SS: PropertyNameList</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-object-initializer-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.2.5.4</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-propertydefinitionevaluation" title="Runtime Semantics: PropertyDefinitionEvaluation"><span class="secnum">13.2.5.5</span> RS: PropertyDefinitionEvaluation</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-function-defining-expressions" title="Function Defining Expressions"><span class="secnum">13.2.6</span> Function Defining Expressions</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-primary-expression-regular-expression-literals" title="Regular Expression Literals"><span class="secnum">13.2.7</span> Regular Expression Literals</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-primary-expression-regular-expression-literals-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.2.7.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-isvalidregularexpressionliteral" title="Static Semantics: IsValidRegularExpressionLiteral ( literal )"><span class="secnum">13.2.7.2</span> SS: IsValidRegularExpressionLiteral ( <var>literal</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-regular-expression-literals-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.2.7.3</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-template-literals" title="Template Literals"><span class="secnum">13.2.8</span> Template Literals</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-static-semantics-template-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.2.8.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-static-semantics-templatestrings" title="Static Semantics: TemplateStrings"><span class="secnum">13.2.8.2</span> SS: TemplateStrings</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-templatestring" title="Static Semantics: TemplateString ( templateToken, raw )"><span class="secnum">13.2.8.3</span> SS: TemplateString ( <var>templateToken</var>, <var>raw</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-gettemplateobject" title="GetTemplateObject ( templateLiteral )"><span class="secnum">13.2.8.4</span> GetTemplateObject ( <var>templateLiteral</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-substitutionevaluation" title="Runtime Semantics: SubstitutionEvaluation"><span class="secnum">13.2.8.5</span> RS: SubstitutionEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-template-literals-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.2.8.6</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-grouping-operator" title="The Grouping Operator"><span class="secnum">13.2.9</span> The Grouping Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-grouping-operator-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.2.9.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-grouping-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.2.9.2</span> RS: Evaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-left-hand-side-expressions" title="Left-Hand-Side Expressions"><span class="secnum">13.3</span> Left-Hand-Side Expressions</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-static-semantics" title="Static Semantics"><span class="secnum">13.3.1</span> Static Semantics</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-left-hand-side-expressions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.3.1.1</span> SS: Early Errors</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-property-accessors" title="Property Accessors"><span class="secnum">13.3.2</span> Property Accessors</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-property-accessors-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.2.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-evaluate-property-access-with-expression-key" title="EvaluatePropertyAccessWithExpressionKey ( baseValue, expression, strict )"><span class="secnum">13.3.3</span> EvaluatePropertyAccessWithExpressionKey ( <var>baseValue</var>, <var>expression</var>, <var>strict</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-evaluate-property-access-with-identifier-key" title="EvaluatePropertyAccessWithIdentifierKey ( baseValue, identifierName, strict )"><span class="secnum">13.3.4</span> EvaluatePropertyAccessWithIdentifierKey ( <var>baseValue</var>, <var>identifierName</var>, <var>strict</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-new-operator" title="The new Operator"><span class="secnum">13.3.5</span> The <code>new</code> Operator</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-new-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.5.1</span> RS: Evaluation</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-evaluatenew" title="EvaluateNew ( constructExpr, arguments )"><span class="secnum">13.3.5.1.1</span> EvaluateNew ( <var>constructExpr</var>, <var>arguments</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-function-calls" title="Function Calls"><span class="secnum">13.3.6</span> Function Calls</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-function-calls-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.6.1</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-evaluatecall" title="EvaluateCall ( func, ref, arguments, tailPosition )"><span class="secnum">13.3.6.2</span> EvaluateCall ( <var>func</var>, <var>ref</var>, <var>arguments</var>, <var>tailPosition</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-super-keyword" title="The super Keyword"><span class="secnum">13.3.7</span> The <code>super</code> Keyword</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-super-keyword-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.7.1</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-getsuperconstructor" title="GetSuperConstructor ( )"><span class="secnum">13.3.7.2</span> GetSuperConstructor ( )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-makesuperpropertyreference" title="MakeSuperPropertyReference ( actualThis, propertyKey, strict )"><span class="secnum">13.3.7.3</span> MakeSuperPropertyReference ( <var>actualThis</var>, <var>propertyKey</var>, <var>strict</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-argument-lists" title="Argument Lists"><span class="secnum">13.3.8</span> Argument Lists</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-argumentlistevaluation" title="Runtime Semantics: ArgumentListEvaluation"><span class="secnum">13.3.8.1</span> RS: ArgumentListEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-optional-chains" title="Optional Chains"><span class="secnum">13.3.9</span> Optional Chains</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-optional-chaining-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.9.1</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-optional-chaining-chain-evaluation" title="Runtime Semantics: ChainEvaluation"><span class="secnum">13.3.9.2</span> RS: ChainEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-import-calls" title="Import Calls"><span class="secnum">13.3.10</span> Import Calls</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-import-call-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.10.1</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-evaluate-import-call" title="EvaluateImportCall ( specifierExpression [ , optionsExpression ] )"><span class="secnum">13.3.10.2</span> EvaluateImportCall ( <var>specifierExpression</var> [ , <var>optionsExpression</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-ContinueDynamicImport" title="ContinueDynamicImport ( promiseCapability, moduleCompletion )"><span class="secnum">13.3.10.3</span> ContinueDynamicImport ( <var>promiseCapability</var>, <var>moduleCompletion</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-tagged-templates" title="Tagged Templates"><span class="secnum">13.3.11</span> Tagged Templates</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-tagged-templates-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.11.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-meta-properties" title="Meta Properties"><span class="secnum">13.3.12</span> Meta Properties</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-meta-properties-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.3.12.1</span> RS: Evaluation</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-hostgetimportmetaproperties" title="HostGetImportMetaProperties ( moduleRecord )"><span class="secnum">13.3.12.1.1</span> HostGetImportMetaProperties ( <var>moduleRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-hostfinalizeimportmeta" title="HostFinalizeImportMeta ( importMeta, moduleRecord )"><span class="secnum">13.3.12.1.2</span> HostFinalizeImportMeta ( <var>importMeta</var>, <var>moduleRecord</var> )</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-update-expressions" title="Update Expressions"><span class="secnum">13.4</span> Update Expressions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-update-expressions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.4.1</span> SS: Early Errors</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-postfix-increment-operator" title="Postfix Increment Operator"><span class="secnum">13.4.2</span> Postfix Increment Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-postfix-increment-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.4.2.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-postfix-decrement-operator" title="Postfix Decrement Operator"><span class="secnum">13.4.3</span> Postfix Decrement Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-postfix-decrement-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.4.3.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-prefix-increment-operator" title="Prefix Increment Operator"><span class="secnum">13.4.4</span> Prefix Increment Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-prefix-increment-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.4.4.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-prefix-decrement-operator" title="Prefix Decrement Operator"><span class="secnum">13.4.5</span> Prefix Decrement Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-prefix-decrement-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.4.5.1</span> RS: Evaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-unary-operators" title="Unary Operators"><span class="secnum">13.5</span> Unary Operators</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-delete-operator" title="The delete Operator"><span class="secnum">13.5.1</span> The <code>delete</code> Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-delete-operator-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.5.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-delete-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.5.1.2</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-void-operator" title="The void Operator"><span class="secnum">13.5.2</span> The <code>void</code> Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-void-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.5.2.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-typeof-operator" title="The typeof Operator"><span class="secnum">13.5.3</span> The <code>typeof</code> Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-typeof-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.5.3.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-unary-plus-operator" title="Unary + Operator"><span class="secnum">13.5.4</span> Unary <code>+</code> Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-unary-plus-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.5.4.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-unary-minus-operator" title="Unary - Operator"><span class="secnum">13.5.5</span> Unary <code>-</code> Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-unary-minus-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.5.5.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-bitwise-not-operator" title="Bitwise NOT Operator ( ~ )"><span class="secnum">13.5.6</span> Bitwise NOT Operator ( <code>~</code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-bitwise-not-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.5.6.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-logical-not-operator" title="Logical NOT Operator ( ! )"><span class="secnum">13.5.7</span> Logical NOT Operator ( <code>!</code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-logical-not-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.5.7.1</span> RS: Evaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-exp-operator" title="Exponentiation Operator"><span class="secnum">13.6</span> Exponentiation Operator</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-exp-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.6.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-multiplicative-operators" title="Multiplicative Operators"><span class="secnum">13.7</span> Multiplicative Operators</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-multiplicative-operators-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.7.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-additive-operators" title="Additive Operators"><span class="secnum">13.8</span> Additive Operators</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-addition-operator-plus" title="The Addition Operator ( + )"><span class="secnum">13.8.1</span> The Addition Operator ( <code>+</code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-addition-operator-plus-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.8.1.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-subtraction-operator-minus" title="The Subtraction Operator ( - )"><span class="secnum">13.8.2</span> The Subtraction Operator ( <code>-</code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-subtraction-operator-minus-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.8.2.1</span> RS: Evaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-bitwise-shift-operators" title="Bitwise Shift Operators"><span class="secnum">13.9</span> Bitwise Shift Operators</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-left-shift-operator" title="The Left Shift Operator ( << )"><span class="secnum">13.9.1</span> The Left Shift Operator ( <code><<</code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-left-shift-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.9.1.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-signed-right-shift-operator" title="The Signed Right Shift Operator ( >> )"><span class="secnum">13.9.2</span> The Signed Right Shift Operator ( <code>>></code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-signed-right-shift-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.9.2.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-unsigned-right-shift-operator" title="The Unsigned Right Shift Operator ( >>> )"><span class="secnum">13.9.3</span> The Unsigned Right Shift Operator ( <code>>>></code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-unsigned-right-shift-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.9.3.1</span> RS: Evaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-relational-operators" title="Relational Operators"><span class="secnum">13.10</span> Relational Operators</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-relational-operators-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.10.1</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-instanceofoperator" title="InstanceofOperator ( V, target )"><span class="secnum">13.10.2</span> InstanceofOperator ( <var>V</var>, <var>target</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-equality-operators" title="Equality Operators"><span class="secnum">13.11</span> Equality Operators</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-equality-operators-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.11.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-binary-bitwise-operators" title="Binary Bitwise Operators"><span class="secnum">13.12</span> Binary Bitwise Operators</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-binary-bitwise-operators-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.12.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-binary-logical-operators" title="Binary Logical Operators"><span class="secnum">13.13</span> Binary Logical Operators</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-binary-logical-operators-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.13.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-conditional-operator" title="Conditional Operator ( ? : )"><span class="secnum">13.14</span> Conditional Operator ( <code>? :</code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-conditional-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.14.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-assignment-operators" title="Assignment Operators"><span class="secnum">13.15</span> Assignment Operators</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-assignment-operators-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.15.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-assignment-operators-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.15.2</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-applystringornumericbinaryoperator" title="ApplyStringOrNumericBinaryOperator ( lVal, opText, rVal )"><span class="secnum">13.15.3</span> ApplyStringOrNumericBinaryOperator ( <var>lVal</var>, <var>opText</var>, <var>rVal</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-evaluatestringornumericbinaryexpression" title="EvaluateStringOrNumericBinaryExpression ( leftOperand, opText, rightOperand )"><span class="secnum">13.15.4</span> EvaluateStringOrNumericBinaryExpression ( <var>leftOperand</var>, <var>opText</var>, <var>rightOperand</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-destructuring-assignment" title="Destructuring Assignment"><span class="secnum">13.15.5</span> Destructuring Assignment</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-destructuring-assignment-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">13.15.5.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-destructuringassignmentevaluation" title="Runtime Semantics: DestructuringAssignmentEvaluation"><span class="secnum">13.15.5.2</span> RS: DestructuringAssignmentEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-propertydestructuringassignmentevaluation" title="Runtime Semantics: PropertyDestructuringAssignmentEvaluation"><span class="secnum">13.15.5.3</span> RS: PropertyDestructuringAssignmentEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-restdestructuringassignmentevaluation" title="Runtime Semantics: RestDestructuringAssignmentEvaluation"><span class="secnum">13.15.5.4</span> RS: RestDestructuringAssignmentEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-iteratordestructuringassignmentevaluation" title="Runtime Semantics: IteratorDestructuringAssignmentEvaluation"><span class="secnum">13.15.5.5</span> RS: IteratorDestructuringAssignmentEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-runtime-semantics-keyeddestructuringassignmentevaluation" title="Runtime Semantics: KeyedDestructuringAssignmentEvaluation"><span class="secnum">13.15.5.6</span> RS: KeyedDestructuringAssignmentEvaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-expressions.html#sec-comma-operator" title="Comma Operator ( , )"><span class="secnum">13.16</span> Comma Operator ( <code>,</code> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-expressions.html#sec-comma-operator-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">13.16.1</span> RS: Evaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-ecmascript-language-statements-and-declarations" title="ECMAScript Language: Statements and Declarations"><span class="secnum">14</span> ECMAScript Language: Statements and Declarations</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-statement-semantics" title="Statement Semantics"><span class="secnum">14.1</span> Statement Semantics</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-statement-semantics-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.1.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-block" title="Block"><span class="secnum">14.2</span> Block</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-block-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.2.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-block-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.2.2</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-blockdeclarationinstantiation" title="BlockDeclarationInstantiation ( code, env )"><span class="secnum">14.2.3</span> BlockDeclarationInstantiation ( <var>code</var>, <var>env</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-declarations-and-the-variable-statement" title="Declarations and the Variable Statement"><span class="secnum">14.3</span> Declarations and the Variable Statement</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-let-and-const-declarations" title="Let and Const Declarations"><span class="secnum">14.3.1</span> Let and Const Declarations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-let-and-const-declarations-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.3.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-let-and-const-declarations-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.3.1.2</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-variable-statement" title="Variable Statement"><span class="secnum">14.3.2</span> Variable Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-variable-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.3.2.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-destructuring-binding-patterns" title="Destructuring Binding Patterns"><span class="secnum">14.3.3</span> Destructuring Binding Patterns</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-destructuring-binding-patterns-runtime-semantics-propertybindinginitialization" title="Runtime Semantics: PropertyBindingInitialization"><span class="secnum">14.3.3.1</span> RS: PropertyBindingInitialization</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-destructuring-binding-patterns-runtime-semantics-restbindinginitialization" title="Runtime Semantics: RestBindingInitialization"><span class="secnum">14.3.3.2</span> RS: RestBindingInitialization</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-keyedbindinginitialization" title="Runtime Semantics: KeyedBindingInitialization"><span class="secnum">14.3.3.3</span> RS: KeyedBindingInitialization</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-empty-statement" title="Empty Statement"><span class="secnum">14.4</span> Empty Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-empty-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.4.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-expression-statement" title="Expression Statement"><span class="secnum">14.5</span> Expression Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-expression-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.5.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-if-statement" title="The if Statement"><span class="secnum">14.6</span> The <code>if</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-if-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.6.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-if-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.6.2</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-iteration-statements" title="Iteration Statements"><span class="secnum">14.7</span> Iteration Statements</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-iteration-statements-semantics" title="Semantics"><span class="secnum">14.7.1</span> Semantics</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-loopcontinues" title="LoopContinues ( completion, labelSet )"><span class="secnum">14.7.1.1</span> LoopContinues ( <var>completion</var>, <var>labelSet</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-loopevaluation" title="Runtime Semantics: LoopEvaluation"><span class="secnum">14.7.1.2</span> RS: LoopEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-do-while-statement" title="The do-while Statement"><span class="secnum">14.7.2</span> The <code>do</code>-<code>while</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-do-while-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.7.2.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-dowhileloopevaluation" title="Runtime Semantics: DoWhileLoopEvaluation"><span class="secnum">14.7.2.2</span> RS: DoWhileLoopEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-while-statement" title="The while Statement"><span class="secnum">14.7.3</span> The <code>while</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-while-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.7.3.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-whileloopevaluation" title="Runtime Semantics: WhileLoopEvaluation"><span class="secnum">14.7.3.2</span> RS: WhileLoopEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-for-statement" title="The for Statement"><span class="secnum">14.7.4</span> The <code>for</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-for-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.7.4.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forloopevaluation" title="Runtime Semantics: ForLoopEvaluation"><span class="secnum">14.7.4.2</span> RS: ForLoopEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-forbodyevaluation" title="ForBodyEvaluation ( test, increment, stmt, perIterationBindings, labelSet )"><span class="secnum">14.7.4.3</span> ForBodyEvaluation ( <var>test</var>, <var>increment</var>, <var>stmt</var>, <var>perIterationBindings</var>, <var>labelSet</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-createperiterationenvironment" title="CreatePerIterationEnvironment ( perIterationBindings )"><span class="secnum">14.7.4.4</span> CreatePerIterationEnvironment ( <var>perIterationBindings</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-for-in-and-for-of-statements" title="The for-in, for-of, and for-await-of Statements"><span class="secnum">14.7.5</span> The <code>for</code>-<code>in</code>, <code>for</code>-<code>of</code>, and <code>for</code>-<code>await</code>-<code>of</code> Statements</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-for-in-and-for-of-statements-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.7.5.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-static-semantics-isdestructuring" title="Static Semantics: IsDestructuring"><span class="secnum">14.7.5.2</span> SS: IsDestructuring</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-fordeclarationbindinginitialization" title="Runtime Semantics: ForDeclarationBindingInitialization"><span class="secnum">14.7.5.3</span> RS: ForDeclarationBindingInitialization</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-fordeclarationbindinginstantiation" title="Runtime Semantics: ForDeclarationBindingInstantiation"><span class="secnum">14.7.5.4</span> RS: ForDeclarationBindingInstantiation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forinofloopevaluation" title="Runtime Semantics: ForInOfLoopEvaluation"><span class="secnum">14.7.5.5</span> RS: ForInOfLoopEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forinofheadevaluation" title="ForIn/OfHeadEvaluation ( uninitializedBoundNames, expr, iterationKind )"><span class="secnum">14.7.5.6</span> ForIn/OfHeadEvaluation ( <var>uninitializedBoundNames</var>, <var>expr</var>, <var>iterationKind</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset" title="ForIn/OfBodyEvaluation ( lhs, stmt, iteratorRecord, iterationKind, lhsKind, labelSet [ , iteratorKind ] )"><span class="secnum">14.7.5.7</span> ForIn/OfBodyEvaluation ( <var>lhs</var>, <var>stmt</var>, <var>iteratorRecord</var>, <var>iterationKind</var>, <var>lhsKind</var>, <var>labelSet</var> [ , <var>iteratorKind</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-for-in-and-for-of-statements-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.7.5.8</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-enumerate-object-properties" title="EnumerateObjectProperties ( O )"><span class="secnum">14.7.5.9</span> EnumerateObjectProperties ( <var>O</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-for-in-iterator-objects" title="For-In Iterator Objects"><span class="secnum">14.7.5.10</span> For-In Iterator Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-createforiniterator" title="CreateForInIterator ( object )"><span class="secnum">14.7.5.10.1</span> CreateForInIterator ( <var>object</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-%foriniteratorprototype%-object" title="The %ForInIteratorPrototype% Object"><span class="secnum">14.7.5.10.2</span> The %ForInIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-%foriniteratorprototype%.next" title="%ForInIteratorPrototype%.next ( )"><span class="secnum">14.7.5.10.2.1</span> %ForInIteratorPrototype%.next ( )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-properties-of-for-in-iterator-instances" title="Properties of For-In Iterator Instances"><span class="secnum">14.7.5.10.3</span> Properties of For-In Iterator Instances</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-continue-statement" title="The continue Statement"><span class="secnum">14.8</span> The <code>continue</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-continue-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.8.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-continue-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.8.2</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-break-statement" title="The break Statement"><span class="secnum">14.9</span> The <code>break</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-break-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.9.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-break-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.9.2</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-return-statement" title="The return Statement"><span class="secnum">14.10</span> The <code>return</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-return-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.10.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-with-statement" title="The with Statement"><span class="secnum">14.11</span> The <code>with</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-with-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.11.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-with-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.11.2</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-switch-statement" title="The switch Statement"><span class="secnum">14.12</span> The <code>switch</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-switch-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.12.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-caseblockevaluation" title="Runtime Semantics: CaseBlockEvaluation"><span class="secnum">14.12.2</span> RS: CaseBlockEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-caseclauseisselected" title="CaseClauseIsSelected ( C, input )"><span class="secnum">14.12.3</span> CaseClauseIsSelected ( <var>C</var>, <var>input</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-switch-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.12.4</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-labelled-statements" title="Labelled Statements"><span class="secnum">14.13</span> Labelled Statements</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-labelled-statements-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.13.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-islabelledfunction" title="Static Semantics: IsLabelledFunction ( stmt )"><span class="secnum">14.13.2</span> SS: IsLabelledFunction ( <var>stmt</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-labelled-statements-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.13.3</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-labelledevaluation" title="Runtime Semantics: LabelledEvaluation"><span class="secnum">14.13.4</span> RS: LabelledEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-throw-statement" title="The throw Statement"><span class="secnum">14.14</span> The <code>throw</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-throw-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.14.1</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-try-statement" title="The try Statement"><span class="secnum">14.15</span> The <code>try</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-try-statement-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">14.15.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-catchclauseevaluation" title="Runtime Semantics: CatchClauseEvaluation"><span class="secnum">14.15.2</span> RS: CatchClauseEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-try-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.15.3</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-statements-and-declarations.html#sec-debugger-statement" title="The debugger Statement"><span class="secnum">14.16</span> The <code>debugger</code> Statement</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-statements-and-declarations.html#sec-debugger-statement-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">14.16.1</span> RS: Evaluation</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-ecmascript-language-functions-and-classes" title="ECMAScript Language: Functions and Classes"><span class="secnum">15</span> ECMAScript Language: Functions and Classes</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-parameter-lists" title="Parameter Lists"><span class="secnum">15.1</span> Parameter Lists</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-parameter-lists-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-containsexpression" title="Static Semantics: ContainsExpression"><span class="secnum">15.1.2</span> SS: ContainsExpression</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-issimpleparameterlist" title="Static Semantics: IsSimpleParameterList"><span class="secnum">15.1.3</span> SS: IsSimpleParameterList</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-hasinitializer" title="Static Semantics: HasInitializer"><span class="secnum">15.1.4</span> SS: HasInitializer</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-expectedargumentcount" title="Static Semantics: ExpectedArgumentCount"><span class="secnum">15.1.5</span> SS: ExpectedArgumentCount</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-function-definitions" title="Function Definitions"><span class="secnum">15.2</span> Function Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-function-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.2.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-functionbodycontainsusestrict" title="Static Semantics: FunctionBodyContainsUseStrict"><span class="secnum">15.2.2</span> SS: FunctionBodyContainsUseStrict</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-evaluatefunctionbody" title="Runtime Semantics: EvaluateFunctionBody"><span class="secnum">15.2.3</span> RS: EvaluateFunctionBody</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiateordinaryfunctionobject" title="Runtime Semantics: InstantiateOrdinaryFunctionObject"><span class="secnum">15.2.4</span> RS: InstantiateOrdinaryFunctionObject</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiateordinaryfunctionexpression" title="Runtime Semantics: InstantiateOrdinaryFunctionExpression"><span class="secnum">15.2.5</span> RS: InstantiateOrdinaryFunctionExpression</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-function-definitions-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">15.2.6</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-arrow-function-definitions" title="Arrow Function Definitions"><span class="secnum">15.3</span> Arrow Function Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-arrow-function-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.3.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-concisebodycontainsusestrict" title="Static Semantics: ConciseBodyContainsUseStrict"><span class="secnum">15.3.2</span> SS: ConciseBodyContainsUseStrict</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-evaluateconcisebody" title="Runtime Semantics: EvaluateConciseBody"><span class="secnum">15.3.3</span> RS: EvaluateConciseBody</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiatearrowfunctionexpression" title="Runtime Semantics: InstantiateArrowFunctionExpression"><span class="secnum">15.3.4</span> RS: InstantiateArrowFunctionExpression</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-arrow-function-definitions-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">15.3.5</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-method-definitions" title="Method Definitions"><span class="secnum">15.4</span> Method Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-method-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.4.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-hasdirectsuper" title="Static Semantics: HasDirectSuper"><span class="secnum">15.4.2</span> SS: HasDirectSuper</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-specialmethod" title="Static Semantics: SpecialMethod"><span class="secnum">15.4.3</span> SS: SpecialMethod</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-definemethod" title="Runtime Semantics: DefineMethod"><span class="secnum">15.4.4</span> RS: DefineMethod</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-methoddefinitionevaluation" title="Runtime Semantics: MethodDefinitionEvaluation"><span class="secnum">15.4.5</span> RS: MethodDefinitionEvaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-generator-function-definitions" title="Generator Function Definitions"><span class="secnum">15.5</span> Generator Function Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-generator-function-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.5.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-evaluategeneratorbody" title="Runtime Semantics: EvaluateGeneratorBody"><span class="secnum">15.5.2</span> RS: EvaluateGeneratorBody</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiategeneratorfunctionobject" title="Runtime Semantics: InstantiateGeneratorFunctionObject"><span class="secnum">15.5.3</span> RS: InstantiateGeneratorFunctionObject</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiategeneratorfunctionexpression" title="Runtime Semantics: InstantiateGeneratorFunctionExpression"><span class="secnum">15.5.4</span> RS: InstantiateGeneratorFunctionExpression</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-generator-function-definitions-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">15.5.5</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-async-generator-function-definitions" title="Async Generator Function Definitions"><span class="secnum">15.6</span> Async Generator Function Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-async-generator-function-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.6.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-evaluateasyncgeneratorbody" title="Runtime Semantics: EvaluateAsyncGeneratorBody"><span class="secnum">15.6.2</span> RS: EvaluateAsyncGeneratorBody</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiateasyncgeneratorfunctionobject" title="Runtime Semantics: InstantiateAsyncGeneratorFunctionObject"><span class="secnum">15.6.3</span> RS: InstantiateAsyncGeneratorFunctionObject</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiateasyncgeneratorfunctionexpression" title="Runtime Semantics: InstantiateAsyncGeneratorFunctionExpression"><span class="secnum">15.6.4</span> RS: InstantiateAsyncGeneratorFunctionExpression</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-asyncgenerator-definitions-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">15.6.5</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-class-definitions" title="Class Definitions"><span class="secnum">15.7</span> Class Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-class-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.7.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-classelementkind" title="Static Semantics: ClassElementKind"><span class="secnum">15.7.2</span> SS: ClassElementKind</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-constructormethod" title="Static Semantics: ConstructorMethod"><span class="secnum">15.7.3</span> SS: ConstructorMethod</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-isstatic" title="Static Semantics: IsStatic"><span class="secnum">15.7.4</span> SS: IsStatic</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-nonconstructorelements" title="Static Semantics: NonConstructorElements"><span class="secnum">15.7.5</span> SS: NonConstructorElements</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-prototypepropertynamelist" title="Static Semantics: PrototypePropertyNameList"><span class="secnum">15.7.6</span> SS: PrototypePropertyNameList</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-allprivateidentifiersvalid" title="Static Semantics: AllPrivateIdentifiersValid"><span class="secnum">15.7.7</span> SS: AllPrivateIdentifiersValid</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-privateboundidentifiers" title="Static Semantics: PrivateBoundIdentifiers"><span class="secnum">15.7.8</span> SS: PrivateBoundIdentifiers</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-containsarguments" title="Static Semantics: ContainsArguments"><span class="secnum">15.7.9</span> SS: ContainsArguments</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-classfielddefinitionevaluation" title="Runtime Semantics: ClassFieldDefinitionEvaluation"><span class="secnum">15.7.10</span> RS: ClassFieldDefinitionEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-classstaticblockdefinitionevaluation" title="Runtime Semantics: ClassStaticBlockDefinitionEvaluation"><span class="secnum">15.7.11</span> RS: ClassStaticBlockDefinitionEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-evaluateclassstaticblockbody" title="Runtime Semantics: EvaluateClassStaticBlockBody"><span class="secnum">15.7.12</span> RS: EvaluateClassStaticBlockBody</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-classelementevaluation" title="Runtime Semantics: ClassElementEvaluation"><span class="secnum">15.7.13</span> RS: ClassElementEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-classdefinitionevaluation" title="Runtime Semantics: ClassDefinitionEvaluation"><span class="secnum">15.7.14</span> RS: ClassDefinitionEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-bindingclassdeclarationevaluation" title="Runtime Semantics: BindingClassDeclarationEvaluation"><span class="secnum">15.7.15</span> RS: BindingClassDeclarationEvaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-class-definitions-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">15.7.16</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-async-function-definitions" title="Async Function Definitions"><span class="secnum">15.8</span> Async Function Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-async-function-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.8.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiateasyncfunctionobject" title="Runtime Semantics: InstantiateAsyncFunctionObject"><span class="secnum">15.8.2</span> RS: InstantiateAsyncFunctionObject</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiateasyncfunctionexpression" title="Runtime Semantics: InstantiateAsyncFunctionExpression"><span class="secnum">15.8.3</span> RS: InstantiateAsyncFunctionExpression</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-evaluateasyncfunctionbody" title="Runtime Semantics: EvaluateAsyncFunctionBody"><span class="secnum">15.8.4</span> RS: EvaluateAsyncFunctionBody</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-async-function-definitions-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">15.8.5</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-async-arrow-function-definitions" title="Async Arrow Function Definitions"><span class="secnum">15.9</span> Async Arrow Function Definitions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-async-arrow-function-definitions-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">15.9.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-asyncconcisebodycontainsusestrict" title="Static Semantics: AsyncConciseBodyContainsUseStrict"><span class="secnum">15.9.2</span> SS: AsyncConciseBodyContainsUseStrict</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-evaluateasyncconcisebody" title="Runtime Semantics: EvaluateAsyncConciseBody"><span class="secnum">15.9.3</span> RS: EvaluateAsyncConciseBody</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-runtime-semantics-instantiateasyncarrowfunctionexpression" title="Runtime Semantics: InstantiateAsyncArrowFunctionExpression"><span class="secnum">15.9.4</span> RS: InstantiateAsyncArrowFunctionExpression</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-async-arrow-function-definitions-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">15.9.5</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-functions-and-classes.html#sec-tail-position-calls" title="Tail Position Calls"><span class="secnum">15.10</span> Tail Position Calls</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-isintailposition" title="Static Semantics: IsInTailPosition ( call )"><span class="secnum">15.10.1</span> SS: IsInTailPosition ( <var>call</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-static-semantics-hascallintailposition" title="Static Semantics: HasCallInTailPosition"><span class="secnum">15.10.2</span> SS: HasCallInTailPosition</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-functions-and-classes.html#sec-preparefortailcall" title="PrepareForTailCall ( )"><span class="secnum">15.10.3</span> PrepareForTailCall ( )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-ecmascript-language-scripts-and-modules" title="ECMAScript Language: Scripts and Modules"><span class="secnum">16</span> ECMAScript Language: Scripts and Modules</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-scripts" title="Scripts"><span class="secnum">16.1</span> Scripts</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-scripts-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">16.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-scriptisstrict" title="Static Semantics: ScriptIsStrict"><span class="secnum">16.1.2</span> SS: ScriptIsStrict</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-script-semantics-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">16.1.3</span> RS: Evaluation</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-script-records" title="Script Records"><span class="secnum">16.1.4</span> Script Records</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-parse-script" title="ParseScript ( sourceText, realm, hostDefined )"><span class="secnum">16.1.5</span> ParseScript ( <var>sourceText</var>, <var>realm</var>, <var>hostDefined</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-runtime-semantics-scriptevaluation" title="ScriptEvaluation ( scriptRecord )"><span class="secnum">16.1.6</span> ScriptEvaluation ( <var>scriptRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-globaldeclarationinstantiation" title="GlobalDeclarationInstantiation ( script, env )"><span class="secnum">16.1.7</span> GlobalDeclarationInstantiation ( <var>script</var>, <var>env</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-modules" title="Modules"><span class="secnum">16.2</span> Modules</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-module-semantics" title="Module Semantics"><span class="secnum">16.2.1</span> Module Semantics</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-module-semantics-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">16.2.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-importedlocalnames" title="Static Semantics: ImportedLocalNames ( importEntries )"><span class="secnum">16.2.1.2</span> SS: ImportedLocalNames ( <var>importEntries</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-modulerequest-record" title="ModuleRequest Records"><span class="secnum">16.2.1.3</span> ModuleRequest Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-ModuleRequestsEqual" title="ModuleRequestsEqual ( left, right )"><span class="secnum">16.2.1.3.1</span> ModuleRequestsEqual ( <var>left</var>, <var>right</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-modulerequests" title="Static Semantics: ModuleRequests"><span class="secnum">16.2.1.4</span> SS: ModuleRequests</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-abstract-module-records" title="Abstract Module Records"><span class="secnum">16.2.1.5</span> Abstract Module Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-EvaluateModuleSync" title="EvaluateModuleSync ( module )"><span class="secnum">16.2.1.5.1</span> EvaluateModuleSync ( <var>module</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-cyclic-module-records" title="Cyclic Module Records"><span class="secnum">16.2.1.6</span> Cyclic Module Records</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-cyclic-module-record-module-record-methods" title="Implementation of Module Record Abstract Methods"><span class="secnum">16.2.1.6.1</span> Implementation of Module Record Abstract Methods</a><ol class="toc"><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-LoadRequestedModules" title="LoadRequestedModules ( [ hostDefined ] )"><span class="secnum">16.2.1.6.1.1</span> LoadRequestedModules ( [ <var>hostDefined</var> ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-InnerModuleLoading" title="InnerModuleLoading ( state, module )"><span class="secnum">16.2.1.6.1.1.1</span> InnerModuleLoading ( <var>state</var>, <var>module</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-ContinueModuleLoading" title="ContinueModuleLoading ( state, moduleCompletion )"><span class="secnum">16.2.1.6.1.1.2</span> ContinueModuleLoading ( <var>state</var>, <var>moduleCompletion</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-moduledeclarationlinking" title="Link ( )"><span class="secnum">16.2.1.6.1.2</span> Link ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-InnerModuleLinking" title="InnerModuleLinking ( module, stack, index )"><span class="secnum">16.2.1.6.1.2.1</span> InnerModuleLinking ( <var>module</var>, <var>stack</var>, <var>index</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-moduleevaluation" title="Evaluate ( )"><span class="secnum">16.2.1.6.1.3</span> Evaluate ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-innermoduleevaluation" title="InnerModuleEvaluation ( module, stack, index )"><span class="secnum">16.2.1.6.1.3.1</span> InnerModuleEvaluation ( <var>module</var>, <var>stack</var>, <var>index</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-execute-async-module" title="ExecuteAsyncModule ( module )"><span class="secnum">16.2.1.6.1.3.2</span> ExecuteAsyncModule ( <var>module</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-gather-available-ancestors" title="GatherAvailableAncestors ( module, execList )"><span class="secnum">16.2.1.6.1.3.3</span> GatherAvailableAncestors ( <var>module</var>, <var>execList</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-async-module-execution-fulfilled" title="AsyncModuleExecutionFulfilled ( module )"><span class="secnum">16.2.1.6.1.3.4</span> AsyncModuleExecutionFulfilled ( <var>module</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-async-module-execution-rejected" title="AsyncModuleExecutionRejected ( module, error )"><span class="secnum">16.2.1.6.1.3.5</span> AsyncModuleExecutionRejected ( <var>module</var>, <var>error</var> )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-example-cyclic-module-record-graphs" title="Example Cyclic Module Record Graphs"><span class="secnum">16.2.1.6.2</span> Example Cyclic Module Record Graphs</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-source-text-module-records" title="Source Text Module Records"><span class="secnum">16.2.1.7</span> Source Text Module Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-parsemodule" title="ParseModule ( sourceText, realm, hostDefined )"><span class="secnum">16.2.1.7.1</span> ParseModule ( <var>sourceText</var>, <var>realm</var>, <var>hostDefined</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-source-text-module-record-module-record-methods" title="Implementation of Module Record Abstract Methods"><span class="secnum">16.2.1.7.2</span> Implementation of Module Record Abstract Methods</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-getexportednames" title="GetExportedNames ( [ exportStarSet ] )"><span class="secnum">16.2.1.7.2.1</span> GetExportedNames ( [ <var>exportStarSet</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-resolveexport" title="ResolveExport ( exportName [ , resolveSet ] )"><span class="secnum">16.2.1.7.2.2</span> ResolveExport ( <var>exportName</var> [ , <var>resolveSet</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-source-text-module-record-cyclic-module-record-methods" title="Implementation of Cyclic Module Record Abstract Methods"><span class="secnum">16.2.1.7.3</span> Implementation of Cyclic Module Record Abstract Methods</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-source-text-module-record-initialize-environment" title="InitializeEnvironment ( )"><span class="secnum">16.2.1.7.3.1</span> InitializeEnvironment ( )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-source-text-module-record-execute-module" title="ExecuteModule ( [ capability ] )"><span class="secnum">16.2.1.7.3.2</span> ExecuteModule ( [ <var>capability</var> ] )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-synthetic-module-records" title="Synthetic Module Records"><span class="secnum">16.2.1.8</span> Synthetic Module Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-create-default-export-synthetic-module" title="CreateDefaultExportSyntheticModule ( defaultExport )"><span class="secnum">16.2.1.8.1</span> CreateDefaultExportSyntheticModule ( <var>defaultExport</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-parse-json-module" title="ParseJSONModule ( source )"><span class="secnum">16.2.1.8.2</span> ParseJSONModule ( <var>source</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-setsyntheticmoduleexport" title="SetSyntheticModuleExport ( module, exportName, exportValue )"><span class="secnum">16.2.1.8.3</span> SetSyntheticModuleExport ( <var>module</var>, <var>exportName</var>, <var>exportValue</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-smr-module-record-methods" title="Implementation of Module Record Abstract Methods"><span class="secnum">16.2.1.8.4</span> Implementation of Module Record Abstract Methods</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-smr-LoadRequestedModules" title="LoadRequestedModules ( [ hostDefined ] )"><span class="secnum">16.2.1.8.4.1</span> LoadRequestedModules ( [ <var>hostDefined</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-smr-getexportednames" title="GetExportedNames ( [ exportStarSet ] )"><span class="secnum">16.2.1.8.4.2</span> GetExportedNames ( [ <var>exportStarSet</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-smr-resolveexport" title="ResolveExport ( exportName [ , resolveSet ] )"><span class="secnum">16.2.1.8.4.3</span> ResolveExport ( <var>exportName</var> [ , <var>resolveSet</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-smr-Link" title="Link ( )"><span class="secnum">16.2.1.8.4.4</span> Link ( )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-smr-Evaluate" title="Evaluate ( )"><span class="secnum">16.2.1.8.4.5</span> Evaluate ( )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-GetImportedModule" title="GetImportedModule ( referrer, request )"><span class="secnum">16.2.1.9</span> GetImportedModule ( <var>referrer</var>, <var>request</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-HostLoadImportedModule" title="HostLoadImportedModule ( referrer, moduleRequest, hostDefined, payload )"><span class="secnum">16.2.1.10</span> HostLoadImportedModule ( <var>referrer</var>, <var>moduleRequest</var>, <var>hostDefined</var>, <var>payload</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-FinishLoadingImportedModule" title="FinishLoadingImportedModule ( referrer, moduleRequest, payload, result )"><span class="secnum">16.2.1.11</span> FinishLoadingImportedModule ( <var>referrer</var>, <var>moduleRequest</var>, <var>payload</var>, <var>result</var> )</a></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-AllImportAttributesSupported" title="AllImportAttributesSupported ( attributes )"><span class="secnum">16.2.1.12</span> AllImportAttributesSupported ( <var>attributes</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-hostgetsupportedimportattributes" title="HostGetSupportedImportAttributes ( )"><span class="secnum">16.2.1.12.1</span> HostGetSupportedImportAttributes ( )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-getmodulenamespace" title="GetModuleNamespace ( module )"><span class="secnum">16.2.1.13</span> GetModuleNamespace ( <var>module</var> )</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-module-semantics-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">16.2.1.14</span> RS: Evaluation</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-imports" title="Imports"><span class="secnum">16.2.2</span> Imports</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-imports-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">16.2.2.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-importentries" title="Static Semantics: ImportEntries"><span class="secnum">16.2.2.2</span> SS: ImportEntries</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-importentriesformodule" title="Static Semantics: ImportEntriesForModule"><span class="secnum">16.2.2.3</span> SS: ImportEntriesForModule</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-withclausetoattributes" title="Static Semantics: WithClauseToAttributes"><span class="secnum">16.2.2.4</span> SS: WithClauseToAttributes</a></li></ol></li><li><span class="item-toggle">+</span><a href="ecmascript-language-scripts-and-modules.html#sec-exports" title="Exports"><span class="secnum">16.2.3</span> Exports</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-exports-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">16.2.3.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-exportedbindings" title="Static Semantics: ExportedBindings"><span class="secnum">16.2.3.2</span> SS: ExportedBindings</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-exportednames" title="Static Semantics: ExportedNames"><span class="secnum">16.2.3.3</span> SS: ExportedNames</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-exportentries" title="Static Semantics: ExportEntries"><span class="secnum">16.2.3.4</span> SS: ExportEntries</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-exportentriesformodule" title="Static Semantics: ExportEntriesForModule"><span class="secnum">16.2.3.5</span> SS: ExportEntriesForModule</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-static-semantics-referencedbindings" title="Static Semantics: ReferencedBindings"><span class="secnum">16.2.3.6</span> SS: ReferencedBindings</a></li><li><span class="item-toggle-none"></span><a href="ecmascript-language-scripts-and-modules.html#sec-exports-runtime-semantics-evaluation" title="Runtime Semantics: Evaluation"><span class="secnum">16.2.3.7</span> RS: Evaluation</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="error-handling-and-language-extensions.html#sec-error-handling-and-language-extensions" title="Error Handling and Language Extensions"><span class="secnum">17</span> Error Handling and Language Extensions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="error-handling-and-language-extensions.html#sec-forbidden-extensions" title="Forbidden Extensions"><span class="secnum">17.1</span> Forbidden Extensions</a></li></ol></li><li><span class="item-toggle-none"></span><a href="ecmascript-standard-built-in-objects.html#sec-ecmascript-standard-built-in-objects" title="ECMAScript Standard Built-in Objects"><span class="secnum">18</span> ECMAScript Standard Built-in Objects</a></li><li><span class="item-toggle">+</span><a href="global-object.html#sec-global-object" title="The Global Object"><span class="secnum">19</span> The Global Object</a><ol class="toc"><li><span class="item-toggle">+</span><a href="global-object.html#sec-value-properties-of-the-global-object" title="Value Properties of the Global Object"><span class="secnum">19.1</span> Value Properties of the Global Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="global-object.html#sec-globalthis" title="globalThis"><span class="secnum">19.1.1</span> globalThis</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-value-properties-of-the-global-object-infinity" title="Infinity"><span class="secnum">19.1.2</span> Infinity</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-value-properties-of-the-global-object-nan" title="NaN"><span class="secnum">19.1.3</span> NaN</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-undefined" title="undefined"><span class="secnum">19.1.4</span> undefined</a></li></ol></li><li><span class="item-toggle">+</span><a href="global-object.html#sec-function-properties-of-the-global-object" title="Function Properties of the Global Object"><span class="secnum">19.2</span> Function Properties of the Global Object</a><ol class="toc"><li><span class="item-toggle">+</span><a href="global-object.html#sec-eval-x" title="eval ( x )"><span class="secnum">19.2.1</span> eval ( <var>x</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="global-object.html#sec-performeval" title="PerformEval ( x, strictCaller, direct )"><span class="secnum">19.2.1.1</span> PerformEval ( <var>x</var>, <var>strictCaller</var>, <var>direct</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-hostensurecancompilestrings" title="HostEnsureCanCompileStrings ( calleeRealm, parameterStrings, bodyString, direct )"><span class="secnum">19.2.1.2</span> HostEnsureCanCompileStrings ( <var>calleeRealm</var>, <var>parameterStrings</var>, <var>bodyString</var>, <var>direct</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-evaldeclarationinstantiation" title="EvalDeclarationInstantiation ( body, varEnv, lexEnv, privateEnv, strict )"><span class="secnum">19.2.1.3</span> EvalDeclarationInstantiation ( <var>body</var>, <var>varEnv</var>, <var>lexEnv</var>, <var>privateEnv</var>, <var>strict</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-isfinite-number" title="isFinite ( number )"><span class="secnum">19.2.2</span> isFinite ( <var>number</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-isnan-number" title="isNaN ( number )"><span class="secnum">19.2.3</span> isNaN ( <var>number</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-parsefloat-string" title="parseFloat ( string )"><span class="secnum">19.2.4</span> parseFloat ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-parseint-string-radix" title="parseInt ( string, radix )"><span class="secnum">19.2.5</span> parseInt ( <var>string</var>, <var>radix</var> )</a></li><li><span class="item-toggle">+</span><a href="global-object.html#sec-uri-handling-functions" title="URI Handling Functions"><span class="secnum">19.2.6</span> URI Handling Functions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="global-object.html#sec-decodeuri-encodeduri" title="decodeURI ( encodedURI )"><span class="secnum">19.2.6.1</span> decodeURI ( <var>encodedURI</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-decodeuricomponent-encodeduricomponent" title="decodeURIComponent ( encodedURIComponent )"><span class="secnum">19.2.6.2</span> decodeURIComponent ( <var>encodedURIComponent</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-encodeuri-uri" title="encodeURI ( uri )"><span class="secnum">19.2.6.3</span> encodeURI ( <var>uri</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-encodeuricomponent-uricomponent" title="encodeURIComponent ( uriComponent )"><span class="secnum">19.2.6.4</span> encodeURIComponent ( <var>uriComponent</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-encode" title="Encode ( string, extraUnescaped )"><span class="secnum">19.2.6.5</span> Encode ( <var>string</var>, <var>extraUnescaped</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-decode" title="Decode ( string, preserveEscapeSet )"><span class="secnum">19.2.6.6</span> Decode ( <var>string</var>, <var>preserveEscapeSet</var> )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-parsehexoctet" title="ParseHexOctet ( string, position )"><span class="secnum">19.2.6.7</span> ParseHexOctet ( <var>string</var>, <var>position</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="global-object.html#sec-constructor-properties-of-the-global-object" title="Constructor Properties of the Global Object"><span class="secnum">19.3</span> Constructor Properties of the Global Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-aggregate-error" title="AggregateError ( . . . )"><span class="secnum">19.3.1</span> AggregateError ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-array" title="Array ( . . . )"><span class="secnum">19.3.2</span> Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-arraybuffer" title="ArrayBuffer ( . . . )"><span class="secnum">19.3.3</span> ArrayBuffer ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-bigint" title="BigInt ( . . . )"><span class="secnum">19.3.4</span> BigInt ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-bigint64array" title="BigInt64Array ( . . . )"><span class="secnum">19.3.5</span> BigInt64Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-biguint64array" title="BigUint64Array ( . . . )"><span class="secnum">19.3.6</span> BigUint64Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-boolean" title="Boolean ( . . . )"><span class="secnum">19.3.7</span> Boolean ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-dataview" title="DataView ( . . . )"><span class="secnum">19.3.8</span> DataView ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-date" title="Date ( . . . )"><span class="secnum">19.3.9</span> Date ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-error" title="Error ( . . . )"><span class="secnum">19.3.10</span> Error ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-evalerror" title="EvalError ( . . . )"><span class="secnum">19.3.11</span> EvalError ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-finalization-registry" title="FinalizationRegistry ( . . . )"><span class="secnum">19.3.12</span> FinalizationRegistry ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-float16array" title="Float16Array ( . . . )"><span class="secnum">19.3.13</span> Float16Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-float32array" title="Float32Array ( . . . )"><span class="secnum">19.3.14</span> Float32Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-float64array" title="Float64Array ( . . . )"><span class="secnum">19.3.15</span> Float64Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-function" title="Function ( . . . )"><span class="secnum">19.3.16</span> Function ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-int8array" title="Int8Array ( . . . )"><span class="secnum">19.3.17</span> Int8Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-int16array" title="Int16Array ( . . . )"><span class="secnum">19.3.18</span> Int16Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-int32array" title="Int32Array ( . . . )"><span class="secnum">19.3.19</span> Int32Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-iterator" title="Iterator ( . . . )"><span class="secnum">19.3.20</span> Iterator ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-map" title="Map ( . . . )"><span class="secnum">19.3.21</span> Map ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-number" title="Number ( . . . )"><span class="secnum">19.3.22</span> Number ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-object" title="Object ( . . . )"><span class="secnum">19.3.23</span> Object ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-promise" title="Promise ( . . . )"><span class="secnum">19.3.24</span> Promise ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-proxy" title="Proxy ( . . . )"><span class="secnum">19.3.25</span> Proxy ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-rangeerror" title="RangeError ( . . . )"><span class="secnum">19.3.26</span> RangeError ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-referenceerror" title="ReferenceError ( . . . )"><span class="secnum">19.3.27</span> ReferenceError ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-regexp" title="RegExp ( . . . )"><span class="secnum">19.3.28</span> RegExp ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-set" title="Set ( . . . )"><span class="secnum">19.3.29</span> Set ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-sharedarraybuffer" title="SharedArrayBuffer ( . . . )"><span class="secnum">19.3.30</span> SharedArrayBuffer ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-string" title="String ( . . . )"><span class="secnum">19.3.31</span> String ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-symbol" title="Symbol ( . . . )"><span class="secnum">19.3.32</span> Symbol ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-syntaxerror" title="SyntaxError ( . . . )"><span class="secnum">19.3.33</span> SyntaxError ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-typeerror" title="TypeError ( . . . )"><span class="secnum">19.3.34</span> TypeError ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-uint8array" title="Uint8Array ( . . . )"><span class="secnum">19.3.35</span> Uint8Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-uint8clampedarray" title="Uint8ClampedArray ( . . . )"><span class="secnum">19.3.36</span> Uint8ClampedArray ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-uint16array" title="Uint16Array ( . . . )"><span class="secnum">19.3.37</span> Uint16Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-uint32array" title="Uint32Array ( . . . )"><span class="secnum">19.3.38</span> Uint32Array ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-urierror" title="URIError ( . . . )"><span class="secnum">19.3.39</span> URIError ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-weakmap" title="WeakMap ( . . . )"><span class="secnum">19.3.40</span> WeakMap ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-weakref" title="WeakRef ( . . . )"><span class="secnum">19.3.41</span> WeakRef ( . . . )</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-constructor-properties-of-the-global-object-weakset" title="WeakSet ( . . . )"><span class="secnum">19.3.42</span> WeakSet ( . . . )</a></li></ol></li><li><span class="item-toggle">+</span><a href="global-object.html#sec-other-properties-of-the-global-object" title="Other Properties of the Global Object"><span class="secnum">19.4</span> Other Properties of the Global Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="global-object.html#sec-atomics" title="Atomics"><span class="secnum">19.4.1</span> Atomics</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-json" title="JSON"><span class="secnum">19.4.2</span> JSON</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-math" title="Math"><span class="secnum">19.4.3</span> Math</a></li><li><span class="item-toggle-none"></span><a href="global-object.html#sec-reflect" title="Reflect"><span class="secnum">19.4.4</span> Reflect</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-fundamental-objects" title="Fundamental Objects"><span class="secnum">20</span> Fundamental Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-object-objects" title="Object Objects"><span class="secnum">20.1</span> Object Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-object-constructor" title="The Object Constructor"><span class="secnum">20.1.1</span> The Object Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object-value" title="Object ( value )"><span class="secnum">20.1.1.1</span> Object ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-object-constructor" title="Properties of the Object Constructor"><span class="secnum">20.1.2</span> Properties of the Object Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.assign" title="Object.assign ( target, ...sources )"><span class="secnum">20.1.2.1</span> Object.assign ( <var>target</var>, ...<var>sources</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.create" title="Object.create ( O, Properties )"><span class="secnum">20.1.2.2</span> Object.create ( <var>O</var>, <var>Properties</var> )</a></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-object.defineproperties" title="Object.defineProperties ( O, Properties )"><span class="secnum">20.1.2.3</span> Object.defineProperties ( <var>O</var>, <var>Properties</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-objectdefineproperties" title="ObjectDefineProperties ( O, Properties )"><span class="secnum">20.1.2.3.1</span> ObjectDefineProperties ( <var>O</var>, <var>Properties</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.defineproperty" title="Object.defineProperty ( O, P, Attributes )"><span class="secnum">20.1.2.4</span> Object.defineProperty ( <var>O</var>, <var>P</var>, <var>Attributes</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.entries" title="Object.entries ( O )"><span class="secnum">20.1.2.5</span> Object.entries ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.freeze" title="Object.freeze ( O )"><span class="secnum">20.1.2.6</span> Object.freeze ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.fromentries" title="Object.fromEntries ( iterable )"><span class="secnum">20.1.2.7</span> Object.fromEntries ( <var>iterable</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.getownpropertydescriptor" title="Object.getOwnPropertyDescriptor ( O, P )"><span class="secnum">20.1.2.8</span> Object.getOwnPropertyDescriptor ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.getownpropertydescriptors" title="Object.getOwnPropertyDescriptors ( O )"><span class="secnum">20.1.2.9</span> Object.getOwnPropertyDescriptors ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.getownpropertynames" title="Object.getOwnPropertyNames ( O )"><span class="secnum">20.1.2.10</span> Object.getOwnPropertyNames ( <var>O</var> )</a></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-object.getownpropertysymbols" title="Object.getOwnPropertySymbols ( O )"><span class="secnum">20.1.2.11</span> Object.getOwnPropertySymbols ( <var>O</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-getownpropertykeys" title="GetOwnPropertyKeys ( O, type )"><span class="secnum">20.1.2.11.1</span> GetOwnPropertyKeys ( <var>O</var>, <var>type</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.getprototypeof" title="Object.getPrototypeOf ( O )"><span class="secnum">20.1.2.12</span> Object.getPrototypeOf ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.groupby" title="Object.groupBy ( items, callback )"><span class="secnum">20.1.2.13</span> Object.groupBy ( <var>items</var>, <var>callback</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.hasown" title="Object.hasOwn ( O, P )"><span class="secnum">20.1.2.14</span> Object.hasOwn ( <var>O</var>, <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.is" title="Object.is ( value1, value2 )"><span class="secnum">20.1.2.15</span> Object.is ( <var>value1</var>, <var>value2</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.isextensible" title="Object.isExtensible ( O )"><span class="secnum">20.1.2.16</span> Object.isExtensible ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.isfrozen" title="Object.isFrozen ( O )"><span class="secnum">20.1.2.17</span> Object.isFrozen ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.issealed" title="Object.isSealed ( O )"><span class="secnum">20.1.2.18</span> Object.isSealed ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.keys" title="Object.keys ( O )"><span class="secnum">20.1.2.19</span> Object.keys ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.preventextensions" title="Object.preventExtensions ( O )"><span class="secnum">20.1.2.20</span> Object.preventExtensions ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype" title="Object.prototype"><span class="secnum">20.1.2.21</span> Object.prototype</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.seal" title="Object.seal ( O )"><span class="secnum">20.1.2.22</span> Object.seal ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.setprototypeof" title="Object.setPrototypeOf ( O, proto )"><span class="secnum">20.1.2.23</span> Object.setPrototypeOf ( <var>O</var>, <var>proto</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.values" title="Object.values ( O )"><span class="secnum">20.1.2.24</span> Object.values ( <var>O</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-object-prototype-object" title="Properties of the Object Prototype Object"><span class="secnum">20.1.3</span> Properties of the Object Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.constructor" title="Object.prototype.constructor"><span class="secnum">20.1.3.1</span> Object.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.hasownproperty" title="Object.prototype.hasOwnProperty ( V )"><span class="secnum">20.1.3.2</span> Object.prototype.hasOwnProperty ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.isprototypeof" title="Object.prototype.isPrototypeOf ( V )"><span class="secnum">20.1.3.3</span> Object.prototype.isPrototypeOf ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.propertyisenumerable" title="Object.prototype.propertyIsEnumerable ( V )"><span class="secnum">20.1.3.4</span> Object.prototype.propertyIsEnumerable ( <var>V</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.tolocalestring" title="Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">20.1.3.5</span> Object.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.tostring" title="Object.prototype.toString ( )"><span class="secnum">20.1.3.6</span> Object.prototype.toString ( )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.valueof" title="Object.prototype.valueOf ( )"><span class="secnum">20.1.3.7</span> Object.prototype.valueOf ( )</a></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-object.prototype.__proto__" title="Object.prototype.__proto__"><span class="secnum">20.1.3.8</span> Object.prototype.__proto__</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-get-object.prototype.__proto__" title="get Object.prototype.__proto__"><span class="secnum">20.1.3.8.1</span> get Object.prototype.__proto__</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-set-object.prototype.__proto__" title="set Object.prototype.__proto__"><span class="secnum">20.1.3.8.2</span> set Object.prototype.__proto__</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-object.prototype-legacy-accessor-methods" title="Legacy Object.prototype Accessor Methods"><span class="secnum">20.1.3.9</span> Legacy Object.prototype Accessor Methods</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.__defineGetter__" title="Object.prototype.__defineGetter__ ( P, getter )"><span class="secnum">20.1.3.9.1</span> Object.prototype.__defineGetter__ ( <var>P</var>, <var>getter</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.__defineSetter__" title="Object.prototype.__defineSetter__ ( P, setter )"><span class="secnum">20.1.3.9.2</span> Object.prototype.__defineSetter__ ( <var>P</var>, <var>setter</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.__lookupGetter__" title="Object.prototype.__lookupGetter__ ( P )"><span class="secnum">20.1.3.9.3</span> Object.prototype.__lookupGetter__ ( <var>P</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-object.prototype.__lookupSetter__" title="Object.prototype.__lookupSetter__ ( P )"><span class="secnum">20.1.3.9.4</span> Object.prototype.__lookupSetter__ ( <var>P</var> )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-properties-of-object-instances" title="Properties of Object Instances"><span class="secnum">20.1.4</span> Properties of Object Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-function-objects" title="Function Objects"><span class="secnum">20.2</span> Function Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-function-constructor" title="The Function Constructor"><span class="secnum">20.2.1</span> The Function Constructor</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-function-p1-p2-pn-body" title="Function ( ...parameterArgs, bodyArg )"><span class="secnum">20.2.1.1</span> Function ( ...<var>parameterArgs</var>, <var>bodyArg</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-createdynamicfunction" title="CreateDynamicFunction ( constructor, newTarget, kind, parameterArgs, bodyArg )"><span class="secnum">20.2.1.1.1</span> CreateDynamicFunction ( <var>constructor</var>, <var>newTarget</var>, <var>kind</var>, <var>parameterArgs</var>, <var>bodyArg</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-function-constructor" title="Properties of the Function Constructor"><span class="secnum">20.2.2</span> Properties of the Function Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function.prototype" title="Function.prototype"><span class="secnum">20.2.2.1</span> Function.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-function-prototype-object" title="Properties of the Function Prototype Object"><span class="secnum">20.2.3</span> Properties of the Function Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function.prototype.apply" title="Function.prototype.apply ( thisArg, argArray )"><span class="secnum">20.2.3.1</span> Function.prototype.apply ( <var>thisArg</var>, <var>argArray</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function.prototype.bind" title="Function.prototype.bind ( thisArg, ...args )"><span class="secnum">20.2.3.2</span> Function.prototype.bind ( <var>thisArg</var>, ...<var>args</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function.prototype.call" title="Function.prototype.call ( thisArg, ...args )"><span class="secnum">20.2.3.3</span> Function.prototype.call ( <var>thisArg</var>, ...<var>args</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function.prototype.constructor" title="Function.prototype.constructor"><span class="secnum">20.2.3.4</span> Function.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function.prototype.tostring" title="Function.prototype.toString ( )"><span class="secnum">20.2.3.5</span> Function.prototype.toString ( )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function.prototype-%symbol.hasinstance%" title="Function.prototype [ %Symbol.hasInstance% ] ( V )"><span class="secnum">20.2.3.6</span> Function.prototype [ %Symbol.hasInstance% ] ( <var>V</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-function-instances" title="Function Instances"><span class="secnum">20.2.4</span> Function Instances</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function-instances-length" title="length"><span class="secnum">20.2.4.1</span> length</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function-instances-name" title="name"><span class="secnum">20.2.4.2</span> name</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-function-instances-prototype" title="prototype"><span class="secnum">20.2.4.3</span> prototype</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-hosthassourcetextavailable" title="HostHasSourceTextAvailable ( func )"><span class="secnum">20.2.5</span> HostHasSourceTextAvailable ( <var>func</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-boolean-objects" title="Boolean Objects"><span class="secnum">20.3</span> Boolean Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-boolean-constructor" title="The Boolean Constructor"><span class="secnum">20.3.1</span> The Boolean Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-boolean-constructor-boolean-value" title="Boolean ( value )"><span class="secnum">20.3.1.1</span> Boolean ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-boolean-constructor" title="Properties of the Boolean Constructor"><span class="secnum">20.3.2</span> Properties of the Boolean Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-boolean.prototype" title="Boolean.prototype"><span class="secnum">20.3.2.1</span> Boolean.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-boolean-prototype-object" title="Properties of the Boolean Prototype Object"><span class="secnum">20.3.3</span> Properties of the Boolean Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-boolean.prototype.constructor" title="Boolean.prototype.constructor"><span class="secnum">20.3.3.1</span> Boolean.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-boolean.prototype.tostring" title="Boolean.prototype.toString ( )"><span class="secnum">20.3.3.2</span> Boolean.prototype.toString ( )</a></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-boolean.prototype.valueof" title="Boolean.prototype.valueOf ( )"><span class="secnum">20.3.3.3</span> Boolean.prototype.valueOf ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-thisbooleanvalue" title="ThisBooleanValue ( value )"><span class="secnum">20.3.3.3.1</span> ThisBooleanValue ( <var>value</var> )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-properties-of-boolean-instances" title="Properties of Boolean Instances"><span class="secnum">20.3.4</span> Properties of Boolean Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-symbol-objects" title="Symbol Objects"><span class="secnum">20.4</span> Symbol Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-symbol-constructor" title="The Symbol Constructor"><span class="secnum">20.4.1</span> The Symbol Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol-description" title="Symbol ( [ description ] )"><span class="secnum">20.4.1.1</span> Symbol ( [ <var>description</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-symbol-constructor" title="Properties of the Symbol Constructor"><span class="secnum">20.4.2</span> Properties of the Symbol Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.asynciterator" title="Symbol.asyncIterator"><span class="secnum">20.4.2.1</span> Symbol.asyncIterator</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.for" title="Symbol.for ( key )"><span class="secnum">20.4.2.2</span> Symbol.for ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.hasinstance" title="Symbol.hasInstance"><span class="secnum">20.4.2.3</span> Symbol.hasInstance</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.isconcatspreadable" title="Symbol.isConcatSpreadable"><span class="secnum">20.4.2.4</span> Symbol.isConcatSpreadable</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.iterator" title="Symbol.iterator"><span class="secnum">20.4.2.5</span> Symbol.iterator</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.keyfor" title="Symbol.keyFor ( sym )"><span class="secnum">20.4.2.6</span> Symbol.keyFor ( <var>sym</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.match" title="Symbol.match"><span class="secnum">20.4.2.7</span> Symbol.match</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.matchall" title="Symbol.matchAll"><span class="secnum">20.4.2.8</span> Symbol.matchAll</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.prototype" title="Symbol.prototype"><span class="secnum">20.4.2.9</span> Symbol.prototype</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.replace" title="Symbol.replace"><span class="secnum">20.4.2.10</span> Symbol.replace</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.search" title="Symbol.search"><span class="secnum">20.4.2.11</span> Symbol.search</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.species" title="Symbol.species"><span class="secnum">20.4.2.12</span> Symbol.species</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.split" title="Symbol.split"><span class="secnum">20.4.2.13</span> Symbol.split</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.toprimitive" title="Symbol.toPrimitive"><span class="secnum">20.4.2.14</span> Symbol.toPrimitive</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.tostringtag" title="Symbol.toStringTag"><span class="secnum">20.4.2.15</span> Symbol.toStringTag</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.unscopables" title="Symbol.unscopables"><span class="secnum">20.4.2.16</span> Symbol.unscopables</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-symbol-prototype-object" title="Properties of the Symbol Prototype Object"><span class="secnum">20.4.3</span> Properties of the Symbol Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.prototype.constructor" title="Symbol.prototype.constructor"><span class="secnum">20.4.3.1</span> Symbol.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.prototype.description" title="get Symbol.prototype.description"><span class="secnum">20.4.3.2</span> get Symbol.prototype.description</a></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-symbol.prototype.tostring" title="Symbol.prototype.toString ( )"><span class="secnum">20.4.3.3</span> Symbol.prototype.toString ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symboldescriptivestring" title="SymbolDescriptiveString ( sym )"><span class="secnum">20.4.3.3.1</span> SymbolDescriptiveString ( <var>sym</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-symbol.prototype.valueof" title="Symbol.prototype.valueOf ( )"><span class="secnum">20.4.3.4</span> Symbol.prototype.valueOf ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-thissymbolvalue" title="ThisSymbolValue ( value )"><span class="secnum">20.4.3.4.1</span> ThisSymbolValue ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.prototype-%symbol.toprimitive%" title="Symbol.prototype [ %Symbol.toPrimitive% ] ( hint )"><span class="secnum">20.4.3.5</span> Symbol.prototype [ %Symbol.toPrimitive% ] ( <var>hint</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-symbol.prototype-%symbol.tostringtag%" title="Symbol.prototype [ %Symbol.toStringTag% ]"><span class="secnum">20.4.3.6</span> Symbol.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-properties-of-symbol-instances" title="Properties of Symbol Instances"><span class="secnum">20.4.4</span> Properties of Symbol Instances</a></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-abstract-operations-for-symbols" title="Abstract Operations for Symbols"><span class="secnum">20.4.5</span> Abstract Operations for Symbols</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-keyforsymbol" title="KeyForSymbol ( sym )"><span class="secnum">20.4.5.1</span> KeyForSymbol ( <var>sym</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-error-objects" title="Error Objects"><span class="secnum">20.5</span> Error Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-error-constructor" title="The Error Constructor"><span class="secnum">20.5.1</span> The Error Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-error-message" title="Error ( message [ , options ] )"><span class="secnum">20.5.1.1</span> Error ( <var>message</var> [ , <var>options</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-error-constructor" title="Properties of the Error Constructor"><span class="secnum">20.5.2</span> Properties of the Error Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-error.iserror" title="Error.isError ( arg )"><span class="secnum">20.5.2.1</span> Error.isError ( <var>arg</var> )</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-error.prototype" title="Error.prototype"><span class="secnum">20.5.2.2</span> Error.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-error-prototype-object" title="Properties of the Error Prototype Object"><span class="secnum">20.5.3</span> Properties of the Error Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-error.prototype.constructor" title="Error.prototype.constructor"><span class="secnum">20.5.3.1</span> Error.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-error.prototype.message" title="Error.prototype.message"><span class="secnum">20.5.3.2</span> Error.prototype.message</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-error.prototype.name" title="Error.prototype.name"><span class="secnum">20.5.3.3</span> Error.prototype.name</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-error.prototype.tostring" title="Error.prototype.toString ( )"><span class="secnum">20.5.3.4</span> Error.prototype.toString ( )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-properties-of-error-instances" title="Properties of Error Instances"><span class="secnum">20.5.4</span> Properties of Error Instances</a></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-native-error-types-used-in-this-standard" title="Native Error Types Used in This Standard"><span class="secnum">20.5.5</span> Native Error Types Used in This Standard</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-native-error-types-used-in-this-standard-evalerror" title="EvalError"><span class="secnum">20.5.5.1</span> EvalError</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-native-error-types-used-in-this-standard-rangeerror" title="RangeError"><span class="secnum">20.5.5.2</span> RangeError</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-native-error-types-used-in-this-standard-referenceerror" title="ReferenceError"><span class="secnum">20.5.5.3</span> ReferenceError</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-native-error-types-used-in-this-standard-syntaxerror" title="SyntaxError"><span class="secnum">20.5.5.4</span> SyntaxError</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-native-error-types-used-in-this-standard-typeerror" title="TypeError"><span class="secnum">20.5.5.5</span> TypeError</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-native-error-types-used-in-this-standard-urierror" title="URIError"><span class="secnum">20.5.5.6</span> URIError</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-nativeerror-object-structure" title="NativeError Object Structure"><span class="secnum">20.5.6</span> <var>NativeError</var> Object Structure</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-nativeerror-constructors" title="The NativeError Constructors"><span class="secnum">20.5.6.1</span> The <var>NativeError</var> Constructors</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-nativeerror" title="NativeError ( message [ , options ] )"><span class="secnum">20.5.6.1.1</span> <var>NativeError</var> ( <var>message</var> [ , <var>options</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-nativeerror-constructors" title="Properties of the NativeError Constructors"><span class="secnum">20.5.6.2</span> Properties of the <var>NativeError</var> Constructors</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-nativeerror.prototype" title="NativeError.prototype"><span class="secnum">20.5.6.2.1</span> <var>NativeError</var>.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-nativeerror-prototype-objects" title="Properties of the NativeError Prototype Objects"><span class="secnum">20.5.6.3</span> Properties of the <var>NativeError</var> Prototype Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-nativeerror.prototype.constructor" title="NativeError.prototype.constructor"><span class="secnum">20.5.6.3.1</span> <var>NativeError</var>.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-nativeerror.prototype.message" title="NativeError.prototype.message"><span class="secnum">20.5.6.3.2</span> <var>NativeError</var>.prototype.message</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-nativeerror.prototype.name" title="NativeError.prototype.name"><span class="secnum">20.5.6.3.3</span> <var>NativeError</var>.prototype.name</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-properties-of-nativeerror-instances" title="Properties of NativeError Instances"><span class="secnum">20.5.6.4</span> Properties of <var>NativeError</var> Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-aggregate-error-objects" title="AggregateError Objects"><span class="secnum">20.5.7</span> AggregateError Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-aggregate-error-constructor" title="The AggregateError Constructor"><span class="secnum">20.5.7.1</span> The AggregateError Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-aggregate-error" title="AggregateError ( errors, message [ , options ] )"><span class="secnum">20.5.7.1.1</span> AggregateError ( <var>errors</var>, <var>message</var> [ , <var>options</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-aggregate-error-constructors" title="Properties of the AggregateError Constructor"><span class="secnum">20.5.7.2</span> Properties of the AggregateError Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-aggregate-error.prototype" title="AggregateError.prototype"><span class="secnum">20.5.7.2.1</span> AggregateError.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-properties-of-the-aggregate-error-prototype-objects" title="Properties of the AggregateError Prototype Object"><span class="secnum">20.5.7.3</span> Properties of the AggregateError Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-aggregate-error.prototype.constructor" title="AggregateError.prototype.constructor"><span class="secnum">20.5.7.3.1</span> AggregateError.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-aggregate-error.prototype.message" title="AggregateError.prototype.message"><span class="secnum">20.5.7.3.2</span> AggregateError.prototype.message</a></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-aggregate-error.prototype.name" title="AggregateError.prototype.name"><span class="secnum">20.5.7.3.3</span> AggregateError.prototype.name</a></li></ol></li><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-properties-of-aggregate-error-instances" title="Properties of AggregateError Instances"><span class="secnum">20.5.7.4</span> Properties of AggregateError Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="fundamental-objects.html#sec-abstract-operations-for-error-objects" title="Abstract Operations for Error Objects"><span class="secnum">20.5.8</span> Abstract Operations for Error Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="fundamental-objects.html#sec-installerrorcause" title="InstallErrorCause ( O, options )"><span class="secnum">20.5.8.1</span> InstallErrorCause ( <var>O</var>, <var>options</var> )</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-numbers-and-dates" title="Numbers and Dates"><span class="secnum">21</span> Numbers and Dates</a><ol class="toc"><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-number-objects" title="Number Objects"><span class="secnum">21.1</span> Number Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-number-constructor" title="The Number Constructor"><span class="secnum">21.1.1</span> The Number Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number-constructor-number-value" title="Number ( value )"><span class="secnum">21.1.1.1</span> Number ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-properties-of-the-number-constructor" title="Properties of the Number Constructor"><span class="secnum">21.1.2</span> Properties of the Number Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.epsilon" title="Number.EPSILON"><span class="secnum">21.1.2.1</span> Number.EPSILON</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.isfinite" title="Number.isFinite ( number )"><span class="secnum">21.1.2.2</span> Number.isFinite ( <var>number</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.isinteger" title="Number.isInteger ( number )"><span class="secnum">21.1.2.3</span> Number.isInteger ( <var>number</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.isnan" title="Number.isNaN ( number )"><span class="secnum">21.1.2.4</span> Number.isNaN ( <var>number</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.issafeinteger" title="Number.isSafeInteger ( number )"><span class="secnum">21.1.2.5</span> Number.isSafeInteger ( <var>number</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.max_safe_integer" title="Number.MAX_SAFE_INTEGER"><span class="secnum">21.1.2.6</span> Number.MAX_SAFE_INTEGER</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.max_value" title="Number.MAX_VALUE"><span class="secnum">21.1.2.7</span> Number.MAX_VALUE</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.min_safe_integer" title="Number.MIN_SAFE_INTEGER"><span class="secnum">21.1.2.8</span> Number.MIN_SAFE_INTEGER</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.min_value" title="Number.MIN_VALUE"><span class="secnum">21.1.2.9</span> Number.MIN_VALUE</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.nan" title="Number.NaN"><span class="secnum">21.1.2.10</span> Number.NaN</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.negative_infinity" title="Number.NEGATIVE_INFINITY"><span class="secnum">21.1.2.11</span> Number.NEGATIVE_INFINITY</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.parsefloat" title="Number.parseFloat ( string )"><span class="secnum">21.1.2.12</span> Number.parseFloat ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.parseint" title="Number.parseInt ( string, radix )"><span class="secnum">21.1.2.13</span> Number.parseInt ( <var>string</var>, <var>radix</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.positive_infinity" title="Number.POSITIVE_INFINITY"><span class="secnum">21.1.2.14</span> Number.POSITIVE_INFINITY</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.prototype" title="Number.prototype"><span class="secnum">21.1.2.15</span> Number.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-properties-of-the-number-prototype-object" title="Properties of the Number Prototype Object"><span class="secnum">21.1.3</span> Properties of the Number Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.prototype.constructor" title="Number.prototype.constructor"><span class="secnum">21.1.3.1</span> Number.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.prototype.toexponential" title="Number.prototype.toExponential ( fractionDigits )"><span class="secnum">21.1.3.2</span> Number.prototype.toExponential ( <var>fractionDigits</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.prototype.tofixed" title="Number.prototype.toFixed ( fractionDigits )"><span class="secnum">21.1.3.3</span> Number.prototype.toFixed ( <var>fractionDigits</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.prototype.tolocalestring" title="Number.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">21.1.3.4</span> Number.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.prototype.toprecision" title="Number.prototype.toPrecision ( precision )"><span class="secnum">21.1.3.5</span> Number.prototype.toPrecision ( <var>precision</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-number.prototype.tostring" title="Number.prototype.toString ( [ radix ] )"><span class="secnum">21.1.3.6</span> Number.prototype.toString ( [ <var>radix</var> ] )</a></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-number.prototype.valueof" title="Number.prototype.valueOf ( )"><span class="secnum">21.1.3.7</span> Number.prototype.valueOf ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-thisnumbervalue" title="ThisNumberValue ( value )"><span class="secnum">21.1.3.7.1</span> ThisNumberValue ( <var>value</var> )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-properties-of-number-instances" title="Properties of Number Instances"><span class="secnum">21.1.4</span> Properties of Number Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-bigint-objects" title="BigInt Objects"><span class="secnum">21.2</span> BigInt Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-bigint-constructor" title="The BigInt Constructor"><span class="secnum">21.2.1</span> The BigInt Constructor</a><ol class="toc"><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-bigint-constructor-number-value" title="BigInt ( value )"><span class="secnum">21.2.1.1</span> BigInt ( <var>value</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-numbertobigint" title="NumberToBigInt ( number )"><span class="secnum">21.2.1.1.1</span> NumberToBigInt ( <var>number</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-properties-of-the-bigint-constructor" title="Properties of the BigInt Constructor"><span class="secnum">21.2.2</span> Properties of the BigInt Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-bigint.asintn" title="BigInt.asIntN ( bits, bigint )"><span class="secnum">21.2.2.1</span> BigInt.asIntN ( <var>bits</var>, <var>bigint</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-bigint.asuintn" title="BigInt.asUintN ( bits, bigint )"><span class="secnum">21.2.2.2</span> BigInt.asUintN ( <var>bits</var>, <var>bigint</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-bigint.prototype" title="BigInt.prototype"><span class="secnum">21.2.2.3</span> BigInt.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-properties-of-the-bigint-prototype-object" title="Properties of the BigInt Prototype Object"><span class="secnum">21.2.3</span> Properties of the BigInt Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-bigint.prototype.constructor" title="BigInt.prototype.constructor"><span class="secnum">21.2.3.1</span> BigInt.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-bigint.prototype.tolocalestring" title="BigInt.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">21.2.3.2</span> BigInt.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-bigint.prototype.tostring" title="BigInt.prototype.toString ( [ radix ] )"><span class="secnum">21.2.3.3</span> BigInt.prototype.toString ( [ <var>radix</var> ] )</a></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-bigint.prototype.valueof" title="BigInt.prototype.valueOf ( )"><span class="secnum">21.2.3.4</span> BigInt.prototype.valueOf ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-thisbigintvalue" title="ThisBigIntValue ( value )"><span class="secnum">21.2.3.4.1</span> ThisBigIntValue ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-bigint.prototype-%symbol.tostringtag%" title="BigInt.prototype [ %Symbol.toStringTag% ]"><span class="secnum">21.2.3.5</span> BigInt.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-properties-of-bigint-instances" title="Properties of BigInt Instances"><span class="secnum">21.2.4</span> Properties of BigInt Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-math-object" title="The Math Object"><span class="secnum">21.3</span> The Math Object</a><ol class="toc"><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-value-properties-of-the-math-object" title="Value Properties of the Math Object"><span class="secnum">21.3.1</span> Value Properties of the Math Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.e" title="Math.E"><span class="secnum">21.3.1.1</span> Math.E</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.ln10" title="Math.LN10"><span class="secnum">21.3.1.2</span> Math.LN10</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.ln2" title="Math.LN2"><span class="secnum">21.3.1.3</span> Math.LN2</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.log10e" title="Math.LOG10E"><span class="secnum">21.3.1.4</span> Math.LOG10E</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.log2e" title="Math.LOG2E"><span class="secnum">21.3.1.5</span> Math.LOG2E</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.pi" title="Math.PI"><span class="secnum">21.3.1.6</span> Math.PI</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.sqrt1_2" title="Math.SQRT1_2"><span class="secnum">21.3.1.7</span> Math.SQRT1_2</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.sqrt2" title="Math.SQRT2"><span class="secnum">21.3.1.8</span> Math.SQRT2</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math-%symbol.tostringtag%" title="Math [ %Symbol.toStringTag% ]"><span class="secnum">21.3.1.9</span> Math [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-function-properties-of-the-math-object" title="Function Properties of the Math Object"><span class="secnum">21.3.2</span> Function Properties of the Math Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.abs" title="Math.abs ( x )"><span class="secnum">21.3.2.1</span> Math.abs ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.acos" title="Math.acos ( x )"><span class="secnum">21.3.2.2</span> Math.acos ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.acosh" title="Math.acosh ( x )"><span class="secnum">21.3.2.3</span> Math.acosh ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.asin" title="Math.asin ( x )"><span class="secnum">21.3.2.4</span> Math.asin ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.asinh" title="Math.asinh ( x )"><span class="secnum">21.3.2.5</span> Math.asinh ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.atan" title="Math.atan ( x )"><span class="secnum">21.3.2.6</span> Math.atan ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.atanh" title="Math.atanh ( x )"><span class="secnum">21.3.2.7</span> Math.atanh ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.atan2" title="Math.atan2 ( y, x )"><span class="secnum">21.3.2.8</span> Math.atan2 ( <var>y</var>, <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.cbrt" title="Math.cbrt ( x )"><span class="secnum">21.3.2.9</span> Math.cbrt ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.ceil" title="Math.ceil ( x )"><span class="secnum">21.3.2.10</span> Math.ceil ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.clz32" title="Math.clz32 ( x )"><span class="secnum">21.3.2.11</span> Math.clz32 ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.cos" title="Math.cos ( x )"><span class="secnum">21.3.2.12</span> Math.cos ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.cosh" title="Math.cosh ( x )"><span class="secnum">21.3.2.13</span> Math.cosh ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.exp" title="Math.exp ( x )"><span class="secnum">21.3.2.14</span> Math.exp ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.expm1" title="Math.expm1 ( x )"><span class="secnum">21.3.2.15</span> Math.expm1 ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.floor" title="Math.floor ( x )"><span class="secnum">21.3.2.16</span> Math.floor ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.fround" title="Math.fround ( x )"><span class="secnum">21.3.2.17</span> Math.fround ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.f16round" title="Math.f16round ( x )"><span class="secnum">21.3.2.18</span> Math.f16round ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.hypot" title="Math.hypot ( ...args )"><span class="secnum">21.3.2.19</span> Math.hypot ( ...<var>args</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.imul" title="Math.imul ( x, y )"><span class="secnum">21.3.2.20</span> Math.imul ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.log" title="Math.log ( x )"><span class="secnum">21.3.2.21</span> Math.log ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.log1p" title="Math.log1p ( x )"><span class="secnum">21.3.2.22</span> Math.log1p ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.log10" title="Math.log10 ( x )"><span class="secnum">21.3.2.23</span> Math.log10 ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.log2" title="Math.log2 ( x )"><span class="secnum">21.3.2.24</span> Math.log2 ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.max" title="Math.max ( ...args )"><span class="secnum">21.3.2.25</span> Math.max ( ...<var>args</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.min" title="Math.min ( ...args )"><span class="secnum">21.3.2.26</span> Math.min ( ...<var>args</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.pow" title="Math.pow ( base, exponent )"><span class="secnum">21.3.2.27</span> Math.pow ( <var>base</var>, <var>exponent</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.random" title="Math.random ( )"><span class="secnum">21.3.2.28</span> Math.random ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.round" title="Math.round ( x )"><span class="secnum">21.3.2.29</span> Math.round ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.sign" title="Math.sign ( x )"><span class="secnum">21.3.2.30</span> Math.sign ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.sin" title="Math.sin ( x )"><span class="secnum">21.3.2.31</span> Math.sin ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.sinh" title="Math.sinh ( x )"><span class="secnum">21.3.2.32</span> Math.sinh ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.sqrt" title="Math.sqrt ( x )"><span class="secnum">21.3.2.33</span> Math.sqrt ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.sumprecise" title="Math.sumPrecise ( items )"><span class="secnum">21.3.2.34</span> Math.sumPrecise ( <var>items</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.tan" title="Math.tan ( x )"><span class="secnum">21.3.2.35</span> Math.tan ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.tanh" title="Math.tanh ( x )"><span class="secnum">21.3.2.36</span> Math.tanh ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-math.trunc" title="Math.trunc ( x )"><span class="secnum">21.3.2.37</span> Math.trunc ( <var>x</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-date-objects" title="Date Objects"><span class="secnum">21.4</span> Date Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-overview-of-date-objects-and-definitions-of-abstract-operations" title="Overview of Date Objects and Definitions of Abstract Operations"><span class="secnum">21.4.1</span> Overview of Date Objects and Definitions of Abstract Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-time-values-and-time-range" title="Time Values and Time Range"><span class="secnum">21.4.1.1</span> Time Values and Time Range</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-time-related-constants" title="Time-related Constants"><span class="secnum">21.4.1.2</span> Time-related Constants</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-day" title="Day ( t )"><span class="secnum">21.4.1.3</span> Day ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-timewithinday" title="TimeWithinDay ( t )"><span class="secnum">21.4.1.4</span> TimeWithinDay ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-daysinyear" title="DaysInYear ( y )"><span class="secnum">21.4.1.5</span> DaysInYear ( <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-dayfromyear" title="DayFromYear ( y )"><span class="secnum">21.4.1.6</span> DayFromYear ( <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-timefromyear" title="TimeFromYear ( y )"><span class="secnum">21.4.1.7</span> TimeFromYear ( <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-yearfromtime" title="YearFromTime ( t )"><span class="secnum">21.4.1.8</span> YearFromTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-daywithinyear" title="DayWithinYear ( t )"><span class="secnum">21.4.1.9</span> DayWithinYear ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-inleapyear" title="InLeapYear ( t )"><span class="secnum">21.4.1.10</span> InLeapYear ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-monthfromtime" title="MonthFromTime ( t )"><span class="secnum">21.4.1.11</span> MonthFromTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-datefromtime" title="DateFromTime ( t )"><span class="secnum">21.4.1.12</span> DateFromTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-weekday" title="WeekDay ( t )"><span class="secnum">21.4.1.13</span> WeekDay ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-hourfromtime" title="HourFromTime ( t )"><span class="secnum">21.4.1.14</span> HourFromTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-minfromtime" title="MinFromTime ( t )"><span class="secnum">21.4.1.15</span> MinFromTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-secfromtime" title="SecFromTime ( t )"><span class="secnum">21.4.1.16</span> SecFromTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-msfromtime" title="msFromTime ( t )"><span class="secnum">21.4.1.17</span> msFromTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-getutcepochnanoseconds" title="GetUTCEpochNanoseconds ( year, month, day, hour, minute, second, millisecond, microsecond, nanosecond )"><span class="secnum">21.4.1.18</span> GetUTCEpochNanoseconds ( <var>year</var>, <var>month</var>, <var>day</var>, <var>hour</var>, <var>minute</var>, <var>second</var>, <var>millisecond</var>, <var>microsecond</var>, <var>nanosecond</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-time-zone-identifiers" title="Time Zone Identifiers"><span class="secnum">21.4.1.19</span> Time Zone Identifiers</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-getnamedtimezoneepochnanoseconds" title="GetNamedTimeZoneEpochNanoseconds ( timeZoneIdentifier, year, month, day, hour, minute, second, millisecond, microsecond, nanosecond )"><span class="secnum">21.4.1.20</span> GetNamedTimeZoneEpochNanoseconds ( <var>timeZoneIdentifier</var>, <var>year</var>, <var>month</var>, <var>day</var>, <var>hour</var>, <var>minute</var>, <var>second</var>, <var>millisecond</var>, <var>microsecond</var>, <var>nanosecond</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-getnamedtimezoneoffsetnanoseconds" title="GetNamedTimeZoneOffsetNanoseconds ( timeZoneIdentifier, epochNanoseconds )"><span class="secnum">21.4.1.21</span> GetNamedTimeZoneOffsetNanoseconds ( <var>timeZoneIdentifier</var>, <var>epochNanoseconds</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-time-zone-identifier-record" title="Time Zone Identifier Record"><span class="secnum">21.4.1.22</span> Time Zone Identifier Record</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-availablenamedtimezoneidentifiers" title="AvailableNamedTimeZoneIdentifiers ( )"><span class="secnum">21.4.1.23</span> AvailableNamedTimeZoneIdentifiers ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-systemtimezoneidentifier" title="SystemTimeZoneIdentifier ( )"><span class="secnum">21.4.1.24</span> SystemTimeZoneIdentifier ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-localtime" title="LocalTime ( t )"><span class="secnum">21.4.1.25</span> LocalTime ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-utc-t" title="UTC ( t )"><span class="secnum">21.4.1.26</span> UTC ( <var>t</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-maketime" title="MakeTime ( hour, min, sec, ms )"><span class="secnum">21.4.1.27</span> MakeTime ( <var>hour</var>, <var>min</var>, <var>sec</var>, <var>ms</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-makeday" title="MakeDay ( year, month, date )"><span class="secnum">21.4.1.28</span> MakeDay ( <var>year</var>, <var>month</var>, <var>date</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-makedate" title="MakeDate ( day, time )"><span class="secnum">21.4.1.29</span> MakeDate ( <var>day</var>, <var>time</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-makefullyear" title="MakeFullYear ( year )"><span class="secnum">21.4.1.30</span> MakeFullYear ( <var>year</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-timeclip" title="TimeClip ( time )"><span class="secnum">21.4.1.31</span> TimeClip ( <var>time</var> )</a></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-date-time-string-format" title="Date Time String Format"><span class="secnum">21.4.1.32</span> Date Time String Format</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-expanded-years" title="Expanded Years"><span class="secnum">21.4.1.32.1</span> Expanded Years</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-time-zone-offset-strings" title="Time Zone Offset String Format"><span class="secnum">21.4.1.33</span> Time Zone Offset String Format</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-istimezoneoffsetstring" title="IsTimeZoneOffsetString ( offsetString )"><span class="secnum">21.4.1.33.1</span> IsTimeZoneOffsetString ( <var>offsetString</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-parsetimezoneoffsetstring" title="ParseTimeZoneOffsetString ( offsetString )"><span class="secnum">21.4.1.33.2</span> ParseTimeZoneOffsetString ( <var>offsetString</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-date-constructor" title="The Date Constructor"><span class="secnum">21.4.2</span> The Date Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date" title="Date ( ...values )"><span class="secnum">21.4.2.1</span> Date ( ...<var>values</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-properties-of-the-date-constructor" title="Properties of the Date Constructor"><span class="secnum">21.4.3</span> Properties of the Date Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.now" title="Date.now ( )"><span class="secnum">21.4.3.1</span> Date.now ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.parse" title="Date.parse ( string )"><span class="secnum">21.4.3.2</span> Date.parse ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype" title="Date.prototype"><span class="secnum">21.4.3.3</span> Date.prototype</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.utc" title="Date.UTC ( year [ , month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] ] )"><span class="secnum">21.4.3.4</span> Date.UTC ( <var>year</var> [ , <var>month</var> [ , <var>date</var> [ , <var>hours</var> [ , <var>minutes</var> [ , <var>seconds</var> [ , <var>ms</var> ] ] ] ] ] ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-properties-of-the-date-prototype-object" title="Properties of the Date Prototype Object"><span class="secnum">21.4.4</span> Properties of the Date Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.constructor" title="Date.prototype.constructor"><span class="secnum">21.4.4.1</span> Date.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getdate" title="Date.prototype.getDate ( )"><span class="secnum">21.4.4.2</span> Date.prototype.getDate ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getday" title="Date.prototype.getDay ( )"><span class="secnum">21.4.4.3</span> Date.prototype.getDay ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getfullyear" title="Date.prototype.getFullYear ( )"><span class="secnum">21.4.4.4</span> Date.prototype.getFullYear ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.gethours" title="Date.prototype.getHours ( )"><span class="secnum">21.4.4.5</span> Date.prototype.getHours ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getmilliseconds" title="Date.prototype.getMilliseconds ( )"><span class="secnum">21.4.4.6</span> Date.prototype.getMilliseconds ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getminutes" title="Date.prototype.getMinutes ( )"><span class="secnum">21.4.4.7</span> Date.prototype.getMinutes ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getmonth" title="Date.prototype.getMonth ( )"><span class="secnum">21.4.4.8</span> Date.prototype.getMonth ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getseconds" title="Date.prototype.getSeconds ( )"><span class="secnum">21.4.4.9</span> Date.prototype.getSeconds ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.gettime" title="Date.prototype.getTime ( )"><span class="secnum">21.4.4.10</span> Date.prototype.getTime ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.gettimezoneoffset" title="Date.prototype.getTimezoneOffset ( )"><span class="secnum">21.4.4.11</span> Date.prototype.getTimezoneOffset ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutcdate" title="Date.prototype.getUTCDate ( )"><span class="secnum">21.4.4.12</span> Date.prototype.getUTCDate ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutcday" title="Date.prototype.getUTCDay ( )"><span class="secnum">21.4.4.13</span> Date.prototype.getUTCDay ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutcfullyear" title="Date.prototype.getUTCFullYear ( )"><span class="secnum">21.4.4.14</span> Date.prototype.getUTCFullYear ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutchours" title="Date.prototype.getUTCHours ( )"><span class="secnum">21.4.4.15</span> Date.prototype.getUTCHours ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutcmilliseconds" title="Date.prototype.getUTCMilliseconds ( )"><span class="secnum">21.4.4.16</span> Date.prototype.getUTCMilliseconds ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutcminutes" title="Date.prototype.getUTCMinutes ( )"><span class="secnum">21.4.4.17</span> Date.prototype.getUTCMinutes ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutcmonth" title="Date.prototype.getUTCMonth ( )"><span class="secnum">21.4.4.18</span> Date.prototype.getUTCMonth ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.getutcseconds" title="Date.prototype.getUTCSeconds ( )"><span class="secnum">21.4.4.19</span> Date.prototype.getUTCSeconds ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setdate" title="Date.prototype.setDate ( date )"><span class="secnum">21.4.4.20</span> Date.prototype.setDate ( <var>date</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setfullyear" title="Date.prototype.setFullYear ( year [ , month [ , date ] ] )"><span class="secnum">21.4.4.21</span> Date.prototype.setFullYear ( <var>year</var> [ , <var>month</var> [ , <var>date</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.sethours" title="Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )"><span class="secnum">21.4.4.22</span> Date.prototype.setHours ( <var>hour</var> [ , <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setmilliseconds" title="Date.prototype.setMilliseconds ( ms )"><span class="secnum">21.4.4.23</span> Date.prototype.setMilliseconds ( <var>ms</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setminutes" title="Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )"><span class="secnum">21.4.4.24</span> Date.prototype.setMinutes ( <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setmonth" title="Date.prototype.setMonth ( month [ , date ] )"><span class="secnum">21.4.4.25</span> Date.prototype.setMonth ( <var>month</var> [ , <var>date</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setseconds" title="Date.prototype.setSeconds ( sec [ , ms ] )"><span class="secnum">21.4.4.26</span> Date.prototype.setSeconds ( <var>sec</var> [ , <var>ms</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.settime" title="Date.prototype.setTime ( time )"><span class="secnum">21.4.4.27</span> Date.prototype.setTime ( <var>time</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setutcdate" title="Date.prototype.setUTCDate ( date )"><span class="secnum">21.4.4.28</span> Date.prototype.setUTCDate ( <var>date</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setutcfullyear" title="Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )"><span class="secnum">21.4.4.29</span> Date.prototype.setUTCFullYear ( <var>year</var> [ , <var>month</var> [ , <var>date</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setutchours" title="Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )"><span class="secnum">21.4.4.30</span> Date.prototype.setUTCHours ( <var>hour</var> [ , <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setutcmilliseconds" title="Date.prototype.setUTCMilliseconds ( ms )"><span class="secnum">21.4.4.31</span> Date.prototype.setUTCMilliseconds ( <var>ms</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setutcminutes" title="Date.prototype.setUTCMinutes ( min [ , sec [ , ms ] ] )"><span class="secnum">21.4.4.32</span> Date.prototype.setUTCMinutes ( <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setutcmonth" title="Date.prototype.setUTCMonth ( month [ , date ] )"><span class="secnum">21.4.4.33</span> Date.prototype.setUTCMonth ( <var>month</var> [ , <var>date</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.setutcseconds" title="Date.prototype.setUTCSeconds ( sec [ , ms ] )"><span class="secnum">21.4.4.34</span> Date.prototype.setUTCSeconds ( <var>sec</var> [ , <var>ms</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.todatestring" title="Date.prototype.toDateString ( )"><span class="secnum">21.4.4.35</span> Date.prototype.toDateString ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.toisostring" title="Date.prototype.toISOString ( )"><span class="secnum">21.4.4.36</span> Date.prototype.toISOString ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.tojson" title="Date.prototype.toJSON ( key )"><span class="secnum">21.4.4.37</span> Date.prototype.toJSON ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.tolocaledatestring" title="Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">21.4.4.38</span> Date.prototype.toLocaleDateString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.tolocalestring" title="Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">21.4.4.39</span> Date.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.tolocaletimestring" title="Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">21.4.4.40</span> Date.prototype.toLocaleTimeString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle">+</span><a href="numbers-and-dates.html#sec-date.prototype.tostring" title="Date.prototype.toString ( )"><span class="secnum">21.4.4.41</span> Date.prototype.toString ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-timestring" title="TimeString ( tv )"><span class="secnum">21.4.4.41.1</span> TimeString ( <var>tv</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-datestring" title="DateString ( tv )"><span class="secnum">21.4.4.41.2</span> DateString ( <var>tv</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-timezoneestring" title="TimeZoneString ( tv )"><span class="secnum">21.4.4.41.3</span> TimeZoneString ( <var>tv</var> )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-todatestring" title="ToDateString ( tv )"><span class="secnum">21.4.4.41.4</span> ToDateString ( <var>tv</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.totimestring" title="Date.prototype.toTimeString ( )"><span class="secnum">21.4.4.42</span> Date.prototype.toTimeString ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.toutcstring" title="Date.prototype.toUTCString ( )"><span class="secnum">21.4.4.43</span> Date.prototype.toUTCString ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype.valueof" title="Date.prototype.valueOf ( )"><span class="secnum">21.4.4.44</span> Date.prototype.valueOf ( )</a></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-date.prototype-%symbol.toprimitive%" title="Date.prototype [ %Symbol.toPrimitive% ] ( hint )"><span class="secnum">21.4.4.45</span> Date.prototype [ %Symbol.toPrimitive% ] ( <var>hint</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="numbers-and-dates.html#sec-properties-of-date-instances" title="Properties of Date Instances"><span class="secnum">21.4.5</span> Properties of Date Instances</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-text-processing" title="Text Processing"><span class="secnum">22</span> Text Processing</a><ol class="toc"><li><span class="item-toggle">+</span><a href="text-processing.html#sec-string-objects" title="String Objects"><span class="secnum">22.1</span> String Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="text-processing.html#sec-string-constructor" title="The String Constructor"><span class="secnum">22.1.1</span> The String Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string-constructor-string-value" title="String ( value )"><span class="secnum">22.1.1.1</span> String ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-properties-of-the-string-constructor" title="Properties of the String Constructor"><span class="secnum">22.1.2</span> Properties of the String Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.fromcharcode" title="String.fromCharCode ( ...codeUnits )"><span class="secnum">22.1.2.1</span> String.fromCharCode ( ...<var>codeUnits</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.fromcodepoint" title="String.fromCodePoint ( ...codePoints )"><span class="secnum">22.1.2.2</span> String.fromCodePoint ( ...<var>codePoints</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype" title="String.prototype"><span class="secnum">22.1.2.3</span> String.prototype</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.raw" title="String.raw ( template, ...substitutions )"><span class="secnum">22.1.2.4</span> String.raw ( <var>template</var>, ...<var>substitutions</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-properties-of-the-string-prototype-object" title="Properties of the String Prototype Object"><span class="secnum">22.1.3</span> Properties of the String Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.at" title="String.prototype.at ( index )"><span class="secnum">22.1.3.1</span> String.prototype.at ( <var>index</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.charat" title="String.prototype.charAt ( pos )"><span class="secnum">22.1.3.2</span> String.prototype.charAt ( <var>pos</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.charcodeat" title="String.prototype.charCodeAt ( pos )"><span class="secnum">22.1.3.3</span> String.prototype.charCodeAt ( <var>pos</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.codepointat" title="String.prototype.codePointAt ( pos )"><span class="secnum">22.1.3.4</span> String.prototype.codePointAt ( <var>pos</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.concat" title="String.prototype.concat ( ...args )"><span class="secnum">22.1.3.5</span> String.prototype.concat ( ...<var>args</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.constructor" title="String.prototype.constructor"><span class="secnum">22.1.3.6</span> String.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.endswith" title="String.prototype.endsWith ( searchString [ , endPosition ] )"><span class="secnum">22.1.3.7</span> String.prototype.endsWith ( <var>searchString</var> [ , <var>endPosition</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.includes" title="String.prototype.includes ( searchString [ , position ] )"><span class="secnum">22.1.3.8</span> String.prototype.includes ( <var>searchString</var> [ , <var>position</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.indexof" title="String.prototype.indexOf ( searchString [ , position ] )"><span class="secnum">22.1.3.9</span> String.prototype.indexOf ( <var>searchString</var> [ , <var>position</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.iswellformed" title="String.prototype.isWellFormed ( )"><span class="secnum">22.1.3.10</span> String.prototype.isWellFormed ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.lastindexof" title="String.prototype.lastIndexOf ( searchString [ , position ] )"><span class="secnum">22.1.3.11</span> String.prototype.lastIndexOf ( <var>searchString</var> [ , <var>position</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.localecompare" title="String.prototype.localeCompare ( that [ , reserved1 [ , reserved2 ] ] )"><span class="secnum">22.1.3.12</span> String.prototype.localeCompare ( <var>that</var> [ , <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.match" title="String.prototype.match ( regexp )"><span class="secnum">22.1.3.13</span> String.prototype.match ( <var>regexp</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.matchall" title="String.prototype.matchAll ( regexp )"><span class="secnum">22.1.3.14</span> String.prototype.matchAll ( <var>regexp</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.normalize" title="String.prototype.normalize ( [ form ] )"><span class="secnum">22.1.3.15</span> String.prototype.normalize ( [ <var>form</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.padend" title="String.prototype.padEnd ( maxLength [ , fillString ] )"><span class="secnum">22.1.3.16</span> String.prototype.padEnd ( <var>maxLength</var> [ , <var>fillString</var> ] )</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-string.prototype.padstart" title="String.prototype.padStart ( maxLength [ , fillString ] )"><span class="secnum">22.1.3.17</span> String.prototype.padStart ( <var>maxLength</var> [ , <var>fillString</var> ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-stringpaddingbuiltinsimpl" title="StringPaddingBuiltinsImpl ( O, maxLength, fillString, placement )"><span class="secnum">22.1.3.17.1</span> StringPaddingBuiltinsImpl ( <var>O</var>, <var>maxLength</var>, <var>fillString</var>, <var>placement</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-stringpad" title="StringPad ( S, maxLength, fillString, placement )"><span class="secnum">22.1.3.17.2</span> StringPad ( <var>S</var>, <var>maxLength</var>, <var>fillString</var>, <var>placement</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-tozeropaddeddecimalstring" title="ToZeroPaddedDecimalString ( n, minLength )"><span class="secnum">22.1.3.17.3</span> ToZeroPaddedDecimalString ( <var>n</var>, <var>minLength</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.repeat" title="String.prototype.repeat ( count )"><span class="secnum">22.1.3.18</span> String.prototype.repeat ( <var>count</var> )</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-string.prototype.replace" title="String.prototype.replace ( searchValue, replaceValue )"><span class="secnum">22.1.3.19</span> String.prototype.replace ( <var>searchValue</var>, <var>replaceValue</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-getsubstitution" title="GetSubstitution ( matched, str, position, captures, namedCaptures, replacementTemplate )"><span class="secnum">22.1.3.19.1</span> GetSubstitution ( <var>matched</var>, <var>str</var>, <var>position</var>, <var>captures</var>, <var>namedCaptures</var>, <var>replacementTemplate</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.replaceall" title="String.prototype.replaceAll ( searchValue, replaceValue )"><span class="secnum">22.1.3.20</span> String.prototype.replaceAll ( <var>searchValue</var>, <var>replaceValue</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.search" title="String.prototype.search ( regexp )"><span class="secnum">22.1.3.21</span> String.prototype.search ( <var>regexp</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.slice" title="String.prototype.slice ( start, end )"><span class="secnum">22.1.3.22</span> String.prototype.slice ( <var>start</var>, <var>end</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.split" title="String.prototype.split ( separator, limit )"><span class="secnum">22.1.3.23</span> String.prototype.split ( <var>separator</var>, <var>limit</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.startswith" title="String.prototype.startsWith ( searchString [ , position ] )"><span class="secnum">22.1.3.24</span> String.prototype.startsWith ( <var>searchString</var> [ , <var>position</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.substring" title="String.prototype.substring ( start, end )"><span class="secnum">22.1.3.25</span> String.prototype.substring ( <var>start</var>, <var>end</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.tolocalelowercase" title="String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">22.1.3.26</span> String.prototype.toLocaleLowerCase ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.tolocaleuppercase" title="String.prototype.toLocaleUpperCase ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">22.1.3.27</span> String.prototype.toLocaleUpperCase ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.tolowercase" title="String.prototype.toLowerCase ( )"><span class="secnum">22.1.3.28</span> String.prototype.toLowerCase ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.tostring" title="String.prototype.toString ( )"><span class="secnum">22.1.3.29</span> String.prototype.toString ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.touppercase" title="String.prototype.toUpperCase ( )"><span class="secnum">22.1.3.30</span> String.prototype.toUpperCase ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.towellformed" title="String.prototype.toWellFormed ( )"><span class="secnum">22.1.3.31</span> String.prototype.toWellFormed ( )</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-string.prototype.trim" title="String.prototype.trim ( )"><span class="secnum">22.1.3.32</span> String.prototype.trim ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-trimstring" title="TrimString ( string, where )"><span class="secnum">22.1.3.32.1</span> TrimString ( <var>string</var>, <var>where</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.trimend" title="String.prototype.trimEnd ( )"><span class="secnum">22.1.3.33</span> String.prototype.trimEnd ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype.trimstart" title="String.prototype.trimStart ( )"><span class="secnum">22.1.3.34</span> String.prototype.trimStart ( )</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-string.prototype.valueof" title="String.prototype.valueOf ( )"><span class="secnum">22.1.3.35</span> String.prototype.valueOf ( )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-thisstringvalue" title="ThisStringValue ( value )"><span class="secnum">22.1.3.35.1</span> ThisStringValue ( <var>value</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-string.prototype-%symbol.iterator%" title="String.prototype [ %Symbol.iterator% ] ( )"><span class="secnum">22.1.3.36</span> String.prototype [ %Symbol.iterator% ] ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-properties-of-string-instances" title="Properties of String Instances"><span class="secnum">22.1.4</span> Properties of String Instances</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-properties-of-string-instances-length" title="length"><span class="secnum">22.1.4.1</span> length</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-string-iterator-objects" title="String Iterator Objects"><span class="secnum">22.1.5</span> String Iterator Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="text-processing.html#sec-%stringiteratorprototype%-object" title="The %StringIteratorPrototype% Object"><span class="secnum">22.1.5.1</span> The %StringIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-%stringiteratorprototype%.next" title="%StringIteratorPrototype%.next ( )"><span class="secnum">22.1.5.1.1</span> %StringIteratorPrototype%.next ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-%stringiteratorprototype%-%symbol.tostringtag%" title="%StringIteratorPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">22.1.5.1.2</span> %StringIteratorPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-regexp-regular-expression-objects" title="RegExp (Regular Expression) Objects"><span class="secnum">22.2</span> RegExp (Regular Expression) Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="text-processing.html#sec-patterns" title="Patterns"><span class="secnum">22.2.1</span> Patterns</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-patterns-static-semantics-early-errors" title="Static Semantics: Early Errors"><span class="secnum">22.2.1.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-countleftcapturingparenswithin" title="Static Semantics: CountLeftCapturingParensWithin ( node )"><span class="secnum">22.2.1.2</span> SS: CountLeftCapturingParensWithin ( <var>node</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-countleftcapturingparensbefore" title="Static Semantics: CountLeftCapturingParensBefore ( node )"><span class="secnum">22.2.1.3</span> SS: CountLeftCapturingParensBefore ( <var>node</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-mightbothparticipate" title="Static Semantics: MightBothParticipate ( x, y )"><span class="secnum">22.2.1.4</span> SS: MightBothParticipate ( <var>x</var>, <var>y</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-patterns-static-semantics-capturing-group-number" title="Static Semantics: CapturingGroupNumber"><span class="secnum">22.2.1.5</span> SS: CapturingGroupNumber</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-patterns-static-semantics-is-character-class" title="Static Semantics: IsCharacterClass"><span class="secnum">22.2.1.6</span> SS: IsCharacterClass</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-patterns-static-semantics-character-value" title="Static Semantics: CharacterValue"><span class="secnum">22.2.1.7</span> SS: CharacterValue</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-static-semantics-maycontainstrings" title="Static Semantics: MayContainStrings"><span class="secnum">22.2.1.8</span> SS: MayContainStrings</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-groupspecifiersthatmatch" title="Static Semantics: GroupSpecifiersThatMatch ( thisGroupName )"><span class="secnum">22.2.1.9</span> SS: GroupSpecifiersThatMatch ( <var>thisGroupName</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-static-semantics-capturinggroupname" title="Static Semantics: CapturingGroupName"><span class="secnum">22.2.1.10</span> SS: CapturingGroupName</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexpidentifiercodepoints" title="Static Semantics: RegExpIdentifierCodePoints"><span class="secnum">22.2.1.11</span> SS: RegExpIdentifierCodePoints</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexpidentifiercodepoint" title="Static Semantics: RegExpIdentifierCodePoint"><span class="secnum">22.2.1.12</span> SS: RegExpIdentifierCodePoint</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-pattern-semantics" title="Pattern Semantics"><span class="secnum">22.2.2</span> Pattern Semantics</a><ol class="toc"><li><span class="item-toggle">+</span><a href="text-processing.html#sec-pattern-notation" title="Notation"><span class="secnum">22.2.2.1</span> Notation</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp-records" title="RegExp Records"><span class="secnum">22.2.2.1.1</span> RegExp Records</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-compilepattern" title="Runtime Semantics: CompilePattern"><span class="secnum">22.2.2.2</span> RS: CompilePattern</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-compilesubpattern" title="Runtime Semantics: CompileSubpattern"><span class="secnum">22.2.2.3</span> RS: CompileSubpattern</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-repeatmatcher-abstract-operation" title="RepeatMatcher ( m, min, max, greedy, x, c, parenIndex, parenCount )"><span class="secnum">22.2.2.3.1</span> RepeatMatcher ( <var>m</var>, <var>min</var>, <var>max</var>, <var>greedy</var>, <var>x</var>, <var>c</var>, <var>parenIndex</var>, <var>parenCount</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-emptymatcher" title="EmptyMatcher ( )"><span class="secnum">22.2.2.3.2</span> EmptyMatcher ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-matchtwoalternatives" title="MatchTwoAlternatives ( m1, m2 )"><span class="secnum">22.2.2.3.3</span> MatchTwoAlternatives ( <var>m1</var>, <var>m2</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-matchsequence" title="MatchSequence ( m1, m2, direction )"><span class="secnum">22.2.2.3.4</span> MatchSequence ( <var>m1</var>, <var>m2</var>, <var>direction</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-compileassertion" title="Runtime Semantics: CompileAssertion"><span class="secnum">22.2.2.4</span> RS: CompileAssertion</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-iswordchar-abstract-operation" title="IsWordChar ( rer, Input, e )"><span class="secnum">22.2.2.4.1</span> IsWordChar ( <var>rer</var>, <var>Input</var>, <var>e</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-compilequantifier" title="Runtime Semantics: CompileQuantifier"><span class="secnum">22.2.2.5</span> RS: CompileQuantifier</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-compilequantifierprefix" title="Runtime Semantics: CompileQuantifierPrefix"><span class="secnum">22.2.2.6</span> RS: CompileQuantifierPrefix</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-compileatom" title="Runtime Semantics: CompileAtom"><span class="secnum">22.2.2.7</span> RS: CompileAtom</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-charactersetmatcher-abstract-operation" title="CharacterSetMatcher ( rer, A, invert, direction )"><span class="secnum">22.2.2.7.1</span> CharacterSetMatcher ( <var>rer</var>, <var>A</var>, <var>invert</var>, <var>direction</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-backreference-matcher" title="BackreferenceMatcher ( rer, ns, direction )"><span class="secnum">22.2.2.7.2</span> BackreferenceMatcher ( <var>rer</var>, <var>ns</var>, <var>direction</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-canonicalize-ch" title="Canonicalize ( rer, ch )"><span class="secnum">22.2.2.7.3</span> Canonicalize ( <var>rer</var>, <var>ch</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-updatemodifiers" title="UpdateModifiers ( rer, add, remove )"><span class="secnum">22.2.2.7.4</span> UpdateModifiers ( <var>rer</var>, <var>add</var>, <var>remove</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-compilecharacterclass" title="Runtime Semantics: CompileCharacterClass"><span class="secnum">22.2.2.8</span> RS: CompileCharacterClass</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-compiletocharset" title="Runtime Semantics: CompileToCharSet"><span class="secnum">22.2.2.9</span> RS: CompileToCharSet</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-characterrange-abstract-operation" title="CharacterRange ( A, B )"><span class="secnum">22.2.2.9.1</span> CharacterRange ( <var>A</var>, <var>B</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-haseitherunicodeflag-abstract-operation" title="HasEitherUnicodeFlag ( rer )"><span class="secnum">22.2.2.9.2</span> HasEitherUnicodeFlag ( <var>rer</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-wordcharacters" title="WordCharacters ( rer )"><span class="secnum">22.2.2.9.3</span> WordCharacters ( <var>rer</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-allcharacters" title="AllCharacters ( rer )"><span class="secnum">22.2.2.9.4</span> AllCharacters ( <var>rer</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-maybesimplecasefolding" title="MaybeSimpleCaseFolding ( rer, A )"><span class="secnum">22.2.2.9.5</span> MaybeSimpleCaseFolding ( <var>rer</var>, <var>A</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-charactercomplement" title="CharacterComplement ( rer, S )"><span class="secnum">22.2.2.9.6</span> CharacterComplement ( <var>rer</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-unicodematchproperty-p" title="UnicodeMatchProperty ( rer, p )"><span class="secnum">22.2.2.9.7</span> UnicodeMatchProperty ( <var>rer</var>, <var>p</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-runtime-semantics-unicodematchpropertyvalue-p-v" title="UnicodeMatchPropertyValue ( p, v )"><span class="secnum">22.2.2.9.8</span> UnicodeMatchPropertyValue ( <var>p</var>, <var>v</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-compileclasssetstring" title="Runtime Semantics: CompileClassSetString"><span class="secnum">22.2.2.10</span> RS: CompileClassSetString</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-abstract-operations-for-regexp-creation" title="Abstract Operations for RegExp Creation"><span class="secnum">22.2.3</span> Abstract Operations for RegExp Creation</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexpcreate" title="RegExpCreate ( P, F )"><span class="secnum">22.2.3.1</span> RegExpCreate ( <var>P</var>, <var>F</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexpalloc" title="RegExpAlloc ( newTarget )"><span class="secnum">22.2.3.2</span> RegExpAlloc ( <var>newTarget</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexpinitialize" title="RegExpInitialize ( obj, pattern, flags )"><span class="secnum">22.2.3.3</span> RegExpInitialize ( <var>obj</var>, <var>pattern</var>, <var>flags</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-parsepattern" title="Static Semantics: ParsePattern ( patternText, u, v )"><span class="secnum">22.2.3.4</span> SS: ParsePattern ( <var>patternText</var>, <var>u</var>, <var>v</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-regexp-constructor" title="The RegExp Constructor"><span class="secnum">22.2.4</span> The RegExp Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp-pattern-flags" title="RegExp ( pattern, flags )"><span class="secnum">22.2.4.1</span> RegExp ( <var>pattern</var>, <var>flags</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-properties-of-the-regexp-constructor" title="Properties of the RegExp Constructor"><span class="secnum">22.2.5</span> Properties of the RegExp Constructor</a><ol class="toc"><li><span class="item-toggle">+</span><a href="text-processing.html#sec-regexp.escape" title="RegExp.escape ( S )"><span class="secnum">22.2.5.1</span> RegExp.escape ( <var>S</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-encodeforregexpescape" title="EncodeForRegExpEscape ( cp )"><span class="secnum">22.2.5.1.1</span> EncodeForRegExpEscape ( <var>cp</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype" title="RegExp.prototype"><span class="secnum">22.2.5.2</span> RegExp.prototype</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp-%symbol.species%" title="get RegExp [ %Symbol.species% ]"><span class="secnum">22.2.5.3</span> get RegExp [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-properties-of-the-regexp-prototype-object" title="Properties of the RegExp Prototype Object"><span class="secnum">22.2.6</span> Properties of the RegExp Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype.constructor" title="RegExp.prototype.constructor"><span class="secnum">22.2.6.1</span> RegExp.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype.exec" title="RegExp.prototype.exec ( string )"><span class="secnum">22.2.6.2</span> RegExp.prototype.exec ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.dotAll" title="get RegExp.prototype.dotAll"><span class="secnum">22.2.6.3</span> get RegExp.prototype.dotAll</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-get-regexp.prototype.flags" title="get RegExp.prototype.flags"><span class="secnum">22.2.6.4</span> get RegExp.prototype.flags</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexphasflag" title="RegExpHasFlag ( R, codeUnit )"><span class="secnum">22.2.6.4.1</span> RegExpHasFlag ( <var>R</var>, <var>codeUnit</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.global" title="get RegExp.prototype.global"><span class="secnum">22.2.6.5</span> get RegExp.prototype.global</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.hasIndices" title="get RegExp.prototype.hasIndices"><span class="secnum">22.2.6.6</span> get RegExp.prototype.hasIndices</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.ignorecase" title="get RegExp.prototype.ignoreCase"><span class="secnum">22.2.6.7</span> get RegExp.prototype.ignoreCase</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype-%symbol.match%" title="RegExp.prototype [ %Symbol.match% ] ( string )"><span class="secnum">22.2.6.8</span> RegExp.prototype [ %Symbol.match% ] ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp-prototype-%symbol.matchall%" title="RegExp.prototype [ %Symbol.matchAll% ] ( string )"><span class="secnum">22.2.6.9</span> RegExp.prototype [ %Symbol.matchAll% ] ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.multiline" title="get RegExp.prototype.multiline"><span class="secnum">22.2.6.10</span> get RegExp.prototype.multiline</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype-%symbol.replace%" title="RegExp.prototype [ %Symbol.replace% ] ( string, replaceValue )"><span class="secnum">22.2.6.11</span> RegExp.prototype [ %Symbol.replace% ] ( <var>string</var>, <var>replaceValue</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype-%symbol.search%" title="RegExp.prototype [ %Symbol.search% ] ( string )"><span class="secnum">22.2.6.12</span> RegExp.prototype [ %Symbol.search% ] ( <var>string</var> )</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-get-regexp.prototype.source" title="get RegExp.prototype.source"><span class="secnum">22.2.6.13</span> get RegExp.prototype.source</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-escaperegexppattern" title="EscapeRegExpPattern ( P, F )"><span class="secnum">22.2.6.13.1</span> EscapeRegExpPattern ( <var>P</var>, <var>F</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype-%symbol.split%" title="RegExp.prototype [ %Symbol.split% ] ( string, limit )"><span class="secnum">22.2.6.14</span> RegExp.prototype [ %Symbol.split% ] ( <var>string</var>, <var>limit</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.sticky" title="get RegExp.prototype.sticky"><span class="secnum">22.2.6.15</span> get RegExp.prototype.sticky</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype.test" title="RegExp.prototype.test ( S )"><span class="secnum">22.2.6.16</span> RegExp.prototype.test ( <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexp.prototype.tostring" title="RegExp.prototype.toString ( )"><span class="secnum">22.2.6.17</span> RegExp.prototype.toString ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.unicode" title="get RegExp.prototype.unicode"><span class="secnum">22.2.6.18</span> get RegExp.prototype.unicode</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-get-regexp.prototype.unicodesets" title="get RegExp.prototype.unicodeSets"><span class="secnum">22.2.6.19</span> get RegExp.prototype.unicodeSets</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-abstract-operations-for-regexp-matching" title="Abstract Operations for RegExp Matching"><span class="secnum">22.2.7</span> Abstract Operations for RegExp Matching</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexpexec" title="RegExpExec ( R, S )"><span class="secnum">22.2.7.1</span> RegExpExec ( <var>R</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-regexpbuiltinexec" title="RegExpBuiltinExec ( R, S )"><span class="secnum">22.2.7.2</span> RegExpBuiltinExec ( <var>R</var>, <var>S</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-advancestringindex" title="AdvanceStringIndex ( S, index, unicode )"><span class="secnum">22.2.7.3</span> AdvanceStringIndex ( <var>S</var>, <var>index</var>, <var>unicode</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-getstringindex" title="GetStringIndex ( S, codePointIndex )"><span class="secnum">22.2.7.4</span> GetStringIndex ( <var>S</var>, <var>codePointIndex</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-match-records" title="Match Records"><span class="secnum">22.2.7.5</span> Match Records</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-getmatchstring" title="GetMatchString ( S, match )"><span class="secnum">22.2.7.6</span> GetMatchString ( <var>S</var>, <var>match</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-getmatchindexpair" title="GetMatchIndexPair ( S, match )"><span class="secnum">22.2.7.7</span> GetMatchIndexPair ( <var>S</var>, <var>match</var> )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-makematchindicesindexpairarray" title="MakeMatchIndicesIndexPairArray ( S, indices, groupNames, hasGroups )"><span class="secnum">22.2.7.8</span> MakeMatchIndicesIndexPairArray ( <var>S</var>, <var>indices</var>, <var>groupNames</var>, <var>hasGroups</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-properties-of-regexp-instances" title="Properties of RegExp Instances"><span class="secnum">22.2.8</span> Properties of RegExp Instances</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-lastindex" title="lastIndex"><span class="secnum">22.2.8.1</span> lastIndex</a></li></ol></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-regexp-string-iterator-objects" title="RegExp String Iterator Objects"><span class="secnum">22.2.9</span> RegExp String Iterator Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-createregexpstringiterator" title="CreateRegExpStringIterator ( R, S, global, fullUnicode )"><span class="secnum">22.2.9.1</span> CreateRegExpStringIterator ( <var>R</var>, <var>S</var>, <var>global</var>, <var>fullUnicode</var> )</a></li><li><span class="item-toggle">+</span><a href="text-processing.html#sec-%regexpstringiteratorprototype%-object" title="The %RegExpStringIteratorPrototype% Object"><span class="secnum">22.2.9.2</span> The %RegExpStringIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-%regexpstringiteratorprototype%.next" title="%RegExpStringIteratorPrototype%.next ( )"><span class="secnum">22.2.9.2.1</span> %RegExpStringIteratorPrototype%.next ( )</a></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-%regexpstringiteratorprototype%-%symbol.tostringtag%" title="%RegExpStringIteratorPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">22.2.9.2.2</span> %RegExpStringIteratorPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="text-processing.html#sec-properties-of-regexp-string-iterator-instances" title="Properties of RegExp String Iterator Instances"><span class="secnum">22.2.9.3</span> Properties of RegExp String Iterator Instances</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-indexed-collections" title="Indexed Collections"><span class="secnum">23</span> Indexed Collections</a><ol class="toc"><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-array-objects" title="Array Objects"><span class="secnum">23.1</span> Array Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-array-constructor" title="The Array Constructor"><span class="secnum">23.1.1</span> The Array Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array" title="Array ( ...values )"><span class="secnum">23.1.1.1</span> Array ( ...<var>values</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-properties-of-the-array-constructor" title="Properties of the Array Constructor"><span class="secnum">23.1.2</span> Properties of the Array Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.from" title="Array.from ( items [ , mapper [ , thisArg ] ] )"><span class="secnum">23.1.2.1</span> Array.from ( <var>items</var> [ , <var>mapper</var> [ , <var>thisArg</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.fromasync" title="Array.fromAsync ( items [ , mapper [ , thisArg ] ] )"><span class="secnum">23.1.2.2</span> Array.fromAsync ( <var>items</var> [ , <var>mapper</var> [ , <var>thisArg</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.isarray" title="Array.isArray ( arg )"><span class="secnum">23.1.2.3</span> Array.isArray ( <var>arg</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.of" title="Array.of ( ...items )"><span class="secnum">23.1.2.4</span> Array.of ( ...<var>items</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype" title="Array.prototype"><span class="secnum">23.1.2.5</span> Array.prototype</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-get-array-%symbol.species%" title="get Array [ %Symbol.species% ]"><span class="secnum">23.1.2.6</span> get Array [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-properties-of-the-array-prototype-object" title="Properties of the Array Prototype Object"><span class="secnum">23.1.3</span> Properties of the Array Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.at" title="Array.prototype.at ( index )"><span class="secnum">23.1.3.1</span> Array.prototype.at ( <var>index</var> )</a></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-array.prototype.concat" title="Array.prototype.concat ( ...items )"><span class="secnum">23.1.3.2</span> Array.prototype.concat ( ...<var>items</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-isconcatspreadable" title="IsConcatSpreadable ( O )"><span class="secnum">23.1.3.2.1</span> IsConcatSpreadable ( <var>O</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.constructor" title="Array.prototype.constructor"><span class="secnum">23.1.3.3</span> Array.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.copywithin" title="Array.prototype.copyWithin ( target, start [ , end ] )"><span class="secnum">23.1.3.4</span> Array.prototype.copyWithin ( <var>target</var>, <var>start</var> [ , <var>end</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.entries" title="Array.prototype.entries ( )"><span class="secnum">23.1.3.5</span> Array.prototype.entries ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.every" title="Array.prototype.every ( callback [ , thisArg ] )"><span class="secnum">23.1.3.6</span> Array.prototype.every ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.fill" title="Array.prototype.fill ( value [ , start [ , end ] ] )"><span class="secnum">23.1.3.7</span> Array.prototype.fill ( <var>value</var> [ , <var>start</var> [ , <var>end</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.filter" title="Array.prototype.filter ( callback [ , thisArg ] )"><span class="secnum">23.1.3.8</span> Array.prototype.filter ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.find" title="Array.prototype.find ( predicate [ , thisArg ] )"><span class="secnum">23.1.3.9</span> Array.prototype.find ( <var>predicate</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.findindex" title="Array.prototype.findIndex ( predicate [ , thisArg ] )"><span class="secnum">23.1.3.10</span> Array.prototype.findIndex ( <var>predicate</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.findlast" title="Array.prototype.findLast ( predicate [ , thisArg ] )"><span class="secnum">23.1.3.11</span> Array.prototype.findLast ( <var>predicate</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-array.prototype.findlastindex" title="Array.prototype.findLastIndex ( predicate [ , thisArg ] )"><span class="secnum">23.1.3.12</span> Array.prototype.findLastIndex ( <var>predicate</var> [ , <var>thisArg</var> ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-findviapredicate" title="FindViaPredicate ( O, len, direction, predicate, thisArg )"><span class="secnum">23.1.3.12.1</span> FindViaPredicate ( <var>O</var>, <var>len</var>, <var>direction</var>, <var>predicate</var>, <var>thisArg</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-array.prototype.flat" title="Array.prototype.flat ( [ depth ] )"><span class="secnum">23.1.3.13</span> Array.prototype.flat ( [ <var>depth</var> ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-flattenintoarray" title="FlattenIntoArray ( target, source, sourceLen, start, depth [ , mapperFunction [ , thisArg ] ] )"><span class="secnum">23.1.3.13.1</span> FlattenIntoArray ( <var>target</var>, <var>source</var>, <var>sourceLen</var>, <var>start</var>, <var>depth</var> [ , <var>mapperFunction</var> [ , <var>thisArg</var> ] ] )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.flatmap" title="Array.prototype.flatMap ( mapperFunction [ , thisArg ] )"><span class="secnum">23.1.3.14</span> Array.prototype.flatMap ( <var>mapperFunction</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.foreach" title="Array.prototype.forEach ( callback [ , thisArg ] )"><span class="secnum">23.1.3.15</span> Array.prototype.forEach ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.includes" title="Array.prototype.includes ( searchElement [ , fromIndex ] )"><span class="secnum">23.1.3.16</span> Array.prototype.includes ( <var>searchElement</var> [ , <var>fromIndex</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.indexof" title="Array.prototype.indexOf ( searchElement [ , fromIndex ] )"><span class="secnum">23.1.3.17</span> Array.prototype.indexOf ( <var>searchElement</var> [ , <var>fromIndex</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.join" title="Array.prototype.join ( separator )"><span class="secnum">23.1.3.18</span> Array.prototype.join ( <var>separator</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.keys" title="Array.prototype.keys ( )"><span class="secnum">23.1.3.19</span> Array.prototype.keys ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.lastindexof" title="Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )"><span class="secnum">23.1.3.20</span> Array.prototype.lastIndexOf ( <var>searchElement</var> [ , <var>fromIndex</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.map" title="Array.prototype.map ( callback [ , thisArg ] )"><span class="secnum">23.1.3.21</span> Array.prototype.map ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.pop" title="Array.prototype.pop ( )"><span class="secnum">23.1.3.22</span> Array.prototype.pop ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.push" title="Array.prototype.push ( ...items )"><span class="secnum">23.1.3.23</span> Array.prototype.push ( ...<var>items</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.reduce" title="Array.prototype.reduce ( callback [ , initialValue ] )"><span class="secnum">23.1.3.24</span> Array.prototype.reduce ( <var>callback</var> [ , <var>initialValue</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.reduceright" title="Array.prototype.reduceRight ( callback [ , initialValue ] )"><span class="secnum">23.1.3.25</span> Array.prototype.reduceRight ( <var>callback</var> [ , <var>initialValue</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.reverse" title="Array.prototype.reverse ( )"><span class="secnum">23.1.3.26</span> Array.prototype.reverse ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.shift" title="Array.prototype.shift ( )"><span class="secnum">23.1.3.27</span> Array.prototype.shift ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.slice" title="Array.prototype.slice ( start, end )"><span class="secnum">23.1.3.28</span> Array.prototype.slice ( <var>start</var>, <var>end</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.some" title="Array.prototype.some ( callback [ , thisArg ] )"><span class="secnum">23.1.3.29</span> Array.prototype.some ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-array.prototype.sort" title="Array.prototype.sort ( comparator )"><span class="secnum">23.1.3.30</span> Array.prototype.sort ( <var>comparator</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-sortindexedproperties" title="SortIndexedProperties ( obj, len, SortCompare, holes )"><span class="secnum">23.1.3.30.1</span> SortIndexedProperties ( <var>obj</var>, <var>len</var>, <var>SortCompare</var>, <var>holes</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-comparearrayelements" title="CompareArrayElements ( x, y, comparator )"><span class="secnum">23.1.3.30.2</span> CompareArrayElements ( <var>x</var>, <var>y</var>, <var>comparator</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.splice" title="Array.prototype.splice ( start, deleteCount, ...items )"><span class="secnum">23.1.3.31</span> Array.prototype.splice ( <var>start</var>, <var>deleteCount</var>, ...<var>items</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.tolocalestring" title="Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">23.1.3.32</span> Array.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.toreversed" title="Array.prototype.toReversed ( )"><span class="secnum">23.1.3.33</span> Array.prototype.toReversed ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.tosorted" title="Array.prototype.toSorted ( comparator )"><span class="secnum">23.1.3.34</span> Array.prototype.toSorted ( <var>comparator</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.tospliced" title="Array.prototype.toSpliced ( start, skipCount, ...items )"><span class="secnum">23.1.3.35</span> Array.prototype.toSpliced ( <var>start</var>, <var>skipCount</var>, ...<var>items</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.tostring" title="Array.prototype.toString ( )"><span class="secnum">23.1.3.36</span> Array.prototype.toString ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.unshift" title="Array.prototype.unshift ( ...items )"><span class="secnum">23.1.3.37</span> Array.prototype.unshift ( ...<var>items</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.values" title="Array.prototype.values ( )"><span class="secnum">23.1.3.38</span> Array.prototype.values ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype.with" title="Array.prototype.with ( index, value )"><span class="secnum">23.1.3.39</span> Array.prototype.with ( <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype-%symbol.iterator%" title="Array.prototype [ %Symbol.iterator% ] ( )"><span class="secnum">23.1.3.40</span> Array.prototype [ %Symbol.iterator% ] ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-array.prototype-%symbol.unscopables%" title="Array.prototype [ %Symbol.unscopables% ]"><span class="secnum">23.1.3.41</span> Array.prototype [ %Symbol.unscopables% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-properties-of-array-instances" title="Properties of Array Instances"><span class="secnum">23.1.4</span> Properties of Array Instances</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-properties-of-array-instances-length" title="length"><span class="secnum">23.1.4.1</span> length</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-array-iterator-objects" title="Array Iterator Objects"><span class="secnum">23.1.5</span> Array Iterator Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-createarrayiterator" title="CreateArrayIterator ( array, kind )"><span class="secnum">23.1.5.1</span> CreateArrayIterator ( <var>array</var>, <var>kind</var> )</a></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-%arrayiteratorprototype%-object" title="The %ArrayIteratorPrototype% Object"><span class="secnum">23.1.5.2</span> The %ArrayIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%arrayiteratorprototype%.next" title="%ArrayIteratorPrototype%.next ( )"><span class="secnum">23.1.5.2.1</span> %ArrayIteratorPrototype%.next ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%arrayiteratorprototype%-%symbol.tostringtag%" title="%ArrayIteratorPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">23.1.5.2.2</span> %ArrayIteratorPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-properties-of-array-iterator-instances" title="Properties of Array Iterator Instances"><span class="secnum">23.1.5.3</span> Properties of Array Iterator Instances</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-typedarray-objects" title="TypedArray Objects"><span class="secnum">23.2</span> TypedArray Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-%typedarray%-intrinsic-object" title="The %TypedArray% Intrinsic Object"><span class="secnum">23.2.1</span> The %TypedArray% Intrinsic Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%" title="%TypedArray% ( )"><span class="secnum">23.2.1.1</span> %TypedArray% ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-properties-of-the-%typedarray%-intrinsic-object" title="Properties of the %TypedArray% Intrinsic Object"><span class="secnum">23.2.2</span> Properties of the %TypedArray% Intrinsic Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.from" title="%TypedArray%.from ( source [ , mapper [ , thisArg ] ] )"><span class="secnum">23.2.2.1</span> %TypedArray%.from ( <var>source</var> [ , <var>mapper</var> [ , <var>thisArg</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.of" title="%TypedArray%.of ( ...items )"><span class="secnum">23.2.2.2</span> %TypedArray%.of ( ...<var>items</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype" title="%TypedArray%.prototype"><span class="secnum">23.2.2.3</span> %TypedArray%.prototype</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-get-%typedarray%-%symbol.species%" title="get %TypedArray% [ %Symbol.species% ]"><span class="secnum">23.2.2.4</span> get %TypedArray% [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-properties-of-the-%typedarrayprototype%-object" title="Properties of the %TypedArray% Prototype Object"><span class="secnum">23.2.3</span> Properties of the %TypedArray% Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.at" title="%TypedArray%.prototype.at ( index )"><span class="secnum">23.2.3.1</span> %TypedArray%.prototype.at ( <var>index</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-get-%typedarray%.prototype.buffer" title="get %TypedArray%.prototype.buffer"><span class="secnum">23.2.3.2</span> get %TypedArray%.prototype.buffer</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-get-%typedarray%.prototype.bytelength" title="get %TypedArray%.prototype.byteLength"><span class="secnum">23.2.3.3</span> get %TypedArray%.prototype.byteLength</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-get-%typedarray%.prototype.byteoffset" title="get %TypedArray%.prototype.byteOffset"><span class="secnum">23.2.3.4</span> get %TypedArray%.prototype.byteOffset</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.constructor" title="%TypedArray%.prototype.constructor"><span class="secnum">23.2.3.5</span> %TypedArray%.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.copywithin" title="%TypedArray%.prototype.copyWithin ( target, start [ , end ] )"><span class="secnum">23.2.3.6</span> %TypedArray%.prototype.copyWithin ( <var>target</var>, <var>start</var> [ , <var>end</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.entries" title="%TypedArray%.prototype.entries ( )"><span class="secnum">23.2.3.7</span> %TypedArray%.prototype.entries ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.every" title="%TypedArray%.prototype.every ( callback [ , thisArg ] )"><span class="secnum">23.2.3.8</span> %TypedArray%.prototype.every ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.fill" title="%TypedArray%.prototype.fill ( value [ , start [ , end ] ] )"><span class="secnum">23.2.3.9</span> %TypedArray%.prototype.fill ( <var>value</var> [ , <var>start</var> [ , <var>end</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.filter" title="%TypedArray%.prototype.filter ( callback [ , thisArg ] )"><span class="secnum">23.2.3.10</span> %TypedArray%.prototype.filter ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.find" title="%TypedArray%.prototype.find ( predicate [ , thisArg ] )"><span class="secnum">23.2.3.11</span> %TypedArray%.prototype.find ( <var>predicate</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.findindex" title="%TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )"><span class="secnum">23.2.3.12</span> %TypedArray%.prototype.findIndex ( <var>predicate</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.findlast" title="%TypedArray%.prototype.findLast ( predicate [ , thisArg ] )"><span class="secnum">23.2.3.13</span> %TypedArray%.prototype.findLast ( <var>predicate</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.findlastindex" title="%TypedArray%.prototype.findLastIndex ( predicate [ , thisArg ] )"><span class="secnum">23.2.3.14</span> %TypedArray%.prototype.findLastIndex ( <var>predicate</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.foreach" title="%TypedArray%.prototype.forEach ( callback [ , thisArg ] )"><span class="secnum">23.2.3.15</span> %TypedArray%.prototype.forEach ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.includes" title="%TypedArray%.prototype.includes ( searchElement [ , fromIndex ] )"><span class="secnum">23.2.3.16</span> %TypedArray%.prototype.includes ( <var>searchElement</var> [ , <var>fromIndex</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.indexof" title="%TypedArray%.prototype.indexOf ( searchElement [ , fromIndex ] )"><span class="secnum">23.2.3.17</span> %TypedArray%.prototype.indexOf ( <var>searchElement</var> [ , <var>fromIndex</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.join" title="%TypedArray%.prototype.join ( separator )"><span class="secnum">23.2.3.18</span> %TypedArray%.prototype.join ( <var>separator</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.keys" title="%TypedArray%.prototype.keys ( )"><span class="secnum">23.2.3.19</span> %TypedArray%.prototype.keys ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.lastindexof" title="%TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )"><span class="secnum">23.2.3.20</span> %TypedArray%.prototype.lastIndexOf ( <var>searchElement</var> [ , <var>fromIndex</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-get-%typedarray%.prototype.length" title="get %TypedArray%.prototype.length"><span class="secnum">23.2.3.21</span> get %TypedArray%.prototype.length</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.map" title="%TypedArray%.prototype.map ( callback [ , thisArg ] )"><span class="secnum">23.2.3.22</span> %TypedArray%.prototype.map ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.reduce" title="%TypedArray%.prototype.reduce ( callback [ , initialValue ] )"><span class="secnum">23.2.3.23</span> %TypedArray%.prototype.reduce ( <var>callback</var> [ , <var>initialValue</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.reduceright" title="%TypedArray%.prototype.reduceRight ( callback [ , initialValue ] )"><span class="secnum">23.2.3.24</span> %TypedArray%.prototype.reduceRight ( <var>callback</var> [ , <var>initialValue</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.reverse" title="%TypedArray%.prototype.reverse ( )"><span class="secnum">23.2.3.25</span> %TypedArray%.prototype.reverse ( )</a></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-%typedarray%.prototype.set" title="%TypedArray%.prototype.set ( source [ , offset ] )"><span class="secnum">23.2.3.26</span> %TypedArray%.prototype.set ( <var>source</var> [ , <var>offset</var> ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-settypedarrayfromarraylike" title="SetTypedArrayFromArrayLike ( target, targetOffset, source )"><span class="secnum">23.2.3.26.1</span> SetTypedArrayFromArrayLike ( <var>target</var>, <var>targetOffset</var>, <var>source</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-settypedarrayfromtypedarray" title="SetTypedArrayFromTypedArray ( target, targetOffset, source )"><span class="secnum">23.2.3.26.2</span> SetTypedArrayFromTypedArray ( <var>target</var>, <var>targetOffset</var>, <var>source</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.slice" title="%TypedArray%.prototype.slice ( start, end )"><span class="secnum">23.2.3.27</span> %TypedArray%.prototype.slice ( <var>start</var>, <var>end</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.some" title="%TypedArray%.prototype.some ( callback [ , thisArg ] )"><span class="secnum">23.2.3.28</span> %TypedArray%.prototype.some ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.sort" title="%TypedArray%.prototype.sort ( comparator )"><span class="secnum">23.2.3.29</span> %TypedArray%.prototype.sort ( <var>comparator</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.subarray" title="%TypedArray%.prototype.subarray ( start, end )"><span class="secnum">23.2.3.30</span> %TypedArray%.prototype.subarray ( <var>start</var>, <var>end</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.tolocalestring" title="%TypedArray%.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )"><span class="secnum">23.2.3.31</span> %TypedArray%.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.toreversed" title="%TypedArray%.prototype.toReversed ( )"><span class="secnum">23.2.3.32</span> %TypedArray%.prototype.toReversed ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.tosorted" title="%TypedArray%.prototype.toSorted ( comparator )"><span class="secnum">23.2.3.33</span> %TypedArray%.prototype.toSorted ( <var>comparator</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.tostring" title="%TypedArray%.prototype.toString ( )"><span class="secnum">23.2.3.34</span> %TypedArray%.prototype.toString ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.values" title="%TypedArray%.prototype.values ( )"><span class="secnum">23.2.3.35</span> %TypedArray%.prototype.values ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype.with" title="%TypedArray%.prototype.with ( index, value )"><span class="secnum">23.2.3.36</span> %TypedArray%.prototype.with ( <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-%typedarray%.prototype-%symbol.iterator%" title="%TypedArray%.prototype [ %Symbol.iterator% ] ( )"><span class="secnum">23.2.3.37</span> %TypedArray%.prototype [ %Symbol.iterator% ] ( )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-get-%typedarray%.prototype-%symbol.tostringtag%" title="get %TypedArray%.prototype [ %Symbol.toStringTag% ]"><span class="secnum">23.2.3.38</span> get %TypedArray%.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-abstract-operations-for-typedarray-objects" title="Abstract Operations for TypedArray Objects"><span class="secnum">23.2.4</span> Abstract Operations for TypedArray Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarraycreatefromconstructor" title="TypedArrayCreateFromConstructor ( constructor, argumentList )"><span class="secnum">23.2.4.1</span> TypedArrayCreateFromConstructor ( <var>constructor</var>, <var>argumentList</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarray-create-same-type" title="TypedArrayCreateSameType ( exemplar, length )"><span class="secnum">23.2.4.2</span> TypedArrayCreateSameType ( <var>exemplar</var>, <var>length</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#typedarray-species-create" title="TypedArraySpeciesCreate ( exemplar, argumentList )"><span class="secnum">23.2.4.3</span> TypedArraySpeciesCreate ( <var>exemplar</var>, <var>argumentList</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-validatetypedarray" title="ValidateTypedArray ( O, order )"><span class="secnum">23.2.4.4</span> ValidateTypedArray ( <var>O</var>, <var>order</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarrayelementsize" title="TypedArrayElementSize ( O )"><span class="secnum">23.2.4.5</span> TypedArrayElementSize ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarrayelementtype" title="TypedArrayElementType ( O )"><span class="secnum">23.2.4.6</span> TypedArrayElementType ( <var>O</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-comparetypedarrayelements" title="CompareTypedArrayElements ( x, y, comparator )"><span class="secnum">23.2.4.7</span> CompareTypedArrayElements ( <var>x</var>, <var>y</var>, <var>comparator</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-typedarray-constructors" title="The TypedArray Constructors"><span class="secnum">23.2.5</span> The <var>TypedArray</var> Constructors</a><ol class="toc"><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-typedarray" title="TypedArray ( ...args )"><span class="secnum">23.2.5.1</span> <var>TypedArray</var> ( ...<var>args</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-allocatetypedarray" title="AllocateTypedArray ( constructorName, newTarget, defaultProto [ , length ] )"><span class="secnum">23.2.5.1.1</span> AllocateTypedArray ( <var>constructorName</var>, <var>newTarget</var>, <var>defaultProto</var> [ , <var>length</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-initializetypedarrayfromtypedarray" title="InitializeTypedArrayFromTypedArray ( O, srcArray )"><span class="secnum">23.2.5.1.2</span> InitializeTypedArrayFromTypedArray ( <var>O</var>, <var>srcArray</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-initializetypedarrayfromarraybuffer" title="InitializeTypedArrayFromArrayBuffer ( O, buffer, byteOffset, length )"><span class="secnum">23.2.5.1.3</span> InitializeTypedArrayFromArrayBuffer ( <var>O</var>, <var>buffer</var>, <var>byteOffset</var>, <var>length</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-initializetypedarrayfromlist" title="InitializeTypedArrayFromList ( O, values )"><span class="secnum">23.2.5.1.4</span> InitializeTypedArrayFromList ( <var>O</var>, <var>values</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-initializetypedarrayfromarraylike" title="InitializeTypedArrayFromArrayLike ( O, arrayLike )"><span class="secnum">23.2.5.1.5</span> InitializeTypedArrayFromArrayLike ( <var>O</var>, <var>arrayLike</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-allocatetypedarraybuffer" title="AllocateTypedArrayBuffer ( O, length )"><span class="secnum">23.2.5.1.6</span> AllocateTypedArrayBuffer ( <var>O</var>, <var>length</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-properties-of-the-typedarray-constructors" title="Properties of the TypedArray Constructors"><span class="secnum">23.2.6</span> Properties of the <var>TypedArray</var> Constructors</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarray.bytes_per_element" title="TypedArray.BYTES_PER_ELEMENT"><span class="secnum">23.2.6.1</span> <var>TypedArray</var>.BYTES_PER_ELEMENT</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarray.prototype" title="TypedArray.prototype"><span class="secnum">23.2.6.2</span> <var>TypedArray</var>.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-properties-of-typedarray-prototype-objects" title="Properties of the TypedArray Prototype Objects"><span class="secnum">23.2.7</span> Properties of the <var>TypedArray</var> Prototype Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarray.prototype.bytes_per_element" title="TypedArray.prototype.BYTES_PER_ELEMENT"><span class="secnum">23.2.7.1</span> <var>TypedArray</var>.prototype.BYTES_PER_ELEMENT</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-typedarray.prototype.constructor" title="TypedArray.prototype.constructor"><span class="secnum">23.2.7.2</span> <var>TypedArray</var>.prototype.constructor</a></li></ol></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-properties-of-typedarray-instances" title="Properties of TypedArray Instances"><span class="secnum">23.2.8</span> Properties of <var>TypedArray</var> Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-uint8array" title="Uint8Array Objects"><span class="secnum">23.3</span> Uint8Array Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-additional-properties-of-the-uint8array-constructor" title="Additional Properties of the Uint8Array Constructor"><span class="secnum">23.3.1</span> Additional Properties of the Uint8Array Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-uint8array.frombase64" title="Uint8Array.fromBase64 ( string [ , options ] )"><span class="secnum">23.3.1.1</span> Uint8Array.fromBase64 ( <var>string</var> [ , <var>options</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-uint8array.fromhex" title="Uint8Array.fromHex ( string )"><span class="secnum">23.3.1.2</span> Uint8Array.fromHex ( <var>string</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-additional-properties-of-the-uint8array-prototype-object" title="Additional Properties of the Uint8Array Prototype Object"><span class="secnum">23.3.2</span> Additional Properties of the Uint8Array Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-uint8array.prototype.setfrombase64" title="Uint8Array.prototype.setFromBase64 ( string [ , options ] )"><span class="secnum">23.3.2.1</span> Uint8Array.prototype.setFromBase64 ( <var>string</var> [ , <var>options</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-uint8array.prototype.setfromhex" title="Uint8Array.prototype.setFromHex ( string )"><span class="secnum">23.3.2.2</span> Uint8Array.prototype.setFromHex ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-uint8array.prototype.tobase64" title="Uint8Array.prototype.toBase64 ( [ options ] )"><span class="secnum">23.3.2.3</span> Uint8Array.prototype.toBase64 ( [ <var>options</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-uint8array.prototype.tohex" title="Uint8Array.prototype.toHex ( )"><span class="secnum">23.3.2.4</span> Uint8Array.prototype.toHex ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="indexed-collections.html#sec-abstract-operations-for-uint8array-objects" title="Abstract Operations for Uint8Array Objects"><span class="secnum">23.3.3</span> Abstract Operations for Uint8Array Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-validateuint8array" title="ValidateUint8Array ( ta )"><span class="secnum">23.3.3.1</span> ValidateUint8Array ( <var>ta</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-getuint8arraybytes" title="GetUint8ArrayBytes ( ta )"><span class="secnum">23.3.3.2</span> GetUint8ArrayBytes ( <var>ta</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-setuint8arraybytes" title="SetUint8ArrayBytes ( into, bytes )"><span class="secnum">23.3.3.3</span> SetUint8ArrayBytes ( <var>into</var>, <var>bytes</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-skipasciiwhitespace" title="SkipAsciiWhitespace ( string, index )"><span class="secnum">23.3.3.4</span> SkipAsciiWhitespace ( <var>string</var>, <var>index</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-decodefinalbase64chunk" title="DecodeFinalBase64Chunk ( chunk, throwOnExtraBits )"><span class="secnum">23.3.3.5</span> DecodeFinalBase64Chunk ( <var>chunk</var>, <var>throwOnExtraBits</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-decodefulllengthbase64chunk" title="DecodeFullLengthBase64Chunk ( chunk )"><span class="secnum">23.3.3.6</span> DecodeFullLengthBase64Chunk ( <var>chunk</var> )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-frombase64" title="FromBase64 ( string, alphabet, lastChunkHandling [ , maxLength ] )"><span class="secnum">23.3.3.7</span> FromBase64 ( <var>string</var>, <var>alphabet</var>, <var>lastChunkHandling</var> [ , <var>maxLength</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="indexed-collections.html#sec-fromhex" title="FromHex ( string [ , maxLength ] )"><span class="secnum">23.3.3.8</span> FromHex ( <var>string</var> [ , <var>maxLength</var> ] )</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-keyed-collections" title="Keyed Collections"><span class="secnum">24</span> Keyed Collections</a><ol class="toc"><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-map-objects" title="Map Objects"><span class="secnum">24.1</span> Map Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-map-constructor" title="The Map Constructor"><span class="secnum">24.1.1</span> The Map Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map-iterable" title="Map ( [ iterable ] )"><span class="secnum">24.1.1.1</span> Map ( [ <var>iterable</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-add-entries-from-iterable" title="AddEntriesFromIterable ( target, iterable, adder )"><span class="secnum">24.1.1.2</span> AddEntriesFromIterable ( <var>target</var>, <var>iterable</var>, <var>adder</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-map-constructor" title="Properties of the Map Constructor"><span class="secnum">24.1.2</span> Properties of the Map Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.groupby" title="Map.groupBy ( items, callback )"><span class="secnum">24.1.2.1</span> Map.groupBy ( <var>items</var>, <var>callback</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype" title="Map.prototype"><span class="secnum">24.1.2.2</span> Map.prototype</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-get-map-%symbol.species%" title="get Map [ %Symbol.species% ]"><span class="secnum">24.1.2.3</span> get Map [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-map-prototype-object" title="Properties of the Map Prototype Object"><span class="secnum">24.1.3</span> Properties of the Map Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.clear" title="Map.prototype.clear ( )"><span class="secnum">24.1.3.1</span> Map.prototype.clear ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.constructor" title="Map.prototype.constructor"><span class="secnum">24.1.3.2</span> Map.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.delete" title="Map.prototype.delete ( key )"><span class="secnum">24.1.3.3</span> Map.prototype.delete ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.entries" title="Map.prototype.entries ( )"><span class="secnum">24.1.3.4</span> Map.prototype.entries ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.foreach" title="Map.prototype.forEach ( callback [ , thisArg ] )"><span class="secnum">24.1.3.5</span> Map.prototype.forEach ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.get" title="Map.prototype.get ( key )"><span class="secnum">24.1.3.6</span> Map.prototype.get ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.getorinsert" title="Map.prototype.getOrInsert ( key, value )"><span class="secnum">24.1.3.7</span> Map.prototype.getOrInsert ( <var>key</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.getorinsertcomputed" title="Map.prototype.getOrInsertComputed ( key, callback )"><span class="secnum">24.1.3.8</span> Map.prototype.getOrInsertComputed ( <var>key</var>, <var>callback</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.has" title="Map.prototype.has ( key )"><span class="secnum">24.1.3.9</span> Map.prototype.has ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.keys" title="Map.prototype.keys ( )"><span class="secnum">24.1.3.10</span> Map.prototype.keys ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.set" title="Map.prototype.set ( key, value )"><span class="secnum">24.1.3.11</span> Map.prototype.set ( <var>key</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-get-map.prototype.size" title="get Map.prototype.size"><span class="secnum">24.1.3.12</span> get Map.prototype.size</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype.values" title="Map.prototype.values ( )"><span class="secnum">24.1.3.13</span> Map.prototype.values ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype-%symbol.iterator%" title="Map.prototype [ %Symbol.iterator% ] ( )"><span class="secnum">24.1.3.14</span> Map.prototype [ %Symbol.iterator% ] ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-map.prototype-%symbol.tostringtag%" title="Map.prototype [ %Symbol.toStringTag% ]"><span class="secnum">24.1.3.15</span> Map.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-properties-of-map-instances" title="Properties of Map Instances"><span class="secnum">24.1.4</span> Properties of Map Instances</a></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-map-iterator-objects" title="Map Iterator Objects"><span class="secnum">24.1.5</span> Map Iterator Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-createmapiterator" title="CreateMapIterator ( map, kind )"><span class="secnum">24.1.5.1</span> CreateMapIterator ( <var>map</var>, <var>kind</var> )</a></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-%mapiteratorprototype%-object" title="The %MapIteratorPrototype% Object"><span class="secnum">24.1.5.2</span> The %MapIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-%mapiteratorprototype%.next" title="%MapIteratorPrototype%.next ( )"><span class="secnum">24.1.5.2.1</span> %MapIteratorPrototype%.next ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-%mapiteratorprototype%-%symbol.tostringtag%" title="%MapIteratorPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">24.1.5.2.2</span> %MapIteratorPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-set-objects" title="Set Objects"><span class="secnum">24.2</span> Set Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-abstract-operations-for-set-objects" title="Abstract Operations For Set Objects"><span class="secnum">24.2.1</span> Abstract Operations For Set Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set-records" title="Set Records"><span class="secnum">24.2.1.1</span> Set Records</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-getsetrecord" title="GetSetRecord ( obj )"><span class="secnum">24.2.1.2</span> GetSetRecord ( <var>obj</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-setdatahas" title="SetDataHas ( setData, value )"><span class="secnum">24.2.1.3</span> SetDataHas ( <var>setData</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-setdataindex" title="SetDataIndex ( setData, value )"><span class="secnum">24.2.1.4</span> SetDataIndex ( <var>setData</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-setdatasize" title="SetDataSize ( setData )"><span class="secnum">24.2.1.5</span> SetDataSize ( <var>setData</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-set-constructor" title="The Set Constructor"><span class="secnum">24.2.2</span> The Set Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set-iterable" title="Set ( [ iterable ] )"><span class="secnum">24.2.2.1</span> Set ( [ <var>iterable</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-set-constructor" title="Properties of the Set Constructor"><span class="secnum">24.2.3</span> Properties of the Set Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype" title="Set.prototype"><span class="secnum">24.2.3.1</span> Set.prototype</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-get-set-%symbol.species%" title="get Set [ %Symbol.species% ]"><span class="secnum">24.2.3.2</span> get Set [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-set-prototype-object" title="Properties of the Set Prototype Object"><span class="secnum">24.2.4</span> Properties of the Set Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.add" title="Set.prototype.add ( value )"><span class="secnum">24.2.4.1</span> Set.prototype.add ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.clear" title="Set.prototype.clear ( )"><span class="secnum">24.2.4.2</span> Set.prototype.clear ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.constructor" title="Set.prototype.constructor"><span class="secnum">24.2.4.3</span> Set.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.delete" title="Set.prototype.delete ( value )"><span class="secnum">24.2.4.4</span> Set.prototype.delete ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.difference" title="Set.prototype.difference ( other )"><span class="secnum">24.2.4.5</span> Set.prototype.difference ( <var>other</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.entries" title="Set.prototype.entries ( )"><span class="secnum">24.2.4.6</span> Set.prototype.entries ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.foreach" title="Set.prototype.forEach ( callback [ , thisArg ] )"><span class="secnum">24.2.4.7</span> Set.prototype.forEach ( <var>callback</var> [ , <var>thisArg</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.has" title="Set.prototype.has ( value )"><span class="secnum">24.2.4.8</span> Set.prototype.has ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.intersection" title="Set.prototype.intersection ( other )"><span class="secnum">24.2.4.9</span> Set.prototype.intersection ( <var>other</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.isdisjointfrom" title="Set.prototype.isDisjointFrom ( other )"><span class="secnum">24.2.4.10</span> Set.prototype.isDisjointFrom ( <var>other</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.issubsetof" title="Set.prototype.isSubsetOf ( other )"><span class="secnum">24.2.4.11</span> Set.prototype.isSubsetOf ( <var>other</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.issupersetof" title="Set.prototype.isSupersetOf ( other )"><span class="secnum">24.2.4.12</span> Set.prototype.isSupersetOf ( <var>other</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.keys" title="Set.prototype.keys ( )"><span class="secnum">24.2.4.13</span> Set.prototype.keys ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-get-set.prototype.size" title="get Set.prototype.size"><span class="secnum">24.2.4.14</span> get Set.prototype.size</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.symmetricdifference" title="Set.prototype.symmetricDifference ( other )"><span class="secnum">24.2.4.15</span> Set.prototype.symmetricDifference ( <var>other</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.union" title="Set.prototype.union ( other )"><span class="secnum">24.2.4.16</span> Set.prototype.union ( <var>other</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype.values" title="Set.prototype.values ( )"><span class="secnum">24.2.4.17</span> Set.prototype.values ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype-%symbol.iterator%" title="Set.prototype [ %Symbol.iterator% ] ( )"><span class="secnum">24.2.4.18</span> Set.prototype [ %Symbol.iterator% ] ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-set.prototype-%symbol.tostringtag%" title="Set.prototype [ %Symbol.toStringTag% ]"><span class="secnum">24.2.4.19</span> Set.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-properties-of-set-instances" title="Properties of Set Instances"><span class="secnum">24.2.5</span> Properties of Set Instances</a></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-set-iterator-objects" title="Set Iterator Objects"><span class="secnum">24.2.6</span> Set Iterator Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-createsetiterator" title="CreateSetIterator ( set, kind )"><span class="secnum">24.2.6.1</span> CreateSetIterator ( <var>set</var>, <var>kind</var> )</a></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-%setiteratorprototype%-object" title="The %SetIteratorPrototype% Object"><span class="secnum">24.2.6.2</span> The %SetIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-%setiteratorprototype%.next" title="%SetIteratorPrototype%.next ( )"><span class="secnum">24.2.6.2.1</span> %SetIteratorPrototype%.next ( )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-%setiteratorprototype%-%symbol.tostringtag%" title="%SetIteratorPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">24.2.6.2.2</span> %SetIteratorPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-weakmap-objects" title="WeakMap Objects"><span class="secnum">24.3</span> WeakMap Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-weakmap-constructor" title="The WeakMap Constructor"><span class="secnum">24.3.1</span> The WeakMap Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap-iterable" title="WeakMap ( [ iterable ] )"><span class="secnum">24.3.1.1</span> WeakMap ( [ <var>iterable</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-weakmap-constructor" title="Properties of the WeakMap Constructor"><span class="secnum">24.3.2</span> Properties of the WeakMap Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype" title="WeakMap.prototype"><span class="secnum">24.3.2.1</span> WeakMap.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-weakmap-prototype-object" title="Properties of the WeakMap Prototype Object"><span class="secnum">24.3.3</span> Properties of the WeakMap Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype.constructor" title="WeakMap.prototype.constructor"><span class="secnum">24.3.3.1</span> WeakMap.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype.delete" title="WeakMap.prototype.delete ( key )"><span class="secnum">24.3.3.2</span> WeakMap.prototype.delete ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype.get" title="WeakMap.prototype.get ( key )"><span class="secnum">24.3.3.3</span> WeakMap.prototype.get ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype.getorinsert" title="WeakMap.prototype.getOrInsert ( key, value )"><span class="secnum">24.3.3.4</span> WeakMap.prototype.getOrInsert ( <var>key</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype.getorinsertcomputed" title="WeakMap.prototype.getOrInsertComputed ( key, callback )"><span class="secnum">24.3.3.5</span> WeakMap.prototype.getOrInsertComputed ( <var>key</var>, <var>callback</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype.has" title="WeakMap.prototype.has ( key )"><span class="secnum">24.3.3.6</span> WeakMap.prototype.has ( <var>key</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype.set" title="WeakMap.prototype.set ( key, value )"><span class="secnum">24.3.3.7</span> WeakMap.prototype.set ( <var>key</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakmap.prototype-%symbol.tostringtag%" title="WeakMap.prototype [ %Symbol.toStringTag% ]"><span class="secnum">24.3.3.8</span> WeakMap.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-properties-of-weakmap-instances" title="Properties of WeakMap Instances"><span class="secnum">24.3.4</span> Properties of WeakMap Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-weakset-objects" title="WeakSet Objects"><span class="secnum">24.4</span> WeakSet Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-weakset-constructor" title="The WeakSet Constructor"><span class="secnum">24.4.1</span> The WeakSet Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakset-iterable" title="WeakSet ( [ iterable ] )"><span class="secnum">24.4.1.1</span> WeakSet ( [ <var>iterable</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-weakset-constructor" title="Properties of the WeakSet Constructor"><span class="secnum">24.4.2</span> Properties of the WeakSet Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakset.prototype" title="WeakSet.prototype"><span class="secnum">24.4.2.1</span> WeakSet.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-properties-of-the-weakset-prototype-object" title="Properties of the WeakSet Prototype Object"><span class="secnum">24.4.3</span> Properties of the WeakSet Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakset.prototype.add" title="WeakSet.prototype.add ( value )"><span class="secnum">24.4.3.1</span> WeakSet.prototype.add ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakset.prototype.constructor" title="WeakSet.prototype.constructor"><span class="secnum">24.4.3.2</span> WeakSet.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakset.prototype.delete" title="WeakSet.prototype.delete ( value )"><span class="secnum">24.4.3.3</span> WeakSet.prototype.delete ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakset.prototype.has" title="WeakSet.prototype.has ( value )"><span class="secnum">24.4.3.4</span> WeakSet.prototype.has ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-weakset.prototype-%symbol.tostringtag%" title="WeakSet.prototype [ %Symbol.toStringTag% ]"><span class="secnum">24.4.3.5</span> WeakSet.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-properties-of-weakset-instances" title="Properties of WeakSet Instances"><span class="secnum">24.4.4</span> Properties of WeakSet Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="keyed-collections.html#sec-abstract-operations-for-keyed-collections" title="Abstract Operations for Keyed Collections"><span class="secnum">24.5</span> Abstract Operations for Keyed Collections</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="keyed-collections.html#sec-canonicalizekeyedcollectionkey" title="CanonicalizeKeyedCollectionKey ( key )"><span class="secnum">24.5.1</span> CanonicalizeKeyedCollectionKey ( <var>key</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-structured-data" title="Structured Data"><span class="secnum">25</span> Structured Data</a><ol class="toc"><li><span class="item-toggle">+</span><a href="structured-data.html#sec-arraybuffer-objects" title="ArrayBuffer Objects"><span class="secnum">25.1</span> ArrayBuffer Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer-notation" title="Notation"><span class="secnum">25.1.1</span> Notation</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-fixed-length-and-resizable-arraybuffer-objects" title="Fixed-length and Resizable ArrayBuffer Objects"><span class="secnum">25.1.2</span> Fixed-length and Resizable ArrayBuffer Objects</a></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-abstract-operations-for-arraybuffer-objects" title="Abstract Operations For ArrayBuffer Objects"><span class="secnum">25.1.3</span> Abstract Operations For ArrayBuffer Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-allocatearraybuffer" title="AllocateArrayBuffer ( constructor, byteLength [ , maxByteLength ] )"><span class="secnum">25.1.3.1</span> AllocateArrayBuffer ( <var>constructor</var>, <var>byteLength</var> [ , <var>maxByteLength</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybufferbytelength" title="ArrayBufferByteLength ( arrayBuffer, order )"><span class="secnum">25.1.3.2</span> ArrayBufferByteLength ( <var>arrayBuffer</var>, <var>order</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffercopyanddetach" title="ArrayBufferCopyAndDetach ( arrayBuffer, newLength, preserveResizability )"><span class="secnum">25.1.3.3</span> ArrayBufferCopyAndDetach ( <var>arrayBuffer</var>, <var>newLength</var>, <var>preserveResizability</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isdetachedbuffer" title="IsDetachedBuffer ( arrayBuffer )"><span class="secnum">25.1.3.4</span> IsDetachedBuffer ( <var>arrayBuffer</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-detacharraybuffer" title="DetachArrayBuffer ( arrayBuffer [ , key ] )"><span class="secnum">25.1.3.5</span> DetachArrayBuffer ( <var>arrayBuffer</var> [ , <var>key</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-clonearraybuffer" title="CloneArrayBuffer ( srcBuffer, srcByteOffset, srcLength )"><span class="secnum">25.1.3.6</span> CloneArrayBuffer ( <var>srcBuffer</var>, <var>srcByteOffset</var>, <var>srcLength</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-getarraybuffermaxbytelengthoption" title="GetArrayBufferMaxByteLengthOption ( options )"><span class="secnum">25.1.3.7</span> GetArrayBufferMaxByteLengthOption ( <var>options</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-hostresizearraybuffer" title="HostResizeArrayBuffer ( buffer, newByteLength )"><span class="secnum">25.1.3.8</span> HostResizeArrayBuffer ( <var>buffer</var>, <var>newByteLength</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isfixedlengtharraybuffer" title="IsFixedLengthArrayBuffer ( arrayBuffer )"><span class="secnum">25.1.3.9</span> IsFixedLengthArrayBuffer ( <var>arrayBuffer</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isunsignedelementtype" title="IsUnsignedElementType ( type )"><span class="secnum">25.1.3.10</span> IsUnsignedElementType ( <var>type</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isunclampedintegerelementtype" title="IsUnclampedIntegerElementType ( type )"><span class="secnum">25.1.3.11</span> IsUnclampedIntegerElementType ( <var>type</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isbigintelementtype" title="IsBigIntElementType ( type )"><span class="secnum">25.1.3.12</span> IsBigIntElementType ( <var>type</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isnotearconfiguration" title="IsNoTearConfiguration ( type, order )"><span class="secnum">25.1.3.13</span> IsNoTearConfiguration ( <var>type</var>, <var>order</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-rawbytestonumeric" title="RawBytesToNumeric ( type, rawBytes, isLittleEndian )"><span class="secnum">25.1.3.14</span> RawBytesToNumeric ( <var>type</var>, <var>rawBytes</var>, <var>isLittleEndian</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-getrawbytesfromsharedblock" title="GetRawBytesFromSharedBlock ( block, byteIndex, type, isTypedArray, order )"><span class="secnum">25.1.3.15</span> GetRawBytesFromSharedBlock ( <var>block</var>, <var>byteIndex</var>, <var>type</var>, <var>isTypedArray</var>, <var>order</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-getvaluefrombuffer" title="GetValueFromBuffer ( arrayBuffer, byteIndex, type, isTypedArray, order [ , isLittleEndian ] )"><span class="secnum">25.1.3.16</span> GetValueFromBuffer ( <var>arrayBuffer</var>, <var>byteIndex</var>, <var>type</var>, <var>isTypedArray</var>, <var>order</var> [ , <var>isLittleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-numerictorawbytes" title="NumericToRawBytes ( type, value, isLittleEndian )"><span class="secnum">25.1.3.17</span> NumericToRawBytes ( <var>type</var>, <var>value</var>, <var>isLittleEndian</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-setvalueinbuffer" title="SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isTypedArray, order [ , isLittleEndian ] )"><span class="secnum">25.1.3.18</span> SetValueInBuffer ( <var>arrayBuffer</var>, <var>byteIndex</var>, <var>type</var>, <var>value</var>, <var>isTypedArray</var>, <var>order</var> [ , <var>isLittleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-getmodifysetvalueinbuffer" title="GetModifySetValueInBuffer ( arrayBuffer, byteIndex, type, value, op )"><span class="secnum">25.1.3.19</span> GetModifySetValueInBuffer ( <var>arrayBuffer</var>, <var>byteIndex</var>, <var>type</var>, <var>value</var>, <var>op</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-arraybuffer-constructor" title="The ArrayBuffer Constructor"><span class="secnum">25.1.4</span> The ArrayBuffer Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer-length" title="ArrayBuffer ( length [ , options ] )"><span class="secnum">25.1.4.1</span> ArrayBuffer ( <var>length</var> [ , <var>options</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-properties-of-the-arraybuffer-constructor" title="Properties of the ArrayBuffer Constructor"><span class="secnum">25.1.5</span> Properties of the ArrayBuffer Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.isview" title="ArrayBuffer.isView ( arg )"><span class="secnum">25.1.5.1</span> ArrayBuffer.isView ( <var>arg</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.prototype" title="ArrayBuffer.prototype"><span class="secnum">25.1.5.2</span> ArrayBuffer.prototype</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-arraybuffer-%symbol.species%" title="get ArrayBuffer [ %Symbol.species% ]"><span class="secnum">25.1.5.3</span> get ArrayBuffer [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-properties-of-the-arraybuffer-prototype-object" title="Properties of the ArrayBuffer Prototype Object"><span class="secnum">25.1.6</span> Properties of the ArrayBuffer Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-arraybuffer.prototype.bytelength" title="get ArrayBuffer.prototype.byteLength"><span class="secnum">25.1.6.1</span> get ArrayBuffer.prototype.byteLength</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.prototype.constructor" title="ArrayBuffer.prototype.constructor"><span class="secnum">25.1.6.2</span> ArrayBuffer.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-arraybuffer.prototype.detached" title="get ArrayBuffer.prototype.detached"><span class="secnum">25.1.6.3</span> get ArrayBuffer.prototype.detached</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-arraybuffer.prototype.maxbytelength" title="get ArrayBuffer.prototype.maxByteLength"><span class="secnum">25.1.6.4</span> get ArrayBuffer.prototype.maxByteLength</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-arraybuffer.prototype.resizable" title="get ArrayBuffer.prototype.resizable"><span class="secnum">25.1.6.5</span> get ArrayBuffer.prototype.resizable</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.prototype.resize" title="ArrayBuffer.prototype.resize ( newLength )"><span class="secnum">25.1.6.6</span> ArrayBuffer.prototype.resize ( <var>newLength</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.prototype.slice" title="ArrayBuffer.prototype.slice ( start, end )"><span class="secnum">25.1.6.7</span> ArrayBuffer.prototype.slice ( <var>start</var>, <var>end</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.prototype.transfer" title="ArrayBuffer.prototype.transfer ( [ newLength ] )"><span class="secnum">25.1.6.8</span> ArrayBuffer.prototype.transfer ( [ <var>newLength</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.prototype.transfertofixedlength" title="ArrayBuffer.prototype.transferToFixedLength ( [ newLength ] )"><span class="secnum">25.1.6.9</span> ArrayBuffer.prototype.transferToFixedLength ( [ <var>newLength</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-arraybuffer.prototype-%symbol.tostringtag%" title="ArrayBuffer.prototype [ %Symbol.toStringTag% ]"><span class="secnum">25.1.6.10</span> ArrayBuffer.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-properties-of-the-arraybuffer-instances" title="Properties of ArrayBuffer Instances"><span class="secnum">25.1.7</span> Properties of ArrayBuffer Instances</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-resizable-arraybuffer-guidelines" title="Resizable ArrayBuffer Guidelines"><span class="secnum">25.1.8</span> Resizable ArrayBuffer Guidelines</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-sharedarraybuffer-objects" title="SharedArrayBuffer Objects"><span class="secnum">25.2</span> SharedArrayBuffer Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-fixed-length-and-growable-sharedarraybuffer-objects" title="Fixed-length and Growable SharedArrayBuffer Objects"><span class="secnum">25.2.1</span> Fixed-length and Growable SharedArrayBuffer Objects</a></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-abstract-operations-for-sharedarraybuffer-objects" title="Abstract Operations for SharedArrayBuffer Objects"><span class="secnum">25.2.2</span> Abstract Operations for SharedArrayBuffer Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-allocatesharedarraybuffer" title="AllocateSharedArrayBuffer ( constructor, byteLength [ , maxByteLength ] )"><span class="secnum">25.2.2.1</span> AllocateSharedArrayBuffer ( <var>constructor</var>, <var>byteLength</var> [ , <var>maxByteLength</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-issharedarraybuffer" title="IsSharedArrayBuffer ( obj )"><span class="secnum">25.2.2.2</span> IsSharedArrayBuffer ( <var>obj</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isgrowablesharedarraybuffer" title="IsGrowableSharedArrayBuffer ( obj )"><span class="secnum">25.2.2.3</span> IsGrowableSharedArrayBuffer ( <var>obj</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-hostgrowsharedarraybuffer" title="HostGrowSharedArrayBuffer ( buffer, newByteLength )"><span class="secnum">25.2.2.4</span> HostGrowSharedArrayBuffer ( <var>buffer</var>, <var>newByteLength</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-sharedarraybuffer-constructor" title="The SharedArrayBuffer Constructor"><span class="secnum">25.2.3</span> The SharedArrayBuffer Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-sharedarraybuffer-length" title="SharedArrayBuffer ( length [ , options ] )"><span class="secnum">25.2.3.1</span> SharedArrayBuffer ( <var>length</var> [ , <var>options</var> ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-properties-of-the-sharedarraybuffer-constructor" title="Properties of the SharedArrayBuffer Constructor"><span class="secnum">25.2.4</span> Properties of the SharedArrayBuffer Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-sharedarraybuffer.prototype" title="SharedArrayBuffer.prototype"><span class="secnum">25.2.4.1</span> SharedArrayBuffer.prototype</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-sharedarraybuffer-%symbol.species%" title="get SharedArrayBuffer [ %Symbol.species% ]"><span class="secnum">25.2.4.2</span> get SharedArrayBuffer [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-properties-of-the-sharedarraybuffer-prototype-object" title="Properties of the SharedArrayBuffer Prototype Object"><span class="secnum">25.2.5</span> Properties of the SharedArrayBuffer Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-sharedarraybuffer.prototype.bytelength" title="get SharedArrayBuffer.prototype.byteLength"><span class="secnum">25.2.5.1</span> get SharedArrayBuffer.prototype.byteLength</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-sharedarraybuffer.prototype.constructor" title="SharedArrayBuffer.prototype.constructor"><span class="secnum">25.2.5.2</span> SharedArrayBuffer.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-sharedarraybuffer.prototype.grow" title="SharedArrayBuffer.prototype.grow ( newLength )"><span class="secnum">25.2.5.3</span> SharedArrayBuffer.prototype.grow ( <var>newLength</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-sharedarraybuffer.prototype.growable" title="get SharedArrayBuffer.prototype.growable"><span class="secnum">25.2.5.4</span> get SharedArrayBuffer.prototype.growable</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-sharedarraybuffer.prototype.maxbytelength" title="get SharedArrayBuffer.prototype.maxByteLength"><span class="secnum">25.2.5.5</span> get SharedArrayBuffer.prototype.maxByteLength</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-sharedarraybuffer.prototype.slice" title="SharedArrayBuffer.prototype.slice ( start, end )"><span class="secnum">25.2.5.6</span> SharedArrayBuffer.prototype.slice ( <var>start</var>, <var>end</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-sharedarraybuffer.prototype-%symbol.tostringtag%" title="SharedArrayBuffer.prototype [ %Symbol.toStringTag% ]"><span class="secnum">25.2.5.7</span> SharedArrayBuffer.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-properties-of-the-sharedarraybuffer-instances" title="Properties of SharedArrayBuffer Instances"><span class="secnum">25.2.6</span> Properties of SharedArrayBuffer Instances</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-growable-sharedarraybuffer-guidelines" title="Growable SharedArrayBuffer Guidelines"><span class="secnum">25.2.7</span> Growable SharedArrayBuffer Guidelines</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-dataview-objects" title="DataView Objects"><span class="secnum">25.3</span> DataView Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="structured-data.html#sec-abstract-operations-for-dataview-objects" title="Abstract Operations For DataView Objects"><span class="secnum">25.3.1</span> Abstract Operations For DataView Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview-with-buffer-witness-records" title="DataView With Buffer Witness Records"><span class="secnum">25.3.1.1</span> DataView With Buffer Witness Records</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-makedataviewwithbufferwitnessrecord" title="MakeDataViewWithBufferWitnessRecord ( obj, order )"><span class="secnum">25.3.1.2</span> MakeDataViewWithBufferWitnessRecord ( <var>obj</var>, <var>order</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-getviewbytelength" title="GetViewByteLength ( viewRecord )"><span class="secnum">25.3.1.3</span> GetViewByteLength ( <var>viewRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-isviewoutofbounds" title="IsViewOutOfBounds ( viewRecord )"><span class="secnum">25.3.1.4</span> IsViewOutOfBounds ( <var>viewRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-getviewvalue" title="GetViewValue ( view, requestIndex, isLittleEndian, type )"><span class="secnum">25.3.1.5</span> GetViewValue ( <var>view</var>, <var>requestIndex</var>, <var>isLittleEndian</var>, <var>type</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-setviewvalue" title="SetViewValue ( view, requestIndex, isLittleEndian, type, value )"><span class="secnum">25.3.1.6</span> SetViewValue ( <var>view</var>, <var>requestIndex</var>, <var>isLittleEndian</var>, <var>type</var>, <var>value</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-dataview-constructor" title="The DataView Constructor"><span class="secnum">25.3.2</span> The DataView Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview-buffer-byteoffset-bytelength" title="DataView ( buffer [ , byteOffset [ , byteLength ] ] )"><span class="secnum">25.3.2.1</span> DataView ( <var>buffer</var> [ , <var>byteOffset</var> [ , <var>byteLength</var> ] ] )</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-properties-of-the-dataview-constructor" title="Properties of the DataView Constructor"><span class="secnum">25.3.3</span> Properties of the DataView Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype" title="DataView.prototype"><span class="secnum">25.3.3.1</span> DataView.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-properties-of-the-dataview-prototype-object" title="Properties of the DataView Prototype Object"><span class="secnum">25.3.4</span> Properties of the DataView Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-dataview.prototype.buffer" title="get DataView.prototype.buffer"><span class="secnum">25.3.4.1</span> get DataView.prototype.buffer</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-dataview.prototype.bytelength" title="get DataView.prototype.byteLength"><span class="secnum">25.3.4.2</span> get DataView.prototype.byteLength</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-get-dataview.prototype.byteoffset" title="get DataView.prototype.byteOffset"><span class="secnum">25.3.4.3</span> get DataView.prototype.byteOffset</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.constructor" title="DataView.prototype.constructor"><span class="secnum">25.3.4.4</span> DataView.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getbigint64" title="DataView.prototype.getBigInt64 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.5</span> DataView.prototype.getBigInt64 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getbiguint64" title="DataView.prototype.getBigUint64 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.6</span> DataView.prototype.getBigUint64 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getfloat16" title="DataView.prototype.getFloat16 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.7</span> DataView.prototype.getFloat16 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getfloat32" title="DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.8</span> DataView.prototype.getFloat32 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getfloat64" title="DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.9</span> DataView.prototype.getFloat64 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getint8" title="DataView.prototype.getInt8 ( byteOffset )"><span class="secnum">25.3.4.10</span> DataView.prototype.getInt8 ( <var>byteOffset</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getint16" title="DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.11</span> DataView.prototype.getInt16 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getint32" title="DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.12</span> DataView.prototype.getInt32 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getuint8" title="DataView.prototype.getUint8 ( byteOffset )"><span class="secnum">25.3.4.13</span> DataView.prototype.getUint8 ( <var>byteOffset</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getuint16" title="DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.14</span> DataView.prototype.getUint16 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.getuint32" title="DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )"><span class="secnum">25.3.4.15</span> DataView.prototype.getUint32 ( <var>byteOffset</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setbigint64" title="DataView.prototype.setBigInt64 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.16</span> DataView.prototype.setBigInt64 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setbiguint64" title="DataView.prototype.setBigUint64 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.17</span> DataView.prototype.setBigUint64 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setfloat16" title="DataView.prototype.setFloat16 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.18</span> DataView.prototype.setFloat16 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setfloat32" title="DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.19</span> DataView.prototype.setFloat32 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setfloat64" title="DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.20</span> DataView.prototype.setFloat64 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setint8" title="DataView.prototype.setInt8 ( byteOffset, value )"><span class="secnum">25.3.4.21</span> DataView.prototype.setInt8 ( <var>byteOffset</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setint16" title="DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.22</span> DataView.prototype.setInt16 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setint32" title="DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.23</span> DataView.prototype.setInt32 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setuint8" title="DataView.prototype.setUint8 ( byteOffset, value )"><span class="secnum">25.3.4.24</span> DataView.prototype.setUint8 ( <var>byteOffset</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setuint16" title="DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.25</span> DataView.prototype.setUint16 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype.setuint32" title="DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )"><span class="secnum">25.3.4.26</span> DataView.prototype.setUint32 ( <var>byteOffset</var>, <var>value</var> [ , <var>littleEndian</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dataview.prototype-%symbol.tostringtag%" title="DataView.prototype [ %Symbol.toStringTag% ]"><span class="secnum">25.3.4.27</span> DataView.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-properties-of-dataview-instances" title="Properties of DataView Instances"><span class="secnum">25.3.5</span> Properties of DataView Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-atomics-object" title="The Atomics Object"><span class="secnum">25.4</span> The Atomics Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-waiter-record" title="Waiter Record"><span class="secnum">25.4.1</span> Waiter Record</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-waiterlist-records" title="WaiterList Records"><span class="secnum">25.4.2</span> WaiterList Records</a></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-abstract-operations-for-atomics" title="Abstract Operations for Atomics"><span class="secnum">25.4.3</span> Abstract Operations for Atomics</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-validateintegertypedarray" title="ValidateIntegerTypedArray ( typedArray, waitable )"><span class="secnum">25.4.3.1</span> ValidateIntegerTypedArray ( <var>typedArray</var>, <var>waitable</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-validateatomicaccess" title="ValidateAtomicAccess ( taRecord, requestIndex )"><span class="secnum">25.4.3.2</span> ValidateAtomicAccess ( <var>taRecord</var>, <var>requestIndex</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-validateatomicaccessonintegertypedarray" title="ValidateAtomicAccessOnIntegerTypedArray ( typedArray, requestIndex )"><span class="secnum">25.4.3.3</span> ValidateAtomicAccessOnIntegerTypedArray ( <var>typedArray</var>, <var>requestIndex</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-revalidateatomicaccess" title="RevalidateAtomicAccess ( typedArray, byteIndexInBuffer )"><span class="secnum">25.4.3.4</span> RevalidateAtomicAccess ( <var>typedArray</var>, <var>byteIndexInBuffer</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-getwaiterlist" title="GetWaiterList ( block, i )"><span class="secnum">25.4.3.5</span> GetWaiterList ( <var>block</var>, <var>i</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-entercriticalsection" title="EnterCriticalSection ( WL )"><span class="secnum">25.4.3.6</span> EnterCriticalSection ( <var>WL</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-leavecriticalsection" title="LeaveCriticalSection ( WL )"><span class="secnum">25.4.3.7</span> LeaveCriticalSection ( <var>WL</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-addwaiter" title="AddWaiter ( WL, waiterRecord )"><span class="secnum">25.4.3.8</span> AddWaiter ( <var>WL</var>, <var>waiterRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-removewaiter" title="RemoveWaiter ( WL, waiterRecord )"><span class="secnum">25.4.3.9</span> RemoveWaiter ( <var>WL</var>, <var>waiterRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-removewaiters" title="RemoveWaiters ( WL, c )"><span class="secnum">25.4.3.10</span> RemoveWaiters ( <var>WL</var>, <var>c</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-suspendthisagent" title="SuspendThisAgent ( WL, waiterRecord )"><span class="secnum">25.4.3.11</span> SuspendThisAgent ( <var>WL</var>, <var>waiterRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-notifywaiter" title="NotifyWaiter ( WL, waiterRecord )"><span class="secnum">25.4.3.12</span> NotifyWaiter ( <var>WL</var>, <var>waiterRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-enqueueresolveinagentjob" title="EnqueueResolveInAgentJob ( agentSignifier, promiseCapability, resolution )"><span class="secnum">25.4.3.13</span> EnqueueResolveInAgentJob ( <var>agentSignifier</var>, <var>promiseCapability</var>, <var>resolution</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-dowait" title="DoWait ( mode, typedArray, index, value, timeout )"><span class="secnum">25.4.3.14</span> DoWait ( <var>mode</var>, <var>typedArray</var>, <var>index</var>, <var>value</var>, <var>timeout</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-enqueueatomicswaitasynctimeoutjob" title="EnqueueAtomicsWaitAsyncTimeoutJob ( WL, waiterRecord )"><span class="secnum">25.4.3.15</span> EnqueueAtomicsWaitAsyncTimeoutJob ( <var>WL</var>, <var>waiterRecord</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomiccompareexchangeinsharedblock" title="AtomicCompareExchangeInSharedBlock ( block, byteIndexInBuffer, elementSize, expectedBytes, replacementBytes )"><span class="secnum">25.4.3.16</span> AtomicCompareExchangeInSharedBlock ( <var>block</var>, <var>byteIndexInBuffer</var>, <var>elementSize</var>, <var>expectedBytes</var>, <var>replacementBytes</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomicreadmodifywrite" title="AtomicReadModifyWrite ( typedArray, index, value, op )"><span class="secnum">25.4.3.17</span> AtomicReadModifyWrite ( <var>typedArray</var>, <var>index</var>, <var>value</var>, <var>op</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-bytelistbitwiseop" title="ByteListBitwiseOp ( op, xBytes, yBytes )"><span class="secnum">25.4.3.18</span> ByteListBitwiseOp ( <var>op</var>, <var>xBytes</var>, <var>yBytes</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-bytelistequal" title="ByteListEqual ( xBytes, yBytes )"><span class="secnum">25.4.3.19</span> ByteListEqual ( <var>xBytes</var>, <var>yBytes</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.add" title="Atomics.add ( typedArray, index, value )"><span class="secnum">25.4.4</span> Atomics.add ( <var>typedArray</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.and" title="Atomics.and ( typedArray, index, value )"><span class="secnum">25.4.5</span> Atomics.and ( <var>typedArray</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.compareexchange" title="Atomics.compareExchange ( typedArray, index, expectedValue, replacementValue )"><span class="secnum">25.4.6</span> Atomics.compareExchange ( <var>typedArray</var>, <var>index</var>, <var>expectedValue</var>, <var>replacementValue</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.exchange" title="Atomics.exchange ( typedArray, index, value )"><span class="secnum">25.4.7</span> Atomics.exchange ( <var>typedArray</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.islockfree" title="Atomics.isLockFree ( size )"><span class="secnum">25.4.8</span> Atomics.isLockFree ( <var>size</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.load" title="Atomics.load ( typedArray, index )"><span class="secnum">25.4.9</span> Atomics.load ( <var>typedArray</var>, <var>index</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.or" title="Atomics.or ( typedArray, index, value )"><span class="secnum">25.4.10</span> Atomics.or ( <var>typedArray</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.store" title="Atomics.store ( typedArray, index, value )"><span class="secnum">25.4.11</span> Atomics.store ( <var>typedArray</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.sub" title="Atomics.sub ( typedArray, index, value )"><span class="secnum">25.4.12</span> Atomics.sub ( <var>typedArray</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.wait" title="Atomics.wait ( typedArray, index, value, timeout )"><span class="secnum">25.4.13</span> Atomics.wait ( <var>typedArray</var>, <var>index</var>, <var>value</var>, <var>timeout</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.waitasync" title="Atomics.waitAsync ( typedArray, index, value, timeout )"><span class="secnum">25.4.14</span> Atomics.waitAsync ( <var>typedArray</var>, <var>index</var>, <var>value</var>, <var>timeout</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.notify" title="Atomics.notify ( typedArray, index, count )"><span class="secnum">25.4.15</span> Atomics.notify ( <var>typedArray</var>, <var>index</var>, <var>count</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics.xor" title="Atomics.xor ( typedArray, index, value )"><span class="secnum">25.4.16</span> Atomics.xor ( <var>typedArray</var>, <var>index</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-atomics-%symbol.tostringtag%" title="Atomics [ %Symbol.toStringTag% ]"><span class="secnum">25.4.17</span> Atomics [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-json-object" title="The JSON Object"><span class="secnum">25.5</span> The JSON Object</a><ol class="toc"><li><span class="item-toggle">+</span><a href="structured-data.html#sec-json.parse" title="JSON.parse ( text [ , reviver ] )"><span class="secnum">25.5.1</span> JSON.parse ( <var>text</var> [ , <var>reviver</var> ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-ParseJSON" title="ParseJSON ( text )"><span class="secnum">25.5.1.1</span> ParseJSON ( <var>text</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-internalizejsonproperty" title="InternalizeJSONProperty ( holder, name, reviver )"><span class="secnum">25.5.1.2</span> InternalizeJSONProperty ( <var>holder</var>, <var>name</var>, <var>reviver</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="structured-data.html#sec-json.stringify" title="JSON.stringify ( value [ , replacer [ , space ] ] )"><span class="secnum">25.5.2</span> JSON.stringify ( <var>value</var> [ , <var>replacer</var> [ , <var>space</var> ] ] )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-json-serialization-record" title="JSON Serialization Record"><span class="secnum">25.5.2.1</span> JSON Serialization Record</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-serializejsonproperty" title="SerializeJSONProperty ( state, key, holder )"><span class="secnum">25.5.2.2</span> SerializeJSONProperty ( <var>state</var>, <var>key</var>, <var>holder</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-quotejsonstring" title="QuoteJSONString ( value )"><span class="secnum">25.5.2.3</span> QuoteJSONString ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-unicodeescape" title="UnicodeEscape ( C )"><span class="secnum">25.5.2.4</span> UnicodeEscape ( <var>C</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-serializejsonobject" title="SerializeJSONObject ( state, value )"><span class="secnum">25.5.2.5</span> SerializeJSONObject ( <var>state</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-serializejsonarray" title="SerializeJSONArray ( state, value )"><span class="secnum">25.5.2.6</span> SerializeJSONArray ( <var>state</var>, <var>value</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="structured-data.html#sec-json-%symbol.tostringtag%" title="JSON [ %Symbol.toStringTag% ]"><span class="secnum">25.5.3</span> JSON [ %Symbol.toStringTag% ]</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-managing-memory" title="Managing Memory"><span class="secnum">26</span> Managing Memory</a><ol class="toc"><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-weak-ref-objects" title="WeakRef Objects"><span class="secnum">26.1</span> WeakRef Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-weak-ref-constructor" title="The WeakRef Constructor"><span class="secnum">26.1.1</span> The WeakRef Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-weak-ref-target" title="WeakRef ( target )"><span class="secnum">26.1.1.1</span> WeakRef ( <var>target</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-properties-of-the-weak-ref-constructor" title="Properties of the WeakRef Constructor"><span class="secnum">26.1.2</span> Properties of the WeakRef Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-weak-ref.prototype" title="WeakRef.prototype"><span class="secnum">26.1.2.1</span> WeakRef.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-properties-of-the-weak-ref-prototype-object" title="Properties of the WeakRef Prototype Object"><span class="secnum">26.1.3</span> Properties of the WeakRef Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-weak-ref.prototype.constructor" title="WeakRef.prototype.constructor"><span class="secnum">26.1.3.1</span> WeakRef.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-weak-ref.prototype.deref" title="WeakRef.prototype.deref ( )"><span class="secnum">26.1.3.2</span> WeakRef.prototype.deref ( )</a></li><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-weak-ref.prototype-%symbol.tostringtag%" title="WeakRef.prototype [ %Symbol.toStringTag% ]"><span class="secnum">26.1.3.3</span> WeakRef.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-weakref-abstract-operations" title="WeakRef Abstract Operations"><span class="secnum">26.1.4</span> WeakRef Abstract Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-weakrefderef" title="WeakRefDeref ( weakRef )"><span class="secnum">26.1.4.1</span> WeakRefDeref ( <var>weakRef</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-properties-of-weak-ref-instances" title="Properties of WeakRef Instances"><span class="secnum">26.1.5</span> Properties of WeakRef Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-finalization-registry-objects" title="FinalizationRegistry Objects"><span class="secnum">26.2</span> FinalizationRegistry Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-finalization-registry-constructor" title="The FinalizationRegistry Constructor"><span class="secnum">26.2.1</span> The FinalizationRegistry Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-finalization-registry-cleanup-callback" title="FinalizationRegistry ( cleanupCallback )"><span class="secnum">26.2.1.1</span> FinalizationRegistry ( <var>cleanupCallback</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-properties-of-the-finalization-registry-constructor" title="Properties of the FinalizationRegistry Constructor"><span class="secnum">26.2.2</span> Properties of the FinalizationRegistry Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-finalization-registry.prototype" title="FinalizationRegistry.prototype"><span class="secnum">26.2.2.1</span> FinalizationRegistry.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="managing-memory.html#sec-properties-of-the-finalization-registry-prototype-object" title="Properties of the FinalizationRegistry Prototype Object"><span class="secnum">26.2.3</span> Properties of the FinalizationRegistry Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-finalization-registry.prototype.constructor" title="FinalizationRegistry.prototype.constructor"><span class="secnum">26.2.3.1</span> FinalizationRegistry.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-finalization-registry.prototype.register" title="FinalizationRegistry.prototype.register ( target, heldValue [ , unregisterToken ] )"><span class="secnum">26.2.3.2</span> FinalizationRegistry.prototype.register ( <var>target</var>, <var>heldValue</var> [ , <var>unregisterToken</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-finalization-registry.prototype.unregister" title="FinalizationRegistry.prototype.unregister ( unregisterToken )"><span class="secnum">26.2.3.3</span> FinalizationRegistry.prototype.unregister ( <var>unregisterToken</var> )</a></li><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-finalization-registry.prototype-%symbol.tostringtag%" title="FinalizationRegistry.prototype [ %Symbol.toStringTag% ]"><span class="secnum">26.2.3.4</span> FinalizationRegistry.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="managing-memory.html#sec-properties-of-finalization-registry-instances" title="Properties of FinalizationRegistry Instances"><span class="secnum">26.2.4</span> Properties of FinalizationRegistry Instances</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-control-abstraction-objects" title="Control Abstraction Objects"><span class="secnum">27</span> Control Abstraction Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-iteration" title="Iteration"><span class="secnum">27.1</span> Iteration</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-common-iteration-interfaces" title="Common Iteration Interfaces"><span class="secnum">27.1.1</span> Common Iteration Interfaces</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterable-interface" title="The Iterable Interface"><span class="secnum">27.1.1.1</span> The Iterable Interface</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator-interface" title="The Iterator Interface"><span class="secnum">27.1.1.2</span> The Iterator Interface</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asynciterable-interface" title="The Async Iterable Interface"><span class="secnum">27.1.1.3</span> The Async Iterable Interface</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asynciterator-interface" title="The Async Iterator Interface"><span class="secnum">27.1.1.4</span> The Async Iterator Interface</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iteratorresult-interface" title="The IteratorResult Interface"><span class="secnum">27.1.1.5</span> The IteratorResult Interface</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-iterator-helper-objects" title="Iterator Helper Objects"><span class="secnum">27.1.2</span> Iterator Helper Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-%iteratorhelperprototype%-object" title="The %IteratorHelperPrototype% Object"><span class="secnum">27.1.2.1</span> The %IteratorHelperPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%iteratorhelperprototype%.next" title="%IteratorHelperPrototype%.next ( )"><span class="secnum">27.1.2.1.1</span> %IteratorHelperPrototype%.next ( )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%iteratorhelperprototype%.return" title="%IteratorHelperPrototype%.return ( )"><span class="secnum">27.1.2.1.2</span> %IteratorHelperPrototype%.return ( )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%iteratorhelperprototype%-%symbol.tostringtag%" title="%IteratorHelperPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">27.1.2.1.3</span> %IteratorHelperPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-iterator-objects" title="Iterator Objects"><span class="secnum">27.1.3</span> Iterator Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-iterator-constructor" title="The Iterator Constructor"><span class="secnum">27.1.3.1</span> The Iterator Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator" title="Iterator ( )"><span class="secnum">27.1.3.1.1</span> Iterator ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-the-iterator-constructor" title="Properties of the Iterator Constructor"><span class="secnum">27.1.3.2</span> Properties of the Iterator Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.concat" title="Iterator.concat ( ...items )"><span class="secnum">27.1.3.2.1</span> Iterator.concat ( ...<var>items</var> )</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-iterator.from" title="Iterator.from ( O )"><span class="secnum">27.1.3.2.2</span> Iterator.from ( <var>O</var> )</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-%wrapforvaliditeratorprototype%-object" title="The %WrapForValidIteratorPrototype% Object"><span class="secnum">27.1.3.2.2.1</span> The %WrapForValidIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%wrapforvaliditeratorprototype%.next" title="%WrapForValidIteratorPrototype%.next ( )"><span class="secnum">27.1.3.2.2.1.1</span> %WrapForValidIteratorPrototype%.next ( )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%wrapforvaliditeratorprototype%.return" title="%WrapForValidIteratorPrototype%.return ( )"><span class="secnum">27.1.3.2.2.1.2</span> %WrapForValidIteratorPrototype%.return ( )</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype" title="Iterator.prototype"><span class="secnum">27.1.3.2.3</span> Iterator.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-%iterator.prototype%-object" title="Properties of the Iterator Prototype Object"><span class="secnum">27.1.3.3</span> Properties of the Iterator Prototype Object</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-iterator.prototype.constructor" title="Iterator.prototype.constructor"><span class="secnum">27.1.3.3.1</span> Iterator.prototype.constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-get-iterator.prototype.constructor" title="get Iterator.prototype.constructor"><span class="secnum">27.1.3.3.1.1</span> get Iterator.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-set-iterator.prototype.constructor" title="set Iterator.prototype.constructor"><span class="secnum">27.1.3.3.1.2</span> set Iterator.prototype.constructor</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.drop" title="Iterator.prototype.drop ( limit )"><span class="secnum">27.1.3.3.2</span> Iterator.prototype.drop ( <var>limit</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.every" title="Iterator.prototype.every ( predicate )"><span class="secnum">27.1.3.3.3</span> Iterator.prototype.every ( <var>predicate</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.filter" title="Iterator.prototype.filter ( predicate )"><span class="secnum">27.1.3.3.4</span> Iterator.prototype.filter ( <var>predicate</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.find" title="Iterator.prototype.find ( predicate )"><span class="secnum">27.1.3.3.5</span> Iterator.prototype.find ( <var>predicate</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.flatmap" title="Iterator.prototype.flatMap ( mapper )"><span class="secnum">27.1.3.3.6</span> Iterator.prototype.flatMap ( <var>mapper</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.foreach" title="Iterator.prototype.forEach ( procedure )"><span class="secnum">27.1.3.3.7</span> Iterator.prototype.forEach ( <var>procedure</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.map" title="Iterator.prototype.map ( mapper )"><span class="secnum">27.1.3.3.8</span> Iterator.prototype.map ( <var>mapper</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.reduce" title="Iterator.prototype.reduce ( reducer [ , initialValue ] )"><span class="secnum">27.1.3.3.9</span> Iterator.prototype.reduce ( <var>reducer</var> [ , <var>initialValue</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.some" title="Iterator.prototype.some ( predicate )"><span class="secnum">27.1.3.3.10</span> Iterator.prototype.some ( <var>predicate</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.take" title="Iterator.prototype.take ( limit )"><span class="secnum">27.1.3.3.11</span> Iterator.prototype.take ( <var>limit</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype.toarray" title="Iterator.prototype.toArray ( )"><span class="secnum">27.1.3.3.12</span> Iterator.prototype.toArray ( )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-iterator.prototype-%symbol.iterator%" title="Iterator.prototype [ %Symbol.iterator% ] ( )"><span class="secnum">27.1.3.3.13</span> Iterator.prototype [ %Symbol.iterator% ] ( )</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-iterator.prototype-%symbol.tostringtag%" title="Iterator.prototype [ %Symbol.toStringTag% ]"><span class="secnum">27.1.3.3.14</span> Iterator.prototype [ %Symbol.toStringTag% ]</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-get-iterator.prototype-%symbol.tostringtag%" title="get Iterator.prototype [ %Symbol.toStringTag% ]"><span class="secnum">27.1.3.3.14.1</span> get Iterator.prototype [ %Symbol.toStringTag% ]</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-set-iterator.prototype-%symbol.tostringtag%" title="set Iterator.prototype [ %Symbol.toStringTag% ]"><span class="secnum">27.1.3.3.14.2</span> set Iterator.prototype [ %Symbol.toStringTag% ]</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-asynciteratorprototype" title="The %AsyncIteratorPrototype% Object"><span class="secnum">27.1.4</span> The %AsyncIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%asynciteratorprototype%-%symbol.asynciterator%" title="%AsyncIteratorPrototype% [ %Symbol.asyncIterator% ] ( )"><span class="secnum">27.1.4.1</span> %AsyncIteratorPrototype% [ %Symbol.asyncIterator% ] ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-async-from-sync-iterator-objects" title="Async-from-Sync Iterator Objects"><span class="secnum">27.1.5</span> Async-from-Sync Iterator Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-createasyncfromsynciterator" title="CreateAsyncFromSyncIterator ( syncIteratorRecord )"><span class="secnum">27.1.5.1</span> CreateAsyncFromSyncIterator ( <var>syncIteratorRecord</var> )</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-%asyncfromsynciteratorprototype%-object" title="The %AsyncFromSyncIteratorPrototype% Object"><span class="secnum">27.1.5.2</span> The %AsyncFromSyncIteratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%asyncfromsynciteratorprototype%.next" title="%AsyncFromSyncIteratorPrototype%.next ( [ value ] )"><span class="secnum">27.1.5.2.1</span> %AsyncFromSyncIteratorPrototype%.next ( [ <var>value</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%asyncfromsynciteratorprototype%.return" title="%AsyncFromSyncIteratorPrototype%.return ( [ value ] )"><span class="secnum">27.1.5.2.2</span> %AsyncFromSyncIteratorPrototype%.return ( [ <var>value</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-%asyncfromsynciteratorprototype%.throw" title="%AsyncFromSyncIteratorPrototype%.throw ( [ value ] )"><span class="secnum">27.1.5.2.3</span> %AsyncFromSyncIteratorPrototype%.throw ( [ <var>value</var> ] )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-properties-of-async-from-sync-iterator-instances" title="Properties of Async-from-Sync Iterator Instances"><span class="secnum">27.1.5.3</span> Properties of Async-from-Sync Iterator Instances</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncfromsynciteratorcontinuation" title="AsyncFromSyncIteratorContinuation ( result, promiseCapability, syncIteratorRecord, closeOnRejection )"><span class="secnum">27.1.5.4</span> AsyncFromSyncIteratorContinuation ( <var>result</var>, <var>promiseCapability</var>, <var>syncIteratorRecord</var>, <var>closeOnRejection</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise-objects" title="Promise Objects"><span class="secnum">27.2</span> Promise Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise-abstract-operations" title="Promise Abstract Operations"><span class="secnum">27.2.1</span> Promise Abstract Operations</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promisecapability-records" title="PromiseCapability Records"><span class="secnum">27.2.1.1</span> PromiseCapability Records</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-ifabruptrejectpromise" title="IfAbruptRejectPromise ( value, capability )"><span class="secnum">27.2.1.1.1</span> IfAbruptRejectPromise ( <var>value</var>, <var>capability</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promisereaction-records" title="PromiseReaction Records"><span class="secnum">27.2.1.2</span> PromiseReaction Records</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-createresolvingfunctions" title="CreateResolvingFunctions ( toResolve )"><span class="secnum">27.2.1.3</span> CreateResolvingFunctions ( <var>toResolve</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-fulfillpromise" title="FulfillPromise ( promise, value )"><span class="secnum">27.2.1.4</span> FulfillPromise ( <var>promise</var>, <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-newpromisecapability" title="NewPromiseCapability ( C )"><span class="secnum">27.2.1.5</span> NewPromiseCapability ( <var>C</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-ispromise" title="IsPromise ( x )"><span class="secnum">27.2.1.6</span> IsPromise ( <var>x</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-rejectpromise" title="RejectPromise ( promise, reason )"><span class="secnum">27.2.1.7</span> RejectPromise ( <var>promise</var>, <var>reason</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-triggerpromisereactions" title="TriggerPromiseReactions ( reactions, argument )"><span class="secnum">27.2.1.8</span> TriggerPromiseReactions ( <var>reactions</var>, <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-host-promise-rejection-tracker" title="HostPromiseRejectionTracker ( promise, operation )"><span class="secnum">27.2.1.9</span> HostPromiseRejectionTracker ( <var>promise</var>, <var>operation</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise-jobs" title="Promise Jobs"><span class="secnum">27.2.2</span> Promise Jobs</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-newpromisereactionjob" title="NewPromiseReactionJob ( reaction, argument )"><span class="secnum">27.2.2.1</span> NewPromiseReactionJob ( <var>reaction</var>, <var>argument</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-newpromiseresolvethenablejob" title="NewPromiseResolveThenableJob ( promiseToResolve, thenable, then )"><span class="secnum">27.2.2.2</span> NewPromiseResolveThenableJob ( <var>promiseToResolve</var>, <var>thenable</var>, <var>then</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise-constructor" title="The Promise Constructor"><span class="secnum">27.2.3</span> The Promise Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise-executor" title="Promise ( executor )"><span class="secnum">27.2.3.1</span> Promise ( <var>executor</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-the-promise-constructor" title="Properties of the Promise Constructor"><span class="secnum">27.2.4</span> Properties of the Promise Constructor</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise.all" title="Promise.all ( iterable )"><span class="secnum">27.2.4.1</span> Promise.all ( <var>iterable</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-getpromiseresolve" title="GetPromiseResolve ( promiseConstructor )"><span class="secnum">27.2.4.1.1</span> GetPromiseResolve ( <var>promiseConstructor</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-performpromiseall" title="PerformPromiseAll ( iteratorRecord, constructor, resultCapability, promiseResolve )"><span class="secnum">27.2.4.1.2</span> PerformPromiseAll ( <var>iteratorRecord</var>, <var>constructor</var>, <var>resultCapability</var>, <var>promiseResolve</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise.allsettled" title="Promise.allSettled ( iterable )"><span class="secnum">27.2.4.2</span> Promise.allSettled ( <var>iterable</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-performpromiseallsettled" title="PerformPromiseAllSettled ( iteratorRecord, constructor, resultCapability, promiseResolve )"><span class="secnum">27.2.4.2.1</span> PerformPromiseAllSettled ( <var>iteratorRecord</var>, <var>constructor</var>, <var>resultCapability</var>, <var>promiseResolve</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise.any" title="Promise.any ( iterable )"><span class="secnum">27.2.4.3</span> Promise.any ( <var>iterable</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-performpromiseany" title="PerformPromiseAny ( iteratorRecord, constructor, resultCapability, promiseResolve )"><span class="secnum">27.2.4.3.1</span> PerformPromiseAny ( <var>iteratorRecord</var>, <var>constructor</var>, <var>resultCapability</var>, <var>promiseResolve</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.prototype" title="Promise.prototype"><span class="secnum">27.2.4.4</span> Promise.prototype</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise.race" title="Promise.race ( iterable )"><span class="secnum">27.2.4.5</span> Promise.race ( <var>iterable</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-performpromiserace" title="PerformPromiseRace ( iteratorRecord, constructor, resultCapability, promiseResolve )"><span class="secnum">27.2.4.5.1</span> PerformPromiseRace ( <var>iteratorRecord</var>, <var>constructor</var>, <var>resultCapability</var>, <var>promiseResolve</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.reject" title="Promise.reject ( r )"><span class="secnum">27.2.4.6</span> Promise.reject ( <var>r</var> )</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise.resolve" title="Promise.resolve ( x )"><span class="secnum">27.2.4.7</span> Promise.resolve ( <var>x</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise-resolve" title="PromiseResolve ( C, x )"><span class="secnum">27.2.4.7.1</span> PromiseResolve ( <var>C</var>, <var>x</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.try" title="Promise.try ( callback, ...args )"><span class="secnum">27.2.4.8</span> Promise.try ( <var>callback</var>, ...<var>args</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.withResolvers" title="Promise.withResolvers ( )"><span class="secnum">27.2.4.9</span> Promise.withResolvers ( )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-get-promise-%symbol.species%" title="get Promise [ %Symbol.species% ]"><span class="secnum">27.2.4.10</span> get Promise [ %Symbol.species% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-the-promise-prototype-object" title="Properties of the Promise Prototype Object"><span class="secnum">27.2.5</span> Properties of the Promise Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.prototype.catch" title="Promise.prototype.catch ( onRejected )"><span class="secnum">27.2.5.1</span> Promise.prototype.catch ( <var>onRejected</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.prototype.constructor" title="Promise.prototype.constructor"><span class="secnum">27.2.5.2</span> Promise.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.prototype.finally" title="Promise.prototype.finally ( onFinally )"><span class="secnum">27.2.5.3</span> Promise.prototype.finally ( <var>onFinally</var> )</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-promise.prototype.then" title="Promise.prototype.then ( onFulfilled, onRejected )"><span class="secnum">27.2.5.4</span> Promise.prototype.then ( <var>onFulfilled</var>, <var>onRejected</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-performpromisethen" title="PerformPromiseThen ( promise, onFulfilled, onRejected [ , resultCapability ] )"><span class="secnum">27.2.5.4.1</span> PerformPromiseThen ( <var>promise</var>, <var>onFulfilled</var>, <var>onRejected</var> [ , <var>resultCapability</var> ] )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-promise.prototype-%symbol.tostringtag%" title="Promise.prototype [ %Symbol.toStringTag% ]"><span class="secnum">27.2.5.5</span> Promise.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-properties-of-promise-instances" title="Properties of Promise Instances"><span class="secnum">27.2.6</span> Properties of Promise Instances</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-generatorfunction-objects" title="GeneratorFunction Objects"><span class="secnum">27.3</span> GeneratorFunction Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-generatorfunction-constructor" title="The GeneratorFunction Constructor"><span class="secnum">27.3.1</span> The GeneratorFunction Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction" title="GeneratorFunction ( ...parameterArgs, bodyArg )"><span class="secnum">27.3.1.1</span> GeneratorFunction ( ...<var>parameterArgs</var>, <var>bodyArg</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-the-generatorfunction-constructor" title="Properties of the GeneratorFunction Constructor"><span class="secnum">27.3.2</span> Properties of the GeneratorFunction Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction.prototype" title="GeneratorFunction.prototype"><span class="secnum">27.3.2.1</span> GeneratorFunction.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-the-generatorfunction-prototype-object" title="Properties of the GeneratorFunction Prototype Object"><span class="secnum">27.3.3</span> Properties of the GeneratorFunction Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction.prototype.constructor" title="GeneratorFunction.prototype.constructor"><span class="secnum">27.3.3.1</span> GeneratorFunction.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction.prototype.prototype" title="GeneratorFunction.prototype.prototype"><span class="secnum">27.3.3.2</span> GeneratorFunction.prototype.prototype</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction.prototype-%symbol.tostringtag%" title="GeneratorFunction.prototype [ %Symbol.toStringTag% ]"><span class="secnum">27.3.3.3</span> GeneratorFunction.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-generatorfunction-instances" title="GeneratorFunction Instances"><span class="secnum">27.3.4</span> GeneratorFunction Instances</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction-instances-length" title="length"><span class="secnum">27.3.4.1</span> length</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction-instances-name" title="name"><span class="secnum">27.3.4.2</span> name</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorfunction-instances-prototype" title="prototype"><span class="secnum">27.3.4.3</span> prototype</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-objects" title="AsyncGeneratorFunction Objects"><span class="secnum">27.4</span> AsyncGeneratorFunction Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-constructor" title="The AsyncGeneratorFunction Constructor"><span class="secnum">27.4.1</span> The AsyncGeneratorFunction Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction" title="AsyncGeneratorFunction ( ...parameterArgs, bodyArg )"><span class="secnum">27.4.1.1</span> AsyncGeneratorFunction ( ...<var>parameterArgs</var>, <var>bodyArg</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-asyncgeneratorfunction" title="Properties of the AsyncGeneratorFunction Constructor"><span class="secnum">27.4.2</span> Properties of the AsyncGeneratorFunction Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-prototype" title="AsyncGeneratorFunction.prototype"><span class="secnum">27.4.2.1</span> AsyncGeneratorFunction.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-asyncgeneratorfunction-prototype" title="Properties of the AsyncGeneratorFunction Prototype Object"><span class="secnum">27.4.3</span> Properties of the AsyncGeneratorFunction Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-prototype-constructor" title="AsyncGeneratorFunction.prototype.constructor"><span class="secnum">27.4.3.1</span> AsyncGeneratorFunction.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-prototype-prototype" title="AsyncGeneratorFunction.prototype.prototype"><span class="secnum">27.4.3.2</span> AsyncGeneratorFunction.prototype.prototype</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-prototype-%symbol.tostringtag%" title="AsyncGeneratorFunction.prototype [ %Symbol.toStringTag% ]"><span class="secnum">27.4.3.3</span> AsyncGeneratorFunction.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-instances" title="AsyncGeneratorFunction Instances"><span class="secnum">27.4.4</span> AsyncGeneratorFunction Instances</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-instance-length" title="length"><span class="secnum">27.4.4.1</span> length</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-instance-name" title="name"><span class="secnum">27.4.4.2</span> name</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorfunction-instance-prototype" title="prototype"><span class="secnum">27.4.4.3</span> prototype</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-generator-objects" title="Generator Objects"><span class="secnum">27.5</span> Generator Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-generator-prototype" title="The %GeneratorPrototype% Object"><span class="secnum">27.5.1</span> The %GeneratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generator.prototype.constructor" title="%GeneratorPrototype%.constructor"><span class="secnum">27.5.1.1</span> %GeneratorPrototype%.constructor</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generator.prototype.next" title="%GeneratorPrototype%.next ( value )"><span class="secnum">27.5.1.2</span> %GeneratorPrototype%.next ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generator.prototype.return" title="%GeneratorPrototype%.return ( value )"><span class="secnum">27.5.1.3</span> %GeneratorPrototype%.return ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generator.prototype.throw" title="%GeneratorPrototype%.throw ( exception )"><span class="secnum">27.5.1.4</span> %GeneratorPrototype%.throw ( <var>exception</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generator.prototype-%symbol.tostringtag%" title="%GeneratorPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">27.5.1.5</span> %GeneratorPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-properties-of-generator-instances" title="Properties of Generator Instances"><span class="secnum">27.5.2</span> Properties of Generator Instances</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-generator-abstract-operations" title="Generator Abstract Operations"><span class="secnum">27.5.3</span> Generator Abstract Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorstart" title="GeneratorStart ( generator, generatorBody )"><span class="secnum">27.5.3.1</span> GeneratorStart ( <var>generator</var>, <var>generatorBody</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorvalidate" title="GeneratorValidate ( generator, generatorBrand )"><span class="secnum">27.5.3.2</span> GeneratorValidate ( <var>generator</var>, <var>generatorBrand</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorresume" title="GeneratorResume ( generator, value, generatorBrand )"><span class="secnum">27.5.3.3</span> GeneratorResume ( <var>generator</var>, <var>value</var>, <var>generatorBrand</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatorresumeabrupt" title="GeneratorResumeAbrupt ( generator, abruptCompletion, generatorBrand )"><span class="secnum">27.5.3.4</span> GeneratorResumeAbrupt ( <var>generator</var>, <var>abruptCompletion</var>, <var>generatorBrand</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-getgeneratorkind" title="GetGeneratorKind ( )"><span class="secnum">27.5.3.5</span> GetGeneratorKind ( )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-generatoryield" title="GeneratorYield ( iteratorResult )"><span class="secnum">27.5.3.6</span> GeneratorYield ( <var>iteratorResult</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-yield" title="Yield ( value )"><span class="secnum">27.5.3.7</span> Yield ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-createiteratorfromclosure" title="CreateIteratorFromClosure ( closure, generatorBrand, generatorPrototype [ , extraSlots ] )"><span class="secnum">27.5.3.8</span> CreateIteratorFromClosure ( <var>closure</var>, <var>generatorBrand</var>, <var>generatorPrototype</var> [ , <var>extraSlots</var> ] )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-asyncgenerator-objects" title="AsyncGenerator Objects"><span class="secnum">27.6</span> AsyncGenerator Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-properties-of-asyncgenerator-prototype" title="The %AsyncGeneratorPrototype% Object"><span class="secnum">27.6.1</span> The %AsyncGeneratorPrototype% Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgenerator-prototype-constructor" title="%AsyncGeneratorPrototype%.constructor"><span class="secnum">27.6.1.1</span> %AsyncGeneratorPrototype%.constructor</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgenerator-prototype-next" title="%AsyncGeneratorPrototype%.next ( value )"><span class="secnum">27.6.1.2</span> %AsyncGeneratorPrototype%.next ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgenerator-prototype-return" title="%AsyncGeneratorPrototype%.return ( value )"><span class="secnum">27.6.1.3</span> %AsyncGeneratorPrototype%.return ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgenerator-prototype-throw" title="%AsyncGeneratorPrototype%.throw ( exception )"><span class="secnum">27.6.1.4</span> %AsyncGeneratorPrototype%.throw ( <var>exception</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgenerator-prototype-%symbol.tostringtag%" title="%AsyncGeneratorPrototype% [ %Symbol.toStringTag% ]"><span class="secnum">27.6.1.5</span> %AsyncGeneratorPrototype% [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-properties-of-asyncgenerator-intances" title="Properties of AsyncGenerator Instances"><span class="secnum">27.6.2</span> Properties of AsyncGenerator Instances</a></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-asyncgenerator-abstract-operations" title="AsyncGenerator Abstract Operations"><span class="secnum">27.6.3</span> AsyncGenerator Abstract Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorrequest-records" title="AsyncGeneratorRequest Records"><span class="secnum">27.6.3.1</span> AsyncGeneratorRequest Records</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorstart" title="AsyncGeneratorStart ( generator, generatorBody )"><span class="secnum">27.6.3.2</span> AsyncGeneratorStart ( <var>generator</var>, <var>generatorBody</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorvalidate" title="AsyncGeneratorValidate ( generator, generatorBrand )"><span class="secnum">27.6.3.3</span> AsyncGeneratorValidate ( <var>generator</var>, <var>generatorBrand</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorenqueue" title="AsyncGeneratorEnqueue ( generator, completion, promiseCapability )"><span class="secnum">27.6.3.4</span> AsyncGeneratorEnqueue ( <var>generator</var>, <var>completion</var>, <var>promiseCapability</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorcompletestep" title="AsyncGeneratorCompleteStep ( generator, completion, done [ , realm ] )"><span class="secnum">27.6.3.5</span> AsyncGeneratorCompleteStep ( <var>generator</var>, <var>completion</var>, <var>done</var> [ , <var>realm</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorresume" title="AsyncGeneratorResume ( generator, completion )"><span class="secnum">27.6.3.6</span> AsyncGeneratorResume ( <var>generator</var>, <var>completion</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorunwrapyieldresumption" title="AsyncGeneratorUnwrapYieldResumption ( resumptionValue )"><span class="secnum">27.6.3.7</span> AsyncGeneratorUnwrapYieldResumption ( <var>resumptionValue</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratoryield" title="AsyncGeneratorYield ( value )"><span class="secnum">27.6.3.8</span> AsyncGeneratorYield ( <var>value</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratorawaitreturn" title="AsyncGeneratorAwaitReturn ( generator )"><span class="secnum">27.6.3.9</span> AsyncGeneratorAwaitReturn ( <var>generator</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncgeneratordrainqueue" title="AsyncGeneratorDrainQueue ( generator )"><span class="secnum">27.6.3.10</span> AsyncGeneratorDrainQueue ( <var>generator</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-async-function-objects" title="AsyncFunction Objects"><span class="secnum">27.7</span> AsyncFunction Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-async-function-constructor" title="The AsyncFunction Constructor"><span class="secnum">27.7.1</span> The AsyncFunction Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-async-function-constructor-arguments" title="AsyncFunction ( ...parameterArgs, bodyArg )"><span class="secnum">27.7.1.1</span> AsyncFunction ( ...<var>parameterArgs</var>, <var>bodyArg</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-async-function-constructor-properties" title="Properties of the AsyncFunction Constructor"><span class="secnum">27.7.2</span> Properties of the AsyncFunction Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-async-function-constructor-prototype" title="AsyncFunction.prototype"><span class="secnum">27.7.2.1</span> AsyncFunction.prototype</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-async-function-prototype-properties" title="Properties of the AsyncFunction Prototype Object"><span class="secnum">27.7.3</span> Properties of the AsyncFunction Prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-async-function-prototype-properties-constructor" title="AsyncFunction.prototype.constructor"><span class="secnum">27.7.3.1</span> AsyncFunction.prototype.constructor</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-async-function-prototype-%symbol.tostringtag%" title="AsyncFunction.prototype [ %Symbol.toStringTag% ]"><span class="secnum">27.7.3.2</span> AsyncFunction.prototype [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-async-function-instances" title="AsyncFunction Instances"><span class="secnum">27.7.4</span> AsyncFunction Instances</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-async-function-instances-length" title="length"><span class="secnum">27.7.4.1</span> length</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-async-function-instances-name" title="name"><span class="secnum">27.7.4.2</span> name</a></li></ol></li><li><span class="item-toggle">+</span><a href="control-abstraction-objects.html#sec-async-functions-abstract-operations" title="Async Functions Abstract Operations"><span class="secnum">27.7.5</span> Async Functions Abstract Operations</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-async-functions-abstract-operations-async-function-start" title="AsyncFunctionStart ( promiseCapability, asyncFunctionBody )"><span class="secnum">27.7.5.1</span> AsyncFunctionStart ( <var>promiseCapability</var>, <var>asyncFunctionBody</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#sec-asyncblockstart" title="AsyncBlockStart ( promiseCapability, asyncBody, asyncContext )"><span class="secnum">27.7.5.2</span> AsyncBlockStart ( <var>promiseCapability</var>, <var>asyncBody</var>, <var>asyncContext</var> )</a></li><li><span class="item-toggle-none"></span><a href="control-abstraction-objects.html#await" title="Await ( value )"><span class="secnum">27.7.5.3</span> Await ( <var>value</var> )</a></li></ol></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="reflection.html#sec-reflection" title="Reflection"><span class="secnum">28</span> Reflection</a><ol class="toc"><li><span class="item-toggle">+</span><a href="reflection.html#sec-reflect-object" title="The Reflect Object"><span class="secnum">28.1</span> The Reflect Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.apply" title="Reflect.apply ( target, thisArgument, argumentsList )"><span class="secnum">28.1.1</span> Reflect.apply ( <var>target</var>, <var>thisArgument</var>, <var>argumentsList</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.construct" title="Reflect.construct ( target, argumentsList [ , newTarget ] )"><span class="secnum">28.1.2</span> Reflect.construct ( <var>target</var>, <var>argumentsList</var> [ , <var>newTarget</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.defineproperty" title="Reflect.defineProperty ( target, propertyKey, attributes )"><span class="secnum">28.1.3</span> Reflect.defineProperty ( <var>target</var>, <var>propertyKey</var>, <var>attributes</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.deleteproperty" title="Reflect.deleteProperty ( target, propertyKey )"><span class="secnum">28.1.4</span> Reflect.deleteProperty ( <var>target</var>, <var>propertyKey</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.get" title="Reflect.get ( target, propertyKey [ , receiver ] )"><span class="secnum">28.1.5</span> Reflect.get ( <var>target</var>, <var>propertyKey</var> [ , <var>receiver</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.getownpropertydescriptor" title="Reflect.getOwnPropertyDescriptor ( target, propertyKey )"><span class="secnum">28.1.6</span> Reflect.getOwnPropertyDescriptor ( <var>target</var>, <var>propertyKey</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.getprototypeof" title="Reflect.getPrototypeOf ( target )"><span class="secnum">28.1.7</span> Reflect.getPrototypeOf ( <var>target</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.has" title="Reflect.has ( target, propertyKey )"><span class="secnum">28.1.8</span> Reflect.has ( <var>target</var>, <var>propertyKey</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.isextensible" title="Reflect.isExtensible ( target )"><span class="secnum">28.1.9</span> Reflect.isExtensible ( <var>target</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.ownkeys" title="Reflect.ownKeys ( target )"><span class="secnum">28.1.10</span> Reflect.ownKeys ( <var>target</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.preventextensions" title="Reflect.preventExtensions ( target )"><span class="secnum">28.1.11</span> Reflect.preventExtensions ( <var>target</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.set" title="Reflect.set ( target, propertyKey, V [ , receiver ] )"><span class="secnum">28.1.12</span> Reflect.set ( <var>target</var>, <var>propertyKey</var>, <var>V</var> [ , <var>receiver</var> ] )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect.setprototypeof" title="Reflect.setPrototypeOf ( target, proto )"><span class="secnum">28.1.13</span> Reflect.setPrototypeOf ( <var>target</var>, <var>proto</var> )</a></li><li><span class="item-toggle-none"></span><a href="reflection.html#sec-reflect-%symbol.tostringtag%" title="Reflect [ %Symbol.toStringTag% ]"><span class="secnum">28.1.14</span> Reflect [ %Symbol.toStringTag% ]</a></li></ol></li><li><span class="item-toggle">+</span><a href="reflection.html#sec-proxy-objects" title="Proxy Objects"><span class="secnum">28.2</span> Proxy Objects</a><ol class="toc"><li><span class="item-toggle">+</span><a href="reflection.html#sec-proxy-constructor" title="The Proxy Constructor"><span class="secnum">28.2.1</span> The Proxy Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="reflection.html#sec-proxy-target-handler" title="Proxy ( target, handler )"><span class="secnum">28.2.1.1</span> Proxy ( <var>target</var>, <var>handler</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="reflection.html#sec-properties-of-the-proxy-constructor" title="Properties of the Proxy Constructor"><span class="secnum">28.2.2</span> Properties of the Proxy Constructor</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="reflection.html#sec-proxy.revocable" title="Proxy.revocable ( target, handler )"><span class="secnum">28.2.2.1</span> Proxy.revocable ( <var>target</var>, <var>handler</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="reflection.html#sec-module-namespace-objects" title="Module Namespace Objects"><span class="secnum">28.3</span> Module Namespace Objects</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="reflection.html#sec-%symbol.tostringtag%" title="%Symbol.toStringTag%"><span class="secnum">28.3.1</span> %Symbol.toStringTag%</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="memory-model.html#sec-memory-model" title="Memory Model"><span class="secnum">29</span> Memory Model</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-memory-model-fundamentals" title="Memory Model Fundamentals"><span class="secnum">29.1</span> Memory Model Fundamentals</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-agent-event-records" title="Agent Events Records"><span class="secnum">29.2</span> Agent Events Records</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-chosen-value-records" title="Chosen Value Records"><span class="secnum">29.3</span> Chosen Value Records</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-candidate-executions" title="Candidate Executions"><span class="secnum">29.4</span> Candidate Executions</a></li><li><span class="item-toggle">+</span><a href="memory-model.html#sec-abstract-operations-for-the-memory-model" title="Abstract Operations for the Memory Model"><span class="secnum">29.5</span> Abstract Operations for the Memory Model</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-event-set" title="EventSet ( execution )"><span class="secnum">29.5.1</span> EventSet ( <var>execution</var> )</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-sharedatablockeventset" title="SharedDataBlockEventSet ( execution )"><span class="secnum">29.5.2</span> SharedDataBlockEventSet ( <var>execution</var> )</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-hosteventset" title="HostEventSet ( execution )"><span class="secnum">29.5.3</span> HostEventSet ( <var>execution</var> )</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-composewriteeventbytes" title="ComposeWriteEventBytes ( execution, byteIndex, Ws )"><span class="secnum">29.5.4</span> ComposeWriteEventBytes ( <var>execution</var>, <var>byteIndex</var>, <var>Ws</var> )</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-valueofreadevent" title="ValueOfReadEvent ( execution, R )"><span class="secnum">29.5.5</span> ValueOfReadEvent ( <var>execution</var>, <var>R</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="memory-model.html#sec-relations-of-candidate-executions" title="Relations of Candidate Executions"><span class="secnum">29.6</span> Relations of Candidate Executions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-agent-order" title="is-agent-order-before"><span class="secnum">29.6.1</span> is-agent-order-before</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-reads-bytes-from" title="reads-bytes-from"><span class="secnum">29.6.2</span> reads-bytes-from</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-reads-from" title="reads-from"><span class="secnum">29.6.3</span> reads-from</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-host-synchronizes-with" title="host-synchronizes-with"><span class="secnum">29.6.4</span> host-synchronizes-with</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-synchronizes-with" title="synchronizes-with"><span class="secnum">29.6.5</span> synchronizes-with</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-happens-before" title="happens-before"><span class="secnum">29.6.6</span> happens-before</a></li></ol></li><li><span class="item-toggle">+</span><a href="memory-model.html#sec-properties-of-valid-executions" title="Properties of Valid Executions"><span class="secnum">29.7</span> Properties of Valid Executions</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-valid-chosen-reads" title="Valid Chosen Reads"><span class="secnum">29.7.1</span> Valid Chosen Reads</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-coherent-reads" title="Coherent Reads"><span class="secnum">29.7.2</span> Coherent Reads</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-tear-free-aligned-reads" title="Tear Free Reads"><span class="secnum">29.7.3</span> Tear Free Reads</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-memory-order" title="Sequentially Consistent Atomics"><span class="secnum">29.7.4</span> Sequentially Consistent Atomics</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-valid-executions" title="Valid Executions"><span class="secnum">29.7.5</span> Valid Executions</a></li></ol></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-races" title="Races"><span class="secnum">29.8</span> Races</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-data-races" title="Data Races"><span class="secnum">29.9</span> Data Races</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-data-race-freedom" title="Data Race Freedom"><span class="secnum">29.10</span> Data Race Freedom</a></li><li><span class="item-toggle-none"></span><a href="memory-model.html#sec-shared-memory-guidelines" title="Shared Memory Guidelines"><span class="secnum">29.11</span> Shared Memory Guidelines</a></li></ol></li><li><span class="item-toggle">+</span><a href="grammar-summary.html#sec-grammar-summary" title="Grammar Summary"><span class="secnum">Annex A <span class="annex-kind">(informative)</span></span> Grammar Summary</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-lexical-grammar" title="Lexical Grammar"><span class="secnum">A.1</span> Lexical Grammar</a></li><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-expressions" title="Expressions"><span class="secnum">A.2</span> Expressions</a></li><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-statements" title="Statements"><span class="secnum">A.3</span> Statements</a></li><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-functions-and-classes" title="Functions and Classes"><span class="secnum">A.4</span> Functions and Classes</a></li><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-scripts-and-modules" title="Scripts and Modules"><span class="secnum">A.5</span> Scripts and Modules</a></li><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-number-conversions" title="Number Conversions"><span class="secnum">A.6</span> Number Conversions</a></li><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-time-zone-offset-string-format" title="Time Zone Offset String Format"><span class="secnum">A.7</span> Time Zone Offset String Format</a></li><li><span class="item-toggle-none"></span><a href="grammar-summary.html#sec-regular-expressions" title="Regular Expressions"><span class="secnum">A.8</span> Regular Expressions</a></li></ol></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-ecmascript-features-for-web-browsers" title="Additional ECMAScript Features for Web Browsers"><span class="secnum">Annex B <span class="annex-kind">(normative)</span></span> Additional ECMAScript Features for Web Browsers</a><ol class="toc"><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-syntax" title="Additional Syntax"><span class="secnum">B.1</span> Additional Syntax</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-html-like-comments" title="HTML-like Comments"><span class="secnum">B.1.1</span> HTML-like Comments</a></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-regular-expressions-patterns" title="Regular Expressions Patterns"><span class="secnum">B.1.2</span> Regular Expressions Patterns</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-patterns-static-semantics-early-errors-annexb" title="Static Semantics: Early Errors"><span class="secnum">B.1.2.1</span> SS: Early Errors</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-countleftcapturingparens-annexb" title="Static Semantics: CountLeftCapturingParensWithin and CountLeftCapturingParensBefore"><span class="secnum">B.1.2.2</span> SS: CountLeftCapturingParensWithin and CountLeftCapturingParensBefore</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-patterns-static-semantics-is-character-class-annexb" title="Static Semantics: IsCharacterClass"><span class="secnum">B.1.2.3</span> SS: IsCharacterClass</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-patterns-static-semantics-character-value-annexb" title="Static Semantics: CharacterValue"><span class="secnum">B.1.2.4</span> SS: CharacterValue</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-compilesubpattern-annexb" title="Runtime Semantics: CompileSubpattern"><span class="secnum">B.1.2.5</span> RS: CompileSubpattern</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-compileassertion-annexb" title="Runtime Semantics: CompileAssertion"><span class="secnum">B.1.2.6</span> RS: CompileAssertion</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-compileatom-annexb" title="Runtime Semantics: CompileAtom"><span class="secnum">B.1.2.7</span> RS: CompileAtom</a></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-compiletocharset-annexb" title="Runtime Semantics: CompileToCharSet"><span class="secnum">B.1.2.8</span> RS: CompileToCharSet</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-runtime-semantics-characterrangeorunion-abstract-operation" title="CharacterRangeOrUnion ( rer, A, B )"><span class="secnum">B.1.2.8.1</span> CharacterRangeOrUnion ( <var>rer</var>, <var>A</var>, <var>B</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-parsepattern-annexb" title="Static Semantics: ParsePattern ( patternText, u, v )"><span class="secnum">B.1.2.9</span> SS: ParsePattern ( <var>patternText</var>, <var>u</var>, <var>v</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-built-in-properties" title="Additional Built-in Properties"><span class="secnum">B.2</span> Additional Built-in Properties</a><ol class="toc"><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-properties-of-the-global-object" title="Additional Properties of the Global Object"><span class="secnum">B.2.1</span> Additional Properties of the Global Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-escape-string" title="escape ( string )"><span class="secnum">B.2.1.1</span> escape ( <var>string</var> )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-unescape-string" title="unescape ( string )"><span class="secnum">B.2.1.2</span> unescape ( <var>string</var> )</a></li></ol></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-properties-of-the-string.prototype-object" title="Additional Properties of the String.prototype Object"><span class="secnum">B.2.2</span> Additional Properties of the String.prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.substr" title="String.prototype.substr ( start, length )"><span class="secnum">B.2.2.1</span> String.prototype.substr ( <var>start</var>, <var>length</var> )</a></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.anchor" title="String.prototype.anchor ( name )"><span class="secnum">B.2.2.2</span> String.prototype.anchor ( <var>name</var> )</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" title="CreateHTML ( string, tag, attribute, value )"><span class="secnum">B.2.2.2.1</span> CreateHTML ( <var>string</var>, <var>tag</var>, <var>attribute</var>, <var>value</var> )</a></li></ol></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.big" title="String.prototype.big ( )"><span class="secnum">B.2.2.3</span> String.prototype.big ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.blink" title="String.prototype.blink ( )"><span class="secnum">B.2.2.4</span> String.prototype.blink ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.bold" title="String.prototype.bold ( )"><span class="secnum">B.2.2.5</span> String.prototype.bold ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.fixed" title="String.prototype.fixed ( )"><span class="secnum">B.2.2.6</span> String.prototype.fixed ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.fontcolor" title="String.prototype.fontcolor ( colour )"><span class="secnum">B.2.2.7</span> String.prototype.fontcolor ( <var>colour</var> )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.fontsize" title="String.prototype.fontsize ( size )"><span class="secnum">B.2.2.8</span> String.prototype.fontsize ( <var>size</var> )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.italics" title="String.prototype.italics ( )"><span class="secnum">B.2.2.9</span> String.prototype.italics ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.link" title="String.prototype.link ( url )"><span class="secnum">B.2.2.10</span> String.prototype.link ( <var>url</var> )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.small" title="String.prototype.small ( )"><span class="secnum">B.2.2.11</span> String.prototype.small ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.strike" title="String.prototype.strike ( )"><span class="secnum">B.2.2.12</span> String.prototype.strike ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.sub" title="String.prototype.sub ( )"><span class="secnum">B.2.2.13</span> String.prototype.sub ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-string.prototype.sup" title="String.prototype.sup ( )"><span class="secnum">B.2.2.14</span> String.prototype.sup ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#String.prototype.trimleft" title="String.prototype.trimLeft ( )"><span class="secnum">B.2.2.15</span> String.prototype.trimLeft ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#String.prototype.trimright" title="String.prototype.trimRight ( )"><span class="secnum">B.2.2.16</span> String.prototype.trimRight ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-properties-of-the-date.prototype-object" title="Additional Properties of the Date.prototype Object"><span class="secnum">B.2.3</span> Additional Properties of the Date.prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-date.prototype.getyear" title="Date.prototype.getYear ( )"><span class="secnum">B.2.3.1</span> Date.prototype.getYear ( )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-date.prototype.setyear" title="Date.prototype.setYear ( year )"><span class="secnum">B.2.3.2</span> Date.prototype.setYear ( <var>year</var> )</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-date.prototype.togmtstring" title="Date.prototype.toGMTString ( )"><span class="secnum">B.2.3.3</span> Date.prototype.toGMTString ( )</a></li></ol></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-properties-of-the-regexp.prototype-object" title="Additional Properties of the RegExp.prototype Object"><span class="secnum">B.2.4</span> Additional Properties of the RegExp.prototype Object</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-regexp.prototype.compile" title="RegExp.prototype.compile ( pattern, flags )"><span class="secnum">B.2.4.1</span> RegExp.prototype.compile ( <var>pattern</var>, <var>flags</var> )</a></li></ol></li></ol></li><li><span class="item-toggle">+</span><a href="additional-ecmascript-features-for-web-browsers.html#sec-other-additional-features" title="Other Additional Features"><span class="secnum">B.3</span> Other Additional Features</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-labelled-function-declarations" title="Labelled Function Declarations"><span class="secnum">B.3.1</span> Labelled Function Declarations</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-block-level-function-declarations-web-legacy-compatibility-semantics" title="Block-Level Function Declarations Web Legacy Compatibility Semantics"><span class="secnum">B.3.2</span> Block-Level Function Declarations Web Legacy Compatibility Semantics</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-functiondeclarations-in-ifstatement-statement-clauses" title="FunctionDeclarations in IfStatement Statement Clauses"><span class="secnum">B.3.3</span> FunctionDeclarations in IfStatement Statement Clauses</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-variablestatements-in-catch-blocks" title="VariableStatements in Catch Blocks"><span class="secnum">B.3.4</span> VariableStatements in Catch Blocks</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-initializers-in-forin-statement-heads" title="Initializers in ForIn Statement Heads"><span class="secnum">B.3.5</span> Initializers in ForIn Statement Heads</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-IsHTMLDDA-internal-slot" title="The [[IsHTMLDDA]] Internal Slot"><span class="secnum">B.3.6</span> The <var class="field">[[IsHTMLDDA]]</var> Internal Slot</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-web-compat-host-make-job-callback" title="Non-default behaviour in HostMakeJobCallback"><span class="secnum">B.3.7</span> Non-default behaviour in HostMakeJobCallback</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-web-compat-host-ensure-can-add-private-field" title="Non-default behaviour in HostEnsureCanAddPrivateElement"><span class="secnum">B.3.8</span> Non-default behaviour in HostEnsureCanAddPrivateElement</a></li><li><span class="item-toggle-none"></span><a href="additional-ecmascript-features-for-web-browsers.html#sec-runtime-errors-for-function-call-assignment-targets" title="Runtime Errors for Function Call Assignment Targets"><span class="secnum">B.3.9</span> Runtime Errors for Function Call Assignment Targets</a></li></ol></li></ol></li><li><span class="item-toggle-none"></span><a href="strict-mode-of-ecmascript.html#sec-strict-mode-of-ecmascript" title="The Strict Mode of ECMAScript"><span class="secnum">Annex C <span class="annex-kind">(informative)</span></span> The Strict Mode of ECMAScript</a></li><li><span class="item-toggle">+</span><a href="host-layering-points.html#sec-host-layering-points" title="Host Layering Points"><span class="secnum">Annex D <span class="annex-kind">(informative)</span></span> Host Layering Points</a><ol class="toc"><li><span class="item-toggle-none"></span><a href="host-layering-points.html#sec-host-hooks-summary" title="Host Hooks"><span class="secnum">D.1</span> Host Hooks</a></li><li><span class="item-toggle-none"></span><a href="host-layering-points.html#sec-host-defined-fields-summary" title="Host-defined Fields"><span class="secnum">D.2</span> Host-defined Fields</a></li><li><span class="item-toggle-none"></span><a href="host-layering-points.html#sec-host-defined-objects-summary" title="Host-defined Objects"><span class="secnum">D.3</span> Host-defined Objects</a></li><li><span class="item-toggle-none"></span><a href="host-layering-points.html#sec-host-running-jobs" title="Running Jobs"><span class="secnum">D.4</span> Running Jobs</a></li><li><span class="item-toggle-none"></span><a href="host-layering-points.html#sec-host-internal-methods-of-exotic-objects" title="Internal Methods of Exotic Objects"><span class="secnum">D.5</span> Internal Methods of Exotic Objects</a></li><li><span class="item-toggle-none"></span><a href="host-layering-points.html#sec-host-built-in-objects-and-methods" title="Built-in Objects and Methods"><span class="secnum">D.6</span> Built-in Objects and Methods</a></li></ol></li><li><span class="item-toggle-none"></span><a href="corrections-and-clarifications-in-ecmascript-2015-with-possible-compatibility-impact.html#sec-corrections-and-clarifications-in-ecmascript-2015-with-possible-compatibility-impact" title="Corrections and Clarifications in ECMAScript 2015 with Possible Compatibility Impact"><span class="secnum">Annex E <span class="annex-kind">(informative)</span></span> Corrections and Clarifications in ECMAScript 2015 with Possible Compatibility Impact</a></li><li><span class="item-toggle-none"></span><a href="additions-and-changes-that-introduce-incompatibilities-with-prior-editions.html#sec-additions-and-changes-that-introduce-incompatibilities-with-prior-editions" title="Additions and Changes That Introduce Incompatibilities with Prior Editions"><span class="secnum">Annex F <span class="annex-kind">(informative)</span></span> Additions and Changes That Introduce Incompatibilities with Prior Editions</a></li><li><span class="item-toggle-none"></span><a href="bibliography.html#sec-bibliography" title="Bibliography">Bibliography</a></li><li><span class="item-toggle-none"></span><a href="colophon.html#sec-colophon" title="Colophon">Colophon</a></li><li><span class="item-toggle-none"></span><a href="copyright-and-software-license.html#sec-copyright-and-software-license" title="Copyright & Software License">Copyright & Software License</a></li></ol></div></div>
|
||
<div id="menu-spacer" class="menu-spacer"></div>
|
||
<div id="menu-toggle"><svg xmlns="http://www.w3.org/2000/svg" style="width:100%; height:100%; stroke:currentColor" viewBox="0 0 120 120" width="54" height="54">
|
||
<title>Menu</title>
|
||
<path stroke-width="10" stroke-linecap="round" d="M30,60 h60 M30,30 m0,5 h60 M30,90 m0,-5 h60"></path>
|
||
</svg></div>
|
||
<div id="shortcuts-help">
|
||
<ul>
|
||
<li><span>Toggle shortcuts help</span><code>?</code></li>
|
||
<li><span>Toggle "can call user code" annotations</span><code>u</code></li>
|
||
<li><span>Navigate to/from multipage</span><code>m</code></li>
|
||
<li><span>Jump to search box</span><code>/</code></li>
|
||
<li><span>Toggle pinning of the current clause</span><code>p</code></li>
|
||
<li><span>Jump to the <i>n</i><sup>th</sup> pin</span><code>1-9</code></li>
|
||
<li><span>Jump to the 10<sup>th</sup> pin</span><code>0</code></li>
|
||
<li><span>Jump to the most recent link target</span><code>`</code></li>
|
||
</ul></div><div id='spec-container'><emu-annex id="sec-additional-ecmascript-features-for-web-browsers" namespace="annexB" normative="">
|
||
<h1><span class="secnum">Annex B <span class="annex-kind">(normative)</span></span> Additional ECMAScript Features for Web Browsers</h1>
|
||
<p>The ECMAScript language syntax and semantics defined in this annex are required when the ECMAScript <emu-xref href="#host" id="_ref_17371"><a href="overview.html#host">host</a></emu-xref> is a web browser. The content of this annex is normative but optional if the ECMAScript <emu-xref href="#host" id="_ref_17372"><a href="overview.html#host">host</a></emu-xref> is not a web browser.</p>
|
||
<p>Some features defined in this annex are specified in this annex, and some are specified in the main body of this document.</p>
|
||
<p>When a feature is specified in the main body, each point where it affects the document is marked with the words "<emu-xref href="#sec-conformance" id="_ref_17373"><a href="conformance.html#sec-conformance">Normative Optional</a></emu-xref>" in a coloured box. Moreover, where the feature involves particular wording in an algorithm or <emu-xref href="#early-error" id="_ref_17374"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rule, this is guarded by the condition that “<dfn variants="otherwise supports" tabindex="-1">the host supports</dfn>” the relevant feature. Web browsers are required to support all such features.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>This annex describes various legacy features and other characteristics of web browser ECMAScript <emu-xref href="#host" id="_ref_17375"><a href="overview.html#host">hosts</a></emu-xref>. All of the language features and behaviours specified in this annex have one or more undesirable characteristics and in the absence of legacy usage would be removed from this specification. However, the usage of these features by large numbers of existing web pages means that web browsers must continue to support them. The specifications in this annex define the requirements for interoperable implementations of these legacy features.</p>
|
||
<p>These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code. ECMAScript implementations are discouraged from implementing these features unless the implementation is part of a web browser or is required to run the same legacy ECMAScript code that web browsers encounter.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-annex id="sec-additional-syntax">
|
||
<h1><span class="secnum">B.1</span> Additional Syntax</h1>
|
||
|
||
<emu-annex id="sec-html-like-comments">
|
||
<h1><span class="secnum">B.1.1</span> HTML-like Comments</h1>
|
||
<p>The syntax and semantics of <emu-xref href="#sec-comments" id="_ref_853"><a href="ecmascript-language-lexical-grammar.html#sec-comments">12.4</a></emu-xref> is extended as follows except that this extension is not allowed when parsing source text using the <emu-xref href="#sec-context-free-grammars" id="_ref_17376"><a href="notational-conventions.html#sec-context-free-grammars">goal symbol</a></emu-xref> <emu-nt id="_ref_24581"><a href="ecmascript-language-scripts-and-modules.html#prod-Module">Module</a></emu-nt>:</p>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="InputElementHashbangOrRegExp" type="lexical" id="prod-annexB-InputElementHashbangOrRegExp">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-InputElementHashbangOrRegExp">InputElementHashbangOrRegExp</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fctcswat">
|
||
<emu-nt id="_ref_24582"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ozmczrck">
|
||
<emu-nt id="_ref_24583"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ft16wloj">
|
||
<emu-nt id="_ref_24584"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Comment">Comment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gxwilro0">
|
||
<emu-nt id="_ref_24585"><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="pcfv_yin">
|
||
<emu-nt id="_ref_24586"><a href="ecmascript-language-lexical-grammar.html#prod-HashbangComment">HashbangComment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mbzy6lvr">
|
||
<emu-nt id="_ref_24587"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="s4ncj2pm">
|
||
<emu-nt id="_ref_24588"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-HTMLCloseComment">HTMLCloseComment</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="Comment" type="lexical" id="prod-annexB-Comment">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Comment">Comment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="sieyeref">
|
||
<emu-nt id="_ref_24589"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-MultiLineComment">MultiLineComment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="sscrkqcd">
|
||
<emu-nt id="_ref_24590"><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineComment">SingleLineComment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gpoosgoq">
|
||
<emu-nt id="_ref_24591"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineHTMLOpenComment">SingleLineHTMLOpenComment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="-88cuq48">
|
||
<emu-nt id="_ref_24592"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineHTMLCloseComment">SingleLineHTMLCloseComment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="x2zjsk6z">
|
||
<emu-nt id="_ref_24593"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedComment">SingleLineDelimitedComment</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="MultiLineComment" type="lexical" id="prod-annexB-MultiLineComment">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-MultiLineComment">MultiLineComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="99bxtrdo">
|
||
<emu-t>/*</emu-t>
|
||
<emu-nt optional="" id="_ref_24594"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-FirstCommentLine">FirstCommentLine</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_24595"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_24596"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineCommentChars">MultiLineCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>*/</emu-t>
|
||
<emu-nt optional="" id="_ref_24597"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-HTMLCloseComment">HTMLCloseComment</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="FirstCommentLine" type="lexical" id="prod-annexB-FirstCommentLine">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-FirstCommentLine">FirstCommentLine</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="rwqqakko">
|
||
<emu-nt id="_ref_24598"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentChars">SingleLineDelimitedCommentChars</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineHTMLOpenComment" type="lexical" id="prod-annexB-SingleLineHTMLOpenComment">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineHTMLOpenComment">SingleLineHTMLOpenComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2e6mrqmm">
|
||
<emu-t><!--</emu-t>
|
||
<emu-nt optional="" id="_ref_24599"><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineCommentChars">SingleLineCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineHTMLCloseComment" type="lexical" id="prod-annexB-SingleLineHTMLCloseComment">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineHTMLCloseComment">SingleLineHTMLCloseComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="wdv3xq9f">
|
||
<emu-nt id="_ref_24600"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>
|
||
<emu-nt id="_ref_24601"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-HTMLCloseComment">HTMLCloseComment</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineDelimitedComment" type="lexical" id="prod-annexB-SingleLineDelimitedComment">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedComment">SingleLineDelimitedComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="-jxen_rq">
|
||
<emu-t>/*</emu-t>
|
||
<emu-nt optional="" id="_ref_24602"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentChars">SingleLineDelimitedCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>*/</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="HTMLCloseComment" type="lexical" id="prod-annexB-HTMLCloseComment">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-HTMLCloseComment">HTMLCloseComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="doh0xpzb">
|
||
<emu-nt optional="" id="_ref_24603"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-WhiteSpaceSequence">WhiteSpaceSequence</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt optional="" id="_ref_24604"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentSequence">SingleLineDelimitedCommentSequence</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>--></emu-t>
|
||
<emu-nt optional="" id="_ref_24605"><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineCommentChars">SingleLineCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineDelimitedCommentChars" type="lexical" id="prod-annexB-SingleLineDelimitedCommentChars">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentChars">SingleLineDelimitedCommentChars</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="srrki4i5">
|
||
<emu-nt id="_ref_24606"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineNotAsteriskChar">SingleLineNotAsteriskChar</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_24607"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentChars">SingleLineDelimitedCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ru60gzv_">
|
||
<emu-t>*</emu-t>
|
||
<emu-nt optional="" id="_ref_24608"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLinePostAsteriskCommentChars">SingleLinePostAsteriskCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineNotAsteriskChar" type="lexical" id="prod-annexB-SingleLineNotAsteriskChar">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineNotAsteriskChar">SingleLineNotAsteriskChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xx2apkej">
|
||
<emu-nt id="_ref_24609"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not one of <emu-t>*</emu-t> or <emu-nt id="_ref_24610"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLinePostAsteriskCommentChars" type="lexical" id="prod-annexB-SingleLinePostAsteriskCommentChars">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLinePostAsteriskCommentChars">SingleLinePostAsteriskCommentChars</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="p4bbdmqr">
|
||
<emu-nt id="_ref_24611"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineNotForwardSlashOrAsteriskChar">SingleLineNotForwardSlashOrAsteriskChar</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_24612"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentChars">SingleLineDelimitedCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ru60gzv_">
|
||
<emu-t>*</emu-t>
|
||
<emu-nt optional="" id="_ref_24613"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLinePostAsteriskCommentChars">SingleLinePostAsteriskCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineNotForwardSlashOrAsteriskChar" type="lexical" id="prod-annexB-SingleLineNotForwardSlashOrAsteriskChar">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineNotForwardSlashOrAsteriskChar">SingleLineNotForwardSlashOrAsteriskChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="9cpftoim">
|
||
<emu-nt id="_ref_24614"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not one of <emu-t>/</emu-t> or <emu-t>*</emu-t> or <emu-nt id="_ref_24615"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="WhiteSpaceSequence" type="lexical" id="prod-annexB-WhiteSpaceSequence">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-WhiteSpaceSequence">WhiteSpaceSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="r3bi9ks0">
|
||
<emu-nt id="_ref_24616"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_24617"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-WhiteSpaceSequence">WhiteSpaceSequence</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineDelimitedCommentSequence" type="lexical" id="prod-annexB-SingleLineDelimitedCommentSequence">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentSequence">SingleLineDelimitedCommentSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="97egrzky">
|
||
<emu-nt id="_ref_24618"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedComment">SingleLineDelimitedComment</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_24619"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-WhiteSpaceSequence">WhiteSpaceSequence</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt optional="" id="_ref_24620"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineDelimitedCommentSequence">SingleLineDelimitedCommentSequence</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>Similar to a <emu-nt id="_ref_24621"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-MultiLineComment">MultiLineComment</a></emu-nt> that contains a line terminator code point, a <emu-nt id="_ref_24622"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SingleLineHTMLCloseComment">SingleLineHTMLCloseComment</a></emu-nt> is considered to be a <emu-nt id="_ref_24623"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> for purposes of parsing by the syntactic grammar.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-regular-expressions-patterns">
|
||
<h1><span class="secnum">B.1.2</span> Regular Expressions Patterns</h1>
|
||
<p>The syntax of <emu-xref href="#sec-patterns" id="_ref_854"><a href="text-processing.html#sec-patterns">22.2.1</a></emu-xref> is modified and extended as follows. These changes introduce ambiguities that are broken by the ordering of grammar productions and by contextual information. When parsing using the following grammar, each alternative is considered only if previous production alternatives do not match.</p>
|
||
<p>This alternative pattern grammar and semantics only changes the syntax and semantics of BMP patterns. The following grammar extensions include productions parameterized with the [UnicodeMode] parameter. However, none of these extensions change the syntax of Unicode patterns recognized when parsing with the [UnicodeMode] parameter present on the <emu-xref href="#sec-context-free-grammars" id="_ref_17377"><a href="notational-conventions.html#sec-context-free-grammars">goal symbol</a></emu-xref>.</p>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="Term" params="UnicodeMode, UnicodeSetsMode, NamedCaptureGroups" type="lexical" id="prod-annexB-Term">
|
||
<emu-nt params="UnicodeMode, UnicodeSetsMode, NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Term">Term</a><emu-mods><emu-params>[UnicodeMode, UnicodeSetsMode, NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="o3l8dfe8" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-nt params="+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24624"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Assertion">Assertion</a><emu-mods><emu-params>[+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="hwwssbot" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-nt params="+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24625"><a href="text-processing.html#prod-Atom">Atom</a><emu-mods><emu-params>[+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_24626"><a href="text-processing.html#prod-Quantifier">Quantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="iwmljpx0" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-nt params="+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24627"><a href="text-processing.html#prod-Atom">Atom</a><emu-mods><emu-params>[+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="62vacxzc" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt params="?NamedCaptureGroups" id="_ref_24628"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-QuantifiableAssertion">QuantifiableAssertion</a><emu-mods><emu-params>[?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_24629"><a href="text-processing.html#prod-Quantifier">Quantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="bdgod5jf" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt params="~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24630"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Assertion">Assertion</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="x9p9spup" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt params="?NamedCaptureGroups" id="_ref_24631"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a><emu-mods><emu-params>[?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_24632"><a href="text-processing.html#prod-Quantifier">Quantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="-fqfvuat" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt params="?NamedCaptureGroups" id="_ref_24633"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a><emu-mods><emu-params>[?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="Assertion" params="UnicodeMode, UnicodeSetsMode, NamedCaptureGroups" type="lexical" id="prod-annexB-Assertion">
|
||
<emu-nt params="UnicodeMode, UnicodeSetsMode, NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Assertion">Assertion</a><emu-mods><emu-params>[UnicodeMode, UnicodeSetsMode, NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="5yeieuod">
|
||
<emu-t>^</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="emlmkqfm">
|
||
<emu-t>$</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="axxsqknu">
|
||
<emu-t>\b</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="lnx_opbv">
|
||
<emu-t>\B</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="gm31ql7g" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-t>(?=</emu-t>
|
||
<emu-nt params="+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24634"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="wqfwj-x1" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-t>(?!</emu-t>
|
||
<emu-nt params="+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24635"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[+UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="avwhjn5v" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt params="?NamedCaptureGroups" id="_ref_24636"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-QuantifiableAssertion">QuantifiableAssertion</a><emu-mods><emu-params>[?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mvzyfsps">
|
||
<emu-t>(?<=</emu-t>
|
||
<emu-nt params="?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24637"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="i9jfixsb">
|
||
<emu-t>(?<!</emu-t>
|
||
<emu-nt params="?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24638"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[?UnicodeMode, ?UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="QuantifiableAssertion" params="NamedCaptureGroups" type="lexical" id="prod-annexB-QuantifiableAssertion">
|
||
<emu-nt params="NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-QuantifiableAssertion">QuantifiableAssertion</a><emu-mods><emu-params>[NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="nh8ex4qo">
|
||
<emu-t>(?=</emu-t>
|
||
<emu-nt params="~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24639"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="mp-zwpth">
|
||
<emu-t>(?!</emu-t>
|
||
<emu-nt params="~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24640"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ExtendedAtom" params="NamedCaptureGroups" type="lexical" id="prod-annexB-ExtendedAtom">
|
||
<emu-nt params="NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a><emu-mods><emu-params>[NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lljkc4zd">
|
||
<emu-t>.</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="veow4kfz">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt params="~UnicodeMode, ?NamedCaptureGroups" id="_ref_24641"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-AtomEscape">AtomEscape</a><emu-mods><emu-params>[~UnicodeMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="3hxbxljo">
|
||
<emu-t>\</emu-t>
|
||
<emu-gann>[lookahead = <emu-t>c</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="_y_hqhcp">
|
||
<emu-nt params="~UnicodeMode, ~UnicodeSetsMode" id="_ref_24642"><a href="text-processing.html#prod-CharacterClass">CharacterClass</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mqkgby0e">
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="~UnicodeMode" optional="" id="_ref_24643"><a href="text-processing.html#prod-GroupSpecifier">GroupSpecifier</a><emu-mods><emu-params>[~UnicodeMode]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt params="~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24644"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="1suivg_l">
|
||
<emu-t>(?</emu-t>
|
||
<emu-nt id="_ref_24645"><a href="text-processing.html#prod-RegularExpressionModifiers">RegularExpressionModifiers</a></emu-nt>
|
||
<emu-t>:</emu-t>
|
||
<emu-nt params="~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24646"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="gth2mjgo">
|
||
<emu-t>(?</emu-t>
|
||
<emu-nt id="_ref_24647"><a href="text-processing.html#prod-RegularExpressionModifiers">RegularExpressionModifiers</a></emu-nt>
|
||
<emu-t>-</emu-t>
|
||
<emu-nt id="_ref_24648"><a href="text-processing.html#prod-RegularExpressionModifiers">RegularExpressionModifiers</a></emu-nt>
|
||
<emu-t>:</emu-t>
|
||
<emu-nt params="~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups" id="_ref_24649"><a href="text-processing.html#prod-Disjunction">Disjunction</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="u9cvu_c3">
|
||
<emu-nt id="_ref_24650"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-InvalidBracedQuantifier">InvalidBracedQuantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="i6ekw12q">
|
||
<emu-nt id="_ref_24651"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedPatternCharacter">ExtendedPatternCharacter</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="InvalidBracedQuantifier" type="lexical" id="prod-annexB-InvalidBracedQuantifier">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-InvalidBracedQuantifier">InvalidBracedQuantifier</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="qn2ibvok">
|
||
<emu-t>{</emu-t>
|
||
<emu-nt params="~Sep" id="_ref_24652"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[~Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="tij_jhmn">
|
||
<emu-t>{</emu-t>
|
||
<emu-nt params="~Sep" id="_ref_24653"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[~Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>,}</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="bthfi5pb">
|
||
<emu-t>{</emu-t>
|
||
<emu-nt params="~Sep" id="_ref_24654"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[~Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>,</emu-t>
|
||
<emu-nt params="~Sep" id="_ref_24655"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[~Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ExtendedPatternCharacter" type="lexical" id="prod-annexB-ExtendedPatternCharacter">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedPatternCharacter">ExtendedPatternCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="pqi8yfef">
|
||
<emu-nt id="_ref_24656"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not one of <emu-t>^</emu-t></emu-gmod>
|
||
<emu-t>$</emu-t>
|
||
<emu-t>\</emu-t>
|
||
<emu-t>.</emu-t>
|
||
<emu-t>*</emu-t>
|
||
<emu-t>+</emu-t>
|
||
<emu-t>?</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>[</emu-t>
|
||
<emu-t>|</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AtomEscape" params="UnicodeMode, NamedCaptureGroups" type="lexical" id="prod-annexB-AtomEscape">
|
||
<emu-nt params="UnicodeMode, NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-AtomEscape">AtomEscape</a><emu-mods><emu-params>[UnicodeMode, NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="unvsy4gw" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-nt id="_ref_24657"><a href="text-processing.html#prod-DecimalEscape">DecimalEscape</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="xdwyknsm" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt id="_ref_24658"><a href="text-processing.html#prod-DecimalEscape">DecimalEscape</a></emu-nt>
|
||
<emu-gmod>but only if the <emu-xref aoid="CapturingGroupNumber" id="_ref_17378"><a href="text-processing.html#sec-patterns-static-semantics-capturing-group-number">CapturingGroupNumber</a></emu-xref> of <emu-nt id="_ref_24659"><a href="text-processing.html#prod-DecimalEscape">DecimalEscape</a></emu-nt> is ≤ <emu-xref aoid="CountLeftCapturingParensWithin" id="_ref_17379"><a href="text-processing.html#sec-countleftcapturingparenswithin">CountLeftCapturingParensWithin</a></emu-xref>(the <emu-nt id="_ref_24660"><a href="text-processing.html#prod-Pattern">Pattern</a></emu-nt> containing <emu-nt id="_ref_24661"><a href="text-processing.html#prod-DecimalEscape">DecimalEscape</a></emu-nt>)</emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="1dlni0cs">
|
||
<emu-nt params="?UnicodeMode" id="_ref_24662"><a href="text-processing.html#prod-CharacterClassEscape">CharacterClassEscape</a><emu-mods><emu-params>[?UnicodeMode]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="u07pzamz">
|
||
<emu-nt params="?UnicodeMode, ?NamedCaptureGroups" id="_ref_24663"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-CharacterEscape">CharacterEscape</a><emu-mods><emu-params>[?UnicodeMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="jsb3w65g" constraints="+NamedCaptureGroups"><emu-constraints>[+NamedCaptureGroups]</emu-constraints>
|
||
<emu-t>k</emu-t>
|
||
<emu-nt params="?UnicodeMode" id="_ref_24664"><a href="text-processing.html#prod-GroupName">GroupName</a><emu-mods><emu-params>[?UnicodeMode]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="CharacterEscape" params="UnicodeMode, NamedCaptureGroups" type="lexical" id="prod-annexB-CharacterEscape">
|
||
<emu-nt params="UnicodeMode, NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-CharacterEscape">CharacterEscape</a><emu-mods><emu-params>[UnicodeMode, NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="-i5xcal8">
|
||
<emu-nt id="_ref_24665"><a href="text-processing.html#prod-ControlEscape">ControlEscape</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="lf4h7vn-">
|
||
<emu-t>c</emu-t>
|
||
<emu-nt id="_ref_24666"><a href="ecmascript-language-lexical-grammar.html#prod-AsciiLetter">AsciiLetter</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="br2d94cy">
|
||
<emu-t>0</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_24667"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="qacbhaps">
|
||
<emu-nt id="_ref_24668"><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="swcse7so">
|
||
<emu-nt params="?UnicodeMode" id="_ref_24669"><a href="text-processing.html#prod-RegExpUnicodeEscapeSequence">RegExpUnicodeEscapeSequence</a><emu-mods><emu-params>[?UnicodeMode]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="-xli1f79" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt id="_ref_24670"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="b0ey0idr">
|
||
<emu-nt params="?UnicodeMode, ?NamedCaptureGroups" id="_ref_24671"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-IdentityEscape">IdentityEscape</a><emu-mods><emu-params>[?UnicodeMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="IdentityEscape" params="UnicodeMode, NamedCaptureGroups" type="lexical" id="prod-annexB-IdentityEscape">
|
||
<emu-nt params="UnicodeMode, NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-IdentityEscape">IdentityEscape</a><emu-mods><emu-params>[UnicodeMode, NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="_sxoisew" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-nt id="_ref_24672"><a href="text-processing.html#prod-SyntaxCharacter">SyntaxCharacter</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="iiubx3hh" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-t>/</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="ie232_wq" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-nt params="?NamedCaptureGroups" id="_ref_24673"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SourceCharacterIdentityEscape">SourceCharacterIdentityEscape</a><emu-mods><emu-params>[?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SourceCharacterIdentityEscape" params="NamedCaptureGroups" type="lexical" id="prod-annexB-SourceCharacterIdentityEscape">
|
||
<emu-nt params="NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-SourceCharacterIdentityEscape">SourceCharacterIdentityEscape</a><emu-mods><emu-params>[NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="olipppeh" constraints="~NamedCaptureGroups"><emu-constraints>[~NamedCaptureGroups]</emu-constraints>
|
||
<emu-nt id="_ref_24674"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not <emu-t>c</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="x29lk3qs" constraints="+NamedCaptureGroups"><emu-constraints>[+NamedCaptureGroups]</emu-constraints>
|
||
<emu-nt id="_ref_24675"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not one of <emu-t>c</emu-t> or <emu-t>k</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ClassAtomNoDash" params="UnicodeMode, NamedCaptureGroups" type="lexical" id="prod-annexB-ClassAtomNoDash">
|
||
<emu-nt params="UnicodeMode, NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a><emu-mods><emu-params>[UnicodeMode, NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7n5ukjeb">
|
||
<emu-nt id="_ref_24676"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not one of <emu-t>\</emu-t> or <emu-t>]</emu-t> or <emu-t>-</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="lyw9nyqw">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt params="?UnicodeMode, ?NamedCaptureGroups" id="_ref_24677"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassEscape">ClassEscape</a><emu-mods><emu-params>[?UnicodeMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="3hxbxljo">
|
||
<emu-t>\</emu-t>
|
||
<emu-gann>[lookahead = <emu-t>c</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ClassEscape" params="UnicodeMode, NamedCaptureGroups" type="lexical" id="prod-annexB-ClassEscape">
|
||
<emu-nt params="UnicodeMode, NamedCaptureGroups"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassEscape">ClassEscape</a><emu-mods><emu-params>[UnicodeMode, NamedCaptureGroups]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ayxoiyyq">
|
||
<emu-t>b</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="7_g4l0lw" constraints="+UnicodeMode"><emu-constraints>[+UnicodeMode]</emu-constraints>
|
||
<emu-t>-</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="eahv3obf" constraints="~UnicodeMode"><emu-constraints>[~UnicodeMode]</emu-constraints>
|
||
<emu-t>c</emu-t>
|
||
<emu-nt id="_ref_24678"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassControlLetter">ClassControlLetter</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="1dlni0cs">
|
||
<emu-nt params="?UnicodeMode" id="_ref_24679"><a href="text-processing.html#prod-CharacterClassEscape">CharacterClassEscape</a><emu-mods><emu-params>[?UnicodeMode]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="u07pzamz">
|
||
<emu-nt params="?UnicodeMode, ?NamedCaptureGroups" id="_ref_24680"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-CharacterEscape">CharacterEscape</a><emu-mods><emu-params>[?UnicodeMode, ?NamedCaptureGroups]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ClassControlLetter" type="lexical" id="prod-annexB-ClassControlLetter">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassControlLetter">ClassControlLetter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="s4me4hlz">
|
||
<emu-nt id="_ref_24681"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="b1zllonv">
|
||
<emu-t>_</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>When the same left-hand sides occurs with both [+UnicodeMode] and [~UnicodeMode] guards it is to control the disambiguation priority.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-annex id="sec-patterns-static-semantics-early-errors-annexb">
|
||
<h1><span class="secnum">B.1.2.1</span> Static Semantics: Early Errors</h1>
|
||
<p>The semantics of <emu-xref href="#sec-patterns-static-semantics-early-errors" id="_ref_855"><a href="text-processing.html#sec-patterns-static-semantics-early-errors">22.2.1.1</a></emu-xref> is extended as follows:</p>
|
||
<emu-grammar><emu-production name="ExtendedAtom" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="u9cvu_c3"><emu-nt id="_ref_24682"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-InvalidBracedQuantifier">InvalidBracedQuantifier</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<ul>
|
||
<li>
|
||
It is a Syntax Error if any source text is matched by this production.
|
||
</li>
|
||
</ul>
|
||
<p>Additionally, the rules for the following productions are modified with the addition of the <ins>highlighted</ins> text:</p>
|
||
<emu-grammar><emu-production name="NonemptyClassRanges" type="lexical" collapsed="">
|
||
<emu-nt><a href="text-processing.html#prod-NonemptyClassRanges">NonemptyClassRanges</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2bs-sw8o">
|
||
<emu-nt id="_ref_24683"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>
|
||
<emu-t>-</emu-t>
|
||
<emu-nt id="_ref_24684"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>
|
||
<emu-nt id="_ref_24685"><a href="text-processing.html#prod-ClassContents">ClassContents</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<ul>
|
||
<li>
|
||
It is a Syntax Error if <emu-xref aoid="IsCharacterClass" id="_ref_17380"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of the first <emu-nt id="_ref_24686"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> is <emu-val>true</emu-val> or <emu-xref aoid="IsCharacterClass" id="_ref_17381"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of the second <emu-nt id="_ref_24687"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> is <emu-val>true</emu-val> <ins>and this production has a <sub>[UnicodeMode]</sub> parameter</ins>.
|
||
</li>
|
||
<li>
|
||
It is a Syntax Error if <emu-xref aoid="IsCharacterClass" id="_ref_17382"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of the first <emu-nt id="_ref_24688"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> is <emu-val>false</emu-val>, <emu-xref aoid="IsCharacterClass" id="_ref_17383"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of the second <emu-nt id="_ref_24689"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> is <emu-val>false</emu-val>, and the <emu-xref aoid="CharacterValue" id="_ref_17384"><a href="text-processing.html#sec-patterns-static-semantics-character-value">CharacterValue</a></emu-xref> of the first <emu-nt id="_ref_24690"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> is strictly greater than the <emu-xref aoid="CharacterValue" id="_ref_17385"><a href="text-processing.html#sec-patterns-static-semantics-character-value">CharacterValue</a></emu-xref> of the second <emu-nt id="_ref_24691"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>.
|
||
</li>
|
||
</ul>
|
||
<emu-grammar><emu-production name="NonemptyClassRangesNoDash" type="lexical" collapsed="">
|
||
<emu-nt><a href="text-processing.html#prod-NonemptyClassRangesNoDash">NonemptyClassRangesNoDash</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="udwlha-v">
|
||
<emu-nt id="_ref_24692"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt>
|
||
<emu-t>-</emu-t>
|
||
<emu-nt id="_ref_24693"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>
|
||
<emu-nt id="_ref_24694"><a href="text-processing.html#prod-ClassContents">ClassContents</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<ul>
|
||
<li>
|
||
It is a Syntax Error if <emu-xref aoid="IsCharacterClass" id="_ref_17386"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of <emu-nt id="_ref_24695"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt> is <emu-val>true</emu-val> or <emu-xref aoid="IsCharacterClass" id="_ref_17387"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of <emu-nt id="_ref_24696"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> is <emu-val>true</emu-val> <ins>and this production has a <sub>[UnicodeMode]</sub> parameter</ins>.
|
||
</li>
|
||
<li>
|
||
It is a Syntax Error if <emu-xref aoid="IsCharacterClass" id="_ref_17388"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of <emu-nt id="_ref_24697"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt> is <emu-val>false</emu-val>, <emu-xref aoid="IsCharacterClass" id="_ref_17389"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">IsCharacterClass</a></emu-xref> of <emu-nt id="_ref_24698"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> is <emu-val>false</emu-val>, and the <emu-xref aoid="CharacterValue" id="_ref_17390"><a href="text-processing.html#sec-patterns-static-semantics-character-value">CharacterValue</a></emu-xref> of <emu-nt id="_ref_24699"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt> is strictly greater than the <emu-xref aoid="CharacterValue" id="_ref_17391"><a href="text-processing.html#sec-patterns-static-semantics-character-value">CharacterValue</a></emu-xref> of <emu-nt id="_ref_24700"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>.
|
||
</li>
|
||
</ul>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-countleftcapturingparens-annexb">
|
||
<h1><span class="secnum">B.1.2.2</span> Static Semantics: CountLeftCapturingParensWithin and CountLeftCapturingParensBefore</h1>
|
||
<p>In the definitions of <emu-xref aoid="CountLeftCapturingParensWithin" id="_ref_17392"><a href="text-processing.html#sec-countleftcapturingparenswithin">CountLeftCapturingParensWithin</a></emu-xref> and <emu-xref aoid="CountLeftCapturingParensBefore" id="_ref_17393"><a href="text-processing.html#sec-countleftcapturingparensbefore">CountLeftCapturingParensBefore</a></emu-xref>, references to “<emu-grammar><emu-production name="Atom" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="text-processing.html#prod-Atom">Atom</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lnltxn63">
|
||
<emu-t>(</emu-t>
|
||
<emu-nt optional="" id="_ref_24701"><a href="text-processing.html#prod-GroupSpecifier">GroupSpecifier</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_24702"><a href="text-processing.html#prod-Disjunction">Disjunction</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> ” are to be interpreted as meaning “<emu-grammar><emu-production name="Atom" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="text-processing.html#prod-Atom">Atom</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lnltxn63">
|
||
<emu-t>(</emu-t>
|
||
<emu-nt optional="" id="_ref_24703"><a href="text-processing.html#prod-GroupSpecifier">GroupSpecifier</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_24704"><a href="text-processing.html#prod-Disjunction">Disjunction</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> ” or “<emu-grammar><emu-production name="ExtendedAtom" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lnltxn63">
|
||
<emu-t>(</emu-t>
|
||
<emu-nt optional="" id="_ref_24705"><a href="text-processing.html#prod-GroupSpecifier">GroupSpecifier</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_24706"><a href="text-processing.html#prod-Disjunction">Disjunction</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> ”.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-patterns-static-semantics-is-character-class-annexb">
|
||
<h1><span class="secnum">B.1.2.3</span> Static Semantics: IsCharacterClass</h1>
|
||
<p>The semantics of <emu-xref href="#sec-patterns-static-semantics-is-character-class" id="_ref_856"><a href="text-processing.html#sec-patterns-static-semantics-is-character-class">22.2.1.6</a></emu-xref> is extended as follows:</p>
|
||
<emu-grammar><emu-production name="ClassAtomNoDash" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="3hxbxljo">
|
||
<emu-t>\</emu-t>
|
||
<emu-gann>[lookahead = <emu-t>c</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-val>false</emu-val>.</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-patterns-static-semantics-character-value-annexb">
|
||
<h1><span class="secnum">B.1.2.4</span> Static Semantics: CharacterValue</h1>
|
||
<p>The semantics of <emu-xref href="#sec-patterns-static-semantics-character-value" id="_ref_857"><a href="text-processing.html#sec-patterns-static-semantics-character-value">22.2.1.7</a></emu-xref> is extended as follows:</p>
|
||
<emu-grammar><emu-production name="ClassAtomNoDash" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="3hxbxljo">
|
||
<emu-t>\</emu-t>
|
||
<emu-gann>[lookahead = <emu-t>c</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the numeric value of U+005C (REVERSE SOLIDUS).</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="ClassEscape" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassEscape">ClassEscape</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="nh-f7aun">
|
||
<emu-t>c</emu-t>
|
||
<emu-nt id="_ref_24707"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassControlLetter">ClassControlLetter</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>ch</var> be the code point matched by <emu-nt id="_ref_24708"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassControlLetter">ClassControlLetter</a></emu-nt>.</li><li>Let <var>i</var> be the numeric value of <var>ch</var>.</li><li>Return the remainder of dividing <var>i</var> by 32.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="CharacterEscape" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-CharacterEscape">CharacterEscape</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6mwrfc1u"><emu-nt id="_ref_24709"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the MV of <emu-nt id="_ref_24710"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt> (see <emu-xref href="#sec-string-literals-static-semantics-mv" id="_ref_858"><a href="ecmascript-language-lexical-grammar.html#sec-string-literals-static-semantics-mv">12.9.4.3</a></emu-xref>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-compilesubpattern-annexb" oldids="sec-regular-expression-patterns-semantics"><span id="sec-regular-expression-patterns-semantics"></span>
|
||
<h1><span class="secnum">B.1.2.5</span> Runtime Semantics: CompileSubpattern</h1>
|
||
<p>The semantics of <emu-xref aoid="CompileSubpattern" id="_ref_17394"><a href="text-processing.html#sec-compilesubpattern">CompileSubpattern</a></emu-xref> is extended as follows:</p>
|
||
|
||
<p>The rule for <emu-grammar><emu-production name="Term" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Term">Term</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="_vyhfqa_">
|
||
<emu-nt id="_ref_24711"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-QuantifiableAssertion">QuantifiableAssertion</a></emu-nt>
|
||
<emu-nt id="_ref_24712"><a href="text-processing.html#prod-Quantifier">Quantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the same as for <emu-grammar><emu-production name="Term" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Term">Term</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="rk7qpcwj">
|
||
<emu-nt id="_ref_24713"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt>
|
||
<emu-nt id="_ref_24714"><a href="text-processing.html#prod-Quantifier">Quantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> but with <emu-nt id="_ref_24715"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-QuantifiableAssertion">QuantifiableAssertion</a></emu-nt> substituted for <emu-nt id="_ref_24716"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt>.</p>
|
||
<p>The rule for <emu-grammar><emu-production name="Term" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Term">Term</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dpvmg_nc">
|
||
<emu-nt id="_ref_24717"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt>
|
||
<emu-nt id="_ref_24718"><a href="text-processing.html#prod-Quantifier">Quantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the same as for <emu-grammar><emu-production name="Term" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Term">Term</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="rk7qpcwj">
|
||
<emu-nt id="_ref_24719"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt>
|
||
<emu-nt id="_ref_24720"><a href="text-processing.html#prod-Quantifier">Quantifier</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> but with <emu-nt id="_ref_24721"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> substituted for <emu-nt id="_ref_24722"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt>.</p>
|
||
<p>The rule for <emu-grammar><emu-production name="Term" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Term">Term</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lwdcmhgw"><emu-nt id="_ref_24723"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the same as for <emu-grammar><emu-production name="Term" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Term">Term</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="qd3tqxbs"><emu-nt id="_ref_24724"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> but with <emu-nt id="_ref_24725"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> substituted for <emu-nt id="_ref_24726"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt>.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-compileassertion-annexb">
|
||
<h1><span class="secnum">B.1.2.6</span> Runtime Semantics: CompileAssertion</h1>
|
||
<p><emu-xref aoid="CompileAssertion" id="_ref_17395"><a href="text-processing.html#sec-compileassertion">CompileAssertion</a></emu-xref> rules for the <emu-grammar><emu-production name="Assertion" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Assertion">Assertion</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fbtayxzo">
|
||
<emu-t>(?=</emu-t>
|
||
<emu-nt id="_ref_24727"><a href="text-processing.html#prod-Disjunction">Disjunction</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> and <emu-grammar><emu-production name="Assertion" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Assertion">Assertion</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="uwxc-jvg">
|
||
<emu-t>(?!</emu-t>
|
||
<emu-nt id="_ref_24728"><a href="text-processing.html#prod-Disjunction">Disjunction</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> productions are also used for the <emu-nt id="_ref_24729"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-QuantifiableAssertion">QuantifiableAssertion</a></emu-nt> productions, but with <emu-nt id="_ref_24730"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-QuantifiableAssertion">QuantifiableAssertion</a></emu-nt> substituted for <emu-nt id="_ref_24731"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-Assertion">Assertion</a></emu-nt>.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-compileatom-annexb">
|
||
<h1><span class="secnum">B.1.2.7</span> Runtime Semantics: CompileAtom</h1>
|
||
<p><emu-xref aoid="CompileAtom" id="_ref_17396"><a href="text-processing.html#sec-compileatom">CompileAtom</a></emu-xref> rules for the <emu-nt id="_ref_24732"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt> productions except for <emu-grammar><emu-production name="Atom" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="text-processing.html#prod-Atom">Atom</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="vv9sxhyc"><emu-nt id="_ref_24733"><a href="text-processing.html#prod-PatternCharacter">PatternCharacter</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> are also used for the <emu-nt id="_ref_24734"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> productions, but with <emu-nt id="_ref_24735"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> substituted for <emu-nt id="_ref_24736"><a href="text-processing.html#prod-Atom">Atom</a></emu-nt>. The following rules, with parameter <var>direction</var>, are also added:</p>
|
||
<emu-grammar><emu-production name="ExtendedAtom" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="3hxbxljo">
|
||
<emu-t>\</emu-t>
|
||
<emu-gann>[lookahead = <emu-t>c</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>A</var> be the <emu-xref href="#pattern-charset" id="_ref_17397"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref> containing the single character <code>\</code> U+005C (REVERSE SOLIDUS).</li><li>Return <emu-xref aoid="CharacterSetMatcher" id="_ref_17398"><a href="text-processing.html#sec-runtime-semantics-charactersetmatcher-abstract-operation">CharacterSetMatcher</a></emu-xref>(<var>rer</var>, <var>A</var>, <emu-val>false</emu-val>, <var>direction</var>).</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="ExtendedAtom" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedAtom">ExtendedAtom</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="i6ekw12q"><emu-nt id="_ref_24737"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedPatternCharacter">ExtendedPatternCharacter</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>ch</var> be the character represented by <emu-nt id="_ref_24738"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ExtendedPatternCharacter">ExtendedPatternCharacter</a></emu-nt>.</li><li>Let <var>A</var> be a one-element <emu-xref href="#pattern-charset" id="_ref_17399"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref> containing the character <var>ch</var>.</li><li>Return <emu-xref aoid="CharacterSetMatcher" id="_ref_17400"><a href="text-processing.html#sec-runtime-semantics-charactersetmatcher-abstract-operation">CharacterSetMatcher</a></emu-xref>(<var>rer</var>, <var>A</var>, <emu-val>false</emu-val>, <var>direction</var>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-compiletocharset-annexb">
|
||
<h1><span class="secnum">B.1.2.8</span> Runtime Semantics: CompileToCharSet</h1>
|
||
<p>The semantics of <emu-xref href="#sec-compiletocharset" id="_ref_859"><a href="text-processing.html#sec-compiletocharset">22.2.2.9</a></emu-xref> is extended as follows:</p>
|
||
|
||
<p>The following two rules replace the corresponding rules of <emu-xref aoid="CompileToCharSet" id="_ref_17401"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref>.</p>
|
||
<emu-grammar><emu-production name="NonemptyClassRanges" type="lexical" collapsed="">
|
||
<emu-nt><a href="text-processing.html#prod-NonemptyClassRanges">NonemptyClassRanges</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2bs-sw8o">
|
||
<emu-nt id="_ref_24739"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>
|
||
<emu-t>-</emu-t>
|
||
<emu-nt id="_ref_24740"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>
|
||
<emu-nt id="_ref_24741"><a href="text-processing.html#prod-ClassContents">ClassContents</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>A</var> be <emu-xref aoid="CompileToCharSet" id="_ref_17402"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref> of the first <emu-nt id="_ref_24742"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> with argument <var>rer</var>.</li><li>Let <var>B</var> be <emu-xref aoid="CompileToCharSet" id="_ref_17403"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref> of the second <emu-nt id="_ref_24743"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> with argument <var>rer</var>.</li><li>Let <var>C</var> be <emu-xref aoid="CompileToCharSet" id="_ref_17404"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref> of <emu-nt id="_ref_24744"><a href="text-processing.html#prod-ClassContents">ClassContents</a></emu-nt> with argument <var>rer</var>.</li><li>Let <var>D</var> be <emu-xref aoid="CharacterRangeOrUnion" id="_ref_17405"><a href="additional-ecmascript-features-for-web-browsers.html#sec-runtime-semantics-characterrangeorunion-abstract-operation">CharacterRangeOrUnion</a></emu-xref>(<var>rer</var>, <var>A</var>, <var>B</var>).</li><li>Return the union of <var>D</var> and <var>C</var>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="NonemptyClassRangesNoDash" type="lexical" collapsed="">
|
||
<emu-nt><a href="text-processing.html#prod-NonemptyClassRangesNoDash">NonemptyClassRangesNoDash</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="udwlha-v">
|
||
<emu-nt id="_ref_24745"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt>
|
||
<emu-t>-</emu-t>
|
||
<emu-nt id="_ref_24746"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt>
|
||
<emu-nt id="_ref_24747"><a href="text-processing.html#prod-ClassContents">ClassContents</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>A</var> be <emu-xref aoid="CompileToCharSet" id="_ref_17406"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref> of <emu-nt id="_ref_24748"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt> with argument <var>rer</var>.</li><li>Let <var>B</var> be <emu-xref aoid="CompileToCharSet" id="_ref_17407"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref> of <emu-nt id="_ref_24749"><a href="text-processing.html#prod-ClassAtom">ClassAtom</a></emu-nt> with argument <var>rer</var>.</li><li>Let <var>C</var> be <emu-xref aoid="CompileToCharSet" id="_ref_17408"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref> of <emu-nt id="_ref_24750"><a href="text-processing.html#prod-ClassContents">ClassContents</a></emu-nt> with argument <var>rer</var>.</li><li>Let <var>D</var> be <emu-xref aoid="CharacterRangeOrUnion" id="_ref_17409"><a href="additional-ecmascript-features-for-web-browsers.html#sec-runtime-semantics-characterrangeorunion-abstract-operation">CharacterRangeOrUnion</a></emu-xref>(<var>rer</var>, <var>A</var>, <var>B</var>).</li><li>Return the union of <var>D</var> and <var>C</var>.</li></ol></emu-alg>
|
||
|
||
<p>In addition, the following rules are added to <emu-xref aoid="CompileToCharSet" id="_ref_17410"><a href="text-processing.html#sec-compiletocharset">CompileToCharSet</a></emu-xref>.</p>
|
||
<emu-grammar><emu-production name="ClassEscape" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassEscape">ClassEscape</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="nh-f7aun">
|
||
<emu-t>c</emu-t>
|
||
<emu-nt id="_ref_24751"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassControlLetter">ClassControlLetter</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>cv</var> be the <emu-xref aoid="CharacterValue" id="_ref_17411"><a href="text-processing.html#sec-patterns-static-semantics-character-value">CharacterValue</a></emu-xref> of this <emu-nt id="_ref_24752"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassEscape">ClassEscape</a></emu-nt>.</li><li>Let <var>c</var> be the character whose character value is <var>cv</var>.</li><li>Return the <emu-xref href="#pattern-charset" id="_ref_17412"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref> containing the single character <var>c</var>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="ClassAtomNoDash" type="lexical" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ClassAtomNoDash">ClassAtomNoDash</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="3hxbxljo">
|
||
<emu-t>\</emu-t>
|
||
<emu-gann>[lookahead = <emu-t>c</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the <emu-xref href="#pattern-charset" id="_ref_17413"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref> containing the single character <code>\</code> U+005C (REVERSE SOLIDUS).</li></ol></emu-alg>
|
||
|
||
<emu-note><span class="note">Note</span><div class="note-contents">This production can only be reached from the sequence <code>\c</code> within a character class where it is not followed by an acceptable control character.</div></emu-note>
|
||
|
||
<emu-annex id="sec-runtime-semantics-characterrangeorunion-abstract-operation" type="abstract operation" aoid="CharacterRangeOrUnion">
|
||
<h1><span class="secnum">B.1.2.8.1</span> CharacterRangeOrUnion ( <var>rer</var>, <var>A</var>, <var>B</var> )</h1>
|
||
<p>The abstract operation CharacterRangeOrUnion takes arguments <var>rer</var> (a <emu-xref href="#sec-regexp-records" id="_ref_17414"><a href="text-processing.html#sec-regexp-records">RegExp Record</a></emu-xref>), <var>A</var> (a <emu-xref href="#pattern-charset" id="_ref_17415"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref>), and <var>B</var> (a <emu-xref href="#pattern-charset" id="_ref_17416"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref>) and returns a <emu-xref href="#pattern-charset" id="_ref_17417"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <emu-xref aoid="HasEitherUnicodeFlag" id="_ref_17418"><a href="text-processing.html#sec-runtime-semantics-haseitherunicodeflag-abstract-operation">HasEitherUnicodeFlag</a></emu-xref>(<var>rer</var>) is <emu-val>false</emu-val>, then<ol><li>If <var>A</var> does not contain exactly one character or <var>B</var> does not contain exactly one character, then<ol><li>Let <var>C</var> be the <emu-xref href="#pattern-charset" id="_ref_17419"><a href="text-processing.html#pattern-charset">CharSet</a></emu-xref> containing the single character <code>-</code> U+002D (HYPHEN-MINUS).</li><li>Return the union of <emu-xref href="#pattern-charset" id="_ref_17420"><a href="text-processing.html#pattern-charset">CharSets</a></emu-xref> <var>A</var>, <var>B</var> and <var>C</var>.</li></ol></li></ol></li><li>Return <emu-xref aoid="CharacterRange" id="_ref_17421"><a href="text-processing.html#sec-runtime-semantics-characterrange-abstract-operation">CharacterRange</a></emu-xref>(<var>A</var>, <var>B</var>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-parsepattern-annexb">
|
||
<h1><span class="secnum">B.1.2.9</span> Static Semantics: ParsePattern ( <var>patternText</var>, <var>u</var>, <var>v</var> )</h1>
|
||
<p>The semantics of <emu-xref href="#sec-parsepattern" id="_ref_860"><a href="text-processing.html#sec-parsepattern">22.2.3.4</a></emu-xref> is extended as follows:</p>
|
||
<p>The abstract operation <emu-xref aoid="ParsePattern" id="_ref_17422"><a href="text-processing.html#sec-parsepattern">ParsePattern</a></emu-xref> takes arguments <var>patternText</var> (a sequence of Unicode code points), <var>u</var> (a Boolean), and <var>v</var> (a Boolean). It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>v</var> is <emu-val>true</emu-val> and <var>u</var> is <emu-val>true</emu-val>, then<ol><li>Let <var>parseResult</var> be a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_17423"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> containing one or more <emu-val>SyntaxError</emu-val> objects.</li></ol></li><li>Else if <var>v</var> is <emu-val>true</emu-val>, then<ol><li>Let <var>parseResult</var> be <emu-xref aoid="ParseText" id="_ref_17424"><a href="ecmascript-language-source-code.html#sec-parsetext">ParseText</a></emu-xref>(<var>patternText</var>, <emu-nt params="+UnicodeMode, +UnicodeSetsMode, +NamedCaptureGroups" id="_ref_24753"><a href="text-processing.html#prod-Pattern">Pattern</a><emu-mods><emu-params>[+UnicodeMode, +UnicodeSetsMode, +NamedCaptureGroups]</emu-params></emu-mods></emu-nt>).</li></ol></li><li>Else if <var>u</var> is <emu-val>true</emu-val>, then<ol><li>Let <var>parseResult</var> be <emu-xref aoid="ParseText" id="_ref_17425"><a href="ecmascript-language-source-code.html#sec-parsetext">ParseText</a></emu-xref>(<var>patternText</var>, <emu-nt params="+UnicodeMode, ~UnicodeSetsMode, +NamedCaptureGroups" id="_ref_24754"><a href="text-processing.html#prod-Pattern">Pattern</a><emu-mods><emu-params>[+UnicodeMode, ~UnicodeSetsMode, +NamedCaptureGroups]</emu-params></emu-mods></emu-nt>).</li></ol></li><li>Else,<ol><li>Let <var>parseResult</var> be <emu-xref aoid="ParseText" id="_ref_17426"><a href="ecmascript-language-source-code.html#sec-parsetext">ParseText</a></emu-xref>(<var>patternText</var>, <emu-nt params="~UnicodeMode, ~UnicodeSetsMode, ~NamedCaptureGroups" id="_ref_24755"><a href="text-processing.html#prod-Pattern">Pattern</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, ~NamedCaptureGroups]</emu-params></emu-mods></emu-nt>).</li><li>If <var>parseResult</var> is a <emu-xref href="#sec-syntactic-grammar" id="_ref_17427"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref> and <var>parseResult</var> contains a <emu-nt id="_ref_24756"><a href="text-processing.html#prod-GroupName">GroupName</a></emu-nt>, then<ol><li>Set <var>parseResult</var> to <emu-xref aoid="ParseText" id="_ref_17428"><a href="ecmascript-language-source-code.html#sec-parsetext">ParseText</a></emu-xref>(<var>patternText</var>, <emu-nt params="~UnicodeMode, ~UnicodeSetsMode, +NamedCaptureGroups" id="_ref_24757"><a href="text-processing.html#prod-Pattern">Pattern</a><emu-mods><emu-params>[~UnicodeMode, ~UnicodeSetsMode, +NamedCaptureGroups]</emu-params></emu-mods></emu-nt>).</li></ol></li></ol></li><li>Return <var>parseResult</var>.</li></ol></emu-alg>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-additional-built-in-properties">
|
||
<h1><span class="secnum">B.2</span> Additional Built-in Properties</h1>
|
||
<p>When the ECMAScript <emu-xref href="#host" id="_ref_17429"><a href="overview.html#host">host</a></emu-xref> is a web browser the following additional properties of the standard built-in objects are defined.</p>
|
||
|
||
<emu-annex id="sec-additional-properties-of-the-global-object">
|
||
<h1><span class="secnum">B.2.1</span> Additional Properties of the Global Object</h1>
|
||
<p>The entries in <emu-xref href="#table-additional-well-known-intrinsic-objects" id="_ref_861"><a href="additional-ecmascript-features-for-web-browsers.html#table-additional-well-known-intrinsic-objects">Table 97</a></emu-xref> are added to <emu-xref href="#table-well-known-intrinsic-objects" id="_ref_862"><a href="ecmascript-data-types-and-values.html#table-well-known-intrinsic-objects">Table 6</a></emu-xref>.</p>
|
||
<emu-table id="table-additional-well-known-intrinsic-objects" caption="Additional Well-known Intrinsic Objects" oldids="table-60"><figure><figcaption>Table 97: Additional Well-known Intrinsic Objects</figcaption><span id="table-60"></span>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>
|
||
Intrinsic Name
|
||
</th>
|
||
<th>
|
||
Global Name
|
||
</th>
|
||
<th>
|
||
ECMAScript Language Association
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr>
|
||
<td>
|
||
<emu-xref href="#sec-escape-string" id="_ref_17430"><a href="additional-ecmascript-features-for-web-browsers.html#sec-escape-string">%escape%</a></emu-xref>
|
||
</td>
|
||
<td>
|
||
<code>escape</code>
|
||
</td>
|
||
<td>
|
||
The <code>escape</code> function (<emu-xref href="#sec-escape-string" id="_ref_863"><a href="additional-ecmascript-features-for-web-browsers.html#sec-escape-string">B.2.1.1</a></emu-xref>)
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-xref href="#sec-unescape-string" id="_ref_17431"><a href="additional-ecmascript-features-for-web-browsers.html#sec-unescape-string">%unescape%</a></emu-xref>
|
||
</td>
|
||
<td>
|
||
<code>unescape</code>
|
||
</td>
|
||
<td>
|
||
The <code>unescape</code> function (<emu-xref href="#sec-unescape-string" id="_ref_864"><a href="additional-ecmascript-features-for-web-browsers.html#sec-unescape-string">B.2.1.2</a></emu-xref>)
|
||
</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure></emu-table>
|
||
|
||
<emu-annex id="sec-escape-string" type="built-in function">
|
||
<h1><span class="secnum">B.2.1.1</span> escape ( <var>string</var> )</h1>
|
||
<p>This function is a property of the <emu-xref href="#sec-global-object" id="_ref_17432"><a href="global-object.html#sec-global-object">global object</a></emu-xref>. It computes a new version of a String value in which certain code units have been replaced by a hexadecimal escape sequence.</p>
|
||
<p>When replacing a code unit of numeric value less than or equal to 0x00FF, a two-digit escape sequence of the form <code>%<var>xx</var></code> is used. When replacing a code unit of numeric value strictly greater than 0x00FF, a four-digit escape sequence of the form <code>%u<var>xxxx</var></code> is used.</p>
|
||
<p>It is the <dfn tabindex="-1">%escape%</dfn> intrinsic object.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Set <var>string</var> to ? <emu-xref aoid="ToString" id="_ref_17433"><a href="abstract-operations.html#sec-tostring" class="e-user-code">ToString</a></emu-xref>(<var>string</var>).</li><li>Let <var>len</var> be the length of <var>string</var>.</li><li>Let <var>R</var> be the empty String.</li><li>Let <var>unescapedSet</var> be the <emu-xref href="#string-concatenation" id="_ref_17434"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <emu-xref href="#ASCII-word-characters" id="_ref_17435"><a href="ecmascript-data-types-and-values.html#ASCII-word-characters">the ASCII word characters</a></emu-xref> and <emu-val>"@*+-./"</emu-val>.</li><li>Let <var>k</var> be 0.</li><li>Repeat, while <var>k</var> < <var>len</var>,<ol><li>Let <var>C</var> be the code unit at index <var>k</var> within <var>string</var>.</li><li>If <var>unescapedSet</var> contains <var>C</var>, then<ol><li>Let <var>S</var> be <var>C</var>.</li></ol></li><li>Else,<ol><li>Let <var>n</var> be the numeric value of <var>C</var>.</li><li>If <var>n</var> < 256, then<ol><li>Let <var>hex</var> be the String representation of <var>n</var>, formatted as an uppercase hexadecimal number.</li><li>Let <var>S</var> be the <emu-xref href="#string-concatenation" id="_ref_17436"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <emu-val>"%"</emu-val> and <emu-xref aoid="StringPad" id="_ref_17437"><a href="text-processing.html#sec-stringpad">StringPad</a></emu-xref>(<var>hex</var>, 2, <emu-val>"0"</emu-val>, <emu-const>start</emu-const>).</li></ol></li><li>Else,<ol><li>Let <var>hex</var> be the String representation of <var>n</var>, formatted as an uppercase hexadecimal number.</li><li>Let <var>S</var> be the <emu-xref href="#string-concatenation" id="_ref_17438"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <emu-val>"%u"</emu-val> and <emu-xref aoid="StringPad" id="_ref_17439"><a href="text-processing.html#sec-stringpad">StringPad</a></emu-xref>(<var>hex</var>, 4, <emu-val>"0"</emu-val>, <emu-const>start</emu-const>).</li></ol></li></ol></li><li>Set <var>R</var> to the <emu-xref href="#string-concatenation" id="_ref_17440"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>R</var> and <var>S</var>.</li><li>Set <var>k</var> to <var>k</var> + 1.</li></ol></li><li>Return <var>R</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The encoding is partly based on the encoding described in RFC 1738, but the entire encoding specified in this standard is described above without regard to the contents of RFC 1738. This encoding does not reflect changes to RFC 1738 made by RFC 3986.</p>
|
||
</div></emu-note>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-unescape-string" type="built-in function">
|
||
<h1><span class="secnum">B.2.1.2</span> unescape ( <var>string</var> )</h1>
|
||
<p>This function is a property of the <emu-xref href="#sec-global-object" id="_ref_17441"><a href="global-object.html#sec-global-object">global object</a></emu-xref>. It computes a new version of a String value in which each escape sequence of the sort that might be introduced by the <code>escape</code> function is replaced with the code unit that it represents.</p>
|
||
<p>It is the <dfn tabindex="-1">%unescape%</dfn> intrinsic object.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Set <var>string</var> to ? <emu-xref aoid="ToString" id="_ref_17442"><a href="abstract-operations.html#sec-tostring" class="e-user-code">ToString</a></emu-xref>(<var>string</var>).</li><li>Let <var>len</var> be the length of <var>string</var>.</li><li>Let <var>R</var> be the empty String.</li><li>Let <var>k</var> be 0.</li><li>Repeat, while <var>k</var> < <var>len</var>,<ol><li>Let <var>C</var> be the code unit at index <var>k</var> within <var>string</var>.</li><li>If <var>C</var> is the code unit 0x0025 (PERCENT SIGN), then<ol><li>Let <var>hexDigits</var> be the empty String.</li><li>Let <var>optionalAdvance</var> be 0.</li><li>If <var>k</var> + 5 < <var>len</var> and the code unit at index <var>k</var> + 1 within <var>string</var> is the code unit 0x0075 (LATIN SMALL LETTER U), then<ol><li>Set <var>hexDigits</var> to the <emu-xref href="#substring" id="_ref_17443"><a href="ecmascript-data-types-and-values.html#substring">substring</a></emu-xref> of <var>string</var> from <var>k</var> + 2 to <var>k</var> + 6.</li><li>Set <var>optionalAdvance</var> to 5.</li></ol></li><li>Else if <var>k</var> + 3 ≤ <var>len</var>, then<ol><li>Set <var>hexDigits</var> to the <emu-xref href="#substring" id="_ref_17444"><a href="ecmascript-data-types-and-values.html#substring">substring</a></emu-xref> of <var>string</var> from <var>k</var> + 1 to <var>k</var> + 3.</li><li>Set <var>optionalAdvance</var> to 2.</li></ol></li><li>Let <var>parseResult</var> be <emu-xref aoid="ParseText" id="_ref_17445"><a href="ecmascript-language-source-code.html#sec-parsetext">ParseText</a></emu-xref>(<var>hexDigits</var>, <emu-nt params="~Sep" id="_ref_24758"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[~Sep]</emu-params></emu-mods></emu-nt>).</li><li>If <var>parseResult</var> is a <emu-xref href="#sec-syntactic-grammar" id="_ref_17446"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref>, then<ol><li>Let <var>n</var> be the MV of <var>parseResult</var>.</li><li>Set <var>C</var> to the code unit whose numeric value is <var>n</var>.</li><li>Set <var>k</var> to <var>k</var> + <var>optionalAdvance</var>.</li></ol></li></ol></li><li>Set <var>R</var> to the <emu-xref href="#string-concatenation" id="_ref_17447"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>R</var> and <var>C</var>.</li><li>Set <var>k</var> to <var>k</var> + 1.</li></ol></li><li>Return <var>R</var>.</li></ol></emu-alg>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-additional-properties-of-the-string.prototype-object">
|
||
<h1><span class="secnum">B.2.2</span> Additional Properties of the String.prototype Object</h1>
|
||
|
||
<emu-annex id="sec-string.prototype.substr" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.1</span> String.prototype.substr ( <var>start</var>, <var>length</var> )</h1>
|
||
<p>This method returns a <emu-not-ref>substring</emu-not-ref> of the result of converting the <emu-val>this</emu-val> value to a String, starting from index <var>start</var> and running for <var>length</var> code units (or through the end of the String if <var>length</var> is <emu-val>undefined</emu-val>). If <var>start</var> is negative, it is treated as <emu-eqn class="inline"><var>sourceLength</var> + <var>start</var></emu-eqn> where <var>sourceLength</var> is the length of the String. The result <emu-xref href="#sec-ecmascript-language-types-string-type" id="_ref_17448"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type">is a String</a></emu-xref> value, not a String object.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>O</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireObjectCoercible" id="_ref_17449"><a href="abstract-operations.html#sec-requireobjectcoercible">RequireObjectCoercible</a></emu-xref>(<var>O</var>).</li><li>Let <var>S</var> be ? <emu-xref aoid="ToString" id="_ref_17450"><a href="abstract-operations.html#sec-tostring" class="e-user-code">ToString</a></emu-xref>(<var>O</var>).</li><li>Let <var>size</var> be the length of <var>S</var>.</li><li>Let <var>intStart</var> be ? <emu-xref aoid="ToIntegerOrInfinity" id="_ref_17451"><a href="abstract-operations.html#sec-tointegerorinfinity" class="e-user-code">ToIntegerOrInfinity</a></emu-xref>(<var>start</var>).</li><li>If <var>intStart</var> = -∞, set <var>intStart</var> to 0.</li><li>Else if <var>intStart</var> < 0, set <var>intStart</var> to <emu-xref aoid="max" id="_ref_17452"><a href="notational-conventions.html#eqn-max">max</a></emu-xref>(<var>size</var> + <var>intStart</var>, 0).</li><li>Else, set <var>intStart</var> to <emu-xref aoid="min" id="_ref_17453"><a href="notational-conventions.html#eqn-min">min</a></emu-xref>(<var>intStart</var>, <var>size</var>).</li><li>If <var>length</var> is <emu-val>undefined</emu-val>, let <var>intLength</var> be <var>size</var>; else let <var>intLength</var> be ? <emu-xref aoid="ToIntegerOrInfinity" id="_ref_17454"><a href="abstract-operations.html#sec-tointegerorinfinity" class="e-user-code">ToIntegerOrInfinity</a></emu-xref>(<var>length</var>).</li><li>Set <var>intLength</var> to the result of <emu-xref href="#clamping" id="_ref_17455"><a href="notational-conventions.html#clamping">clamping</a></emu-xref> <var>intLength</var> between 0 and <var>size</var>.</li><li>Let <var>intEnd</var> be <emu-xref aoid="min" id="_ref_17456"><a href="notational-conventions.html#eqn-min">min</a></emu-xref>(<var>intStart</var> + <var>intLength</var>, <var>size</var>).</li><li>Return the <emu-xref href="#substring" id="_ref_17457"><a href="ecmascript-data-types-and-values.html#substring">substring</a></emu-xref> of <var>S</var> from <var>intStart</var> to <var>intEnd</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>This method is intentionally generic; it does not require that its <emu-val>this</emu-val> value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.</p>
|
||
</div></emu-note>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.anchor" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.2</span> String.prototype.anchor ( <var>name</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17458"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"a"</emu-val>, <emu-val>"name"</emu-val>, <var>name</var>).</li></ol></emu-alg>
|
||
|
||
<emu-annex id="sec-createhtml" type="abstract operation" aoid="CreateHTML">
|
||
<h1><span class="secnum">B.2.2.2.1</span> CreateHTML ( <var>string</var>, <var>tag</var>, <var>attribute</var>, <var>value</var> )</h1>
|
||
<p>The abstract operation CreateHTML takes arguments <var>string</var> (an <emu-xref href="#sec-ecmascript-language-types" id="_ref_17459"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types">ECMAScript language value</a></emu-xref>), <var>tag</var> (a String), <var>attribute</var> (a String), and <var>value</var> (an <emu-xref href="#sec-ecmascript-language-types" id="_ref_17460"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types">ECMAScript language value</a></emu-xref>) and returns either a <emu-xref href="#sec-completion-record-specification-type" id="_ref_17461"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">normal completion containing</a></emu-xref> a String or a <emu-xref href="#sec-completion-record-specification-type" id="_ref_17462"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">throw completion</a></emu-xref>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Perform ? <emu-xref aoid="RequireObjectCoercible" id="_ref_17463"><a href="abstract-operations.html#sec-requireobjectcoercible">RequireObjectCoercible</a></emu-xref>(<var>string</var>).</li><li>Let <var>S</var> be ? <emu-xref aoid="ToString" id="_ref_17464"><a href="abstract-operations.html#sec-tostring" class="e-user-code">ToString</a></emu-xref>(<var>string</var>).</li><li>Let <var>p1</var> be the <emu-xref href="#string-concatenation" id="_ref_17465"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <emu-val>"<"</emu-val> and <var>tag</var>.</li><li>If <var>attribute</var> is not the empty String, then<ol><li>Let <var>V</var> be ? <emu-xref aoid="ToString" id="_ref_17466"><a href="abstract-operations.html#sec-tostring" class="e-user-code">ToString</a></emu-xref>(<var>value</var>).</li><li>Let <var>escapedV</var> be the String value that is the same as <var>V</var> except that each occurrence of the code unit 0x0022 (QUOTATION MARK) in <var>V</var> has been replaced with the six code unit sequence <emu-val>"&quot;"</emu-val>.</li><li>Set <var>p1</var> to the <emu-xref href="#string-concatenation" id="_ref_17467"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of:<ul><li><var>p1</var></li><li>the code unit 0x0020 (SPACE)</li><li><var>attribute</var></li><li>the code unit 0x003D (EQUALS SIGN)</li><li>the code unit 0x0022 (QUOTATION MARK)</li><li><var>escapedV</var></li><li>the code unit 0x0022 (QUOTATION MARK)</li></ul></li></ol></li><li>Let <var>p2</var> be the <emu-xref href="#string-concatenation" id="_ref_17468"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>p1</var> and <emu-val>">"</emu-val>.</li><li>Let <var>p3</var> be the <emu-xref href="#string-concatenation" id="_ref_17469"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>p2</var> and <var>S</var>.</li><li>Let <var>p4</var> be the <emu-xref href="#string-concatenation" id="_ref_17470"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>p3</var>, <emu-val>"</"</emu-val>, <var>tag</var>, and <emu-val>">"</emu-val>.</li><li>Return <var>p4</var>.</li></ol></emu-alg>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.big" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.3</span> String.prototype.big ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17471"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"big"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.blink" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.4</span> String.prototype.blink ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17472"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"blink"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.bold" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.5</span> String.prototype.bold ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17473"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"b"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.fixed" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.6</span> String.prototype.fixed ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17474"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"tt"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.fontcolor" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.7</span> String.prototype.fontcolor ( <var>colour</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17475"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"font"</emu-val>, <emu-val>"color"</emu-val>, <var>colour</var>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.fontsize" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.8</span> String.prototype.fontsize ( <var>size</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17476"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"font"</emu-val>, <emu-val>"size"</emu-val>, <var>size</var>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.italics" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.9</span> String.prototype.italics ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17477"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"i"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.link" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.10</span> String.prototype.link ( <var>url</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17478"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"a"</emu-val>, <emu-val>"href"</emu-val>, <var>url</var>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.small" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.11</span> String.prototype.small ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17479"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"small"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.strike" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.12</span> String.prototype.strike ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17480"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"strike"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.sub" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.13</span> String.prototype.sub ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17481"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"sub"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-string.prototype.sup" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.14</span> String.prototype.sup ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>S</var> be the <emu-val>this</emu-val> value.</li><li>Return ? <emu-xref aoid="CreateHTML" id="_ref_17482"><a href="additional-ecmascript-features-for-web-browsers.html#sec-createhtml" class="e-user-code">CreateHTML</a></emu-xref>(<var>S</var>, <emu-val>"sup"</emu-val>, <emu-val>""</emu-val>, <emu-val>""</emu-val>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="String.prototype.trimleft" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.15</span> String.prototype.trimLeft ( )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The property <emu-val>"trimStart"</emu-val> is preferred. The <emu-val>"trimLeft"</emu-val> property is provided principally for compatibility with old code. It is recommended that the <emu-val>"trimStart"</emu-val> property be used in new ECMAScript code.</p>
|
||
</div></emu-note>
|
||
<p>The initial value of the <emu-val>"trimLeft"</emu-val> property is %String.prototype.trimStart%, defined in <emu-xref href="#sec-string.prototype.trimstart" id="_ref_865"><a href="text-processing.html#sec-string.prototype.trimstart">22.1.3.34</a></emu-xref>.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="String.prototype.trimright" type="built-in function">
|
||
<h1><span class="secnum">B.2.2.16</span> String.prototype.trimRight ( )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The property <emu-val>"trimEnd"</emu-val> is preferred. The <emu-val>"trimRight"</emu-val> property is provided principally for compatibility with old code. It is recommended that the <emu-val>"trimEnd"</emu-val> property be used in new ECMAScript code.</p>
|
||
</div></emu-note>
|
||
<p>The initial value of the <emu-val>"trimRight"</emu-val> property is %String.prototype.trimEnd%, defined in <emu-xref href="#sec-string.prototype.trimend" id="_ref_866"><a href="text-processing.html#sec-string.prototype.trimend">22.1.3.33</a></emu-xref>.</p>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-additional-properties-of-the-date.prototype-object">
|
||
<h1><span class="secnum">B.2.3</span> Additional Properties of the Date.prototype Object</h1>
|
||
|
||
<emu-annex id="sec-date.prototype.getyear" type="built-in function">
|
||
<h1><span class="secnum">B.2.3.1</span> Date.prototype.getYear ( )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The <code>getFullYear</code> method is preferred for nearly all purposes, because it avoids the “year 2000 problem.”</p>
|
||
</div></emu-note>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_17483"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="YearFromTime" id="_ref_17484"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_17485"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)) - <emu-val>1900</emu-val><sub>𝔽</sub>.</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-date.prototype.setyear" type="built-in function">
|
||
<h1><span class="secnum">B.2.3.2</span> Date.prototype.setYear ( <var>year</var> )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The <code>setFullYear</code> method is preferred for nearly all purposes, because it avoids the “year 2000 problem.”</p>
|
||
</div></emu-note>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_17486"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>y</var> be ? <emu-xref aoid="ToNumber" id="_ref_17487"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>year</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, set <var>t</var> to <emu-val>+0</emu-val><sub>𝔽</sub>; else set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_17488"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>yyyy</var> be <emu-xref aoid="MakeFullYear" id="_ref_17489"><a href="numbers-and-dates.html#sec-makefullyear">MakeFullYear</a></emu-xref>(<var>y</var>).</li><li>Let <var>d</var> be <emu-xref aoid="MakeDay" id="_ref_17490"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<var>yyyy</var>, <emu-xref aoid="MonthFromTime" id="_ref_17491"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="DateFromTime" id="_ref_17492"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>)).</li><li>Let <var>date</var> be <emu-xref aoid="MakeDate" id="_ref_17493"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<var>d</var>, <emu-xref aoid="TimeWithinDay" id="_ref_17494"><a href="numbers-and-dates.html#sec-timewithinday">TimeWithinDay</a></emu-xref>(<var>t</var>)).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_17495"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_17496"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>date</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-date.prototype.togmtstring" type="built-in function">
|
||
<h1><span class="secnum">B.2.3.3</span> Date.prototype.toGMTString ( )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The <code>toUTCString</code> method is preferred. This method is provided principally for compatibility with old code.</p>
|
||
</div></emu-note>
|
||
<p>The initial value of the <emu-val>"toGMTString"</emu-val> property is %Date.prototype.toUTCString%, defined in <emu-xref href="#sec-date.prototype.toutcstring" id="_ref_867"><a href="numbers-and-dates.html#sec-date.prototype.toutcstring">21.4.4.43</a></emu-xref>.</p>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-additional-properties-of-the-regexp.prototype-object">
|
||
<h1><span class="secnum">B.2.4</span> Additional Properties of the RegExp.prototype Object</h1>
|
||
|
||
<emu-annex id="sec-regexp.prototype.compile" type="built-in function">
|
||
<h1><span class="secnum">B.2.4.1</span> RegExp.prototype.compile ( <var>pattern</var>, <var>flags</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>O</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_17497"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>O</var>, <var class="field">[[RegExpMatcher]]</var>).</li><li>If <var>pattern</var> <emu-xref href="#sec-object-type" id="_ref_17498"><a href="ecmascript-data-types-and-values.html#sec-object-type">is an Object</a></emu-xref> and <var>pattern</var> has a <var class="field">[[RegExpMatcher]]</var> internal slot, then<ol><li>If <var>flags</var> is not <emu-val>undefined</emu-val>, throw a <emu-val>TypeError</emu-val> exception.</li><li>Let <var>P</var> be <var>pattern</var>.<var class="field">[[OriginalSource]]</var>.</li><li>Let <var>F</var> be <var>pattern</var>.<var class="field">[[OriginalFlags]]</var>.</li></ol></li><li>Else,<ol><li>Let <var>P</var> be <var>pattern</var>.</li><li>Let <var>F</var> be <var>flags</var>.</li></ol></li><li>Return ? <emu-xref aoid="RegExpInitialize" id="_ref_17499"><a href="text-processing.html#sec-regexpinitialize" class="e-user-code">RegExpInitialize</a></emu-xref>(<var>O</var>, <var>P</var>, <var>F</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>This method completely reinitializes the <emu-val>this</emu-val> value RegExp with a new pattern and flags. An implementation may interpret use of this method as an assertion that the resulting RegExp object will be used multiple times and hence is a candidate for extra optimization.</p>
|
||
</div></emu-note>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-other-additional-features">
|
||
<h1><span class="secnum">B.3</span> Other Additional Features</h1>
|
||
|
||
<emu-annex id="sec-labelled-function-declarations">
|
||
<h1><span class="secnum">B.3.1</span> Labelled Function Declarations</h1>
|
||
<p>Prior to ECMAScript 2015, the specification of <emu-nt id="_ref_24759"><a href="ecmascript-language-statements-and-declarations.html#prod-LabelledStatement">LabelledStatement</a></emu-nt> did not allow for the association of a statement label with a <emu-nt id="_ref_24760"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt>. However, a labelled <emu-nt id="_ref_24761"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt> was an allowable extension for <emu-xref href="#non-strict-code" id="_ref_17500"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref> and most browser-hosted ECMAScript implementations supported that extension. In ECMAScript 2015 and later, the grammar production for <emu-nt id="_ref_24762"><a href="ecmascript-language-statements-and-declarations.html#prod-LabelledStatement">LabelledStatement</a></emu-nt> permits use of <emu-nt id="_ref_24763"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt> as a <emu-nt id="_ref_24764"><a href="ecmascript-language-statements-and-declarations.html#prod-LabelledItem">LabelledItem</a></emu-nt> but <emu-xref href="#sec-labelled-statements-static-semantics-early-errors" id="_ref_868"><a href="ecmascript-language-statements-and-declarations.html#sec-labelled-statements-static-semantics-early-errors">14.13.1</a></emu-xref> includes an Early Error rule that produces a Syntax Error if that occurs. That rule is then modified to suppress the Syntax Error in <emu-xref href="#non-strict-code" id="_ref_17501"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref> if <emu-xref href="#sec-additional-ecmascript-features-for-web-browsers" id="_ref_17502"><a href="additional-ecmascript-features-for-web-browsers.html#sec-additional-ecmascript-features-for-web-browsers">the host supports</a></emu-xref> this feature.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The <emu-xref href="#early-error" id="_ref_17503"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rules for <emu-nt id="_ref_24765"><a href="ecmascript-language-statements-and-declarations.html#prod-WithStatement">WithStatement</a></emu-nt>, <emu-nt id="_ref_24766"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-IfStatement">IfStatement</a></emu-nt>, and <emu-nt id="_ref_24767"><a href="ecmascript-language-statements-and-declarations.html#prod-IterationStatement">IterationStatement</a></emu-nt> prevent these statements from containing a labelled <emu-nt id="_ref_24768"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt> in <emu-xref href="#non-strict-code" id="_ref_17504"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref>.</p>
|
||
</div></emu-note>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-block-level-function-declarations-web-legacy-compatibility-semantics">
|
||
<h1><span class="secnum">B.3.2</span> Block-Level Function Declarations Web Legacy Compatibility Semantics</h1>
|
||
<p>Prior to ECMAScript 2015, the ECMAScript specification did not define the occurrence of a <emu-nt id="_ref_24769"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt> as an element of a <emu-nt id="_ref_24770"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> statement's <emu-nt id="_ref_24771"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementList">StatementList</a></emu-nt>. However, support for that form of <emu-nt id="_ref_24772"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt> was an allowable extension and most browser-hosted ECMAScript implementations permitted them. Unfortunately, the semantics of such declarations differ among those implementations. Because of these semantic differences, existing web <emu-xref href="#sec-source-text" id="_ref_17505"><a href="ecmascript-language-source-code.html#sec-source-text">ECMAScript source text</a></emu-xref> that uses <emu-nt id="_ref_24773"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> level function declarations is only portable among browser implementations if the usage only depends upon the semantic intersection of all of the browser implementations for such declarations. The following are the use cases that fall within that intersection semantics:</p>
|
||
<ol>
|
||
<li>
|
||
<p>A function is declared and only referenced within a single block.</p>
|
||
<ul>
|
||
<li>
|
||
One or more <emu-nt id="_ref_24774"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt>s whose <emu-nt id="_ref_24775"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt> is the name <var>f</var> occur within the function code of an enclosing function <var>g</var> and that declaration is nested within a <emu-nt id="_ref_24776"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
No other declaration of <var>f</var> that is not a <code>var</code> declaration occurs within the function code of <var>g</var>.
|
||
</li>
|
||
<li>
|
||
All occurrences of <var>f</var> as an <emu-nt id="_ref_24777"><a href="ecmascript-language-expressions.html#prod-IdentifierReference">IdentifierReference</a></emu-nt> are within the <emu-nt id="_ref_24778"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementList">StatementList</a></emu-nt> of the <emu-nt id="_ref_24779"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> containing the declaration of <var>f</var>.
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p>A function is declared and possibly used within a single <emu-nt id="_ref_24780"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> but also referenced by an inner function definition that is not contained within that same <emu-nt id="_ref_24781"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt>.</p>
|
||
<ul>
|
||
<li>
|
||
One or more <emu-nt id="_ref_24782"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt>s whose <emu-nt id="_ref_24783"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt> is the name <var>f</var> occur within the function code of an enclosing function <var>g</var> and that declaration is nested within a <emu-nt id="_ref_24784"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
No other declaration of <var>f</var> that is not a <code>var</code> declaration occurs within the function code of <var>g</var>.
|
||
</li>
|
||
<li>
|
||
There may be occurrences of <var>f</var> as an <emu-nt id="_ref_24785"><a href="ecmascript-language-expressions.html#prod-IdentifierReference">IdentifierReference</a></emu-nt> within the <emu-nt id="_ref_24786"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementList">StatementList</a></emu-nt> of the <emu-nt id="_ref_24787"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> containing the declaration of <var>f</var>.
|
||
</li>
|
||
<li>
|
||
There is at least one occurrence of <var>f</var> as an <emu-nt id="_ref_24788"><a href="ecmascript-language-expressions.html#prod-IdentifierReference">IdentifierReference</a></emu-nt> within another function <var>h</var> that is nested within <var>g</var> and no other declaration of <var>f</var> shadows the references to <var>f</var> from within <var>h</var>.
|
||
</li>
|
||
<li>
|
||
All invocations of <var>h</var> occur after the declaration of <var>f</var> has been evaluated.
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p>A function is declared and possibly used within a single block but also referenced within subsequent blocks.</p>
|
||
<ul>
|
||
<li>
|
||
One or more <emu-nt id="_ref_24789"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt> whose <emu-nt id="_ref_24790"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt> is the name <var>f</var> occur within the function code of an enclosing function <var>g</var> and that declaration is nested within a <emu-nt id="_ref_24791"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
No other declaration of <var>f</var> that is not a <code>var</code> declaration occurs within the function code of <var>g</var>.
|
||
</li>
|
||
<li>
|
||
There may be occurrences of <var>f</var> as an <emu-nt id="_ref_24792"><a href="ecmascript-language-expressions.html#prod-IdentifierReference">IdentifierReference</a></emu-nt> within the <emu-nt id="_ref_24793"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementList">StatementList</a></emu-nt> of the <emu-nt id="_ref_24794"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> containing the declaration of <var>f</var>.
|
||
</li>
|
||
<li>
|
||
There is at least one occurrence of <var>f</var> as an <emu-nt id="_ref_24795"><a href="ecmascript-language-expressions.html#prod-IdentifierReference">IdentifierReference</a></emu-nt> within the function code of <var>g</var> that lexically follows the <emu-nt id="_ref_24796"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> containing the declaration of <var>f</var>.
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<p>The first use case is interoperable with the semantics of <emu-nt id="_ref_24797"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> level function declarations provided by ECMAScript 2015. Any pre-existing <emu-xref href="#sec-source-text" id="_ref_17506"><a href="ecmascript-language-source-code.html#sec-source-text">ECMAScript source text</a></emu-xref> that employs that use case will operate using the Block level function declarations semantics defined by clauses <emu-xref href="#sec-ordinary-and-exotic-objects-behaviours" id="_ref_869"><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-and-exotic-objects-behaviours">10</a></emu-xref>, <emu-xref href="#sec-ecmascript-language-statements-and-declarations" id="_ref_870"><a href="ecmascript-language-statements-and-declarations.html#sec-ecmascript-language-statements-and-declarations">14</a></emu-xref>, and <emu-xref href="#sec-ecmascript-language-functions-and-classes" id="_ref_871"><a href="ecmascript-language-functions-and-classes.html#sec-ecmascript-language-functions-and-classes">15</a></emu-xref>.</p>
|
||
<p>ECMAScript 2015 interoperability for the second and third use cases requires the following extensions to the clause <emu-xref href="#sec-ordinary-and-exotic-objects-behaviours" id="_ref_872"><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinary-and-exotic-objects-behaviours">10</a></emu-xref>, clause <emu-xref href="#sec-ecmascript-language-functions-and-classes" id="_ref_873"><a href="ecmascript-language-functions-and-classes.html#sec-ecmascript-language-functions-and-classes">15</a></emu-xref>, clause <emu-xref href="#sec-eval-x" id="_ref_874"><a href="global-object.html#sec-eval-x">19.2.1</a></emu-xref> and clause <emu-xref href="#sec-globaldeclarationinstantiation" id="_ref_875"><a href="ecmascript-language-scripts-and-modules.html#sec-globaldeclarationinstantiation">16.1.7</a></emu-xref> semantics.</p>
|
||
<p>If an ECMAScript implementation has a mechanism for reporting diagnostic warning messages, a warning should be produced when code contains a <emu-nt id="_ref_24798"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a></emu-nt> for which these compatibility semantics are applied and introduce observable differences from non-compatibility semantics. For example, if a var binding is not introduced because its introduction would create an <emu-xref href="#early-error" id="_ref_17507"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref>, a warning message should not be produced.</p>
|
||
<p>This feature involves special semantics at the following points:</p>
|
||
<ul>
|
||
<li>one of the <emu-xref href="#early-error" id="_ref_17508"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rules for <emu-grammar><emu-production name="Block" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="z4ljp0ar">
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_24799"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementList">StatementList</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> in <emu-xref href="#sec-block-static-semantics-early-errors" id="_ref_876"><a href="ecmascript-language-statements-and-declarations.html#sec-block-static-semantics-early-errors">14.2.1</a></emu-xref></li>
|
||
<li>one of the <emu-xref href="#early-error" id="_ref_17509"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rules for <emu-grammar><emu-production name="SwitchStatement" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-statements-and-declarations.html#prod-SwitchStatement">SwitchStatement</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="uvrp_hkw">
|
||
<emu-t>switch</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt id="_ref_24800"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24801"><a href="ecmascript-language-statements-and-declarations.html#prod-CaseBlock">CaseBlock</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> in <emu-xref href="#sec-switch-statement-static-semantics-early-errors" id="_ref_877"><a href="ecmascript-language-statements-and-declarations.html#sec-switch-statement-static-semantics-early-errors">14.12.1</a></emu-xref></li>
|
||
<li>step <emu-xref href="#step-functiondeclarationinstantiation-web-compat-insertion-point" id="_ref_878"><a href="ordinary-and-exotic-objects-behaviours.html#step-functiondeclarationinstantiation-web-compat-insertion-point">32.a</a></emu-xref> in <emu-xref aoid="FunctionDeclarationInstantiation" id="_ref_17510"><a href="ordinary-and-exotic-objects-behaviours.html#sec-functiondeclarationinstantiation">FunctionDeclarationInstantiation</a></emu-xref></li>
|
||
<li>step <emu-xref href="#step-blockdeclarationinstantiation-createmutablebinding" id="_ref_879"><a href="ecmascript-language-statements-and-declarations.html#step-blockdeclarationinstantiation-createmutablebinding">3.a.ii.1</a></emu-xref> in <emu-xref aoid="BlockDeclarationInstantiation" id="_ref_17511"><a href="ecmascript-language-statements-and-declarations.html#sec-blockdeclarationinstantiation">BlockDeclarationInstantiation</a></emu-xref></li>
|
||
<li>step <emu-xref href="#step-blockdeclarationinstantiation-initializebinding" id="_ref_880"><a href="ecmascript-language-statements-and-declarations.html#step-blockdeclarationinstantiation-initializebinding">3.b.iii</a></emu-xref> in <emu-xref aoid="BlockDeclarationInstantiation" id="_ref_17512"><a href="ecmascript-language-statements-and-declarations.html#sec-blockdeclarationinstantiation">BlockDeclarationInstantiation</a></emu-xref></li>
|
||
<li>step <emu-xref href="#step-globaldeclarationinstantiation-web-compat-insertion-point" id="_ref_881"><a href="ecmascript-language-scripts-and-modules.html#step-globaldeclarationinstantiation-web-compat-insertion-point">12</a></emu-xref> in <emu-xref aoid="GlobalDeclarationInstantiation" id="_ref_17513"><a href="ecmascript-language-scripts-and-modules.html#sec-globaldeclarationinstantiation">GlobalDeclarationInstantiation</a></emu-xref></li>
|
||
<li>step <emu-xref href="#step-evaldeclarationinstantiation-web-compat-insertion-point" id="_ref_882"><a href="global-object.html#step-evaldeclarationinstantiation-web-compat-insertion-point">13</a></emu-xref> in <emu-xref aoid="EvalDeclarationInstantiation" id="_ref_17514"><a href="global-object.html#sec-evaldeclarationinstantiation">EvalDeclarationInstantiation</a></emu-xref></li>
|
||
</ul>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-functiondeclarations-in-ifstatement-statement-clauses">
|
||
<h1><span class="secnum">B.3.3</span> FunctionDeclarations in IfStatement Statement Clauses</h1>
|
||
<p>The following augments the <emu-nt id="_ref_24802"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-IfStatement">IfStatement</a></emu-nt> production in <emu-xref href="#sec-if-statement" id="_ref_883"><a href="ecmascript-language-statements-and-declarations.html#sec-if-statement">14.6</a></emu-xref>:</p>
|
||
<emu-grammar type="definition"><emu-production name="IfStatement" params="Yield, Await, Return" id="prod-annexB-IfStatement">
|
||
<emu-nt params="Yield, Await, Return"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-IfStatement">IfStatement</a><emu-mods><emu-params>[Yield, Await, Return]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="3oae1kl0">
|
||
<emu-t>if</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+In, ?Yield, ?Await" id="_ref_24803"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a><emu-mods><emu-params>[+In, ?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ~Default" id="_ref_24804"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a><emu-mods><emu-params>[?Yield, ?Await, ~Default]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>else</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ?Return" id="_ref_24805"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a><emu-mods><emu-params>[?Yield, ?Await, ?Return]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="_rfywn3t">
|
||
<emu-t>if</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+In, ?Yield, ?Await" id="_ref_24806"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a><emu-mods><emu-params>[+In, ?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ?Return" id="_ref_24807"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a><emu-mods><emu-params>[?Yield, ?Await, ?Return]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>else</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ~Default" id="_ref_24808"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a><emu-mods><emu-params>[?Yield, ?Await, ~Default]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ndmrr5v_">
|
||
<emu-t>if</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+In, ?Yield, ?Await" id="_ref_24809"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a><emu-mods><emu-params>[+In, ?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ~Default" id="_ref_24810"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a><emu-mods><emu-params>[?Yield, ?Await, ~Default]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>else</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ~Default" id="_ref_24811"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a><emu-mods><emu-params>[?Yield, ?Await, ~Default]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="qlu6dc6n">
|
||
<emu-t>if</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+In, ?Yield, ?Await" id="_ref_24812"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a><emu-mods><emu-params>[+In, ?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ~Default" id="_ref_24813"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a><emu-mods><emu-params>[?Yield, ?Await, ~Default]</emu-params></emu-mods></emu-nt>
|
||
<emu-gann>[lookahead ≠ <emu-t>else</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>This production only applies when parsing <emu-xref href="#non-strict-code" id="_ref_17515"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref>. <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_17516"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">Source text matched by</a></emu-xref> this production is processed as if each matching occurrence of <emu-nt params="?Yield, ?Await, ~Default" id="_ref_24814"><a href="ecmascript-language-functions-and-classes.html#prod-FunctionDeclaration">FunctionDeclaration</a><emu-mods><emu-params>[?Yield, ?Await, ~Default]</emu-params></emu-mods></emu-nt> was the sole <emu-nt id="_ref_24815"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementListItem">StatementListItem</a></emu-nt> of a <emu-nt id="_ref_24816"><a href="ecmascript-language-statements-and-declarations.html#prod-BlockStatement">BlockStatement</a></emu-nt> occupying that position in the source text. The semantics of such a synthetic <emu-nt id="_ref_24817"><a href="ecmascript-language-statements-and-declarations.html#prod-BlockStatement">BlockStatement</a></emu-nt> includes the web legacy compatibility semantics specified in <emu-xref href="#sec-block-level-function-declarations-web-legacy-compatibility-semantics" id="_ref_884"><a href="additional-ecmascript-features-for-web-browsers.html#sec-block-level-function-declarations-web-legacy-compatibility-semantics">B.3.2</a></emu-xref>.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-variablestatements-in-catch-blocks">
|
||
<h1><span class="secnum">B.3.4</span> VariableStatements in Catch Blocks</h1>
|
||
<p>In this feature, the <emu-nt id="_ref_24818"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> of a <emu-nt id="_ref_24819"><a href="ecmascript-language-statements-and-declarations.html#prod-Catch">Catch</a></emu-nt> clause may contain <code>var</code> declarations that bind a name that is also bound by the <emu-nt id="_ref_24820"><a href="ecmascript-language-statements-and-declarations.html#prod-CatchParameter">CatchParameter</a></emu-nt>. This is accomplished by modifying an <emu-xref href="#early-error" id="_ref_17517"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rule for <emu-grammar><emu-production name="Catch" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-statements-and-declarations.html#prod-Catch">Catch</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="3ce8nhiw">
|
||
<emu-t>catch</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt id="_ref_24821"><a href="ecmascript-language-statements-and-declarations.html#prod-CatchParameter">CatchParameter</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24822"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> in <emu-xref href="#sec-try-statement-static-semantics-early-errors" id="_ref_885"><a href="ecmascript-language-statements-and-declarations.html#sec-try-statement-static-semantics-early-errors">14.15.1</a></emu-xref>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>At runtime, such bindings are instantiated in the VariableDeclarationEnvironment. They do not shadow the same-named bindings introduced by the <emu-nt id="_ref_24823"><a href="ecmascript-language-statements-and-declarations.html#prod-CatchParameter">CatchParameter</a></emu-nt> and hence the <emu-nt id="_ref_24824"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt> for such <code>var</code> declarations will assign to the corresponding catch parameter rather than the <code>var</code> binding.</p>
|
||
</div></emu-note>
|
||
<p>This modified behaviour also applies to <code>var</code> and <code>function</code> declarations introduced by <emu-xref href="#sec-function-calls-runtime-semantics-evaluation" id="_ref_17518"><a href="ecmascript-language-expressions.html#sec-function-calls-runtime-semantics-evaluation">direct eval</a></emu-xref> calls contained within the <emu-nt id="_ref_24825"><a href="ecmascript-language-statements-and-declarations.html#prod-Block">Block</a></emu-nt> of a <emu-nt id="_ref_24826"><a href="ecmascript-language-statements-and-declarations.html#prod-Catch">Catch</a></emu-nt> clause. This change is accomplished by modifying steps <emu-xref href="#step-evaldeclarationinstantiation-throw-duplicate-binding" id="_ref_886"><a href="global-object.html#step-evaldeclarationinstantiation-throw-duplicate-binding">3.d.i.2.a.i</a></emu-xref> and <emu-xref href="#step-evaldeclarationinstantiation-web-compat-bindingexists" id="_ref_887"><a href="global-object.html#step-evaldeclarationinstantiation-web-compat-bindingexists">13.b.ii.4.a.i.i</a></emu-xref> in <emu-xref aoid="EvalDeclarationInstantiation" id="_ref_17519"><a href="global-object.html#sec-evaldeclarationinstantiation">EvalDeclarationInstantiation</a></emu-xref>.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-initializers-in-forin-statement-heads">
|
||
<h1><span class="secnum">B.3.5</span> Initializers in ForIn Statement Heads</h1>
|
||
<p>The following augments the <emu-nt id="_ref_24827"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a></emu-nt> production in <emu-xref href="#sec-for-in-and-for-of-statements" id="_ref_888"><a href="ecmascript-language-statements-and-declarations.html#sec-for-in-and-for-of-statements">14.7.5</a></emu-xref>:</p>
|
||
<emu-grammar type="definition"><emu-production name="ForInOfStatement" params="Yield, Await, Return" id="prod-annexB-ForInOfStatement">
|
||
<emu-nt params="Yield, Await, Return"><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a><emu-mods><emu-params>[Yield, Await, Return]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ouav8kzt">
|
||
<emu-t>for</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>var</emu-t>
|
||
<emu-nt params="?Yield, ?Await" id="_ref_24828"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt params="~In, ?Yield, ?Await" id="_ref_24829"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a><emu-mods><emu-params>[~In, ?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>in</emu-t>
|
||
<emu-nt params="+In, ?Yield, ?Await" id="_ref_24830"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a><emu-mods><emu-params>[+In, ?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt params="?Yield, ?Await, ?Return" id="_ref_24831"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a><emu-mods><emu-params>[?Yield, ?Await, ?Return]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>This production only applies when parsing <emu-xref href="#non-strict-code" id="_ref_17520"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref>.</p>
|
||
<p>The <emu-xref href="#sec-static-semantic-rules" id="_ref_17521"><a href="notational-conventions.html#sec-static-semantic-rules">static semantics</a></emu-xref> of <emu-xref aoid="ContainsDuplicateLabels" id="_ref_17522"><a href="syntax-directed-operations.html#sec-static-semantics-containsduplicatelabels">ContainsDuplicateLabels</a></emu-xref> in <emu-xref href="#sec-static-semantics-containsduplicatelabels" id="_ref_889"><a href="syntax-directed-operations.html#sec-static-semantics-containsduplicatelabels">8.3.1</a></emu-xref> are augmented with the following:</p>
|
||
<emu-grammar><emu-production name="ForInOfStatement" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ux2wyuaj">
|
||
<emu-t>for</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>var</emu-t>
|
||
<emu-nt id="_ref_24832"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>
|
||
<emu-nt id="_ref_24833"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>
|
||
<emu-t>in</emu-t>
|
||
<emu-nt id="_ref_24834"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24835"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="ContainsDuplicateLabels" id="_ref_17523"><a href="syntax-directed-operations.html#sec-static-semantics-containsduplicatelabels">ContainsDuplicateLabels</a></emu-xref> of <emu-nt id="_ref_24836"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt> with argument <var>labelSet</var>.</li></ol></emu-alg>
|
||
<p>The <emu-xref href="#sec-static-semantic-rules" id="_ref_17524"><a href="notational-conventions.html#sec-static-semantic-rules">static semantics</a></emu-xref> of <emu-xref aoid="ContainsUndefinedBreakTarget" id="_ref_17525"><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedbreaktarget">ContainsUndefinedBreakTarget</a></emu-xref> in <emu-xref href="#sec-static-semantics-containsundefinedbreaktarget" id="_ref_890"><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedbreaktarget">8.3.2</a></emu-xref> are augmented with the following:</p>
|
||
<emu-grammar><emu-production name="ForInOfStatement" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ux2wyuaj">
|
||
<emu-t>for</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>var</emu-t>
|
||
<emu-nt id="_ref_24837"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>
|
||
<emu-nt id="_ref_24838"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>
|
||
<emu-t>in</emu-t>
|
||
<emu-nt id="_ref_24839"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24840"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="ContainsUndefinedBreakTarget" id="_ref_17526"><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedbreaktarget">ContainsUndefinedBreakTarget</a></emu-xref> of <emu-nt id="_ref_24841"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt> with argument <var>labelSet</var>.</li></ol></emu-alg>
|
||
<p>The <emu-xref href="#sec-static-semantic-rules" id="_ref_17527"><a href="notational-conventions.html#sec-static-semantic-rules">static semantics</a></emu-xref> of <emu-xref aoid="ContainsUndefinedContinueTarget" id="_ref_17528"><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedcontinuetarget">ContainsUndefinedContinueTarget</a></emu-xref> in <emu-xref href="#sec-static-semantics-containsundefinedcontinuetarget" id="_ref_891"><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedcontinuetarget">8.3.3</a></emu-xref> are augmented with the following:</p>
|
||
<emu-grammar><emu-production name="ForInOfStatement" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ux2wyuaj">
|
||
<emu-t>for</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>var</emu-t>
|
||
<emu-nt id="_ref_24842"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>
|
||
<emu-nt id="_ref_24843"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>
|
||
<emu-t>in</emu-t>
|
||
<emu-nt id="_ref_24844"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24845"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="ContainsUndefinedContinueTarget" id="_ref_17529"><a href="syntax-directed-operations.html#sec-static-semantics-containsundefinedcontinuetarget">ContainsUndefinedContinueTarget</a></emu-xref> of <emu-nt id="_ref_24846"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt> with arguments <var>iterationSet</var> and « ».</li></ol></emu-alg>
|
||
<p>The <emu-xref href="#sec-static-semantic-rules" id="_ref_17530"><a href="notational-conventions.html#sec-static-semantic-rules">static semantics</a></emu-xref> of <emu-xref aoid="IsDestructuring" id="_ref_17531"><a href="ecmascript-language-statements-and-declarations.html#sec-static-semantics-isdestructuring">IsDestructuring</a></emu-xref> in <emu-xref href="#sec-static-semantics-isdestructuring" id="_ref_892"><a href="ecmascript-language-statements-and-declarations.html#sec-static-semantics-isdestructuring">14.7.5.2</a></emu-xref> are augmented with the following:</p>
|
||
<emu-grammar><emu-production name="BindingIdentifier">
|
||
<emu-nt><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="bras6mo_">
|
||
<emu-nt id="_ref_24847"><a href="ecmascript-language-expressions.html#prod-Identifier">Identifier</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="0d8zyjn8">
|
||
<emu-t>yield</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="hx1dvlrw">
|
||
<emu-t>await</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-val>false</emu-val>.</li></ol></emu-alg>
|
||
<p>The <emu-xref href="#sec-static-semantic-rules" id="_ref_17532"><a href="notational-conventions.html#sec-static-semantic-rules">static semantics</a></emu-xref> of <emu-xref aoid="VarDeclaredNames" id="_ref_17533"><a href="syntax-directed-operations.html#sec-static-semantics-vardeclarednames">VarDeclaredNames</a></emu-xref> in <emu-xref href="#sec-static-semantics-vardeclarednames" id="_ref_893"><a href="syntax-directed-operations.html#sec-static-semantics-vardeclarednames">8.2.6</a></emu-xref> are augmented with the following:</p>
|
||
<emu-grammar><emu-production name="ForInOfStatement" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ux2wyuaj">
|
||
<emu-t>for</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>var</emu-t>
|
||
<emu-nt id="_ref_24848"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>
|
||
<emu-nt id="_ref_24849"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>
|
||
<emu-t>in</emu-t>
|
||
<emu-nt id="_ref_24850"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24851"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>names1</var> be the <emu-xref aoid="BoundNames" id="_ref_17534"><a href="syntax-directed-operations.html#sec-static-semantics-boundnames">BoundNames</a></emu-xref> of <emu-nt id="_ref_24852"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>.</li><li>Let <var>names2</var> be the <emu-xref aoid="VarDeclaredNames" id="_ref_17535"><a href="syntax-directed-operations.html#sec-static-semantics-vardeclarednames">VarDeclaredNames</a></emu-xref> of <emu-nt id="_ref_24853"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>.</li><li>Return the <emu-xref href="#list-concatenation" id="_ref_17536"><a href="ecmascript-data-types-and-values.html#list-concatenation">list-concatenation</a></emu-xref> of <var>names1</var> and <var>names2</var>.</li></ol></emu-alg>
|
||
<p>The <emu-xref href="#sec-static-semantic-rules" id="_ref_17537"><a href="notational-conventions.html#sec-static-semantic-rules">static semantics</a></emu-xref> of <emu-xref aoid="VarScopedDeclarations" id="_ref_17538"><a href="syntax-directed-operations.html#sec-static-semantics-varscopeddeclarations">VarScopedDeclarations</a></emu-xref> in <emu-xref href="#sec-static-semantics-varscopeddeclarations" id="_ref_894"><a href="syntax-directed-operations.html#sec-static-semantics-varscopeddeclarations">8.2.7</a></emu-xref> are augmented with the following:</p>
|
||
<emu-grammar><emu-production name="ForInOfStatement" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ux2wyuaj">
|
||
<emu-t>for</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>var</emu-t>
|
||
<emu-nt id="_ref_24854"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>
|
||
<emu-nt id="_ref_24855"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>
|
||
<emu-t>in</emu-t>
|
||
<emu-nt id="_ref_24856"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24857"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>declarations1</var> be « <emu-nt id="_ref_24858"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt> ».</li><li>Let <var>declarations2</var> be the <emu-xref aoid="VarScopedDeclarations" id="_ref_17539"><a href="syntax-directed-operations.html#sec-static-semantics-varscopeddeclarations">VarScopedDeclarations</a></emu-xref> of <emu-nt id="_ref_24859"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>.</li><li>Return the <emu-xref href="#list-concatenation" id="_ref_17540"><a href="ecmascript-data-types-and-values.html#list-concatenation">list-concatenation</a></emu-xref> of <var>declarations1</var> and <var>declarations2</var>.</li></ol></emu-alg>
|
||
<p>The <emu-xref href="#sec-runtime-semantics" id="_ref_17541"><a href="notational-conventions.html#sec-runtime-semantics">runtime semantics</a></emu-xref> of <emu-xref aoid="ForInOfLoopEvaluation" id="_ref_17542"><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forinofloopevaluation">ForInOfLoopEvaluation</a></emu-xref> in <emu-xref href="#sec-runtime-semantics-forinofloopevaluation" id="_ref_895"><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forinofloopevaluation">14.7.5.5</a></emu-xref> are augmented with the following:</p>
|
||
<emu-grammar><emu-production name="ForInOfStatement" collapsed="">
|
||
<emu-nt><a href="additional-ecmascript-features-for-web-browsers.html#prod-annexB-ForInOfStatement">ForInOfStatement</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ux2wyuaj">
|
||
<emu-t>for</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-t>var</emu-t>
|
||
<emu-nt id="_ref_24860"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>
|
||
<emu-nt id="_ref_24861"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>
|
||
<emu-t>in</emu-t>
|
||
<emu-nt id="_ref_24862"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-nt id="_ref_24863"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>bindingId</var> be the <emu-xref aoid="StringValue" id="_ref_17543"><a href="ecmascript-language-expressions.html#sec-static-semantics-stringvalue">StringValue</a></emu-xref> of <emu-nt id="_ref_24864"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>.</li><li>Let <var>lhs</var> be ? <emu-xref aoid="ResolveBinding" id="_ref_17544"><a href="executable-code-and-execution-contexts.html#sec-resolvebinding" class="e-user-code">ResolveBinding</a></emu-xref>(<var>bindingId</var>).</li><li>If <emu-xref aoid="IsAnonymousFunctionDefinition" id="_ref_17545"><a href="syntax-directed-operations.html#sec-isanonymousfunctiondefinition">IsAnonymousFunctionDefinition</a></emu-xref>(<emu-nt id="_ref_24865"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>) is <emu-val>true</emu-val>, then<ol><li>Let <var>value</var> be ? <emu-xref aoid="NamedEvaluation" id="_ref_17546"><a href="syntax-directed-operations.html#sec-runtime-semantics-namedevaluation" class="e-user-code">NamedEvaluation</a></emu-xref> of <emu-nt id="_ref_24866"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt> with argument <var>bindingId</var>.</li></ol></li><li>Else,<ol><li>Let <var>rhs</var> be ? <emu-xref aoid="Evaluation" id="_ref_17547"><a href="syntax-directed-operations.html#sec-evaluation" class="e-user-code">Evaluation</a></emu-xref> of <emu-nt id="_ref_24867"><a href="ecmascript-language-expressions.html#prod-Initializer">Initializer</a></emu-nt>.</li><li>Let <var>value</var> be ? <emu-xref aoid="GetValue" id="_ref_17548"><a href="ecmascript-data-types-and-values.html#sec-getvalue" class="e-user-code">GetValue</a></emu-xref>(<var>rhs</var>).</li></ol></li><li>Perform ? <emu-xref aoid="PutValue" id="_ref_17549"><a href="ecmascript-data-types-and-values.html#sec-putvalue" class="e-user-code">PutValue</a></emu-xref>(<var>lhs</var>, <var>value</var>).</li><li>Let <var>keyResult</var> be ? <emu-xref aoid="ForIn/OfHeadEvaluation" id="_ref_17550"><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forinofheadevaluation" class="e-user-code">ForIn/OfHeadEvaluation</a></emu-xref>(« », <emu-nt id="_ref_24868"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt>, <emu-const>enumerate</emu-const>).</li><li>Return ? <emu-xref aoid="ForIn/OfBodyEvaluation" id="_ref_17551"><a href="ecmascript-language-statements-and-declarations.html#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset" class="e-user-code">ForIn/OfBodyEvaluation</a></emu-xref>(<emu-nt id="_ref_24869"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a></emu-nt>, <emu-nt id="_ref_24870"><a href="ecmascript-language-statements-and-declarations.html#prod-Statement">Statement</a></emu-nt>, <var>keyResult</var>, <emu-const>enumerate</emu-const>, <emu-const>var-binding</emu-const>, <var>labelSet</var>).</li></ol></emu-alg>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-IsHTMLDDA-internal-slot">
|
||
<h1><span class="secnum">B.3.6</span> The <var class="field">[[IsHTMLDDA]]</var> Internal Slot</h1>
|
||
<p>An <dfn tabindex="-1"><var class="field">[[IsHTMLDDA]]</var> internal slot</dfn> may exist on <emu-xref href="#host-defined" id="_ref_17552"><a href="overview.html#host-defined">host-defined</a></emu-xref> objects. Objects with an <var class="field">[[IsHTMLDDA]]</var> internal slot behave like <emu-val>undefined</emu-val> in the <emu-xref href="#sec-toboolean" id="_ref_896"><a href="abstract-operations.html#sec-toboolean">ToBoolean</a></emu-xref> and <emu-xref aoid="IsLooselyEqual" id="_ref_17553"><a href="abstract-operations.html#sec-islooselyequal">IsLooselyEqual</a></emu-xref> <emu-xref href="#sec-algorithm-conventions-abstract-operations" id="_ref_17554"><a href="notational-conventions.html#sec-algorithm-conventions-abstract-operations">abstract operations</a></emu-xref> and when used as an operand for the <emu-xref href="#sec-typeof-operator" id="_ref_897"><a href="ecmascript-language-expressions.html#sec-typeof-operator"><code>typeof</code> operator</a></emu-xref>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>Objects with an <var class="field">[[IsHTMLDDA]]</var> internal slot are never created by this specification. However, the <a href="https://html.spec.whatwg.org/multipage/obsolete.html#dom-document-all"><code>document.all</code> object</a> in web browsers is a <emu-xref href="#host-defined" id="_ref_17555"><a href="overview.html#host-defined">host-defined</a></emu-xref> <emu-xref href="#exotic-object" id="_ref_17556"><a href="ecmascript-data-types-and-values.html#exotic-object">exotic object</a></emu-xref> with this slot that exists for web compatibility purposes. There are no other known examples of this type of object and implementations should not create any with the exception of <code>document.all</code>.</p>
|
||
</div></emu-note>
|
||
<p>This feature involves special semantics at the following points:</p>
|
||
<ul>
|
||
<li>step <emu-xref href="#step-to-boolean-web-compat-insertion-point" id="_ref_898"><a href="abstract-operations.html#step-to-boolean-web-compat-insertion-point">3</a></emu-xref> in <emu-xref aoid="ToBoolean" id="_ref_17557"><a href="abstract-operations.html#sec-toboolean">ToBoolean</a></emu-xref></li>
|
||
<li>step <emu-xref href="#step-abstract-equality-comparison-web-compat-insertion-point" id="_ref_899"><a href="abstract-operations.html#step-abstract-equality-comparison-web-compat-insertion-point">4</a></emu-xref> in <emu-xref aoid="IsLooselyEqual" id="_ref_17558"><a href="abstract-operations.html#sec-islooselyequal">IsLooselyEqual</a></emu-xref></li>
|
||
<li>step <emu-xref href="#step-typeof-web-compat-insertion-point" id="_ref_900"><a href="ecmascript-language-expressions.html#step-typeof-web-compat-insertion-point">12</a></emu-xref> in the evaluation semantics for <code>typeof</code></li>
|
||
</ul>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-web-compat-host-make-job-callback">
|
||
<h1><span class="secnum">B.3.7</span> Non-default behaviour in HostMakeJobCallback</h1>
|
||
<p>The <emu-xref aoid="HostMakeJobCallback" id="_ref_17559"><a href="executable-code-and-execution-contexts.html#sec-hostmakejobcallback">HostMakeJobCallback</a></emu-xref> abstract operation allows <emu-xref href="#host" id="_ref_17560"><a href="overview.html#host">hosts</a></emu-xref> which are web browsers to specify non-default behaviour.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-web-compat-host-ensure-can-add-private-field">
|
||
<h1><span class="secnum">B.3.8</span> Non-default behaviour in HostEnsureCanAddPrivateElement</h1>
|
||
<p>The <emu-xref aoid="HostEnsureCanAddPrivateElement" id="_ref_17561"><a href="abstract-operations.html#sec-hostensurecanaddprivateelement">HostEnsureCanAddPrivateElement</a></emu-xref> abstract operation allows <emu-xref href="#host" id="_ref_17562"><a href="overview.html#host">hosts</a></emu-xref> which are web browsers to specify non-default behaviour.</p>
|
||
</emu-annex>
|
||
|
||
<emu-annex id="sec-runtime-errors-for-function-call-assignment-targets">
|
||
<h1><span class="secnum">B.3.9</span> Runtime Errors for Function Call Assignment Targets</h1>
|
||
<p>When a function call (<emu-xref href="#sec-function-calls" id="_ref_901"><a href="ecmascript-language-expressions.html#sec-function-calls">13.3.6</a></emu-xref>) is used as an assignment target in <emu-xref href="#non-strict-code" id="_ref_17563"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref>, instead of producing an <emu-xref href="#early-error" id="_ref_17564"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref>, a <emu-val>ReferenceError</emu-val> exception is thrown during evaluation of the assignment.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>When the assignment target is the <emu-nt id="_ref_24871"><a href="ecmascript-language-expressions.html#prod-LeftHandSideExpression">LeftHandSideExpression</a></emu-nt> of an <emu-nt id="_ref_24872"><a href="ecmascript-language-expressions.html#prod-AssignmentExpression">AssignmentExpression</a></emu-nt>, the assignment operator must be <code>=</code> or an <emu-nt id="_ref_24873"><a href="ecmascript-language-expressions.html#prod-AssignmentOperator">AssignmentOperator</a></emu-nt>; in particular, the allowance here does not apply to the logical assignment operators (<code>??=</code>, <code>&&=</code>, <code>||=</code>).</p>
|
||
</div></emu-note>
|
||
<p>See step <emu-xref href="#step-assignmenttargettype-web-compat" id="_ref_902"><a href="syntax-directed-operations.html#step-assignmenttargettype-web-compat">1</a></emu-xref> of <emu-xref aoid="AssignmentTargetType" id="_ref_17565"><a href="syntax-directed-operations.html#sec-static-semantics-assignmenttargettype">AssignmentTargetType</a></emu-xref> for <emu-grammar><emu-production name="CallExpression" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-expressions.html#prod-CallExpression">CallExpression</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="7jj-96li"><emu-nt id="_ref_24874"><a href="ecmascript-language-functions-and-classes.html#prod-CoverCallExpressionAndAsyncArrowHead">CoverCallExpressionAndAsyncArrowHead</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> and <emu-grammar><emu-production name="CallExpression" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-expressions.html#prod-CallExpression">CallExpression</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="qugahahu">
|
||
<emu-nt id="_ref_24875"><a href="ecmascript-language-expressions.html#prod-CallExpression">CallExpression</a></emu-nt>
|
||
<emu-nt id="_ref_24876"><a href="ecmascript-language-expressions.html#prod-Arguments">Arguments</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>.</p>
|
||
</emu-annex>
|
||
</emu-annex>
|
||
</emu-annex></div></body> |