01. About neqto.js
neqto.jsは、NEQTO Engine上で動作するJavaScript環境です。
neqto.jsは、下記の特徴を備えています。
標準オブジェクトについて
ECMAScript 5.1 Edition
に対応しています。
加えて、ECMAScript 2015 (ES6) Edition
で定義されたArrayBuffer
及びTypedArray
、テンプレートリテラル
の一部主要機能が利用可能です。
システム時間はGMT
で動作しています。
拡張オブジェクトについて
拡張オブジェクトは、NEQTO デバイス固有の機能や、外部デバイスおよび外部センサを簡単に制御するためのインターフェースを提供します。
拡張オブジェクトの詳細については各オブジェクトの説明ページを参照してください。
制限事項
コードサイズは最大で約
127K
バイトです。
制限サイズを超えた場合、セーフモードに入ります。
この時、NEQTO Consoleにイベントメッセージ(Engine : error : Script too big
)が通知されます。コールバックは同時に複数動作できません。
コールバック処理の中で、さらに別のコールバック処理を待つ処理はできません。コールバック処理の中で長時間ブロックする処理は推奨されません。
関数の呼び出し階層(ネストされた関数)が深くなりすぎると、スタックオーバーフローによる予期せねシステムリセットを引き起こす要因となります。特に再帰関数を使用する場合は注意願います。関数の呼び出し階層が数段以内に収まり、かつ常に想定内の動作となる実装を推奨します。
凡例
拡張オブジェクトの説明ページにおける凡例です。
{ }
はオブジェクトを示します。メソッド説明の
[ ]
は引数がオプションであることを示します。
尚、オプションが引数の先頭になる場合、区切り文字','
は省略します。foo.func([opt1][,opt2]) - foo.func(); - foo.func(opt1); - foo.func(opt2); //Omit delimiter - foo.func(opt1,opt2);
エラッタ
JavaScriptコードの記述方法により、所望の動作とならない事象が確認されています。
下記事例に該当する場合、回避策の適用をお願いします。
Errata 1
対象バージョン:00.00.06
以前
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);