2013-02-01から1ヶ月間の記事一覧

Array + Set で検索を高速に

Array#indexOf(item) !== -1をやって存在を確認するのが、どうにも速い気がしなくてやってみた。とりあえず、Array.indexOf vs Set.has · jsPerfで速度確認。Set#hasが圧倒的に速い。かと言って、単純な Set では以下の点で使いづらい 値の順番操作が面倒 入…

getEventListeners(node)

constructor.members_に使えるメソッド名一覧があることを発見して、getEventListeners(node)で、そのnodeでリッスンしているハンドラが取れる事を知った。デバッグに役に立ちそう。 参考 Command Line API Reference - Chrome Developer Tools — Google Dev…

JSON.parse('{"__proto__": null}')

var o = JSON.parse('{"__proto__": null}'); console.log( Object.prototype.hasOwnProperty.call(o, "__proto__"), Object.getPrototypeOf(o), o instanceof Object, Object.getPrototypeOf(o) === Object.prototype ); Browser hasOwnProperty instanceof…

__proto__の挙動からJavaScriptエンジン判定

function getJSengine() { if (!("__proto__" in Object.prototype)) { if (typeof Object.getPrototypeOf === "undefined") return "JScript(IE8-)"; else return "JScript(IE9+)" } var o = JSON.parse('{"__proto__":null}'); if (!(o instanceof Object)…

さようなら、E4X

788293 – Remove E4X from Spidermonkey mozilla-central: changeset 120561:c929583ba8ae 現NightlyのFirefox 21.0a1で──というよりSpiderMonkeyから──E4Xが削除された。(当然だけど)Firefoxからも、javascript.options.xml.chromeやjavascript.options.x…