18 The Global Object
The global object:
- is created before control enters any
execution context . - does not have a [[Construct]] internal method; it cannot be used as a
constructor with thenewoperator. - does not have a [[Call]] internal method; it cannot be invoked as a function.
- has a [[Prototype]] internal slot whose value is implementation-dependent.
- may have host defined properties in addition to the properties defined in this specification. This may include a property whose value is the global object itself.
18.1 Value Properties of the Global Object
18.1.1 Infinity
The value of Infinity is
18.1.2 NaN
The value of NaN is
18.1.3 undefined
The value of undefined is
18.2 Function Properties of the Global Object
18.2.1 eval ( x )
The eval function is the eval function is called with one argument x, the following steps are taken:
Assert : Theexecution context stack has at least two elements.- Let callerContext be the second to top element of the
execution context stack . - Let callerRealm be callerContext's
Realm . - Let calleeRealm be
the current Realm Record . - Perform ?
HostEnsureCanCompileStrings (callerRealm, calleeRealm). - Return ?
PerformEval (x, calleeRealm,false ,false ).
18.2.1.1 Runtime Semantics: PerformEval ( x, evalRealm, strictCaller, direct )
The abstract operation PerformEval with arguments x, evalRealm, strictCaller, and direct performs the following steps:
Assert : If direct isfalse , then strictCaller is alsofalse .- If
Type (x) is not String, return x. - Let thisEnvRec be !
GetThisEnvironment (). - If thisEnvRec is a
function Environment Record , then- Let F be thisEnvRec.[[FunctionObject]].
- Let inFunction be
true . - Let inMethod be thisEnvRec.HasSuperBinding().
- If F.[[ConstructorKind]] is
"derived", let inDerivedConstructor betrue ; otherwise, let inDerivedConstructor befalse .
- Else,
- Let inFunction be
false . - Let inMethod be
false . - Let inDerivedConstructor be
false .
- Let inFunction be
- Let script be the ECMAScript code that is the result of parsing x, interpreted as UTF-16 encoded Unicode text as described in
6.1.4 , for thegoal symbol Script . If inFunction isfalse , additionalearly error rules from18.2.1.1.1 are applied. If inMethod isfalse , additionalearly error rules from18.2.1.1.2 are applied. If inDerivedConstructor isfalse , additionalearly error rules from18.2.1.1.3 are applied. If the parse fails, throw aSyntaxError exception. If any early errors are detected, throw aSyntaxError or aReferenceError exception, depending on thetype of the error (but see also clause16 ). Parsing andearly error detection may be interweaved in an implementation-dependent manner. - If script Contains
ScriptBody isfalse , returnundefined . - Let body be the
ScriptBody of script. - If strictCaller is
true , let strictEval betrue . - Else, let strictEval be IsStrict of script.
- Let ctx be the
running execution context . - NOTE: If direct is
true , ctx will be theexecution context that performed thedirect eval . If direct isfalse , ctx will be theexecution context for the invocation of theevalfunction. - If direct is
true , then- Let lexEnv be
NewDeclarativeEnvironment (ctx's LexicalEnvironment). - Let varEnv be ctx's VariableEnvironment.
- Let lexEnv be
- Else,
- Let lexEnv be
NewDeclarativeEnvironment (evalRealm.[[GlobalEnv]]). - Let varEnv be evalRealm.[[GlobalEnv]].
- Let lexEnv be
- If strictEval is
true , set varEnv to lexEnv. - If ctx is not already suspended, suspend ctx.
- Let evalCxt be a new ECMAScript code
execution context . Set the evalCxt's Function tonull .Set the evalCxt'sRealm to evalRealm.Set the evalCxt's ScriptOrModule to ctx's ScriptOrModule.Set the evalCxt's VariableEnvironment to varEnv.Set the evalCxt's LexicalEnvironment to lexEnv.- Push evalCxt on to the
execution context stack ; evalCxt is now therunning execution context . - Let result be
EvalDeclarationInstantiation (body, varEnv, lexEnv, strictEval). - If result.[[Type]] is
normal , thenSet result to the result of evaluating body.
- If result.[[Type]] is
normal and result.[[Value]] isempty , thenSet result toNormalCompletion (undefined ).
Suspend evalCxt and remove it from theexecution context stack .- Resume the context that is now on the top of the
execution context stack as therunning execution context . - Return
Completion (result).
The eval code cannot instantiate variable or function bindings in the variable environment of the calling context that invoked the eval if the calling context is evaluating formal parameter initializers or if either the code of the calling context or the eval code is let, const, or class declarations are always instantiated in a new LexicalEnvironment.
18.2.1.1.1 Additional Early Error Rules for Eval Outside Functions
These
- It is a Syntax Error if
StatementList ContainsNewTarget .
18.2.1.1.2 Additional Early Error Rules for Eval Outside Methods
These
- It is a Syntax Error if
StatementList ContainsSuperProperty .
18.2.1.1.3 Additional Early Error Rules for Eval Outside Constructor Methods
These
- It is a Syntax Error if
StatementList ContainsSuperCall .
18.2.1.2 HostEnsureCanCompileStrings ( callerRealm, calleeRealm )
HostEnsureCanCompileStrings is an implementation-defined abstract operation that allows host environments to block certain ECMAScript functions which allow developers to compile strings into ECMAScript code.
An implementation of HostEnsureCanCompileStrings may complete normally or abruptly. Any abrupt completions will be propagated to its callers. The default implementation of HostEnsureCanCompileStrings is to unconditionally return an empty normal completion.
18.2.1.3 Runtime Semantics: EvalDeclarationInstantiation ( body, varEnv, lexEnv, strict )
When the abstract operation EvalDeclarationInstantiation is called with arguments body, varEnv, lexEnv, and strict, the following steps are taken:
- Let varNames be the VarDeclaredNames of body.
- Let varDeclarations be the VarScopedDeclarations of body.
- Let lexEnvRec be lexEnv's
EnvironmentRecord . - Let varEnvRec be varEnv's
EnvironmentRecord . - If strict is
false , then- If varEnvRec is a global
Environment Record , then- For each name in varNames, do
- If varEnvRec.HasLexicalDeclaration(name) is
true , throw aSyntaxError exception. - NOTE:
evalwill not create a global var declaration that would be shadowed by a global lexical declaration.
- If varEnvRec.HasLexicalDeclaration(name) is
- For each name in varNames, do
- Let thisLex be lexEnv.
Assert : The following loop will terminate.- Repeat, while thisLex is not the same as varEnv,
- Let thisEnvRec be thisLex's
EnvironmentRecord . - If thisEnvRec is not an object
Environment Record , then- NOTE: The environment of with statements cannot contain any lexical declaration so it doesn't need to be checked for var/let hoisting conflicts.
- For each name in varNames, do
- If thisEnvRec.HasBinding(name) is
true , then- Throw a
SyntaxError exception. - NOTE: Annex
B.3.5 defines alternate semantics for the above step.
- Throw a
- NOTE: A
direct eval will not hoist var declaration over a like-named lexical declaration.
- If thisEnvRec.HasBinding(name) is
Set thisLex to thisLex's outer environment reference.
- Let thisEnvRec be thisLex's
- If varEnvRec is a global
- Let functionsToInitialize be a new empty
List . - Let declaredFunctionNames be a new empty
List . - For each d in varDeclarations, in reverse list order, do
- If d is neither a
VariableDeclaration nor aForBinding nor aBindingIdentifier , thenAssert : d is either aFunctionDeclaration , aGeneratorDeclaration , anAsyncFunctionDeclaration , or anAsyncGeneratorDeclaration .- NOTE: If there are multiple function declarations for the same name, the last declaration is used.
- Let fn be the sole element of the BoundNames of d.
- If fn is not an element of declaredFunctionNames, then
- If varEnvRec is a global
Environment Record , then- Let fnDefinable be ? varEnvRec.CanDeclareGlobalFunction(fn).
- If fnDefinable is
false , throw aTypeError exception.
- Append fn to declaredFunctionNames.
- Insert d as the first element of functionsToInitialize.
- If varEnvRec is a global
- If d is neither a
- NOTE: Annex
B.3.3.3 adds additional steps at this point. - Let declaredVarNames be a new empty
List . - For each d in varDeclarations, do
- If d is a
VariableDeclaration , aForBinding , or aBindingIdentifier , then- For each String vn in the BoundNames of d, do
- If vn is not an element of declaredFunctionNames, then
- If varEnvRec is a global
Environment Record , then- Let vnDefinable be ? varEnvRec.CanDeclareGlobalVar(vn).
- If vnDefinable is
false , throw aTypeError exception.
- If vn is not an element of declaredVarNames, then
- Append vn to declaredVarNames.
- If varEnvRec is a global
- If vn is not an element of declaredFunctionNames, then
- For each String vn in the BoundNames of d, do
- If d is a
- NOTE: No abnormal terminations occur after this algorithm step unless varEnvRec is a global
Environment Record and theglobal object is a Proxyexotic object . - Let lexDeclarations be the LexicallyScopedDeclarations of body.
- For each element d in lexDeclarations, do
- NOTE: Lexically declared names are only instantiated here but not initialized.
- For each element dn of the BoundNames of d, do
- If IsConstantDeclaration of d is
true , then- Perform ? lexEnvRec.CreateImmutableBinding(dn,
true ).
- Perform ? lexEnvRec.CreateImmutableBinding(dn,
- Else,
- Perform ? lexEnvRec.CreateMutableBinding(dn,
false ).
- Perform ? lexEnvRec.CreateMutableBinding(dn,
- If IsConstantDeclaration of d is
- For each
Parse Node f in functionsToInitialize, do- Let fn be the sole element of the BoundNames of f.
- Let fo be the result of performing InstantiateFunctionObject for f with argument lexEnv.
- If varEnvRec is a global
Environment Record , then- Perform ? varEnvRec.CreateGlobalFunctionBinding(fn, fo,
true ).
- Perform ? varEnvRec.CreateGlobalFunctionBinding(fn, fo,
- Else,
- Let bindingExists be varEnvRec.HasBinding(fn).
- If bindingExists is
false , then- Let status be ! varEnvRec.CreateMutableBinding(fn,
true ). Assert : status is not anabrupt completion because of validation preceding step 12.- Perform ! varEnvRec.InitializeBinding(fn, fo).
- Let status be ! varEnvRec.CreateMutableBinding(fn,
- Else,
- Perform ! varEnvRec.SetMutableBinding(fn, fo,
false ).
- Perform ! varEnvRec.SetMutableBinding(fn, fo,
- For each String vn in declaredVarNames, in list order, do
- If varEnvRec is a global
Environment Record , then- Perform ? varEnvRec.CreateGlobalVarBinding(vn,
true ).
- Perform ? varEnvRec.CreateGlobalVarBinding(vn,
- Else,
- Let bindingExists be varEnvRec.HasBinding(vn).
- If bindingExists is
false , then- Let status be ! varEnvRec.CreateMutableBinding(vn,
true ). Assert : status is not anabrupt completion because of validation preceding step 12.- Perform ! varEnvRec.InitializeBinding(vn,
undefined ).
- Let status be ! varEnvRec.CreateMutableBinding(vn,
- If varEnvRec is a global
- Return
NormalCompletion (empty ).
An alternative version of this algorithm is described in
18.2.2 isFinite ( number )
The isFinite function is the isFinite function is called with one argument number, the following steps are taken:
- Let num be ?
ToNumber (number). - If num is
NaN ,+∞ , or-∞ , returnfalse . - Otherwise, return
true .
18.2.3 isNaN ( number )
The isNaN function is the isNaN function is called with one argument number, the following steps are taken:
- Let num be ?
ToNumber (number). - If num is
NaN , returntrue . - Otherwise, return
false .
A reliable way for ECMAScript code to test if a value X is a X !== X. The result will be X is a
18.2.4 parseFloat ( string )
The parseFloat function produces a Number value dictated by interpretation of the contents of the string argument as a decimal literal.
The parseFloat function is the parseFloat function is called with one argument string, the following steps are taken:
- Let inputString be ?
ToString (string). - Let trimmedString be a substring of inputString consisting of the leftmost code unit that is not a
StrWhiteSpaceChar and all code units to the right of that code unit. (In other words, remove leading white space.) If inputString does not contain any such code units, let trimmedString be the empty string. - If neither trimmedString nor any prefix of trimmedString satisfies the syntax of a
StrDecimalLiteral (see7.1.3.1 ), returnNaN . - Let numberString be the longest prefix of trimmedString, which might be trimmedString itself, that satisfies the syntax of a
StrDecimalLiteral . - Let mathFloat be MV of numberString.
- If mathFloat = 0, then
- If the first code unit of trimmedString is the code unit 0x002D (HYPHEN-MINUS), return
-0 . - Return
+0 .
- If the first code unit of trimmedString is the code unit 0x002D (HYPHEN-MINUS), return
- Return the Number value for mathFloat.
parseFloat may interpret only a leading portion of string as a Number value; it ignores any code units that cannot be interpreted as part of the notation of a decimal literal, and no indication is given that any such code units were ignored.
18.2.5 parseInt ( string, radix )
The parseInt function produces an integer value dictated by interpretation of the contents of the string argument according to the specified radix. Leading white space in string is ignored. If radix is 0x or 0X, in which case a radix of 16 is assumed. If radix is 16, the number may also optionally begin with the code unit pairs 0x or 0X.
The parseInt function is the parseInt function is called, the following steps are taken:
- Let inputString be ?
ToString (string). - Let S be a newly created substring of inputString consisting of the first code unit that is not a
StrWhiteSpaceChar and all code units following that code unit. (In other words, remove leading white space.) If inputString does not contain any such code unit, let S be the empty string. - Let sign be 1.
- If S is not empty and the first code unit of S is the code unit 0x002D (HYPHEN-MINUS), set sign to -1.
- If S is not empty and the first code unit of S is the code unit 0x002B (PLUS SIGN) or the code unit 0x002D (HYPHEN-MINUS), remove the first code unit from S.
- Let R be ?
ToInt32 (radix). - Let stripPrefix be
true . - If R ≠ 0, then
- If R < 2 or R > 36, return
NaN . - If R ≠ 16, set stripPrefix to
false .
- If R < 2 or R > 36, return
- Else R = 0,
Set R to 10.
- If stripPrefix is
true , then- If the length of S is at least 2 and the first two code units of S are either
"0x"or"0X", then- Remove the first two code units from S.
Set R to 16.
- If the length of S is at least 2 and the first two code units of S are either
- If S contains a code unit that is not a radix-R digit, let Z be the substring of S consisting of all code units before the first such code unit; otherwise, let Z be S.
- If Z is empty, return
NaN . - Let mathInt be the mathematical integer value that is represented by Z in radix-R notation, using the letters A-Z and a-z for digits with values 10 through 35. (However, if R is 10 and Z contains more than 20 significant digits, every significant digit after the 20th may be replaced by a 0 digit, at the option of the implementation; and if R is not 2, 4, 8, 10, 16, or 32, then mathInt may be an implementation-dependent approximation to the mathematical integer value that is represented by Z in radix-R notation.)
- If mathInt = 0, then
- If sign = -1, return
-0 . - Return
+0 .
- If sign = -1, return
- Let number be the Number value for mathInt.
- Return sign × number.
parseInt may interpret only a leading portion of string as an integer value; it ignores any code units that cannot be interpreted as part of the notation of an integer, and no indication is given that any such code units were ignored.
18.2.6 URI Handling Functions
Uniform Resource Identifiers, or URIs, are Strings that identify resources (e.g. web pages or files) and transport protocols by which to access them (e.g. HTTP or FTP) on the Internet. The ECMAScript language itself does not provide any support for using URIs except for functions that encode and decode URIs as described in
Many implementations of ECMAScript provide additional functions and methods that manipulate web pages; these functions are beyond the scope of this standard.
18.2.6.1 URI Syntax and Semantics
A URI is composed of a sequence of components separated by component separators. The general form is:
: / ; ? where the italicized names represent components and “:”, “/”, “;” and “?” are reserved for use as separators. The encodeURI and decodeURI functions are intended to work with complete URIs; they assume that any reserved code units in the URI are intended to have special meaning and so are not encoded. The encodeURIComponent and decodeURIComponent functions are intended to work with the individual component parts of a URI; they assume that any reserved code units represent text and so must be encoded so that they are not interpreted as reserved code units when the component is part of a complete URI.
The following lexical grammar specifies the form of encoded URIs.
Syntax
The above syntax is based upon RFC 2396 and does not reflect changes introduced by the more recent RFC 3986.
Runtime Semantics
When a code unit to be included in a URI is not listed above or is not intended to have the special meaning sometimes given to the reserved code units, that code unit must be encoded. The code unit is transformed into its UTF-8 encoding, with "%xx".
18.2.6.1.1 Runtime Semantics: Encode ( string, unescapedSet )
The encoding and escaping process is described by the abstract operation Encode taking two String arguments string and unescapedSet.
- Let strLen be the number of code units in string.
- Let R be the empty String.
- Let k be 0.
- Repeat,
- If k equals strLen, return R.
- Let C be the code unit at index k within string.
- If C is in unescapedSet, then
- Let S be the String value containing only the code unit C.
Set R to thestring-concatenation of the previous value of R and S.
- Else C is not in unescapedSet,
- If C is a
trailing surrogate , throw aURIError exception. - If C is not a
leading surrogate , then- Let V be the code point with the same numeric value as code unit C.
- Else,
- Increase k by 1.
- If k equals strLen, throw a
URIError exception. - Let kChar be the code unit at index k within string.
- If kChar is not a
trailing surrogate , throw aURIError exception. - Let V be
UTF16Decode (C, kChar).
- Let Octets be the
List of octets resulting by applying the UTF-8 transformation to V. - For each element octet of Octets in
List order, do- Let S be the
string-concatenation of:"%"- the String representation of octet, formatted as a two-digit uppercase hexadecimal number, padded to the left with a zero if necessary
Set R to thestring-concatenation of the previous value of R and S.
- Let S be the
- If C is a
- Increase k by 1.
18.2.6.1.2 Runtime Semantics: Decode ( string, reservedSet )
The unescaping and decoding process is described by the abstract operation Decode taking two String arguments string and reservedSet.
- Let strLen be the number of code units in string.
- Let R be the empty String.
- Let k be 0.
- Repeat,
- If k equals strLen, return R.
- Let C be the code unit at index k within string.
- If C is not the code unit 0x0025 (PERCENT SIGN), then
- Let S be the String value containing only the code unit C.
- Else C is the code unit 0x0025 (PERCENT SIGN),
- Let start be k.
- If k + 2 is greater than or equal to strLen, throw a
URIError exception. - If the code units at index (k + 1) and (k + 2) within string do not represent hexadecimal digits, throw a
URIError exception. - Let B be the 8-bit value represented by the two hexadecimal digits at index (k + 1) and (k + 2).
- Increment k by 2.
- If the most significant bit in B is 0, then
- Let C be the code unit whose value is B.
- If C is not in reservedSet, then
- Let S be the String value containing only the code unit C.
- Else C is in reservedSet,
- Let S be the substring of string from index start to index k inclusive.
- Else the most significant bit in B is 1,
- Let n be the smallest nonnegative integer such that (B << n) & 0x80 is equal to 0.
- If n equals 1 or n is greater than 4, throw a
URIError exception. - Let Octets be a
List of 8-bit integers of size n. Set Octets[0] to B.- If k + (3 × (n - 1)) is greater than or equal to strLen, throw a
URIError exception. - Let j be 1.
- Repeat, while j < n
- Increment k by 1.
- If the code unit at index k within string is not the code unit 0x0025 (PERCENT SIGN), throw a
URIError exception. - If the code units at index (k + 1) and (k + 2) within string do not represent hexadecimal digits, throw a
URIError exception. - Let B be the 8-bit value represented by the two hexadecimal digits at index (k + 1) and (k + 2).
- If the two most significant bits in B are not 10, throw a
URIError exception. - Increment k by 2.
Set Octets[j] to B.- Increment j by 1.
- If Octets does not contain a valid UTF-8 encoding of a Unicode code point, throw a
URIError exception. - Let V be the value obtained by applying the UTF-8 transformation to Octets, that is, from a
List of octets into a 21-bit value. - Let S be the String value whose code units are, in order, the elements in
UTF16Encoding (V).
Set R to thestring-concatenation of the previous value of R and S.- Increase k by 1.
This syntax of Uniform Resource Identifiers is based upon RFC 2396 and does not reflect the more recent RFC 3986 which replaces RFC 2396. A formal description and implementation of UTF-8 is given in RFC 3629.
In UTF-8, characters are encoded using sequences of 1 to 6 octets. The only octet of a sequence of one has the higher-order bit set to 0, the remaining 7 bits being used to encode the character value. In a sequence of n octets, n > 1, the initial octet has the n higher-order bits set to 1, followed by a bit set to 0. The remaining bits of that octet contain bits from the value of the character to be encoded. The following octets all have the higher-order bit set to 1 and the following bit set to 0, leaving 6 bits in each to contain bits from the character to be encoded. The possible UTF-8 encodings of ECMAScript characters are specified in
| Code Unit Value | Representation | 1st Octet | 2nd Octet | 3rd Octet | 4th Octet |
|---|---|---|---|---|---|
0x0000 - 0x007F
|
00000000 0zzzzzzz
|
0zzzzzzz
|
|||
0x0080 - 0x07FF
|
00000yyy yyzzzzzz
|
110yyyyy
|
10zzzzzz
|
||
0x0800 - 0xD7FF
|
xxxxyyyy yyzzzzzz
|
1110xxxx
|
10yyyyyy
|
10zzzzzz
|
|
0xD800 - 0xDBFF
followed by 0xDC00 - 0xDFFF
|
110110vv vvwwwwxx
followed by 110111yy yyzzzzzz
|
11110uuu
|
10uuwwww
|
10xxyyyy
|
10zzzzzz
|
0xD800 - 0xDBFF
not followed by 0xDC00 - 0xDFFF
|
causes URIError
|
||||
0xDC00 - 0xDFFF
|
causes URIError
|
||||
0xE000 - 0xFFFF
|
xxxxyyyy yyzzzzzz
|
1110xxxx
|
10yyyyyy
|
10zzzzzz
|
Where
uuuuu = vvvv + 1
to account for the addition of 0x10000 as in section 3.8 of the Unicode Standard (Surrogates).
The above transformation combines each
RFC 3629 prohibits the decoding of invalid UTF-8 octet sequences. For example, the invalid sequence C0 80 must not decode into the code unit 0x0000. Implementations of the Decode algorithm are required to throw a
18.2.6.2 decodeURI ( encodedURI )
The decodeURI function computes a new version of a URI in which each escape sequence and UTF-8 encoding of the sort that might be introduced by the encodeURI function is replaced with the UTF-16 encoding of the code points that it represents. Escape sequences that could not have been introduced by encodeURI are not replaced.
The decodeURI function is the decodeURI function is called with one argument encodedURI, the following steps are taken:
- Let uriString be ?
ToString (encodedURI). - Let reservedURISet be a String containing one instance of each code unit valid in
uriReserved plus"#". - Return ?
Decode (uriString, reservedURISet).
The code point "#" is not decoded from escape sequences even though it is not a reserved URI code point.
18.2.6.3 decodeURIComponent ( encodedURIComponent )
The decodeURIComponent function computes a new version of a URI in which each escape sequence and UTF-8 encoding of the sort that might be introduced by the encodeURIComponent function is replaced with the UTF-16 encoding of the code points that it represents.
The decodeURIComponent function is the decodeURIComponent function is called with one argument encodedURIComponent, the following steps are taken:
18.2.6.4 encodeURI ( uri )
The encodeURI function computes a new version of a UTF-16 encoded (
The encodeURI function is the encodeURI function is called with one argument uri, the following steps are taken:
- Let uriString be ?
ToString (uri). - Let unescapedURISet be a String containing one instance of each code unit valid in
uriReserved anduriUnescaped plus"#". - Return ?
Encode (uriString, unescapedURISet).
The code unit "#" is not encoded to an escape sequence even though it is not a reserved or unescaped URI code point.
18.2.6.5 encodeURIComponent ( uriComponent )
The encodeURIComponent function computes a new version of a UTF-16 encoded (
The encodeURIComponent function is the encodeURIComponent function is called with one argument uriComponent, the following steps are taken:
- Let componentString be ?
ToString (uriComponent). - Let unescapedURIComponentSet be a String containing one instance of each code unit valid in
uriUnescaped . - Return ?
Encode (componentString, unescapedURIComponentSet).
18.3 Constructor Properties of the Global Object
18.3.1 Array ( . . . )
See
18.3.2 ArrayBuffer ( . . . )
See
18.3.3 Boolean ( . . . )
See
18.3.4 DataView ( . . . )
See
18.3.5 Date ( . . . )
See
18.3.6 Error ( . . . )
See
18.3.7 EvalError ( . . . )
See
18.3.8 Float32Array ( . . . )
See
18.3.9 Float64Array ( . . . )
See
18.3.10 Function ( . . . )
See
18.3.11 Int8Array ( . . . )
See
18.3.12 Int16Array ( . . . )
See
18.3.13 Int32Array ( . . . )
See
18.3.14 Map ( . . . )
See
18.3.15 Number ( . . . )
See
18.3.16 Object ( . . . )
See
18.3.17 Promise ( . . . )
See
18.3.18 Proxy ( . . . )
See
18.3.19 RangeError ( . . . )
See
18.3.20 ReferenceError ( . . . )
See
18.3.21 RegExp ( . . . )
See
18.3.22 Set ( . . . )
See
18.3.23 SharedArrayBuffer ( . . . )
See
18.3.24 String ( . . . )
See
18.3.25 Symbol ( . . . )
See
18.3.26 SyntaxError ( . . . )
See
18.3.27 TypeError ( . . . )
See
18.3.28 Uint8Array ( . . . )
See
18.3.29 Uint8ClampedArray ( . . . )
See
18.3.30 Uint16Array ( . . . )
See
18.3.31 Uint32Array ( . . . )
See
18.3.32 URIError ( . . . )
See
18.3.33 WeakMap ( . . . )
See
18.3.34 WeakSet ( . . . )
See
18.4 Other Properties of the Global Object
18.4.1 Atomics
See
18.4.2 JSON
See
18.4.3 Math
See
18.4.4 Reflect
See