Use templates to clean up comparison node code
The end goal is to move to op-code generation for a byte-code interpreter. In many existing Node evaluate* calls we do the same set of operations:
1. convert the inputs to a base type we know how to handle
2. do whatever is specific to that node
3. convert the output to whatever type was requested by the caller.
I'm trying to get ride of steps 1. and 2. and leave us only with step 3. Steps 1. and 2. are basically copy/paste code and will end up as standard op-code groups which are re-used by lots of Nodes in the bytecode interpreter.
I've attached a patch for comment. It's not a perfect solution, but I think it's a good start. I'm not sure the template usage is exactly as I want it to be in the end.
Created attachment 17246 [details]
a first-pass fix (depends on bug 15972)
I'd be interested in any comments you all have to offer. I don't yet have a SunSpider number. I think I made a typo in one of the operation implementations, because SunSpider falls to its knees under this patch. I'm investigating that fix now, but that doesn't hold up the process of getting comments on the general design.
This is no longer an issue after SquirrelFish.