ES6 Quiz

Q. https://gist.github.com/teramako/858c448cb76cb8d309b0 A. https://gist.github.com/teramako/6317d057902b91c0dc1a ECMAScript6th仕様も佳境に入っていますし、そろそろクイズ的なものが出てきても良いのでは? → あまりなさそう。 → 作ってみるか。 …

shellshock と sudo

CVE-2014-6271を発端とする bash の脆弱性、いわゆる ShellShock って呼ばれている奴。環境変数に仕込んだ任意のコマンドを実行できてしまうってことから、CGI との組み合わせが取り沙汰されている。その頃 sudo の設定の勉強をしていたので、ふと気になった…

Firefox 34 で Method Definition 構文が実装された

924672 - Implement ES6 Method Definitions 14.3 Method Definitions var o = { method: function method () { return "OK" }, }; と書いていたところを var o = { method() { return "OK"; }, }; こう書けるようになる。

Firefox 34 でES6の Object.assign() が実装されたが…

937855 - Implement ES6 Object.assign 仕様: 19.1.2.1 Object.assign ( target, ...sources ) 皆さん待望の、mixin をするメソッドである。第一引数のtargetに、第二引数以降のプロパティの値を代入していく。 var obj = { foo: "FOO", }; var res = Object…

Firefox 34でES6構文の ComputedPropertyName が実装された

924688 - Implement ES6 computed property names また、新しい構文。オブジェクトリテラル中のプロパティ名部分に式を入れることができる様になる。 今まで var prop = "foo"; var obj = {}; obj[prop] = "FOO Property"; 今までは一旦オブジェクトを作って…

Firefox 34(Nightly)で String.raw が実装された件とTaggedTemplateについて

