重构 common/tools.js