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

ES.next Draft仕様より、普通のfunctionとArrowFunctionの違い

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

Firefox 22(Nightly) で ArrowFunction が実装されたが、扱いが難しい

Firefox Nightly (22) に ES6のArrow Function来たる - fragmentary ということで、早速試しているわけです。 基本 var f1 = () => "OK"; // 引数なしの場合は、"()"が必須 var f2 = arg => arg + 1; // 引数一つなら、"()"は省略可 var f3 = (arg1, arg2) =…

Object.setPrototypeOf を作る

https://mail.mozilla.org/pipermail/es-discuss/2013-March/029259.html で気付かされた。Firefox なら Object.setPrototypeOf を作ることができる。Firefox、というよりも、SpiderMonkey なのだが、Object.prototype.__proto__がgetter/setterで定義されて…

QUnit で ECMAScript 6th Compatibility Test を書いてみた

ECMAScript 6th Compatibility Test 既にECMAScript compatibility tableがあって、こちらは各UAでの結果あり、これはこれで良いのだが、イマイチ精度が良くないので、QUnit の練習も兼ねて現ブラウザでのテストコードを書いてみた次第。https://github.com/…

Symbol でプライベートな値を作る

ChromeのExperimental WebKit/JavaScript Features - fragmentary Experimental JavaScript Features の方に Symbol が使えると書かれていたので早速。Symbol ってのはなんて言うか、固有のプロパティのキーになれるもの?っていう説明で良いのかな。 var s …

Chrome Canary には document.webkitRegister があった

昨日はFirefox Nightlyにdocument.registerが実装されたって話を書いたが、もしやChrome Canaryにもあるんじゃ?と思って見てみたら、あった。 Bug 100229 - [Custom Elements] Implement bare-bone document.register() チェンジセット 143865 – WebKit た…

Firefox 22(Nightly) で WebComponents の document.register が実装された

783129 - Implement the document.register interface method mozilla-central: changeset 123773:871fea464883 カスタム要素が作れるようになった。DOM要素は単にDOM APIを呼び出すだけの存在だったのが、独自のメソッドとかを追加できるようにったわけで、…

ユニコード文字のbase64エンコード/デコード

今のところAPIがあるのが、Firefoxのみかもだけど。単純に、window.btoa("あいうえお")とすると、InvalidCharacterError: String contains an invalid characterと例外が発生する。Encoding StandardのTextEncoder、TextDecoderが使えるなら、以下のように書…

GoogleChrome(27.0.1425.2 dev-mあたり) の __proto__ 挙動が変わった

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…