ES5 sham for old browsers