cappuccino/cappuccino — pull request #2073 by saikat (2014-02-24 00:33:04+00:00)
Title: Change CPThemes to use sets instead of bitmasks. Closes #2015.

I've done a bit of profiling here by just checking both implementation on the load time for https://gomockingbird.com/mockingbird, and there doesn't seem to be a significant difference, though it does seem to have slowed down currentValueForThemeAttribute just a bit. With the bitmask implementation, these were the times on three loads of Mockingbird:

[CPView setThemeState]: 1.1, 3.2, 1.1
[CPView setValue:forThemeAttribute:inState]: 1.1ms, 6.4, 1.1
[CPView setValue:forThemeAttribute]: 21.7, 8.4, 12.2
[CPView currentValueForThemeAttribute]: 13.7, 13.8, 11.1

With the new implementation:
[CPView setThemeState]: 3.1, 1.1, 4.2
[CPView setValue:forThemeAttribute:inState]: 4.1, 2.1, 4.2
[CPView setValue:forThemeAttribute]: 13.4, 10.5, 14.6
[CPView currentValueForThemeAttribute]: 15.5, 14.7, 14.6