Mozilla の JavaScript の tips

JavaScript Reference

E4X

XML 宣言があると例外吐く。
英語のページには bug として書いてあった。
Known bugs and limitations

DTD

DTD の情報には JavaScript からはアクセスできない。
しかし の中なら展開してくれるらしい。

debug

Debugging a XULRunner Application - MDC
dump - MDC
Dom.report all js exceptions - MozillaZine Knowledge Base
Exception logging in JavaScript - MDC
Venkman
しかし例外を表示してくれないことがよくある。venkman はよく止まる。jsdump() はオブジェクトによっては表示がクリアされるので dump() の方が無難。

try...catch

try {
    ...
} catch(e){
    dump(e.fileName, e.lineNumber, e.name, e); //e.stack
}

include, import

しかし Python の import はよく出来てるわ。

loadSubScript

ただし addons.mozilla.org では文句言われる。スコープが独立していない。

Components.classes['@mozilla.org/moz/jssubscript-loader;1']
    .getService(Components.interfaces.mozIJSSubScriptLoader)
    .loadSubScript('chrome://path/to/script.js');
import

Components.utils.import()
chrome.manifest で resource:// の登録が必要。
XPCOM の登録時には有効じゃない? EXPORTED_SYMBOLS が必要。
タイミングとかスコープがいまいち分からん。