Node.jsにおけるBuffer型のオブジェクトの判定方法
Node.jsにおいて、オブジェクトの各プロパティを再帰的に評価する処理の中で、処理終了までに想定以上の時間が掛かる不具合が発生。
原因を検証したところ、問題の処理では対象オブジェクトのプロパティの値がオブジェクトの場合はそのオブジェクトのプロパティを再帰的に評価していたが、オブジェクトがBuffer型である場合にオブジェクト内にプロパティが存在しないため、処理が正常に終了していなかったことが判明。
そこで、再帰処理を行う条件を
「プロパティの値がオブジェクトの場合」
から
「プロパティの値がオブジェクトでありかつBuffer型オブジェクトでない場合」
に変更。
なお、Buffer型オブジェクトの判定は以下のリンクによると
Buffer.isBuffer(obj)
でいける模様。
Buffer Node.js v0.12.2 Manual & Documentation
上記変更により、無事解決。