なんちゃってevaluate(0.9.2.6)

仕様

帰りたいので詳しい説明は後日。
ノードリストしか返しません。
ノードテストは省略形のみです。
XPath式に関数は使えません。階層と属性ぐらいだと思ってください。演算子は=と!=だけです。
iterateNext(),snapshotItem(),snapshotLengthはあります。
一応定義としてはこう。但し3個目以降の引数は無視してます。超手抜き。contextNodeが渡されなかった場合はdocumentを使用します。
XPathResult document.evaluate(expression, contextNode, resolver, type, result)
XPathResult.ORDERED_NODE_SNAPSHOT_TYPEとかの定数は定義されているはずです。

// 使用例
var result = document.evaluate("//div[@class='main']");
for(var i=0; i < result.snapshotLength; i++){
	GM_log(result.snapshotItem(i).outerHTML);
}