Bug 568953 - Refactor FunctionNode; r=jorendorff