Merge pull request #1594 from js6i/perf2

Reducing redundant state changes