diff options
-rw-r--r-- | README.md | 2 | ||||
-rwxr-xr-x | bin/uglifyjs | 14 |
2 files changed, 12 insertions, 4 deletions
@@ -253,7 +253,7 @@ cover most standard JS and DOM properties defined in various browsers. Pass `--reserve-domprops` to read that in. You can also use a regular expression to define which property names should be -mangled. For example, `--mangle-regex="^_"` will only mangle property names +mangled. For example, `--mangle-regex="/^_/"` will only mangle property names that start with an underscore. When you compress multiple files using this option, in order for them to diff --git a/bin/uglifyjs b/bin/uglifyjs index 9a1323fd..4768f766 100755 --- a/bin/uglifyjs +++ b/bin/uglifyjs @@ -192,6 +192,15 @@ function writeNameCache(key, cache) { return UglifyJS.writeNameCache(ARGS.name_cache, key, cache); } +function extractRegex(str) { + if (/^\/.*\/[a-zA-Z]*$/.test(str)) { + var regex_pos = str.lastIndexOf("/"); + return new RegExp(str.substr(1, regex_pos - 1), str.substr(regex_pos + 1)); + } else { + throw new Error("Invalid regular expression: " + str); + } +} + if (ARGS.quotes === true) { ARGS.quotes = 3; } @@ -218,9 +227,8 @@ if (BEAUTIFY) if (ARGS.comments != null) { if (/^\/.*\/[a-zA-Z]*$/.test(ARGS.comments)) { - var regex_pos = ARGS.comments.lastIndexOf("/"); try { - OUTPUT_OPTIONS.comments = new RegExp(ARGS.comments.substr(1, regex_pos - 1), ARGS.comments.substr(regex_pos + 1)); + OUTPUT_OPTIONS.comments = extractRegex(ARGS.comments); } catch (e) { print_error("ERROR: Invalid --comments: " + e.message); } @@ -379,7 +387,7 @@ async.eachLimit(files, 1, function (file, cb) { var regex; try { - regex = ARGS.mangle_regex ? new RegExp(ARGS.mangle_regex) : null; + regex = ARGS.mangle_regex ? extractRegex(ARGS.mangle_regex) : null; } catch (e) { print_error("ERROR: Invalid --mangle-regex: " + e.message); process.exit(1); |