ECMAScriptとのJavaScript対比

CGJSのJavaScriptは、Common Lispを実装した経験をもとに、サーバー側でCGIとして動作するよう作成された
インタープリタ(Compileされた中間コードの解釈・実行)で、JavaScriptのStatementでDBを操作するアプリケーションが
簡単に記述ができるようにと作成されたものです。
ECMAScriptの規格を参考に作成され、文法は同じですが、規格に記述されている全機能が作成されてるのではありません。
Statementは必ずセミコロン(;)で終了してください。中間行のStatementが改行だけで終わっているとエラーになります。
また、大部分の機能は実装されていますが、使用頻度が低いObject、Methodなど実装されてないものがあります。
ECMAScriptの規格の中で、実装/非実装の機能、規格と異なる点は以下の通りです。
実装されている機能で、特に注意書きがない部分については、WebでECMAScriptのリファレンスサイトを参照してください。
1.組み込みオブジェクト
実装されている部分は黒字で、実装されていない部分は、赤字で記載されています。

■ 値プロパティ
   undefined    Infinity    NaN    globalThis

■ 関数プロパティ
   encodeURIComponent()    encodeURI()    parseFloat()
   eval()   decodeURIComponent()   decodeURI()    parseInt()
   uneval()    isFinite()   isNaN()    escape()    unescape()

■ 基本オブジェクト
   Object    Function    Boolean    Symbol

■ エラーオブジェクト
   Error    Exception(※拡張)
   AggregateError    InternalError   RangeError
   EvalError    ReferenceError    SyntaxError
   TypeError    URIError


■ 数値と日付
   Number    Math    Date    BigInt

■ テキスト処理
   String    RegExp

■ 索引付きコレクション
   Array    Int8Array    Int16Array    Int32Array
   BigInt64Array    Uint8Array   Uint16Array    Uint32Array
   BigUint64Array    Float32Array    Float64Array
   Uint8ClampedArray


■ キー付きコレクション
   Hash    Map    Set    WeakMap    WeakSet

■ 構造化データ
   JSON    Atomics    Atomics    ArrayBuffer
   SharedArrayBuffer


■ 制御抽象化オブジェクト
   Promise    AsyncFunction    GeneratorFunction    Generator
   AsyncGenerator    AsyncGeneratorFunction


■ リフレクション
   Reflect    Proxy

■ 国際化
   Intl    WebAssembly

■ その他
   arguments
2.式と演算子
実装している機能
Addition(+)Addition assignment(+=)Assignment (=)
Bitwise AND(&)Bitwise AND assignment(&=)Bitwise NOT (~)
Bitwise OR(|)Bitwise OR assignment(|=)Bitwise XOR (^)
Bitwise XOR assignment(^=)Comma operator(,)Conditional (ternary) operator
Decrement(--)Division (/)Division assignment (/=)
Equality(==)Exponentiation (**)Function expression
Greater than(>)Greater than or equal (>=)Grouping operator ( )
Increment(++)Inequality(!=)instanceof
Left shift(<<)Left shift assignment(<<=)Less than (<)
Less than or equal(<=)Logical AND (&&)Logical NOT (!)
Logical OR(||)Multiplication(*)Multiplication assignment (*=)
new operatorOperator precedenceRemainder (%)
Remainder assignment(%=)Right shift (>>)Right shift assignment (>>=)
Strict equality(===)Strict inequality(!==)Subtraction (-)
Subtraction assignment(-=)thistypeof
Unary negation(-)Unary plus(+)Unsigned right shift (>>>)
Unsigned right shift assignment(>>>=)

実装していない機能
async function expressionAsyncGeneratorAsyncGeneratorFunction
awaitclass expressiondelete operator
Destructuring assignmentfunction* expressionGenerator
GeneratorFunctionin operatorExpressions and operators
Exponentiation assignment(**=)Logical nullish assignment(??=)Logical AND assignment(&&=)
Logical OR assignment(||=)new.targetNullish coalescing operator(??)
Optional chaining(?.)Object initializerProperty accessors
superSpread syntax(...)void operator
yieldyield*
3.文と宣言
実装している機能
   block    break    const    continue    do...while
   empty    for    for...in    for...of    function declaration
   if...else    let    return    switch    Statements and declarations
   throw    try...catch    var    while

実装していない文・宣言
   async function    class    debugger    export
   for await...of    function*    import    import.meta
   label    with
4.関数
実装している機能
   Default parameters    Functions    Method definitions

実装していない機能
   The arguments object    Arrow function expressions    getter
   Rest parameters    setter