mirror of
https://github.com/bendtherules/ask262.git
synced 2026-08-18 21:31:46 +00:00
2216 lines
924 KiB
HTML
2216 lines
924 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-numbers-and-dates"></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-numbers-and-dates">
|
||
<h1><span class="secnum">21</span> Numbers and Dates</h1>
|
||
|
||
<emu-clause id="sec-number-objects">
|
||
<h1><span class="secnum">21.1</span> Number Objects</h1>
|
||
|
||
<emu-clause id="sec-number-constructor">
|
||
<h1><span class="secnum">21.1.1</span> The Number Constructor</h1>
|
||
<p>The Number <emu-xref href="#constructor" id="_ref_10161"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>:</p>
|
||
<ul>
|
||
<li>is <dfn tabindex="-1">%Number%</dfn>.</li>
|
||
<li>is the initial value of the <emu-val>"Number"</emu-val> property of the <emu-xref href="#sec-global-object" id="_ref_10162"><a href="global-object.html#sec-global-object">global object</a></emu-xref>.</li>
|
||
<li>creates and initializes a new Number object when called as a <emu-xref href="#constructor" id="_ref_10163"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>.</li>
|
||
<li>performs a type conversion when called as a function rather than as a <emu-xref href="#constructor" id="_ref_10164"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>.</li>
|
||
<li>may be used as the value of an <code>extends</code> clause of a class definition. Subclass <emu-xref href="#constructor" id="_ref_10165"><a href="ecmascript-data-types-and-values.html#constructor">constructors</a></emu-xref> that intend to inherit the specified Number behaviour must include a <code>super</code> call to the Number <emu-xref href="#constructor" id="_ref_10166"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref> to create and initialize the subclass instance with a <var class="field">[[NumberData]]</var> internal slot.</li>
|
||
</ul>
|
||
|
||
<emu-clause id="sec-number-constructor-number-value" type="built-in function">
|
||
<h1><span class="secnum">21.1.1.1</span> Number ( <var>value</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>value</var> is present, then<ol><li>Let <var>prim</var> be ? <emu-xref aoid="ToNumeric" id="_ref_10167"><a href="abstract-operations.html#sec-tonumeric" class="e-user-code">ToNumeric</a></emu-xref>(<var>value</var>).</li><li>If <var>prim</var> <emu-xref href="#sec-ecmascript-language-types-bigint-type" id="_ref_10168"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-bigint-type">is a BigInt</a></emu-xref>, let <var>n</var> be <emu-xref aoid="𝔽" id="_ref_10169"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10170"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>prim</var>)).</li><li>Else, let <var>n</var> be <var>prim</var>.</li></ol></li><li>Else,<ol><li>Let <var>n</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li></ol></li><li>If NewTarget is <emu-val>undefined</emu-val>, return <var>n</var>.</li><li>Let <var>O</var> be ? <emu-xref aoid="OrdinaryCreateFromConstructor" id="_ref_10171"><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarycreatefromconstructor" class="e-user-code">OrdinaryCreateFromConstructor</a></emu-xref>(NewTarget, <emu-val>"%Number.prototype%"</emu-val>, « <var class="field">[[NumberData]]</var> »).</li><li>Set <var>O</var>.<var class="field">[[NumberData]]</var> to <var>n</var>.</li><li>Return <var>O</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-the-number-constructor">
|
||
<h1><span class="secnum">21.1.2</span> Properties of the Number Constructor</h1>
|
||
<p>The Number <emu-xref href="#constructor" id="_ref_10172"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>:</p>
|
||
<ul>
|
||
<li>has a <var class="field">[[Prototype]]</var> internal slot whose value is <emu-xref href="#sec-properties-of-the-function-prototype-object" id="_ref_10173"><a href="fundamental-objects.html#sec-properties-of-the-function-prototype-object">%Function.prototype%</a></emu-xref>.</li>
|
||
<li>has the following properties:</li>
|
||
</ul>
|
||
|
||
<emu-clause id="sec-number.epsilon">
|
||
<h1><span class="secnum">21.1.2.1</span> Number.EPSILON</h1>
|
||
<p>The value of <code>Number.EPSILON</code> is the <emu-xref href="#number-value-for" id="_ref_10174"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> the magnitude of the difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 × 10<sup>-16</sup>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.isfinite" type="built-in function">
|
||
<h1><span class="secnum">21.1.2.2</span> Number.isFinite ( <var>number</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>number</var> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10175"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is not a Number</a></emu-xref>, return <emu-val>false</emu-val>.</li><li>If <var>number</var> is not <emu-xref href="#finite" id="_ref_10176"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>false</emu-val>.</li><li>Return <emu-val>true</emu-val>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.isinteger" type="built-in function">
|
||
<h1><span class="secnum">21.1.2.3</span> Number.isInteger ( <var>number</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>number</var> is an <emu-xref href="#integral-number" id="_ref_10177"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, return <emu-val>true</emu-val>.</li><li>Return <emu-val>false</emu-val>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.isnan" type="built-in function">
|
||
<h1><span class="secnum">21.1.2.4</span> Number.isNaN ( <var>number</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>number</var> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10178"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is not a Number</a></emu-xref>, return <emu-val>false</emu-val>.</li><li>If <var>number</var> is <emu-val>NaN</emu-val>, return <emu-val>true</emu-val>.</li><li>Return <emu-val>false</emu-val>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>This function differs from the global isNaN function (<emu-xref href="#sec-isnan-number" id="_ref_634"><a href="global-object.html#sec-isnan-number">19.2.3</a></emu-xref>) in that it does not convert its argument to a Number before determining whether it is <emu-val>NaN</emu-val>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.issafeinteger" type="built-in function">
|
||
<h1><span class="secnum">21.1.2.5</span> Number.isSafeInteger ( <var>number</var> )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>An <emu-xref href="#integer" id="_ref_10179"><a href="notational-conventions.html#integer">integer</a></emu-xref> <var>n</var> is a "<dfn id="safe-integer" tabindex="-1">safe integer</dfn>" if and only if the <emu-xref href="#number-value-for" id="_ref_10180"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> <var>n</var> is not the <emu-xref href="#number-value-for" id="_ref_10181"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> any other <emu-xref href="#integer" id="_ref_10182"><a href="notational-conventions.html#integer">integer</a></emu-xref>.</p>
|
||
</div></emu-note>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>number</var> is an <emu-xref href="#integral-number" id="_ref_10183"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, then<ol><li>If <emu-xref aoid="abs" id="_ref_10184"><a href="notational-conventions.html#eqn-abs">abs</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10185"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>number</var>)) ≤ 2<sup>53</sup> - 1, return <emu-val>true</emu-val>.</li></ol></li><li>Return <emu-val>false</emu-val>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.max_safe_integer">
|
||
<h1><span class="secnum">21.1.2.6</span> Number.MAX_SAFE_INTEGER</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>Due to rounding behaviour necessitated by precision limitations of <emu-xref href="#sec-bibliography" id="_ref_10186"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref>, the <emu-xref href="#number-value-for" id="_ref_10187"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> every <emu-xref href="#integer" id="_ref_10188"><a href="notational-conventions.html#integer">integer</a></emu-xref> greater than <code>Number.MAX_SAFE_INTEGER</code> is shared with at least one other <emu-xref href="#integer" id="_ref_10189"><a href="notational-conventions.html#integer">integer</a></emu-xref>. Such large-magnitude <emu-xref href="#integer" id="_ref_10190"><a href="notational-conventions.html#integer">integers</a></emu-xref> are therefore not <emu-xref href="#safe-integer" id="_ref_635"><a href="numbers-and-dates.html#safe-integer">safe</a></emu-xref>, and are not guaranteed to be exactly representable as Number values or even to be distinguishable from each other. For example, both <code>9007199254740992</code> and <code>9007199254740993</code> evaluate to the Number value <emu-val>9007199254740992</emu-val><sub>𝔽</sub>.</p>
|
||
</div></emu-note>
|
||
<p>The value of <code>Number.MAX_SAFE_INTEGER</code> is <emu-val>9007199254740991</emu-val><sub>𝔽</sub> (<emu-xref aoid="𝔽" id="_ref_10191"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(2<sup>53</sup> - 1)).</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.max_value">
|
||
<h1><span class="secnum">21.1.2.7</span> Number.MAX_VALUE</h1>
|
||
<p>The value of <code>Number.MAX_VALUE</code> is the largest positive <emu-xref href="#finite" id="_ref_10192"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> value of the <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10193"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">Number type</a></emu-xref>, which is approximately <emu-eqn class="inline">1.7976931348623157 × 10<sup>308</sup></emu-eqn>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.min_safe_integer">
|
||
<h1><span class="secnum">21.1.2.8</span> Number.MIN_SAFE_INTEGER</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>Due to rounding behaviour necessitated by precision limitations of <emu-xref href="#sec-bibliography" id="_ref_10194"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref>, the <emu-xref href="#number-value-for" id="_ref_10195"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> every <emu-xref href="#integer" id="_ref_10196"><a href="notational-conventions.html#integer">integer</a></emu-xref> less than <code>Number.MIN_SAFE_INTEGER</code> is shared with at least one other <emu-xref href="#integer" id="_ref_10197"><a href="notational-conventions.html#integer">integer</a></emu-xref>. Such large-magnitude <emu-xref href="#integer" id="_ref_10198"><a href="notational-conventions.html#integer">integers</a></emu-xref> are therefore not <emu-xref href="#safe-integer" id="_ref_636"><a href="numbers-and-dates.html#safe-integer">safe</a></emu-xref>, and are not guaranteed to be exactly representable as Number values or even to be distinguishable from each other. For example, both <code>-9007199254740992</code> and <code>-9007199254740993</code> evaluate to the Number value <emu-val>-9007199254740992</emu-val><sub>𝔽</sub>.</p>
|
||
</div></emu-note>
|
||
<p>The value of <code>Number.MIN_SAFE_INTEGER</code> is <emu-val>-9007199254740991</emu-val><sub>𝔽</sub> (<emu-xref aoid="𝔽" id="_ref_10199"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(-(2<sup>53</sup> - 1))).</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.min_value">
|
||
<h1><span class="secnum">21.1.2.9</span> Number.MIN_VALUE</h1>
|
||
<p>The value of <code>Number.MIN_VALUE</code> is the smallest positive value of the <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10200"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">Number type</a></emu-xref>, which is approximately <emu-eqn class="inline">5 × 10<sup>-324</sup></emu-eqn>.</p>
|
||
<p>In the <emu-xref href="#sec-bibliography" id="_ref_10201"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref> double precision binary representation, the smallest possible value is a denormalized number. If an implementation does not support denormalized values, the value of <code>Number.MIN_VALUE</code> must be the smallest non-zero positive value that can actually be represented by the implementation.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.nan">
|
||
<h1><span class="secnum">21.1.2.10</span> Number.NaN</h1>
|
||
<p>The value of <code>Number.NaN</code> is <emu-val>NaN</emu-val>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.negative_infinity">
|
||
<h1><span class="secnum">21.1.2.11</span> Number.NEGATIVE_INFINITY</h1>
|
||
<p>The value of <code>Number.NEGATIVE_INFINITY</code> is <emu-val>-∞</emu-val><sub>𝔽</sub>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.parsefloat" type="built-in function">
|
||
<h1><span class="secnum">21.1.2.12</span> Number.parseFloat ( <var>string</var> )</h1>
|
||
<p>The initial value of the <emu-val>"parseFloat"</emu-val> property is <emu-xref href="#sec-parsefloat-string" id="_ref_10202"><a href="global-object.html#sec-parsefloat-string">%parseFloat%</a></emu-xref>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.parseint" type="built-in function">
|
||
<h1><span class="secnum">21.1.2.13</span> Number.parseInt ( <var>string</var>, <var>radix</var> )</h1>
|
||
<p>The initial value of the <emu-val>"parseInt"</emu-val> property is <emu-xref href="#sec-parseint-string-radix" id="_ref_10203"><a href="global-object.html#sec-parseint-string-radix">%parseInt%</a></emu-xref>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.positive_infinity">
|
||
<h1><span class="secnum">21.1.2.14</span> Number.POSITIVE_INFINITY</h1>
|
||
<p>The value of <code>Number.POSITIVE_INFINITY</code> is <emu-val>+∞</emu-val><sub>𝔽</sub>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.prototype">
|
||
<h1><span class="secnum">21.1.2.15</span> Number.prototype</h1>
|
||
<p>The initial value of <code>Number.prototype</code> is the <emu-xref href="#sec-properties-of-the-number-prototype-object" id="_ref_10204"><a href="numbers-and-dates.html#sec-properties-of-the-number-prototype-object">Number prototype object</a></emu-xref>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-the-number-prototype-object">
|
||
<h1><span class="secnum">21.1.3</span> Properties of the Number Prototype Object</h1>
|
||
<p>The <dfn tabindex="-1">Number prototype object</dfn>:</p>
|
||
<ul>
|
||
<li>is <dfn tabindex="-1">%Number.prototype%</dfn>.</li>
|
||
<li>is an <emu-xref href="#ordinary-object" id="_ref_10205"><a href="ecmascript-data-types-and-values.html#ordinary-object">ordinary object</a></emu-xref>.</li>
|
||
<li>is itself a Number object; it has a <var class="field">[[NumberData]]</var> internal slot with the value <emu-val>+0</emu-val><sub>𝔽</sub>.</li>
|
||
<li>has a <var class="field">[[Prototype]]</var> internal slot whose value is <emu-xref href="#sec-properties-of-the-object-prototype-object" id="_ref_10206"><a href="fundamental-objects.html#sec-properties-of-the-object-prototype-object">%Object.prototype%</a></emu-xref>.</li>
|
||
</ul>
|
||
<p>Unless explicitly stated otherwise, the methods of the Number prototype object defined below are not generic and the <emu-val>this</emu-val> value passed to them must be either a Number value or an object that has a <var class="field">[[NumberData]]</var> internal slot that has been initialized to a Number value.</p>
|
||
<p>The phrase “this Number value” within the specification of a method refers to the result returned by calling the abstract operation <emu-xref aoid="ThisNumberValue" id="_ref_10207"><a href="numbers-and-dates.html#sec-thisnumbervalue">ThisNumberValue</a></emu-xref> with the <emu-val>this</emu-val> value of the method invocation passed as the argument.</p>
|
||
|
||
<emu-clause id="sec-number.prototype.constructor">
|
||
<h1><span class="secnum">21.1.3.1</span> Number.prototype.constructor</h1>
|
||
<p>The initial value of <code>Number.prototype.constructor</code> is <emu-xref href="#sec-number-constructor" id="_ref_10208"><a href="numbers-and-dates.html#sec-number-constructor">%Number%</a></emu-xref>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.prototype.toexponential" type="built-in function">
|
||
<h1><span class="secnum">21.1.3.2</span> Number.prototype.toExponential ( <var>fractionDigits</var> )</h1>
|
||
<p>This method returns a String containing this Number value represented in decimal exponential notation with one digit before the significand's decimal point and <var>fractionDigits</var> digits after the significand's decimal point. If <var>fractionDigits</var> is <emu-val>undefined</emu-val>, it includes as many significand digits as necessary to uniquely specify the Number (just like in <emu-xref aoid="ToString" id="_ref_10209"><a href="abstract-operations.html#sec-tostring">ToString</a></emu-xref> except that in this case the Number is always output in exponential notation).</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>x</var> be ? <emu-xref aoid="ThisNumberValue" id="_ref_10210"><a href="numbers-and-dates.html#sec-thisnumbervalue">ThisNumberValue</a></emu-xref>(<emu-val>this</emu-val> value).</li><li>Let <var>f</var> be ? <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10211"><a href="abstract-operations.html#sec-tointegerorinfinity" class="e-user-code">ToIntegerOrInfinity</a></emu-xref>(<var>fractionDigits</var>).</li><li><emu-xref href="#assert" id="_ref_10212"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: If <var>fractionDigits</var> is <emu-val>undefined</emu-val>, then <var>f</var> is 0.</li><li>If <var>x</var> is not <emu-xref href="#finite" id="_ref_10213"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-xref aoid="Number::toString" id="_ref_10214"><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-tostring">Number::toString</a></emu-xref>(<var>x</var>, 10).</li><li>If <var>f</var> < 0 or <var>f</var> > 100, throw a <emu-val>RangeError</emu-val> exception.</li><li>Set <var>x</var> to <emu-xref aoid="ℝ" id="_ref_10215"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>x</var>).</li><li>Let <var>s</var> be the empty String.</li><li>If <var>x</var> < 0, then<ol><li>Set <var>s</var> to <emu-val>"-"</emu-val>.</li><li>Set <var>x</var> to -<var>x</var>.</li></ol></li><li>If <var>x</var> = 0, then<ol><li>Let <var>m</var> be the String value consisting of <var>f</var> + 1 occurrences of the code unit 0x0030 (DIGIT ZERO).</li><li>Let <var>e</var> be 0.</li></ol></li><li>Else,<ol><li>If <var>fractionDigits</var> is not <emu-val>undefined</emu-val>, then<ol><li>Let <var>e</var> and <var>n</var> be <emu-xref href="#integer" id="_ref_10216"><a href="notational-conventions.html#integer">integers</a></emu-xref> such that 10<sup><var>f</var></sup> ≤ <var>n</var> < 10<sup><var>f</var> + 1</sup> and for which <var>n</var> × 10<sup><var>e</var> - <var>f</var></sup> - <var>x</var> is as close to zero as possible. If there are two such sets of <var>e</var> and <var>n</var>, pick the <var>e</var> and <var>n</var> for which <var>n</var> × 10<sup><var>e</var> - <var>f</var></sup> is larger.</li></ol></li><li>Else,<ol><li id="step-number-proto-toexponential-intermediate-values">Let <var>e</var>, <var>n</var>, and <var>ff</var> be <emu-xref href="#integer" id="_ref_10217"><a href="notational-conventions.html#integer">integers</a></emu-xref> such that <var>ff</var> ≥ 0, 10<sup><var>ff</var></sup> ≤ <var>n</var> < 10<sup><var>ff</var> + 1</sup>, <emu-xref aoid="𝔽" id="_ref_10218"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>n</var> × 10<sup><var>e</var> - <var>ff</var></sup>) is <emu-xref aoid="𝔽" id="_ref_10219"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>x</var>), and <var>ff</var> is as small as possible. Note that the decimal representation of <var>n</var> has <var>ff</var> + 1 digits, <var>n</var> is not divisible by 10, and the least significant digit of <var>n</var> is not necessarily uniquely determined by these criteria.</li><li>Set <var>f</var> to <var>ff</var>.</li></ol></li><li>Let <var>m</var> be the String value consisting of the digits of the decimal representation of <var>n</var> (in order, with no leading zeroes).</li></ol></li><li>If <var>f</var> ≠ 0, then<ol><li>Let <var>a</var> be the first code unit of <var>m</var>.</li><li>Let <var>b</var> be the other <var>f</var> code units of <var>m</var>.</li><li>Set <var>m</var> to the <emu-xref href="#string-concatenation" id="_ref_10220"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>a</var>, <emu-val>"."</emu-val>, and <var>b</var>.</li></ol></li><li>If <var>e</var> = 0, then<ol><li>Let <var>c</var> be <emu-val>"+"</emu-val>.</li><li>Let <var>d</var> be <emu-val>"0"</emu-val>.</li></ol></li><li>Else,<ol><li>If <var>e</var> > 0, then<ol><li>Let <var>c</var> be <emu-val>"+"</emu-val>.</li></ol></li><li>Else,<ol><li><emu-xref href="#assert" id="_ref_10221"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>e</var> < 0.</li><li>Let <var>c</var> be <emu-val>"-"</emu-val>.</li><li>Set <var>e</var> to -<var>e</var>.</li></ol></li><li>Let <var>d</var> be the String value consisting of the digits of the decimal representation of <var>e</var> (in order, with no leading zeroes).</li></ol></li><li>Set <var>m</var> to the <emu-xref href="#string-concatenation" id="_ref_10222"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>m</var>, <emu-val>"e"</emu-val>, <var>c</var>, and <var>d</var>.</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_10223"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>s</var> and <var>m</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>For implementations that provide more accurate conversions than required by the rules above, it is recommended that the following alternative version of step <emu-xref href="#step-number-proto-toexponential-intermediate-values" id="_ref_637"><a href="numbers-and-dates.html#step-number-proto-toexponential-intermediate-values">10.b.i</a></emu-xref> be used as a guideline:</p>
|
||
<emu-alg replaces-step="step-number-proto-toexponential-intermediate-values"><ol start="1" class="nested-twice"><li>Let <var>e</var>, <var>n</var>, and <var>ff</var> be <emu-xref href="#integer" id="_ref_10224"><a href="notational-conventions.html#integer">integers</a></emu-xref> such that <var>ff</var> ≥ 0, 10<sup><var>ff</var></sup> ≤ <var>n</var> < 10<sup><var>ff</var> + 1</sup>, <emu-xref aoid="𝔽" id="_ref_10225"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>n</var> × 10<sup><var>e</var> - <var>ff</var></sup>) is <emu-xref aoid="𝔽" id="_ref_10226"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>x</var>), and <var>ff</var> is as small as possible. If there are multiple possibilities for <var>n</var>, choose the value of <var>n</var> for which <emu-xref aoid="𝔽" id="_ref_10227"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>n</var> × 10<sup><var>e</var> - <var>ff</var></sup>) is closest in value to <emu-xref aoid="𝔽" id="_ref_10228"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>x</var>). If there are two such possible values of <var>n</var>, choose the one that is even.</li></ol></emu-alg>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.prototype.tofixed" type="built-in function">
|
||
<h1><span class="secnum">21.1.3.3</span> Number.prototype.toFixed ( <var>fractionDigits</var> )</h1>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>This method returns a String containing this Number value represented in decimal fixed-point notation with <var>fractionDigits</var> digits after the decimal point. If <var>fractionDigits</var> is <emu-val>undefined</emu-val>, 0 is assumed.</p>
|
||
</div></emu-note>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>x</var> be ? <emu-xref aoid="ThisNumberValue" id="_ref_10229"><a href="numbers-and-dates.html#sec-thisnumbervalue">ThisNumberValue</a></emu-xref>(<emu-val>this</emu-val> value).</li><li>Let <var>f</var> be ? <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10230"><a href="abstract-operations.html#sec-tointegerorinfinity" class="e-user-code">ToIntegerOrInfinity</a></emu-xref>(<var>fractionDigits</var>).</li><li><emu-xref href="#assert" id="_ref_10231"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: If <var>fractionDigits</var> is <emu-val>undefined</emu-val>, then <var>f</var> is 0.</li><li>If <var>f</var> is not <emu-xref href="#finite" id="_ref_10232"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, throw a <emu-val>RangeError</emu-val> exception.</li><li>If <var>f</var> < 0 or <var>f</var> > 100, throw a <emu-val>RangeError</emu-val> exception.</li><li>If <var>x</var> is not <emu-xref href="#finite" id="_ref_10233"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-xref aoid="Number::toString" id="_ref_10234"><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-tostring">Number::toString</a></emu-xref>(<var>x</var>, 10).</li><li>Set <var>x</var> to <emu-xref aoid="ℝ" id="_ref_10235"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>x</var>).</li><li>Let <var>s</var> be the empty String.</li><li>If <var>x</var> < 0, then<ol><li>Set <var>s</var> to <emu-val>"-"</emu-val>.</li><li>Set <var>x</var> to -<var>x</var>.</li></ol></li><li>If <var>x</var> ≥ 10<sup>21</sup>, then<ol><li>Let <var>m</var> be ! <emu-xref aoid="ToString" id="_ref_10236"><a href="abstract-operations.html#sec-tostring">ToString</a></emu-xref>(<emu-xref aoid="𝔽" id="_ref_10237"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>x</var>)).</li></ol></li><li>Else,<ol><li>Let <var>n</var> be an <emu-xref href="#integer" id="_ref_10238"><a href="notational-conventions.html#integer">integer</a></emu-xref> for which <var>n</var> / 10<sup><var>f</var></sup> - <var>x</var> is as close to zero as possible. If there are two such <var>n</var>, pick the larger <var>n</var>.</li><li>If <var>n</var> = 0, let <var>m</var> be <emu-val>"0"</emu-val>; else let <var>m</var> be the String value consisting of the digits of the decimal representation of <var>n</var> (in order, with no leading zeroes).</li><li>If <var>f</var> ≠ 0, then<ol><li>Let <var>k</var> be the length of <var>m</var>.</li><li>If <var>k</var> ≤ <var>f</var>, then<ol><li>Let <var>z</var> be the String value consisting of <var>f</var> + 1 - <var>k</var> occurrences of the code unit 0x0030 (DIGIT ZERO).</li><li>Set <var>m</var> to the <emu-xref href="#string-concatenation" id="_ref_10239"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>z</var> and <var>m</var>.</li><li>Set <var>k</var> to <var>f</var> + 1.</li></ol></li><li>Let <var>a</var> be the first <var>k</var> - <var>f</var> code units of <var>m</var>.</li><li>Let <var>b</var> be the other <var>f</var> code units of <var>m</var>.</li><li>Set <var>m</var> to the <emu-xref href="#string-concatenation" id="_ref_10240"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>a</var>, <emu-val>"."</emu-val>, and <var>b</var>.</li></ol></li></ol></li><li>Return the <emu-xref href="#string-concatenation" id="_ref_10241"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>s</var> and <var>m</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>The output of <code>toFixed</code> may be more precise than <code>toString</code> for some values because toString only prints enough significant digits to distinguish the number from adjacent Number values. For example,</p>
|
||
<p>
|
||
<code>(1000000000000000128).toString()</code> returns <emu-val>"1000000000000000100"</emu-val>, while<br>
|
||
<code>(1000000000000000128).toFixed(0)</code> returns <emu-val>"1000000000000000128"</emu-val>.
|
||
</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.prototype.tolocalestring" type="built-in function">
|
||
<h1><span class="secnum">21.1.3.4</span> Number.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</h1>
|
||
<p>An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement this method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of this method is used:</p>
|
||
<p>This method produces a String value that represents this Number value formatted according to the conventions of the <emu-xref href="#host-environment" id="_ref_10242"><a href="overview.html#host-environment">host environment</a></emu-xref>'s current locale. This method is <emu-xref href="#implementation-defined" id="_ref_10243"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref>, and it is permissible, but not encouraged, for it to return the same thing as <code>toString</code>.</p>
|
||
<p>The meanings of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.prototype.toprecision" type="built-in function">
|
||
<h1><span class="secnum">21.1.3.5</span> Number.prototype.toPrecision ( <var>precision</var> )</h1>
|
||
<p>This method returns a String containing this Number value represented either in decimal exponential notation with one digit before the significand's decimal point and <emu-eqn class="inline"><var>precision</var> - 1</emu-eqn> digits after the significand's decimal point or in decimal fixed notation with <var>precision</var> significant digits. If <var>precision</var> is <emu-val>undefined</emu-val>, it calls <emu-xref aoid="ToString" id="_ref_10244"><a href="abstract-operations.html#sec-tostring">ToString</a></emu-xref> instead.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>x</var> be ? <emu-xref aoid="ThisNumberValue" id="_ref_10245"><a href="numbers-and-dates.html#sec-thisnumbervalue">ThisNumberValue</a></emu-xref>(<emu-val>this</emu-val> value).</li><li>If <var>precision</var> is <emu-val>undefined</emu-val>, return ! <emu-xref aoid="ToString" id="_ref_10246"><a href="abstract-operations.html#sec-tostring">ToString</a></emu-xref>(<var>x</var>).</li><li>Let <var>p</var> be ? <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10247"><a href="abstract-operations.html#sec-tointegerorinfinity" class="e-user-code">ToIntegerOrInfinity</a></emu-xref>(<var>precision</var>).</li><li>If <var>x</var> is not <emu-xref href="#finite" id="_ref_10248"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-xref aoid="Number::toString" id="_ref_10249"><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-tostring">Number::toString</a></emu-xref>(<var>x</var>, 10).</li><li>If <var>p</var> < 1 or <var>p</var> > 100, throw a <emu-val>RangeError</emu-val> exception.</li><li>Set <var>x</var> to <emu-xref aoid="ℝ" id="_ref_10250"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>x</var>).</li><li>Let <var>s</var> be the empty String.</li><li>If <var>x</var> < 0, then<ol><li>Set <var>s</var> to the code unit 0x002D (HYPHEN-MINUS).</li><li>Set <var>x</var> to -<var>x</var>.</li></ol></li><li>If <var>x</var> = 0, then<ol><li>Let <var>m</var> be the String value consisting of <var>p</var> occurrences of the code unit 0x0030 (DIGIT ZERO).</li><li>Let <var>e</var> be 0.</li></ol></li><li>Else,<ol><li>Let <var>e</var> and <var>n</var> be <emu-xref href="#integer" id="_ref_10251"><a href="notational-conventions.html#integer">integers</a></emu-xref> such that 10<sup><var>p</var> - 1</sup> ≤ <var>n</var> < 10<sup><var>p</var></sup> and for which <var>n</var> × 10<sup><var>e</var> - <var>p</var> + 1</sup> - <var>x</var> is as close to zero as possible. If there are two such sets of <var>e</var> and <var>n</var>, pick the <var>e</var> and <var>n</var> for which <var>n</var> × 10<sup><var>e</var> - <var>p</var> + 1</sup> is larger.</li><li>Let <var>m</var> be the String value consisting of the digits of the decimal representation of <var>n</var> (in order, with no leading zeroes).</li><li>If <var>e</var> < -6 or <var>e</var> ≥ <var>p</var>, then<ol><li><emu-xref href="#assert" id="_ref_10252"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>e</var> ≠ 0.</li><li>If <var>p</var> ≠ 1, then<ol><li>Let <var>a</var> be the first code unit of <var>m</var>.</li><li>Let <var>b</var> be the other <var>p</var> - 1 code units of <var>m</var>.</li><li>Set <var>m</var> to the <emu-xref href="#string-concatenation" id="_ref_10253"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>a</var>, <emu-val>"."</emu-val>, and <var>b</var>.</li></ol></li><li>If <var>e</var> > 0, then<ol><li>Let <var>c</var> be the code unit 0x002B (PLUS SIGN).</li></ol></li><li>Else,<ol><li><emu-xref href="#assert" id="_ref_10254"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>e</var> < 0.</li><li>Let <var>c</var> be the code unit 0x002D (HYPHEN-MINUS).</li><li>Set <var>e</var> to -<var>e</var>.</li></ol></li><li>Let <var>d</var> be the String value consisting of the digits of the decimal representation of <var>e</var> (in order, with no leading zeroes).</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_10255"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>s</var>, <var>m</var>, the code unit 0x0065 (LATIN SMALL LETTER E), <var>c</var>, and <var>d</var>.</li></ol></li></ol></li><li>If <var>e</var> = <var>p</var> - 1, return the <emu-xref href="#string-concatenation" id="_ref_10256"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>s</var> and <var>m</var>.</li><li>If <var>e</var> ≥ 0, then<ol><li>Set <var>m</var> to the <emu-xref href="#string-concatenation" id="_ref_10257"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the first <var>e</var> + 1 code units of <var>m</var>, the code unit 0x002E (FULL STOP), and the remaining <var>p</var> - (<var>e</var> + 1) code units of <var>m</var>.</li></ol></li><li>Else,<ol><li>Set <var>m</var> to the <emu-xref href="#string-concatenation" id="_ref_10258"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0030 (DIGIT ZERO), the code unit 0x002E (FULL STOP), -(<var>e</var> + 1) occurrences of the code unit 0x0030 (DIGIT ZERO), and the String <var>m</var>.</li></ol></li><li>Return the <emu-xref href="#string-concatenation" id="_ref_10259"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>s</var> and <var>m</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.prototype.tostring" type="built-in function">
|
||
<h1><span class="secnum">21.1.3.6</span> Number.prototype.toString ( [ <var>radix</var> ] )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The optional <var>radix</var> should be an <emu-xref href="#integral-number" id="_ref_10260"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> value in the <emu-xref href="#inclusive-interval" id="_ref_10261"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>2</emu-val><sub>𝔽</sub> to <emu-val>36</emu-val><sub>𝔽</sub>. If <var>radix</var> is <emu-val>undefined</emu-val> then <emu-val>10</emu-val><sub>𝔽</sub> is used as the value of <var>radix</var>.</p>
|
||
</div></emu-note>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>x</var> be ? <emu-xref aoid="ThisNumberValue" id="_ref_10262"><a href="numbers-and-dates.html#sec-thisnumbervalue">ThisNumberValue</a></emu-xref>(<emu-val>this</emu-val> value).</li><li>If <var>radix</var> is <emu-val>undefined</emu-val>, let <var>radixMV</var> be 10.</li><li>Else, let <var>radixMV</var> be ? <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10263"><a href="abstract-operations.html#sec-tointegerorinfinity" class="e-user-code">ToIntegerOrInfinity</a></emu-xref>(<var>radix</var>).</li><li>If <var>radixMV</var> is not in the <emu-xref href="#inclusive-interval" id="_ref_10264"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 2 to 36, throw a <emu-val>RangeError</emu-val> exception.</li><li>Return <emu-xref aoid="Number::toString" id="_ref_10265"><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-tostring">Number::toString</a></emu-xref>(<var>x</var>, <var>radixMV</var>).</li></ol></emu-alg>
|
||
<p>This method is not generic; it throws a <emu-val>TypeError</emu-val> exception if its <emu-val>this</emu-val> value <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10266"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is not a Number</a></emu-xref> or a Number object. Therefore, it cannot be transferred to other kinds of objects for use as a method.</p>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>1</emu-val><sub>𝔽</sub>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-number.prototype.valueof" type="built-in function">
|
||
<h1><span class="secnum">21.1.3.7</span> Number.prototype.valueOf ( )</h1>
|
||
<emu-alg><ol><li>Return ? <emu-xref aoid="ThisNumberValue" id="_ref_10267"><a href="numbers-and-dates.html#sec-thisnumbervalue">ThisNumberValue</a></emu-xref>(<emu-val>this</emu-val> value).</li></ol></emu-alg>
|
||
|
||
<emu-clause id="sec-thisnumbervalue" type="abstract operation" oldids="thisnumbervalue" aoid="ThisNumberValue"><span id="thisnumbervalue"></span>
|
||
<h1><span class="secnum">21.1.3.7.1</span> ThisNumberValue ( <var>value</var> )</h1>
|
||
<p>The abstract operation ThisNumberValue takes argument <var>value</var> (an <emu-xref href="#sec-ecmascript-language-types" id="_ref_10268"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types">ECMAScript language value</a></emu-xref>) and returns either a <emu-xref href="#sec-completion-record-specification-type" id="_ref_10269"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">normal completion containing</a></emu-xref> a Number or a <emu-xref href="#sec-completion-record-specification-type" id="_ref_10270"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">throw completion</a></emu-xref>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>value</var> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10271"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is a Number</a></emu-xref>, return <var>value</var>.</li><li>If <var>value</var> <emu-xref href="#sec-object-type" id="_ref_10272"><a href="ecmascript-data-types-and-values.html#sec-object-type">is an Object</a></emu-xref> and <var>value</var> has a <var class="field">[[NumberData]]</var> internal slot, then<ol><li>Let <var>n</var> be <var>value</var>.<var class="field">[[NumberData]]</var>.</li><li><emu-xref href="#assert" id="_ref_10273"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>n</var> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10274"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is a Number</a></emu-xref>.</li><li>Return <var>n</var>.</li></ol></li><li>Throw a <emu-val>TypeError</emu-val> exception.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-number-instances">
|
||
<h1><span class="secnum">21.1.4</span> Properties of Number Instances</h1>
|
||
<p>Number instances are <emu-xref href="#ordinary-object" id="_ref_10275"><a href="ecmascript-data-types-and-values.html#ordinary-object">ordinary objects</a></emu-xref> that inherit properties from the <emu-xref href="#sec-properties-of-the-number-prototype-object" id="_ref_10276"><a href="numbers-and-dates.html#sec-properties-of-the-number-prototype-object">Number prototype object</a></emu-xref>. Number instances also have a <var class="field">[[NumberData]]</var> internal slot. The <var class="field">[[NumberData]]</var> internal slot is the Number value represented by this Number object.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-bigint-objects">
|
||
<h1><span class="secnum">21.2</span> BigInt Objects</h1>
|
||
|
||
<emu-clause id="sec-bigint-constructor">
|
||
<h1><span class="secnum">21.2.1</span> The BigInt Constructor</h1>
|
||
<p>The BigInt <emu-xref href="#constructor" id="_ref_10277"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>:</p>
|
||
<ul>
|
||
<li>is <dfn tabindex="-1">%BigInt%</dfn>.</li>
|
||
<li>is the initial value of the <emu-val>"BigInt"</emu-val> property of the <emu-xref href="#sec-global-object" id="_ref_10278"><a href="global-object.html#sec-global-object">global object</a></emu-xref>.</li>
|
||
<li>performs a type conversion when called as a function rather than as a <emu-xref href="#constructor" id="_ref_10279"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>.</li>
|
||
<li>is not intended to be used with the <code>new</code> operator or to be subclassed. It may be used as the value of an <code>extends</code> clause of a class definition but a <code>super</code> call to the BigInt <emu-xref href="#constructor" id="_ref_10280"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref> will cause an exception.</li>
|
||
</ul>
|
||
|
||
<emu-clause id="sec-bigint-constructor-number-value" type="built-in function">
|
||
<h1><span class="secnum">21.2.1.1</span> BigInt ( <var>value</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If NewTarget is not <emu-val>undefined</emu-val>, throw a <emu-val>TypeError</emu-val> exception.</li><li>Let <var>prim</var> be ? <emu-xref aoid="ToPrimitive" id="_ref_10281"><a href="abstract-operations.html#sec-toprimitive" class="e-user-code">ToPrimitive</a></emu-xref>(<var>value</var>, <emu-const>number</emu-const>).</li><li>If <var>prim</var> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10282"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is a Number</a></emu-xref>, return ? <emu-xref aoid="NumberToBigInt" id="_ref_10283"><a href="numbers-and-dates.html#sec-numbertobigint">NumberToBigInt</a></emu-xref>(<var>prim</var>).</li><li>Return ? <emu-xref aoid="ToBigInt" id="_ref_10284"><a href="abstract-operations.html#sec-tobigint">ToBigInt</a></emu-xref>(<var>prim</var>).</li></ol></emu-alg>
|
||
|
||
<emu-clause id="sec-numbertobigint" type="abstract operation" aoid="NumberToBigInt">
|
||
<h1><span class="secnum">21.2.1.1.1</span> NumberToBigInt ( <var>number</var> )</h1>
|
||
<p>The abstract operation NumberToBigInt takes argument <var>number</var> (a Number) and returns either a <emu-xref href="#sec-completion-record-specification-type" id="_ref_10285"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">normal completion containing</a></emu-xref> a BigInt or a <emu-xref href="#sec-completion-record-specification-type" id="_ref_10286"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">throw completion</a></emu-xref>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>number</var> is not an <emu-xref href="#integral-number" id="_ref_10287"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, throw a <emu-val>RangeError</emu-val> exception.</li><li>Return <emu-xref aoid="ℤ" id="_ref_10288"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10289"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>number</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-the-bigint-constructor">
|
||
<h1><span class="secnum">21.2.2</span> Properties of the BigInt Constructor</h1>
|
||
<p>The BigInt <emu-xref href="#constructor" id="_ref_10290"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>:</p>
|
||
<ul>
|
||
<li>has a <var class="field">[[Prototype]]</var> internal slot whose value is <emu-xref href="#sec-properties-of-the-function-prototype-object" id="_ref_10291"><a href="fundamental-objects.html#sec-properties-of-the-function-prototype-object">%Function.prototype%</a></emu-xref>.</li>
|
||
<li>has the following properties:</li>
|
||
</ul>
|
||
|
||
<emu-clause id="sec-bigint.asintn" type="built-in function">
|
||
<h1><span class="secnum">21.2.2.1</span> BigInt.asIntN ( <var>bits</var>, <var>bigint</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Set <var>bits</var> to ? <emu-xref aoid="ToIndex" id="_ref_10292"><a href="abstract-operations.html#sec-toindex" class="e-user-code">ToIndex</a></emu-xref>(<var>bits</var>).</li><li>Set <var>bigint</var> to ? <emu-xref aoid="ToBigInt" id="_ref_10293"><a href="abstract-operations.html#sec-tobigint" class="e-user-code">ToBigInt</a></emu-xref>(<var>bigint</var>).</li><li>Let <var>mod</var> be <emu-xref aoid="ℝ" id="_ref_10294"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>bigint</var>) <emu-xref aoid="modulo" id="_ref_10295"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 2<sup><var>bits</var></sup>.</li><li>If <var>mod</var> ≥ 2<sup><var>bits</var> - 1</sup>, return <emu-xref aoid="ℤ" id="_ref_10296"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<var>mod</var> - 2<sup><var>bits</var></sup>).</li><li>Return <emu-xref aoid="ℤ" id="_ref_10297"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<var>mod</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-bigint.asuintn" type="built-in function">
|
||
<h1><span class="secnum">21.2.2.2</span> BigInt.asUintN ( <var>bits</var>, <var>bigint</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Set <var>bits</var> to ? <emu-xref aoid="ToIndex" id="_ref_10298"><a href="abstract-operations.html#sec-toindex" class="e-user-code">ToIndex</a></emu-xref>(<var>bits</var>).</li><li>Set <var>bigint</var> to ? <emu-xref aoid="ToBigInt" id="_ref_10299"><a href="abstract-operations.html#sec-tobigint" class="e-user-code">ToBigInt</a></emu-xref>(<var>bigint</var>).</li><li>Return <emu-xref aoid="ℤ" id="_ref_10300"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10301"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>bigint</var>) <emu-xref aoid="modulo" id="_ref_10302"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 2<sup><var>bits</var></sup>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-bigint.prototype">
|
||
<h1><span class="secnum">21.2.2.3</span> BigInt.prototype</h1>
|
||
<p>The initial value of <code>BigInt.prototype</code> is the <emu-xref href="#sec-properties-of-the-bigint-prototype-object" id="_ref_10303"><a href="numbers-and-dates.html#sec-properties-of-the-bigint-prototype-object">BigInt prototype object</a></emu-xref>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-the-bigint-prototype-object">
|
||
<h1><span class="secnum">21.2.3</span> Properties of the BigInt Prototype Object</h1>
|
||
<p>The <dfn tabindex="-1">BigInt prototype object</dfn>:</p>
|
||
<ul>
|
||
<li>is <dfn tabindex="-1">%BigInt.prototype%</dfn>.</li>
|
||
<li>is an <emu-xref href="#ordinary-object" id="_ref_10304"><a href="ecmascript-data-types-and-values.html#ordinary-object">ordinary object</a></emu-xref>.</li>
|
||
<li><emu-xref href="#sec-ecmascript-language-types-bigint-type" id="_ref_10305"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-bigint-type">is not a BigInt</a></emu-xref> object; it does not have a <var class="field">[[BigIntData]]</var> internal slot.</li>
|
||
<li>has a <var class="field">[[Prototype]]</var> internal slot whose value is <emu-xref href="#sec-properties-of-the-object-prototype-object" id="_ref_10306"><a href="fundamental-objects.html#sec-properties-of-the-object-prototype-object">%Object.prototype%</a></emu-xref>.</li>
|
||
</ul>
|
||
<p>The phrase “this BigInt value” within the specification of a method refers to the result returned by calling the abstract operation <emu-xref aoid="ThisBigIntValue" id="_ref_10307"><a href="numbers-and-dates.html#sec-thisbigintvalue">ThisBigIntValue</a></emu-xref> with the <emu-val>this</emu-val> value of the method invocation passed as the argument.</p>
|
||
|
||
<emu-clause id="sec-bigint.prototype.constructor">
|
||
<h1><span class="secnum">21.2.3.1</span> BigInt.prototype.constructor</h1>
|
||
<p>The initial value of <code>BigInt.prototype.constructor</code> is <emu-xref href="#sec-bigint-constructor" id="_ref_10308"><a href="numbers-and-dates.html#sec-bigint-constructor">%BigInt%</a></emu-xref>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-bigint.prototype.tolocalestring" type="built-in function">
|
||
<h1><span class="secnum">21.2.3.2</span> BigInt.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</h1>
|
||
<p>An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement this method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of this method is used:</p>
|
||
<p>This method produces a String value that represents this BigInt value formatted according to the conventions of the <emu-xref href="#host-environment" id="_ref_10309"><a href="overview.html#host-environment">host environment</a></emu-xref>'s current locale. This method is <emu-xref href="#implementation-defined" id="_ref_10310"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref>, and it is permissible, but not encouraged, for it to return the same thing as <code>toString</code>.</p>
|
||
<p>The meanings of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-bigint.prototype.tostring" type="built-in function">
|
||
<h1><span class="secnum">21.2.3.3</span> BigInt.prototype.toString ( [ <var>radix</var> ] )</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The optional <var>radix</var> should be an <emu-xref href="#integral-number" id="_ref_10311"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> value in the <emu-xref href="#inclusive-interval" id="_ref_10312"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>2</emu-val><sub>𝔽</sub> to <emu-val>36</emu-val><sub>𝔽</sub>. If <var>radix</var> is <emu-val>undefined</emu-val> then <emu-val>10</emu-val><sub>𝔽</sub> is used as the value of <var>radix</var>.</p>
|
||
</div></emu-note>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>x</var> be ? <emu-xref aoid="ThisBigIntValue" id="_ref_10313"><a href="numbers-and-dates.html#sec-thisbigintvalue">ThisBigIntValue</a></emu-xref>(<emu-val>this</emu-val> value).</li><li>If <var>radix</var> is <emu-val>undefined</emu-val>, let <var>radixMV</var> be 10.</li><li>Else, let <var>radixMV</var> be ? <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10314"><a href="abstract-operations.html#sec-tointegerorinfinity" class="e-user-code">ToIntegerOrInfinity</a></emu-xref>(<var>radix</var>).</li><li>If <var>radixMV</var> is not in the <emu-xref href="#inclusive-interval" id="_ref_10315"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 2 to 36, throw a <emu-val>RangeError</emu-val> exception.</li><li>Return <emu-xref aoid="BigInt::toString" id="_ref_10316"><a href="ecmascript-data-types-and-values.html#sec-numeric-types-bigint-tostring">BigInt::toString</a></emu-xref>(<var>x</var>, <var>radixMV</var>).</li></ol></emu-alg>
|
||
<p>This method is not generic; it throws a <emu-val>TypeError</emu-val> exception if its <emu-val>this</emu-val> value <emu-xref href="#sec-ecmascript-language-types-bigint-type" id="_ref_10317"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-bigint-type">is not a BigInt</a></emu-xref> or a BigInt object. Therefore, it cannot be transferred to other kinds of objects for use as a method.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-bigint.prototype.valueof" type="built-in function">
|
||
<h1><span class="secnum">21.2.3.4</span> BigInt.prototype.valueOf ( )</h1>
|
||
<emu-alg><ol><li>Return ? <emu-xref aoid="ThisBigIntValue" id="_ref_10318"><a href="numbers-and-dates.html#sec-thisbigintvalue">ThisBigIntValue</a></emu-xref>(<emu-val>this</emu-val> value).</li></ol></emu-alg>
|
||
|
||
<emu-clause id="sec-thisbigintvalue" type="abstract operation" oldids="thisbigintvalue" aoid="ThisBigIntValue"><span id="thisbigintvalue"></span>
|
||
<h1><span class="secnum">21.2.3.4.1</span> ThisBigIntValue ( <var>value</var> )</h1>
|
||
<p>The abstract operation ThisBigIntValue takes argument <var>value</var> (an <emu-xref href="#sec-ecmascript-language-types" id="_ref_10319"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types">ECMAScript language value</a></emu-xref>) and returns either a <emu-xref href="#sec-completion-record-specification-type" id="_ref_10320"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">normal completion containing</a></emu-xref> a BigInt or a <emu-xref href="#sec-completion-record-specification-type" id="_ref_10321"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">throw completion</a></emu-xref>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>value</var> <emu-xref href="#sec-ecmascript-language-types-bigint-type" id="_ref_10322"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-bigint-type">is a BigInt</a></emu-xref>, return <var>value</var>.</li><li>If <var>value</var> <emu-xref href="#sec-object-type" id="_ref_10323"><a href="ecmascript-data-types-and-values.html#sec-object-type">is an Object</a></emu-xref> and <var>value</var> has a <var class="field">[[BigIntData]]</var> internal slot, then<ol><li><emu-xref href="#assert" id="_ref_10324"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>value</var>.<var class="field">[[BigIntData]]</var> <emu-xref href="#sec-ecmascript-language-types-bigint-type" id="_ref_10325"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-bigint-type">is a BigInt</a></emu-xref>.</li><li>Return <var>value</var>.<var class="field">[[BigIntData]]</var>.</li></ol></li><li>Throw a <emu-val>TypeError</emu-val> exception.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause oldids="sec-bigint.prototype-@@tostringtag" id="sec-bigint.prototype-%symbol.tostringtag%"><span id="sec-bigint.prototype-@@tostringtag"></span>
|
||
<h1><span class="secnum">21.2.3.5</span> BigInt.prototype [ %Symbol.toStringTag% ]</h1>
|
||
<p>The initial value of the <emu-xref href="#sec-well-known-symbols" id="_ref_10326"><a href="ecmascript-data-types-and-values.html#sec-well-known-symbols">%Symbol.toStringTag%</a></emu-xref> property is the String value <emu-val>"BigInt"</emu-val>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>true</emu-val> }.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-bigint-instances">
|
||
<h1><span class="secnum">21.2.4</span> Properties of BigInt Instances</h1>
|
||
<p>BigInt instances are <emu-xref href="#ordinary-object" id="_ref_10327"><a href="ecmascript-data-types-and-values.html#ordinary-object">ordinary objects</a></emu-xref> that inherit properties from the <emu-xref href="#sec-properties-of-the-bigint-prototype-object" id="_ref_10328"><a href="numbers-and-dates.html#sec-properties-of-the-bigint-prototype-object">BigInt prototype object</a></emu-xref>. BigInt instances also have a <var class="field">[[BigIntData]]</var> internal slot. The <var class="field">[[BigIntData]]</var> internal slot is the BigInt value represented by this BigInt object.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math-object">
|
||
<h1><span class="secnum">21.3</span> The Math Object</h1>
|
||
<p>The Math object:</p>
|
||
<ul>
|
||
<li>is <dfn tabindex="-1">%Math%</dfn>.</li>
|
||
<li>is the initial value of the <emu-val>"Math"</emu-val> property of the <emu-xref href="#sec-global-object" id="_ref_10329"><a href="global-object.html#sec-global-object">global object</a></emu-xref>.</li>
|
||
<li>is an <emu-xref href="#ordinary-object" id="_ref_10330"><a href="ecmascript-data-types-and-values.html#ordinary-object">ordinary object</a></emu-xref>.</li>
|
||
<li>has a <var class="field">[[Prototype]]</var> internal slot whose value is <emu-xref href="#sec-properties-of-the-object-prototype-object" id="_ref_10331"><a href="fundamental-objects.html#sec-properties-of-the-object-prototype-object">%Object.prototype%</a></emu-xref>.</li>
|
||
<li>is not a <emu-xref href="#function-object" id="_ref_10332"><a href="ecmascript-data-types-and-values.html#function-object">function object</a></emu-xref>.</li>
|
||
<li>does not have a <var class="field">[[Construct]]</var> internal method; it cannot be used as a <emu-xref href="#constructor" id="_ref_10333"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref> with the <code>new</code> operator.</li>
|
||
<li>does not have a <var class="field">[[Call]]</var> internal method; it cannot be invoked as a function.</li>
|
||
</ul>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>In this specification, the phrase “the <emu-xref href="#number-value-for" id="_ref_10334"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> <var>x</var>” has a technical meaning defined in <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_638"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">6.1.6.1</a></emu-xref>.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-value-properties-of-the-math-object">
|
||
<h1><span class="secnum">21.3.1</span> Value Properties of the Math Object</h1>
|
||
|
||
<emu-clause id="sec-math.e">
|
||
<h1><span class="secnum">21.3.1.1</span> Math.E</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10335"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> <i>e</i>, the base of the natural logarithms, which is approximately 2.7182818284590452354.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.ln10">
|
||
<h1><span class="secnum">21.3.1.2</span> Math.LN10</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10336"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> the natural logarithm of 10, which is approximately 2.302585092994046.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.ln2">
|
||
<h1><span class="secnum">21.3.1.3</span> Math.LN2</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10337"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> the natural logarithm of 2, which is approximately 0.6931471805599453.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.log10e">
|
||
<h1><span class="secnum">21.3.1.4</span> Math.LOG10E</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10338"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> the base-10 logarithm of <i>e</i>, the base of the natural logarithms; this value is approximately 0.4342944819032518.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.LOG10E</code> is approximately the reciprocal of the value of <code>Math.LN10</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.log2e">
|
||
<h1><span class="secnum">21.3.1.5</span> Math.LOG2E</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10339"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> the base-2 logarithm of <i>e</i>, the base of the natural logarithms; this value is approximately 1.4426950408889634.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.LOG2E</code> is approximately the reciprocal of the value of <code>Math.LN2</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.pi">
|
||
<h1><span class="secnum">21.3.1.6</span> Math.PI</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10340"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> π, the ratio of the circumference of a circle to its diameter, which is approximately 3.1415926535897932.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.sqrt1_2">
|
||
<h1><span class="secnum">21.3.1.7</span> Math.SQRT1_2</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10341"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> the square root of ½, which is approximately 0.7071067811865476.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.SQRT1_2</code> is approximately the reciprocal of the value of <code>Math.SQRT2</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.sqrt2">
|
||
<h1><span class="secnum">21.3.1.8</span> Math.SQRT2</h1>
|
||
<p>The <emu-xref href="#number-value-for" id="_ref_10342"><a href="ecmascript-data-types-and-values.html#number-value-for">Number value for</a></emu-xref> the square root of 2, which is approximately 1.4142135623730951.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause oldids="sec-math-@@tostringtag" id="sec-math-%symbol.tostringtag%"><span id="sec-math-@@tostringtag"></span>
|
||
<h1><span class="secnum">21.3.1.9</span> Math [ %Symbol.toStringTag% ]</h1>
|
||
<p>The initial value of the <emu-xref href="#sec-well-known-symbols" id="_ref_10343"><a href="ecmascript-data-types-and-values.html#sec-well-known-symbols">%Symbol.toStringTag%</a></emu-xref> property is the String value <emu-val>"Math"</emu-val>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>true</emu-val> }.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-function-properties-of-the-math-object">
|
||
<h1><span class="secnum">21.3.2</span> Function Properties of the Math Object</h1>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The behaviour of the functions <code>acos</code>, <code>acosh</code>, <code>asin</code>, <code>asinh</code>, <code>atan</code>, <code>atanh</code>, <code>atan2</code>, <code>cbrt</code>, <code>cos</code>, <code>cosh</code>, <code>exp</code>, <code>expm1</code>, <code>hypot</code>, <code>log</code>, <code>log1p</code>, <code>log2</code>, <code>log10</code>, <code>pow</code>, <code>random</code>, <code>sin</code>, <code>sinh</code>, <code>tan</code>, and <code>tanh</code> is not precisely specified here except to require specific results for certain argument values that represent boundary cases of interest. For other argument values, these functions are intended to compute approximations to the results of familiar mathematical functions, but some latitude is allowed in the choice of approximation algorithms. The general intent is that an implementer should be able to use the same mathematical library for ECMAScript on a given hardware platform that is available to C programmers on that platform.</p>
|
||
<p>Although the choice of algorithms is left to the implementation, it is recommended (but not specified by this standard) that implementations use the approximation algorithms for <emu-xref href="#sec-bibliography" id="_ref_10344"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref> arithmetic contained in <code>fdlibm</code>, the freely distributable mathematical library from Sun Microsystems (<a href="http://www.netlib.org/fdlibm">http://www.netlib.org/fdlibm</a>).</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-math.abs" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.1</span> Math.abs ( <var>x</var> )</h1>
|
||
<p>This function returns the absolute value of <var>x</var>; the result has the same magnitude as <var>x</var> but has positive sign.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10345"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>n</var> is <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>+∞</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, return -<var>n</var>.</li><li>Return <var>n</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.acos" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.2</span> Math.acos ( <var>x</var> )</h1>
|
||
<p>This function returns the inverse cosine of <var>x</var>. The result is expressed in radians and is in the <emu-xref href="#inclusive-interval" id="_ref_10346"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-xref aoid="𝔽" id="_ref_10347"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(π).</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10348"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is <emu-val>NaN</emu-val>, <var>n</var> > <emu-val>1</emu-val><sub>𝔽</sub>, or <var>n</var> < <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>If <var>n</var> is <emu-val>1</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10349"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the inverse cosine of <emu-xref aoid="ℝ" id="_ref_10350"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.acosh" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.3</span> Math.acosh ( <var>x</var> )</h1>
|
||
<p>This function returns the inverse hyperbolic cosine of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10351"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is either <emu-val>NaN</emu-val> or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>1</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>1</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10352"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the inverse hyperbolic cosine of <emu-xref aoid="ℝ" id="_ref_10353"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.asin" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.4</span> Math.asin ( <var>x</var> )</h1>
|
||
<p>This function returns the inverse sine of <var>x</var>. The result is expressed in radians and is in the <emu-xref href="#inclusive-interval" id="_ref_10354"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-xref aoid="𝔽" id="_ref_10355"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(-π / 2) to <emu-xref aoid="𝔽" id="_ref_10356"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(π / 2).</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10357"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> > <emu-val>1</emu-val><sub>𝔽</sub> or <var>n</var> < <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10358"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the inverse sine of <emu-xref aoid="ℝ" id="_ref_10359"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.asinh" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.5</span> Math.asinh ( <var>x</var> )</h1>
|
||
<p>This function returns the inverse hyperbolic sine of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10360"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10361"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10362"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the inverse hyperbolic sine of <emu-xref aoid="ℝ" id="_ref_10363"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.atan" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.6</span> Math.atan ( <var>x</var> )</h1>
|
||
<p>This function returns the inverse tangent of <var>x</var>. The result is expressed in radians and is in the <emu-xref href="#inclusive-interval" id="_ref_10364"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-xref aoid="𝔽" id="_ref_10365"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(-π / 2) to <emu-xref aoid="𝔽" id="_ref_10366"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(π / 2).</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10367"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10368"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing π / 2.</li><li>If <var>n</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10369"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing -π / 2.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10370"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the inverse tangent of <emu-xref aoid="ℝ" id="_ref_10371"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.atanh" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.7</span> Math.atanh ( <var>x</var> )</h1>
|
||
<p>This function returns the inverse hyperbolic tangent of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10372"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> > <emu-val>1</emu-val><sub>𝔽</sub> or <var>n</var> < <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>If <var>n</var> is <emu-val>1</emu-val><sub>𝔽</sub>, return <emu-val>+∞</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>-∞</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10373"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the inverse hyperbolic tangent of <emu-xref aoid="ℝ" id="_ref_10374"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.atan2" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.8</span> Math.atan2 ( <var>y</var>, <var>x</var> )</h1>
|
||
<p>This function returns the inverse tangent of the quotient <emu-eqn class="inline"><var>y</var> / <var>x</var></emu-eqn> of the arguments <var>y</var> and <var>x</var>, where the signs of <var>y</var> and <var>x</var> are used to determine the quadrant of the result. Note that it is intentional and traditional for the two-argument inverse tangent function that the argument named <var>y</var> be first and the argument named <var>x</var> be second. The result is expressed in radians and is in the <emu-xref href="#inclusive-interval" id="_ref_10375"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from -π to +π.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>ny</var> be ? <emu-xref aoid="ToNumber" id="_ref_10376"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>y</var>).</li><li>Let <var>nx</var> be ? <emu-xref aoid="ToNumber" id="_ref_10377"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>ny</var> is <emu-val>NaN</emu-val> or <var>nx</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>ny</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, then<ol><li>If <var>nx</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10378"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing π / 4.</li><li>If <var>nx</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10379"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing 3π / 4.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10380"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing π / 2.</li></ol></li><li>If <var>ny</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, then<ol><li>If <var>nx</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10381"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing -π / 4.</li><li>If <var>nx</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10382"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing -3π / 4.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10383"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing -π / 2.</li></ol></li><li>If <var>ny</var> is <emu-val>+0</emu-val><sub>𝔽</sub>, then<ol><li>If <var>nx</var> > <emu-val>+0</emu-val><sub>𝔽</sub> or <var>nx</var> is <emu-val>+0</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10384"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing π.</li></ol></li><li>If <var>ny</var> is <emu-val>-0</emu-val><sub>𝔽</sub>, then<ol><li>If <var>nx</var> > <emu-val>+0</emu-val><sub>𝔽</sub> or <var>nx</var> is <emu-val>+0</emu-val><sub>𝔽</sub>, return <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10385"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing -π.</li></ol></li><li><emu-xref href="#assert" id="_ref_10386"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>ny</var> is <emu-xref href="#finite" id="_ref_10387"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> and is neither <emu-val>+0</emu-val><sub>𝔽</sub> nor <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>If <var>ny</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, then<ol><li>If <var>nx</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>nx</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10388"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing π.</li><li>If <var>nx</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10389"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing π / 2.</li></ol></li><li>If <var>ny</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, then<ol><li>If <var>nx</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, return <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>If <var>nx</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10390"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing -π.</li><li>If <var>nx</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return an <emu-xref href="#implementation-approximated" id="_ref_10391"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing -π / 2.</li></ol></li><li><emu-xref href="#assert" id="_ref_10392"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>nx</var> is <emu-xref href="#finite" id="_ref_10393"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> and is neither <emu-val>+0</emu-val><sub>𝔽</sub> nor <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>Let <var>r</var> be the inverse tangent of <emu-xref aoid="abs" id="_ref_10394"><a href="notational-conventions.html#eqn-abs">abs</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10395"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>ny</var>) / <emu-xref aoid="ℝ" id="_ref_10396"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>nx</var>)).</li><li>If <var>nx</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, then<ol><li>If <var>ny</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, set <var>r</var> to π - <var>r</var>.</li><li>Else, set <var>r</var> to -π + <var>r</var>.</li></ol></li><li>Else,<ol><li>If <var>ny</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, set <var>r</var> to -<var>r</var>.</li></ol></li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10397"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing <var>r</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.cbrt" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.9</span> Math.cbrt ( <var>x</var> )</h1>
|
||
<p>This function returns the cube root of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10398"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10399"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10400"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the cube root of <emu-xref aoid="ℝ" id="_ref_10401"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.ceil" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.10</span> Math.ceil ( <var>x</var> )</h1>
|
||
<p>This function returns the smallest (closest to -∞) <emu-xref href="#integral-number" id="_ref_10402"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> value that is not less than <var>x</var>. If <var>x</var> is already an <emu-xref href="#integral-number" id="_ref_10403"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, the result is <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10404"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10405"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub> and <var>n</var> > <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is an <emu-xref href="#integral-number" id="_ref_10406"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, return <var>n</var>.</li><li>Return the smallest (closest to -∞) <emu-xref href="#integral-number" id="_ref_10407"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> value that is not less than <var>n</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.ceil(x)</code> is the same as the value of <code>-Math.floor(-x)</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.clz32" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.11</span> Math.clz32 ( <var>x</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToUint32" id="_ref_10408"><a href="abstract-operations.html#sec-touint32" class="e-user-code">ToUint32</a></emu-xref>(<var>x</var>).</li><li>Let <var>p</var> be the number of leading zero bits in the unsigned 32-bit binary representation of <var>n</var>.</li><li>Return <emu-xref aoid="𝔽" id="_ref_10409"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>p</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, this method returns <emu-val>32</emu-val><sub>𝔽</sub>. If the most significant bit of the 32-bit binary encoding of <var>n</var> is 1, this method returns <emu-val>+0</emu-val><sub>𝔽</sub>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.cos" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.12</span> Math.cos ( <var>x</var> )</h1>
|
||
<p>This function returns the cosine of <var>x</var>. The argument is expressed in radians.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10410"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10411"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>If <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10412"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the cosine of <emu-xref aoid="ℝ" id="_ref_10413"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.cosh" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.13</span> Math.cosh ( <var>x</var> )</h1>
|
||
<p>This function returns the hyperbolic cosine of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10414"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>n</var> is either <emu-val>+∞</emu-val><sub>𝔽</sub> or <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>+∞</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10415"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the hyperbolic cosine of <emu-xref aoid="ℝ" id="_ref_10416"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.cosh(x)</code> is the same as the value of <code>(Math.exp(x) + Math.exp(-x)) / 2</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.exp" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.14</span> Math.exp ( <var>x</var> )</h1>
|
||
<p>This function returns the exponential function of <var>x</var> (<var>e</var> raised to the power of <var>x</var>, where <var>e</var> is the base of the natural logarithms).</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10417"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is either <emu-val>NaN</emu-val> or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10418"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the exponential function of <emu-xref aoid="ℝ" id="_ref_10419"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.expm1" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.15</span> Math.expm1 ( <var>x</var> )</h1>
|
||
<p>This function returns the result of subtracting 1 from the exponential function of <var>x</var> (<var>e</var> raised to the power of <var>x</var>, where <var>e</var> is the base of the natural logarithms). The result is computed in a way that is accurate even when the value of <var>x</var> is close to 0.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10420"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, <emu-val>-0</emu-val><sub>𝔽</sub>, or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>-1</emu-val><sub>𝔽</sub>.</li><li>Let <var>exp</var> be the exponential function of <emu-xref aoid="ℝ" id="_ref_10421"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10422"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing <var>exp</var> - 1.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.floor" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.16</span> Math.floor ( <var>x</var> )</h1>
|
||
<p>This function returns the greatest (closest to +∞) <emu-xref href="#integral-number" id="_ref_10423"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> value that is not greater than <var>x</var>. If <var>x</var> is already an <emu-xref href="#integral-number" id="_ref_10424"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, the result is <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10425"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10426"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> < <emu-val>1</emu-val><sub>𝔽</sub> and <var>n</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is an <emu-xref href="#integral-number" id="_ref_10427"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, return <var>n</var>.</li><li>Return the greatest (closest to +∞) <emu-xref href="#integral-number" id="_ref_10428"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> value that is not greater than <var>n</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.floor(x)</code> is the same as the value of <code>-Math.ceil(-x)</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.fround" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.17</span> Math.fround ( <var>x</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10429"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>n</var> is one of <emu-val>+0</emu-val><sub>𝔽</sub>, <emu-val>-0</emu-val><sub>𝔽</sub>, <emu-val>+∞</emu-val><sub>𝔽</sub>, or <emu-val>-∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>Let <var>n32</var> be the result of converting <var>n</var> to <emu-xref href="#sec-bibliography" id="_ref_10430"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref> binary32 format using roundTiesToEven mode.</li><li>Let <var>n64</var> be the result of converting <var>n32</var> to <emu-xref href="#sec-bibliography" id="_ref_10431"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref> binary64 format.</li><li>Return the ECMAScript Number value corresponding to <var>n64</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.f16round" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.18</span> Math.f16round ( <var>x</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10432"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>n</var> is one of <emu-val>+0</emu-val><sub>𝔽</sub>, <emu-val>-0</emu-val><sub>𝔽</sub>, <emu-val>+∞</emu-val><sub>𝔽</sub>, or <emu-val>-∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>Let <var>n16</var> be the result of converting <var>n</var> to <emu-xref href="#sec-bibliography" id="_ref_10433"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref> binary16 format using roundTiesToEven mode.</li><li>Let <var>n64</var> be the result of converting <var>n16</var> to <emu-xref href="#sec-bibliography" id="_ref_10434"><a href="bibliography.html#sec-bibliography">IEEE 754-2019</a></emu-xref> binary64 format.</li><li>Return the ECMAScript Number value corresponding to <var>n64</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>This operation is not the same as casting to binary32 and then to binary16 because of the possibility of double-rounding: consider the number <var>k</var> = <emu-val>1.00048828125000022204</emu-val><sub>𝔽</sub>, for example, for which Math.f16round(<var>k</var>) is <emu-val>1.0009765625</emu-val><sub>𝔽</sub>, but Math.f16round(Math.fround(<var>k</var>)) is <emu-val>1</emu-val><sub>𝔽</sub>.</p>
|
||
<p>Not all platforms provide native support for casting from binary64 to binary16. There are various libraries which can provide this, including the MIT-licensed <a href="https://half.sourceforge.net/">half</a> library. Alternatively, it is possible to first cast from binary64 to binary32 under roundTiesToEven and then check whether the result could lead to incorrect double-rounding. Such cases can be handled explicitly by adjusting the mantissa of the binary32 value so that it is the value which would be produced by performing the initial cast under roundTiesToOdd. Casting the adjusted value to binary16 under roundTiesToEven then produces the correct value.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.hypot" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.19</span> Math.hypot ( ...<var>args</var> )</h1>
|
||
<p>Given zero or more arguments, this function returns the square root of the sum of squares of its arguments.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>coerced</var> be a new empty <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10435"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref>.</li><li>For each element <var>arg</var> of <var>args</var>, do<ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10436"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>arg</var>).</li><li>Append <var>n</var> to <var>coerced</var>.</li></ol></li><li>For each element <var>number</var> of <var>coerced</var>, do<ol><li>If <var>number</var> is either <emu-val>+∞</emu-val><sub>𝔽</sub> or <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>+∞</emu-val><sub>𝔽</sub>.</li></ol></li><li>Let <var>onlyZero</var> be <emu-val>true</emu-val>.</li><li>For each element <var>number</var> of <var>coerced</var>, do<ol><li>If <var>number</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>number</var> is neither <emu-val>+0</emu-val><sub>𝔽</sub> nor <emu-val>-0</emu-val><sub>𝔽</sub>, set <var>onlyZero</var> to <emu-val>false</emu-val>.</li></ol></li><li>If <var>onlyZero</var> is <emu-val>true</emu-val>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10437"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the square root of the sum of squares of the <emu-xref href="#mathematical-value" id="_ref_10438"><a href="notational-conventions.html#mathematical-value">mathematical values</a></emu-xref> of the elements of <var>coerced</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this function is <emu-val>2</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>Implementations should take care to avoid the loss of precision from overflows and underflows that are prone to occur in naive implementations when this function is called with two or more arguments.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.imul" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.20</span> Math.imul ( <var>x</var>, <var>y</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>a</var> be <emu-xref aoid="ℝ" id="_ref_10439"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(? <emu-xref aoid="ToUint32" id="_ref_10440"><a href="abstract-operations.html#sec-touint32" class="e-user-code">ToUint32</a></emu-xref>(<var>x</var>)).</li><li>Let <var>b</var> be <emu-xref aoid="ℝ" id="_ref_10441"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(? <emu-xref aoid="ToUint32" id="_ref_10442"><a href="abstract-operations.html#sec-touint32" class="e-user-code">ToUint32</a></emu-xref>(<var>y</var>)).</li><li>Let <var>product</var> be (<var>a</var> × <var>b</var>) <emu-xref aoid="modulo" id="_ref_10443"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 2<sup>32</sup>.</li><li>If <var>product</var> ≥ 2<sup>31</sup>, return <emu-xref aoid="𝔽" id="_ref_10444"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>product</var> - 2<sup>32</sup>).</li><li>Return <emu-xref aoid="𝔽" id="_ref_10445"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>product</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.log" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.21</span> Math.log ( <var>x</var> )</h1>
|
||
<p>This function returns the natural logarithm of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10446"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is either <emu-val>NaN</emu-val> or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>1</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>-∞</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10447"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing <emu-xref aoid="ln" id="_ref_10448"><a href="notational-conventions.html#eqn-ln">ln</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10449"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.log1p" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.22</span> Math.log1p ( <var>x</var> )</h1>
|
||
<p>This function returns the natural logarithm of 1 + <var>x</var>. The result is computed in a way that is accurate even when the value of x is close to zero.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10450"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, <emu-val>-0</emu-val><sub>𝔽</sub>, or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>-∞</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10451"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing <emu-xref aoid="ln" id="_ref_10452"><a href="notational-conventions.html#eqn-ln">ln</a></emu-xref>(1 + <emu-xref aoid="ℝ" id="_ref_10453"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.log10" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.23</span> Math.log10 ( <var>x</var> )</h1>
|
||
<p>This function returns the base 10 logarithm of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10454"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is either <emu-val>NaN</emu-val> or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>1</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>-∞</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10455"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing <emu-xref aoid="log10" id="_ref_10456"><a href="notational-conventions.html#eqn-log10">log10</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10457"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.log2" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.24</span> Math.log2 ( <var>x</var> )</h1>
|
||
<p>This function returns the base 2 logarithm of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10458"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is either <emu-val>NaN</emu-val> or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>1</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>-∞</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10459"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing <emu-xref aoid="log2" id="_ref_10460"><a href="notational-conventions.html#eqn-log2">log2</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10461"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.max" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.25</span> Math.max ( ...<var>args</var> )</h1>
|
||
<p>Given zero or more arguments, this function calls <emu-xref aoid="ToNumber" id="_ref_10462"><a href="abstract-operations.html#sec-tonumber">ToNumber</a></emu-xref> on each of the arguments and returns the largest of the resulting values.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>coerced</var> be a new empty <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10463"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref>.</li><li>For each element <var>arg</var> of <var>args</var>, do<ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10464"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>arg</var>).</li><li>Append <var>n</var> to <var>coerced</var>.</li></ol></li><li>Let <var>highest</var> be <emu-val>-∞</emu-val><sub>𝔽</sub>.</li><li>For each element <var>number</var> of <var>coerced</var>, do<ol><li>If <var>number</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>number</var> is <emu-val>+0</emu-val><sub>𝔽</sub> and <var>highest</var> is <emu-val>-0</emu-val><sub>𝔽</sub>, set <var>highest</var> to <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>number</var> > <var>highest</var>, set <var>highest</var> to <var>number</var>.</li></ol></li><li>Return <var>highest</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The comparison of values to determine the largest value is done using the <emu-xref aoid="IsLessThan" id="_ref_10465"><a href="abstract-operations.html#sec-islessthan">IsLessThan</a></emu-xref> algorithm except that <emu-val>+0</emu-val><sub>𝔽</sub> is considered to be larger than <emu-val>-0</emu-val><sub>𝔽</sub>.</p>
|
||
</div></emu-note>
|
||
<p>The <emu-val>"length"</emu-val> property of this function is <emu-val>2</emu-val><sub>𝔽</sub>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.min" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.26</span> Math.min ( ...<var>args</var> )</h1>
|
||
<p>Given zero or more arguments, this function calls <emu-xref aoid="ToNumber" id="_ref_10466"><a href="abstract-operations.html#sec-tonumber">ToNumber</a></emu-xref> on each of the arguments and returns the smallest of the resulting values.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>coerced</var> be a new empty <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10467"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref>.</li><li>For each element <var>arg</var> of <var>args</var>, do<ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10468"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>arg</var>).</li><li>Append <var>n</var> to <var>coerced</var>.</li></ol></li><li>Let <var>lowest</var> be <emu-val>+∞</emu-val><sub>𝔽</sub>.</li><li>For each element <var>number</var> of <var>coerced</var>, do<ol><li>If <var>number</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>number</var> is <emu-val>-0</emu-val><sub>𝔽</sub> and <var>lowest</var> is <emu-val>+0</emu-val><sub>𝔽</sub>, set <var>lowest</var> to <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>If <var>number</var> < <var>lowest</var>, set <var>lowest</var> to <var>number</var>.</li></ol></li><li>Return <var>lowest</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The comparison of values to determine the largest value is done using the <emu-xref aoid="IsLessThan" id="_ref_10469"><a href="abstract-operations.html#sec-islessthan">IsLessThan</a></emu-xref> algorithm except that <emu-val>+0</emu-val><sub>𝔽</sub> is considered to be larger than <emu-val>-0</emu-val><sub>𝔽</sub>.</p>
|
||
</div></emu-note>
|
||
<p>The <emu-val>"length"</emu-val> property of this function is <emu-val>2</emu-val><sub>𝔽</sub>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.pow" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.27</span> Math.pow ( <var>base</var>, <var>exponent</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Set <var>base</var> to ? <emu-xref aoid="ToNumber" id="_ref_10470"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>base</var>).</li><li>Set <var>exponent</var> to ? <emu-xref aoid="ToNumber" id="_ref_10471"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>exponent</var>).</li><li>Return <emu-xref aoid="Number::exponentiate" id="_ref_10472"><a href="ecmascript-data-types-and-values.html#sec-numeric-types-number-exponentiate">Number::exponentiate</a></emu-xref>(<var>base</var>, <var>exponent</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.random" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.28</span> Math.random ( )</h1>
|
||
<p>This function returns a Number value with positive sign, greater than or equal to <emu-val>+0</emu-val><sub>𝔽</sub> but strictly less than <emu-val>1</emu-val><sub>𝔽</sub>, chosen randomly or pseudo randomly with approximately uniform distribution over that range, using an <emu-xref href="#implementation-defined" id="_ref_10473"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> algorithm or strategy.</p>
|
||
<p>Each <code>Math.random</code> function created for distinct <emu-xref href="#realm" id="_ref_10474"><a href="executable-code-and-execution-contexts.html#realm">realms</a></emu-xref> must produce a distinct sequence of values from successive calls.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.round" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.29</span> Math.round ( <var>x</var> )</h1>
|
||
<p>This function returns the Number value that is closest to <var>x</var> and is integral. If two <emu-xref href="#integral-number" id="_ref_10475"><a href="notational-conventions.html#integral-number">integral Numbers</a></emu-xref> are equally close to <var>x</var>, then the result is the Number value that is closer to +∞. If <var>x</var> is already integral, the result is <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10476"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10477"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>n</var> is an <emu-xref href="#integral-number" id="_ref_10478"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>, return <var>n</var>.</li><li>If <var>n</var> < <emu-val>0.5</emu-val><sub>𝔽</sub> and <var>n</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub> and <var>n</var> ≥ <emu-val>-0.5</emu-val><sub>𝔽</sub>, return <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>Return the <emu-xref href="#integral-number" id="_ref_10479"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> closest to <var>n</var>, preferring the Number closer to +∞ in the case of a tie.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p><code>Math.round(3.5)</code> returns 4, but <code>Math.round(-3.5)</code> returns -3.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>The value of <code>Math.round(x)</code> is not always the same as the value of <code>Math.floor(x + 0.5)</code>. When <code>x</code> is <emu-val>-0</emu-val><sub>𝔽</sub> or <code>x</code> is less than <emu-val>-0</emu-val><sub>𝔽</sub> but greater than or equal to <emu-val>-0.5</emu-val><sub>𝔽</sub>, <code>Math.round(x)</code> returns <emu-val>-0</emu-val><sub>𝔽</sub>, but <code>Math.floor(x + 0.5)</code> returns <emu-val>+0</emu-val><sub>𝔽</sub>. <code>Math.round(x)</code> may also differ from the value of <code>Math.floor(x + 0.5)</code>because of internal rounding when computing <code>x + 0.5</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.sign" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.30</span> Math.sign ( <var>x</var> )</h1>
|
||
<p>This function returns the sign of <var>x</var>, indicating whether <var>x</var> is positive, negative, or zero.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10480"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>-1</emu-val><sub>𝔽</sub>.</li><li>Return <emu-val>1</emu-val><sub>𝔽</sub>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.sin" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.31</span> Math.sin ( <var>x</var> )</h1>
|
||
<p>This function returns the sine of <var>x</var>. The argument is expressed in radians.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10481"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is either <emu-val>+∞</emu-val><sub>𝔽</sub> or <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10482"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the sine of <emu-xref aoid="ℝ" id="_ref_10483"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.sinh" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.32</span> Math.sinh ( <var>x</var> )</h1>
|
||
<p>This function returns the hyperbolic sine of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10484"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10485"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10486"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the hyperbolic sine of <emu-xref aoid="ℝ" id="_ref_10487"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.sinh(x)</code> is the same as the value of <code>(Math.exp(x) - Math.exp(-x)) / 2</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.sqrt" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.33</span> Math.sqrt ( <var>x</var> )</h1>
|
||
<p>This function returns the square root of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10488"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, <emu-val>-0</emu-val><sub>𝔽</sub>, or <emu-val>+∞</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="𝔽" id="_ref_10489"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(the square root of <emu-xref aoid="ℝ" id="_ref_10490"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.sumprecise" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.34</span> Math.sumPrecise ( <var>items</var> )</h1>
|
||
<p>Given an <emu-xref href="#sec-iterable-interface" id="_ref_10491"><a href="control-abstraction-objects.html#sec-iterable-interface">iterable</a></emu-xref> of Numbers, this function sums each value in the <emu-xref href="#sec-iterable-interface" id="_ref_10492"><a href="control-abstraction-objects.html#sec-iterable-interface">iterable</a></emu-xref> and returns their sum. If any value <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10493"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is not a Number</a></emu-xref> it throws a <emu-val>TypeError</emu-val> exception.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Perform ? <emu-xref aoid="RequireObjectCoercible" id="_ref_10494"><a href="abstract-operations.html#sec-requireobjectcoercible">RequireObjectCoercible</a></emu-xref>(<var>items</var>).</li><li>Let <var>iteratorRecord</var> be ? <emu-xref aoid="GetIterator" id="_ref_10495"><a href="abstract-operations.html#sec-getiterator" class="e-user-code">GetIterator</a></emu-xref>(<var>items</var>, <emu-const>sync</emu-const>).</li><li>Let <var>state</var> be <emu-const>minus-zero</emu-const>.</li><li>Let <var>sum</var> be 0.</li><li>Let <var>count</var> be 0.</li><li>Let <var>next</var> be <emu-const>not-started</emu-const>.</li><li>Repeat, while <var>next</var> is not <emu-const>done</emu-const>,<ol><li>Set <var>next</var> to ? <emu-xref aoid="IteratorStepValue" id="_ref_10496"><a href="abstract-operations.html#sec-iteratorstepvalue" class="e-user-code">IteratorStepValue</a></emu-xref>(<var>iteratorRecord</var>).</li><li>If <var>next</var> is not <emu-const>done</emu-const>, then<ol><li>If <var>count</var> ≥ 2<sup>53</sup> - 1, then<ol><li>NOTE: This step is not expected to be reached in practice and is included only so that implementations may rely on inputs being "reasonably sized" without violating this specification.</li><li>Let <var>error</var> be <emu-xref aoid="ThrowCompletion" id="_ref_10497"><a href="ecmascript-data-types-and-values.html#sec-throwcompletion">ThrowCompletion</a></emu-xref>(a newly created <emu-val>RangeError</emu-val> object).</li><li>Return ? <emu-xref aoid="IteratorClose" id="_ref_10498"><a href="abstract-operations.html#sec-iteratorclose" class="e-user-code">IteratorClose</a></emu-xref>(<var>iteratorRecord</var>, <var>error</var>).</li></ol></li><li>If <var>next</var> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10499"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is not a Number</a></emu-xref>, then<ol><li>Let <var>error</var> be <emu-xref aoid="ThrowCompletion" id="_ref_10500"><a href="ecmascript-data-types-and-values.html#sec-throwcompletion">ThrowCompletion</a></emu-xref>(a newly created <emu-val>TypeError</emu-val> object).</li><li>Return ? <emu-xref aoid="IteratorClose" id="_ref_10501"><a href="abstract-operations.html#sec-iteratorclose" class="e-user-code">IteratorClose</a></emu-xref>(<var>iteratorRecord</var>, <var>error</var>).</li></ol></li><li>Let <var>n</var> be <var>next</var>.</li><li>If <var>state</var> is not <emu-const>not-a-number</emu-const>, then<ol><li>If <var>n</var> is <emu-val>NaN</emu-val>, then<ol><li>Set <var>state</var> to <emu-const>not-a-number</emu-const>.</li></ol></li><li>Else if <var>n</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, then<ol><li>If <var>state</var> is <emu-const>minus-infinity</emu-const>, set <var>state</var> to <emu-const>not-a-number</emu-const>.</li><li>Else, set <var>state</var> to <emu-const>plus-infinity</emu-const>.</li></ol></li><li>Else if <var>n</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, then<ol><li>If <var>state</var> is <emu-const>plus-infinity</emu-const>, set <var>state</var> to <emu-const>not-a-number</emu-const>.</li><li>Else, set <var>state</var> to <emu-const>minus-infinity</emu-const>.</li></ol></li><li>Else if <var>n</var> is not <emu-val>-0</emu-val><sub>𝔽</sub> and <var>state</var> is either <emu-const>minus-zero</emu-const> or <emu-const>finite</emu-const>, then<ol><li>Set <var>state</var> to <emu-const>finite</emu-const>.</li><li>Set <var>sum</var> to <var>sum</var> + <emu-xref aoid="ℝ" id="_ref_10502"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></li></ol></li><li>Set <var>count</var> to <var>count</var> + 1.</li></ol></li></ol></li><li>If <var>state</var> is <emu-const>not-a-number</emu-const>, return <emu-val>NaN</emu-val>.</li><li>If <var>state</var> is <emu-const>plus-infinity</emu-const>, return <emu-val>+∞</emu-val><sub>𝔽</sub>.</li><li>If <var>state</var> is <emu-const>minus-infinity</emu-const>, return <emu-val>-∞</emu-val><sub>𝔽</sub>.</li><li>If <var>state</var> is <emu-const>minus-zero</emu-const>, return <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>Return <emu-xref aoid="𝔽" id="_ref_10503"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>sum</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <var>sum</var> can be computed without arbitrary-precision arithmetic by a variety of algorithms. One such is the "Grow-Expansion" algorithm given in <i>Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates</i> by Jonathan Richard Shewchuk. A more recent algorithm is given in "<a href="https://arxiv.org/abs/1505.05571">Fast exact summation using small and large superaccumulators</a>", code for which is available at <a href="https://gitlab.com/radfordneal/xsum">https://gitlab.com/radfordneal/xsum</a>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.tan" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.35</span> Math.tan ( <var>x</var> )</h1>
|
||
<p>This function returns the tangent of <var>x</var>. The argument is expressed in radians.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10504"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is either <emu-val>+∞</emu-val><sub>𝔽</sub> or <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>NaN</emu-val>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10505"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the tangent of <emu-xref aoid="ℝ" id="_ref_10506"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.tanh" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.36</span> Math.tanh ( <var>x</var> )</h1>
|
||
<p>This function returns the hyperbolic tangent of <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10507"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is one of <emu-val>NaN</emu-val>, <emu-val>+0</emu-val><sub>𝔽</sub>, or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> is <emu-val>+∞</emu-val><sub>𝔽</sub>, return <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> is <emu-val>-∞</emu-val><sub>𝔽</sub>, return <emu-val>-1</emu-val><sub>𝔽</sub>.</li><li>Return an <emu-xref href="#implementation-approximated" id="_ref_10508"><a href="overview.html#implementation-approximated">implementation-approximated</a></emu-xref> Number value representing the hyperbolic tangent of <emu-xref aoid="ℝ" id="_ref_10509"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>n</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The value of <code>Math.tanh(x)</code> is the same as the value of <code>(Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x))</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-math.trunc" type="built-in function">
|
||
<h1><span class="secnum">21.3.2.37</span> Math.trunc ( <var>x</var> )</h1>
|
||
<p>This function returns the integral part of the number <var>x</var>, removing any fractional digits. If <var>x</var> is already integral, the result is <var>x</var>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>n</var> be ? <emu-xref aoid="ToNumber" id="_ref_10510"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>x</var>).</li><li>If <var>n</var> is not <emu-xref href="#finite" id="_ref_10511"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>n</var> is either <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>-0</emu-val><sub>𝔽</sub>, return <var>n</var>.</li><li>If <var>n</var> < <emu-val>1</emu-val><sub>𝔽</sub> and <var>n</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>n</var> < <emu-val>-0</emu-val><sub>𝔽</sub> and <var>n</var> > <emu-val>-1</emu-val><sub>𝔽</sub>, return <emu-val>-0</emu-val><sub>𝔽</sub>.</li><li>Return the <emu-xref href="#integral-number" id="_ref_10512"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> nearest <var>n</var> in the direction of <emu-val>+0</emu-val><sub>𝔽</sub>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date-objects">
|
||
<h1><span class="secnum">21.4</span> Date Objects</h1>
|
||
|
||
<emu-clause id="sec-overview-of-date-objects-and-definitions-of-abstract-operations">
|
||
<h1><span class="secnum">21.4.1</span> Overview of Date Objects and Definitions of Abstract Operations</h1>
|
||
<p>The following <emu-xref href="#sec-algorithm-conventions-abstract-operations" id="_ref_10513"><a href="notational-conventions.html#sec-algorithm-conventions-abstract-operations">abstract operations</a></emu-xref> operate on <emu-xref href="#sec-time-values-and-time-range" id="_ref_10514"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time values</a></emu-xref> (defined in <emu-xref href="#sec-time-values-and-time-range" id="_ref_639"><a href="numbers-and-dates.html#sec-time-values-and-time-range">21.4.1.1</a></emu-xref>). Note that, in every case, if any argument to one of these functions is <emu-val>NaN</emu-val>, the result will be <emu-val>NaN</emu-val>.</p>
|
||
|
||
<emu-clause id="sec-time-values-and-time-range">
|
||
<h1><span class="secnum">21.4.1.1</span> Time Values and Time Range</h1>
|
||
<p>Time measurement in ECMAScript is analogous to time measurement in POSIX, in particular sharing definition in terms of the proleptic Gregorian calendar, an <dfn id="epoch" tabindex="-1">epoch</dfn> of midnight at the beginning of 1 January 1970 UTC, and an accounting of every day as comprising exactly 86,400 seconds (each of which is 1000 milliseconds long).</p>
|
||
<p>An ECMAScript <dfn variants="time values" tabindex="-1">time value</dfn> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_10515"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is a Number</a></emu-xref>, either a <emu-xref href="#finite" id="_ref_10516"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#integral-number" id="_ref_10517"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> representing an instant in time to millisecond precision or <emu-val>NaN</emu-val> representing no specific instant. A time value that is a multiple of <emu-eqn class="inline">24 × 60 × 60 × 1000 = 86,400,000</emu-eqn> (i.e., is 86,400,000 × <var>d</var> for some <emu-xref href="#integer" id="_ref_10518"><a href="notational-conventions.html#integer">integer</a></emu-xref> <var>d</var>) represents the instant at the start of the UTC day that follows the <emu-xref href="#epoch" id="_ref_10519"><a href="numbers-and-dates.html#epoch">epoch</a></emu-xref> by <var>d</var> whole UTC days (preceding the <emu-xref href="#epoch" id="_ref_10520"><a href="numbers-and-dates.html#epoch">epoch</a></emu-xref> for negative <var>d</var>). Every other <emu-xref href="#finite" id="_ref_10521"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> time value <var>t</var> is defined relative to the greatest preceding time value <var>s</var> that is such a multiple, and represents the instant that occurs within the same UTC day as <var>s</var> but follows it by (<var>t</var> - <var>s</var>) milliseconds.</p>
|
||
<p>Time values do not account for UTC leap seconds—there are no time values representing instants within positive leap seconds, and there are time values representing instants removed from the UTC timeline by negative leap seconds. However, the definition of time values nonetheless yields piecewise alignment with UTC, with discontinuities only at leap second boundaries and zero difference outside of leap seconds.</p>
|
||
<p>A Number can exactly represent all <emu-xref href="#integer" id="_ref_10522"><a href="notational-conventions.html#integer">integers</a></emu-xref> from -9,007,199,254,740,992 to 9,007,199,254,740,992 (<emu-xref href="#sec-number.min_safe_integer" id="_ref_640"><a href="numbers-and-dates.html#sec-number.min_safe_integer">21.1.2.8</a></emu-xref> and <emu-xref href="#sec-number.max_safe_integer" id="_ref_641"><a href="numbers-and-dates.html#sec-number.max_safe_integer">21.1.2.6</a></emu-xref>). A time value supports a slightly smaller range of -8,640,000,000,000,000 to 8,640,000,000,000,000 milliseconds. This yields a supported time value range of exactly -100,000,000 days to 100,000,000 days relative to midnight at the beginning of 1 January 1970 UTC.</p>
|
||
<p>The exact moment of midnight at the beginning of 1 January 1970 UTC is represented by the time value <emu-val>+0</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>In the proleptic Gregorian calendar, leap years are precisely those which are both divisible by 4 and either divisible by 400 or not divisible by 100.</p>
|
||
<p>The 400 year cycle of the proleptic Gregorian calendar contains 97 leap years. This yields an average of 365.2425 days per year, which is 31,556,952,000 milliseconds. Therefore, the maximum range a Number could represent exactly with millisecond precision is approximately -285,426 to 285,426 years relative to 1970. The smaller range supported by a time value as specified in this section is approximately -273,790 to 273,790 years relative to 1970.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-time-related-constants">
|
||
<h1><span class="secnum">21.4.1.2</span> Time-related Constants</h1>
|
||
<p>These constants are referenced by algorithms in the following sections.</p>
|
||
<emu-eqn id="eqn-HoursPerDay" aoid="HoursPerDay"><div>HoursPerDay = 24</div></emu-eqn>
|
||
<emu-eqn id="eqn-MinutesPerHour" aoid="MinutesPerHour"><div>MinutesPerHour = 60</div></emu-eqn>
|
||
<emu-eqn id="eqn-SecondsPerMinute" aoid="SecondsPerMinute"><div>SecondsPerMinute = 60</div></emu-eqn>
|
||
<emu-eqn id="eqn-msPerSecond" aoid="msPerSecond"><div>msPerSecond = <emu-val>1000</emu-val><sub>𝔽</sub></div></emu-eqn>
|
||
<emu-eqn id="eqn-msPerMinute" aoid="msPerMinute"><div>msPerMinute = <emu-val>60000</emu-val><sub>𝔽</sub> = <emu-xref aoid="msPerSecond" id="_ref_10523"><a href="numbers-and-dates.html#eqn-msPerSecond">msPerSecond</a></emu-xref> × <emu-xref aoid="𝔽" id="_ref_10524"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="SecondsPerMinute" id="_ref_10525"><a href="numbers-and-dates.html#eqn-SecondsPerMinute">SecondsPerMinute</a></emu-xref>)</div></emu-eqn>
|
||
<emu-eqn id="eqn-msPerHour" aoid="msPerHour"><div>msPerHour = <emu-val>3600000</emu-val><sub>𝔽</sub> = <emu-xref aoid="msPerMinute" id="_ref_10526"><a href="numbers-and-dates.html#eqn-msPerMinute">msPerMinute</a></emu-xref> × <emu-xref aoid="𝔽" id="_ref_10527"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="MinutesPerHour" id="_ref_10528"><a href="numbers-and-dates.html#eqn-MinutesPerHour">MinutesPerHour</a></emu-xref>)</div></emu-eqn>
|
||
<emu-eqn id="eqn-msPerDay" aoid="msPerDay"><div>msPerDay = <emu-val>86400000</emu-val><sub>𝔽</sub> = <emu-xref aoid="msPerHour" id="_ref_10529"><a href="numbers-and-dates.html#eqn-msPerHour">msPerHour</a></emu-xref> × <emu-xref aoid="𝔽" id="_ref_10530"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="HoursPerDay" id="_ref_10531"><a href="numbers-and-dates.html#eqn-HoursPerDay">HoursPerDay</a></emu-xref>)</div></emu-eqn>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-day" type="abstract operation" oldids="eqn-Day,sec-day-number-and-time-within-day" aoid="Day"><span id="sec-day-number-and-time-within-day"></span><span id="eqn-Day"></span>
|
||
<h1><span class="secnum">21.4.1.3</span> Day ( <var>t</var> )</h1>
|
||
<p>The abstract operation Day takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10532"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10533"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10534"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>. It returns the day number of the day in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_10535"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="floor" id="_ref_10536"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10537"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>t</var> / <emu-xref aoid="msPerDay" id="_ref_10538"><a href="numbers-and-dates.html#eqn-msPerDay">msPerDay</a></emu-xref>))).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-timewithinday" type="abstract operation" oldids="eqn-TimeWithinDay" aoid="TimeWithinDay"><span id="eqn-TimeWithinDay"></span>
|
||
<h1><span class="secnum">21.4.1.4</span> TimeWithinDay ( <var>t</var> )</h1>
|
||
<p>The abstract operation TimeWithinDay takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10539"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10540"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10541"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#interval" id="_ref_10542"><a href="notational-conventions.html#interval">interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> (inclusive) to <emu-xref aoid="msPerDay" id="_ref_10543"><a href="numbers-and-dates.html#eqn-msPerDay">msPerDay</a></emu-xref> (exclusive). It returns the number of milliseconds since the start of the day in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_10544"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10545"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>t</var>) <emu-xref aoid="modulo" id="_ref_10546"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> <emu-xref aoid="ℝ" id="_ref_10547"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="msPerDay" id="_ref_10548"><a href="numbers-and-dates.html#eqn-msPerDay">msPerDay</a></emu-xref>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-daysinyear" type="abstract operation" oldids="eqn-DaysInYear,sec-year-number" aoid="DaysInYear"><span id="sec-year-number"></span><span id="eqn-DaysInYear"></span>
|
||
<h1><span class="secnum">21.4.1.5</span> DaysInYear ( <var>y</var> )</h1>
|
||
<p>The abstract operation DaysInYear takes argument <var>y</var> (an <emu-xref href="#integral-number" id="_ref_10549"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>) and returns <emu-val>365</emu-val><sub>𝔽</sub> or <emu-val>366</emu-val><sub>𝔽</sub>. It returns the number of days in year <var>y</var>. Leap years have 366 days; all other years have 365. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>ry</var> be <emu-xref aoid="ℝ" id="_ref_10550"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>y</var>).</li><li>If (<var>ry</var> <emu-xref aoid="modulo" id="_ref_10551"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 400) = 0, return <emu-val>366</emu-val><sub>𝔽</sub>.</li><li>If (<var>ry</var> <emu-xref aoid="modulo" id="_ref_10552"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 100) = 0, return <emu-val>365</emu-val><sub>𝔽</sub>.</li><li>If (<var>ry</var> <emu-xref aoid="modulo" id="_ref_10553"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 4) = 0, return <emu-val>366</emu-val><sub>𝔽</sub>.</li><li>Return <emu-val>365</emu-val><sub>𝔽</sub>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-dayfromyear" type="abstract operation" oldids="eqn-DaysFromYear" aoid="DayFromYear"><span id="eqn-DaysFromYear"></span>
|
||
<h1><span class="secnum">21.4.1.6</span> DayFromYear ( <var>y</var> )</h1>
|
||
<p>The abstract operation DayFromYear takes argument <var>y</var> (an <emu-xref href="#integral-number" id="_ref_10554"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10555"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>. It returns the day number of the first day of year <var>y</var>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>ry</var> be <emu-xref aoid="ℝ" id="_ref_10556"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>y</var>).</li><li declared="numYears1,numYears4,numYears100,numYears400">NOTE: In the following steps, <var>numYears1</var>, <var>numYears4</var>, <var>numYears100</var>, and <var>numYears400</var> represent the number of years divisible by 1, 4, 100, and 400, respectively, that occur between the <emu-xref href="#epoch" id="_ref_10557"><a href="numbers-and-dates.html#epoch">epoch</a></emu-xref> and the start of year <var>y</var>. The number is negative if <var>y</var> is before the <emu-xref href="#epoch" id="_ref_10558"><a href="numbers-and-dates.html#epoch">epoch</a></emu-xref>.</li><li>Let <var>numYears1</var> be (<var>ry</var> - 1970).</li><li>Let <var>numYears4</var> be <emu-xref aoid="floor" id="_ref_10559"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>((<var>ry</var> - 1969) / 4).</li><li>Let <var>numYears100</var> be <emu-xref aoid="floor" id="_ref_10560"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>((<var>ry</var> - 1901) / 100).</li><li>Let <var>numYears400</var> be <emu-xref aoid="floor" id="_ref_10561"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>((<var>ry</var> - 1601) / 400).</li><li>Return <emu-xref aoid="𝔽" id="_ref_10562"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(365 × <var>numYears1</var> + <var>numYears4</var> - <var>numYears100</var> + <var>numYears400</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-timefromyear" type="abstract operation" oldids="eqn-TimeFromYear" aoid="TimeFromYear"><span id="eqn-TimeFromYear"></span>
|
||
<h1><span class="secnum">21.4.1.7</span> TimeFromYear ( <var>y</var> )</h1>
|
||
<p>The abstract operation TimeFromYear takes argument <var>y</var> (an <emu-xref href="#integral-number" id="_ref_10563"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>) and returns a <emu-xref href="#sec-time-values-and-time-range" id="_ref_10564"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>. It returns the <emu-xref href="#sec-time-values-and-time-range" id="_ref_10565"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> of the start of year <var>y</var>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="msPerDay" id="_ref_10566"><a href="numbers-and-dates.html#eqn-msPerDay">msPerDay</a></emu-xref> × <emu-xref aoid="DayFromYear" id="_ref_10567"><a href="numbers-and-dates.html#sec-dayfromyear">DayFromYear</a></emu-xref>(<var>y</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-yearfromtime" type="abstract operation" oldids="eqn-YearFromTime" aoid="YearFromTime"><span id="eqn-YearFromTime"></span>
|
||
<h1><span class="secnum">21.4.1.8</span> YearFromTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation YearFromTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10568"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10569"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10570"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>. It returns the year in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li declared="y">Return the largest <emu-xref href="#integral-number" id="_ref_10571"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> <var>y</var> (closest to +∞) such that <emu-xref aoid="TimeFromYear" id="_ref_10572"><a href="numbers-and-dates.html#sec-timefromyear">TimeFromYear</a></emu-xref>(<var>y</var>) ≤ <var>t</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-daywithinyear" type="abstract operation" oldids="eqn-DayWithinYear" aoid="DayWithinYear"><span id="eqn-DayWithinYear"></span>
|
||
<h1><span class="secnum">21.4.1.9</span> DayWithinYear ( <var>t</var> )</h1>
|
||
<p>The abstract operation DayWithinYear takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10573"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10574"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10575"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10576"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-val>365</emu-val><sub>𝔽</sub>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="Day" id="_ref_10577"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>) - <emu-xref aoid="DayFromYear" id="_ref_10578"><a href="numbers-and-dates.html#sec-dayfromyear">DayFromYear</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_10579"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-inleapyear" type="abstract operation" oldids="eqn-InLeapYear" aoid="InLeapYear"><span id="eqn-InLeapYear"></span>
|
||
<h1><span class="secnum">21.4.1.10</span> InLeapYear ( <var>t</var> )</h1>
|
||
<p>The abstract operation InLeapYear takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10580"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10581"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns <emu-val>+0</emu-val><sub>𝔽</sub> or <emu-val>1</emu-val><sub>𝔽</sub>. It returns <emu-val>1</emu-val><sub>𝔽</sub> if <var>t</var> is within a leap year and <emu-val>+0</emu-val><sub>𝔽</sub> otherwise. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <emu-xref aoid="DaysInYear" id="_ref_10582"><a href="numbers-and-dates.html#sec-daysinyear">DaysInYear</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_10583"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>)) is <emu-val>366</emu-val><sub>𝔽</sub>, return <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>Return <emu-val>+0</emu-val><sub>𝔽</sub>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-monthfromtime" type="abstract operation" oldids="eqn-MonthFromTime,sec-month-number" aoid="MonthFromTime"><span id="sec-month-number"></span><span id="eqn-MonthFromTime"></span>
|
||
<h1><span class="secnum">21.4.1.11</span> MonthFromTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation MonthFromTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10584"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10585"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10586"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10587"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-val>11</emu-val><sub>𝔽</sub>. It returns a Number identifying the month in which <var>t</var> falls. A month value of <emu-val>+0</emu-val><sub>𝔽</sub> specifies January; <emu-val>1</emu-val><sub>𝔽</sub> specifies February; <emu-val>2</emu-val><sub>𝔽</sub> specifies March; <emu-val>3</emu-val><sub>𝔽</sub> specifies April; <emu-val>4</emu-val><sub>𝔽</sub> specifies May; <emu-val>5</emu-val><sub>𝔽</sub> specifies June; <emu-val>6</emu-val><sub>𝔽</sub> specifies July; <emu-val>7</emu-val><sub>𝔽</sub> specifies August; <emu-val>8</emu-val><sub>𝔽</sub> specifies September; <emu-val>9</emu-val><sub>𝔽</sub> specifies October; <emu-val>10</emu-val><sub>𝔽</sub> specifies November; and <emu-val>11</emu-val><sub>𝔽</sub> specifies December. Note that <emu-eqn class="inline">MonthFromTime(<emu-val>+0</emu-val><sub>𝔽</sub>) = <emu-val>+0</emu-val><sub>𝔽</sub></emu-eqn>, corresponding to Thursday, 1 January 1970. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>inLeapYear</var> be <emu-xref aoid="InLeapYear" id="_ref_10588"><a href="numbers-and-dates.html#sec-inleapyear">InLeapYear</a></emu-xref>(<var>t</var>).</li><li>Let <var>dayWithinYear</var> be <emu-xref aoid="DayWithinYear" id="_ref_10589"><a href="numbers-and-dates.html#sec-daywithinyear">DayWithinYear</a></emu-xref>(<var>t</var>).</li><li>If <var>dayWithinYear</var> < <emu-val>31</emu-val><sub>𝔽</sub>, return <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>59</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>90</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>2</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>120</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>3</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>151</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>4</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>181</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>5</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>212</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>6</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>243</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>7</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>273</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>8</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>304</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>9</emu-val><sub>𝔽</sub>.</li><li>If <var>dayWithinYear</var> < <emu-val>334</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>, return <emu-val>10</emu-val><sub>𝔽</sub>.</li><li><emu-xref href="#assert" id="_ref_10590"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>dayWithinYear</var> < <emu-val>365</emu-val><sub>𝔽</sub> + <var>inLeapYear</var>.</li><li>Return <emu-val>11</emu-val><sub>𝔽</sub>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-datefromtime" type="abstract operation" oldids="sec-date-number" aoid="DateFromTime"><span id="sec-date-number"></span>
|
||
<h1><span class="secnum">21.4.1.12</span> DateFromTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation DateFromTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10591"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10592"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10593"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10594"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>1</emu-val><sub>𝔽</sub> to <emu-val>31</emu-val><sub>𝔽</sub>. It returns the day of the month in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>inLeapYear</var> be <emu-xref aoid="InLeapYear" id="_ref_10595"><a href="numbers-and-dates.html#sec-inleapyear">InLeapYear</a></emu-xref>(<var>t</var>).</li><li>Let <var>dayWithinYear</var> be <emu-xref aoid="DayWithinYear" id="_ref_10596"><a href="numbers-and-dates.html#sec-daywithinyear">DayWithinYear</a></emu-xref>(<var>t</var>).</li><li>Let <var>month</var> be <emu-xref aoid="MonthFromTime" id="_ref_10597"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>month</var> is <emu-val>+0</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> + <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>If <var>month</var> is <emu-val>1</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>30</emu-val><sub>𝔽</sub>.</li><li>If <var>month</var> is <emu-val>2</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>58</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>3</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>89</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>4</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>119</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>5</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>150</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>6</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>180</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>7</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>211</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>8</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>242</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>9</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>272</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li>If <var>month</var> is <emu-val>10</emu-val><sub>𝔽</sub>, return <var>dayWithinYear</var> - <emu-val>303</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li><li><emu-xref href="#assert" id="_ref_10598"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>month</var> is <emu-val>11</emu-val><sub>𝔽</sub>.</li><li>Return <var>dayWithinYear</var> - <emu-val>333</emu-val><sub>𝔽</sub> - <var>inLeapYear</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-weekday" type="abstract operation" oldids="sec-week-day" aoid="WeekDay"><span id="sec-week-day"></span>
|
||
<h1><span class="secnum">21.4.1.13</span> WeekDay ( <var>t</var> )</h1>
|
||
<p>The abstract operation WeekDay takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10599"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10600"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10601"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10602"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-val>6</emu-val><sub>𝔽</sub>. It returns a Number identifying the day of the week in which <var>t</var> falls. A weekday value of <emu-val>+0</emu-val><sub>𝔽</sub> specifies Sunday; <emu-val>1</emu-val><sub>𝔽</sub> specifies Monday; <emu-val>2</emu-val><sub>𝔽</sub> specifies Tuesday; <emu-val>3</emu-val><sub>𝔽</sub> specifies Wednesday; <emu-val>4</emu-val><sub>𝔽</sub> specifies Thursday; <emu-val>5</emu-val><sub>𝔽</sub> specifies Friday; and <emu-val>6</emu-val><sub>𝔽</sub> specifies Saturday. Note that <emu-eqn class="inline">WeekDay(<emu-val>+0</emu-val><sub>𝔽</sub>) = <emu-val>4</emu-val><sub>𝔽</sub></emu-eqn>, corresponding to Thursday, 1 January 1970. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_10603"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10604"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="Day" id="_ref_10605"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>) + <emu-val>4</emu-val><sub>𝔽</sub>) <emu-xref aoid="modulo" id="_ref_10606"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 7).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-hourfromtime" type="abstract operation" oldids="eqn-HourFromTime,sec-hours-minutes-second-and-milliseconds" aoid="HourFromTime"><span id="sec-hours-minutes-second-and-milliseconds"></span><span id="eqn-HourFromTime"></span>
|
||
<h1><span class="secnum">21.4.1.14</span> HourFromTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation HourFromTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10607"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10608"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10609"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10610"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-val>23</emu-val><sub>𝔽</sub>. It returns the hour of the day in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_10611"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="floor" id="_ref_10612"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10613"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>t</var> / <emu-xref aoid="msPerHour" id="_ref_10614"><a href="numbers-and-dates.html#eqn-msPerHour">msPerHour</a></emu-xref>)) <emu-xref aoid="modulo" id="_ref_10615"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> <emu-xref aoid="HoursPerDay" id="_ref_10616"><a href="numbers-and-dates.html#eqn-HoursPerDay">HoursPerDay</a></emu-xref>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-minfromtime" type="abstract operation" oldids="eqn-MinFromTime" aoid="MinFromTime"><span id="eqn-MinFromTime"></span>
|
||
<h1><span class="secnum">21.4.1.15</span> MinFromTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation MinFromTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10617"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10618"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10619"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10620"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-val>59</emu-val><sub>𝔽</sub>. It returns the minute of the hour in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_10621"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="floor" id="_ref_10622"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10623"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>t</var> / <emu-xref aoid="msPerMinute" id="_ref_10624"><a href="numbers-and-dates.html#eqn-msPerMinute">msPerMinute</a></emu-xref>)) <emu-xref aoid="modulo" id="_ref_10625"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> <emu-xref aoid="MinutesPerHour" id="_ref_10626"><a href="numbers-and-dates.html#eqn-MinutesPerHour">MinutesPerHour</a></emu-xref>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-secfromtime" type="abstract operation" oldids="eqn-SecFromTime" aoid="SecFromTime"><span id="eqn-SecFromTime"></span>
|
||
<h1><span class="secnum">21.4.1.16</span> SecFromTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation SecFromTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10627"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10628"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10629"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10630"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-val>59</emu-val><sub>𝔽</sub>. It returns the second of the minute in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_10631"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="floor" id="_ref_10632"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10633"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>t</var> / <emu-xref aoid="msPerSecond" id="_ref_10634"><a href="numbers-and-dates.html#eqn-msPerSecond">msPerSecond</a></emu-xref>)) <emu-xref aoid="modulo" id="_ref_10635"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> <emu-xref aoid="SecondsPerMinute" id="_ref_10636"><a href="numbers-and-dates.html#eqn-SecondsPerMinute">SecondsPerMinute</a></emu-xref>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-msfromtime" type="abstract operation" oldids="eqn-msFromTime" aoid="msFromTime"><span id="eqn-msFromTime"></span>
|
||
<h1><span class="secnum">21.4.1.17</span> msFromTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation msFromTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10637"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10638"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10639"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10640"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from <emu-val>+0</emu-val><sub>𝔽</sub> to <emu-val>999</emu-val><sub>𝔽</sub>. It returns the millisecond of the second in which <var>t</var> falls. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Return <emu-xref aoid="𝔽" id="_ref_10641"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10642"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>t</var>) <emu-xref aoid="modulo" id="_ref_10643"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> <emu-xref aoid="ℝ" id="_ref_10644"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="msPerSecond" id="_ref_10645"><a href="numbers-and-dates.html#eqn-msPerSecond">msPerSecond</a></emu-xref>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-getutcepochnanoseconds" type="abstract operation" aoid="GetUTCEpochNanoseconds">
|
||
<h1><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> )</h1>
|
||
<p>The abstract operation GetUTCEpochNanoseconds takes arguments <var>year</var> (an <emu-xref href="#integer" id="_ref_10646"><a href="notational-conventions.html#integer">integer</a></emu-xref>), <var>month</var> (an <emu-xref href="#integer" id="_ref_10647"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10648"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 1 to 12), <var>day</var> (an <emu-xref href="#integer" id="_ref_10649"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10650"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 1 to 31), <var>hour</var> (an <emu-xref href="#integer" id="_ref_10651"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10652"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 23), <var>minute</var> (an <emu-xref href="#integer" id="_ref_10653"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10654"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 59), <var>second</var> (an <emu-xref href="#integer" id="_ref_10655"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10656"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 59), <var>millisecond</var> (an <emu-xref href="#integer" id="_ref_10657"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10658"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 999), <var>microsecond</var> (an <emu-xref href="#integer" id="_ref_10659"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10660"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 999), and <var>nanosecond</var> (an <emu-xref href="#integer" id="_ref_10661"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10662"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 999) and returns a BigInt. The returned value represents a number of nanoseconds since the <emu-xref href="#epoch" id="_ref_10663"><a href="numbers-and-dates.html#epoch">epoch</a></emu-xref> that corresponds to the given ISO 8601 calendar date and wall-clock time in UTC. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>date</var> be <emu-xref aoid="MakeDay" id="_ref_10664"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<emu-xref aoid="𝔽" id="_ref_10665"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>year</var>), <emu-xref aoid="𝔽" id="_ref_10666"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>month</var> - 1), <emu-xref aoid="𝔽" id="_ref_10667"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>day</var>)).</li><li>Let <var>time</var> be <emu-xref aoid="MakeTime" id="_ref_10668"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<emu-xref aoid="𝔽" id="_ref_10669"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>hour</var>), <emu-xref aoid="𝔽" id="_ref_10670"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>minute</var>), <emu-xref aoid="𝔽" id="_ref_10671"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>second</var>), <emu-xref aoid="𝔽" id="_ref_10672"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>millisecond</var>)).</li><li>Let <var>ms</var> be <emu-xref aoid="MakeDate" id="_ref_10673"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<var>date</var>, <var>time</var>).</li><li><emu-xref href="#assert" id="_ref_10674"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>ms</var> is an <emu-xref href="#integral-number" id="_ref_10675"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>.</li><li>Return <emu-xref aoid="ℤ" id="_ref_10676"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10677"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>ms</var>) × 10<sup>6</sup> + <var>microsecond</var> × 10<sup>3</sup> + <var>nanosecond</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-time-zone-identifiers">
|
||
<h1><span class="secnum">21.4.1.19</span> Time Zone Identifiers</h1>
|
||
|
||
<p>
|
||
Time zones in ECMAScript are represented by <dfn variants="time zone identifier" tabindex="-1">time zone identifiers</dfn>, which are Strings composed entirely of code units in the <emu-xref href="#inclusive-interval" id="_ref_10678"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0x0000 to 0x007F.
|
||
Time zones supported by an ECMAScript implementation may be <dfn variants="available named time zone" tabindex="-1">available named time zones</dfn>, represented by the <var class="field">[[Identifier]]</var> field of the <emu-xref href="#sec-time-zone-identifier-record" id="_ref_10679"><a href="numbers-and-dates.html#sec-time-zone-identifier-record">Time Zone Identifier Records</a></emu-xref> returned by <emu-xref aoid="AvailableNamedTimeZoneIdentifiers" id="_ref_10680"><a href="numbers-and-dates.html#sec-availablenamedtimezoneidentifiers">AvailableNamedTimeZoneIdentifiers</a></emu-xref>, or <dfn variants="offset time zone" tabindex="-1">offset time zones</dfn>, represented by Strings for which <emu-xref aoid="IsTimeZoneOffsetString" id="_ref_10681"><a href="numbers-and-dates.html#sec-istimezoneoffsetstring">IsTimeZoneOffsetString</a></emu-xref> returns <emu-val>true</emu-val>.
|
||
</p>
|
||
<p>
|
||
A <dfn variants="primary time zone identifiers" tabindex="-1">primary time zone identifier</dfn> is the preferred identifier for an available named time zone.
|
||
A <dfn variants="non-primary time zone identifiers" tabindex="-1">non-primary time zone identifier</dfn> is an identifier for an available named time zone that is not a primary time zone identifier.
|
||
An <dfn variants="available named time zone identifiers" tabindex="-1">available named time zone identifier</dfn> is either a primary time zone identifier or a non-primary time zone identifier.
|
||
Each available named time zone identifier is associated with exactly one available named time zone.
|
||
Each available named time zone is associated with exactly one primary time zone identifier and zero or more non-primary time zone identifiers.
|
||
</p>
|
||
<p>
|
||
ECMAScript implementations must support an available named time zone with the identifier <emu-val>"UTC"</emu-val>, which must be the primary time zone identifier for the UTC time zone.
|
||
In addition, implementations may support any number of other available named time zones.
|
||
</p>
|
||
<p>
|
||
Implementations that follow the requirements for time zones as described in the ECMA-402 Internationalization API specification are called <dfn tabindex="-1">time zone aware</dfn>.
|
||
Time zone aware implementations must support available named time zones corresponding to the Zone and <emu-xref aoid="Link" id="_ref_10682"><a href="ecmascript-language-scripts-and-modules.html#abstract-link">Link</a></emu-xref> names of the IANA Time Zone Database, and only such names.
|
||
In time zone aware implementations, a primary time zone identifier is a Zone name, and a non-primary time zone identifier is a <emu-xref aoid="Link" id="_ref_10683"><a href="ecmascript-language-scripts-and-modules.html#abstract-link">Link</a></emu-xref> name, respectively, in the IANA Time Zone Database except as specifically overridden by <emu-xref aoid="AvailableNamedTimeZoneIdentifiers" id="_ref_10684"><a href="numbers-and-dates.html#sec-availablenamedtimezoneidentifiers">AvailableNamedTimeZoneIdentifiers</a></emu-xref> as specified in the ECMA-402 specification.
|
||
Implementations that do not support the entire IANA Time Zone Database are still recommended to use IANA Time Zone Database names as identifiers to represent time zones.
|
||
</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-getnamedtimezoneepochnanoseconds" type="implementation-defined abstract operation" aoid="GetNamedTimeZoneEpochNanoseconds">
|
||
<h1><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> )</h1>
|
||
<p>The <emu-xref href="#implementation-defined" id="_ref_10685"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> abstract operation GetNamedTimeZoneEpochNanoseconds takes arguments <var>timeZoneIdentifier</var> (a String), <var>year</var> (an <emu-xref href="#integer" id="_ref_10686"><a href="notational-conventions.html#integer">integer</a></emu-xref>), <var>month</var> (an <emu-xref href="#integer" id="_ref_10687"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10688"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 1 to 12), <var>day</var> (an <emu-xref href="#integer" id="_ref_10689"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10690"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 1 to 31), <var>hour</var> (an <emu-xref href="#integer" id="_ref_10691"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10692"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 23), <var>minute</var> (an <emu-xref href="#integer" id="_ref_10693"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10694"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 59), <var>second</var> (an <emu-xref href="#integer" id="_ref_10695"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10696"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 59), <var>millisecond</var> (an <emu-xref href="#integer" id="_ref_10697"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10698"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 999), <var>microsecond</var> (an <emu-xref href="#integer" id="_ref_10699"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10700"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 999), and <var>nanosecond</var> (an <emu-xref href="#integer" id="_ref_10701"><a href="notational-conventions.html#integer">integer</a></emu-xref> in the <emu-xref href="#inclusive-interval" id="_ref_10702"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 999) and returns a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10703"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> of BigInts.
|
||
Each value in the returned <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10704"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> represents a number of nanoseconds since the <emu-xref href="#epoch" id="_ref_10705"><a href="numbers-and-dates.html#epoch">epoch</a></emu-xref> that corresponds to the given ISO 8601 calendar date and wall-clock time in the named time zone identified by <var>timeZoneIdentifier</var>.
|
||
</p>
|
||
<p>
|
||
When the input represents a local time occurring more than once because of a negative time zone transition (e.g. when daylight saving time ends or the time zone offset is decreased due to a time zone rule change), the returned <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10706"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> will have more than one element and will be sorted by ascending numerical value.
|
||
When the input represents a local time skipped because of a positive time zone transition (e.g. when daylight saving time begins or the time zone offset is increased due to a time zone rule change), the returned <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10707"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> will be empty.
|
||
Otherwise, the returned <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10708"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> will have one element.
|
||
</p>
|
||
<p>The default implementation of GetNamedTimeZoneEpochNanoseconds, to be used for ECMAScript implementations that do not include local political rules for any time zones, performs the following steps when called:</p>
|
||
<emu-alg><ol><li><emu-xref href="#assert" id="_ref_10709"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>timeZoneIdentifier</var> is <emu-val>"UTC"</emu-val>.</li><li>Let <var>epochNanoseconds</var> be <emu-xref aoid="GetUTCEpochNanoseconds" id="_ref_10710"><a href="numbers-and-dates.html#sec-getutcepochnanoseconds">GetUTCEpochNanoseconds</a></emu-xref>(<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>).</li><li>Return « <var>epochNanoseconds</var> ».</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>It is required for <emu-xref href="#sec-time-zone-identifiers" id="_ref_10711"><a href="numbers-and-dates.html#sec-time-zone-identifiers">time zone aware</a></emu-xref> implementations (and recommended for all others) to use the time zone information of the IANA Time Zone Database <a href="https://www.iana.org/time-zones/">https://www.iana.org/time-zones/</a>.</p>
|
||
<p>1:30 AM on 5 November 2017 in America/New_York is repeated twice, so GetNamedTimeZoneEpochNanoseconds(<emu-val>"America/New_York"</emu-val>, 2017, 11, 5, 1, 30, 0, 0, 0, 0) would return a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10712"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> of length 2 in which the first element represents 05:30 UTC (corresponding with 01:30 US Eastern Daylight Time at UTC offset -04:00) and the second element represents 06:30 UTC (corresponding with 01:30 US Eastern Standard Time at UTC offset -05:00).</p>
|
||
<p>2:30 AM on 12 March 2017 in America/New_York does not exist, so GetNamedTimeZoneEpochNanoseconds(<emu-val>"America/New_York"</emu-val>, 2017, 3, 12, 2, 30, 0, 0, 0, 0) would return an empty <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10713"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-getnamedtimezoneoffsetnanoseconds" oldids="sec-local-time-zone-adjustment" type="implementation-defined abstract operation" aoid="GetNamedTimeZoneOffsetNanoseconds"><span id="sec-local-time-zone-adjustment"></span>
|
||
<h1><span class="secnum">21.4.1.21</span> GetNamedTimeZoneOffsetNanoseconds ( <var>timeZoneIdentifier</var>, <var>epochNanoseconds</var> )</h1>
|
||
<p>The <emu-xref href="#implementation-defined" id="_ref_10714"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> abstract operation GetNamedTimeZoneOffsetNanoseconds takes arguments <var>timeZoneIdentifier</var> (a String) and <var>epochNanoseconds</var> (a BigInt) and returns an <emu-xref href="#integer" id="_ref_10715"><a href="notational-conventions.html#integer">integer</a></emu-xref>.</p>
|
||
<p>The returned <emu-xref href="#integer" id="_ref_10716"><a href="notational-conventions.html#integer">integer</a></emu-xref> represents the offset from UTC of the named time zone identified by <var>timeZoneIdentifier</var>, at the instant corresponding with <var>epochNanoseconds</var> relative to the <emu-xref href="#epoch" id="_ref_10717"><a href="numbers-and-dates.html#epoch">epoch</a></emu-xref>, both in nanoseconds.</p>
|
||
<p>The default implementation of GetNamedTimeZoneOffsetNanoseconds, to be used for ECMAScript implementations that do not include local political rules for any time zones, performs the following steps when called:</p>
|
||
<emu-alg><ol><li><emu-xref href="#assert" id="_ref_10718"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>timeZoneIdentifier</var> is <emu-val>"UTC"</emu-val>.</li><li>Return 0.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>Time zone offset values may be positive or negative.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-time-zone-identifier-record">
|
||
<h1><span class="secnum">21.4.1.22</span> Time Zone Identifier Record</h1>
|
||
<p>A <dfn variants="Time Zone Identifier Records" tabindex="-1">Time Zone Identifier Record</dfn> is a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10719"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">Record</a></emu-xref> used to describe an <emu-xref href="#sec-time-zone-identifiers" id="_ref_10720"><a href="numbers-and-dates.html#sec-time-zone-identifiers">available named time zone identifier</a></emu-xref> and its corresponding <emu-xref href="#sec-time-zone-identifiers" id="_ref_10721"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref>.</p>
|
||
<p>Time Zone Identifier Records have the fields listed in <emu-xref href="#table-time-zone-identifier-record-fields" id="_ref_642"><a href="numbers-and-dates.html#table-time-zone-identifier-record-fields">Table 59</a></emu-xref>.</p>
|
||
<emu-table id="table-time-zone-identifier-record-fields" caption="Time Zone Identifier Record Fields"><figure><figcaption>Table 59: <emu-xref href="#sec-time-zone-identifier-record" id="_ref_10722"><a href="numbers-and-dates.html#sec-time-zone-identifier-record">Time Zone Identifier Record</a></emu-xref> Fields</figcaption>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field Name</th>
|
||
<th>Value</th>
|
||
<th>Meaning</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr>
|
||
<td><var class="field">[[Identifier]]</var></td>
|
||
<td>a String</td>
|
||
<td>An <emu-xref href="#sec-time-zone-identifiers" id="_ref_10723"><a href="numbers-and-dates.html#sec-time-zone-identifiers">available named time zone identifier</a></emu-xref> that is supported by the implementation.</td>
|
||
</tr>
|
||
<tr>
|
||
<td><var class="field">[[PrimaryIdentifier]]</var></td>
|
||
<td>a String</td>
|
||
<td>The <emu-xref href="#sec-time-zone-identifiers" id="_ref_10724"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref> that <var class="field">[[Identifier]]</var> resolves to.</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure></emu-table>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var class="field">[[Identifier]]</var> is a <emu-xref href="#sec-time-zone-identifiers" id="_ref_10725"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref>, then <var class="field">[[Identifier]]</var> is <var class="field">[[PrimaryIdentifier]]</var>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-availablenamedtimezoneidentifiers" type="implementation-defined abstract operation" aoid="AvailableNamedTimeZoneIdentifiers">
|
||
<h1><span class="secnum">21.4.1.23</span> AvailableNamedTimeZoneIdentifiers ( )</h1>
|
||
<p>The <emu-xref href="#implementation-defined" id="_ref_10726"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> abstract operation AvailableNamedTimeZoneIdentifiers takes no arguments and returns a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10727"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> of <emu-xref href="#sec-time-zone-identifier-record" id="_ref_10728"><a href="numbers-and-dates.html#sec-time-zone-identifier-record">Time Zone Identifier Records</a></emu-xref>.
|
||
Its result describes all <emu-xref href="#sec-time-zone-identifiers" id="_ref_10729"><a href="numbers-and-dates.html#sec-time-zone-identifiers">available named time zone identifiers</a></emu-xref> in this implementation, as well as the <emu-xref href="#sec-time-zone-identifiers" id="_ref_10730"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref> corresponding to each <emu-xref href="#sec-time-zone-identifiers" id="_ref_10731"><a href="numbers-and-dates.html#sec-time-zone-identifiers">available named time zone identifier</a></emu-xref>.
|
||
The <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10732"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> is ordered according to the <var class="field">[[Identifier]]</var> field of each <emu-xref href="#sec-time-zone-identifier-record" id="_ref_10733"><a href="numbers-and-dates.html#sec-time-zone-identifier-record">Time Zone Identifier Record</a></emu-xref>.
|
||
</p>
|
||
<p>
|
||
<emu-xref href="#sec-time-zone-identifiers" id="_ref_10734"><a href="numbers-and-dates.html#sec-time-zone-identifiers">Time zone aware</a></emu-xref> implementations, including all implementations that implement the ECMA-402 Internationalization API, must implement the AvailableNamedTimeZoneIdentifiers abstract operation as specified in the ECMA-402 specification.
|
||
For implementations that are not <emu-xref href="#sec-time-zone-identifiers" id="_ref_10735"><a href="numbers-and-dates.html#sec-time-zone-identifiers">time zone aware</a></emu-xref>, AvailableNamedTimeZoneIdentifiers performs the following steps when called:
|
||
</p>
|
||
<emu-alg><ol><li>If the implementation does not include local political rules for any time zones, then<ol><li>Return « the <emu-xref href="#sec-time-zone-identifier-record" id="_ref_10736"><a href="numbers-and-dates.html#sec-time-zone-identifier-record">Time Zone Identifier Record</a></emu-xref> { <var class="field">[[Identifier]]</var>: <emu-val>"UTC"</emu-val>, <var class="field">[[PrimaryIdentifier]]</var>: <emu-val>"UTC"</emu-val> } ».</li></ol></li><li>Let <var>identifiers</var> be the <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10737"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> of unique <emu-xref href="#sec-time-zone-identifiers" id="_ref_10738"><a href="numbers-and-dates.html#sec-time-zone-identifiers">available named time zone identifiers</a></emu-xref>, sorted according to <emu-xref href="#lexicographic-code-unit-order" id="_ref_10739"><a href="ecmascript-data-types-and-values.html#lexicographic-code-unit-order">lexicographic code unit order</a></emu-xref>.</li><li>Let <var>result</var> be a new empty <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10740"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref>.</li><li>For each element <var>identifier</var> of <var>identifiers</var>, do<ol><li>Let <var>primary</var> be <var>identifier</var>.</li><li>If <var>identifier</var> is a <emu-xref href="#sec-time-zone-identifiers" id="_ref_10741"><a href="numbers-and-dates.html#sec-time-zone-identifiers">non-primary time zone identifier</a></emu-xref> in this implementation and <var>identifier</var> is not <emu-val>"UTC"</emu-val>, then<ol><li>Set <var>primary</var> to the <emu-xref href="#sec-time-zone-identifiers" id="_ref_10742"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref> associated with <var>identifier</var>.</li><li>NOTE: An implementation may need to resolve <var>identifier</var> iteratively to obtain the <emu-xref href="#sec-time-zone-identifiers" id="_ref_10743"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref>.</li></ol></li><li>Let <var>record</var> be the <emu-xref href="#sec-time-zone-identifier-record" id="_ref_10744"><a href="numbers-and-dates.html#sec-time-zone-identifier-record">Time Zone Identifier Record</a></emu-xref> { <var class="field">[[Identifier]]</var>: <var>identifier</var>, <var class="field">[[PrimaryIdentifier]]</var>: <var>primary</var> }.</li><li>Append <var>record</var> to <var>result</var>.</li></ol></li><li><emu-xref href="#assert" id="_ref_10745"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>result</var> contains a <emu-xref href="#sec-time-zone-identifier-record" id="_ref_10746"><a href="numbers-and-dates.html#sec-time-zone-identifier-record">Time Zone Identifier Record</a></emu-xref> <var>r</var> such that <var>r</var>.<var class="field">[[Identifier]]</var> is <emu-val>"UTC"</emu-val> and <var>r</var>.<var class="field">[[PrimaryIdentifier]]</var> is <emu-val>"UTC"</emu-val>.</li><li>Return <var>result</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-systemtimezoneidentifier" oldids="sec-defaulttimezone" type="implementation-defined abstract operation" aoid="SystemTimeZoneIdentifier"><span id="sec-defaulttimezone"></span>
|
||
<h1><span class="secnum">21.4.1.24</span> SystemTimeZoneIdentifier ( )</h1>
|
||
<p>The <emu-xref href="#implementation-defined" id="_ref_10747"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> abstract operation SystemTimeZoneIdentifier takes no arguments and returns a String.
|
||
It returns a String representing the <emu-xref href="#host-environment" id="_ref_10748"><a href="overview.html#host-environment">host environment</a></emu-xref>'s current time zone, which is either a String representing a UTC offset for which <emu-xref aoid="IsTimeZoneOffsetString" id="_ref_10749"><a href="numbers-and-dates.html#sec-istimezoneoffsetstring">IsTimeZoneOffsetString</a></emu-xref> returns <emu-val>true</emu-val>, or a <emu-xref href="#sec-time-zone-identifiers" id="_ref_10750"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref>.
|
||
It performs the following steps when called:</p>
|
||
|
||
<emu-alg><ol><li>If the implementation only supports the UTC time zone, return <emu-val>"UTC"</emu-val>.</li><li>Let <var>systemTimeZoneString</var> be the String representing the <emu-xref href="#host-environment" id="_ref_10751"><a href="overview.html#host-environment">host environment</a></emu-xref>'s current time zone, either a <emu-xref href="#sec-time-zone-identifiers" id="_ref_10752"><a href="numbers-and-dates.html#sec-time-zone-identifiers">primary time zone identifier</a></emu-xref> or an <emu-xref href="#sec-time-zone-identifiers" id="_ref_10753"><a href="numbers-and-dates.html#sec-time-zone-identifiers">offset time zone</a></emu-xref> identifier.</li><li>Return <var>systemTimeZoneString</var>.</li></ol></emu-alg>
|
||
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>
|
||
To ensure the level of functionality that implementations commonly provide in the methods of the Date object, it is recommended that SystemTimeZoneIdentifier return an IANA time zone name corresponding to the <emu-xref href="#host-environment" id="_ref_10754"><a href="overview.html#host-environment">host environment</a></emu-xref>'s time zone setting, if such a thing exists.
|
||
<emu-xref aoid="GetNamedTimeZoneEpochNanoseconds" id="_ref_10755"><a href="numbers-and-dates.html#sec-getnamedtimezoneepochnanoseconds">GetNamedTimeZoneEpochNanoseconds</a></emu-xref> and <emu-xref aoid="GetNamedTimeZoneOffsetNanoseconds" id="_ref_10756"><a href="numbers-and-dates.html#sec-getnamedtimezoneoffsetnanoseconds">GetNamedTimeZoneOffsetNanoseconds</a></emu-xref> must reflect the local political rules for standard time and daylight saving time in that time zone, if such rules exist.
|
||
</p>
|
||
<p>For example, if the <emu-xref href="#host-environment" id="_ref_10757"><a href="overview.html#host-environment">host environment</a></emu-xref> is a browser on a system where the user has chosen US Eastern Time as their time zone, SystemTimeZoneIdentifier returns <emu-val>"America/New_York"</emu-val>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-localtime" type="abstract operation" aoid="LocalTime">
|
||
<h1><span class="secnum">21.4.1.25</span> LocalTime ( <var>t</var> )</h1>
|
||
<p>The abstract operation LocalTime takes argument <var>t</var> (a <emu-xref href="#finite" id="_ref_10758"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10759"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>) and returns an <emu-xref href="#integral-number" id="_ref_10760"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>.
|
||
It converts <var>t</var> from UTC to local time.
|
||
The local political rules for standard time and daylight saving time in effect at <var>t</var> should be used to determine the result in the way specified in this section.
|
||
It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>systemTimeZoneIdentifier</var> be <emu-xref aoid="SystemTimeZoneIdentifier" id="_ref_10761"><a href="numbers-and-dates.html#sec-systemtimezoneidentifier">SystemTimeZoneIdentifier</a></emu-xref>().</li><li>If <emu-xref aoid="IsTimeZoneOffsetString" id="_ref_10762"><a href="numbers-and-dates.html#sec-istimezoneoffsetstring">IsTimeZoneOffsetString</a></emu-xref>(<var>systemTimeZoneIdentifier</var>) is <emu-val>true</emu-val>, then<ol><li>Let <var>offsetNs</var> be <emu-xref aoid="ParseTimeZoneOffsetString" id="_ref_10763"><a href="numbers-and-dates.html#sec-parsetimezoneoffsetstring">ParseTimeZoneOffsetString</a></emu-xref>(<var>systemTimeZoneIdentifier</var>).</li></ol></li><li>Else,<ol><li>Let <var>offsetNs</var> be <emu-xref aoid="GetNamedTimeZoneOffsetNanoseconds" id="_ref_10764"><a href="numbers-and-dates.html#sec-getnamedtimezoneoffsetnanoseconds">GetNamedTimeZoneOffsetNanoseconds</a></emu-xref>(<var>systemTimeZoneIdentifier</var>, <emu-xref aoid="ℤ" id="_ref_10765"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10766"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>t</var>) × 10<sup>6</sup>)).</li></ol></li><li>Let <var>offsetMs</var> be <emu-xref aoid="truncate" id="_ref_10767"><a href="notational-conventions.html#eqn-truncate">truncate</a></emu-xref>(<var>offsetNs</var> / 10<sup>6</sup>).</li><li>Return <var>t</var> + <emu-xref aoid="𝔽" id="_ref_10768"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>offsetMs</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>If political rules for the local time <var>t</var> are not available within the implementation, the result is <var>t</var> because <emu-xref aoid="SystemTimeZoneIdentifier" id="_ref_10769"><a href="numbers-and-dates.html#sec-systemtimezoneidentifier">SystemTimeZoneIdentifier</a></emu-xref> returns <emu-val>"UTC"</emu-val> and <emu-xref aoid="GetNamedTimeZoneOffsetNanoseconds" id="_ref_10770"><a href="numbers-and-dates.html#sec-getnamedtimezoneoffsetnanoseconds">GetNamedTimeZoneOffsetNanoseconds</a></emu-xref> returns 0.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>It is required for <emu-xref href="#sec-time-zone-identifiers" id="_ref_10771"><a href="numbers-and-dates.html#sec-time-zone-identifiers">time zone aware</a></emu-xref> implementations (and recommended for all others) to use the time zone information of the IANA Time Zone Database <a href="https://www.iana.org/time-zones/">https://www.iana.org/time-zones/</a>.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 3</span><div class="note-contents">
|
||
<p>Two different input <emu-xref href="#sec-time-values-and-time-range" id="_ref_10772"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time values</a></emu-xref> <emu-eqn class="inline"><var>t</var><sub>UTC</sub></emu-eqn> are converted to the same local time <emu-eqn class="inline">t<sub>local</sub></emu-eqn> at a negative time zone transition when there are repeated times (e.g. the daylight saving time ends or the time zone adjustment is decreased.).</p>
|
||
<p><emu-eqn class="inline">LocalTime(<emu-xref aoid="UTC" id="_ref_10773"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>t</var><sub>local</sub>))</emu-eqn> is not necessarily always equal to <emu-eqn class="inline"><var>t</var><sub>local</sub></emu-eqn>. Correspondingly, <emu-eqn class="inline"><emu-xref aoid="UTC" id="_ref_10774"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(LocalTime(<var>t</var><sub>UTC</sub>))</emu-eqn> is not necessarily always equal to <emu-eqn class="inline"><var>t</var><sub>UTC</sub></emu-eqn>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-utc-t" type="abstract operation" aoid="UTC">
|
||
<h1><span class="secnum">21.4.1.26</span> UTC ( <var>t</var> )</h1>
|
||
<p>The abstract operation UTC takes argument <var>t</var> (a Number) and returns a <emu-xref href="#sec-time-values-and-time-range" id="_ref_10775"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>.
|
||
It converts <var>t</var> from local time to a UTC <emu-xref href="#sec-time-values-and-time-range" id="_ref_10776"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>.
|
||
The local political rules for standard time and daylight saving time in effect at <var>t</var> should be used to determine the result in the way specified in this section.
|
||
It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>t</var> is not <emu-xref href="#finite" id="_ref_10777"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>Let <var>systemTimeZoneIdentifier</var> be <emu-xref aoid="SystemTimeZoneIdentifier" id="_ref_10778"><a href="numbers-and-dates.html#sec-systemtimezoneidentifier">SystemTimeZoneIdentifier</a></emu-xref>().</li><li>If <emu-xref aoid="IsTimeZoneOffsetString" id="_ref_10779"><a href="numbers-and-dates.html#sec-istimezoneoffsetstring">IsTimeZoneOffsetString</a></emu-xref>(<var>systemTimeZoneIdentifier</var>) is <emu-val>true</emu-val>, then<ol><li>Let <var>offsetNs</var> be <emu-xref aoid="ParseTimeZoneOffsetString" id="_ref_10780"><a href="numbers-and-dates.html#sec-parsetimezoneoffsetstring">ParseTimeZoneOffsetString</a></emu-xref>(<var>systemTimeZoneIdentifier</var>).</li></ol></li><li>Else,<ol><li>Let <var>possibleInstants</var> be <emu-xref aoid="GetNamedTimeZoneEpochNanoseconds" id="_ref_10781"><a href="numbers-and-dates.html#sec-getnamedtimezoneepochnanoseconds">GetNamedTimeZoneEpochNanoseconds</a></emu-xref>(<var>systemTimeZoneIdentifier</var>, <emu-xref aoid="ℝ" id="_ref_10782"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_10783"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>)), <emu-xref aoid="ℝ" id="_ref_10784"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="MonthFromTime" id="_ref_10785"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>)) + 1, <emu-xref aoid="ℝ" id="_ref_10786"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="DateFromTime" id="_ref_10787"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>)), <emu-xref aoid="ℝ" id="_ref_10788"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_10789"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>)), <emu-xref aoid="ℝ" id="_ref_10790"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="MinFromTime" id="_ref_10791"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>)), <emu-xref aoid="ℝ" id="_ref_10792"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="SecFromTime" id="_ref_10793"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>)), <emu-xref aoid="ℝ" id="_ref_10794"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="msFromTime" id="_ref_10795"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>)), 0, 0).</li><li>NOTE: The following steps ensure that when <var>t</var> represents local time repeating multiple times at a negative time zone transition (e.g. when the daylight saving time ends or the time zone offset is decreased due to a time zone rule change) or skipped local time at a positive time zone transition (e.g. when the daylight saving time starts or the time zone offset is increased due to a time zone rule change), <var>t</var> is interpreted using the time zone offset before the transition.</li><li>If <var>possibleInstants</var> is not empty, then<ol><li>Let <var>disambiguatedInstant</var> be <var>possibleInstants</var>[0].</li></ol></li><li>Else,<ol><li>NOTE: <var>t</var> represents a local time skipped at a positive time zone transition (e.g. due to daylight saving time starting or a time zone rule change increasing the UTC offset).</li><li declared="tBefore">Let <var>possibleInstantsBefore</var> be <emu-xref aoid="GetNamedTimeZoneEpochNanoseconds" id="_ref_10796"><a href="numbers-and-dates.html#sec-getnamedtimezoneepochnanoseconds">GetNamedTimeZoneEpochNanoseconds</a></emu-xref>(<var>systemTimeZoneIdentifier</var>, <emu-xref aoid="ℝ" id="_ref_10797"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_10798"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>tBefore</var>)), <emu-xref aoid="ℝ" id="_ref_10799"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="MonthFromTime" id="_ref_10800"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>tBefore</var>)) + 1, <emu-xref aoid="ℝ" id="_ref_10801"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="DateFromTime" id="_ref_10802"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>tBefore</var>)), <emu-xref aoid="ℝ" id="_ref_10803"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_10804"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>tBefore</var>)), <emu-xref aoid="ℝ" id="_ref_10805"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="MinFromTime" id="_ref_10806"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>tBefore</var>)), <emu-xref aoid="ℝ" id="_ref_10807"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="SecFromTime" id="_ref_10808"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>tBefore</var>)), <emu-xref aoid="ℝ" id="_ref_10809"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="msFromTime" id="_ref_10810"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>tBefore</var>)), 0, 0), where <var>tBefore</var> is the largest <emu-xref href="#integral-number" id="_ref_10811"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> < <var>t</var> for which <var>possibleInstantsBefore</var> is not empty (i.e., <var>tBefore</var> represents the last local time before the transition).</li><li>Let <var>disambiguatedInstant</var> be the last element of <var>possibleInstantsBefore</var>.</li></ol></li><li>Let <var>offsetNs</var> be <emu-xref aoid="GetNamedTimeZoneOffsetNanoseconds" id="_ref_10812"><a href="numbers-and-dates.html#sec-getnamedtimezoneoffsetnanoseconds">GetNamedTimeZoneOffsetNanoseconds</a></emu-xref>(<var>systemTimeZoneIdentifier</var>, <var>disambiguatedInstant</var>).</li></ol></li><li>Let <var>offsetMs</var> be <emu-xref aoid="truncate" id="_ref_10813"><a href="notational-conventions.html#eqn-truncate">truncate</a></emu-xref>(<var>offsetNs</var> / 10<sup>6</sup>).</li><li>Return <var>t</var> - <emu-xref aoid="𝔽" id="_ref_10814"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>offsetMs</var>).</li></ol></emu-alg>
|
||
<p>
|
||
Input <var>t</var> is nominally a <emu-xref href="#sec-time-values-and-time-range" id="_ref_10815"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> but may be any Number value.
|
||
The algorithm must not limit <var>t</var> to the <emu-xref href="#sec-time-values-and-time-range" id="_ref_10816"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> range, so that inputs corresponding with a boundary of the <emu-xref href="#sec-time-values-and-time-range" id="_ref_10817"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> range can be supported regardless of local UTC offset.
|
||
For example, the maximum <emu-xref href="#sec-time-values-and-time-range" id="_ref_10818"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> is 8.64 × 10<sup>15</sup>, corresponding with <emu-val>"+275760-09-13T00:00:00Z"</emu-val>.
|
||
In an environment where the local time zone offset is ahead of UTC by 1 hour at that instant, it is represented by the larger input of 8.64 × 10<sup>15</sup> + 3.6 × 10<sup>6</sup>, corresponding with <emu-val>"+275760-09-13T01:00:00+01:00"</emu-val>.
|
||
</p>
|
||
<p>If political rules for the local time <var>t</var> are not available within the implementation, the result is <var>t</var> because <emu-xref aoid="SystemTimeZoneIdentifier" id="_ref_10819"><a href="numbers-and-dates.html#sec-systemtimezoneidentifier">SystemTimeZoneIdentifier</a></emu-xref> returns <emu-val>"UTC"</emu-val> and <emu-xref aoid="GetNamedTimeZoneOffsetNanoseconds" id="_ref_10820"><a href="numbers-and-dates.html#sec-getnamedtimezoneoffsetnanoseconds">GetNamedTimeZoneOffsetNanoseconds</a></emu-xref> returns 0.</p>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>It is required for <emu-xref href="#sec-time-zone-identifiers" id="_ref_10821"><a href="numbers-and-dates.html#sec-time-zone-identifiers">time zone aware</a></emu-xref> implementations (and recommended for all others) to use the time zone information of the IANA Time Zone Database <a href="https://www.iana.org/time-zones/">https://www.iana.org/time-zones/</a>.</p>
|
||
<p>
|
||
1:30 AM on 5 November 2017 in America/New_York is repeated twice (fall backward), but it must be interpreted as 1:30 AM UTC-04 instead of 1:30 AM UTC-05.
|
||
In UTC(<emu-xref aoid="TimeClip" id="_ref_10822"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="MakeDate" id="_ref_10823"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_10824"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(2017, 10, 5), <emu-xref aoid="MakeTime" id="_ref_10825"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(1, 30, 0, 0)))), the value of <var>offsetMs</var> is <emu-eqn class="inline">-4 × <emu-xref aoid="msPerHour" id="_ref_10826"><a href="numbers-and-dates.html#eqn-msPerHour">msPerHour</a></emu-xref></emu-eqn>.
|
||
</p>
|
||
<p>
|
||
2:30 AM on 12 March 2017 in America/New_York does not exist, but it must be interpreted as 2:30 AM UTC-05 (equivalent to 3:30 AM UTC-04).
|
||
In UTC(<emu-xref aoid="TimeClip" id="_ref_10827"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="MakeDate" id="_ref_10828"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_10829"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(2017, 2, 12), <emu-xref aoid="MakeTime" id="_ref_10830"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(2, 30, 0, 0)))), the value of <var>offsetMs</var> is <emu-eqn class="inline">-5 × <emu-xref aoid="msPerHour" id="_ref_10831"><a href="numbers-and-dates.html#eqn-msPerHour">msPerHour</a></emu-xref></emu-eqn>.
|
||
</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p><emu-eqn class="inline">UTC(<emu-xref aoid="LocalTime" id="_ref_10832"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var><sub>UTC</sub>))</emu-eqn> is not necessarily always equal to <emu-eqn class="inline"><var>t</var><sub>UTC</sub></emu-eqn>. Correspondingly, <emu-eqn class="inline"><emu-xref aoid="LocalTime" id="_ref_10833"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(UTC(<var>t</var><sub>local</sub>))</emu-eqn> is not necessarily always equal to <emu-eqn class="inline"><var>t</var><sub>local</sub></emu-eqn>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-maketime" type="abstract operation" aoid="MakeTime">
|
||
<h1><span class="secnum">21.4.1.27</span> MakeTime ( <var>hour</var>, <var>min</var>, <var>sec</var>, <var>ms</var> )</h1>
|
||
<p>The abstract operation MakeTime takes arguments <var>hour</var> (a Number), <var>min</var> (a Number), <var>sec</var> (a Number), and <var>ms</var> (a Number) and returns a Number. It calculates a number of milliseconds. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>hour</var> is not <emu-xref href="#finite" id="_ref_10834"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, <var>min</var> is not <emu-xref href="#finite" id="_ref_10835"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, <var>sec</var> is not <emu-xref href="#finite" id="_ref_10836"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, or <var>ms</var> is not <emu-xref href="#finite" id="_ref_10837"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>Let <var>h</var> be <emu-xref aoid="𝔽" id="_ref_10838"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10839"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>hour</var>)).</li><li>Let <var>m</var> be <emu-xref aoid="𝔽" id="_ref_10840"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10841"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>min</var>)).</li><li>Let <var>s</var> be <emu-xref aoid="𝔽" id="_ref_10842"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10843"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>sec</var>)).</li><li>Let <var>milli</var> be <emu-xref aoid="𝔽" id="_ref_10844"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10845"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>ms</var>)).</li><li>Return ((<var>h</var> × <emu-xref aoid="msPerHour" id="_ref_10846"><a href="numbers-and-dates.html#eqn-msPerHour">msPerHour</a></emu-xref> + <var>m</var> × <emu-xref aoid="msPerMinute" id="_ref_10847"><a href="numbers-and-dates.html#eqn-msPerMinute">msPerMinute</a></emu-xref>) + <var>s</var> × <emu-xref aoid="msPerSecond" id="_ref_10848"><a href="numbers-and-dates.html#eqn-msPerSecond">msPerSecond</a></emu-xref>) + <var>milli</var>.</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>The arithmetic in MakeTime is floating-point arithmetic, which is not associative, so the operations must be performed in the correct order.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-makeday" type="abstract operation" aoid="MakeDay">
|
||
<h1><span class="secnum">21.4.1.28</span> MakeDay ( <var>year</var>, <var>month</var>, <var>date</var> )</h1>
|
||
<p>The abstract operation MakeDay takes arguments <var>year</var> (a Number), <var>month</var> (a Number), and <var>date</var> (a Number) and returns a Number. It calculates a number of days. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>year</var> is not <emu-xref href="#finite" id="_ref_10849"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, <var>month</var> is not <emu-xref href="#finite" id="_ref_10850"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, or <var>date</var> is not <emu-xref href="#finite" id="_ref_10851"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>Let <var>y</var> be <emu-xref aoid="𝔽" id="_ref_10852"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10853"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>year</var>)).</li><li>Let <var>m</var> be <emu-xref aoid="𝔽" id="_ref_10854"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10855"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>month</var>)).</li><li>Let <var>dt</var> be <emu-xref aoid="𝔽" id="_ref_10856"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10857"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>date</var>)).</li><li>Let <var>ym</var> be <var>y</var> + <emu-xref aoid="𝔽" id="_ref_10858"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="floor" id="_ref_10859"><a href="notational-conventions.html#eqn-floor">floor</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10860"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>m</var>) / 12)).</li><li>If <var>ym</var> is not <emu-xref href="#finite" id="_ref_10861"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>Let <var>mn</var> be <emu-xref aoid="𝔽" id="_ref_10862"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10863"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>m</var>) <emu-xref aoid="modulo" id="_ref_10864"><a href="notational-conventions.html#eqn-modulo">modulo</a></emu-xref> 12).</li><li>Find a <emu-xref href="#finite" id="_ref_10865"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> <emu-xref href="#sec-time-values-and-time-range" id="_ref_10866"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> <var>t</var> such that <emu-xref aoid="YearFromTime" id="_ref_10867"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>) is <var>ym</var>, <emu-xref aoid="MonthFromTime" id="_ref_10868"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>) is <var>mn</var>, and <emu-xref aoid="DateFromTime" id="_ref_10869"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>) is <emu-val>1</emu-val><sub>𝔽</sub>; but if this is not possible (because some argument is out of range), return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="Day" id="_ref_10870"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>) + <var>dt</var> - <emu-val>1</emu-val><sub>𝔽</sub>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-makedate" type="abstract operation" aoid="MakeDate">
|
||
<h1><span class="secnum">21.4.1.29</span> MakeDate ( <var>day</var>, <var>time</var> )</h1>
|
||
<p>The abstract operation MakeDate takes arguments <var>day</var> (a Number) and <var>time</var> (a Number) and returns a Number. It calculates a number of milliseconds. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>day</var> is not <emu-xref href="#finite" id="_ref_10871"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref> or <var>time</var> is not <emu-xref href="#finite" id="_ref_10872"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>Let <var>tv</var> be <var>day</var> × <emu-xref aoid="msPerDay" id="_ref_10873"><a href="numbers-and-dates.html#eqn-msPerDay">msPerDay</a></emu-xref> + <var>time</var>.</li><li>If <var>tv</var> is not <emu-xref href="#finite" id="_ref_10874"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>Return <var>tv</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-makefullyear" type="abstract operation" aoid="MakeFullYear">
|
||
<h1><span class="secnum">21.4.1.30</span> MakeFullYear ( <var>year</var> )</h1>
|
||
<p>The abstract operation MakeFullYear takes argument <var>year</var> (a Number) and returns an <emu-xref href="#integral-number" id="_ref_10875"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> or <emu-val>NaN</emu-val>. It returns the full year associated with the <emu-xref href="#integer" id="_ref_10876"><a href="notational-conventions.html#integer">integer</a></emu-xref> part of <var>year</var>, interpreting any value in the <emu-xref href="#inclusive-interval" id="_ref_10877"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 99 as a count of years since the start of 1900. For alignment with the proleptic Gregorian calendar, "full year" is defined as the signed count of complete years since the start of year 0 (1 B.C.). It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>year</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Let <var>truncated</var> be ! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10878"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>year</var>).</li><li>If <var>truncated</var> is in the <emu-xref href="#inclusive-interval" id="_ref_10879"><a href="notational-conventions.html#inclusive-interval">inclusive interval</a></emu-xref> from 0 to 99, return <emu-val>1900</emu-val><sub>𝔽</sub> + <emu-xref aoid="𝔽" id="_ref_10880"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>truncated</var>).</li><li>Return <emu-xref aoid="𝔽" id="_ref_10881"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<var>truncated</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-timeclip" type="abstract operation" aoid="TimeClip">
|
||
<h1><span class="secnum">21.4.1.31</span> TimeClip ( <var>time</var> )</h1>
|
||
<p>The abstract operation TimeClip takes argument <var>time</var> (a Number) and returns a Number. It calculates a number of milliseconds. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>time</var> is not <emu-xref href="#finite" id="_ref_10882"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>NaN</emu-val>.</li><li>If <emu-xref aoid="abs" id="_ref_10883"><a href="notational-conventions.html#eqn-abs">abs</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_10884"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>time</var>)) > 8.64 × 10<sup>15</sup>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="𝔽" id="_ref_10885"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(! <emu-xref aoid="ToIntegerOrInfinity" id="_ref_10886"><a href="abstract-operations.html#sec-tointegerorinfinity">ToIntegerOrInfinity</a></emu-xref>(<var>time</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date-time-string-format">
|
||
<h1><span class="secnum">21.4.1.32</span> Date Time String Format</h1>
|
||
<p>ECMAScript defines a string interchange format for date-times based upon a simplification of the ISO 8601 calendar date extended format. The format is as follows: <code>YYYY-MM-DDTHH:mm:ss.sssZ</code></p>
|
||
<p>Where the elements are as follows:</p>
|
||
<figure>
|
||
<table class="lightweight-table">
|
||
<tbody><tr>
|
||
<td>
|
||
<code>YYYY</code>
|
||
</td>
|
||
<td>
|
||
is the year in the proleptic Gregorian calendar as four decimal digits from 0000 to 9999, or as an <emu-xref href="#sec-expanded-years" id="_ref_643"><a href="numbers-and-dates.html#sec-expanded-years">expanded year</a></emu-xref> of <emu-val>"+"</emu-val> or <emu-val>"-"</emu-val> followed by six decimal digits.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>-</code>
|
||
</td>
|
||
<td>
|
||
<emu-val>"-"</emu-val> (hyphen) appears literally twice in the string.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>MM</code>
|
||
</td>
|
||
<td>
|
||
is the month of the year as two decimal digits from 01 (January) to 12 (December).
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>DD</code>
|
||
</td>
|
||
<td>
|
||
is the day of the month as two decimal digits from 01 to 31.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>T</code>
|
||
</td>
|
||
<td>
|
||
<emu-val>"T"</emu-val> appears literally in the string, to indicate the beginning of the time element.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>HH</code>
|
||
</td>
|
||
<td>
|
||
is the number of complete hours that have passed since midnight as two decimal digits from 00 to 24.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>:</code>
|
||
</td>
|
||
<td>
|
||
<emu-val>":"</emu-val> (colon) appears literally twice in the string.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>mm</code>
|
||
</td>
|
||
<td>
|
||
is the number of complete minutes since the start of the hour as two decimal digits from 00 to 59.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>ss</code>
|
||
</td>
|
||
<td>
|
||
is the number of complete seconds since the start of the minute as two decimal digits from 00 to 59.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>.</code>
|
||
</td>
|
||
<td>
|
||
<emu-val>"."</emu-val> (dot) appears literally in the string.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>sss</code>
|
||
</td>
|
||
<td>
|
||
is the number of complete milliseconds since the start of the second as three decimal digits.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>Z</code>
|
||
</td>
|
||
<td>
|
||
is the UTC offset representation specified as <emu-val>"Z"</emu-val> (for UTC with no offset) or as either <emu-val>"+"</emu-val> or <emu-val>"-"</emu-val> followed by a time expression <code>HH:mm</code> (a subset of the <emu-xref href="#sec-time-zone-offset-strings" id="_ref_644"><a href="numbers-and-dates.html#sec-time-zone-offset-strings">time zone offset string format</a></emu-xref> for indicating local time ahead of or behind UTC, respectively)
|
||
</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure>
|
||
<p>This format includes date-only forms:</p>
|
||
<pre>YYYY
|
||
YYYY-MM
|
||
YYYY-MM-DD
|
||
</pre>
|
||
<p>It also includes “date-time” forms that consist of one of the above date-only forms immediately followed by one of the following time forms with an optional UTC offset representation appended:</p>
|
||
<pre>THH:mm
|
||
THH:mm:ss
|
||
THH:mm:ss.sss
|
||
</pre>
|
||
<p>A string containing out-of-bounds or nonconforming elements is not a valid instance of this format.</p>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>As every day both starts and ends with midnight, the two notations <code>00:00</code> and <code>24:00</code> are available to distinguish the two midnights that can be associated with one date. This means that the following two notations refer to exactly the same point in time: <code>1995-02-04T24:00</code> and <code>1995-02-05T00:00</code>. This interpretation of the latter form as "end of a calendar day" is consistent with ISO 8601, even though that specification reserves it for describing time intervals and does not permit it within representations of single points in time.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>There exists no international standard that specifies abbreviations for civil time zones like CET, EST, etc. and sometimes the same abbreviation is even used for two very different time zones. For this reason, both ISO 8601 and this format specify numeric representations of time zone offsets.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-expanded-years" oldids="sec-extended-years"><span id="sec-extended-years"></span>
|
||
<h1><span class="secnum">21.4.1.32.1</span> Expanded Years</h1>
|
||
<p>Covering the full <emu-xref href="#sec-time-values-and-time-range" id="_ref_10887"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> range of approximately 273,790 years forward or backward from 1 January 1970 (<emu-xref href="#sec-time-values-and-time-range" id="_ref_645"><a href="numbers-and-dates.html#sec-time-values-and-time-range">21.4.1.1</a></emu-xref>) requires representing years before 0 or after 9999. ISO 8601 permits expansion of the year representation, but only by mutual agreement of the partners in information interchange. In the simplified ECMAScript format, such an expanded year representation shall have 6 digits and is always prefixed with a + or - sign. The year 0 is considered positive and must be prefixed with a + sign. The representation of the year 0 as -000000 is invalid. Strings matching the <emu-xref href="#sec-date-time-string-format" id="_ref_646"><a href="numbers-and-dates.html#sec-date-time-string-format">Date Time String Format</a></emu-xref> with expanded years representing instants in time outside the range of a <emu-xref href="#sec-time-values-and-time-range" id="_ref_10888"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> are treated as unrecognizable by <emu-xref href="#sec-date.parse" id="_ref_647"><a href="numbers-and-dates.html#sec-date.parse"><code>Date.parse</code></a></emu-xref> and cause that function to return <emu-val>NaN</emu-val> without falling back to implementation-specific behaviour or heuristics.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>Examples of date-<emu-not-ref>time values</emu-not-ref> with expanded years:</p>
|
||
<figure>
|
||
<table class="lightweight-table">
|
||
<tbody><tr>
|
||
<td>-271821-04-20T00:00:00Z</td>
|
||
<td>271822 B.C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>-000001-01-01T00:00:00Z</td>
|
||
<td>2 B.C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>+000000-01-01T00:00:00Z</td>
|
||
<td>1 B.C.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>+000001-01-01T00:00:00Z</td>
|
||
<td>1 A.D.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>+001970-01-01T00:00:00Z</td>
|
||
<td>1970 A.D.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>+002009-12-15T00:00:00Z</td>
|
||
<td>2009 A.D.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>+275760-09-13T00:00:00Z</td>
|
||
<td>275760 A.D.</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-time-zone-offset-strings">
|
||
<h1><span class="secnum">21.4.1.33</span> Time Zone Offset String Format</h1>
|
||
|
||
<p>
|
||
ECMAScript defines a string interchange format for UTC offsets, derived from ISO 8601.
|
||
The format is described by the following grammar.
|
||
</p>
|
||
|
||
<h2>Syntax</h2>
|
||
<emu-grammar type="definition"><emu-production name="UTCOffset" type="regexp" id="prod-UTCOffset">
|
||
<emu-nt><a href="numbers-and-dates.html#prod-UTCOffset">UTCOffset</a></emu-nt> <emu-geq>:::</emu-geq> <emu-rhs a="rncvrnaw">
|
||
<emu-nt id="_ref_23845"><a href="numbers-and-dates.html#prod-ASCIISign">ASCIISign</a></emu-nt>
|
||
<emu-nt id="_ref_23846"><a href="numbers-and-dates.html#prod-Hour">Hour</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="rr9rer_4">
|
||
<emu-nt id="_ref_23847"><a href="numbers-and-dates.html#prod-ASCIISign">ASCIISign</a></emu-nt>
|
||
<emu-nt id="_ref_23848"><a href="numbers-and-dates.html#prod-Hour">Hour</a></emu-nt>
|
||
<emu-nt params="+Extended" id="_ref_23849"><a href="numbers-and-dates.html#prod-HourSubcomponents">HourSubcomponents</a><emu-mods><emu-params>[+Extended]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="gbqmabjo">
|
||
<emu-nt id="_ref_23850"><a href="numbers-and-dates.html#prod-ASCIISign">ASCIISign</a></emu-nt>
|
||
<emu-nt id="_ref_23851"><a href="numbers-and-dates.html#prod-Hour">Hour</a></emu-nt>
|
||
<emu-nt params="~Extended" id="_ref_23852"><a href="numbers-and-dates.html#prod-HourSubcomponents">HourSubcomponents</a><emu-mods><emu-params>[~Extended]</emu-params></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="ASCIISign" type="regexp" oneof="" id="prod-ASCIISign">
|
||
<emu-nt><a href="numbers-and-dates.html#prod-ASCIISign">ASCIISign</a></emu-nt> <emu-geq>:::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>+</emu-t> <emu-t>-</emu-t></emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="Hour" type="regexp" id="prod-Hour">
|
||
<emu-nt><a href="numbers-and-dates.html#prod-Hour">Hour</a></emu-nt> <emu-geq>:::</emu-geq> <emu-rhs a="wkfhlj8g">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_23853"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="5s_tgz36">
|
||
<emu-t>1</emu-t>
|
||
<emu-nt id="_ref_23854"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mglsh1s7">
|
||
<emu-t>20</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="u3ktzh-t">
|
||
<emu-t>21</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="vceuvgrv">
|
||
<emu-t>22</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="mvdsu9ue">
|
||
<emu-t>23</emu-t>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="HourSubcomponents" params="Extended" type="regexp" id="prod-HourSubcomponents">
|
||
<emu-nt params="Extended"><a href="numbers-and-dates.html#prod-HourSubcomponents">HourSubcomponents</a><emu-mods><emu-params>[Extended]</emu-params></emu-mods></emu-nt> <emu-geq>:::</emu-geq> <emu-rhs a="mxomrswh">
|
||
<emu-nt params="?Extended" id="_ref_23855"><a href="numbers-and-dates.html#prod-TimeSeparator">TimeSeparator</a><emu-mods><emu-params>[?Extended]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_23856"><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="zgyah94w">
|
||
<emu-nt params="?Extended" id="_ref_23857"><a href="numbers-and-dates.html#prod-TimeSeparator">TimeSeparator</a><emu-mods><emu-params>[?Extended]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_23858"><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt>
|
||
<emu-nt params="?Extended" id="_ref_23859"><a href="numbers-and-dates.html#prod-TimeSeparator">TimeSeparator</a><emu-mods><emu-params>[?Extended]</emu-params></emu-mods></emu-nt>
|
||
<emu-nt id="_ref_23860"><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt>
|
||
<emu-nt optional="" id="_ref_23861"><a href="numbers-and-dates.html#prod-TemporalDecimalFraction">TemporalDecimalFraction</a><emu-mods><emu-opt>opt</emu-opt></emu-mods></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TimeSeparator" params="Extended" type="regexp" id="prod-TimeSeparator">
|
||
<emu-nt params="Extended"><a href="numbers-and-dates.html#prod-TimeSeparator">TimeSeparator</a><emu-mods><emu-params>[Extended]</emu-params></emu-mods></emu-nt> <emu-geq>:::</emu-geq> <emu-rhs a="3wlaayve" constraints="+Extended"><emu-constraints>[+Extended]</emu-constraints>
|
||
<emu-t>:</emu-t>
|
||
</emu-rhs>
|
||
<emu-rhs a="dincvcxf" constraints="~Extended"><emu-constraints>[~Extended]</emu-constraints>
|
||
<emu-gann>[empty]</emu-gann>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="MinuteSecond" type="regexp" id="prod-MinuteSecond">
|
||
<emu-nt><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt> <emu-geq>:::</emu-geq> <emu-rhs a="wkfhlj8g">
|
||
<emu-t>0</emu-t>
|
||
<emu-nt id="_ref_23862"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="5s_tgz36">
|
||
<emu-t>1</emu-t>
|
||
<emu-nt id="_ref_23863"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="lmn5hwr-">
|
||
<emu-t>2</emu-t>
|
||
<emu-nt id="_ref_23864"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="zu_fwhsh">
|
||
<emu-t>3</emu-t>
|
||
<emu-nt id="_ref_23865"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="9tumd40b">
|
||
<emu-t>4</emu-t>
|
||
<emu-nt id="_ref_23866"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="y55tbjay">
|
||
<emu-t>5</emu-t>
|
||
<emu-nt id="_ref_23867"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemporalDecimalFraction" type="regexp" id="prod-TemporalDecimalFraction">
|
||
<emu-nt><a href="numbers-and-dates.html#prod-TemporalDecimalFraction">TemporalDecimalFraction</a></emu-nt> <emu-geq>:::</emu-geq> <emu-rhs a="vyuc8izf">
|
||
<emu-nt id="_ref_23868"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23869"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="1rj1uct0">
|
||
<emu-nt id="_ref_23870"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23871"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23872"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="mq72xvpv">
|
||
<emu-nt id="_ref_23873"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23874"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23875"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23876"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="axw3w-zw">
|
||
<emu-nt id="_ref_23877"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23878"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23879"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23880"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23881"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="c1lsnrnq">
|
||
<emu-nt id="_ref_23882"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23883"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23884"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23885"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23886"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23887"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="j1y5dzls">
|
||
<emu-nt id="_ref_23888"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23889"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23890"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23891"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23892"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23893"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23894"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="xrj7td1-">
|
||
<emu-nt id="_ref_23895"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23896"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23897"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23898"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23899"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23900"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23901"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23902"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="pgtcsyep">
|
||
<emu-nt id="_ref_23903"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23904"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23905"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23906"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23907"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23908"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23909"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23910"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23911"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
<emu-rhs a="blsu4l5v">
|
||
<emu-nt id="_ref_23912"><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt>
|
||
<emu-nt id="_ref_23913"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23914"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23915"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23916"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23917"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23918"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23919"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23920"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
<emu-nt id="_ref_23921"><a href="ecmascript-language-lexical-grammar.html#prod-DecimalDigit">DecimalDigit</a></emu-nt>
|
||
</emu-rhs>
|
||
</emu-production>
|
||
<emu-production name="TemporalDecimalSeparator" type="regexp" oneof="" id="prod-TemporalDecimalSeparator">
|
||
<emu-nt><a href="numbers-and-dates.html#prod-TemporalDecimalSeparator">TemporalDecimalSeparator</a></emu-nt> <emu-geq>:::</emu-geq> <emu-oneof>one of</emu-oneof> <emu-rhs><emu-t>.</emu-t> <emu-t>,</emu-t></emu-rhs>
|
||
</emu-production>
|
||
</emu-grammar>
|
||
|
||
<emu-clause id="sec-istimezoneoffsetstring" type="abstract operation" aoid="IsTimeZoneOffsetString">
|
||
<h1><span class="secnum">21.4.1.33.1</span> IsTimeZoneOffsetString ( <var>offsetString</var> )</h1>
|
||
<p>The abstract operation IsTimeZoneOffsetString takes argument <var>offsetString</var> (a String) and returns a Boolean. The return value indicates whether <var>offsetString</var> conforms to the grammar given by <emu-nt id="_ref_23922"><a href="numbers-and-dates.html#prod-UTCOffset">UTCOffset</a></emu-nt>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>parseResult</var> be <emu-xref aoid="ParseText" id="_ref_10889"><a href="ecmascript-language-source-code.html#sec-parsetext">ParseText</a></emu-xref>(<var>offsetString</var>, <emu-nt id="_ref_23923"><a href="numbers-and-dates.html#prod-UTCOffset">UTCOffset</a></emu-nt>).</li><li>If <var>parseResult</var> is a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10890"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> of errors, return <emu-val>false</emu-val>.</li><li>Return <emu-val>true</emu-val>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-parsetimezoneoffsetstring" type="abstract operation" aoid="ParseTimeZoneOffsetString">
|
||
<h1><span class="secnum">21.4.1.33.2</span> ParseTimeZoneOffsetString ( <var>offsetString</var> )</h1>
|
||
<p>The abstract operation ParseTimeZoneOffsetString takes argument <var>offsetString</var> (a String) and returns an <emu-xref href="#integer" id="_ref_10891"><a href="notational-conventions.html#integer">integer</a></emu-xref>. The return value is the UTC offset, as a number of nanoseconds, that corresponds to the String <var>offsetString</var>. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>parseResult</var> be <emu-xref aoid="ParseText" id="_ref_10892"><a href="ecmascript-language-source-code.html#sec-parsetext">ParseText</a></emu-xref>(<var>offsetString</var>, <emu-nt id="_ref_23924"><a href="numbers-and-dates.html#prod-UTCOffset">UTCOffset</a></emu-nt>).</li><li><emu-xref href="#assert" id="_ref_10893"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>parseResult</var> is not a <emu-xref href="#sec-list-and-record-specification-type" id="_ref_10894"><a href="ecmascript-data-types-and-values.html#sec-list-and-record-specification-type">List</a></emu-xref> of errors.</li><li><emu-xref href="#assert" id="_ref_10895"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>parseResult</var> contains a <emu-nt id="_ref_23925"><a href="numbers-and-dates.html#prod-ASCIISign">ASCIISign</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10896"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref>.</li><li>Let <var>parsedSign</var> be the <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_10897"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">source text matched by</a></emu-xref> the <emu-nt id="_ref_23926"><a href="numbers-and-dates.html#prod-ASCIISign">ASCIISign</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10898"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref> contained within <var>parseResult</var>.</li><li>If <var>parsedSign</var> is the single code point U+002D (HYPHEN-MINUS), then<ol><li>Let <var>sign</var> be -1.</li></ol></li><li>Else,<ol><li>Let <var>sign</var> be 1.</li></ol></li><li>NOTE: Applications of <emu-xref aoid="StringToNumber" id="_ref_10899"><a href="abstract-operations.html#sec-stringtonumber">StringToNumber</a></emu-xref> below do not lose precision, since each of the parsed values is guaranteed to be a sufficiently short string of decimal digits.</li><li><emu-xref href="#assert" id="_ref_10900"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>parseResult</var> contains an <emu-nt id="_ref_23927"><a href="numbers-and-dates.html#prod-Hour">Hour</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10901"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref>.</li><li>Let <var>parsedHours</var> be the <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_10902"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">source text matched by</a></emu-xref> the <emu-nt id="_ref_23928"><a href="numbers-and-dates.html#prod-Hour">Hour</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10903"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref> contained within <var>parseResult</var>.</li><li>Let <var>hours</var> be <emu-xref aoid="ℝ" id="_ref_10904"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="StringToNumber" id="_ref_10905"><a href="abstract-operations.html#sec-stringtonumber">StringToNumber</a></emu-xref>(<emu-xref aoid="CodePointsToString" id="_ref_10906"><a href="ecmascript-language-source-code.html#sec-codepointstostring">CodePointsToString</a></emu-xref>(<var>parsedHours</var>))).</li><li>If <var>parseResult</var> does not contain a <emu-nt id="_ref_23929"><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10907"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref>, then<ol><li>Let <var>minutes</var> be 0.</li></ol></li><li>Else,<ol><li>Let <var>parsedMinutes</var> be the <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_10908"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">source text matched by</a></emu-xref> the first <emu-nt id="_ref_23930"><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10909"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref> contained within <var>parseResult</var>.</li><li>Let <var>minutes</var> be <emu-xref aoid="ℝ" id="_ref_10910"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="StringToNumber" id="_ref_10911"><a href="abstract-operations.html#sec-stringtonumber">StringToNumber</a></emu-xref>(<emu-xref aoid="CodePointsToString" id="_ref_10912"><a href="ecmascript-language-source-code.html#sec-codepointstostring">CodePointsToString</a></emu-xref>(<var>parsedMinutes</var>))).</li></ol></li><li>If <var>parseResult</var> does not contain two <emu-nt id="_ref_23931"><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10913"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Nodes</a></emu-xref>, then<ol><li>Let <var>seconds</var> be 0.</li></ol></li><li>Else,<ol><li>Let <var>parsedSeconds</var> be the <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_10914"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">source text matched by</a></emu-xref> the second <emu-nt id="_ref_23932"><a href="numbers-and-dates.html#prod-MinuteSecond">MinuteSecond</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10915"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref> contained within <var>parseResult</var>.</li><li>Let <var>seconds</var> be <emu-xref aoid="ℝ" id="_ref_10916"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="StringToNumber" id="_ref_10917"><a href="abstract-operations.html#sec-stringtonumber">StringToNumber</a></emu-xref>(<emu-xref aoid="CodePointsToString" id="_ref_10918"><a href="ecmascript-language-source-code.html#sec-codepointstostring">CodePointsToString</a></emu-xref>(<var>parsedSeconds</var>))).</li></ol></li><li>If <var>parseResult</var> does not contain a <emu-nt id="_ref_23933"><a href="numbers-and-dates.html#prod-TemporalDecimalFraction">TemporalDecimalFraction</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10919"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref>, then<ol><li>Let <var>nanoseconds</var> be 0.</li></ol></li><li>Else,<ol><li>Let <var>parsedFraction</var> be the <emu-xref href="#sec-algorithm-conventions-syntax-directed-operations" id="_ref_10920"><a href="notational-conventions.html#sec-algorithm-conventions-syntax-directed-operations">source text matched by</a></emu-xref> the <emu-nt id="_ref_23934"><a href="numbers-and-dates.html#prod-TemporalDecimalFraction">TemporalDecimalFraction</a></emu-nt> <emu-xref href="#sec-syntactic-grammar" id="_ref_10921"><a href="notational-conventions.html#sec-syntactic-grammar">Parse Node</a></emu-xref> contained within <var>parseResult</var>.</li><li>Let <var>fraction</var> be the <emu-xref href="#string-concatenation" id="_ref_10922"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <emu-xref aoid="CodePointsToString" id="_ref_10923"><a href="ecmascript-language-source-code.html#sec-codepointstostring">CodePointsToString</a></emu-xref>(<var>parsedFraction</var>) and <emu-val>"000000000"</emu-val>.</li><li>Let <var>nanosecondsString</var> be the <emu-xref href="#substring" id="_ref_10924"><a href="ecmascript-data-types-and-values.html#substring">substring</a></emu-xref> of <var>fraction</var> from 1 to 10.</li><li>Let <var>nanoseconds</var> be <emu-xref aoid="ℝ" id="_ref_10925"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="StringToNumber" id="_ref_10926"><a href="abstract-operations.html#sec-stringtonumber">StringToNumber</a></emu-xref>(<var>nanosecondsString</var>)).</li></ol></li><li>Return <var>sign</var> × (((<var>hours</var> × 60 + <var>minutes</var>) × 60 + <var>seconds</var>) × 10<sup>9</sup> + <var>nanoseconds</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date-constructor" oldids="this-time-value,sec-thistimevalue,thistimevalue,this-Date-object"><span id="this-Date-object"></span><span id="thistimevalue"></span><span id="sec-thistimevalue"></span><span id="this-time-value"></span>
|
||
<h1><span class="secnum">21.4.2</span> The Date Constructor</h1>
|
||
<p>The Date <emu-xref href="#constructor" id="_ref_10927"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>:</p>
|
||
<ul>
|
||
<li>is <dfn tabindex="-1">%Date%</dfn>.</li>
|
||
<li>is the initial value of the <emu-val>"Date"</emu-val> property of the <emu-xref href="#sec-global-object" id="_ref_10928"><a href="global-object.html#sec-global-object">global object</a></emu-xref>.</li>
|
||
<li>creates and initializes a new Date when called as a <emu-xref href="#constructor" id="_ref_10929"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>.</li>
|
||
<li>returns a String representing the current time (UTC) when called as a function rather than as a <emu-xref href="#constructor" id="_ref_10930"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>.</li>
|
||
<li>is a function whose behaviour differs based upon the number and types of its arguments.</li>
|
||
<li>may be used as the value of an <code>extends</code> clause of a class definition. Subclass <emu-xref href="#constructor" id="_ref_10931"><a href="ecmascript-data-types-and-values.html#constructor">constructors</a></emu-xref> that intend to inherit the specified Date behaviour must include a <code>super</code> call to the Date <emu-xref href="#constructor" id="_ref_10932"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref> to create and initialize the subclass instance with a <var class="field">[[DateValue]]</var> internal slot.</li>
|
||
</ul>
|
||
|
||
<emu-clause id="sec-date" oldids="sec-date-constructor-date,sec-date-value,sec-date-year-month-date-hours-minutes-seconds-ms" type="built-in function"><span id="sec-date-year-month-date-hours-minutes-seconds-ms"></span><span id="sec-date-value"></span><span id="sec-date-constructor-date"></span>
|
||
<h1><span class="secnum">21.4.2.1</span> Date ( ...<var>values</var> )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If NewTarget is <emu-val>undefined</emu-val>, then<ol><li>Let <var>now</var> be the <emu-xref href="#sec-time-values-and-time-range" id="_ref_10933"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> (UTC) identifying the current time.</li><li>Return <emu-xref aoid="ToDateString" id="_ref_10934"><a href="numbers-and-dates.html#sec-todatestring">ToDateString</a></emu-xref>(<var>now</var>).</li></ol></li><li>Let <var>numberOfArgs</var> be the number of elements in <var>values</var>.</li><li>If <var>numberOfArgs</var> = 0, then<ol><li>Let <var>dv</var> be the <emu-xref href="#sec-time-values-and-time-range" id="_ref_10935"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> (UTC) identifying the current time.</li></ol></li><li>Else if <var>numberOfArgs</var> = 1, then<ol><li>Let <var>value</var> be <var>values</var>[0].</li><li>If <var>value</var> <emu-xref href="#sec-object-type" id="_ref_10936"><a href="ecmascript-data-types-and-values.html#sec-object-type">is an Object</a></emu-xref> and <var>value</var> has a <var class="field">[[DateValue]]</var> internal slot, then<ol><li>Let <var>tv</var> be <var>value</var>.<var class="field">[[DateValue]]</var>.</li></ol></li><li>Else,<ol><li>Let <var>v</var> be ? <emu-xref aoid="ToPrimitive" id="_ref_10937"><a href="abstract-operations.html#sec-toprimitive" class="e-user-code">ToPrimitive</a></emu-xref>(<var>value</var>).</li><li>If <var>v</var> <emu-xref href="#sec-ecmascript-language-types-string-type" id="_ref_10938"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type">is a String</a></emu-xref>, then<ol><li><emu-xref href="#assert" id="_ref_10939"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: The next step never returns an <emu-xref href="#sec-completion-record-specification-type" id="_ref_10940"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">abrupt completion</a></emu-xref> because <var>v</var> <emu-xref href="#sec-ecmascript-language-types-string-type" id="_ref_10941"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-string-type">is a String</a></emu-xref>.</li><li>Let <var>tv</var> be the result of parsing <var>v</var> as a date, in exactly the same manner as for the <code>parse</code> method (<emu-xref href="#sec-date.parse" id="_ref_648"><a href="numbers-and-dates.html#sec-date.parse">21.4.3.2</a></emu-xref>).</li></ol></li><li>Else,<ol><li>Let <var>tv</var> be ? <emu-xref aoid="ToNumber" id="_ref_10942"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>v</var>).</li></ol></li></ol></li><li>Let <var>dv</var> be <emu-xref aoid="TimeClip" id="_ref_10943"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>tv</var>).</li></ol></li><li>Else,<ol><li><emu-xref href="#assert" id="_ref_10944"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>numberOfArgs</var> ≥ 2.</li><li>Let <var>y</var> be ? <emu-xref aoid="ToNumber" id="_ref_10945"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>values</var>[0]).</li><li>Let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_10946"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>values</var>[1]).</li><li>If <var>numberOfArgs</var> > 2, let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_10947"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>values</var>[2]); else let <var>dt</var> be <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>If <var>numberOfArgs</var> > 3, let <var>h</var> be ? <emu-xref aoid="ToNumber" id="_ref_10948"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>values</var>[3]); else let <var>h</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>numberOfArgs</var> > 4, let <var>min</var> be ? <emu-xref aoid="ToNumber" id="_ref_10949"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>values</var>[4]); else let <var>min</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>numberOfArgs</var> > 5, let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_10950"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>values</var>[5]); else let <var>s</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>numberOfArgs</var> > 6, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_10951"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>values</var>[6]); else let <var>milli</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>Let <var>yr</var> be <emu-xref aoid="MakeFullYear" id="_ref_10952"><a href="numbers-and-dates.html#sec-makefullyear">MakeFullYear</a></emu-xref>(<var>y</var>).</li><li>Let <var>finalDate</var> be <emu-xref aoid="MakeDate" id="_ref_10953"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_10954"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<var>yr</var>, <var>m</var>, <var>dt</var>), <emu-xref aoid="MakeTime" id="_ref_10955"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<var>h</var>, <var>min</var>, <var>s</var>, <var>milli</var>)).</li><li>Let <var>dv</var> be <emu-xref aoid="TimeClip" id="_ref_10956"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_10957"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>finalDate</var>)).</li></ol></li><li>Let <var>O</var> be ? <emu-xref aoid="OrdinaryCreateFromConstructor" id="_ref_10958"><a href="ordinary-and-exotic-objects-behaviours.html#sec-ordinarycreatefromconstructor" class="e-user-code">OrdinaryCreateFromConstructor</a></emu-xref>(NewTarget, <emu-val>"%Date.prototype%"</emu-val>, « <var class="field">[[DateValue]]</var> »).</li><li>Set <var>O</var>.<var class="field">[[DateValue]]</var> to <var>dv</var>.</li><li>Return <var>O</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-the-date-constructor">
|
||
<h1><span class="secnum">21.4.3</span> Properties of the Date Constructor</h1>
|
||
<p>The Date <emu-xref href="#constructor" id="_ref_10959"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref>:</p>
|
||
<ul>
|
||
<li>has a <var class="field">[[Prototype]]</var> internal slot whose value is <emu-xref href="#sec-properties-of-the-function-prototype-object" id="_ref_10960"><a href="fundamental-objects.html#sec-properties-of-the-function-prototype-object">%Function.prototype%</a></emu-xref>.</li>
|
||
<li>has a <emu-val>"length"</emu-val> property whose value is <emu-val>7</emu-val><sub>𝔽</sub>.</li>
|
||
<li>has the following properties:</li>
|
||
</ul>
|
||
|
||
<emu-clause id="sec-date.now" type="built-in function">
|
||
<h1><span class="secnum">21.4.3.1</span> Date.now ( )</h1>
|
||
<p>This function returns the <emu-xref href="#sec-time-values-and-time-range" id="_ref_10961"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> designating the UTC date and time of the occurrence of the call to it.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.parse" type="built-in function">
|
||
<h1><span class="secnum">21.4.3.2</span> Date.parse ( <var>string</var> )</h1>
|
||
<p>This function applies the <emu-xref aoid="ToString" id="_ref_10962"><a href="abstract-operations.html#sec-tostring">ToString</a></emu-xref> operator to its argument. If <emu-xref aoid="ToString" id="_ref_10963"><a href="abstract-operations.html#sec-tostring">ToString</a></emu-xref> results in an <emu-xref href="#sec-completion-record-specification-type" id="_ref_10964"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">abrupt completion</a></emu-xref> the <emu-xref href="#sec-completion-record-specification-type" id="_ref_10965"><a href="ecmascript-data-types-and-values.html#sec-completion-record-specification-type">Completion Record</a></emu-xref> is immediately returned. Otherwise, this function interprets the resulting String as a date and time; it returns a Number, the UTC <emu-xref href="#sec-time-values-and-time-range" id="_ref_10966"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> corresponding to the date and time. The String may be interpreted as a local time, a UTC time, or a time in some other time zone, depending on the contents of the String. The function first attempts to parse the String according to the format described in Date Time String Format (<emu-xref href="#sec-date-time-string-format" id="_ref_649"><a href="numbers-and-dates.html#sec-date-time-string-format">21.4.1.32</a></emu-xref>), including expanded years. If the String does not conform to that format the function may fall back to any implementation-specific heuristics or implementation-specific date formats. Strings that are unrecognizable or contain out-of-bounds format element values shall cause this function to return <emu-val>NaN</emu-val>.</p>
|
||
<p>If the String conforms to the <emu-xref href="#sec-date-time-string-format" id="_ref_650"><a href="numbers-and-dates.html#sec-date-time-string-format">Date Time String Format</a></emu-xref>, substitute values take the place of absent format elements. When the <code>MM</code> or <code>DD</code> elements are absent, <emu-val>"01"</emu-val> is used. When the <code>HH</code>, <code>mm</code>, or <code>ss</code> elements are absent, <emu-val>"00"</emu-val> is used. When the <code>sss</code> element is absent, <emu-val>"000"</emu-val> is used. When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.</p>
|
||
<p>If <code>x</code> is any Date whose milliseconds amount is zero within a particular implementation of ECMAScript, then all of the following expressions should produce the same numeric value in that implementation, if all the properties referenced have their initial values:</p>
|
||
<pre><code class="javascript hljs">x.<span class="hljs-title function_">valueOf</span>()
|
||
<span class="hljs-title class_">Date</span>.<span class="hljs-title function_">parse</span>(x.<span class="hljs-title function_">toString</span>())
|
||
<span class="hljs-title class_">Date</span>.<span class="hljs-title function_">parse</span>(x.<span class="hljs-title function_">toUTCString</span>())
|
||
<span class="hljs-title class_">Date</span>.<span class="hljs-title function_">parse</span>(x.<span class="hljs-title function_">toISOString</span>())</code></pre>
|
||
<p>However, the expression</p>
|
||
<pre><code class="javascript hljs"><span class="hljs-title class_">Date</span>.<span class="hljs-title function_">parse</span>(x.<span class="hljs-title function_">toLocaleString</span>())</code></pre>
|
||
<p>is not required to produce the same Number value as the preceding three expressions and, in general, the value produced by this function is <emu-xref href="#implementation-defined" id="_ref_10967"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> when given any String value that does not conform to the Date Time String Format (<emu-xref href="#sec-date-time-string-format" id="_ref_651"><a href="numbers-and-dates.html#sec-date-time-string-format">21.4.1.32</a></emu-xref>) and that could not be produced in that implementation by the <code>toString</code> or <code>toUTCString</code> method.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype">
|
||
<h1><span class="secnum">21.4.3.3</span> Date.prototype</h1>
|
||
<p>The initial value of <code>Date.prototype</code> is the <emu-xref href="#sec-properties-of-the-date-prototype-object" id="_ref_10968"><a href="numbers-and-dates.html#sec-properties-of-the-date-prototype-object">Date prototype object</a></emu-xref>.</p>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>false</emu-val> }.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.utc" type="built-in function">
|
||
<h1><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> ] ] ] ] ] ] )</h1>
|
||
<p>This function performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>y</var> be ? <emu-xref aoid="ToNumber" id="_ref_10969"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>year</var>).</li><li>If <var>month</var> is present, let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_10970"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>month</var>); else let <var>m</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>date</var> is present, let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_10971"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>date</var>); else let <var>dt</var> be <emu-val>1</emu-val><sub>𝔽</sub>.</li><li>If <var>hours</var> is present, let <var>h</var> be ? <emu-xref aoid="ToNumber" id="_ref_10972"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>hours</var>); else let <var>h</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>minutes</var> is present, let <var>min</var> be ? <emu-xref aoid="ToNumber" id="_ref_10973"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>minutes</var>); else let <var>min</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>seconds</var> is present, let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_10974"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>seconds</var>); else let <var>s</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>If <var>ms</var> is present, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_10975"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>); else let <var>milli</var> be <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>Let <var>yr</var> be <emu-xref aoid="MakeFullYear" id="_ref_10976"><a href="numbers-and-dates.html#sec-makefullyear">MakeFullYear</a></emu-xref>(<var>y</var>).</li><li>Return <emu-xref aoid="TimeClip" id="_ref_10977"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="MakeDate" id="_ref_10978"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_10979"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<var>yr</var>, <var>m</var>, <var>dt</var>), <emu-xref aoid="MakeTime" id="_ref_10980"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<var>h</var>, <var>min</var>, <var>s</var>, <var>milli</var>))).</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this function is <emu-val>7</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>This function differs from the Date <emu-xref href="#constructor" id="_ref_10981"><a href="ecmascript-data-types-and-values.html#constructor">constructor</a></emu-xref> in two ways: it returns a <emu-xref href="#sec-time-values-and-time-range" id="_ref_10982"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> as a Number, rather than creating a Date, and it interprets the arguments in UTC rather than as local time.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-the-date-prototype-object">
|
||
<h1><span class="secnum">21.4.4</span> Properties of the Date Prototype Object</h1>
|
||
<p>The <dfn tabindex="-1">Date prototype object</dfn>:</p>
|
||
<ul>
|
||
<li>is <dfn tabindex="-1">%Date.prototype%</dfn>.</li>
|
||
<li>is itself an <emu-xref href="#ordinary-object" id="_ref_10983"><a href="ecmascript-data-types-and-values.html#ordinary-object">ordinary object</a></emu-xref>.</li>
|
||
<li>is not a Date instance and does not have a <var class="field">[[DateValue]]</var> internal slot.</li>
|
||
<li>has a <var class="field">[[Prototype]]</var> internal slot whose value is <emu-xref href="#sec-properties-of-the-object-prototype-object" id="_ref_10984"><a href="fundamental-objects.html#sec-properties-of-the-object-prototype-object">%Object.prototype%</a></emu-xref>.</li>
|
||
</ul>
|
||
<p>Unless explicitly defined otherwise, the methods of the Date prototype object defined below are not generic and the <emu-val>this</emu-val> value passed to them must be an object that has a <var class="field">[[DateValue]]</var> internal slot that has been initialized to a <emu-xref href="#sec-time-values-and-time-range" id="_ref_10985"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref>.</p>
|
||
|
||
<emu-clause id="sec-date.prototype.constructor">
|
||
<h1><span class="secnum">21.4.4.1</span> Date.prototype.constructor</h1>
|
||
<p>The initial value of <code>Date.prototype.constructor</code> is <emu-xref href="#sec-date-constructor" id="_ref_10986"><a href="numbers-and-dates.html#sec-date-constructor">%Date%</a></emu-xref>.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getdate" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.2</span> Date.prototype.getDate ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_10987"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="DateFromTime" id="_ref_10988"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_10989"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getday" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.3</span> Date.prototype.getDay ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_10990"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="WeekDay" id="_ref_10991"><a href="numbers-and-dates.html#sec-weekday">WeekDay</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_10992"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getfullyear" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.4</span> Date.prototype.getFullYear ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_10993"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="YearFromTime" id="_ref_10994"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_10995"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.gethours" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.5</span> Date.prototype.getHours ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_10996"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="HourFromTime" id="_ref_10997"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_10998"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getmilliseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.6</span> Date.prototype.getMilliseconds ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_10999"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="msFromTime" id="_ref_11000"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_11001"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getminutes" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.7</span> Date.prototype.getMinutes ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11002"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="MinFromTime" id="_ref_11003"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_11004"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getmonth" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.8</span> Date.prototype.getMonth ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11005"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="MonthFromTime" id="_ref_11006"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_11007"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.9</span> Date.prototype.getSeconds ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11008"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="SecFromTime" id="_ref_11009"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<emu-xref aoid="LocalTime" id="_ref_11010"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.gettime" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.10</span> Date.prototype.getTime ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11011"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Return <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.gettimezoneoffset" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.11</span> Date.prototype.getTimezoneOffset ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11012"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return (<var>t</var> - <emu-xref aoid="LocalTime" id="_ref_11013"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>)) / <emu-xref aoid="msPerMinute" id="_ref_11014"><a href="numbers-and-dates.html#eqn-msPerMinute">msPerMinute</a></emu-xref>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutcdate" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.12</span> Date.prototype.getUTCDate ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11015"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="DateFromTime" id="_ref_11016"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutcday" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.13</span> Date.prototype.getUTCDay ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11017"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="WeekDay" id="_ref_11018"><a href="numbers-and-dates.html#sec-weekday">WeekDay</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutcfullyear" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.14</span> Date.prototype.getUTCFullYear ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11019"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="YearFromTime" id="_ref_11020"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutchours" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.15</span> Date.prototype.getUTCHours ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11021"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="HourFromTime" id="_ref_11022"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutcmilliseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.16</span> Date.prototype.getUTCMilliseconds ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11023"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="msFromTime" id="_ref_11024"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutcminutes" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.17</span> Date.prototype.getUTCMinutes ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11025"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="MinFromTime" id="_ref_11026"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutcmonth" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.18</span> Date.prototype.getUTCMonth ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11027"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="MonthFromTime" id="_ref_11028"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.getutcseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.19</span> Date.prototype.getUTCSeconds ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11029"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Return <emu-xref aoid="SecFromTime" id="_ref_11030"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setdate" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.20</span> Date.prototype.setDate ( <var>date</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11031"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_11032"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>date</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_11033"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>newDate</var> be <emu-xref aoid="MakeDate" id="_ref_11034"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_11035"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_11036"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="MonthFromTime" id="_ref_11037"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>), <var>dt</var>), <emu-xref aoid="TimeWithinDay" id="_ref_11038"><a href="numbers-and-dates.html#sec-timewithinday">TimeWithinDay</a></emu-xref>(<var>t</var>)).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_11039"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_11040"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>newDate</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setfullyear" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.21</span> Date.prototype.setFullYear ( <var>year</var> [ , <var>month</var> [ , <var>date</var> ] ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11041"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>y</var> be ? <emu-xref aoid="ToNumber" id="_ref_11042"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>year</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, set <var>t</var> to <emu-val>+0</emu-val><sub>𝔽</sub>; else set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_11043"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>If <var>month</var> is present, let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11044"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>month</var>); else let <var>m</var> be <emu-xref aoid="MonthFromTime" id="_ref_11045"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>date</var> is present, let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_11046"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>date</var>); else let <var>dt</var> be <emu-xref aoid="DateFromTime" id="_ref_11047"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>newDate</var> be <emu-xref aoid="MakeDate" id="_ref_11048"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_11049"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<var>y</var>, <var>m</var>, <var>dt</var>), <emu-xref aoid="TimeWithinDay" id="_ref_11050"><a href="numbers-and-dates.html#sec-timewithinday">TimeWithinDay</a></emu-xref>(<var>t</var>)).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_11051"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_11052"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>newDate</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>3</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>month</var> is not present, this method behaves as if <var>month</var> was present with the value <code>getMonth()</code>. If <var>date</var> is not present, it behaves as if <var>date</var> was present with the value <code>getDate()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.sethours" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.22</span> Date.prototype.setHours ( <var>hour</var> [ , <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11053"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>h</var> be ? <emu-xref aoid="ToNumber" id="_ref_11054"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>hour</var>).</li><li>If <var>min</var> is present, let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11055"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>min</var>).</li><li>If <var>sec</var> is present, let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_11056"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>sec</var>).</li><li>If <var>ms</var> is present, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_11057"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_11058"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>If <var>min</var> is not present, let <var>m</var> be <emu-xref aoid="MinFromTime" id="_ref_11059"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>sec</var> is not present, let <var>s</var> be <emu-xref aoid="SecFromTime" id="_ref_11060"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>ms</var> is not present, let <var>milli</var> be <emu-xref aoid="msFromTime" id="_ref_11061"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>date</var> be <emu-xref aoid="MakeDate" id="_ref_11062"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11063"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <emu-xref aoid="MakeTime" id="_ref_11064"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<var>h</var>, <var>m</var>, <var>s</var>, <var>milli</var>)).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_11065"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_11066"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>date</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>4</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>min</var> is not present, this method behaves as if <var>min</var> was present with the value <code>getMinutes()</code>. If <var>sec</var> is not present, it behaves as if <var>sec</var> was present with the value <code>getSeconds()</code>. If <var>ms</var> is not present, it behaves as if <var>ms</var> was present with the value <code>getMilliseconds()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setmilliseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.23</span> Date.prototype.setMilliseconds ( <var>ms</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11067"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Set <var>ms</var> to ? <emu-xref aoid="ToNumber" id="_ref_11068"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_11069"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>time</var> be <emu-xref aoid="MakeTime" id="_ref_11070"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11071"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="MinFromTime" id="_ref_11072"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="SecFromTime" id="_ref_11073"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>), <var>ms</var>).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_11074"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_11075"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<emu-xref aoid="MakeDate" id="_ref_11076"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11077"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <var>time</var>))).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setminutes" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.24</span> Date.prototype.setMinutes ( <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11078"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11079"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>min</var>).</li><li>If <var>sec</var> is present, let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_11080"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>sec</var>).</li><li>If <var>ms</var> is present, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_11081"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_11082"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>If <var>sec</var> is not present, let <var>s</var> be <emu-xref aoid="SecFromTime" id="_ref_11083"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>ms</var> is not present, let <var>milli</var> be <emu-xref aoid="msFromTime" id="_ref_11084"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>date</var> be <emu-xref aoid="MakeDate" id="_ref_11085"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11086"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <emu-xref aoid="MakeTime" id="_ref_11087"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11088"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>), <var>m</var>, <var>s</var>, <var>milli</var>)).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_11089"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_11090"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>date</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>3</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>sec</var> is not present, this method behaves as if <var>sec</var> was present with the value <code>getSeconds()</code>. If <var>ms</var> is not present, this behaves as if <var>ms</var> was present with the value <code>getMilliseconds()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setmonth" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.25</span> Date.prototype.setMonth ( <var>month</var> [ , <var>date</var> ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11091"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11092"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>month</var>).</li><li>If <var>date</var> is present, let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_11093"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>date</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_11094"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>If <var>date</var> is not present, let <var>dt</var> be <emu-xref aoid="DateFromTime" id="_ref_11095"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>newDate</var> be <emu-xref aoid="MakeDate" id="_ref_11096"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_11097"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_11098"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>), <var>m</var>, <var>dt</var>), <emu-xref aoid="TimeWithinDay" id="_ref_11099"><a href="numbers-and-dates.html#sec-timewithinday">TimeWithinDay</a></emu-xref>(<var>t</var>)).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_11100"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_11101"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>newDate</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>2</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>date</var> is not present, this method behaves as if <var>date</var> was present with the value <code>getDate()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.26</span> Date.prototype.setSeconds ( <var>sec</var> [ , <var>ms</var> ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11102"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_11103"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>sec</var>).</li><li>If <var>ms</var> is present, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_11104"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Set <var>t</var> to <emu-xref aoid="LocalTime" id="_ref_11105"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>t</var>).</li><li>If <var>ms</var> is not present, let <var>milli</var> be <emu-xref aoid="msFromTime" id="_ref_11106"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>date</var> be <emu-xref aoid="MakeDate" id="_ref_11107"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11108"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <emu-xref aoid="MakeTime" id="_ref_11109"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11110"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="MinFromTime" id="_ref_11111"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>), <var>s</var>, <var>milli</var>)).</li><li>Let <var>u</var> be <emu-xref aoid="TimeClip" id="_ref_11112"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="UTC" id="_ref_11113"><a href="numbers-and-dates.html#sec-utc-t">UTC</a></emu-xref>(<var>date</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>u</var>.</li><li>Return <var>u</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>2</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>ms</var> is not present, this method behaves as if <var>ms</var> was present with the value <code>getMilliseconds()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.settime" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.27</span> Date.prototype.setTime ( <var>time</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11114"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be ? <emu-xref aoid="ToNumber" id="_ref_11115"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>time</var>).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11116"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>t</var>).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setutcdate" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.28</span> Date.prototype.setUTCDate ( <var>date</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11117"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_11118"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>date</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Let <var>newDate</var> be <emu-xref aoid="MakeDate" id="_ref_11119"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_11120"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_11121"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="MonthFromTime" id="_ref_11122"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>), <var>dt</var>), <emu-xref aoid="TimeWithinDay" id="_ref_11123"><a href="numbers-and-dates.html#sec-timewithinday">TimeWithinDay</a></emu-xref>(<var>t</var>)).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11124"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>newDate</var>).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setutcfullyear" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.29</span> Date.prototype.setUTCFullYear ( <var>year</var> [ , <var>month</var> [ , <var>date</var> ] ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11125"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, set <var>t</var> to <emu-val>+0</emu-val><sub>𝔽</sub>.</li><li>Let <var>y</var> be ? <emu-xref aoid="ToNumber" id="_ref_11126"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>year</var>).</li><li>If <var>month</var> is present, let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11127"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>month</var>); else let <var>m</var> be <emu-xref aoid="MonthFromTime" id="_ref_11128"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>date</var> is present, let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_11129"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>date</var>); else let <var>dt</var> be <emu-xref aoid="DateFromTime" id="_ref_11130"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>newDate</var> be <emu-xref aoid="MakeDate" id="_ref_11131"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_11132"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<var>y</var>, <var>m</var>, <var>dt</var>), <emu-xref aoid="TimeWithinDay" id="_ref_11133"><a href="numbers-and-dates.html#sec-timewithinday">TimeWithinDay</a></emu-xref>(<var>t</var>)).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11134"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>newDate</var>).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>3</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>month</var> is not present, this method behaves as if <var>month</var> was present with the value <code>getUTCMonth()</code>. If <var>date</var> is not present, it behaves as if <var>date</var> was present with the value <code>getUTCDate()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setutchours" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.30</span> Date.prototype.setUTCHours ( <var>hour</var> [ , <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11135"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>h</var> be ? <emu-xref aoid="ToNumber" id="_ref_11136"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>hour</var>).</li><li>If <var>min</var> is present, let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11137"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>min</var>).</li><li>If <var>sec</var> is present, let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_11138"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>sec</var>).</li><li>If <var>ms</var> is present, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_11139"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>min</var> is not present, let <var>m</var> be <emu-xref aoid="MinFromTime" id="_ref_11140"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>sec</var> is not present, let <var>s</var> be <emu-xref aoid="SecFromTime" id="_ref_11141"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>ms</var> is not present, let <var>milli</var> be <emu-xref aoid="msFromTime" id="_ref_11142"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>date</var> be <emu-xref aoid="MakeDate" id="_ref_11143"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11144"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <emu-xref aoid="MakeTime" id="_ref_11145"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<var>h</var>, <var>m</var>, <var>s</var>, <var>milli</var>)).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11146"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>date</var>).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>4</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>min</var> is not present, this method behaves as if <var>min</var> was present with the value <code>getUTCMinutes()</code>. If <var>sec</var> is not present, it behaves as if <var>sec</var> was present with the value <code>getUTCSeconds()</code>. If <var>ms</var> is not present, it behaves as if <var>ms</var> was present with the value <code>getUTCMilliseconds()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setutcmilliseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.31</span> Date.prototype.setUTCMilliseconds ( <var>ms</var> )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11147"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Set <var>ms</var> to ? <emu-xref aoid="ToNumber" id="_ref_11148"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>Let <var>time</var> be <emu-xref aoid="MakeTime" id="_ref_11149"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11150"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="MinFromTime" id="_ref_11151"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="SecFromTime" id="_ref_11152"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>), <var>ms</var>).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11153"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<emu-xref aoid="MakeDate" id="_ref_11154"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11155"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <var>time</var>)).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setutcminutes" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.32</span> Date.prototype.setUTCMinutes ( <var>min</var> [ , <var>sec</var> [ , <var>ms</var> ] ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11156"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11157"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>min</var>).</li><li>If <var>sec</var> is present, let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_11158"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>sec</var>).</li><li>If <var>ms</var> is present, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_11159"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>sec</var> is not present, let <var>s</var> be <emu-xref aoid="SecFromTime" id="_ref_11160"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>t</var>).</li><li>If <var>ms</var> is not present, let <var>milli</var> be <emu-xref aoid="msFromTime" id="_ref_11161"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>date</var> be <emu-xref aoid="MakeDate" id="_ref_11162"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11163"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <emu-xref aoid="MakeTime" id="_ref_11164"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11165"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>), <var>m</var>, <var>s</var>, <var>milli</var>)).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11166"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>date</var>).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>3</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>sec</var> is not present, this method behaves as if <var>sec</var> was present with the value <code>getUTCSeconds()</code>. If <var>ms</var> is not present, it behaves as if <var>ms</var> was present with the value return by <code>getUTCMilliseconds()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setutcmonth" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.33</span> Date.prototype.setUTCMonth ( <var>month</var> [ , <var>date</var> ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11167"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>m</var> be ? <emu-xref aoid="ToNumber" id="_ref_11168"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>month</var>).</li><li>If <var>date</var> is present, let <var>dt</var> be ? <emu-xref aoid="ToNumber" id="_ref_11169"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>date</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>date</var> is not present, let <var>dt</var> be <emu-xref aoid="DateFromTime" id="_ref_11170"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>newDate</var> be <emu-xref aoid="MakeDate" id="_ref_11171"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="MakeDay" id="_ref_11172"><a href="numbers-and-dates.html#sec-makeday">MakeDay</a></emu-xref>(<emu-xref aoid="YearFromTime" id="_ref_11173"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>t</var>), <var>m</var>, <var>dt</var>), <emu-xref aoid="TimeWithinDay" id="_ref_11174"><a href="numbers-and-dates.html#sec-timewithinday">TimeWithinDay</a></emu-xref>(<var>t</var>)).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11175"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>newDate</var>).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>2</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>date</var> is not present, this method behaves as if <var>date</var> was present with the value <code>getUTCDate()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.setutcseconds" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.34</span> Date.prototype.setUTCSeconds ( <var>sec</var> [ , <var>ms</var> ] )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11176"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>t</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Let <var>s</var> be ? <emu-xref aoid="ToNumber" id="_ref_11177"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>sec</var>).</li><li>If <var>ms</var> is present, let <var>milli</var> be ? <emu-xref aoid="ToNumber" id="_ref_11178"><a href="abstract-operations.html#sec-tonumber" class="e-user-code">ToNumber</a></emu-xref>(<var>ms</var>).</li><li>If <var>t</var> is <emu-val>NaN</emu-val>, return <emu-val>NaN</emu-val>.</li><li>If <var>ms</var> is not present, let <var>milli</var> be <emu-xref aoid="msFromTime" id="_ref_11179"><a href="numbers-and-dates.html#sec-msfromtime">msFromTime</a></emu-xref>(<var>t</var>).</li><li>Let <var>date</var> be <emu-xref aoid="MakeDate" id="_ref_11180"><a href="numbers-and-dates.html#sec-makedate">MakeDate</a></emu-xref>(<emu-xref aoid="Day" id="_ref_11181"><a href="numbers-and-dates.html#sec-day">Day</a></emu-xref>(<var>t</var>), <emu-xref aoid="MakeTime" id="_ref_11182"><a href="numbers-and-dates.html#sec-maketime">MakeTime</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11183"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>t</var>), <emu-xref aoid="MinFromTime" id="_ref_11184"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>t</var>), <var>s</var>, <var>milli</var>)).</li><li>Let <var>v</var> be <emu-xref aoid="TimeClip" id="_ref_11185"><a href="numbers-and-dates.html#sec-timeclip">TimeClip</a></emu-xref>(<var>date</var>).</li><li>Set <var>dateObject</var>.<var class="field">[[DateValue]]</var> to <var>v</var>.</li><li>Return <var>v</var>.</li></ol></emu-alg>
|
||
<p>The <emu-val>"length"</emu-val> property of this method is <emu-val>2</emu-val><sub>𝔽</sub>.</p>
|
||
<emu-note><span class="note">Note</span><div class="note-contents">
|
||
<p>If <var>ms</var> is not present, this method behaves as if <var>ms</var> was present with the value <code>getUTCMilliseconds()</code>.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.todatestring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.35</span> Date.prototype.toDateString ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11186"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>tv</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>tv</var> is <emu-val>NaN</emu-val>, return <emu-val>"Invalid Date"</emu-val>.</li><li>Let <var>t</var> be <emu-xref aoid="LocalTime" id="_ref_11187"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>tv</var>).</li><li>Return <emu-xref aoid="DateString" id="_ref_11188"><a href="numbers-and-dates.html#sec-datestring">DateString</a></emu-xref>(<var>t</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.toisostring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.36</span> Date.prototype.toISOString ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11189"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>tv</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>tv</var> is <emu-val>NaN</emu-val>, throw a <emu-val>RangeError</emu-val> exception.</li><li><emu-xref href="#assert" id="_ref_11190"><a href="notational-conventions.html#assert">Assert</a></emu-xref>: <var>tv</var> is an <emu-xref href="#integral-number" id="_ref_11191"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>.</li><li>If <var>tv</var> corresponds with a year that cannot be represented in the <emu-xref href="#sec-date-time-string-format" id="_ref_652"><a href="numbers-and-dates.html#sec-date-time-string-format">Date Time String Format</a></emu-xref>, throw a <emu-val>RangeError</emu-val> exception.</li><li>Return a String representation of <var>tv</var> in the <emu-xref href="#sec-date-time-string-format" id="_ref_653"><a href="numbers-and-dates.html#sec-date-time-string-format">Date Time String Format</a></emu-xref> on the UTC time scale, including all format elements and the UTC offset representation <emu-val>"Z"</emu-val>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.tojson" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.37</span> Date.prototype.toJSON ( <var>key</var> )</h1>
|
||
<p>This method provides a String representation of a Date for use by <code>JSON.stringify</code> (<emu-xref href="#sec-json.stringify" id="_ref_654"><a href="structured-data.html#sec-json.stringify">25.5.2</a></emu-xref>).</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>O</var> be ? <emu-xref aoid="ToObject" id="_ref_11192"><a href="abstract-operations.html#sec-toobject">ToObject</a></emu-xref>(<emu-val>this</emu-val> value).</li><li>Let <var>tv</var> be ? <emu-xref aoid="ToPrimitive" id="_ref_11193"><a href="abstract-operations.html#sec-toprimitive" class="e-user-code">ToPrimitive</a></emu-xref>(<var>O</var>, <emu-const>number</emu-const>).</li><li>If <var>tv</var> <emu-xref href="#sec-ecmascript-language-types-number-type" id="_ref_11194"><a href="ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type">is a Number</a></emu-xref> and <var>tv</var> is not <emu-xref href="#finite" id="_ref_11195"><a href="ecmascript-data-types-and-values.html#finite">finite</a></emu-xref>, return <emu-val>null</emu-val>.</li><li>Return ? <emu-xref aoid="Invoke" id="_ref_11196"><a href="abstract-operations.html#sec-invoke" class="e-user-code">Invoke</a></emu-xref>(<var>O</var>, <emu-val>"toISOString"</emu-val>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>The argument is ignored.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>This method is intentionally generic; it does not require that its <emu-val>this</emu-val> value be a Date. Therefore, it can be transferred to other kinds of objects for use as a method. However, it does require that any such object have a <code>toISOString</code> method.</p>
|
||
</div></emu-note>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.tolocaledatestring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.38</span> Date.prototype.toLocaleDateString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</h1>
|
||
<p>An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement this method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of this method is used:</p>
|
||
<p>This method returns a String value. The contents of the String are <emu-xref href="#implementation-defined" id="_ref_11197"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref>, but are intended to represent the “date” portion of the Date in the current time zone in a convenient, human-readable form that corresponds to the conventions of the <emu-xref href="#host-environment" id="_ref_11198"><a href="overview.html#host-environment">host environment</a></emu-xref>'s current locale.</p>
|
||
<p>The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.tolocalestring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.39</span> Date.prototype.toLocaleString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</h1>
|
||
<p>An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement this method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of this method is used:</p>
|
||
<p>This method returns a String value. The contents of the String are <emu-xref href="#implementation-defined" id="_ref_11199"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref>, but are intended to represent the Date in the current time zone in a convenient, human-readable form that corresponds to the conventions of the <emu-xref href="#host-environment" id="_ref_11200"><a href="overview.html#host-environment">host environment</a></emu-xref>'s current locale.</p>
|
||
<p>The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.tolocaletimestring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.40</span> Date.prototype.toLocaleTimeString ( [ <var>reserved1</var> [ , <var>reserved2</var> ] ] )</h1>
|
||
<p>An ECMAScript implementation that includes the ECMA-402 Internationalization API must implement this method as specified in the ECMA-402 specification. If an ECMAScript implementation does not include the ECMA-402 API the following specification of this method is used:</p>
|
||
<p>This method returns a String value. The contents of the String are <emu-xref href="#implementation-defined" id="_ref_11201"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref>, but are intended to represent the “time” portion of the Date in the current time zone in a convenient, human-readable form that corresponds to the conventions of the <emu-xref href="#host-environment" id="_ref_11202"><a href="overview.html#host-environment">host environment</a></emu-xref>'s current locale.</p>
|
||
<p>The meaning of the optional parameters to this method are defined in the ECMA-402 specification; implementations that do not include ECMA-402 support must not use those parameter positions for anything else.</p>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.tostring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.41</span> Date.prototype.toString ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11203"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>tv</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>Return <emu-xref aoid="ToDateString" id="_ref_11204"><a href="numbers-and-dates.html#sec-todatestring">ToDateString</a></emu-xref>(<var>tv</var>).</li></ol></emu-alg>
|
||
<emu-note><span class="note">Note 1</span><div class="note-contents">
|
||
<p>For any Date <code>d</code> such that <code>d.<var class="field">[[DateValue]]</var></code> is evenly divisible by 1000, the result of <code>Date.parse(d.toString())</code> = <code>d.valueOf()</code>. See <emu-xref href="#sec-date.parse" id="_ref_655"><a href="numbers-and-dates.html#sec-date.parse">21.4.3.2</a></emu-xref>.</p>
|
||
</div></emu-note>
|
||
<emu-note><span class="note">Note 2</span><div class="note-contents">
|
||
<p>This method is not generic; it throws a <emu-val>TypeError</emu-val> exception if its <emu-val>this</emu-val> value is not a Date. Therefore, it cannot be transferred to other kinds of objects for use as a method.</p>
|
||
</div></emu-note>
|
||
|
||
<emu-clause id="sec-timestring" type="abstract operation" aoid="TimeString">
|
||
<h1><span class="secnum">21.4.4.41.1</span> TimeString ( <var>tv</var> )</h1>
|
||
<p>The abstract operation TimeString takes argument <var>tv</var> (a Number, but not <emu-val>NaN</emu-val>) and returns a String. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>hour</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11205"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11206"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11207"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>tv</var>)), 2).</li><li>Let <var>minute</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11208"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11209"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="MinFromTime" id="_ref_11210"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>tv</var>)), 2).</li><li>Let <var>second</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11211"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11212"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="SecFromTime" id="_ref_11213"><a href="numbers-and-dates.html#sec-secfromtime">SecFromTime</a></emu-xref>(<var>tv</var>)), 2).</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_11214"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>hour</var>, <emu-val>":"</emu-val>, <var>minute</var>, <emu-val>":"</emu-val>, <var>second</var>, the code unit 0x0020 (SPACE), and <emu-val>"GMT"</emu-val>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-datestring" type="abstract operation" aoid="DateString">
|
||
<h1><span class="secnum">21.4.4.41.2</span> DateString ( <var>tv</var> )</h1>
|
||
<p>The abstract operation DateString takes argument <var>tv</var> (a Number, but not <emu-val>NaN</emu-val>) and returns a String. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>weekday</var> be the Name of the entry in <emu-xref href="#sec-todatestring-day-names" id="_ref_656"><a href="numbers-and-dates.html#sec-todatestring-day-names">Table 60</a></emu-xref> with the Number <emu-xref aoid="WeekDay" id="_ref_11215"><a href="numbers-and-dates.html#sec-weekday">WeekDay</a></emu-xref>(<var>tv</var>).</li><li>Let <var>month</var> be the Name of the entry in <emu-xref href="#sec-todatestring-month-names" id="_ref_657"><a href="numbers-and-dates.html#sec-todatestring-month-names">Table 61</a></emu-xref> with the Number <emu-xref aoid="MonthFromTime" id="_ref_11216"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>tv</var>).</li><li>Let <var>day</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11217"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11218"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="DateFromTime" id="_ref_11219"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>tv</var>)), 2).</li><li>Let <var>yv</var> be <emu-xref aoid="YearFromTime" id="_ref_11220"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>tv</var>).</li><li>If <var>yv</var> is <emu-val>+0</emu-val><sub>𝔽</sub> or <var>yv</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, let <var>yearSign</var> be the empty String; else let <var>yearSign</var> be <emu-val>"-"</emu-val>.</li><li>Let <var>paddedYear</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11221"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="abs" id="_ref_11222"><a href="notational-conventions.html#eqn-abs">abs</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11223"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>yv</var>)), 4).</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_11224"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>weekday</var>, the code unit 0x0020 (SPACE), <var>month</var>, the code unit 0x0020 (SPACE), <var>day</var>, the code unit 0x0020 (SPACE), <var>yearSign</var>, and <var>paddedYear</var>.</li></ol></emu-alg>
|
||
<emu-table id="sec-todatestring-day-names" caption="Names of days of the week"><figure><figcaption>Table 60: Names of days of the week</figcaption>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>
|
||
Number
|
||
</th>
|
||
<th>
|
||
Name
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr>
|
||
<td>
|
||
<emu-val>+0</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Sun"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>1</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Mon"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>2</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Tue"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>3</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Wed"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>4</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Thu"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>5</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Fri"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>6</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Sat"</emu-val>
|
||
</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure></emu-table>
|
||
<emu-table id="sec-todatestring-month-names" caption="Names of months of the year"><figure><figcaption>Table 61: Names of months of the year</figcaption>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>
|
||
Number
|
||
</th>
|
||
<th>
|
||
Name
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr>
|
||
<td>
|
||
<emu-val>+0</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Jan"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>1</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Feb"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>2</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Mar"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>3</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Apr"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>4</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"May"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>5</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Jun"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>6</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Jul"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>7</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Aug"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>8</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Sep"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>9</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Oct"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>10</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Nov"</emu-val>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<emu-val>11</emu-val><sub>𝔽</sub>
|
||
</td>
|
||
<td>
|
||
<emu-val>"Dec"</emu-val>
|
||
</td>
|
||
</tr>
|
||
</tbody></table>
|
||
</figure></emu-table>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-timezoneestring" type="abstract operation" aoid="TimeZoneString">
|
||
<h1><span class="secnum">21.4.4.41.3</span> TimeZoneString ( <var>tv</var> )</h1>
|
||
<p>The abstract operation TimeZoneString takes argument <var>tv</var> (an <emu-xref href="#integral-number" id="_ref_11225"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref>) and returns a String. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>systemTimeZoneIdentifier</var> be <emu-xref aoid="SystemTimeZoneIdentifier" id="_ref_11226"><a href="numbers-and-dates.html#sec-systemtimezoneidentifier">SystemTimeZoneIdentifier</a></emu-xref>().</li><li>If <emu-xref aoid="IsTimeZoneOffsetString" id="_ref_11227"><a href="numbers-and-dates.html#sec-istimezoneoffsetstring">IsTimeZoneOffsetString</a></emu-xref>(<var>systemTimeZoneIdentifier</var>) is <emu-val>true</emu-val>, then<ol><li>Let <var>offsetNs</var> be <emu-xref aoid="ParseTimeZoneOffsetString" id="_ref_11228"><a href="numbers-and-dates.html#sec-parsetimezoneoffsetstring">ParseTimeZoneOffsetString</a></emu-xref>(<var>systemTimeZoneIdentifier</var>).</li></ol></li><li>Else,<ol><li>Let <var>offsetNs</var> be <emu-xref aoid="GetNamedTimeZoneOffsetNanoseconds" id="_ref_11229"><a href="numbers-and-dates.html#sec-getnamedtimezoneoffsetnanoseconds">GetNamedTimeZoneOffsetNanoseconds</a></emu-xref>(<var>systemTimeZoneIdentifier</var>, <emu-xref aoid="ℤ" id="_ref_11230"><a href="notational-conventions.html#%E2%84%A4">ℤ</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11231"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>tv</var>) × 10<sup>6</sup>)).</li></ol></li><li>Let <var>offset</var> be <emu-xref aoid="𝔽" id="_ref_11232"><a href="notational-conventions.html#%F0%9D%94%BD">𝔽</a></emu-xref>(<emu-xref aoid="truncate" id="_ref_11233"><a href="notational-conventions.html#eqn-truncate">truncate</a></emu-xref>(<var>offsetNs</var> / 10<sup>6</sup>)).</li><li>If <var>offset</var> is <emu-val>+0</emu-val><sub>𝔽</sub> or <var>offset</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, then<ol><li>Let <var>offsetSign</var> be <emu-val>"+"</emu-val>.</li><li>Let <var>absOffset</var> be <var>offset</var>.</li></ol></li><li>Else,<ol><li>Let <var>offsetSign</var> be <emu-val>"-"</emu-val>.</li><li>Let <var>absOffset</var> be -<var>offset</var>.</li></ol></li><li>Let <var>offsetMin</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11234"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11235"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="MinFromTime" id="_ref_11236"><a href="numbers-and-dates.html#sec-minfromtime">MinFromTime</a></emu-xref>(<var>absOffset</var>)), 2).</li><li>Let <var>offsetHour</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11237"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11238"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="HourFromTime" id="_ref_11239"><a href="numbers-and-dates.html#sec-hourfromtime">HourFromTime</a></emu-xref>(<var>absOffset</var>)), 2).</li><li>Let <var>tzName</var> be an <emu-xref href="#implementation-defined" id="_ref_11240"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> string that is either the empty String or the <emu-xref href="#string-concatenation" id="_ref_11241"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of the code unit 0x0020 (SPACE), the code unit 0x0028 (LEFT PARENTHESIS), an <emu-xref href="#implementation-defined" id="_ref_11242"><a href="overview.html#implementation-defined">implementation-defined</a></emu-xref> timezone name, and the code unit 0x0029 (RIGHT PARENTHESIS).</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_11243"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>offsetSign</var>, <var>offsetHour</var>, <var>offsetMin</var>, and <var>tzName</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-todatestring" type="abstract operation" aoid="ToDateString">
|
||
<h1><span class="secnum">21.4.4.41.4</span> ToDateString ( <var>tv</var> )</h1>
|
||
<p>The abstract operation ToDateString takes argument <var>tv</var> (an <emu-xref href="#integral-number" id="_ref_11244"><a href="notational-conventions.html#integral-number">integral Number</a></emu-xref> or <emu-val>NaN</emu-val>) and returns a String. It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>If <var>tv</var> is <emu-val>NaN</emu-val>, return <emu-val>"Invalid Date"</emu-val>.</li><li>Let <var>t</var> be <emu-xref aoid="LocalTime" id="_ref_11245"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>tv</var>).</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_11246"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <emu-xref aoid="DateString" id="_ref_11247"><a href="numbers-and-dates.html#sec-datestring">DateString</a></emu-xref>(<var>t</var>), the code unit 0x0020 (SPACE), <emu-xref aoid="TimeString" id="_ref_11248"><a href="numbers-and-dates.html#sec-timestring">TimeString</a></emu-xref>(<var>t</var>), and <emu-xref aoid="TimeZoneString" id="_ref_11249"><a href="numbers-and-dates.html#sec-timezoneestring">TimeZoneString</a></emu-xref>(<var>tv</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.totimestring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.42</span> Date.prototype.toTimeString ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11250"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>tv</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>tv</var> is <emu-val>NaN</emu-val>, return <emu-val>"Invalid Date"</emu-val>.</li><li>Let <var>t</var> be <emu-xref aoid="LocalTime" id="_ref_11251"><a href="numbers-and-dates.html#sec-localtime">LocalTime</a></emu-xref>(<var>tv</var>).</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_11252"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <emu-xref aoid="TimeString" id="_ref_11253"><a href="numbers-and-dates.html#sec-timestring">TimeString</a></emu-xref>(<var>t</var>) and <emu-xref aoid="TimeZoneString" id="_ref_11254"><a href="numbers-and-dates.html#sec-timezoneestring">TimeZoneString</a></emu-xref>(<var>tv</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.toutcstring" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.43</span> Date.prototype.toUTCString ( )</h1>
|
||
<p>This method returns a String value representing the instant in time corresponding to the <emu-val>this</emu-val> value. The format of the String is based upon "HTTP-date" from RFC 7231, generalized to support the full range of times supported by ECMAScript Dates.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11255"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Let <var>tv</var> be <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li><li>If <var>tv</var> is <emu-val>NaN</emu-val>, return <emu-val>"Invalid Date"</emu-val>.</li><li>Let <var>weekday</var> be the Name of the entry in <emu-xref href="#sec-todatestring-day-names" id="_ref_658"><a href="numbers-and-dates.html#sec-todatestring-day-names">Table 60</a></emu-xref> with the Number <emu-xref aoid="WeekDay" id="_ref_11256"><a href="numbers-and-dates.html#sec-weekday">WeekDay</a></emu-xref>(<var>tv</var>).</li><li>Let <var>month</var> be the Name of the entry in <emu-xref href="#sec-todatestring-month-names" id="_ref_659"><a href="numbers-and-dates.html#sec-todatestring-month-names">Table 61</a></emu-xref> with the Number <emu-xref aoid="MonthFromTime" id="_ref_11257"><a href="numbers-and-dates.html#sec-monthfromtime">MonthFromTime</a></emu-xref>(<var>tv</var>).</li><li>Let <var>day</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11258"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11259"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<emu-xref aoid="DateFromTime" id="_ref_11260"><a href="numbers-and-dates.html#sec-datefromtime">DateFromTime</a></emu-xref>(<var>tv</var>)), 2).</li><li>Let <var>yv</var> be <emu-xref aoid="YearFromTime" id="_ref_11261"><a href="numbers-and-dates.html#sec-yearfromtime">YearFromTime</a></emu-xref>(<var>tv</var>).</li><li>If <var>yv</var> is <emu-val>+0</emu-val><sub>𝔽</sub> or <var>yv</var> > <emu-val>+0</emu-val><sub>𝔽</sub>, let <var>yearSign</var> be the empty String; else let <var>yearSign</var> be <emu-val>"-"</emu-val>.</li><li>Let <var>paddedYear</var> be <emu-xref aoid="ToZeroPaddedDecimalString" id="_ref_11262"><a href="text-processing.html#sec-tozeropaddeddecimalstring">ToZeroPaddedDecimalString</a></emu-xref>(<emu-xref aoid="abs" id="_ref_11263"><a href="notational-conventions.html#eqn-abs">abs</a></emu-xref>(<emu-xref aoid="ℝ" id="_ref_11264"><a href="notational-conventions.html#%E2%84%9D">ℝ</a></emu-xref>(<var>yv</var>)), 4).</li><li>Return the <emu-xref href="#string-concatenation" id="_ref_11265"><a href="ecmascript-data-types-and-values.html#string-concatenation">string-concatenation</a></emu-xref> of <var>weekday</var>, <emu-val>","</emu-val>, the code unit 0x0020 (SPACE), <var>day</var>, the code unit 0x0020 (SPACE), <var>month</var>, the code unit 0x0020 (SPACE), <var>yearSign</var>, <var>paddedYear</var>, the code unit 0x0020 (SPACE), and <emu-xref aoid="TimeString" id="_ref_11266"><a href="numbers-and-dates.html#sec-timestring">TimeString</a></emu-xref>(<var>tv</var>).</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-date.prototype.valueof" type="built-in function">
|
||
<h1><span class="secnum">21.4.4.44</span> Date.prototype.valueOf ( )</h1>
|
||
<p>This method performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>dateObject</var> be the <emu-val>this</emu-val> value.</li><li>Perform ? <emu-xref aoid="RequireInternalSlot" id="_ref_11267"><a href="ordinary-and-exotic-objects-behaviours.html#sec-requireinternalslot">RequireInternalSlot</a></emu-xref>(<var>dateObject</var>, <var class="field">[[DateValue]]</var>).</li><li>Return <var>dateObject</var>.<var class="field">[[DateValue]]</var>.</li></ol></emu-alg>
|
||
</emu-clause>
|
||
|
||
<emu-clause oldids="sec-date.prototype-@@toprimitive" id="sec-date.prototype-%symbol.toprimitive%" type="built-in function"><span id="sec-date.prototype-@@toprimitive"></span>
|
||
<h1><span class="secnum">21.4.4.45</span> Date.prototype [ %Symbol.toPrimitive% ] ( <var>hint</var> )</h1>
|
||
<p>This method is called by ECMAScript language operators to convert a Date to a primitive value. The allowed values for <var>hint</var> are <emu-val>"default"</emu-val>, <emu-val>"number"</emu-val>, and <emu-val>"string"</emu-val>. Dates are unique among built-in ECMAScript object in that they treat <emu-val>"default"</emu-val> as being equivalent to <emu-val>"string"</emu-val>, All other built-in ECMAScript objects treat <emu-val>"default"</emu-val> as being equivalent to <emu-val>"number"</emu-val>.</p>
|
||
<p>It performs the following steps when called:</p>
|
||
<emu-alg><ol><li>Let <var>O</var> be the <emu-val>this</emu-val> value.</li><li>If <var>O</var> <emu-xref href="#sec-object-type" id="_ref_11268"><a href="ecmascript-data-types-and-values.html#sec-object-type">is not an Object</a></emu-xref>, throw a <emu-val>TypeError</emu-val> exception.</li><li>If <var>hint</var> is either <emu-val>"string"</emu-val> or <emu-val>"default"</emu-val>, then<ol><li>Let <var>tryFirst</var> be <emu-const>string</emu-const>.</li></ol></li><li>Else if <var>hint</var> is <emu-val>"number"</emu-val>, then<ol><li>Let <var>tryFirst</var> be <emu-const>number</emu-const>.</li></ol></li><li>Else,<ol><li>Throw a <emu-val>TypeError</emu-val> exception.</li></ol></li><li>Return ? <emu-xref aoid="OrdinaryToPrimitive" id="_ref_11269"><a href="abstract-operations.html#sec-ordinarytoprimitive" class="e-user-code">OrdinaryToPrimitive</a></emu-xref>(<var>O</var>, <var>tryFirst</var>).</li></ol></emu-alg>
|
||
<p>This property has the attributes { <var class="field">[[Writable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Enumerable]]</var>: <emu-val>false</emu-val>, <var class="field">[[Configurable]]</var>: <emu-val>true</emu-val> }.</p>
|
||
<p>The value of the <emu-val>"name"</emu-val> property of this method is <emu-val>"[Symbol.toPrimitive]"</emu-val>.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
|
||
<emu-clause id="sec-properties-of-date-instances">
|
||
<h1><span class="secnum">21.4.5</span> Properties of Date Instances</h1>
|
||
<p>Date instances are <emu-xref href="#ordinary-object" id="_ref_11270"><a href="ecmascript-data-types-and-values.html#ordinary-object">ordinary objects</a></emu-xref> that inherit properties from the <emu-xref href="#sec-properties-of-the-date-prototype-object" id="_ref_11271"><a href="numbers-and-dates.html#sec-properties-of-the-date-prototype-object">Date prototype object</a></emu-xref>. Date instances also have a <var class="field">[[DateValue]]</var> internal slot. The <var class="field">[[DateValue]]</var> internal slot is the <emu-xref href="#sec-time-values-and-time-range" id="_ref_11272"><a href="numbers-and-dates.html#sec-time-values-and-time-range">time value</a></emu-xref> represented by this Date.</p>
|
||
</emu-clause>
|
||
</emu-clause>
|
||
</emu-clause></div></body> |