improve compose ES5 defineProperty support