US stocks close higher to post weekly gains before Christmas