For C2 to have a fair chance you really have to test with WebGL available and pixel rounding off. Without WebGL you'll see a big hit from the browser engine overhead. I know not all systems support WebGL, but it's increasing all the time and represents the best possible performance with C2, which is probably what you really want to test. Also with pixel rounding on you make C2 do extra work on each draw call to round the position where in Classic the option was effectively off (it was not supported) so it wouldn't be doing that work for each object.
It's also vitally important to use exactly the same window size at runtime for the test to be fair. If you run a CC test in an 800x600 window, you must also ensure the viewport in the browser window is also 800x600 when testing C2 - otherwise the amount of work for the GPU is different and will skew the test. It's not enough to just set the window size property.
We have in the past found one case where C2 outperforms Classic with WebGL rendering on some systems: https://www.scirra.com/blog/102/html5-games-faster-than-native
C2 also has some algorithmic improvements over Classic in some cases:
- in C2 pathfinding is asynchronous (runs in a separate thread via a web worker) whereas in CC it was synchronous and run in the main thread. This meant even with native code long pathfinding searches would make the game jank, whereas this does not happen in C2.
- C2 recently got the collision cells optimisation, making very large layout collision-test intensive games far faster. CC never did this optimisation and brute forced everything all the time, so C2 probably actually scales better for large games.
- some areas of the event engine and rendering engine do less work via a lazy loading scheme whereas Classic brute forced things again.
C2 is also considerably more stable, including at runtime - Classic had some weird crashes and glitches due to the gone-too-far optimisations we implemented.