Recommendation:
1) Write test cases, 100's of them. Everywhere there is a corner case in the W3C spec, write a test case for it. Imagine that someone who doesn't have the W3C spec could rewrite it from your test cases. Get someone to check your test cases, then you'll be sure that you understand the specs right.
2) Automate the test cases, make it a double click to list all the ones it fails on. There must be some auto-test-cases thing in Mozilla, get your test cases in there.
3) Write a patch, by now you'll understand the problem so deeply, that it will take seconds. Test it on your test cases, see how well it does. Keep going until you pass them all. Proove to people - this new patch goes from 12% compliance to 100% compliance, please apply :)
You should really be grateful! This problem looks like a functional problem - the outputs are entirely dependant on the tree and the positions. Its a "nice" computer science problem, a good problem, fun to solve, and all about man against machine. The horrible problems are those which involve dependancies, code behaving different in different scenarios (compiler/compiler-flags,processor) and anything that is not functional.
Note: by functional I do not mean easy at all, I just mean fun :)
(From Alex: That's pretty much what I did. There's only one small problem: the testcases themselves were flawed.)
Posted by Neil Mitchell at September 19, 2004 3:21 AM