full ecma5 support, need further testing