aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/uglifyjs15
-rw-r--r--lib/compress.js3
-rw-r--r--test/compress/properties.js15
3 files changed, 25 insertions, 8 deletions
diff --git a/bin/uglifyjs b/bin/uglifyjs
index f20976d4..aecc0726 100755
--- a/bin/uglifyjs
+++ b/bin/uglifyjs
@@ -114,20 +114,21 @@ if (ARGS.acorn) {
acorn = require("acorn");
}
-var COMPRESS = getOptions("c", true);
-var MANGLE = getOptions("m", true);
+var COMPRESS = getOptions("c", true) || {};
+var MANGLE = getOptions("m", true) || {};
var BEAUTIFY = getOptions("b", true);
-if (COMPRESS && ARGS.d) {
+if (ARGS.d) {
COMPRESS.global_defs = getOptions("d");
}
-if (MANGLE && ARGS.r) {
- MANGLE.except = ARGS.r.replace(/^\s+|\s+$/g).split(/\s*,+\s*/);
+if (ARGS.screw_ie8) {
+ COMPRESS.screw_ie8 = true;
+ MANGLE.screw_ie8 = true;
}
-if (MANGLE && ARGS.screw_ie8) {
- MANGLE.screw_ie8 = true;
+if (ARGS.r) {
+ MANGLE.except = ARGS.r.replace(/^\s+|\s+$/g).split(/\s*,+\s*/);
}
var OUTPUT_OPTIONS = {
diff --git a/lib/compress.js b/lib/compress.js
index 216826d6..ebd3dd7a 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -66,6 +66,7 @@ function Compressor(options, false_by_default) {
join_vars : !false_by_default,
cascade : !false_by_default,
side_effects : !false_by_default,
+ screw_ie8 : false,
warnings : true,
global_defs : {}
@@ -1961,7 +1962,7 @@ merge(Compressor.prototype, {
var prop = self.property;
if (prop instanceof AST_String && compressor.option("properties")) {
prop = prop.getValue();
- if (is_identifier(prop)) {
+ if (is_identifier(prop) || compressor.option("screw_ie8")) {
return make_node(AST_Dot, self, {
expression : self.expression,
property : prop
diff --git a/test/compress/properties.js b/test/compress/properties.js
index 72e245ec..9b066ec9 100644
--- a/test/compress/properties.js
+++ b/test/compress/properties.js
@@ -23,3 +23,18 @@ dot_properties: {
a["if"] = "if";
}
}
+
+dot_properties_es5: {
+ options = {
+ properties: true,
+ screw_ie8: true
+ };
+ input: {
+ a["foo"] = "bar";
+ a["if"] = "if";
+ }
+ expect: {
+ a.foo = "bar";
+ a.if = "if";
+ }
+}