?um/p1-90`この附属書で定義される ECMAScript 言語の構文および意味論は、ECMAScript ホストが web ブラウザーである場合に要求される。この附属書の内容は規範的であるが、ECMAScript ホストが web ブラウザーでない場合は任意である。
この附属書で定義される機能の一部はこの附属書で指定され、一部はこの文書の本文で指定される。
機能が本文で指定される場合、それが文書に影響する各箇所は、色付きのボックス内の "
この附属書は、web ブラウザー ECMAScript ホストの様々なレガシー機能およびその他の特性を記述する。この附属書で指定されるすべての言語機能および振る舞いは、1 つ以上の望ましくない特性を持ち、レガシーな使用がなければこの仕様から削除されるものである。しかし、既存の多数の web ページがこれらの機能を使用しているため、web ブラウザーはそれらを引き続きサポートしなければならない。この附属書の仕様は、これらのレガシー機能の相互運用可能な実装に対する要件を定義する。
これらの機能は、コア ECMAScript 言語の一部とは見なされない。プログラマーは、新しい ECMAScript コードを書くときに、これらの機能および振る舞いを使用したり、それらの存在を仮定したりするべきではない。ECMAScript 実装は、その実装が web ブラウザーの一部であるか、web ブラウザーが遭遇するものと同じレガシー ECMAScript コードを実行する必要がある場合を除き、これらの機能を実装しないことが推奨される。
行終端コードポイントを含む
この代替パターン文法および意味論は、BMP パターンの構文および意味論のみを変更する。次の文法拡張には、[UnicodeMode] パラメータでパラメータ化された生成規則が含まれる。しかし、これらの拡張はいずれも、ゴール記号に [UnicodeMode] パラメータが存在する状態で解析するときに認識される Unicode パターンの構文を変更しない。
同じ左辺が [+UnicodeMode] ガードと [~UnicodeMode] ガードの両方で出現する場合、それは曖昧性解消の優先順位を制御するためである。
さらに、次の生成規則に対する規則は、強調表示されたテキストの追加によって変更される:
\ U+005C (REVERSE SOLIDUS) を含む 次の 2 つの規則は、
さらに、次の規則が
\ U+005C (REVERSE SOLIDUS) を含む \c からのみ到達でき、その後に許容可能な制御文字が続かない場合に限られる。The
抽象操作
ECMAScript ホストが web ブラウザーである場合、標準組込みオブジェクトの次の追加プロパティが定義される。
| Intrinsic 名 | グローバル名 | ECMAScript 言語との関連 |
|---|---|---|
|
|
escape
|
escape 関数( |
|
|
unescape
|
unescape 関数( |
この関数は
数値が 0x00FF 以下のコード単位を置き換える場合、%xx 形式の 2 桁エスケープシーケンスが使用される。数値が 0x00FF より厳密に大きいコード単位を置き換える場合、%uxxxx 形式の 4 桁エスケープシーケンスが使用される。
これは %escape% intrinsic オブジェクトである。
呼び出されたとき、次の手順を実行する:
このエンコーディングは RFC 1738 に記述されたエンコーディングに部分的に基づくが、この標準で指定されるエンコーディング全体は RFC 1738 の内容に関わらず上記で記述されている。このエンコーディングは、RFC 3986 によって RFC 1738 に加えられた変更を反映しない。
この関数はescape 関数によって導入され得る種類の各エスケープシーケンスが、それが表すコード単位に置き換えられた String 値の新しいバージョンを計算する。
これは %unescape% intrinsic オブジェクトである。
呼び出されたとき、次の手順を実行する:
このメソッドは、
呼び出されたとき、次の手順を実行する:
このメソッドは意図的に generic である。その
このメソッドは、呼び出されたとき次の手順を実行する:
The
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
getFullYear メソッドは、“year 2000 problem” を回避するため、ほぼすべての目的で推奨される。
このメソッドは、呼び出されたとき次の手順を実行する:
setFullYear メソッドは、“year 2000 problem” を回避するため、ほぼすべての目的で推奨される。
このメソッドは、呼び出されたとき次の手順を実行する:
toUTCString メソッドが推奨される。このメソッドは主に古いコードとの互換性のために提供される。
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは
ECMAScript 2015 より前は、
ECMAScript 2015 より前は、ECMAScript 仕様は
関数が宣言され、単一のブロック内でのみ参照される。
var 宣言でない f の他の宣言が、g の関数が宣言され、単一の
var 宣言でない f の他の宣言が、g の関数が宣言され、単一のブロック内で使用される可能性があるが、後続のブロック内でも参照される。
var 宣言でない f の他の宣言が、g の最初のユースケースは、ECMAScript 2015 によって提供される
2 番目および 3 番目のユースケースについて ECMAScript 2015 との相互運用性を得るには、節
ECMAScript 実装が診断警告メッセージを報告する機構を持つ場合、これらの互換性意味論が適用され、非互換性意味論との差異が観測可能に導入される
この機能は、次の箇所で特別な意味論を伴う:
次は、
この生成規則は、非 strict コードを解析するときにのみ適用される。この生成規則に一致したソーステキストは、
この機能では、var 宣言を含んでよい。これは、
実行時、そのような binding は VariableDeclarationEnvironment 内でインスタンス化される。それらは var 宣言の var binding ではなく対応する catch parameter に代入する。
この変更された振る舞いは、var および function 宣言にも適用される。この変更は、
次は、
この生成規則は、非 strict コードを解析するときにのみ適用される。
[[IsHTMLDDA]] 内部スロットは、typeof 演算子
[[IsHTMLDDA]] 内部スロットを持つオブジェクトは、この仕様によって作成されることは決してない。しかし、web ブラウザーの document.all オブジェクトは、web 互換性のために存在する、このスロットを持つ document.all を除き、これを持つものを作成するべきではない。
この機能は、次の箇所で特別な意味論を伴う:
typeof の評価意味論内の step 非 strict コードにおいて関数呼び出し(
代入ターゲットが = または ??=、&&=、||=)には適用されない。