01. About neqto.js
neqto.jsは、NEQTO Engine上で動作するJavaScript環境です。
neqto.jsは、下記の特徴を備えています。
標準オブジェクトについて
ECMAScript 5.1 Editionに対応しています。
加えて、ECMAScript 2015 (ES6) Editionで定義されたArrayBuffer及びTypedArray、テンプレートリテラルの一部主要機能が利用可能です。
システム時間はGMTで動作しています。
拡張オブジェクトについて
拡張オブジェクトは、NEQTO デバイス固有の機能や、外部デバイスおよび外部センサを簡単に制御するためのインターフェースを提供します。
拡張オブジェクトの詳細については各オブジェクトの説明ページを参照してください。
制限事項
- スクリプトコードの上限サイズは - 127Kバイトです。
- スクリプトコード上で使用可能なメモリ(RAM)は有限です。 
 メモリが枯渇した場合、セーフモードに入ります。
 詳細なメモリ情報は- heap()メソッドで取得可能です。
- コールバックは同時に複数動作できません。 
 コールバック処理の中で、さらに別のコールバック処理を待つ処理はできません。
- コールバック処理の中で長時間ブロックする処理は推奨されません。 
- 関数の呼び出し階層(ネストされた関数)が深くなりすぎると、スタックオーバーフローによる予期せねシステムリセットを引き起こす要因となります。特に再帰関数を使用する場合は注意願います。関数の呼び出し階層が数段以内に収まり、かつ常に想定内の動作となる実装を推奨します。 
凡例
拡張オブジェクトの説明ページにおける凡例です。
- { }はオブジェクトを示します。
- メソッド説明の - [ ]は引数がオプションであることを示します。
 尚、オプションが引数の先頭になる場合、区切り文字- ','は省略します。- foo.func([opt1][,opt2]) - foo.func(); - foo.func(opt1); - foo.func(opt2); //Omit delimiter - foo.func(opt1,opt2);
エラッタ
JavaScriptコードの記述方法により、所望の動作とならない事象が確認されています。
下記事例に該当する場合、回避策の適用をお願いします。
Errata 1
対象バージョン:02.01.00以前
while文の条件式に外部で更新される変数を<を使用して指定した場合、whileループが完全に処理を占有し、whileループ外で実行されるすべての処理が動作できなくなる。
事象発生例:外部で更新される変数としてcntが該当します。
var cnt = 0;
var tm = setInterval(function() {
    print('Interval:' + cnt);
    cnt++;
}, 1000);
while(cnt < 10) {
}
clearInterval(tm);
回避策1:while内でif~breakを使用する。
var cnt = 0;
var tm = setInterval(function() {
    print('Interval:' + cnt);
    cnt++;
}, 1000);
while(1) {
    if(cnt >= 10) break;
}
clearInterval(tm);
回避策2:while文の条件式に<以外の不等号を使用する。
var cnt = 0;
var tm = setInterval(function() {
    print('Interval:' + cnt);
    cnt++;
}, 1000);
while(cnt <= 9) {
}
clearInterval(tm);
