PostCSS v6でのNode#clone()

PostCSSのv6が出た。Node#clone()がちょっと賢くなって、rawsプロパティーを初期化しなくなった。そのため色々クローンして動かしてもインデントなどが崩れなくなった。

しかしこの変更ではまった。空のNodeにクローンしたNodeを追加する場合、rawsプロパティーが初期化されて追加されてしまう。何かしら子Nodeが存在するNodeに追加した場合は、期待通りにrawsプロパティーを維持して追加されるようだ。

手元の自作PostCSSプラグインではCSS MQPackerがこれに引っかかった。実装コードは変えずにテストを書き換えてまずは乗り切ることにした。あまり良くないやり方だが、テストをrawsプロパティーが初期化されることを前提に書いていたので、仕方がないと思う。

バグなのかどうか良くわからないが、空のNodeなので意図した挙動であってもおかしくなさそうだ。もうちょっと色々確認してからイシューが必要なら立てたい。


僕のPostCSSプラグインはすべてv6に対応させた。それぞれメジャー番号を上げたので、勝手には更新されないだろう。