from ruby 1.9.3 source code.