var prop = self.property;
if (prop instanceof AST_String && compressor.option("properties")) {
prop = prop.getValue();
- if (is_identifier(prop)
- || (compressor.option("screw_ie8") && /^[a-z_$][a-z0-9_$]*$/i.test(prop))) {
+ if (compressor.option("screw_ie8") && RESERVED_WORDS(prop)
+ || !(RESERVED_WORDS(prop)) && is_identifier_string(prop)) {
return make_node(AST_Dot, self, {
expression : self.expression,
property : prop
;
};
+function is_identifier_string(str){
+ for (var i = str.length; --i >= 0;) {
+ if (!is_identifier_char(str.charAt(i)))
+ return false;
+ }
+ return true;
+};
+
function parse_js_number(num) {
if (RE_HEX_NUMBER.test(num)) {
return parseInt(num.substr(2), 16);