mirror of
https://github.com/bendtherules/ask262.git
synced 2026-08-18 13:21:55 +00:00
3387 lines
836 KiB
HTML
3387 lines
836 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"><style>
|
||
.unicode-property-table {
|
||
table-layout: fixed;
|
||
width: 100%;
|
||
font-size: 80%;
|
||
}
|
||
|
||
#metadata-block {
|
||
margin: 4em 0;
|
||
padding: 10px;
|
||
border: 1px solid #ee8421;
|
||
}
|
||
#metadata-block h1 {
|
||
font-size: 1.5em;
|
||
margin-top: 0;
|
||
}
|
||
#metadata-block > ul {
|
||
list-style-type: none;
|
||
margin: 0; padding: 0;
|
||
}
|
||
|
||
#ecma-logo {
|
||
width: 500px;
|
||
}
|
||
|
||
.corner-cell {
|
||
position: relative;
|
||
height: 2lh;
|
||
}
|
||
.corner-cell .slash {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background: linear-gradient(to bottom left, transparent calc(50% - 1px), gray, transparent calc(50% + 1px));
|
||
}
|
||
.corner-cell > .column {
|
||
position: absolute;
|
||
bottom: 0.4em;
|
||
left: 1em;
|
||
}
|
||
.corner-cell > .row {
|
||
position: absolute;
|
||
top: 0.4em;
|
||
right: 1em;
|
||
}
|
||
</style>
|
||
<style media="print">
|
||
/**
|
||
* ECMA-262-specific hacks. Shouldn't require a ton of maintenance; audit if
|
||
* visual inspection results in unexpected page breaks.
|
||
*
|
||
* For print version, the table captioned "Module fields after the initial Evaluate() call" _may_ need to set the row
|
||
* EVALUATING-ASYNC to one cell with a colspan of 5. It typically does not fit on the page, but the cell merging is
|
||
* not a perfectly accurate solution and will not be merged back in to the specification.
|
||
* See https://github.com/tc39/ecma262/pull/3623#issuecomment-3029366960
|
||
*/
|
||
|
||
/* Make sure tables are wide enough for their captions */
|
||
table {
|
||
min-width: 135mm;
|
||
}
|
||
|
||
/* 2.2 Examples of legacy/normative-optional are small enough to be aggressive against breaks */
|
||
#sec-conformance [example],
|
||
/* 16.2.1.xxx many tables */
|
||
#sec-example-cyclic-module-record-graphs table {
|
||
break-inside: avoid-page;
|
||
}
|
||
|
||
/* 12.10.1 long note can break wherever it wants */
|
||
#sec-rules-of-automatic-semicolon-insertion > emu-note {
|
||
break-before: initial;
|
||
break-inside: initial;
|
||
}
|
||
|
||
/* 12.10.X Sections start with an <em> not inside a <p> */
|
||
#sec-examples-of-automatic-semicolon-insertion > em,
|
||
#sec-interesting-cases-of-automatic-semicolon-insertion > em,
|
||
#sec-asi-cases-with-no-lineterminator-here > em {
|
||
display: block;
|
||
margin-top: 1.25ex;
|
||
}
|
||
|
||
/* 15.1.X missing spacing between intro and first emu-grammar */
|
||
#sec-static-semantics-containsexpression > emu-grammar:first-of-type {
|
||
margin-top: 2ex;
|
||
}
|
||
|
||
/* 15.3 A very long term combined with inline-block, nowrap, and justified text resulting in weird punctuation */
|
||
#sec-arrow-function-definitions > p > emu-grammar {
|
||
text-align: left;
|
||
}
|
||
|
||
/* 20.X legacy title */
|
||
#sec-object\.prototype\.__proto__ > .attributes-tag {
|
||
break-before: avoid-page;
|
||
break-after: avoid-page;
|
||
}
|
||
|
||
/* 21.X table middle column is too narrow */
|
||
#table-time-zone-identifier-record-fields > figure > table th:nth-of-type(2) {
|
||
min-width: 19mm;
|
||
}
|
||
|
||
/* 29.X extremely long note */
|
||
#sec-shared-memory-guidelines > emu-note {
|
||
break-inside: auto;
|
||
}
|
||
|
||
.unicode-property-table {
|
||
table-layout: initial;
|
||
width: auto;
|
||
font-size: 90%;
|
||
}
|
||
|
||
.unicode-property-table th:first-of-type {
|
||
width: 33%;
|
||
}
|
||
|
||
.corner-cell {
|
||
background-image: url(data:image/svg+xml;base64,PHN2ZyBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIgaGVpZ2h0PSI0NiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSIgd2lkdGg9IjI0MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMzE1LjI2NiAzOTYuMzQzIDI0MS4zOTQgNDUuMTU1IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS4wNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMxNC45MyAtMzk1LjkzNSkiLz48L3N2Zz4=);
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 3em;
|
||
height: 3em;
|
||
padding: 0;
|
||
vertical-align: inherit;
|
||
position: static;
|
||
}
|
||
|
||
.corner-cell .slash {
|
||
display: none;
|
||
}
|
||
|
||
.corner-cell > .column, .corner-cell > .row {
|
||
display: block;
|
||
position: relative;
|
||
}
|
||
|
||
.corner-cell > .row {
|
||
text-align: right;
|
||
top: -0.75em
|
||
}
|
||
|
||
.corner-cell > .column {
|
||
text-align: left;
|
||
bottom: -1.25em;
|
||
}
|
||
</style>
|
||
<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><style>
|
||
@media print {
|
||
@page :left {
|
||
@bottom-right {
|
||
content: '© Ecma International 2026';
|
||
}
|
||
}
|
||
@page :right {
|
||
@bottom-left {
|
||
content: '© Ecma International 2026';
|
||
}
|
||
}
|
||
@page :first {
|
||
@bottom-left {
|
||
content: '';
|
||
}
|
||
@bottom-right {
|
||
content: '';
|
||
}
|
||
}
|
||
@page :blank {
|
||
@bottom-left {
|
||
content: '';
|
||
}
|
||
@bottom-right {
|
||
content: '';
|
||
}
|
||
}
|
||
}
|
||
</style><style>
|
||
@import url("https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.0.1/styles/base16/solarized-light.min.css");
|
||
@import url("https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.0.1/styles/a11y-dark.min.css") (prefers-color-scheme: dark);
|
||
</style><link rel="canonical" href="../#sec-ecmascript-language-lexical-grammar"></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-clause id="sec-ecmascript-language-lexical-grammar">
|
||
<h1><span class="secnum">12</span> ECMAScript Language: Lexical Grammar</h1>
|
||
<p>The source text of an ECMAScript <emu-nt id="_ref_19625"><a href="ecmascript-language-scripts-and-modules.html#prod-Script">Script</a></emu-nt> or <emu-nt id="_ref_19626"><a href="ecmascript-language-scripts-and-modules.html#prod-Module">Module</a></emu-nt> is first converted into a sequence of input elements, which are tokens, line terminators, comments, or white space. The source text is scanned from left to right, repeatedly taking the longest possible sequence of code points as the next input element.</p>
|
||
<p>There are several situations where the identification of lexical input elements is sensitive to the syntactic grammar context that is consuming the input elements. This requires multiple <emu-xref href="#sec-context-free-grammars" id="_ref_5869"><a href="notational-conventions.html#sec-context-free-grammars">goal symbols</a></emu-xref> for the lexical grammar. The <emu-nt id="_ref_19627"><a href="ecmascript-language-lexical-grammar.html#prod-InputElementHashbangOrRegExp">InputElementHashbangOrRegExp</a></emu-nt> goal is used at the start of a <emu-nt id="_ref_19628"><a href="ecmascript-language-scripts-and-modules.html#prod-Script">Script</a></emu-nt> or <emu-nt id="_ref_19629"><a href="ecmascript-language-scripts-and-modules.html#prod-Module">Module</a></emu-nt>. The <emu-nt id="_ref_19630"><a href="ecmascript-language-lexical-grammar.html#prod-InputElementRegExpOrTemplateTail">InputElementRegExpOrTemplateTail</a></emu-nt> goal is used in syntactic grammar contexts where a <emu-nt id="_ref_19631"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt>, a <emu-nt id="_ref_19632"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateMiddle">TemplateMiddle</a></emu-nt>, or a <emu-nt id="_ref_19633"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateTail">TemplateTail</a></emu-nt> is permitted. The <emu-nt id="_ref_19634"><a href="ecmascript-language-lexical-grammar.html#prod-InputElementRegExp">InputElementRegExp</a></emu-nt> <emu-xref href="#sec-context-free-grammars" id="_ref_5870"><a href="notational-conventions.html#sec-context-free-grammars">goal symbol</a></emu-xref> is used in all syntactic grammar contexts where a <emu-nt id="_ref_19635"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt> is permitted but neither a <emu-nt id="_ref_19636"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateMiddle">TemplateMiddle</a></emu-nt>, nor a <emu-nt id="_ref_19637"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateTail">TemplateTail</a></emu-nt> is permitted. The <emu-nt id="_ref_19638"><a href="ecmascript-language-lexical-grammar.html#prod-InputElementTemplateTail">InputElementTemplateTail</a></emu-nt> goal is used in all syntactic grammar contexts where a <emu-nt id="_ref_19639"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateMiddle">TemplateMiddle</a></emu-nt> or a <emu-nt id="_ref_19640"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateTail">TemplateTail</a></emu-nt> is permitted but a <emu-nt id="_ref_19641"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt> is not permitted. In all other contexts, <emu-nt id="_ref_19642"><a href="ecmascript-language-lexical-grammar.html#prod-InputElementDiv">InputElementDiv</a></emu-nt> is used as the lexical <emu-xref href="#sec-context-free-grammars" id="_ref_5871"><a href="notational-conventions.html#sec-context-free-grammars">goal symbol</a></emu-xref>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The use of multiple lexical goals ensures that there are no lexical ambiguities that would affect automatic semicolon insertion. For example, there are no syntactic grammar contexts where both a leading division or division-assignment, and a leading <emu-nt id="_ref_19643"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt> are permitted. This is not affected by semicolon insertion (see <emu-xref href="#sec-automatic-semicolon-insertion" id="_ref_359"><a href="ecmascript-language-lexical-grammar.html#sec-automatic-semicolon-insertion">12.10</a></emu-xref>); in examples such as the following:</p>
|
||
<pre><code class="javascript hljs">a = b
|
||
/hi/g.<span class="hljs-title function_">exec</span>(c).<span class="hljs-title function_">map</span>(d);</code></pre>
|
||
<p>where the first non-whitespace, non-comment code point after a <emu-nt id="_ref_19644"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> is U+002F (SOLIDUS) and the syntactic context allows division or division-assignment, no semicolon is inserted at the <emu-nt id="_ref_19645"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>. That is, the above example is interpreted in the same way as:</p>
|
||
<pre><code class="javascript hljs">a = b / hi / g.<span class="hljs-title function_">exec</span>(c).<span class="hljs-title function_">map</span>(d);</code></pre>
|
||
</div></emu-note>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="InputElementDiv" type="lexical" id="prod-InputElementDiv">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-InputElementDiv">InputElementDiv</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fctcswat">
|
||
<emu-nt id="_ref_19646"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ozmczrck">
|
||
<emu-nt id="_ref_19647"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ft16wloj">
|
||
<emu-nt id="_ref_19648"><a href="ecmascript-language-lexical-grammar.html#prod-Comment">Comment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gxwilro0">
|
||
<emu-nt id="_ref_19649"><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="kanqhgik">
|
||
<emu-nt id="_ref_19650"><a href="ecmascript-language-lexical-grammar.html#prod-DivPunctuator">DivPunctuator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ehmup46z">
|
||
<emu-nt id="_ref_19651"><a href="ecmascript-language-lexical-grammar.html#prod-RightBracePunctuator">RightBracePunctuator</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="InputElementRegExp" type="lexical" id="prod-InputElementRegExp">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-InputElementRegExp">InputElementRegExp</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fctcswat">
|
||
<emu-nt id="_ref_19652"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ozmczrck">
|
||
<emu-nt id="_ref_19653"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ft16wloj">
|
||
<emu-nt id="_ref_19654"><a href="ecmascript-language-lexical-grammar.html#prod-Comment">Comment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gxwilro0">
|
||
<emu-nt id="_ref_19655"><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ehmup46z">
|
||
<emu-nt id="_ref_19656"><a href="ecmascript-language-lexical-grammar.html#prod-RightBracePunctuator">RightBracePunctuator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mbzy6lvr">
|
||
<emu-nt id="_ref_19657"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="InputElementRegExpOrTemplateTail" type="lexical" id="prod-InputElementRegExpOrTemplateTail">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-InputElementRegExpOrTemplateTail">InputElementRegExpOrTemplateTail</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fctcswat">
|
||
<emu-nt id="_ref_19658"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ozmczrck">
|
||
<emu-nt id="_ref_19659"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ft16wloj">
|
||
<emu-nt id="_ref_19660"><a href="ecmascript-language-lexical-grammar.html#prod-Comment">Comment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gxwilro0">
|
||
<emu-nt id="_ref_19661"><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mbzy6lvr">
|
||
<emu-nt id="_ref_19662"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="yq5uuf55">
|
||
<emu-nt id="_ref_19663"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateSubstitutionTail">TemplateSubstitutionTail</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="InputElementTemplateTail" type="lexical" id="prod-InputElementTemplateTail">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-InputElementTemplateTail">InputElementTemplateTail</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fctcswat">
|
||
<emu-nt id="_ref_19664"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ozmczrck">
|
||
<emu-nt id="_ref_19665"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ft16wloj">
|
||
<emu-nt id="_ref_19666"><a href="ecmascript-language-lexical-grammar.html#prod-Comment">Comment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gxwilro0">
|
||
<emu-nt id="_ref_19667"><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="kanqhgik">
|
||
<emu-nt id="_ref_19668"><a href="ecmascript-language-lexical-grammar.html#prod-DivPunctuator">DivPunctuator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="yq5uuf55">
|
||
<emu-nt id="_ref_19669"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateSubstitutionTail">TemplateSubstitutionTail</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="InputElementHashbangOrRegExp" type="lexical" id="prod-InputElementHashbangOrRegExp">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-InputElementHashbangOrRegExp">InputElementHashbangOrRegExp</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fctcswat">
|
||
<emu-nt id="_ref_19670"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ozmczrck">
|
||
<emu-nt id="_ref_19671"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ft16wloj">
|
||
<emu-nt id="_ref_19672"><a href="ecmascript-language-lexical-grammar.html#prod-Comment">Comment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gxwilro0">
|
||
<emu-nt id="_ref_19673"><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="pcfv_yin">
|
||
<emu-nt id="_ref_19674"><a href="ecmascript-language-lexical-grammar.html#prod-HashbangComment">HashbangComment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mbzy6lvr">
|
||
<emu-nt id="_ref_19675"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
|
||
<emu-clause id="sec-unicode-format-control-characters">
|
||
<h1><span class="secnum">12.1</span> Unicode Format-Control Characters</h1>
|
||
<p>The Unicode format-control characters (i.e., the characters in category “Cf” in the Unicode Character Database such as LEFT-TO-RIGHT MARK or RIGHT-TO-LEFT MARK) are control codes used to control the formatting of a range of text in the absence of higher-level protocols for this (such as mark-up languages).</p>
|
||
<p>It is useful to allow format-control characters in source text to facilitate editing and display. All format control characters may be used within comments, and within string literals, template literals, and regular expression literals.</p>
|
||
<p>U+FEFF (ZERO WIDTH NO-BREAK SPACE) is a format-control character used primarily at the start of a text to mark it as Unicode and to allow detection of the text's encoding and byte order. <ZWNBSP> characters intended for this purpose can sometimes also appear after the start of a text, for example as a result of concatenating files. In <emu-xref href="#sec-source-text" id="_ref_5872"><a href="ecmascript-language-source-code.html#sec-source-text">ECMAScript source text</a></emu-xref> <ZWNBSP> code points are treated as white space characters (see <emu-xref href="#sec-white-space" id="_ref_360"><a href="ecmascript-language-lexical-grammar.html#sec-white-space">12.2</a></emu-xref>) outside of comments, string literals, template literals, and regular expression literals.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-white-space">
|
||
<h1><span class="secnum">12.2</span> White Space</h1>
|
||
<p>White space code points are used to improve source text readability and to separate tokens (indivisible lexical units) from each other, but are otherwise insignificant. White space code points may occur between any two tokens and at the start or end of input. White space code points may occur within a <emu-nt id="_ref_19676"><a href="ecmascript-language-lexical-grammar.html#prod-StringLiteral">StringLiteral</a></emu-nt>, a <emu-nt id="_ref_19677"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt>, a <emu-nt id="_ref_19678"><a href="ecmascript-language-lexical-grammar.html#prod-Template">Template</a></emu-nt>, or a <emu-nt id="_ref_19679"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateSubstitutionTail">TemplateSubstitutionTail</a></emu-nt> where they are considered significant code points forming part of a literal value. They may also occur within a <emu-nt id="_ref_19680"><a href="ecmascript-language-lexical-grammar.html#prod-Comment">Comment</a></emu-nt>, but cannot appear within any other kind of token.</p>
|
||
<p>The ECMAScript white space code points are listed in <emu-xref href="#table-white-space-code-points" id="_ref_361"><a href="ecmascript-language-lexical-grammar.html#table-white-space-code-points">Table 30</a></emu-xref>.</p>
|
||
<emu-table id="table-white-space-code-points" caption="White Space Code Points" oldids="table-32"><figure><figcaption>Table 30: White Space Code Points</figcaption><span id="table-32"></span>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>
|
||
Code Points
|
||
</th>
|
||
<th>
|
||
Name
|
||
</th>
|
||
<th>
|
||
Abbreviation
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr>
|
||
<td>
|
||
<code>U+0009</code>
|
||
</td>
|
||
<td>
|
||
CHARACTER TABULATION
|
||
</td>
|
||
<td>
|
||
<TAB>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>U+000B</code>
|
||
</td>
|
||
<td>
|
||
LINE TABULATION
|
||
</td>
|
||
<td>
|
||
<VT>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>U+000C</code>
|
||
</td>
|
||
<td>
|
||
FORM FEED (FF)
|
||
</td>
|
||
<td>
|
||
<FF>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>U+FEFF</code>
|
||
</td>
|
||
<td>
|
||
ZERO WIDTH NO-BREAK SPACE
|
||
</td>
|
||
<td>
|
||
<ZWNBSP>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
any code point in general category “Space_Separator”
|
||
</td>
|
||
<td>
|
||
</td>
|
||
<td>
|
||
<USP>
|
||
</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure></emu-table>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>U+0020 (SPACE) and U+00A0 (NO-BREAK SPACE) code points are part of <USP>.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>Other than for the code points listed in <emu-xref href="#table-white-space-code-points" id="_ref_362"><a href="ecmascript-language-lexical-grammar.html#table-white-space-code-points">Table 30</a></emu-xref>, ECMAScript <emu-nt id="_ref_19681"><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt> intentionally excludes all code points that have the Unicode “White_Space” property but which are not classified in general category “Space_Separator” (“Zs”).</p>
|
||
</div></emu-note>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="WhiteSpace" type="lexical" id="prod-WhiteSpace">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-WhiteSpace">WhiteSpace</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="k4soaizl">
|
||
<emu-gprose><TAB></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="w_cit1lu">
|
||
<emu-gprose><VT></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="dvfflmsr">
|
||
<emu-gprose><FF></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="-4gwujcl">
|
||
<emu-gprose><ZWNBSP></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="68nsiosh">
|
||
<emu-gprose><USP></emu-gprose>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-line-terminators">
|
||
<h1><span class="secnum">12.3</span> Line Terminators</h1>
|
||
<p>Like white space code points, line terminator code points are used to improve source text readability and to separate tokens (indivisible lexical units) from each other. However, unlike white space code points, line terminators have some influence over the behaviour of the syntactic grammar. In general, line terminators may occur between any two tokens, but there are a few places where they are forbidden by the syntactic grammar. Line terminators also affect the process of automatic semicolon insertion (<emu-xref href="#sec-automatic-semicolon-insertion" id="_ref_363"><a href="ecmascript-language-lexical-grammar.html#sec-automatic-semicolon-insertion">12.10</a></emu-xref>). A line terminator cannot occur within any token except a <emu-nt id="_ref_19682"><a href="ecmascript-language-lexical-grammar.html#prod-StringLiteral">StringLiteral</a></emu-nt>, <emu-nt id="_ref_19683"><a href="ecmascript-language-lexical-grammar.html#prod-Template">Template</a></emu-nt>, or <emu-nt id="_ref_19684"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateSubstitutionTail">TemplateSubstitutionTail</a></emu-nt>. <LF> and <CR> line terminators cannot occur within a <emu-nt id="_ref_19685"><a href="ecmascript-language-lexical-grammar.html#prod-StringLiteral">StringLiteral</a></emu-nt> token except as part of a <emu-nt id="_ref_19686"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt>.</p>
|
||
<p>A line terminator can occur within a <emu-nt id="_ref_19687"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineComment">MultiLineComment</a></emu-nt> but cannot occur within a <emu-nt id="_ref_19688"><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineComment">SingleLineComment</a></emu-nt>.</p>
|
||
<p>Line terminators are included in the set of white space code points that are matched by the <code>\s</code> class in regular expressions.</p>
|
||
<p>The ECMAScript line terminator code points are listed in <emu-xref href="#table-line-terminator-code-points" id="_ref_364"><a href="ecmascript-language-lexical-grammar.html#table-line-terminator-code-points">Table 31</a></emu-xref>.</p>
|
||
<emu-table id="table-line-terminator-code-points" caption="Line Terminator Code Points" oldids="table-33"><figure><figcaption>Table 31: Line Terminator Code Points</figcaption><span id="table-33"></span>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>
|
||
Code Point
|
||
</th>
|
||
<th>
|
||
Unicode Name
|
||
</th>
|
||
<th>
|
||
Abbreviation
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr>
|
||
<td>
|
||
<code>U+000A</code>
|
||
</td>
|
||
<td>
|
||
LINE FEED (LF)
|
||
</td>
|
||
<td>
|
||
<LF>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>U+000D</code>
|
||
</td>
|
||
<td>
|
||
CARRIAGE RETURN (CR)
|
||
</td>
|
||
<td>
|
||
<CR>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>U+2028</code>
|
||
</td>
|
||
<td>
|
||
LINE SEPARATOR
|
||
</td>
|
||
<td>
|
||
<LS>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>U+2029</code>
|
||
</td>
|
||
<td>
|
||
PARAGRAPH SEPARATOR
|
||
</td>
|
||
<td>
|
||
<PS>
|
||
</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure></emu-table>
|
||
<p>Only the Unicode code points in <emu-xref href="#table-line-terminator-code-points" id="_ref_365"><a href="ecmascript-language-lexical-grammar.html#table-line-terminator-code-points">Table 31</a></emu-xref> are treated as line terminators. Other new line or line breaking Unicode code points are not treated as line terminators but are treated as white space if they meet the requirements listed in <emu-xref href="#table-white-space-code-points" id="_ref_366"><a href="ecmascript-language-lexical-grammar.html#table-white-space-code-points">Table 30</a></emu-xref>. The sequence <CR><LF> is commonly used as a line terminator. It should be considered a single <emu-nt id="_ref_19689"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> for the purpose of reporting line numbers.</p>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="LineTerminator" type="lexical" id="prod-LineTerminator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eznvjwhz">
|
||
<emu-gprose><LF></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="q1yr1eki">
|
||
<emu-gprose><CR></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="eaiqsw9w">
|
||
<emu-gprose><LS></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="z8h10fxn">
|
||
<emu-gprose><PS></emu-gprose>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="LineTerminatorSequence" type="lexical" id="prod-LineTerminatorSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eznvjwhz">
|
||
<emu-gprose><LF></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="hiltsszk">
|
||
<emu-gprose><CR></emu-gprose>
|
||
<emu-gann>[lookahead ≠ <emu-gprose><LF></emu-gprose>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="eaiqsw9w">
|
||
<emu-gprose><LS></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="z8h10fxn">
|
||
<emu-gprose><PS></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="lajs7kyd">
|
||
<emu-gprose><CR></emu-gprose>
|
||
<emu-gprose><LF></emu-gprose>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-comments">
|
||
<h1><span class="secnum">12.4</span> Comments</h1>
|
||
<p>Comments can be either single or multi-line. Multi-line comments cannot nest.</p>
|
||
<p>Because a single-line comment can contain any Unicode code point except a <emu-nt id="_ref_19690"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> code point, and because of the general rule that a token is always as long as possible, a single-line comment always consists of all code points from the <code>//</code> marker to the end of the line. However, the <emu-nt id="_ref_19691"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> at the end of the line is not considered to be part of the single-line comment; it is recognized separately by the lexical grammar and becomes part of the stream of input elements for the syntactic grammar. This point is very important, because it implies that the presence or absence of single-line comments does not affect the process of automatic semicolon insertion (see <emu-xref href="#sec-automatic-semicolon-insertion" id="_ref_367"><a href="ecmascript-language-lexical-grammar.html#sec-automatic-semicolon-insertion">12.10</a></emu-xref>).</p>
|
||
<p>Comments behave like white space and are discarded except that, if a <emu-nt id="_ref_19692"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineComment">MultiLineComment</a></emu-nt> contains a line terminator code point, then the entire comment is considered to be a <emu-nt id="_ref_19693"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> for purposes of parsing by the syntactic grammar.</p>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="Comment" type="lexical" id="prod-Comment">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-Comment">Comment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="sieyeref">
|
||
<emu-nt id="_ref_19694"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineComment">MultiLineComment</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="sscrkqcd">
|
||
<emu-nt id="_ref_19695"><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineComment">SingleLineComment</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="MultiLineComment" type="lexical" id="prod-MultiLineComment">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineComment">MultiLineComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="hhzm60cr">
|
||
<emu-t>/*</emu-t>
|
||
<emu-nt optional="" id="_ref_19696"><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-rhs>
|
||
</emu-production>
|
||
<emu-production name="MultiLineCommentChars" type="lexical" id="prod-MultiLineCommentChars">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineCommentChars">MultiLineCommentChars</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="jkbv-8n6">
|
||
<emu-nt id="_ref_19697"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineNotAsteriskChar">MultiLineNotAsteriskChar</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_19698"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineCommentChars">MultiLineCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="b8trwjej">
|
||
<emu-t>*</emu-t>
|
||
<emu-nt optional="" id="_ref_19699"><a href="ecmascript-language-lexical-grammar.html#prod-PostAsteriskCommentChars">PostAsteriskCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="PostAsteriskCommentChars" type="lexical" id="prod-PostAsteriskCommentChars">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-PostAsteriskCommentChars">PostAsteriskCommentChars</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="jwfqbwpm">
|
||
<emu-nt id="_ref_19700"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineNotForwardSlashOrAsteriskChar">MultiLineNotForwardSlashOrAsteriskChar</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_19701"><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineCommentChars">MultiLineCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="b8trwjej">
|
||
<emu-t>*</emu-t>
|
||
<emu-nt optional="" id="_ref_19702"><a href="ecmascript-language-lexical-grammar.html#prod-PostAsteriskCommentChars">PostAsteriskCommentChars</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="MultiLineNotAsteriskChar" type="lexical" id="prod-MultiLineNotAsteriskChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineNotAsteriskChar">MultiLineNotAsteriskChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lflef8ko">
|
||
<emu-nt id="_ref_19703"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not <emu-t>*</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="MultiLineNotForwardSlashOrAsteriskChar" type="lexical" id="prod-MultiLineNotForwardSlashOrAsteriskChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-MultiLineNotForwardSlashOrAsteriskChar">MultiLineNotForwardSlashOrAsteriskChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="hdfnrv5z">
|
||
<emu-nt id="_ref_19704"><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></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleLineComment" type="lexical" id="prod-SingleLineComment">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineComment">SingleLineComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="u-3whel6">
|
||
<emu-t>//</emu-t>
|
||
<emu-nt optional="" id="_ref_19705"><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="SingleLineCommentChars" type="lexical" id="prod-SingleLineCommentChars">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineCommentChars">SingleLineCommentChars</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="rshuryvh">
|
||
<emu-nt id="_ref_19706"><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineCommentChar">SingleLineCommentChar</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_19707"><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="SingleLineCommentChar" type="lexical" id="prod-SingleLineCommentChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleLineCommentChar">SingleLineCommentChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lvvfp8iw">
|
||
<emu-nt id="_ref_19708"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not <emu-nt id="_ref_19709"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>A number of productions in this section are given alternative definitions in section <emu-xref href="#sec-html-like-comments" id="_ref_368"><a href="additional-ecmascript-features-for-web-browsers.html#sec-html-like-comments">B.1.1</a></emu-xref></p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-hashbang">
|
||
<h1><span class="secnum">12.5</span> Hashbang Comments</h1>
|
||
|
||
<p>Hashbang Comments are location-sensitive and like other types of comments are discarded from the stream of input elements for the syntactic grammar.</p>
|
||
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="HashbangComment" type="lexical" id="prod-HashbangComment">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HashbangComment">HashbangComment</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="jrptdok4">
|
||
<emu-t>#!</emu-t>
|
||
<emu-nt optional="" id="_ref_19710"><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-grammar>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-tokens">
|
||
<h1><span class="secnum">12.6</span> Tokens</h1>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="CommonToken" type="lexical" id="prod-CommonToken">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="drsx4tka">
|
||
<emu-nt id="_ref_19711"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ie2-zc1c">
|
||
<emu-nt id="_ref_19712"><a href="ecmascript-language-lexical-grammar.html#prod-PrivateIdentifier">PrivateIdentifier</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="7hjz1m8p">
|
||
<emu-nt id="_ref_19713"><a href="ecmascript-language-lexical-grammar.html#prod-Punctuator">Punctuator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="pui0b1rt">
|
||
<emu-nt id="_ref_19714"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="xhtltz00">
|
||
<emu-nt id="_ref_19715"><a href="ecmascript-language-lexical-grammar.html#prod-StringLiteral">StringLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="psgubhwn">
|
||
<emu-nt id="_ref_19716"><a href="ecmascript-language-lexical-grammar.html#prod-Template">Template</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The <emu-nt id="_ref_19717"><a href="ecmascript-language-lexical-grammar.html#prod-DivPunctuator">DivPunctuator</a></emu-nt>, <emu-nt id="_ref_19718"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt>, <emu-nt id="_ref_19719"><a href="ecmascript-language-lexical-grammar.html#prod-RightBracePunctuator">RightBracePunctuator</a></emu-nt>, and <emu-nt id="_ref_19720"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateSubstitutionTail">TemplateSubstitutionTail</a></emu-nt> productions derive additional tokens that are not included in the <emu-nt id="_ref_19721"><a href="ecmascript-language-lexical-grammar.html#prod-CommonToken">CommonToken</a></emu-nt> production.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-names-and-keywords">
|
||
<h1><span class="secnum">12.7</span> Names and Keywords</h1>
|
||
<p><emu-nt id="_ref_19722"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> and <emu-nt id="_ref_19723"><a href="ecmascript-language-lexical-grammar.html#prod-ReservedWord">ReservedWord</a></emu-nt> are tokens that are interpreted according to the Default Identifier Syntax given in Unicode Standard Annex #31, Identifier and Pattern Syntax, with some small modifications. <emu-nt id="_ref_19724"><a href="ecmascript-language-lexical-grammar.html#prod-ReservedWord">ReservedWord</a></emu-nt> is an enumerated subset of <emu-nt id="_ref_19725"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>. The syntactic grammar defines <emu-nt id="_ref_19726"><a href="ecmascript-language-expressions.html#prod-Identifier">Identifier</a></emu-nt> as an <emu-nt id="_ref_19727"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> that is not a <emu-nt id="_ref_19728"><a href="ecmascript-language-lexical-grammar.html#prod-ReservedWord">ReservedWord</a></emu-nt>. The Unicode identifier grammar is based on character properties specified by the Unicode Standard. The Unicode code points in the specified categories in the latest version of the Unicode Standard must be treated as in those categories by all conforming ECMAScript implementations. ECMAScript implementations may recognize identifier code points defined in later editions of the Unicode Standard.</p>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>This standard specifies specific code point additions: U+0024 (DOLLAR SIGN) and U+005F (LOW LINE) are permitted anywhere in an <emu-nt id="_ref_19729"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>.</p>
|
||
</div></emu-note>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="PrivateIdentifier" type="lexical" id="prod-PrivateIdentifier">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-PrivateIdentifier">PrivateIdentifier</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="echyiakf" id="prod-j40wR5UN">
|
||
<emu-t>#</emu-t>
|
||
<emu-nt id="_ref_19730"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="IdentifierName" type="lexical" id="prod-IdentifierName">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="q0afq8g8" id="prod-NFOBX-lw">
|
||
<emu-nt id="_ref_19731"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStart">IdentifierStart</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="cawc7ktu" id="prod-dbXHPjzF">
|
||
<emu-nt id="_ref_19732"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>
|
||
<emu-nt id="_ref_19733"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPart">IdentifierPart</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="IdentifierStart" type="lexical" id="prod-IdentifierStart">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStart">IdentifierStart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="scjzw6a_" id="prod-XMog322C">
|
||
<emu-nt id="_ref_19734"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStartChar">IdentifierStartChar</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="b7ylgc5w">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_19735"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="IdentifierPart" type="lexical" id="prod-IdentifierPart">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPart">IdentifierPart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="q3hdl-qt" id="prod-ba_xP9Ao">
|
||
<emu-nt id="_ref_19736"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPartChar">IdentifierPartChar</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="b7ylgc5w">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_19737"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="IdentifierStartChar" type="lexical" id="prod-IdentifierStartChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStartChar">IdentifierStartChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="cgljdgmz">
|
||
<emu-nt id="_ref_19738"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeIDStart">UnicodeIDStart</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="emlmkqfm">
|
||
<emu-t>$</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="b1zllonv">
|
||
<emu-t>_</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="IdentifierPartChar" type="lexical" id="prod-IdentifierPartChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPartChar">IdentifierPartChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="nkrgdqi0">
|
||
<emu-nt id="_ref_19739"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeIDContinue">UnicodeIDContinue</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="emlmkqfm">
|
||
<emu-t>$</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsciiLetter" type="lexical" oneof="" id="prod-AsciiLetter">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-AsciiLetter">AsciiLetter</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>a</emu-t> <emu-t>b</emu-t> <emu-t>c</emu-t> <emu-t>d</emu-t> <emu-t>e</emu-t> <emu-t>f</emu-t> <emu-t>g</emu-t> <emu-t>h</emu-t> <emu-t>i</emu-t> <emu-t>j</emu-t> <emu-t>k</emu-t> <emu-t>l</emu-t> <emu-t>m</emu-t> <emu-t>n</emu-t> <emu-t>o</emu-t> <emu-t>p</emu-t> <emu-t>q</emu-t> <emu-t>r</emu-t> <emu-t>s</emu-t> <emu-t>t</emu-t> <emu-t>u</emu-t> <emu-t>v</emu-t> <emu-t>w</emu-t> <emu-t>x</emu-t> <emu-t>y</emu-t> <emu-t>z</emu-t> <emu-t>A</emu-t> <emu-t>B</emu-t> <emu-t>C</emu-t> <emu-t>D</emu-t> <emu-t>E</emu-t> <emu-t>F</emu-t> <emu-t>G</emu-t> <emu-t>H</emu-t> <emu-t>I</emu-t> <emu-t>J</emu-t> <emu-t>K</emu-t> <emu-t>L</emu-t> <emu-t>M</emu-t> <emu-t>N</emu-t> <emu-t>O</emu-t> <emu-t>P</emu-t> <emu-t>Q</emu-t> <emu-t>R</emu-t> <emu-t>S</emu-t> <emu-t>T</emu-t> <emu-t>U</emu-t> <emu-t>V</emu-t> <emu-t>W</emu-t> <emu-t>X</emu-t> <emu-t>Y</emu-t> <emu-t>Z</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="UnicodeIDStart" type="lexical" id="prod-UnicodeIDStart">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeIDStart">UnicodeIDStart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="5b8wyfgv">
|
||
<emu-gprose>any Unicode code point with the Unicode property “ID_Start”</emu-gprose>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="UnicodeIDContinue" type="lexical" id="prod-UnicodeIDContinue">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeIDContinue">UnicodeIDContinue</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2xrubxc8">
|
||
<emu-gprose>any Unicode code point with the Unicode property “ID_Continue”</emu-gprose>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>The definitions of the nonterminal <emu-nt id="_ref_19740"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> is given in <emu-xref href="#sec-literals-string-literals" id="_ref_369"><a href="ecmascript-language-lexical-grammar.html#sec-literals-string-literals">12.9.4</a></emu-xref>.</p>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>The nonterminal <emu-nt id="_ref_19741"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPart">IdentifierPart</a></emu-nt> derives <code>_</code> via <emu-nt id="_ref_19742"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeIDContinue">UnicodeIDContinue</a></emu-nt>.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 3</span><div class="note-contents">
|
||
<p>The sets of code points with Unicode properties “ID_Start” and “ID_Continue” include, respectively, the code points with Unicode properties “Other_ID_Start” and “Other_ID_Continue”.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-identifier-names">
|
||
<h1><span class="secnum">12.7.1</span> Identifier Names</h1>
|
||
<p>Unicode escape sequences are permitted in an <emu-nt id="_ref_19743"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>, where they contribute a single Unicode code point equal to the <emu-xref aoid="IdentifierCodePoint" id="_ref_5873"><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoint">IdentifierCodePoint</a></emu-xref> of the <emu-nt id="_ref_19744"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>. The <code>\</code> preceding the <emu-nt id="_ref_19745"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> does not contribute any code points. A <emu-nt id="_ref_19746"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> cannot be used to contribute a code point to an <emu-nt id="_ref_19747"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> that would otherwise be invalid. In other words, if a <code>\</code> <emu-nt id="_ref_19748"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> sequence were replaced by the <emu-nt id="_ref_19749"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> it contributes, the result must still be a valid <emu-nt id="_ref_19750"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> that has the exact same sequence of <emu-nt id="_ref_19751"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> elements as the original <emu-nt id="_ref_19752"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>. All interpretations of <emu-nt id="_ref_19753"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> within this specification are based upon their actual code points regardless of whether or not an escape sequence was used to contribute any particular code point.</p>
|
||
<p>Two <emu-nt id="_ref_19754"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>s that are canonically equivalent according to the Unicode Standard are <em>not</em> equal unless, after replacement of each <emu-nt id="_ref_19755"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>, they are represented by the exact same sequence of code points.</p>
|
||
|
||
<emu-clause id="sec-identifier-names-static-semantics-early-errors">
|
||
<h1><span class="secnum">12.7.1.1</span> Static Semantics: Early Errors</h1>
|
||
<emu-grammar><emu-production name="IdentifierStart" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStart">IdentifierStart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="b7ylgc5w">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_19756"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<ul>
|
||
<li>
|
||
It is a Syntax Error if the <emu-xref aoid="IdentifierCodePoint" id="_ref_5874"><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoint">IdentifierCodePoint</a></emu-xref> of <emu-nt id="_ref_19757"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> is not some Unicode code point matched by the <emu-nt id="_ref_19758"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStartChar">IdentifierStartChar</a></emu-nt> lexical grammar production.
|
||
</li>
|
||
</ul>
|
||
<emu-grammar><emu-production name="IdentifierPart" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPart">IdentifierPart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="b7ylgc5w">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_19759"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<ul>
|
||
<li>
|
||
It is a Syntax Error if the <emu-xref aoid="IdentifierCodePoint" id="_ref_5875"><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoint">IdentifierCodePoint</a></emu-xref> of <emu-nt id="_ref_19760"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> is not some Unicode code point matched by the <emu-nt id="_ref_19761"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPartChar">IdentifierPartChar</a></emu-nt> lexical grammar production.
|
||
</li>
|
||
</ul>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-identifiercodepoints" type="sdo" aoid="IdentifierCodePoints">
|
||
<h1><span class="secnum">12.7.1.2</span> Static Semantics: IdentifierCodePoints</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5876"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> IdentifierCodePoints takes no arguments and returns a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_5877"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> of code points. It is defined piecewise over the following productions:</p>
|
||
<emu-grammar><emu-production name="IdentifierName" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="q0afq8g8" id="prod-NbI37jnW"><emu-nt id="_ref_19762"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStart">IdentifierStart</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>cp</var> be the <emu-xref aoid="IdentifierCodePoint" id="_ref_5878"><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoint">IdentifierCodePoint</a></emu-xref> of <emu-nt id="_ref_19763"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStart">IdentifierStart</a></emu-nt>.</li><li>Return « <var>cp</var> ».</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="IdentifierName" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="cawc7ktu" id="prod-VGIPQeJb">
|
||
<emu-nt id="_ref_19764"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>
|
||
<emu-nt id="_ref_19765"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPart">IdentifierPart</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>cps</var> be the <emu-xref aoid="IdentifierCodePoints" id="_ref_5879"><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoints">IdentifierCodePoints</a></emu-xref> of the derived <emu-nt id="_ref_19766"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>.</li><li>Let <var>cp</var> be the <emu-xref aoid="IdentifierCodePoint" id="_ref_5880"><a href="ecmascript-language-lexical-grammar.html#sec-identifiercodepoint">IdentifierCodePoint</a></emu-xref> of <emu-nt id="_ref_19767"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPart">IdentifierPart</a></emu-nt>.</li><li>Return the <emu-xref href="#list-concatenation" id="_ref_5881"><a href="ecmascript-data-types-and-values.html#list-concatenation">list-concatenation</a></emu-xref> of <var>cps</var> and « <var>cp</var> ».</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-identifiercodepoint" type="sdo" aoid="IdentifierCodePoint">
|
||
<h1><span class="secnum">12.7.1.3</span> Static Semantics: IdentifierCodePoint</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5882"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> IdentifierCodePoint takes no arguments and returns a code point. It is defined piecewise over the following productions:</p>
|
||
<emu-grammar><emu-production name="IdentifierStart" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStart">IdentifierStart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="scjzw6a_" id="prod-KPs_9x-C"><emu-nt id="_ref_19768"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStartChar">IdentifierStartChar</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the code point matched by <emu-nt id="_ref_19769"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStartChar">IdentifierStartChar</a></emu-nt>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="IdentifierPart" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPart">IdentifierPart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="q3hdl-qt" id="prod-fncA2sGb"><emu-nt id="_ref_19770"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPartChar">IdentifierPartChar</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the code point matched by <emu-nt id="_ref_19771"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPartChar">IdentifierPartChar</a></emu-nt>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="UnicodeEscapeSequence" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ghktjvoi" id="prod-Ju5Gi-Fv">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_19772"><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the code point whose numeric value is the MV of <emu-nt id="_ref_19773"><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="UnicodeEscapeSequence" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="uybj7_dt" id="prod-XpfJkBRq">
|
||
<emu-t>u{</emu-t>
|
||
<emu-nt id="_ref_19774"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the code point whose numeric value is the MV of <emu-nt id="_ref_19775"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-keywords-and-reserved-words" oldids="sec-reserved-words,sec-keywords,sec-future-reserved-words"><span id="sec-future-reserved-words"></span><span id="sec-keywords"></span><span id="sec-reserved-words"></span>
|
||
<h1><span class="secnum">12.7.2</span> Keywords and Reserved Words</h1>
|
||
<p>A <dfn variants="keywords" tabindex="-1">keyword</dfn> is a token that matches <emu-nt id="_ref_19776"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt>, but also has a syntactic use; that is, it appears literally, in a <code>fixed width</code> font, in some syntactic production. The keywords of ECMAScript include <code>if</code>, <code>while</code>, <code>async</code>, <code>await</code>, and many others.</p>
|
||
<p>A <dfn variants="reserved words" tabindex="-1">reserved word</dfn> is an <emu-nt id="_ref_19777"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> that cannot be used as an identifier. Many keywords are reserved words, but some are not, and some are reserved only in certain contexts. <code>if</code> and <code>while</code> are reserved words. <code>await</code> is reserved only inside async functions and modules. <code>async</code> is not reserved; it can be used as a variable name or statement label without restriction.</p>
|
||
<p>This specification uses a combination of grammatical productions and <emu-xref href="#early-error" id="_ref_5883"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rules to specify which names are valid identifiers and which are reserved words. All tokens in the <emu-nt id="_ref_19778"><a href="ecmascript-language-lexical-grammar.html#prod-ReservedWord">ReservedWord</a></emu-nt> list below, except for <code>await</code> and <code>yield</code>, are unconditionally reserved. Exceptions for <code>await</code> and <code>yield</code> are specified in <emu-xref href="#sec-identifiers" id="_ref_370"><a href="ecmascript-language-expressions.html#sec-identifiers">13.1</a></emu-xref>, using parameterized syntactic productions. Lastly, several <emu-xref href="#early-error" id="_ref_5884"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rules restrict the set of valid identifiers. See <emu-xref href="#sec-identifiers-static-semantics-early-errors" id="_ref_371"><a href="ecmascript-language-expressions.html#sec-identifiers-static-semantics-early-errors">13.1.1</a></emu-xref>, <emu-xref href="#sec-let-and-const-declarations-static-semantics-early-errors" id="_ref_372"><a href="ecmascript-language-statements-and-declarations.html#sec-let-and-const-declarations-static-semantics-early-errors">14.3.1.1</a></emu-xref>, <emu-xref href="#sec-for-in-and-for-of-statements-static-semantics-early-errors" id="_ref_373"><a href="ecmascript-language-statements-and-declarations.html#sec-for-in-and-for-of-statements-static-semantics-early-errors">14.7.5.1</a></emu-xref>, and <emu-xref href="#sec-class-definitions-static-semantics-early-errors" id="_ref_374"><a href="ecmascript-language-functions-and-classes.html#sec-class-definitions-static-semantics-early-errors">15.7.1</a></emu-xref>. In summary, there are five categories of identifier names:</p>
|
||
<ul>
|
||
<li>
|
||
<p>Those that are always allowed as identifiers, and are not keywords, such as <code>Math</code>, <code>window</code>, <code>toString</code>, and <code>_</code>;</p>
|
||
</li>
|
||
<li>
|
||
<p>Those that are never allowed as identifiers, namely the <emu-nt id="_ref_19779"><a href="ecmascript-language-lexical-grammar.html#prod-ReservedWord">ReservedWord</a></emu-nt>s listed below except <code>await</code> and <code>yield</code>;</p>
|
||
</li>
|
||
<li>
|
||
<p>Those that are contextually allowed as identifiers, namely <code>await</code> and <code>yield</code>;</p>
|
||
</li>
|
||
<li>
|
||
<p>Those that are contextually disallowed as identifiers, in <emu-xref href="#sec-strict-mode-code" id="_ref_5885"><a href="ecmascript-language-source-code.html#sec-strict-mode-code">strict mode code</a></emu-xref>: <code>let</code>, <code>static</code>, <code>implements</code>, <code>interface</code>, <code>package</code>, <code>private</code>, <code>protected</code>, and <code>public</code>;</p>
|
||
</li>
|
||
<li>
|
||
<p>Those that are always allowed as identifiers, but also appear as keywords within certain syntactic productions, at places where <emu-nt id="_ref_19780"><a href="ecmascript-language-expressions.html#prod-Identifier">Identifier</a></emu-nt> is not allowed: <code>as</code>, <code>async</code>, <code>from</code>, <code>get</code>, <code>meta</code>, <code>of</code>, <code>set</code>, and <code>target</code>.</p>
|
||
</li>
|
||
</ul>
|
||
<p>The term <dfn variants="conditional keywords" tabindex="-1">conditional keyword</dfn>, or <dfn variants="contextual keywords" tabindex="-1">contextual keyword</dfn>, is sometimes used to refer to the keywords that fall in the last three categories, and thus can be used as identifiers in some contexts and as keywords in others.</p>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="ReservedWord" type="lexical" oneof="" id="prod-ReservedWord">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ReservedWord">ReservedWord</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>await</emu-t> <emu-t>break</emu-t> <emu-t>case</emu-t> <emu-t>catch</emu-t> <emu-t>class</emu-t> <emu-t>const</emu-t> <emu-t>continue</emu-t> <emu-t>debugger</emu-t> <emu-t>default</emu-t> <emu-t>delete</emu-t> <emu-t>do</emu-t> <emu-t>else</emu-t> <emu-t>enum</emu-t> <emu-t>export</emu-t> <emu-t>extends</emu-t> <emu-t>false</emu-t> <emu-t>finally</emu-t> <emu-t>for</emu-t> <emu-t>function</emu-t> <emu-t>if</emu-t> <emu-t>import</emu-t> <emu-t>in</emu-t> <emu-t>instanceof</emu-t> <emu-t>new</emu-t> <emu-t>null</emu-t> <emu-t>return</emu-t> <emu-t>super</emu-t> <emu-t>switch</emu-t> <emu-t>this</emu-t> <emu-t>throw</emu-t> <emu-t>true</emu-t> <emu-t>try</emu-t> <emu-t>typeof</emu-t> <emu-t>var</emu-t> <emu-t>void</emu-t> <emu-t>while</emu-t> <emu-t>with</emu-t> <emu-t>yield</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>Per <emu-xref href="#sec-grammar-notation" id="_ref_375"><a href="notational-conventions.html#sec-grammar-notation">5.1.5</a></emu-xref>, keywords in the grammar match literal sequences of specific <emu-nt id="_ref_19781"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> elements. A code point in a keyword cannot be expressed by a <code>\</code> <emu-nt id="_ref_19782"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>.</p>
|
||
<p>An <emu-nt id="_ref_19783"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> can contain <code>\</code> <emu-nt id="_ref_19784"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>s, but it is not possible to declare a variable named "else" by spelling it <code>els\u{65}</code>. The <emu-xref href="#early-error" id="_ref_5886"><a href="error-handling-and-language-extensions.html#early-error">early error</a></emu-xref> rules in <emu-xref href="#sec-identifiers-static-semantics-early-errors" id="_ref_376"><a href="ecmascript-language-expressions.html#sec-identifiers-static-semantics-early-errors">13.1.1</a></emu-xref> rule out identifiers with the same <emu-xref aoid="StringValue" id="_ref_5887"><a href="ecmascript-language-expressions.html#sec-static-semantics-stringvalue">StringValue</a></emu-xref> as a reserved word.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p><code>enum</code> is not currently used as a keyword in this specification. It is a <em>future reserved word</em>, set aside for use as a keyword in future language extensions.</p>
|
||
<p>Similarly, <code>implements</code>, <code>interface</code>, <code>package</code>, <code>private</code>, <code>protected</code>, and <code>public</code> are future reserved words in <emu-xref href="#sec-strict-mode-code" id="_ref_5888"><a href="ecmascript-language-source-code.html#sec-strict-mode-code">strict mode code</a></emu-xref>.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 3</span><div class="note-contents">
|
||
<p>The names <code>arguments</code> and <code>eval</code> are not keywords, but they are subject to some restrictions in <emu-xref href="#sec-strict-mode-code" id="_ref_5889"><a href="ecmascript-language-source-code.html#sec-strict-mode-code">strict mode code</a></emu-xref>. See <emu-xref href="#sec-identifiers-static-semantics-early-errors" id="_ref_377"><a href="ecmascript-language-expressions.html#sec-identifiers-static-semantics-early-errors">13.1.1</a></emu-xref>, <emu-xref href="#sec-static-semantics-assignmenttargettype" id="_ref_378"><a href="syntax-directed-operations.html#sec-static-semantics-assignmenttargettype">8.6.4</a></emu-xref>, <emu-xref href="#sec-function-definitions-static-semantics-early-errors" id="_ref_379"><a href="ecmascript-language-functions-and-classes.html#sec-function-definitions-static-semantics-early-errors">15.2.1</a></emu-xref>, <emu-xref href="#sec-generator-function-definitions-static-semantics-early-errors" id="_ref_380"><a href="ecmascript-language-functions-and-classes.html#sec-generator-function-definitions-static-semantics-early-errors">15.5.1</a></emu-xref>, <emu-xref href="#sec-async-generator-function-definitions-static-semantics-early-errors" id="_ref_381"><a href="ecmascript-language-functions-and-classes.html#sec-async-generator-function-definitions-static-semantics-early-errors">15.6.1</a></emu-xref>, and <emu-xref href="#sec-async-function-definitions-static-semantics-early-errors" id="_ref_382"><a href="ecmascript-language-functions-and-classes.html#sec-async-function-definitions-static-semantics-early-errors">15.8.1</a></emu-xref>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-punctuators">
|
||
<h1><span class="secnum">12.8</span> Punctuators</h1>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="Punctuator" type="lexical" id="prod-Punctuator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-Punctuator">Punctuator</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="kgn-m1wb">
|
||
<emu-nt id="_ref_19785"><a href="ecmascript-language-lexical-grammar.html#prod-OptionalChainingPunctuator">OptionalChainingPunctuator</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="5laghqp7">
|
||
<emu-nt id="_ref_19786"><a href="ecmascript-language-lexical-grammar.html#prod-OtherPunctuator">OtherPunctuator</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="OptionalChainingPunctuator" type="lexical" id="prod-OptionalChainingPunctuator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OptionalChainingPunctuator">OptionalChainingPunctuator</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="imymz5qn">
|
||
<emu-t>?.</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_19787"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="OtherPunctuator" type="lexical" oneof="" id="prod-OtherPunctuator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OtherPunctuator">OtherPunctuator</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><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-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-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-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-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-t>||=</emu-t> <emu-t>??=</emu-t> <emu-t>=></emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DivPunctuator" type="lexical" id="prod-DivPunctuator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DivPunctuator">DivPunctuator</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="0_1fu2p8">
|
||
<emu-t>/</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="lgd_45yr">
|
||
<emu-t>/=</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RightBracePunctuator" type="lexical" id="prod-RightBracePunctuator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RightBracePunctuator">RightBracePunctuator</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="jvy3_tcq">
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-ecmascript-language-lexical-grammar-literals">
|
||
<h1><span class="secnum">12.9</span> Literals</h1>
|
||
|
||
<emu-clause id="sec-null-literals">
|
||
<h1><span class="secnum">12.9.1</span> Null Literals</h1>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="NullLiteral" type="lexical" id="prod-NullLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NullLiteral">NullLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="d7uiab7a">
|
||
<emu-t>null</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-boolean-literals">
|
||
<h1><span class="secnum">12.9.2</span> Boolean Literals</h1>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="BooleanLiteral" type="lexical" id="prod-BooleanLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-BooleanLiteral">BooleanLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="-jc4xg27">
|
||
<emu-t>true</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="i9lgnxtt">
|
||
<emu-t>false</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-literals-numeric-literals" oldids="sec-additional-syntax-numeric-literals"><span id="sec-additional-syntax-numeric-literals"></span>
|
||
<h1><span class="secnum">12.9.3</span> Numeric Literals</h1>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="NumericLiteralSeparator" type="lexical" id="prod-NumericLiteralSeparator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="b1zllonv">
|
||
<emu-t>_</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NumericLiteral" type="lexical" id="prod-NumericLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="gma1bw5s" id="prod-Qn_oyvq2">
|
||
<emu-nt id="_ref_19788"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="jyfxftca">
|
||
<emu-nt id="_ref_19789"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalBigIntegerLiteral">DecimalBigIntegerLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="4meg50av" id="prod-U27qMVVP">
|
||
<emu-nt params="+Sep" id="_ref_19790"><a href="ecmascript-language-lexical-grammar.html#prod-NonDecimalIntegerLiteral">NonDecimalIntegerLiteral</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="5kjl_usk" id="prod-lP2MlcII">
|
||
<emu-nt params="+Sep" id="_ref_19791"><a href="ecmascript-language-lexical-grammar.html#prod-NonDecimalIntegerLiteral">NonDecimalIntegerLiteral</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19792"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="8n96hykg" id="prod-9vicHpLh">
|
||
<emu-nt id="_ref_19793"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DecimalBigIntegerLiteral" type="lexical" id="prod-DecimalBigIntegerLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalBigIntegerLiteral">DecimalBigIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="3e5icnkp" id="prod-v-a6rh2w">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_19794"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="s5lsf_yj" id="prod-b9VW4Mn-">
|
||
<emu-nt id="_ref_19795"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
<emu-nt params="+Sep" optional="" id="_ref_19796"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[+Sep]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19797"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="dpnxe4_1" id="prod-fgQ6BNSW">
|
||
<emu-nt id="_ref_19798"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
<emu-nt id="_ref_19799"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt params="+Sep" id="_ref_19800"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19801"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NonDecimalIntegerLiteral" params="Sep" type="lexical" id="prod-NonDecimalIntegerLiteral">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-NonDecimalIntegerLiteral">NonDecimalIntegerLiteral</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="bob8gtet">
|
||
<emu-nt params="?Sep" id="_ref_19802"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryIntegerLiteral">BinaryIntegerLiteral</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="tt6amuvr">
|
||
<emu-nt params="?Sep" id="_ref_19803"><a href="ecmascript-language-lexical-grammar.html#prod-OctalIntegerLiteral">OctalIntegerLiteral</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="c52jqkaw">
|
||
<emu-nt params="?Sep" id="_ref_19804"><a href="ecmascript-language-lexical-grammar.html#prod-HexIntegerLiteral">HexIntegerLiteral</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="BigIntLiteralSuffix" type="lexical" id="prod-BigIntLiteralSuffix">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fleftghc">
|
||
<emu-t>n</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DecimalLiteral" type="lexical" id="prod-DecimalLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dkpbjbga">
|
||
<emu-nt id="_ref_19805"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt>
|
||
<emu-t>.</emu-t>
|
||
<emu-nt params="+Sep" optional="" id="_ref_19806"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[+Sep]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt params="+Sep" optional="" id="_ref_19807"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a><emu-mods><emu-params>[+Sep]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mqovvwro">
|
||
<emu-t>.</emu-t>
|
||
<emu-nt params="+Sep" id="_ref_19808"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt params="+Sep" optional="" id="_ref_19809"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a><emu-mods><emu-params>[+Sep]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="5axp8jfj">
|
||
<emu-nt id="_ref_19810"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt params="+Sep" optional="" id="_ref_19811"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a><emu-mods><emu-params>[+Sep]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DecimalIntegerLiteral" type="lexical" id="prod-DecimalIntegerLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx">
|
||
<emu-t>0</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="1mot5ut_">
|
||
<emu-nt id="_ref_19812"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="q8hj2ks6">
|
||
<emu-nt id="_ref_19813"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_19814"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt params="+Sep" id="_ref_19815"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="xvklurnl">
|
||
<emu-nt id="_ref_19816"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DecimalDigits" params="Sep" type="lexical" id="prod-DecimalDigits">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="s4me4hlz">
|
||
<emu-nt id="_ref_19817"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="vhziw9yj">
|
||
<emu-nt params="?Sep" id="_ref_19818"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19819"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="o-8mes0t" constraints="+Sep"><emu-constraints>[+Sep]</emu-constraints>
|
||
<emu-nt params="+Sep" id="_ref_19820"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19821"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19822"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DecimalDigit" type="lexical" oneof="" id="prod-DecimalDigit">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>0</emu-t> <emu-t>1</emu-t> <emu-t>2</emu-t> <emu-t>3</emu-t> <emu-t>4</emu-t> <emu-t>5</emu-t> <emu-t>6</emu-t> <emu-t>7</emu-t> <emu-t>8</emu-t> <emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NonZeroDigit" type="lexical" oneof="" id="prod-NonZeroDigit">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>1</emu-t> <emu-t>2</emu-t> <emu-t>3</emu-t> <emu-t>4</emu-t> <emu-t>5</emu-t> <emu-t>6</emu-t> <emu-t>7</emu-t> <emu-t>8</emu-t> <emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ExponentPart" params="Sep" type="lexical" id="prod-ExponentPart">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="qmupypsn">
|
||
<emu-nt id="_ref_19823"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentIndicator">ExponentIndicator</a></emu-nt>
|
||
<emu-nt params="?Sep" id="_ref_19824"><a href="ecmascript-language-lexical-grammar.html#prod-SignedInteger">SignedInteger</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ExponentIndicator" type="lexical" oneof="" id="prod-ExponentIndicator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ExponentIndicator">ExponentIndicator</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>e</emu-t> <emu-t>E</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SignedInteger" params="Sep" type="lexical" id="prod-SignedInteger">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-SignedInteger">SignedInteger</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="wf-nrzcq">
|
||
<emu-nt params="?Sep" id="_ref_19825"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="luvuectp">
|
||
<emu-t>+</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19826"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="z4gitkte">
|
||
<emu-t>-</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19827"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="BinaryIntegerLiteral" params="Sep" type="lexical" id="prod-BinaryIntegerLiteral">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryIntegerLiteral">BinaryIntegerLiteral</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="12yuffnr">
|
||
<emu-t>0b</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19828"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="fqezwbsj">
|
||
<emu-t>0B</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19829"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="BinaryDigits" params="Sep" type="lexical" id="prod-BinaryDigits">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="5fhui2lc">
|
||
<emu-nt id="_ref_19830"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="zwtkasqs">
|
||
<emu-nt params="?Sep" id="_ref_19831"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19832"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="klsleygf" constraints="+Sep"><emu-constraints>[+Sep]</emu-constraints>
|
||
<emu-nt params="+Sep" id="_ref_19833"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19834"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19835"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="BinaryDigit" type="lexical" oneof="" id="prod-BinaryDigit">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>0</emu-t> <emu-t>1</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="OctalIntegerLiteral" params="Sep" type="lexical" id="prod-OctalIntegerLiteral">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-OctalIntegerLiteral">OctalIntegerLiteral</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="bpjym_xs">
|
||
<emu-t>0o</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19836"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="otl-ec7z">
|
||
<emu-t>0O</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19837"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="OctalDigits" params="Sep" type="lexical" id="prod-OctalDigits">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="mbwdu1ji">
|
||
<emu-nt id="_ref_19838"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="i9v7fkh2">
|
||
<emu-nt params="?Sep" id="_ref_19839"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19840"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="-vh1h3qc" constraints="+Sep"><emu-constraints>[+Sep]</emu-constraints>
|
||
<emu-nt params="+Sep" id="_ref_19841"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19842"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19843"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="LegacyOctalIntegerLiteral" type="lexical" id="prod-LegacyOctalIntegerLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="rsu9eufh">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_19844"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="tx3hz6c8">
|
||
<emu-nt id="_ref_19845"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19846"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NonOctalDecimalIntegerLiteral" type="lexical" id="prod-NonOctalDecimalIntegerLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="rmz1yyb9">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_19847"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDigit">NonOctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="yq78icb2">
|
||
<emu-nt id="_ref_19848"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19849"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDigit">NonOctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="qxebmbch">
|
||
<emu-nt id="_ref_19850"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19851"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="LegacyOctalLikeDecimalIntegerLiteral" type="lexical" id="prod-LegacyOctalLikeDecimalIntegerLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="rsu9eufh">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_19852"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="sk7h1nbk">
|
||
<emu-nt id="_ref_19853"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19854"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="OctalDigit" type="lexical" oneof="" id="prod-OctalDigit">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>0</emu-t> <emu-t>1</emu-t> <emu-t>2</emu-t> <emu-t>3</emu-t> <emu-t>4</emu-t> <emu-t>5</emu-t> <emu-t>6</emu-t> <emu-t>7</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NonOctalDigit" type="lexical" oneof="" id="prod-NonOctalDigit">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDigit">NonOctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>8</emu-t> <emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="HexIntegerLiteral" params="Sep" type="lexical" id="prod-HexIntegerLiteral">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-HexIntegerLiteral">HexIntegerLiteral</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ddiauqlo">
|
||
<emu-t>0x</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19855"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="w-ee7g68">
|
||
<emu-t>0X</emu-t>
|
||
<emu-nt params="?Sep" id="_ref_19856"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="HexDigits" params="Sep" type="lexical" id="prod-HexDigits">
|
||
<emu-nt params="Sep"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[Sep]</emu-params></emu-mods></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="omskcs0d">
|
||
<emu-nt id="_ref_19857"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="hbi73qbc">
|
||
<emu-nt params="?Sep" id="_ref_19858"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[?Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19859"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="amg7w4gj" constraints="+Sep"><emu-constraints>[+Sep]</emu-constraints>
|
||
<emu-nt params="+Sep" id="_ref_19860"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[+Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19861"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19862"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="HexDigit" type="lexical" oneof="" id="prod-HexDigit">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>0</emu-t> <emu-t>1</emu-t> <emu-t>2</emu-t> <emu-t>3</emu-t> <emu-t>4</emu-t> <emu-t>5</emu-t> <emu-t>6</emu-t> <emu-t>7</emu-t> <emu-t>8</emu-t> <emu-t>9</emu-t> <emu-t>a</emu-t> <emu-t>b</emu-t> <emu-t>c</emu-t> <emu-t>d</emu-t> <emu-t>e</emu-t> <emu-t>f</emu-t> <emu-t>A</emu-t> <emu-t>B</emu-t> <emu-t>C</emu-t> <emu-t>D</emu-t> <emu-t>E</emu-t> <emu-t>F</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>The <emu-nt id="_ref_19863"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> immediately following a <emu-nt id="_ref_19864"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt> must not be an <emu-nt id="_ref_19865"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierStart">IdentifierStart</a></emu-nt> or <emu-nt id="_ref_19866"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>For example: <code>3in</code> is an error and not the two input elements <code>3</code> and <code>in</code>.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-numeric-literals-early-errors">
|
||
<h1><span class="secnum">12.9.3.1</span> Static Semantics: Early Errors</h1>
|
||
<emu-grammar><emu-production name="NumericLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="8n96hykg"><emu-nt id="_ref_19867"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DecimalIntegerLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xvklurnl"><emu-nt id="_ref_19868"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<ul>
|
||
<li>It is a Syntax Error if <emu-xref aoid="IsStrict" id="_ref_5890"><a href="ecmascript-language-source-code.html#sec-isstrict">IsStrict</a></emu-xref>(this production) is <emu-val>true</emu-val>.</li>
|
||
</ul>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">In <emu-xref href="#non-strict-code" id="_ref_5891"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref>, this syntax is <emu-xref href="#sec-conformance" id="_ref_5892"><a href="conformance.html#sec-conformance">Legacy</a></emu-xref>.</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-static-semantics-mv" oldids="sec-additional-syntax-numeric-literals-status-semantics"><span id="sec-additional-syntax-numeric-literals-status-semantics"></span>
|
||
<h1><span class="secnum">12.9.3.2</span> Static Semantics: MV</h1>
|
||
<p>A numeric literal stands for a value of the <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_5893"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">Number type</a></emu-xref> or the <emu-xref href="#sec-ecmascript-language-types-bigint-type" id="_ref_5894"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-bigint-type">BigInt type</a></emu-xref>.</p>
|
||
<ul>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ivsyqs2o">
|
||
<emu-nt id="_ref_19869"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt>
|
||
<emu-t>.</emu-t>
|
||
<emu-nt id="_ref_19870"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the MV of <emu-nt id="_ref_19871"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> plus (the MV of <emu-nt id="_ref_19872"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> × 10<sup>-<var>n</var></sup>), where <var>n</var> is the number of code points in <emu-nt id="_ref_19873"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>, excluding all occurrences of <emu-nt id="_ref_19874"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lxttymd7">
|
||
<emu-nt id="_ref_19875"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt>
|
||
<emu-t>.</emu-t>
|
||
<emu-nt id="_ref_19876"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the MV of <emu-nt id="_ref_19877"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> × 10<sup><var>e</var></sup>, where <var>e</var> is the MV of <emu-nt id="_ref_19878"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7xfditit">
|
||
<emu-nt id="_ref_19879"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt>
|
||
<emu-t>.</emu-t>
|
||
<emu-nt id="_ref_19880"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19881"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19882"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> plus (the MV of <emu-nt id="_ref_19883"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> × 10<sup>-<var>n</var></sup>)) × 10<sup><var>e</var></sup>, where <var>n</var> is the number of code points in <emu-nt id="_ref_19884"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>, excluding all occurrences of <emu-nt id="_ref_19885"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt> and <var>e</var> is the MV of <emu-nt id="_ref_19886"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="wfmzcqw1">
|
||
<emu-t>.</emu-t>
|
||
<emu-nt id="_ref_19887"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the MV of <emu-nt id="_ref_19888"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> × 10<sup>-<var>n</var></sup>, where <var>n</var> is the number of code points in <emu-nt id="_ref_19889"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>, excluding all occurrences of <emu-nt id="_ref_19890"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dnxzw8a4">
|
||
<emu-t>.</emu-t>
|
||
<emu-nt id="_ref_19891"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19892"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the MV of <emu-nt id="_ref_19893"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> × 10<sup><var>e</var> - <var>n</var></sup>, where <var>n</var> is the number of code points in <emu-nt id="_ref_19894"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>, excluding all occurrences of <emu-nt id="_ref_19895"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>, and <var>e</var> is the MV of <emu-nt id="_ref_19896"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="br-hwd5f">
|
||
<emu-nt id="_ref_19897"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19898"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the MV of <emu-nt id="_ref_19899"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> × 10<sup><var>e</var></sup>, where <var>e</var> is the MV of <emu-nt id="_ref_19900"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalIntegerLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 0.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalIntegerLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalIntegerLiteral">DecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="1lnbu1ra">
|
||
<emu-nt id="_ref_19901"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_19902"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_19903"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19904"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> × 10<sup><var>n</var></sup>) plus the MV of <emu-nt id="_ref_19905"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>, where <var>n</var> is the number of code points in <emu-nt id="_ref_19906"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>, excluding all occurrences of <emu-nt id="_ref_19907"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="nyugv7lw">
|
||
<emu-nt id="_ref_19908"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19909"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19910"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> × 10) plus the MV of <emu-nt id="_ref_19911"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="oilcxnyi">
|
||
<emu-nt id="_ref_19912"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19913"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19914"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19915"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt> × 10) plus the MV of <emu-nt id="_ref_19916"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="ExponentPart" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ExponentPart">ExponentPart</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="f4n1gm76">
|
||
<emu-nt id="_ref_19917"><a href="ecmascript-language-lexical-grammar.html#prod-ExponentIndicator">ExponentIndicator</a></emu-nt>
|
||
<emu-nt id="_ref_19918"><a href="ecmascript-language-lexical-grammar.html#prod-SignedInteger">SignedInteger</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the MV of <emu-nt id="_ref_19919"><a href="ecmascript-language-lexical-grammar.html#prod-SignedInteger">SignedInteger</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="SignedInteger" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SignedInteger">SignedInteger</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="waadsnwo">
|
||
<emu-t>-</emu-t>
|
||
<emu-nt id="_ref_19920"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the negative of the MV of <emu-nt id="_ref_19921"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="LegacyOctalEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="BinaryDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 0.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ksql3txo"><emu-t>1</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ksql3txo"><emu-t>1</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ksql3txo"><emu-t>1</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ksql3txo"><emu-t>1</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="BinaryDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ksql3txo"><emu-t>1</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 1.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xkcxbwmk"><emu-t>2</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xkcxbwmk"><emu-t>2</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xkcxbwmk"><emu-t>2</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xkcxbwmk"><emu-t>2</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 2.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7gu2shc1"><emu-t>3</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7gu2shc1"><emu-t>3</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7gu2shc1"><emu-t>3</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7gu2shc1"><emu-t>3</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 3.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="woxkczx2"><emu-t>4</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="woxkczx2"><emu-t>4</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="woxkczx2"><emu-t>4</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="woxkczx2"><emu-t>4</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 4.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="j83vdwqk"><emu-t>5</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="j83vdwqk"><emu-t>5</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="j83vdwqk"><emu-t>5</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="j83vdwqk"><emu-t>5</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 5.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c2shfb68"><emu-t>6</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c2shfb68"><emu-t>6</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c2shfb68"><emu-t>6</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c2shfb68"><emu-t>6</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 6.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6l4hpim_"><emu-t>7</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6l4hpim_"><emu-t>7</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6l4hpim_"><emu-t>7</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="OctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6l4hpim_"><emu-t>7</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 7.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="elvyw2lo"><emu-t>8</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="elvyw2lo"><emu-t>8</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonOctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDigit">NonOctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="elvyw2lo"><emu-t>8</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="elvyw2lo"><emu-t>8</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 8.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fj9dcfsf"><emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonZeroDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fj9dcfsf"><emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="NonOctalDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDigit">NonOctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fj9dcfsf"><emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fj9dcfsf"><emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 9.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ph_p3jt-"><emu-t>a</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="nx0p29ri"><emu-t>A</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 10.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ayxoiyyq"><emu-t>b</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="cibwka8w"><emu-t>B</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 11.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="1ztbra35"><emu-t>c</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="x4fmw88j"><emu-t>C</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 12.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="8pmnkw2i"><emu-t>d</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="kzsugx0d"><emu-t>D</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 13.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dxyfuoqh"><emu-t>e</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="sv9nkvwp"><emu-t>E</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 14.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="qgjk5yjy"><emu-t>f</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> or of <emu-grammar><emu-production name="HexDigit" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dvrpcls0"><emu-t>F</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 15.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="BinaryDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="gqp0qw4u">
|
||
<emu-nt id="_ref_19922"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19923"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19924"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a></emu-nt> × 2) plus the MV of <emu-nt id="_ref_19925"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="BinaryDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="gtcavmjz">
|
||
<emu-nt id="_ref_19926"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19927"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19928"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19929"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigits">BinaryDigits</a></emu-nt> × 2) plus the MV of <emu-nt id="_ref_19930"><a href="ecmascript-language-lexical-grammar.html#prod-BinaryDigit">BinaryDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="OctalDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="n6kv_lqw">
|
||
<emu-nt id="_ref_19931"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19932"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19933"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a></emu-nt> × 8) plus the MV of <emu-nt id="_ref_19934"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="OctalDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="twqvafmk">
|
||
<emu-nt id="_ref_19935"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19936"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19937"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19938"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigits">OctalDigits</a></emu-nt> × 8) plus the MV of <emu-nt id="_ref_19939"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="LegacyOctalIntegerLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="tx3hz6c8">
|
||
<emu-nt id="_ref_19940"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19941"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19942"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt> times 8) plus the MV of <emu-nt id="_ref_19943"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="NonOctalDecimalIntegerLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="yq78icb2">
|
||
<emu-nt id="_ref_19944"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19945"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDigit">NonOctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19946"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt> times 10) plus the MV of <emu-nt id="_ref_19947"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDigit">NonOctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="NonOctalDecimalIntegerLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="qxebmbch">
|
||
<emu-nt id="_ref_19948"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19949"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19950"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalIntegerLiteral">NonOctalDecimalIntegerLiteral</a></emu-nt> times 10) plus the MV of <emu-nt id="_ref_19951"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="LegacyOctalLikeDecimalIntegerLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="sk7h1nbk">
|
||
<emu-nt id="_ref_19952"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19953"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19954"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalLikeDecimalIntegerLiteral">LegacyOctalLikeDecimalIntegerLiteral</a></emu-nt> times 10) plus the MV of <emu-nt id="_ref_19955"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="yciymy2l">
|
||
<emu-nt id="_ref_19956"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19957"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19958"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> × 16) plus the MV of <emu-nt id="_ref_19959"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="gza2ktug">
|
||
<emu-nt id="_ref_19960"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19961"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19962"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (the MV of <emu-nt id="_ref_19963"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> × 16) plus the MV of <emu-nt id="_ref_19964"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
</ul>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-numericvalue" type="sdo" aoid="NumericValue">
|
||
<h1><span class="secnum">12.9.3.3</span> Static Semantics: NumericValue</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5895"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> NumericValue takes no arguments and returns a Number or a BigInt. It is defined piecewise over the following productions:</p>
|
||
<emu-grammar><emu-production name="NumericLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="gma1bw5s" id="prod-6EKD79IF"><emu-nt id="_ref_19965"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="RoundMVResult" id="_ref_5896"><a href="abstract-operations.html#sec-roundmvresult">RoundMVResult</a></emu-xref>(MV of <emu-nt id="_ref_19966"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalLiteral">DecimalLiteral</a></emu-nt>).</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="NumericLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6ge3c7dq" id="prod-VwBAoy40"><emu-nt id="_ref_19967"><a href="ecmascript-language-lexical-grammar.html#prod-NonDecimalIntegerLiteral">NonDecimalIntegerLiteral</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_5897"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(MV of <emu-nt id="_ref_19968"><a href="ecmascript-language-lexical-grammar.html#prod-NonDecimalIntegerLiteral">NonDecimalIntegerLiteral</a></emu-nt>).</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="NumericLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="8n96hykg" id="prod-n5uysvQ-"><emu-nt id="_ref_19969"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_5898"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(MV of <emu-nt id="_ref_19970"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalIntegerLiteral">LegacyOctalIntegerLiteral</a></emu-nt>).</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="NumericLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteral">NumericLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="an71bvql" id="prod-MgVpq-Ot">
|
||
<emu-nt id="_ref_19971"><a href="ecmascript-language-lexical-grammar.html#prod-NonDecimalIntegerLiteral">NonDecimalIntegerLiteral</a></emu-nt>
|
||
<emu-nt id="_ref_19972"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the <emu-xref href="#bigint-value-for" id="_ref_5899"><a href="notational-conventions.html#bigint-value-for">BigInt value for</a></emu-xref> the MV of <emu-nt id="_ref_19973"><a href="ecmascript-language-lexical-grammar.html#prod-NonDecimalIntegerLiteral">NonDecimalIntegerLiteral</a></emu-nt>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="DecimalBigIntegerLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalBigIntegerLiteral">DecimalBigIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="3e5icnkp" id="prod-_KqL62EN">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_19974"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return <emu-val>0</emu-val><sub>ℤ</sub>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="DecimalBigIntegerLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalBigIntegerLiteral">DecimalBigIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dkfbjt3h" id="prod-k8d8Sn1k">
|
||
<emu-nt id="_ref_19975"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
<emu-nt id="_ref_19976"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the <emu-xref href="#bigint-value-for" id="_ref_5900"><a href="notational-conventions.html#bigint-value-for">BigInt value for</a></emu-xref> the MV of <emu-nt id="_ref_19977"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>.</li></ol></emu-alg>
|
||
<emu-grammar><emu-production name="DecimalBigIntegerLiteral" type="lexical">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalBigIntegerLiteral">DecimalBigIntegerLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="kwaczm1q" id="prod-6lkR-0p2">
|
||
<emu-nt id="_ref_19978"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
<emu-nt id="_ref_19979"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19980"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="9dtmhu9b" id="prod-Rb94_ol-">
|
||
<emu-nt id="_ref_19981"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt>
|
||
<emu-nt id="_ref_19982"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_19983"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>
|
||
<emu-nt id="_ref_19984"><a href="ecmascript-language-lexical-grammar.html#prod-BigIntLiteralSuffix">BigIntLiteralSuffix</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Let <var>n</var> be the number of code points in <emu-nt id="_ref_19985"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>, excluding all occurrences of <emu-nt id="_ref_19986"><a href="ecmascript-language-lexical-grammar.html#prod-NumericLiteralSeparator">NumericLiteralSeparator</a></emu-nt>.</li><li>Let <var>mv</var> be (the MV of <emu-nt id="_ref_19987"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroDigit">NonZeroDigit</a></emu-nt> × 10<sup><var>n</var></sup>) plus the MV of <emu-nt id="_ref_19988"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigits">DecimalDigits</a></emu-nt>.</li><li>Return <emu-xref aoid="ℤ" id="_ref_5901"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<var>mv</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-literals-string-literals" oldids="sec-additional-syntax-string-literals"><span id="sec-additional-syntax-string-literals"></span>
|
||
<h1><span class="secnum">12.9.4</span> String Literals</h1>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>A string literal is 0 or more Unicode code points enclosed in single or double quotes. Unicode code points may also be represented by an escape sequence. All code points may appear literally in a string literal except for the closing quote code points, U+005C (REVERSE SOLIDUS), U+000D (CARRIAGE RETURN), and U+000A (LINE FEED). Any code points may appear in the form of an escape sequence. String literals evaluate to ECMAScript String values. When generating these String values Unicode code points are UTF-16 encoded as defined in <emu-xref href="#sec-utf16encodecodepoint" id="_ref_383"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">11.1.1</a></emu-xref>. Code points belonging to the Basic Multilingual Plane are encoded as a single code unit element of the string. All other code points are encoded as two code unit elements of the string.</p>
|
||
</div></emu-note>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="StringLiteral" type="lexical" id="prod-StringLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-StringLiteral">StringLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fdix8v-c">
|
||
<emu-t>"</emu-t>
|
||
<emu-nt optional="" id="_ref_19989"><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacters">DoubleStringCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>"</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="guyz2t4p">
|
||
<emu-t>'</emu-t>
|
||
<emu-nt optional="" id="_ref_19990"><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacters">SingleStringCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>'</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DoubleStringCharacters" type="lexical" id="prod-DoubleStringCharacters">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacters">DoubleStringCharacters</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="i9q8d_st">
|
||
<emu-nt id="_ref_19991"><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_19992"><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacters">DoubleStringCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleStringCharacters" type="lexical" id="prod-SingleStringCharacters">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacters">SingleStringCharacters</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="f9kevwoi">
|
||
<emu-nt id="_ref_19993"><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_19994"><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacters">SingleStringCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="DoubleStringCharacter" type="lexical" id="prod-DoubleStringCharacter">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="qh-v7bpd">
|
||
<emu-nt id="_ref_19995"><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_19996"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="eaiqsw9w">
|
||
<emu-gprose><LS></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="z8h10fxn">
|
||
<emu-gprose><PS></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="6n2njt_x">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_19997"><a href="ecmascript-language-lexical-grammar.html#prod-EscapeSequence">EscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ajkpm2ja">
|
||
<emu-nt id="_ref_19998"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleStringCharacter" type="lexical" id="prod-SingleStringCharacter">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xqnh0twg">
|
||
<emu-nt id="_ref_19999"><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_20000"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="eaiqsw9w">
|
||
<emu-gprose><LS></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="z8h10fxn">
|
||
<emu-gprose><PS></emu-gprose>
|
||
</emu-rhs>
|
||
<emu-rhs a="6n2njt_x">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20001"><a href="ecmascript-language-lexical-grammar.html#prod-EscapeSequence">EscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ajkpm2ja">
|
||
<emu-nt id="_ref_20002"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="LineContinuation" type="lexical" id="prod-LineContinuation">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xik9y9lz">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20003"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="EscapeSequence" type="lexical" id="prod-EscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-EscapeSequence">EscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6ehvb3kw">
|
||
<emu-nt id="_ref_20004"><a href="ecmascript-language-lexical-grammar.html#prod-CharacterEscapeSequence">CharacterEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="br2d94cy">
|
||
<emu-t>0</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20005"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="6mwrfc1u">
|
||
<emu-nt id="_ref_20006"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="nv0ui3q7">
|
||
<emu-nt id="_ref_20007"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalEscapeSequence">NonOctalDecimalEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="qacbhaps">
|
||
<emu-nt id="_ref_20008"><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="rl1vvdtr">
|
||
<emu-nt id="_ref_20009"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="CharacterEscapeSequence" type="lexical" id="prod-CharacterEscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-CharacterEscapeSequence">CharacterEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="desdj6ig">
|
||
<emu-nt id="_ref_20010"><a href="ecmascript-language-lexical-grammar.html#prod-SingleEscapeCharacter">SingleEscapeCharacter</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="t5gkmnte">
|
||
<emu-nt id="_ref_20011"><a href="ecmascript-language-lexical-grammar.html#prod-NonEscapeCharacter">NonEscapeCharacter</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="SingleEscapeCharacter" type="lexical" oneof="" id="prod-SingleEscapeCharacter">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleEscapeCharacter">SingleEscapeCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>'</emu-t> <emu-t>"</emu-t> <emu-t>\</emu-t> <emu-t>b</emu-t> <emu-t>f</emu-t> <emu-t>n</emu-t> <emu-t>r</emu-t> <emu-t>t</emu-t> <emu-t>v</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NonEscapeCharacter" type="lexical" id="prod-NonEscapeCharacter">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonEscapeCharacter">NonEscapeCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="g6xhj53i">
|
||
<emu-nt id="_ref_20012"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not one of <emu-nt id="_ref_20013"><a href="ecmascript-language-lexical-grammar.html#prod-EscapeCharacter">EscapeCharacter</a></emu-nt> or <emu-nt id="_ref_20014"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="EscapeCharacter" type="lexical" id="prod-EscapeCharacter">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-EscapeCharacter">EscapeCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="desdj6ig">
|
||
<emu-nt id="_ref_20015"><a href="ecmascript-language-lexical-grammar.html#prod-SingleEscapeCharacter">SingleEscapeCharacter</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="s4me4hlz">
|
||
<emu-nt id="_ref_20016"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="fqodqad9">
|
||
<emu-t>x</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="jc5mvt_f">
|
||
<emu-t>u</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="LegacyOctalEscapeSequence" type="lexical" id="prod-LegacyOctalEscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7ty-i8nt">
|
||
<emu-t>0</emu-t>
|
||
<emu-gann>[lookahead ∈ { <emu-t>8</emu-t>, <emu-t>9</emu-t> }]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="zo2dw1jh">
|
||
<emu-nt id="_ref_20017"><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroOctalDigit">NonZeroOctalDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20018"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="j1oybrrs">
|
||
<emu-nt id="_ref_20019"><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt>
|
||
<emu-nt id="_ref_20020"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20021"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="ci1_zc16">
|
||
<emu-nt id="_ref_20022"><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt>
|
||
<emu-nt id="_ref_20023"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="4u5dk78q">
|
||
<emu-nt id="_ref_20024"><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt>
|
||
<emu-nt id="_ref_20025"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20026"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NonZeroOctalDigit" type="lexical" id="prod-NonZeroOctalDigit">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonZeroOctalDigit">NonZeroOctalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="oqgsby5s">
|
||
<emu-nt id="_ref_20027"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt> <emu-gmod>but not <emu-t>0</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ZeroToThree" type="lexical" oneof="" id="prod-ZeroToThree">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>0</emu-t> <emu-t>1</emu-t> <emu-t>2</emu-t> <emu-t>3</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="FourToSeven" type="lexical" oneof="" id="prod-FourToSeven">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>4</emu-t> <emu-t>5</emu-t> <emu-t>6</emu-t> <emu-t>7</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NonOctalDecimalEscapeSequence" type="lexical" oneof="" id="prod-NonOctalDecimalEscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalEscapeSequence">NonOctalDecimalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>8</emu-t> <emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="HexEscapeSequence" type="lexical" id="prod-HexEscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2o-xpa4a">
|
||
<emu-t>x</emu-t>
|
||
<emu-nt id="_ref_20028"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20029"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="UnicodeEscapeSequence" type="lexical" id="prod-UnicodeEscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ghktjvoi" id="prod-yPsTqmeL">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20030"><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="uybj7_dt" id="prod-qIqpq7Bo">
|
||
<emu-t>u{</emu-t>
|
||
<emu-nt id="_ref_20031"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="Hex4Digits" type="lexical" id="prod-Hex4Digits">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c6jeysfq">
|
||
<emu-nt id="_ref_20032"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20033"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20034"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20035"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>The definition of the nonterminal <emu-nt id="_ref_20036"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> is given in <emu-xref href="#sec-literals-numeric-literals" id="_ref_384"><a href="ecmascript-language-lexical-grammar.html#sec-literals-numeric-literals">12.9.3</a></emu-xref>. <emu-nt id="_ref_20037"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> is defined in <emu-xref href="#sec-source-text" id="_ref_385"><a href="ecmascript-language-source-code.html#sec-source-text">11.1</a></emu-xref>.</p>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p><LF> and <CR> cannot appear in a string literal, except as part of a <emu-nt id="_ref_20038"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt> to produce the empty code points sequence. The proper way to include either in the String value of a string literal is to use an escape sequence such as <code>\n</code> or <code>\u000A</code>.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-string-literals-early-errors">
|
||
<h1><span class="secnum">12.9.4.1</span> Static Semantics: Early Errors</h1>
|
||
<emu-grammar><emu-production name="EscapeSequence" type="lexical">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-EscapeSequence">EscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6mwrfc1u">
|
||
<emu-nt id="_ref_20039"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="nv0ui3q7">
|
||
<emu-nt id="_ref_20040"><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalEscapeSequence">NonOctalDecimalEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<ul>
|
||
<li>It is a Syntax Error if <emu-xref aoid="IsStrict" id="_ref_5902"><a href="ecmascript-language-source-code.html#sec-isstrict">IsStrict</a></emu-xref>(this production) is <emu-val>true</emu-val>.</li>
|
||
</ul>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">In <emu-xref href="#non-strict-code" id="_ref_5903"><a href="ecmascript-language-source-code.html#non-strict-code">non-strict code</a></emu-xref>, this syntax is <emu-xref href="#sec-conformance" id="_ref_5904"><a href="conformance.html#sec-conformance">Legacy</a></emu-xref>.</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>It is possible for string literals to precede a <emu-xref href="#use-strict-directive" id="_ref_5905"><a href="ecmascript-language-source-code.html#use-strict-directive">Use Strict Directive</a></emu-xref> that places the enclosing code in <emu-xref href="#sec-strict-mode-code" id="_ref_386"><a href="ecmascript-language-source-code.html#sec-strict-mode-code">strict mode</a></emu-xref>, and implementations must take care to enforce the above rules for such literals. For example, the following source text contains a Syntax Error:</p>
|
||
<pre><code class="javascript hljs"><span class="hljs-keyword">function</span> <span class="hljs-title function_">invalid</span>(<span class="hljs-params"></span>) { <span class="hljs-string">"\7"</span>; <span class="hljs-string">"use strict"</span>; }</code></pre>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-static-semantics-sv" oldids="sec-string-literals-static-semantics-stringvalue,sec-additional-syntax-string-literals-static-semantics" type="sdo" aoid="SV"><span id="sec-additional-syntax-string-literals-static-semantics"></span><span id="sec-string-literals-static-semantics-stringvalue"></span>
|
||
<h1><span class="secnum">12.9.4.2</span> Static Semantics: SV</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5906"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> SV takes no arguments and returns a String.</p>
|
||
<p>A string literal stands for a value of the <emu-xref href="#sec-ecmascript-language-types-string-type" id="_ref_5907"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type">String type</a></emu-xref>. SV produces String values for string literals through recursive application on the various parts of the string literal. As part of this process, some Unicode code points within the string literal are interpreted as having a <emu-xref href="#mathematical-value" id="_ref_5908"><a href="notational-conventions.html#mathematical-value">mathematical value</a></emu-xref>, as described below or in <emu-xref href="#sec-literals-numeric-literals" id="_ref_387"><a href="ecmascript-language-lexical-grammar.html#sec-literals-numeric-literals">12.9.3</a></emu-xref>.</p>
|
||
|
||
<ul>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="StringLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-StringLiteral">StringLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ot_2xigm">
|
||
<emu-t>"</emu-t>
|
||
<emu-t>"</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="StringLiteral" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-StringLiteral">StringLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dhhrcrr2">
|
||
<emu-t>'</emu-t>
|
||
<emu-t>'</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="DoubleStringCharacters" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacters">DoubleStringCharacters</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="mz8kfg36">
|
||
<emu-nt id="_ref_20041"><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt>
|
||
<emu-nt id="_ref_20042"><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacters">DoubleStringCharacters</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5909"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the SV of <emu-nt id="_ref_20043"><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt> and the SV of <emu-nt id="_ref_20044"><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacters">DoubleStringCharacters</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="SingleStringCharacters" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacters">SingleStringCharacters</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ievpmfb9">
|
||
<emu-nt id="_ref_20045"><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt>
|
||
<emu-nt id="_ref_20046"><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacters">SingleStringCharacters</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5910"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the SV of <emu-nt id="_ref_20047"><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt> and the SV of <emu-nt id="_ref_20048"><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacters">SingleStringCharacters</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="DoubleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="qh-v7bpd"><emu-nt id="_ref_20049"><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_20050"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5911"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the code point matched by <emu-nt id="_ref_20051"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="DoubleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eaiqsw9w"><emu-gprose><LS></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x2028 (LINE SEPARATOR).
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="DoubleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="z8h10fxn"><emu-gprose><PS></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x2029 (PARAGRAPH SEPARATOR).
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="DoubleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DoubleStringCharacter">DoubleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ajkpm2ja"><emu-nt id="_ref_20052"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="SingleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xqnh0twg"><emu-nt id="_ref_20053"><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_20054"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5912"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the code point matched by <emu-nt id="_ref_20055"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="SingleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eaiqsw9w"><emu-gprose><LS></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x2028 (LINE SEPARATOR).
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="SingleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="z8h10fxn"><emu-gprose><PS></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x2029 (PARAGRAPH SEPARATOR).
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="SingleStringCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleStringCharacter">SingleStringCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ajkpm2ja"><emu-nt id="_ref_20056"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="EscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-EscapeSequence">EscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0000 (NULL).
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="CharacterEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-CharacterEscapeSequence">CharacterEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="desdj6ig"><emu-nt id="_ref_20057"><a href="ecmascript-language-lexical-grammar.html#prod-SingleEscapeCharacter">SingleEscapeCharacter</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit whose numeric value is determined by the <emu-nt id="_ref_20058"><a href="ecmascript-language-lexical-grammar.html#prod-SingleEscapeCharacter">SingleEscapeCharacter</a></emu-nt> according to <emu-xref href="#table-string-single-character-escape-sequences" id="_ref_388"><a href="ecmascript-language-lexical-grammar.html#table-string-single-character-escape-sequences">Table 32</a></emu-xref>.
|
||
</li>
|
||
</ul>
|
||
<emu-table id="table-string-single-character-escape-sequences" caption="String Single Character Escape Sequences" oldids="table-34"><figure><figcaption>Table 32: String Single Character Escape Sequences</figcaption><span id="table-34"></span>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>
|
||
Escape Sequence
|
||
</th>
|
||
<th>
|
||
Code Unit Value
|
||
</th>
|
||
<th>
|
||
Unicode Character Name
|
||
</th>
|
||
<th>
|
||
Symbol
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr>
|
||
<td>
|
||
<code>\b</code>
|
||
</td>
|
||
<td>
|
||
<code>0x0008</code>
|
||
</td>
|
||
<td>
|
||
BACKSPACE
|
||
</td>
|
||
<td>
|
||
<BS>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\t</code>
|
||
</td>
|
||
<td>
|
||
<code>0x0009</code>
|
||
</td>
|
||
<td>
|
||
CHARACTER TABULATION
|
||
</td>
|
||
<td>
|
||
<HT>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\n</code>
|
||
</td>
|
||
<td>
|
||
<code>0x000A</code>
|
||
</td>
|
||
<td>
|
||
LINE FEED (LF)
|
||
</td>
|
||
<td>
|
||
<LF>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\v</code>
|
||
</td>
|
||
<td>
|
||
<code>0x000B</code>
|
||
</td>
|
||
<td>
|
||
LINE TABULATION
|
||
</td>
|
||
<td>
|
||
<VT>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\f</code>
|
||
</td>
|
||
<td>
|
||
<code>0x000C</code>
|
||
</td>
|
||
<td>
|
||
FORM FEED (FF)
|
||
</td>
|
||
<td>
|
||
<FF>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\r</code>
|
||
</td>
|
||
<td>
|
||
<code>0x000D</code>
|
||
</td>
|
||
<td>
|
||
CARRIAGE RETURN (CR)
|
||
</td>
|
||
<td>
|
||
<CR>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\"</code>
|
||
</td>
|
||
<td>
|
||
<code>0x0022</code>
|
||
</td>
|
||
<td>
|
||
QUOTATION MARK
|
||
</td>
|
||
<td>
|
||
<code>"</code>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\'</code>
|
||
</td>
|
||
<td>
|
||
<code>0x0027</code>
|
||
</td>
|
||
<td>
|
||
APOSTROPHE
|
||
</td>
|
||
<td>
|
||
<code>'</code>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>\\</code>
|
||
</td>
|
||
<td>
|
||
<code>0x005C</code>
|
||
</td>
|
||
<td>
|
||
REVERSE SOLIDUS
|
||
</td>
|
||
<td>
|
||
<code>\</code>
|
||
</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure></emu-table>
|
||
<ul>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="NonEscapeCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonEscapeCharacter">NonEscapeCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="g6xhj53i"><emu-nt id="_ref_20059"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not one of <emu-nt id="_ref_20060"><a href="ecmascript-language-lexical-grammar.html#prod-EscapeCharacter">EscapeCharacter</a></emu-nt> or <emu-nt id="_ref_20061"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5913"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the code point matched by <emu-nt id="_ref_20062"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="EscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-EscapeSequence">EscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6mwrfc1u"><emu-nt id="_ref_20063"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit whose numeric value is the MV of <emu-nt id="_ref_20064"><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="NonOctalDecimalEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalEscapeSequence">NonOctalDecimalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="elvyw2lo"><emu-t>8</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0038 (DIGIT EIGHT).
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="NonOctalDecimalEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NonOctalDecimalEscapeSequence">NonOctalDecimalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fj9dcfsf"><emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0039 (DIGIT NINE).
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="HexEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2o-xpa4a">
|
||
<emu-t>x</emu-t>
|
||
<emu-nt id="_ref_20065"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20066"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit whose numeric value is the MV of <emu-nt id="_ref_20067"><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="Hex4Digits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c6jeysfq">
|
||
<emu-nt id="_ref_20068"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20069"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20070"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20071"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit whose numeric value is the MV of <emu-nt id="_ref_20072"><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="UnicodeEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="uybj7_dt">
|
||
<emu-t>u{</emu-t>
|
||
<emu-nt id="_ref_20073"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5914"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the MV of <emu-nt id="_ref_20074"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The SV of <emu-grammar><emu-production name="TemplateEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0000 (NULL).
|
||
</li>
|
||
</ul>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-string-literals-static-semantics-mv">
|
||
<h1><span class="secnum">12.9.4.3</span> Static Semantics: MV</h1>
|
||
<ul>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="LegacyOctalEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ebo5t_hb">
|
||
<emu-nt id="_ref_20075"><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt>
|
||
<emu-nt id="_ref_20076"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (8 times the MV of <emu-nt id="_ref_20077"><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt>) plus the MV of <emu-nt id="_ref_20078"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="LegacyOctalEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ci1_zc16">
|
||
<emu-nt id="_ref_20079"><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt>
|
||
<emu-nt id="_ref_20080"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (8 times the MV of <emu-nt id="_ref_20081"><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt>) plus the MV of <emu-nt id="_ref_20082"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="LegacyOctalEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LegacyOctalEscapeSequence">LegacyOctalEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="4u5dk78q">
|
||
<emu-nt id="_ref_20083"><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt>
|
||
<emu-nt id="_ref_20084"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20085"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (64 (that is, 8<sup>2</sup>) times the MV of <emu-nt id="_ref_20086"><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt>) plus (8 times the MV of the first <emu-nt id="_ref_20087"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>) plus the MV of the second <emu-nt id="_ref_20088"><a href="ecmascript-language-lexical-grammar.html#prod-OctalDigit">OctalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="ZeroToThree" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 0.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="ZeroToThree" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ksql3txo"><emu-t>1</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 1.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="ZeroToThree" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xkcxbwmk"><emu-t>2</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 2.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="ZeroToThree" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-ZeroToThree">ZeroToThree</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="7gu2shc1"><emu-t>3</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 3.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="FourToSeven" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="woxkczx2"><emu-t>4</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 4.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="FourToSeven" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="j83vdwqk"><emu-t>5</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 5.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="FourToSeven" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c2shfb68"><emu-t>6</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 6.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="FourToSeven" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-FourToSeven">FourToSeven</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6l4hpim_"><emu-t>7</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is 7.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="HexEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2o-xpa4a">
|
||
<emu-t>x</emu-t>
|
||
<emu-nt id="_ref_20089"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20090"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (16 times the MV of the first <emu-nt id="_ref_20091"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>) plus the MV of the second <emu-nt id="_ref_20092"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The MV of <emu-grammar><emu-production name="Hex4Digits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c6jeysfq">
|
||
<emu-nt id="_ref_20093"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20094"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20095"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20096"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is (0x1000 × the MV of the first <emu-nt id="_ref_20097"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>) plus (0x100 × the MV of the second <emu-nt id="_ref_20098"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>) plus (0x10 × the MV of the third <emu-nt id="_ref_20099"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>) plus the MV of the fourth <emu-nt id="_ref_20100"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
</ul>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-literals-regular-expression-literals">
|
||
<h1><span class="secnum">12.9.5</span> Regular Expression Literals</h1>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>A regular expression literal is an input element that is converted to a RegExp object (see <emu-xref href="#sec-regexp-regular-expression-objects" id="_ref_389"><a href="text-processing.html#sec-regexp-regular-expression-objects">22.2</a></emu-xref>) each time the literal is evaluated. Two regular expression literals in a program evaluate to regular expression objects that never compare as <code>===</code> to each other even if the two literals' contents are identical. A RegExp object may also be created at runtime by <code>new RegExp</code> or calling the RegExp <emu-xref href="#constructor" id="_ref_5915"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref> as a function (see <emu-xref href="#sec-regexp-constructor" id="_ref_390"><a href="text-processing.html#sec-regexp-constructor">22.2.4</a></emu-xref>).</p>
|
||
</div></emu-note>
|
||
<p>The productions below describe the syntax for a regular expression literal and are used by the input element scanner to find the end of the regular expression literal. The source text comprising the <emu-nt id="_ref_20101"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBody">RegularExpressionBody</a></emu-nt> and the <emu-nt id="_ref_20102"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt> are subsequently parsed again using the more stringent ECMAScript Regular Expression grammar (<emu-xref href="#sec-patterns" id="_ref_391"><a href="text-processing.html#sec-patterns">22.2.1</a></emu-xref>).</p>
|
||
<p>An implementation may extend the ECMAScript Regular Expression grammar defined in <emu-xref href="#sec-patterns" id="_ref_392"><a href="text-processing.html#sec-patterns">22.2.1</a></emu-xref>, but it must not extend the <emu-nt id="_ref_20103"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBody">RegularExpressionBody</a></emu-nt> and <emu-nt id="_ref_20104"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt> productions defined below or the productions used by these productions.</p>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="RegularExpressionLiteral" type="lexical" id="prod-RegularExpressionLiteral">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="v3gfo--_" id="prod-6WVj7Zp6">
|
||
<emu-t>/</emu-t>
|
||
<emu-nt id="_ref_20105"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBody">RegularExpressionBody</a></emu-nt>
|
||
<emu-t>/</emu-t>
|
||
<emu-nt id="_ref_20106"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionBody" type="lexical" id="prod-RegularExpressionBody">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBody">RegularExpressionBody</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="u6ewnk3q">
|
||
<emu-nt id="_ref_20107"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFirstChar">RegularExpressionFirstChar</a></emu-nt>
|
||
<emu-nt id="_ref_20108"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionChars">RegularExpressionChars</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionChars" type="lexical" id="prod-RegularExpressionChars">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionChars">RegularExpressionChars</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="n7nathbb">
|
||
<emu-gann>[empty]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="qygc7azr">
|
||
<emu-nt id="_ref_20109"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionChars">RegularExpressionChars</a></emu-nt>
|
||
<emu-nt id="_ref_20110"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionChar">RegularExpressionChar</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionFirstChar" type="lexical" id="prod-RegularExpressionFirstChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFirstChar">RegularExpressionFirstChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2hsmcj0g">
|
||
<emu-nt id="_ref_20111"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionNonTerminator">RegularExpressionNonTerminator</a></emu-nt> <emu-gmod>but not one of <emu-t>*</emu-t> or <emu-t>\</emu-t> or <emu-t>/</emu-t> or <emu-t>[</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="njv5p0rd">
|
||
<emu-nt id="_ref_20112"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBackslashSequence">RegularExpressionBackslashSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="xmafjorq">
|
||
<emu-nt id="_ref_20113"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClass">RegularExpressionClass</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionChar" type="lexical" id="prod-RegularExpressionChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionChar">RegularExpressionChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="8mp_fppd">
|
||
<emu-nt id="_ref_20114"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionNonTerminator">RegularExpressionNonTerminator</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="njv5p0rd">
|
||
<emu-nt id="_ref_20115"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBackslashSequence">RegularExpressionBackslashSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="xmafjorq">
|
||
<emu-nt id="_ref_20116"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClass">RegularExpressionClass</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionBackslashSequence" type="lexical" id="prod-RegularExpressionBackslashSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBackslashSequence">RegularExpressionBackslashSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="12vrrw1t">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20117"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionNonTerminator">RegularExpressionNonTerminator</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionNonTerminator" type="lexical" id="prod-RegularExpressionNonTerminator">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionNonTerminator">RegularExpressionNonTerminator</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lvvfp8iw">
|
||
<emu-nt id="_ref_20118"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt> <emu-gmod>but not <emu-nt id="_ref_20119"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionClass" type="lexical" id="prod-RegularExpressionClass">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClass">RegularExpressionClass</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="tbvecnsu">
|
||
<emu-t>[</emu-t>
|
||
<emu-nt id="_ref_20120"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClassChars">RegularExpressionClassChars</a></emu-nt>
|
||
<emu-t>]</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionClassChars" type="lexical" id="prod-RegularExpressionClassChars">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClassChars">RegularExpressionClassChars</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="n7nathbb">
|
||
<emu-gann>[empty]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="dr3lbtf5">
|
||
<emu-nt id="_ref_20121"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClassChars">RegularExpressionClassChars</a></emu-nt>
|
||
<emu-nt id="_ref_20122"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClassChar">RegularExpressionClassChar</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionClassChar" type="lexical" id="prod-RegularExpressionClassChar">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionClassChar">RegularExpressionClassChar</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="f9eiuy71">
|
||
<emu-nt id="_ref_20123"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionNonTerminator">RegularExpressionNonTerminator</a></emu-nt> <emu-gmod>but not one of <emu-t>]</emu-t> or <emu-t>\</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="njv5p0rd">
|
||
<emu-nt id="_ref_20124"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBackslashSequence">RegularExpressionBackslashSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="RegularExpressionFlags" type="lexical" id="prod-RegularExpressionFlags">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="n7nathbb">
|
||
<emu-gann>[empty]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="9bwye56f">
|
||
<emu-nt id="_ref_20125"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt>
|
||
<emu-nt id="_ref_20126"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierPartChar">IdentifierPartChar</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>Regular expression literals may not be empty; instead of representing an empty regular expression literal, the code unit sequence <code>//</code> starts a single-line comment. To specify an empty regular expression, use: <code>/(?:)/</code>.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-static-semantics-bodytext" type="sdo" aoid="BodyText">
|
||
<h1><span class="secnum">12.9.5.1</span> Static Semantics: BodyText</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5916"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> BodyText takes no arguments and returns source text. It is defined piecewise over the following productions:</p>
|
||
<emu-grammar><emu-production name="RegularExpressionLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="v3gfo--_" id="prod-GHASI6lr">
|
||
<emu-t>/</emu-t>
|
||
<emu-nt id="_ref_20127"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBody">RegularExpressionBody</a></emu-nt>
|
||
<emu-t>/</emu-t>
|
||
<emu-nt id="_ref_20128"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the source text that was recognized as <emu-nt id="_ref_20129"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBody">RegularExpressionBody</a></emu-nt>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-static-semantics-flagtext" type="sdo" aoid="FlagText">
|
||
<h1><span class="secnum">12.9.5.2</span> Static Semantics: FlagText</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5917"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> FlagText takes no arguments and returns source text. It is defined piecewise over the following productions:</p>
|
||
<emu-grammar><emu-production name="RegularExpressionLiteral" type="lexical" collapsed="">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionLiteral">RegularExpressionLiteral</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="v3gfo--_" id="prod-U3zNjneX">
|
||
<emu-t>/</emu-t>
|
||
<emu-nt id="_ref_20130"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionBody">RegularExpressionBody</a></emu-nt>
|
||
<emu-t>/</emu-t>
|
||
<emu-nt id="_ref_20131"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-alg><ol><li>Return the source text that was recognized as <emu-nt id="_ref_20132"><a href="ecmascript-language-lexical-grammar.html#prod-RegularExpressionFlags">RegularExpressionFlags</a></emu-nt>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-template-literal-lexical-components">
|
||
<h1><span class="secnum">12.9.6</span> Template Literal Lexical Components</h1>
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="Template" type="lexical" id="prod-Template">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-Template">Template</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="e_otk8es">
|
||
<emu-nt id="_ref_20133"><a href="ecmascript-language-lexical-grammar.html#prod-NoSubstitutionTemplate">NoSubstitutionTemplate</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="q5pllvwq">
|
||
<emu-nt id="_ref_20134"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateHead">TemplateHead</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NoSubstitutionTemplate" type="lexical" id="prod-NoSubstitutionTemplate">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NoSubstitutionTemplate">NoSubstitutionTemplate</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="bw9ca6ur">
|
||
<emu-t>`</emu-t>
|
||
<emu-nt optional="" id="_ref_20135"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>`</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemplateHead" type="lexical" id="prod-TemplateHead">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateHead">TemplateHead</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="v7fy_fdt">
|
||
<emu-t>`</emu-t>
|
||
<emu-nt optional="" id="_ref_20136"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>${</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemplateSubstitutionTail" type="lexical" id="prod-TemplateSubstitutionTail">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateSubstitutionTail">TemplateSubstitutionTail</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="zlwdxe92">
|
||
<emu-nt id="_ref_20137"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateMiddle">TemplateMiddle</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="v_5hijma">
|
||
<emu-nt id="_ref_20138"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateTail">TemplateTail</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemplateMiddle" type="lexical" id="prod-TemplateMiddle">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateMiddle">TemplateMiddle</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="n2nbtpup">
|
||
<emu-t>}</emu-t>
|
||
<emu-nt optional="" id="_ref_20139"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>${</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemplateTail" type="lexical" id="prod-TemplateTail">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateTail">TemplateTail</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="_o9bwnqb">
|
||
<emu-t>}</emu-t>
|
||
<emu-nt optional="" id="_ref_20140"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>`</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemplateCharacters" type="lexical" id="prod-TemplateCharacters">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="-mjqxz72">
|
||
<emu-nt id="_ref_20141"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_20142"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemplateCharacter" type="lexical" id="prod-TemplateCharacter">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="a8o1qsam">
|
||
<emu-t>$</emu-t>
|
||
<emu-gann>[lookahead ≠ <emu-t>{</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="hva1-ccd">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20143"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="amrzzf_i">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20144"><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ajkpm2ja">
|
||
<emu-nt id="_ref_20145"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="vegl2qv9">
|
||
<emu-nt id="_ref_20146"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="tidqqejp">
|
||
<emu-nt id="_ref_20147"><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> or <emu-nt id="_ref_20148"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemplateEscapeSequence" type="lexical" id="prod-TemplateEscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="6ehvb3kw">
|
||
<emu-nt id="_ref_20149"><a href="ecmascript-language-lexical-grammar.html#prod-CharacterEscapeSequence">CharacterEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="br2d94cy">
|
||
<emu-t>0</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20150"><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_20151"><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="rl1vvdtr">
|
||
<emu-nt id="_ref_20152"><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NotEscapeSequence" type="lexical" id="prod-NotEscapeSequence">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="wkfhlj8g">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_20153"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="ny9edrjl">
|
||
<emu-nt id="_ref_20154"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-gmod>but not <emu-t>0</emu-t></emu-gmod>
|
||
</emu-rhs>
|
||
<emu-rhs a="zz8wwgpo">
|
||
<emu-t>x</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20155"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="fwgfqqso">
|
||
<emu-t>x</emu-t>
|
||
<emu-nt id="_ref_20156"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20157"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="mwyqnw8x">
|
||
<emu-t>u</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20158"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
<emu-gann>[lookahead ≠ <emu-t>{</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="q3eunasx">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20159"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20160"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="r2foprbe">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20161"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20162"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20163"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="esa2zfmr">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20164"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20165"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20166"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20167"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="od14t37t">
|
||
<emu-t>u</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20168"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="olgecex1">
|
||
<emu-t>u</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20169"><a href="ecmascript-language-lexical-grammar.html#prod-NotCodePoint">NotCodePoint</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20170"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
<emu-rhs a="pj_qta32">
|
||
<emu-t>u</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20171"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20172"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
<emu-gann>[lookahead ≠ <emu-t>}</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="NotCodePoint" type="lexical" id="prod-NotCodePoint">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotCodePoint">NotCodePoint</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="iibaj99h">
|
||
<emu-nt params="~Sep" id="_ref_20173"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[~Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-gmod>but only if the MV of <emu-nt id="_ref_20174"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> > 0x10FFFF</emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="CodePoint" type="lexical" id="prod-CodePoint">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="_cg3azun">
|
||
<emu-nt params="~Sep" id="_ref_20175"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a><emu-mods><emu-params>[~Sep]</emu-params></emu-mods></emu-nt>
|
||
<emu-gmod>but only if the MV of <emu-nt id="_ref_20176"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> ≤ 0x10FFFF</emu-gmod>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p><emu-nt id="_ref_20177"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateSubstitutionTail">TemplateSubstitutionTail</a></emu-nt> is used by the <emu-nt id="_ref_20178"><a href="ecmascript-language-lexical-grammar.html#prod-InputElementTemplateTail">InputElementTemplateTail</a></emu-nt> alternative lexical goal.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-static-semantics-tv" type="sdo" oldids="sec-static-semantics-tv-and-trv" aoid="TV"><span id="sec-static-semantics-tv-and-trv"></span>
|
||
<h1><span class="secnum">12.9.6.1</span> Static Semantics: TV</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5918"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> TV takes no arguments and returns a String or <emu-val>undefined</emu-val>. A template literal component is interpreted by TV as a value of the <emu-xref href="#sec-ecmascript-language-types-string-type" id="_ref_5919"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type">String type</a></emu-xref>. TV is used to construct the indexed components of a template object (colloquially, the template values). In TV, escape sequences are replaced by the UTF-16 code unit(s) of the Unicode code point represented by the escape sequence.</p>
|
||
<ul>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="NoSubstitutionTemplate" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NoSubstitutionTemplate">NoSubstitutionTemplate</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dxjmibqw">
|
||
<emu-t>`</emu-t>
|
||
<emu-t>`</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateHead" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateHead">TemplateHead</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="jxmmarsm">
|
||
<emu-t>`</emu-t>
|
||
<emu-t>${</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateMiddle" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateMiddle">TemplateMiddle</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="bg2t_-jo">
|
||
<emu-t>}</emu-t>
|
||
<emu-t>${</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateTail" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateTail">TemplateTail</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eouh0k9p">
|
||
<emu-t>}</emu-t>
|
||
<emu-t>`</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateCharacters" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="x55hrcdd">
|
||
<emu-nt id="_ref_20179"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt>
|
||
<emu-nt id="_ref_20180"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is <emu-val>undefined</emu-val> if the TV of <emu-nt id="_ref_20181"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> is <emu-val>undefined</emu-val> or the TV of <emu-nt id="_ref_20182"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt> is <emu-val>undefined</emu-val>. Otherwise, it is the <emu-xref href="#string-concatenation" id="_ref_5920"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the TV of <emu-nt id="_ref_20183"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> and the TV of <emu-nt id="_ref_20184"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="tidqqejp"><emu-nt id="_ref_20185"><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> or <emu-nt id="_ref_20186"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5921"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the code point matched by <emu-nt id="_ref_20187"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="emlmkqfm"><emu-t>$</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0024 (DOLLAR SIGN).
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="hva1-ccd">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20188"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref aoid="SV" id="_ref_5922"><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-sv">SV</a></emu-xref> of <emu-nt id="_ref_20189"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="amrzzf_i">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20190"><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is <emu-val>undefined</emu-val>.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="vegl2qv9"><emu-nt id="_ref_20191"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref aoid="TRV" id="_ref_5923"><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-trv">TRV</a></emu-xref> of <emu-nt id="_ref_20192"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TV of <emu-grammar><emu-production name="LineContinuation" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xik9y9lz">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20193"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
</ul>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-static-semantics-trv" type="sdo" aoid="TRV">
|
||
<h1><span class="secnum">12.9.6.2</span> Static Semantics: TRV</h1>
|
||
<p>The <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_5924"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">syntax-directed operation</a></emu-xref> TRV takes no arguments and returns a String. A template literal component is interpreted by TRV as a value of the <emu-xref href="#sec-ecmascript-language-types-string-type" id="_ref_5925"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type">String type</a></emu-xref>. TRV is used to construct the raw components of a template object (colloquially, the template raw values). TRV is similar to <emu-xref aoid="TV" id="_ref_5926"><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-tv">TV</a></emu-xref> with the difference being that in TRV, escape sequences are interpreted as they appear in the literal.</p>
|
||
<ul>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NoSubstitutionTemplate" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NoSubstitutionTemplate">NoSubstitutionTemplate</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="dxjmibqw">
|
||
<emu-t>`</emu-t>
|
||
<emu-t>`</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateHead" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateHead">TemplateHead</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="jxmmarsm">
|
||
<emu-t>`</emu-t>
|
||
<emu-t>${</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateMiddle" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateMiddle">TemplateMiddle</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="bg2t_-jo">
|
||
<emu-t>}</emu-t>
|
||
<emu-t>${</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateTail" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateTail">TemplateTail</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eouh0k9p">
|
||
<emu-t>}</emu-t>
|
||
<emu-t>`</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the empty String.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateCharacters" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="x55hrcdd">
|
||
<emu-nt id="_ref_20194"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt>
|
||
<emu-nt id="_ref_20195"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5927"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the TRV of <emu-nt id="_ref_20196"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> and the TRV of <emu-nt id="_ref_20197"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacters">TemplateCharacters</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="tidqqejp"><emu-nt id="_ref_20198"><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> or <emu-nt id="_ref_20199"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt></emu-gmod></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5928"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the code point matched by <emu-nt id="_ref_20200"><a href="ecmascript-language-source-code.html#prod-SourceCharacter">SourceCharacter</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="emlmkqfm"><emu-t>$</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0024 (DOLLAR SIGN).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="hva1-ccd">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20201"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5929"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x005C (REVERSE SOLIDUS) and the TRV of <emu-nt id="_ref_20202"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateCharacter" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateCharacter">TemplateCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="amrzzf_i">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20203"><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5930"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x005C (REVERSE SOLIDUS) and the TRV of <emu-nt id="_ref_20204"><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="TemplateEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ulmkmvlx"><emu-t>0</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0030 (DIGIT ZERO).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="wkfhlj8g">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_20205"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5931"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0030 (DIGIT ZERO) and the TRV of <emu-nt id="_ref_20206"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="zz8wwgpo">
|
||
<emu-t>x</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20207"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0078 (LATIN SMALL LETTER X).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="fwgfqqso">
|
||
<emu-t>x</emu-t>
|
||
<emu-nt id="_ref_20208"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20209"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5932"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0078 (LATIN SMALL LETTER X) and the TRV of <emu-nt id="_ref_20210"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="mwyqnw8x">
|
||
<emu-t>u</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20211"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
<emu-gann>[lookahead ≠ <emu-t>{</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x0075 (LATIN SMALL LETTER U).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="q3eunasx">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20212"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20213"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5933"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U) and the TRV of <emu-nt id="_ref_20214"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="r2foprbe">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20215"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20216"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20217"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5934"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U), the TRV of the first <emu-nt id="_ref_20218"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>, and the TRV of the second <emu-nt id="_ref_20219"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="esa2zfmr">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20220"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20221"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20222"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20223"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5935"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U), the TRV of the first <emu-nt id="_ref_20224"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>, the TRV of the second <emu-nt id="_ref_20225"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>, and the TRV of the third <emu-nt id="_ref_20226"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="od14t37t">
|
||
<emu-t>u</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20227"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5936"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U) and the code unit 0x007B (LEFT CURLY BRACKET).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="olgecex1">
|
||
<emu-t>u</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20228"><a href="ecmascript-language-lexical-grammar.html#prod-NotCodePoint">NotCodePoint</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20229"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5937"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U), the code unit 0x007B (LEFT CURLY BRACKET), and the TRV of <emu-nt id="_ref_20230"><a href="ecmascript-language-lexical-grammar.html#prod-NotCodePoint">NotCodePoint</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="NotEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-NotEscapeSequence">NotEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="pj_qta32">
|
||
<emu-t>u</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20231"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>
|
||
<emu-gann>[lookahead ∉ <emu-nt id="_ref_20232"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>]</emu-gann>
|
||
<emu-gann>[lookahead ≠ <emu-t>}</emu-t>]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5938"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U), the code unit 0x007B (LEFT CURLY BRACKET), and the TRV of <emu-nt id="_ref_20233"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="DecimalDigit" type="lexical" oneof="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>0</emu-t> <emu-t>1</emu-t> <emu-t>2</emu-t> <emu-t>3</emu-t> <emu-t>4</emu-t> <emu-t>5</emu-t> <emu-t>6</emu-t> <emu-t>7</emu-t> <emu-t>8</emu-t> <emu-t>9</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5939"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the single code point matched by this production.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="CharacterEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-CharacterEscapeSequence">CharacterEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="t5gkmnte"><emu-nt id="_ref_20234"><a href="ecmascript-language-lexical-grammar.html#prod-NonEscapeCharacter">NonEscapeCharacter</a></emu-nt></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref aoid="SV" id="_ref_5940"><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-sv">SV</a></emu-xref> of <emu-nt id="_ref_20235"><a href="ecmascript-language-lexical-grammar.html#prod-NonEscapeCharacter">NonEscapeCharacter</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="SingleEscapeCharacter" type="lexical" oneof="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-SingleEscapeCharacter">SingleEscapeCharacter</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>'</emu-t> <emu-t>"</emu-t> <emu-t>\</emu-t> <emu-t>b</emu-t> <emu-t>f</emu-t> <emu-t>n</emu-t> <emu-t>r</emu-t> <emu-t>t</emu-t> <emu-t>v</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5941"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the single code point matched by this production.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="HexEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexEscapeSequence">HexEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="2o-xpa4a">
|
||
<emu-t>x</emu-t>
|
||
<emu-nt id="_ref_20236"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20237"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5942"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0078 (LATIN SMALL LETTER X), the TRV of the first <emu-nt id="_ref_20238"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>, and the TRV of the second <emu-nt id="_ref_20239"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="UnicodeEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="ghktjvoi">
|
||
<emu-t>u</emu-t>
|
||
<emu-nt id="_ref_20240"><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5943"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U) and the TRV of <emu-nt id="_ref_20241"><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="UnicodeEscapeSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-UnicodeEscapeSequence">UnicodeEscapeSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="uybj7_dt">
|
||
<emu-t>u{</emu-t>
|
||
<emu-nt id="_ref_20242"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5944"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0075 (LATIN SMALL LETTER U), the code unit 0x007B (LEFT CURLY BRACKET), the TRV of <emu-nt id="_ref_20243"><a href="ecmascript-language-lexical-grammar.html#prod-CodePoint">CodePoint</a></emu-nt>, and the code unit 0x007D (RIGHT CURLY BRACKET).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="Hex4Digits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-Hex4Digits">Hex4Digits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="c6jeysfq">
|
||
<emu-nt id="_ref_20244"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20245"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20246"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
<emu-nt id="_ref_20247"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5945"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the TRV of the first <emu-nt id="_ref_20248"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>, the TRV of the second <emu-nt id="_ref_20249"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>, the TRV of the third <emu-nt id="_ref_20250"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>, and the TRV of the fourth <emu-nt id="_ref_20251"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="HexDigits" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="yciymy2l">
|
||
<emu-nt id="_ref_20252"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt>
|
||
<emu-nt id="_ref_20253"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5946"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the TRV of <emu-nt id="_ref_20254"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigits">HexDigits</a></emu-nt> and the TRV of <emu-nt id="_ref_20255"><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="HexDigit" type="lexical" oneof="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-HexDigit">HexDigit</a></emu-nt> <emu-geq>::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>0</emu-t> <emu-t>1</emu-t> <emu-t>2</emu-t> <emu-t>3</emu-t> <emu-t>4</emu-t> <emu-t>5</emu-t> <emu-t>6</emu-t> <emu-t>7</emu-t> <emu-t>8</emu-t> <emu-t>9</emu-t> <emu-t>a</emu-t> <emu-t>b</emu-t> <emu-t>c</emu-t> <emu-t>d</emu-t> <emu-t>e</emu-t> <emu-t>f</emu-t> <emu-t>A</emu-t> <emu-t>B</emu-t> <emu-t>C</emu-t> <emu-t>D</emu-t> <emu-t>E</emu-t> <emu-t>F</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the result of performing <emu-xref aoid="UTF16EncodeCodePoint" id="_ref_5947"><a href="ecmascript-language-source-code.html#sec-utf16encodecodepoint">UTF16EncodeCodePoint</a></emu-xref> on the single code point matched by this production.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="LineContinuation" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="xik9y9lz">
|
||
<emu-t>\</emu-t>
|
||
<emu-nt id="_ref_20256"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the <emu-xref href="#string-concatenation" id="_ref_5948"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x005C (REVERSE SOLIDUS) and the TRV of <emu-nt id="_ref_20257"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="LineTerminatorSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eznvjwhz"><emu-gprose><LF></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x000A (LINE FEED).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="LineTerminatorSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="q1yr1eki"><emu-gprose><CR></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x000A (LINE FEED).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="LineTerminatorSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="eaiqsw9w"><emu-gprose><LS></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x2028 (LINE SEPARATOR).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="LineTerminatorSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="z8h10fxn"><emu-gprose><PS></emu-gprose></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x2029 (PARAGRAPH SEPARATOR).
|
||
</li>
|
||
<li>
|
||
The TRV of <emu-grammar><emu-production name="LineTerminatorSequence" type="lexical" collapsed="" class=" inline">
|
||
<emu-nt><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt> <emu-geq>::</emu-geq> <emu-rhs a="lajs7kyd">
|
||
<emu-gprose><CR></emu-gprose>
|
||
<emu-gprose><LF></emu-gprose>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar> is the String value consisting of the code unit 0x000A (LINE FEED).
|
||
</li>
|
||
</ul>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p><emu-xref aoid="TV" id="_ref_5949"><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-tv">TV</a></emu-xref> excludes the code units of <emu-nt id="_ref_20258"><a href="ecmascript-language-lexical-grammar.html#prod-LineContinuation">LineContinuation</a></emu-nt> while TRV includes them. <CR><LF> and <CR> <emu-nt id="_ref_20259"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminatorSequence">LineTerminatorSequence</a></emu-nt>s are normalized to <LF> for both <emu-xref aoid="TV" id="_ref_5950"><a href="ecmascript-language-lexical-grammar.html#sec-static-semantics-tv">TV</a></emu-xref> and TRV. An explicit <emu-nt id="_ref_20260"><a href="ecmascript-language-lexical-grammar.html#prod-TemplateEscapeSequence">TemplateEscapeSequence</a></emu-nt> is needed to include a <CR> or <CR><LF> sequence.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-automatic-semicolon-insertion">
|
||
<h1><span class="secnum">12.10</span> Automatic Semicolon Insertion</h1>
|
||
<p>Most ECMAScript statements and declarations must be terminated with a semicolon. Such semicolons may always appear explicitly in the source text. For convenience, however, such semicolons may be omitted from the source text in certain situations. These situations are described by saying that semicolons are automatically inserted into the source code token stream in those situations.</p>
|
||
|
||
<emu-clause id="sec-rules-of-automatic-semicolon-insertion" namespace="asi-rules">
|
||
<h1><span class="secnum">12.10.1</span> Rules of Automatic Semicolon Insertion</h1>
|
||
<p>In the following rules, “token” means the actual recognized lexical token determined using the current lexical <emu-xref href="#sec-context-free-grammars" id="_ref_17370"><a href="notational-conventions.html#sec-context-free-grammars">goal symbol</a></emu-xref> as described in clause <emu-xref href="#sec-ecmascript-language-lexical-grammar" id="_ref_393"><a href="ecmascript-language-lexical-grammar.html#sec-ecmascript-language-lexical-grammar">12</a></emu-xref>.</p>
|
||
<p>There are three basic rules of semicolon insertion:</p>
|
||
<ol>
|
||
<li>
|
||
<p>When, as the source text is parsed from left to right, a token (called the <em>offending token</em>) is encountered that is not allowed by any production of the grammar, then a semicolon is automatically inserted before the offending token if one or more of the following conditions is true:</p>
|
||
<ul>
|
||
<li>
|
||
The offending token is separated from the previous token by at least one <emu-nt id="_ref_20261"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>.
|
||
</li>
|
||
<li>
|
||
The offending token is <code>}</code>.
|
||
</li>
|
||
<li>
|
||
The previous token is <code>)</code> and the inserted semicolon would then be parsed as the terminating semicolon of a do-while statement (<emu-xref href="#sec-do-while-statement" id="_ref_394"><a href="ecmascript-language-statements-and-declarations.html#sec-do-while-statement">14.7.2</a></emu-xref>).
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
When, as the source text is parsed from left to right, the end of the input stream of tokens is encountered and the parser is unable to parse the input token stream as a single instance of the goal nonterminal, then a semicolon is automatically inserted at the end of the input stream.
|
||
</li>
|
||
<li>
|
||
When, as the source text is parsed from left to right, a token is encountered that is allowed by some production of the grammar, but the production is a <em>restricted production</em> and the token would be the first token for a terminal or nonterminal immediately following the annotation “[no <emu-nt id="_ref_20262"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]” within the restricted production (and therefore such a token is called a restricted token), and the restricted token is separated from the previous token by at least one <emu-nt id="_ref_20263"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt>, then a semicolon is automatically inserted before the restricted token.
|
||
</li>
|
||
</ol>
|
||
<p>However, there is an additional overriding condition on the preceding rules: a semicolon is never inserted automatically if the semicolon would then be parsed as an empty statement or if that semicolon would become one of the two semicolons in the header of a <code>for</code> statement (see <emu-xref href="#sec-for-statement" id="_ref_395"><a href="ecmascript-language-statements-and-declarations.html#sec-for-statement">14.7.4</a></emu-xref>).</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The following are the only restricted productions in the grammar:</p>
|
||
<emu-grammar><emu-production name="UpdateExpression" params="Yield, Await">
|
||
<emu-nt params="Yield, Await"><a href="ecmascript-language-expressions.html#prod-UpdateExpression">UpdateExpression</a><emu-mods><emu-params>[Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="egpm8pw8">
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20264"><a href="ecmascript-language-expressions.html#prod-LeftHandSideExpression">LeftHandSideExpression</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-gann>[no <emu-nt id="_ref_20265"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>++</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="xaomniuu">
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20266"><a href="ecmascript-language-expressions.html#prod-LeftHandSideExpression">LeftHandSideExpression</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-gann>[no <emu-nt id="_ref_20267"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>--</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ContinueStatement" params="Yield, Await">
|
||
<emu-nt params="Yield, Await"><a href="ecmascript-language-statements-and-declarations.html#prod-ContinueStatement">ContinueStatement</a><emu-mods><emu-params>[Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="6qppgxyk">
|
||
<emu-t>continue</emu-t>
|
||
<emu-t>;</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="fiwlh1nt">
|
||
<emu-t>continue</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20268"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20269"><a href="ecmascript-language-expressions.html#prod-LabelIdentifier">LabelIdentifier</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>;</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="BreakStatement" params="Yield, Await">
|
||
<emu-nt params="Yield, Await"><a href="ecmascript-language-statements-and-declarations.html#prod-BreakStatement">BreakStatement</a><emu-mods><emu-params>[Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="tlip5zkt">
|
||
<emu-t>break</emu-t>
|
||
<emu-t>;</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="nio0l2c9">
|
||
<emu-t>break</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20270"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20271"><a href="ecmascript-language-expressions.html#prod-LabelIdentifier">LabelIdentifier</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>;</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ReturnStatement" params="Yield, Await">
|
||
<emu-nt params="Yield, Await"><a href="ecmascript-language-statements-and-declarations.html#prod-ReturnStatement">ReturnStatement</a><emu-mods><emu-params>[Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="cykzgrgr">
|
||
<emu-t>return</emu-t>
|
||
<emu-t>;</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="tybfdyhl">
|
||
<emu-t>return</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20272"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="+In, ?Yield, ?Await" id="_ref_20273"><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-rhs>
|
||
</emu-production>
|
||
<emu-production name="ThrowStatement" params="Yield, Await">
|
||
<emu-nt params="Yield, Await"><a href="ecmascript-language-statements-and-declarations.html#prod-ThrowStatement">ThrowStatement</a><emu-mods><emu-params>[Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="q_cybpdb">
|
||
<emu-t>throw</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20274"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="+In, ?Yield, ?Await" id="_ref_20275"><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-rhs>
|
||
</emu-production>
|
||
<emu-production name="YieldExpression" params="In, Await">
|
||
<emu-nt params="In, Await"><a href="ecmascript-language-functions-and-classes.html#prod-YieldExpression">YieldExpression</a><emu-mods><emu-params>[In, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="0d8zyjn8">
|
||
<emu-t>yield</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="alznzlpx">
|
||
<emu-t>yield</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20276"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="?In, +Yield, ?Await" id="_ref_20277"><a href="ecmascript-language-expressions.html#prod-AssignmentExpression">AssignmentExpression</a><emu-mods><emu-params>[?In, +Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mrbi6v84">
|
||
<emu-t>yield</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20278"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>*</emu-t>
|
||
<emu-nt params="?In, +Yield, ?Await" id="_ref_20279"><a href="ecmascript-language-expressions.html#prod-AssignmentExpression">AssignmentExpression</a><emu-mods><emu-params>[?In, +Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ArrowFunction" params="In, Yield, Await">
|
||
<emu-nt params="In, Yield, Await"><a href="ecmascript-language-functions-and-classes.html#prod-ArrowFunction">ArrowFunction</a><emu-mods><emu-params>[In, Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="c-igjs-g">
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20280"><a href="ecmascript-language-functions-and-classes.html#prod-ArrowParameters">ArrowParameters</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-gann>[no <emu-nt id="_ref_20281"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>=></emu-t>
|
||
<emu-nt params="?In" id="_ref_20282"><a href="ecmascript-language-functions-and-classes.html#prod-ConciseBody">ConciseBody</a><emu-mods><emu-params>[?In]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncFunctionDeclaration" params="Yield, Await, Default">
|
||
<emu-nt params="Yield, Await, Default"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncFunctionDeclaration">AsyncFunctionDeclaration</a><emu-mods><emu-params>[Yield, Await, Default]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="9rildsyw">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20283"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>function</emu-t>
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20284"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="~Yield, +Await" id="_ref_20285"><a href="ecmascript-language-functions-and-classes.html#prod-FormalParameters">FormalParameters</a><emu-mods><emu-params>[~Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20286"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncFunctionBody">AsyncFunctionBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="_vbcugdo" constraints="+Default"><emu-constraints>[+Default]</emu-constraints>
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20287"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>function</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="~Yield, +Await" id="_ref_20288"><a href="ecmascript-language-functions-and-classes.html#prod-FormalParameters">FormalParameters</a><emu-mods><emu-params>[~Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20289"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncFunctionBody">AsyncFunctionBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncFunctionExpression">
|
||
<emu-nt><a href="ecmascript-language-functions-and-classes.html#prod-AsyncFunctionExpression">AsyncFunctionExpression</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="mviccgpw">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20290"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>function</emu-t>
|
||
<emu-nt params="~Yield, +Await" optional="" id="_ref_20291"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a><emu-mods><emu-params>[~Yield, +Await]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="~Yield, +Await" id="_ref_20292"><a href="ecmascript-language-functions-and-classes.html#prod-FormalParameters">FormalParameters</a><emu-mods><emu-params>[~Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20293"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncFunctionBody">AsyncFunctionBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncMethod" params="Yield, Await">
|
||
<emu-nt params="Yield, Await"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncMethod">AsyncMethod</a><emu-mods><emu-params>[Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="tzooi3sy">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20294"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20295"><a href="ecmascript-language-functions-and-classes.html#prod-ClassElementName">ClassElementName</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="~Yield, +Await" id="_ref_20296"><a href="ecmascript-language-functions-and-classes.html#prod-UniqueFormalParameters">UniqueFormalParameters</a><emu-mods><emu-params>[~Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20297"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncFunctionBody">AsyncFunctionBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncGeneratorDeclaration" params="Yield, Await, Default">
|
||
<emu-nt params="Yield, Await, Default"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncGeneratorDeclaration">AsyncGeneratorDeclaration</a><emu-mods><emu-params>[Yield, Await, Default]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="vxevrvwx">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20298"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>function</emu-t>
|
||
<emu-t>*</emu-t>
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20299"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+Yield, +Await" id="_ref_20300"><a href="ecmascript-language-functions-and-classes.html#prod-FormalParameters">FormalParameters</a><emu-mods><emu-params>[+Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20301"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncGeneratorBody">AsyncGeneratorBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="zdnckwse" constraints="+Default"><emu-constraints>[+Default]</emu-constraints>
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20302"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>function</emu-t>
|
||
<emu-t>*</emu-t>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+Yield, +Await" id="_ref_20303"><a href="ecmascript-language-functions-and-classes.html#prod-FormalParameters">FormalParameters</a><emu-mods><emu-params>[+Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20304"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncGeneratorBody">AsyncGeneratorBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncGeneratorExpression">
|
||
<emu-nt><a href="ecmascript-language-functions-and-classes.html#prod-AsyncGeneratorExpression">AsyncGeneratorExpression</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="yh0wbqjf">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20305"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>function</emu-t>
|
||
<emu-t>*</emu-t>
|
||
<emu-nt params="+Yield, +Await" optional="" id="_ref_20306"><a href="ecmascript-language-expressions.html#prod-BindingIdentifier">BindingIdentifier</a><emu-mods><emu-params>[+Yield, +Await]</emu-params><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+Yield, +Await" id="_ref_20307"><a href="ecmascript-language-functions-and-classes.html#prod-FormalParameters">FormalParameters</a><emu-mods><emu-params>[+Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20308"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncGeneratorBody">AsyncGeneratorBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncGeneratorMethod" params="Yield, Await">
|
||
<emu-nt params="Yield, Await"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncGeneratorMethod">AsyncGeneratorMethod</a><emu-mods><emu-params>[Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="bojlwy10">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20309"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>*</emu-t>
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20310"><a href="ecmascript-language-functions-and-classes.html#prod-ClassElementName">ClassElementName</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>(</emu-t>
|
||
<emu-nt params="+Yield, +Await" id="_ref_20311"><a href="ecmascript-language-functions-and-classes.html#prod-UniqueFormalParameters">UniqueFormalParameters</a><emu-mods><emu-params>[+Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-t>)</emu-t>
|
||
<emu-t>{</emu-t>
|
||
<emu-nt id="_ref_20312"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncGeneratorBody">AsyncGeneratorBody</a></emu-nt>
|
||
<emu-t>}</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncArrowFunction" params="In, Yield, Await">
|
||
<emu-nt params="In, Yield, Await"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncArrowFunction">AsyncArrowFunction</a><emu-mods><emu-params>[In, Yield, Await]</emu-params></emu-mods></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="u1dc5ef3">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20313"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="?Yield" id="_ref_20314"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncArrowBindingIdentifier">AsyncArrowBindingIdentifier</a><emu-mods><emu-params>[?Yield]</emu-params></emu-mods></emu-nt>
|
||
<emu-gann>[no <emu-nt id="_ref_20315"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>=></emu-t>
|
||
<emu-nt params="?In" id="_ref_20316"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncConciseBody">AsyncConciseBody</a><emu-mods><emu-params>[?In]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="callcover">
|
||
<emu-nt params="?Yield, ?Await" id="_ref_20317"><a href="ecmascript-language-functions-and-classes.html#prod-CoverCallExpressionAndAsyncArrowHead">CoverCallExpressionAndAsyncArrowHead</a><emu-mods><emu-params>[?Yield, ?Await]</emu-params></emu-mods></emu-nt>
|
||
<emu-gann>[no <emu-nt id="_ref_20318"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-t>=></emu-t>
|
||
<emu-nt params="?In" id="_ref_20319"><a href="ecmascript-language-functions-and-classes.html#prod-AsyncConciseBody">AsyncConciseBody</a><emu-mods><emu-params>[?In]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="AsyncArrowHead">
|
||
<emu-nt><a href="ecmascript-language-functions-and-classes.html#prod-AsyncArrowHead">AsyncArrowHead</a></emu-nt> <emu-geq>:</emu-geq> <emu-rhs a="ydfl_ghb">
|
||
<emu-t>async</emu-t>
|
||
<emu-gann>[no <emu-nt id="_ref_20320"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]</emu-gann>
|
||
<emu-nt params="~Yield, +Await" id="_ref_20321"><a href="ecmascript-language-functions-and-classes.html#prod-ArrowFormalParameters">ArrowFormalParameters</a><emu-mods><emu-params>[~Yield, +Await]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
<p>The practical effect of these restricted productions is as follows:</p>
|
||
<ul>
|
||
<li>
|
||
When a <code>++</code> or <code>--</code> token is encountered where the parser would treat it as a postfix operator, and at least one <emu-nt id="_ref_20322"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> occurred between the preceding token and the <code>++</code> or <code>--</code> token, then a semicolon is automatically inserted before the <code>++</code> or <code>--</code> token.
|
||
</li>
|
||
<li>
|
||
When a <code>continue</code>, <code>break</code>, <code>return</code>, <code>throw</code>, or <code>yield</code> token is encountered and a <emu-nt id="_ref_20323"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> is encountered before the next token, a semicolon is automatically inserted after the <code>continue</code>, <code>break</code>, <code>return</code>, <code>throw</code>, or <code>yield</code> token.
|
||
</li>
|
||
<li>
|
||
When arrow function parameter(s) are followed by a <emu-nt id="_ref_20324"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> before a <code>=></code> token, a semicolon is automatically inserted and the punctuator causes a syntax error.
|
||
</li>
|
||
<li>
|
||
When an <code>async</code> token is followed by a <emu-nt id="_ref_20325"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> before a <code>function</code> or <emu-nt id="_ref_20326"><a href="ecmascript-language-lexical-grammar.html#prod-IdentifierName">IdentifierName</a></emu-nt> or <code>(</code> token, a semicolon is automatically inserted and the <code>async</code> token is not treated as part of the same expression or class element as the following tokens.
|
||
</li>
|
||
<li>
|
||
When an <code>async</code> token is followed by a <emu-nt id="_ref_20327"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> before a <code>*</code> token, a semicolon is automatically inserted and the punctuator causes a syntax error.
|
||
</li>
|
||
</ul>
|
||
<p>The resulting practical advice to ECMAScript programmers is:</p>
|
||
<ul>
|
||
<li>
|
||
A postfix <code>++</code> or <code>--</code> operator should be on the same line as its operand.
|
||
</li>
|
||
<li>
|
||
An <emu-nt id="_ref_20328"><a href="ecmascript-language-expressions.html#prod-Expression">Expression</a></emu-nt> in a <code>return</code> or <code>throw</code> statement or an <emu-nt id="_ref_20329"><a href="ecmascript-language-expressions.html#prod-AssignmentExpression">AssignmentExpression</a></emu-nt> in a <code>yield</code> expression should start on the same line as the <code>return</code>, <code>throw</code>, or <code>yield</code> token.
|
||
</li>
|
||
<li>
|
||
A <emu-nt id="_ref_20330"><a href="ecmascript-language-expressions.html#prod-LabelIdentifier">LabelIdentifier</a></emu-nt> in a <code>break</code> or <code>continue</code> statement should be on the same line as the <code>break</code> or <code>continue</code> token.
|
||
</li>
|
||
<li>
|
||
The end of an arrow function's parameter(s) and its <code>=></code> should be on the same line.
|
||
</li>
|
||
<li>
|
||
The <code>async</code> token preceding an asynchronous function or method should be on the same line as the immediately following token.
|
||
</li>
|
||
</ul>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-examples-of-automatic-semicolon-insertion">
|
||
<h1><span class="secnum">12.10.2</span> Examples of Automatic Semicolon Insertion</h1>
|
||
<em>This section is non-normative.</em>
|
||
<p>The source</p>
|
||
<pre><code class="javascript hljs">{ <span class="hljs-number">1</span> <span class="hljs-number">2</span> } <span class="hljs-number">3</span></code></pre>
|
||
<p>is not a valid sentence in the ECMAScript grammar, even with the automatic semicolon insertion rules. In contrast, the source</p>
|
||
<pre><code class="javascript hljs">{ <span class="hljs-number">1</span>
|
||
<span class="hljs-number">2</span> } <span class="hljs-number">3</span></code></pre>
|
||
<p>is also not a valid ECMAScript sentence, but is transformed by automatic semicolon insertion into the following:</p>
|
||
<pre><code class="javascript hljs">{ <span class="hljs-number">1</span>
|
||
;<span class="hljs-number">2</span> ;} <span class="hljs-number">3</span>;</code></pre>
|
||
<p>which is a valid ECMAScript sentence.</p>
|
||
<p>The source</p>
|
||
<pre><code class="javascript hljs"><span class="hljs-keyword">for</span> (a; b
|
||
)</code></pre>
|
||
<p>is not a valid ECMAScript sentence and is not altered by automatic semicolon insertion because the semicolon is needed for the header of a <code>for</code> statement. Automatic semicolon insertion never inserts one of the two semicolons in the header of a <code>for</code> statement.</p>
|
||
<p>The source</p>
|
||
<pre><code class="javascript hljs"><span class="hljs-keyword">return</span>
|
||
a + b</code></pre>
|
||
<p>is transformed by automatic semicolon insertion into the following:</p>
|
||
<pre><code class="javascript hljs"><span class="hljs-keyword">return</span>;
|
||
a + b;</code></pre>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>The expression <code>a + b</code> is not treated as a value to be returned by the <code>return</code> statement, because a <emu-nt id="_ref_20331"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> separates it from the token <code>return</code>.</p>
|
||
</div></emu-note>
|
||
<p>The source</p>
|
||
<pre><code class="javascript hljs">a = b
|
||
++c</code></pre>
|
||
<p>is transformed by automatic semicolon insertion into the following:</p>
|
||
<pre><code class="javascript hljs">a = b;
|
||
++c;</code></pre>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>The token <code>++</code> is not treated as a postfix operator applying to the variable <code>b</code>, because a <emu-nt id="_ref_20332"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> occurs between <code>b</code> and <code>++</code>.</p>
|
||
</div></emu-note>
|
||
<p>The source</p>
|
||
<pre><code class="javascript hljs"><span class="hljs-keyword">if</span> (a > b)
|
||
<span class="hljs-keyword">else</span> c = d</code></pre>
|
||
<p>is not a valid ECMAScript sentence and is not altered by automatic semicolon insertion before the <code>else</code> token, even though no production of the grammar applies at that point, because an automatically inserted semicolon would then be parsed as an empty statement.</p>
|
||
<p>The source</p>
|
||
<pre><code class="javascript hljs">a = b + c
|
||
(d + e).<span class="hljs-title function_">print</span>()</code></pre>
|
||
<p>is <em>not</em> transformed by automatic semicolon insertion, because the parenthesized expression that begins the second line can be interpreted as an argument list for a function call:</p>
|
||
<pre><code class="javascript hljs">a = b + <span class="hljs-title function_">c</span>(d + e).<span class="hljs-title function_">print</span>()</code></pre>
|
||
<p>In the circumstance that an assignment statement must begin with a left parenthesis, it is a good idea for the programmer to provide an explicit semicolon at the end of the preceding statement rather than to rely on automatic semicolon insertion.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-interesting-cases-of-automatic-semicolon-insertion">
|
||
<h1><span class="secnum">12.10.3</span> Interesting Cases of Automatic Semicolon Insertion</h1>
|
||
<em>This section is non-normative.</em>
|
||
<p>ECMAScript programs can be written in a style with very few semicolons by relying on automatic semicolon insertion. As described above, semicolons are not inserted at every newline, and automatic semicolon insertion can depend on multiple tokens across line terminators.</p>
|
||
|
||
<p>As new syntactic features are added to ECMAScript, additional grammar productions could be added that cause lines relying on automatic semicolon insertion preceding them to change grammar productions when parsed.</p>
|
||
|
||
<p>For the purposes of this section, a case of automatic semicolon insertion is considered interesting if it is a place where a semicolon may or may not be inserted, depending on the source text which precedes it. The rest of this section describes a number of interesting cases of automatic semicolon insertion in this version of ECMAScript.</p>
|
||
|
||
<emu-clause id="sec-asi-interesting-cases-in-statement-lists">
|
||
<h1><span class="secnum">12.10.3.1</span> Interesting Cases of Automatic Semicolon Insertion in Statement Lists</h1>
|
||
<p>In a <emu-nt id="_ref_20333"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementList">StatementList</a></emu-nt>, many <emu-nt id="_ref_20334"><a href="ecmascript-language-statements-and-declarations.html#prod-StatementListItem">StatementListItem</a></emu-nt>s end in semicolons, which may be omitted using automatic semicolon insertion. As a consequence of the rules above, at the end of a line ending an expression, a semicolon is required if the following line begins with any of the following:</p>
|
||
<ul>
|
||
<li><strong>An opening parenthesis (<code>(</code>)</strong>. Without a semicolon, the two lines together are treated as a <emu-nt id="_ref_20335"><a href="ecmascript-language-expressions.html#prod-CallExpression">CallExpression</a></emu-nt>.</li>
|
||
<li><strong>An opening square bracket (<code>[</code>)</strong>. Without a semicolon, the two lines together are treated as property access, rather than an <emu-nt id="_ref_20336"><a href="ecmascript-language-expressions.html#prod-ArrayLiteral">ArrayLiteral</a></emu-nt> or <emu-nt id="_ref_20337"><a href="ecmascript-language-expressions.html#prod-ArrayAssignmentPattern">ArrayAssignmentPattern</a></emu-nt>.</li>
|
||
<li><strong>A template literal (<code>`</code>)</strong>. Without a semicolon, the two lines together are interpreted as a tagged Template (<emu-xref href="#sec-tagged-templates" id="_ref_396"><a href="ecmascript-language-expressions.html#sec-tagged-templates">13.3.11</a></emu-xref>), with the previous expression as the <emu-nt id="_ref_20338"><a href="ecmascript-language-expressions.html#prod-MemberExpression">MemberExpression</a></emu-nt>.</li>
|
||
<li><strong>Unary <code>+</code> or <code>-</code></strong>. Without a semicolon, the two lines together are interpreted as a usage of the corresponding binary operator.</li>
|
||
<li><strong>A RegExp literal</strong>. Without a semicolon, the two lines together may be parsed instead as the <code>/</code> <emu-nt id="_ref_20339"><a href="ecmascript-language-expressions.html#prod-MultiplicativeOperator">MultiplicativeOperator</a></emu-nt>, for example if the RegExp has flags.</li>
|
||
</ul>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-asi-cases-with-no-lineterminator-here">
|
||
<h1><span class="secnum">12.10.3.2</span> Cases of Automatic Semicolon Insertion and “[no <emu-nt id="_ref_20340"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]”</h1>
|
||
<em>This section is non-normative.</em>
|
||
<p>ECMAScript contains grammar productions which include “[no <emu-nt id="_ref_20341"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]”. These productions are sometimes a means to have optional operands in the grammar. Introducing a <emu-nt id="_ref_20342"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> in these locations would change the grammar production of a source text by using the grammar production without the optional operand.</p>
|
||
|
||
<p>The rest of this section describes a number of productions using “[no <emu-nt id="_ref_20343"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]” in this version of ECMAScript.</p>
|
||
|
||
<emu-clause id="sec-no-lineterminator-here-automatic-semicolon-insertion-list">
|
||
<h1><span class="secnum">12.10.3.2.1</span> List of Grammar Productions with Optional Operands and “[no <emu-nt id="_ref_20344"><a href="ecmascript-language-lexical-grammar.html#prod-LineTerminator">LineTerminator</a></emu-nt> here]”</h1>
|
||
<ul>
|
||
<li><emu-nt id="_ref_20345"><a href="ecmascript-language-expressions.html#prod-UpdateExpression">UpdateExpression</a></emu-nt>.</li>
|
||
<li><emu-nt id="_ref_20346"><a href="ecmascript-language-statements-and-declarations.html#prod-ContinueStatement">ContinueStatement</a></emu-nt>.</li>
|
||
<li><emu-nt id="_ref_20347"><a href="ecmascript-language-statements-and-declarations.html#prod-BreakStatement">BreakStatement</a></emu-nt>.</li>
|
||
<li><emu-nt id="_ref_20348"><a href="ecmascript-language-statements-and-declarations.html#prod-ReturnStatement">ReturnStatement</a></emu-nt>.</li>
|
||
<li><emu-nt id="_ref_20349"><a href="ecmascript-language-functions-and-classes.html#prod-YieldExpression">YieldExpression</a></emu-nt>.</li>
|
||
<li>Async Function Definitions (<emu-xref href="#sec-async-function-definitions" id="_ref_397"><a href="ecmascript-language-functions-and-classes.html#sec-async-function-definitions">15.8</a></emu-xref>) with relation to Function Definitions (<emu-xref href="#sec-function-definitions" id="_ref_398"><a href="ecmascript-language-functions-and-classes.html#sec-function-definitions">15.2</a></emu-xref>)</li>
|
||
</ul>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause></div></body> |