Fixed dot properties not optimizing unicode identifiers. Signed-off-by: Justin Lau <justin@tclau.com>
This commit is contained in:
@@ -1962,8 +1962,8 @@ merge(Compressor.prototype, {
|
|||||||
var prop = self.property;
|
var prop = self.property;
|
||||||
if (prop instanceof AST_String && compressor.option("properties")) {
|
if (prop instanceof AST_String && compressor.option("properties")) {
|
||||||
prop = prop.getValue();
|
prop = prop.getValue();
|
||||||
if (is_identifier(prop)
|
if (compressor.option("screw_ie8") && RESERVED_WORDS(prop)
|
||||||
|| (compressor.option("screw_ie8") && /^[a-z_$][a-z0-9_$]*$/i.test(prop))) {
|
|| !(RESERVED_WORDS(prop)) && is_identifier_string(prop)) {
|
||||||
return make_node(AST_Dot, self, {
|
return make_node(AST_Dot, self, {
|
||||||
expression : self.expression,
|
expression : self.expression,
|
||||||
property : prop
|
property : prop
|
||||||
|
|||||||
@@ -167,6 +167,14 @@ function is_identifier_char(ch) {
|
|||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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) {
|
function parse_js_number(num) {
|
||||||
if (RE_HEX_NUMBER.test(num)) {
|
if (RE_HEX_NUMBER.test(num)) {
|
||||||
return parseInt(num.substr(2), 16);
|
return parseInt(num.substr(2), 16);
|
||||||
|
|||||||
Reference in New Issue
Block a user