LoginSignup
0
0

ECMAScript 第2部 Conformance【JavaScript】

Posted at

はじめに

ECMAScript 第2部 Conformance の概要と補足についてまとめます。

「Conformance」は直訳すると「準拠」です。
「ECMAScript準拠の実装における注意事項」が記載されています。

ECMAScript準拠の実装における注意事項

  • ECMAScriptに記載されている以下のすべてを提供し、サポートする必要がある
    • オブジェクト
    • プロパティ
    • 関数
    • プログラム構文
    • セマンティクス(コードの意味)

  • 以下の国際標準の最新バージョンに準拠してソーステキスト入力を解釈する必要がある
    • Unicode Standard
    • ISO / IEC 10646

  • APIを提供する場合は、最新の ECMA-402 仕様に準拠して実装する必要がある
    ※ ECMA-402 は、ECMAScript 言語仕様を定義した ECMA-262 を補完する、APIについて定義されたドキュメントです


  • ECMAScriptに記載されていない、追加の以下の機能を提供する場合がある
    • オブジェクト
    • プロパティ
      • 特に、記載のあるオブジェクトに対し、記載のないプロパティと値を提供する場合がある
    • 関数

  • ECMAScriptに記載されていない、追加の以下の機能をサポートする場合がある
    • プログラム構文
      • 特に、12.7.2 に記載されている「future reserved words」を利用するプログラム構文をサポートする場合がある
    • 正規表現


  • 17.1 で禁止された拡張機能を実装してはならない


  • ECMAScriptで定義された機能を、定義されていない仕様で再定義することはできない
    ※ 訳の正確性に疑問1

  • 「Normative Optional として定義されているもの」を実装するかどうかは選択できる。ただし、これを実装する場合は、Normative Optional に定義された動作すべてを実装する必要がある

  • 「Legacy として定義されているもの」は非推奨の機能だが後方互換性のため実装しなくてはならない。「Normative Optional」としても定義されている場合は、その限りではない

NORMATIVE OPTIONAL / LEGACY について

こちらの記事が大変参考になりました。

Webブラウザ Webブラウザ以外の処理系 JavaScriptプログラマ
NORMATIVE OPTIONAL 実装しなくてよい 実装しなくてよい
LEGACY 実装する必要がある 実装する必要がある 使うべきではない
Annex B 実装する必要がある 実装しなくてよい 使うべきではない
NORMATIVE OPTIONAL, LEGACY 実装しなくてよい 実装しなくてよい 使うべきではない

NORMATIVE OPTIONAL の使用ケースについて

現在は WeakRef.prototype.constructor が唯一の利用例になっています。

とのことでした。

おわりに

文字コードやAPIについても言及されているのが面白かったです。

次は何を書こうかしら・・・

  1. "A conforming implementation of ECMAScript must not redefine any facilities that are not implementation-defined, implementation-approximated, or host-defined."

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0