これを見て。
http://qiita.com/QUENCH/items/3be4de21eeb5fdbf7fe8
最終週の金曜日を求めたかったら、
翌月から逆算したら、4週目か5週目か考える必要ないんちゃうん?って思って、やってみたら、
function get_premium_friday(year, month) {
return new Date(year, month+1, -((new Date(year, month+1, 0)).getDay()+2) % 7);
}
で、Firefoxでは動いた。
2017年5月0日は、2017年4月30日を指し、2017年5月-2日が2017年4月のプレミアムフライデーなわけである。
これが、Firefoxの独自仕様なのか、JavaScriptの仕様なのかは、MDNからは読み取れなかったが、
ECMAScript 5.1を見る感じだと、日付のパラメータは、ToNumberされた後、MakeDayに渡され、とたらい回しを受けつつも、マイナスになっても動きそうな感じにはなっている。
きっと、日付をマイナスにする書き方は、許されているのだろう。