3:14

about my outputs.

document.evaluateの最後の引数

http://developer.mozilla.org/ja/docs/Introduction_to_using_XPath_in_JavaScript

var xpathResult = document.evaluate( xpathExpression, contextNode, namespaceResolver, resultType, result );

result: 既存の XPathResult オブジェクトまたは null を指定します。 XPathResult オブジェクトが指定された場合には、そのオブジェクトが再利用されます。 null が指定された場合には新しい XPathResult オブジェクトが生成されます。

意味分からん!ってtwitterで言ってたらnanto_viさんに教えてもらいました

ついでに速度の検証.

var l = 50000
console.time('a')
for(var i=0;i<l;i++){
 var x = document.evaluate('0', document, null, 0, null);
 var y = document.evaluate('0', document, null, 0, x);
}
console.timeEnd('a')// => 3926ms
console.time('b')
for(var i=0;i<l;i++){
 var x = document.evaluate('0', document, null, 0, null);
 var y = document.evaluate('0', document, null, 0, null);
}
console.timeEnd('b')// => 4678ms