1039774 - Implement ES6 String.raw 仕様 12.3.7 Tagged Templates 21.1.2.4 String.raw TemplateLiteral の続き。前回は、`(バッククォート) でくくることで、ヒアドキュメント的な複数行に渡る文字列の生成ができる事、${expression}で式の埋め込みができ…

Symbolの使い道 - 他に迷惑を掛けないプロトタイプ拡張

先日 Firefox Nightly で Symbol が実装されたわけだが、その使い道を考えていた。それで思いつたのが、Symbolを使えば迷惑を掛けずにプロトタイプ拡張ができるのでは、ということ。こんな感じ。 "use strict"; { let keys = Symbol.for("teramako.Object.ke…

Firefox 33でES6のSymbolが実装された

645416 - harmony:symbols) Implement symbols 不完全ながら ES6 の Symbol が実装された。Symbolは、Undefined, Null, Boolean, Number, String に続く新たなプリミティブな型である。既にChromeのV8エンジンには実装されていて、Symbolについて - JS.next…

Firefox 33 で ES6 の TemplateLiteral の一部が実装された

1021368 - Implement NoSubstitutionTemplate as described in ES6 draft 11.8.6 11.8.6 Template Literal Lexical Components ついにきた。「JavaScript にはヒアドキュメントがない」などと言われてきた。そんなディスりとはおさらばだ。JavaScriptの文字…

Firefox 32(Nightly) で Array.prototype.copyWithin が実装された

934423 - Implement Array#copyWithin mozilla-central: changeset 186637:2184d492b374 ECMAScript 6th 仕様の Array.prototype.copyWithin 実装。 Array.prototype.copyWithin (target, start [, end])引数は target(Number): コピー先の開始Index値 start…

Firefox 32 で Array.from が実装された

904723 - Implement ES6 Array.from 22.1.2.1 Array.from ( arrayLike [ , mapfn [ , thisArg ] ] ) Array-like な値をArrayに変換するメソッドです。引数は arrayLike: Array-likeなオブジェクト mapfn:(Optional) Array.prototype.map に渡すような functi…

はてなブックマーク拡張のコメント表示機能を修正してみた

Firefox 29 向けにはてなブックマークアドオンを自分で修正 パッチ diff --git a/chrome/content/browser/15-CommentViewer.js b/chrome/content/browser/15-CommentViewer.js index 9edd1d1..875b246 100644 --- a/chrome/content/browser/15-CommentViewer…

PanoのソースをGitHubに再アップした

自分自身が再度使う気になったので https://github.com/teramako/Pano へ再アップした。GitHubにアップしたとはいえ、自閉モードにするつもり。 要望等のメール無視 Issue管理しない PullRequest、たぶん無視 バイナリの提供はしない xpiファイルは自分でビ…

String repeat のアルゴリズムとパフォーマンス

ES6になると、String.prototype.repeatのメソッドが追加されるわけだが、そのアルゴリズムとパフォーマンスを追ってみている。ES6 String.prototype.repeat の仕様では以下の様な感じでシンプルな書き方をしている。 countが 0 より小さい、または 無限大で…

Firefox 31(Nightly)で Object.setPrototypeOf が実装された

885788 - Implement ES6 Object.setPrototypeOf 因みにChrome側のV8には既に実装されている。

Firfox 30(Nightly)で ES6的な ArrayComprehension,GeneratorComprehension が実装された

書くのが1週間ほど遅れた。 979865 - Implement ES6 array and generator comprehensions 12.1.4.2 Array Comprehension 12.1.7 Generator Comprehensions var arry = [for (value of iteratableObject) value]; // ArrayComprehension /* == (function() { …

アドオンとかプラグインとか拡張機能とか

Firefox、プラグイン不使用に向けた対応強化 | マイナビニュース Firefoxが段階的にプラグインを廃止すると発表(情報追記あり) Firefoxがプラグインを廃止する方向に|アドオンと勘違いする人多数で大混乱 | アイデアハッカー Mozilla、ホワイトリストに登…

Windowsでディスク使用率等の一覧を出力するバッチファイルを書いた

https://gist.github.com/teramako/9306751 仕事でディスク使用率を教えてくれっていう感じの依頼を受けることが良くあり、その都度Windowsではマイコンピュータを開いたキャプチャ画像とかを送ってやったりしていたのだが、いい加減飽きてきた。 画像じゃな…

オブジェクトのキーの順序

【JavaScript】オブジェクトをキーでソートする方法 | Web制作会社スタイル 上記リンク先の手法は、新たなオブジェクトにキーを配列に入れてソートした後、その順にプロパティ値として入れる方法だ。が、この方法では完全にソートすることはできない。仕様的…

Web標準まわりと民主主義

チャーチルの「民主主義は最悪だ。これまで施行されてきた全ての政治制度を除いて。」ってあるじゃないですか。Web標準まわりってそれっぽいよねって思った。Web標準を仕様として、その体現の実装としてWebブラウザがあるわけだけど、それぞれの党がこれほど…

typeof eval('{ foo: 100 }') => ?

"object" "string" "number" "undefined"

Generator Function 中の return 句について

新年早々、まさかりを投げてる感があって心苦しいけど、気になったので…。 node.js/v8のgeneratorsのパフォーマンスについてちょっと調べた - SundayHacking さて、generatorsの説明は他に任せるとして、いきなりコードです。 function* es6_generator() { y…

Firefox 29 で String.fromCodePoint, String.prototype.codePointAt が実装された

918879 - Implement String#codePointAt and String.fromCodePoint テストコード: http://mxr.mozilla.org/mozilla-central/source/js/src/tests/ecma_6/String/ ECMAScript6th における、Unicode をもう少しうまく扱うためのメソッド2つ。従来の String.fr…

Re: __proto__ が変わりゆく件について

__proto__が変わりゆく件について - 株式会社ネクスト エンジニアBlog さすがにちょっとツッコミを入れたい。 参考: draft_proto_spec_rev2.pdf※ まだドラフトで確定ではないのでご注意ください。 http://nextdeveloper.hatenablog.com/entry/2013/12/15/191…

Ctrl + Tab でタブの選択履歴からタブ切り替え

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…

MacでDockにしまったWindowを復元するショートカットを作った

Cmd + M で「しまう」のショートカットがMacでは共通してあるわけだが、逆に戻すショートカットが無い。ゴテゴテとウィンドウが重なっている状態があまり好きじゃなくて、都度「しまう」を行っていたりするわけだけど、Cmd + Tab でアプリケーションを切り替…

super キーワード

ECMAScript 6th には super キーワードがある。もとからキーワードとしてはあったけど、6th から挙動をもつキーワードとなった。期待通り、プロトタイプチェーン上のプロパティアクセスまたはメソッドコールに使用できるキーワードである。使用可能な箇所は:…

Firefox 25 個人的まとめ(ECMAScript的何か)

885553 - Implement ES6 Array.prototype.find and Array.prototype.findIndex Firefox 25 で Array.prototype.{find, findIndex} が実装された - hogehoge 866849 - Implement ES6 Array.of 884279 - renaming future to promise Firefox 25(Nightly) で DO…

Firefox 27(Nightly) における新たな String.prototype["@@iterator"]

928508 – String.prototype.@@iterator (and thus for-of) incorrectly iterates over code units rather than Unicode characters ちょいと面白いものが実装されて、String.prototype["@@iterator"]がアップデートされてた。"@@iterator" というのは、ECMAS…

addons.mozilla.org に登録していたアドオンを無効化した

Firefox 用の Pano とか Thunderbird 用の WAT とかを無効化した。理由は、随分前からメンテできてなくて、これからもするかどうか怪しいから。そのくせ、たまに質問メールらしきものが来る。いい加減面倒になってきたのだ。ソースは GitHub にあるわけだが…