?um/p1-90`The ECMAScript language syntax and semantics defined in this annex are required when the ECMAScript 
Some features defined in this annex are specified in this annex, and some are specified in the main body of this document.
When a feature is specified in the main body, each point where it affects the document is marked with the words "
This annex describes various legacy features and other characteristics of web browser ECMAScript 
These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code. ECMAScript implementations are discouraged from implementing these features unless the implementation is part of a web browser or is required to run the same legacy ECMAScript code that web browsers encounter.
The syntax and semantics of 
Similar to a 
The syntax of 
This alternative pattern grammar and semantics only changes the syntax and semantics of BMP patterns. The following grammar extensions include productions parameterized with the [UnicodeMode] parameter. However, none of these extensions change the syntax of Unicode patterns recognized when parsing with the [UnicodeMode] parameter present on the 
When the same left-hand sides occurs with both [+UnicodeMode] and [~UnicodeMode] guards it is to control the disambiguation priority.
The semantics of 
Additionally, the rules for the following productions are modified with the addition of the highlighted text:
In the definitions of 
The semantics of 
The semantics of 
The semantics of 
The rule for 
The rule for 
The rule for 
\ U+005C (REVERSE SOLIDUS).The semantics of 
The following two rules replace the corresponding rules of 
In addition, the following rules are added to 
\ U+005C (REVERSE SOLIDUS).\c within a character class where it is not followed by an acceptable control character.The abstract operation CharacterRangeOrUnion takes arguments rer (a 
The semantics of 
The abstract operation 
When the ECMAScript 
The entries in 
| Intrinsic Name | Global Name | ECMAScript Language Association | 
|---|---|---|
|  | escape | The escapefunction ( | 
|  | unescape | The unescapefunction ( | 
This function is a property of the 
When replacing a code unit of numeric value less than or equal to 0x00FF, a two-digit escape sequence of the form %xx is used. When replacing a code unit of numeric value strictly greater than 0x00FF, a four-digit escape sequence of the form %uxxxx is used.
It is the %escape% intrinsic object.
It performs the following steps when called:
The encoding is partly based on the encoding described in RFC 1738, but the entire encoding specified in this standard is described above without regard to the contents of RFC 1738. This encoding does not reflect changes to RFC 1738 made by RFC 3986.
This function is a property of the escape function is replaced with the code unit that it represents.
It is the %unescape% intrinsic object.
It performs the following steps when called:
This method returns a 
It performs the following steps when called:
This method is intentionally generic; it does not require that its 
This method performs the following steps when called:
The abstract operation CreateHTML takes arguments string (an 
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
This method performs the following steps when called:
The property 
The initial value of the 
The property 
The initial value of the 
The getFullYear method is preferred for nearly all purposes, because it avoids the “year 2000 problem.”
This method performs the following steps when called:
The setFullYear method is preferred for nearly all purposes, because it avoids the “year 2000 problem.”
This method performs the following steps when called:
The toUTCString method is preferred. This method is provided principally for compatibility with old code.
The initial value of the 
This method performs the following steps when called:
This method completely reinitializes the 
Prior to ECMAScript 2015, the specification of 
The 
Prior to ECMAScript 2015, the ECMAScript specification did not define the occurrence of a 
A function is declared and only referenced within a single block.
var declaration occurs within the function code of g.
            A function is declared and possibly used within a single 
var declaration occurs within the function code of g.
            A function is declared and possibly used within a single block but also referenced within subsequent blocks.
var declaration occurs within the function code of g.
            The first use case is interoperable with the semantics of 
ECMAScript 2015 interoperability for the second and third use cases requires the following extensions to the clause 
If an ECMAScript implementation has a mechanism for reporting diagnostic warning messages, a warning should be produced when code contains a 
This feature involves special semantics at the following points:
The following augments the 
This production only applies when parsing 
In this feature, the var declarations that bind a name that is also bound by the 
At runtime, such bindings are instantiated in the VariableDeclarationEnvironment. They do not shadow the same-named bindings introduced by the var declarations will assign to the corresponding catch parameter rather than the var binding.
This modified behaviour also applies to var and function declarations introduced by 
The following augments the 
This production only applies when parsing 
The 
The 
The 
The 
The 
The 
The 
An [[IsHTMLDDA]] internal slot may exist on typeof operator
Objects with an [[IsHTMLDDA]] internal slot are never created by this specification. However, the document.all object in web browsers is a document.all.
This feature involves special semantics at the following points:
typeofThe 
The 
When a function call (
When the assignment target is the = or an ??=, &&=, ||=).
See step