Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xpra for openSUSE:Factory checked in 
at 2021-04-21 21:00:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xpra (Old)
 and      /work/SRC/openSUSE:Factory/.xpra.new.12324 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xpra"

Wed Apr 21 21:00:24 2021 rev:34 rq:887276 version:unknown

Changes:
--------
--- /work/SRC/openSUSE:Factory/xpra/xpra.changes        2021-04-19 
21:06:36.348083923 +0200
+++ /work/SRC/openSUSE:Factory/.xpra.new.12324/xpra.changes     2021-04-21 
21:01:08.566366098 +0200
@@ -1,0 +2,23 @@
+Wed Apr 21 10:40:46 UTC 2021 - Luigi Baldoni <aloi...@gmx.com>
+
+- Update to version 4.1.3
+  * fix window geometry constraints being applied wrong
+  * fix xpra start failures when the display is already running
+    (with use-display=auto)
+  * fix vp9 libvpx encoder failures with older library versions
+  * fix 'xpra top' errors when the version string is missing
+  * fix server errors when non interactive clients are connected
+    (ie: 'xpra top')
+  * fix http server error on incomplete installations
+  * fix http server builtin script handler
+  * fix icon loading errors causing empty start menus
+  * fix compilation against ffmpeg 4.4 and later on some
+    distributions
+  * exit more quickly with a failure if the VFB failed to start
+  * correctly replace existing notifications with the gtk
+    notifier backend
+  * silence some rare errors and stacktraces
+  * support CUDA 11.3
+- Update uglify-js to 3.13.4
+
+-------------------------------------------------------------------

Old:
----
  uglify-js-3.13.3.tgz
  xpra-4.1.2.tar.xz

New:
----
  uglify-js-3.13.4.tgz
  xpra-4.1.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xpra.spec ++++++
--- /var/tmp/diff_new_pack.brjq6E/_old  2021-04-21 21:01:09.162367036 +0200
+++ /var/tmp/diff_new_pack.brjq6E/_new  2021-04-21 21:01:09.166367043 +0200
@@ -17,9 +17,9 @@
 #
 
 
-%define xpra_ver 4.1.2
+%define xpra_ver 4.1.3
 %define html5_ver 4.1.2
-%define uglifyjs_ver 3.13.3
+%define uglifyjs_ver 3.13.4
 %global __requires_exclude 
^typelib\\(GtkosxApplication\\)|typelib\\(GdkGLExt\\)|typelib\\(GtkGLExt\\).*$
 Name:           xpra
 Version:        %{xpra_ver}
@@ -27,7 +27,7 @@
 Summary:        Remote display server for applications and desktops
 License:        BSD-3-Clause AND GPL-2.0-or-later AND LGPL-3.0-or-later AND MIT
 URL:            https://www.xpra.org/
-Source0:        https://xpra.org/src/%{name}-%{version}.tar.xz
+Source0:        https://xpra.org/src/%{name}-%{version}.tar.gz
 Source1:        xpra-icon.png
 Source2:        https://xpra.org/src/%{name}-html5-%{html5_ver}.tar.xz
 Source3:        
https://registry.npmjs.org/uglify-js/-/uglify-js-%{uglifyjs_ver}.tgz

++++++ uglify-js-3.13.3.tgz -> uglify-js-3.13.4.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package/lib/compress.js new/package/lib/compress.js
--- old/package/lib/compress.js 1985-10-26 09:15:00.000000000 +0100
+++ new/package/lib/compress.js 1985-10-26 09:15:00.000000000 +0100
@@ -1866,7 +1866,7 @@
                             return null;
                         }
                       default:
-                        return;
+                        return handle_custom_scan_order(node, multi_replacer);
                     }
                 }
                 // Replace variable when found
@@ -3054,7 +3054,7 @@
                 });
             }
 
-            function can_merge_flow(ab) {
+            function can_drop_abort(ab) {
                 if (ab instanceof AST_Return) return in_lambda && 
is_return_void(ab.value);
                 if (!(ab instanceof AST_LoopControl)) return false;
                 var lct = compressor.loopcontrol_target(ab);
@@ -3063,16 +3063,35 @@
                 return match_target(lct);
             }
 
+            function can_merge_flow(ab) {
+                if (!can_drop_abort(ab)) return false;
+                for (var j = statements.length; --j > i;) {
+                    var stat = statements[j];
+                    if (stat instanceof AST_DefClass) {
+                        if (stat.name.definition().preinit) return false;
+                    } else if (stat instanceof AST_Const || stat instanceof 
AST_Let) {
+                        if (!all(stat.definitions, function(defn) {
+                            return !defn.name.match_symbol(function(node) {
+                                return node instanceof AST_SymbolDeclaration 
&& node.definition().preinit;
+                            });
+                        })) return false;
+                    }
+                }
+                return true;
+            }
+
             function extract_functions() {
                 var defuns = [];
+                var lexical = false;
                 var tail = statements.splice(i + 1).filter(function(stat) {
                     if (stat instanceof AST_LambdaDefinition) {
                         defuns.push(stat);
                         return false;
                     }
+                    if (is_lexical_definition(stat)) lexical = true;
                     return true;
                 });
-                [].push.apply(all(tail, safe_to_trim) ? statements : tail, 
defuns);
+                [].push.apply(lexical ? tail : statements, defuns);
                 return tail;
             }
 
@@ -6937,7 +6956,9 @@
                         && vars.has(sym.name)) {
                         var def = vars.get(sym.name);
                         if (def.value) break;
-                        def.value = expr.right.clone();
+                        var value = expr.right;
+                        if (value instanceof AST_Sequence) value = 
value.clone();
+                        def.value = value;
                         remove(defs, def);
                         defs.push(def);
                         body.shift();
@@ -8427,16 +8448,19 @@
         if (!all(args, function(arg) {
             return !(arg instanceof AST_Spread);
         })) return;
+        var argnames = fn.argnames;
         var is_iife = fn === exp && !fn.name;
         if (fn.rest) {
             if (!(is_iife && compressor.option("rests"))) return;
-            var insert = fn.argnames.length;
+            var insert = argnames.length;
             args = args.slice(0, insert);
             while (args.length < insert) args.push(make_node(AST_Undefined, 
call).optimize(compressor));
             args.push(make_node(AST_Array, call, { elements: 
call.args.slice(insert) }));
-            call.args = args;
-            fn.argnames = fn.argnames.concat(fn.rest);
+            argnames = argnames.concat(fn.rest);
             fn.rest = null;
+        } else {
+            args = args.slice();
+            argnames = argnames.slice();
         }
         var pos = 0, last = 0;
         var drop_defaults = is_iife && compressor.option("default_values");
@@ -8452,14 +8476,14 @@
         } : return_false;
         var side_effects = [];
         for (var i = 0; i < args.length; i++) {
-            var argname = fn.argnames[i];
+            var argname = argnames[i];
             if (drop_defaults && argname instanceof AST_DefaultValue && 
args[i].is_defined(compressor)) {
-                fn.argnames[i] = argname = argname.name;
+                argnames[i] = argname = argname.name;
             }
             if (!argname || "__unused" in argname) {
                 var node = args[i].drop_side_effect_free(compressor);
                 if (drop_fargs(argname)) {
-                    if (argname) fn.argnames.splice(i, 1);
+                    if (argname) argnames.splice(i, 1);
                     args.splice(i, 1);
                     if (node) side_effects.push(node);
                     i--;
@@ -8481,7 +8505,7 @@
                 }
             } else if (drop_fargs(argname, args[i])) {
                 var node = args[i].drop_side_effect_free(compressor);
-                fn.argnames.splice(i, 1);
+                argnames.splice(i, 1);
                 args.splice(i, 1);
                 if (node) side_effects.push(node);
                 i--;
@@ -8493,15 +8517,17 @@
             }
             last = pos;
         }
-        for (; i < fn.argnames.length; i++) {
-            if (drop_fargs(fn.argnames[i])) fn.argnames.splice(i--, 1);
+        for (; i < argnames.length; i++) {
+            if (drop_fargs(argnames[i])) argnames.splice(i--, 1);
         }
+        fn.argnames = argnames;
         args.length = last;
+        call.args = args;
         if (!side_effects.length) return;
         var arg = make_sequence(call, side_effects);
-        args.push(args.length < fn.argnames.length ? 
make_node(AST_UnaryPrefix, call, {
+        args.push(args.length < argnames.length ? make_node(AST_UnaryPrefix, 
call, {
             operator: "void",
-            expression: arg
+            expression: arg,
         }) : arg);
     }
 
@@ -9386,6 +9412,7 @@
             var seq = lift_sequence_in_expression(self, compressor);
             if (seq !== self) return seq.optimize(compressor);
         }
+        if (compressor.option("unused")) drop_unused_call_args(self, 
compressor);
         if (compressor.option("unsafe")) {
             var exp = self.expression;
             if (is_undeclared_ref(exp)) {
@@ -9667,6 +9694,7 @@
         if (node instanceof AST_Sequence) return is_object(node.tail_node());
         if (node instanceof AST_SymbolRef) return 
is_object(node.fixed_value());
         return node instanceof AST_Array
+            || node instanceof AST_Class
             || node instanceof AST_Lambda
             || node instanceof AST_New
             || node instanceof AST_Object;
@@ -11457,15 +11485,18 @@
                 if (prop.key != key) continue;
                 if (!all(props, can_hoist_property)) break;
                 if (!safe_to_flatten(prop.value, compressor)) break;
+                props = props.map(function(prop) {
+                    return prop.value;
+                });
+                if (prop instanceof AST_ObjectMethod
+                    && prop.value instanceof AST_Function
+                    && !(compressor.parent() instanceof AST_Call)) {
+                    if (prop.value.uses_arguments) break;
+                    props[i] = make_node(AST_Arrow, prop.value, prop.value);
+                }
                 return make_node(AST_Sub, this, {
-                    expression: make_node(AST_Array, expr, {
-                        elements: props.map(function(prop) {
-                            return prop.value;
-                        })
-                    }),
-                    property: make_node(AST_Number, this, {
-                        value: i
-                    })
+                    expression: make_node(AST_Array, expr, { elements: props 
}),
+                    property: make_node(AST_Number, this, { value: i }),
                 });
             }
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package/lib/output.js new/package/lib/output.js
--- old/package/lib/output.js   1985-10-26 09:15:00.000000000 +0100
+++ new/package/lib/output.js   1985-10-26 09:15:00.000000000 +0100
@@ -49,8 +49,6 @@
 }
 
 function OutputStream(options) {
-
-    var readonly = !options;
     options = defaults(options, {
         annotations      : false,
         ascii_only       : false,
@@ -103,12 +101,35 @@
         }
     }
 
-    var indentation = options.indent_start;
     var current_col = 0;
     var current_line = 1;
     var current_pos = 0;
-    var OUTPUT = "";
+    var indentation = options.indent_start;
+    var last;
+    var line_end = 0;
+    var line_fixed = true;
+    var mappings = options.source_map && [];
+    var mapping_name;
+    var mapping_token;
+    var might_need_space;
+    var might_need_semicolon;
+    var need_newline_indented = false;
+    var need_space = false;
+    var newline_insert = -1;
+    var stack;
+    var OUTPUT;
 
+    function reset() {
+        last = "";
+        might_need_space = false;
+        might_need_semicolon = false;
+        stack = [];
+        var str = OUTPUT;
+        OUTPUT = "";
+        return str;
+    }
+
+    reset();
     var to_utf8 = options.ascii_only ? function(str, identifier) {
         if (identifier) str = str.replace(/[\ud800-\udbff][\udc00-\udfff]/g, 
function(ch) {
             return "\\u{" + (ch.charCodeAt(0) - 0xd7c0 << 10 | 
ch.charCodeAt(1) - 0xdc00).toString(16) + "}";
@@ -141,6 +162,25 @@
         return j == 0 ? str : s + str.slice(j);
     };
 
+    function quote_single(str) {
+        return "'" + str.replace(/\x27/g, "\\'") + "'";
+    }
+
+    function quote_double(str) {
+        return '"' + str.replace(/\x22/g, '\\"') + '"';
+    }
+
+    var quote_string = [
+        null,
+        quote_single,
+        quote_double,
+        function(str, quote) {
+            return quote == "'" ? quote_single(str) : quote_double(str);
+        },
+    ][options.quote_style] || function(str, quote, dq, sq) {
+        return dq > sq ? quote_single(str) : quote_double(str);
+    };
+
     function make_string(str, quote) {
         var dq = 0, sq = 0;
         str = str.replace(/[\\\b\f\n\r\v\t\x22\x27\u2028\u2029\0\ufeff]/g, 
function(s, i) {
@@ -162,54 +202,11 @@
             }
             return s;
         });
-        function quote_single() {
-            return "'" + str.replace(/\x27/g, "\\'") + "'";
-        }
-        function quote_double() {
-            return '"' + str.replace(/\x22/g, '\\"') + '"';
-        }
-        str = to_utf8(str);
-        switch (options.quote_style) {
-          case 1:
-            return quote_single();
-          case 2:
-            return quote_double();
-          case 3:
-            return quote == "'" ? quote_single() : quote_double();
-          default:
-            return dq > sq ? quote_single() : quote_double();
-        }
-    }
-
-    function encode_string(str, quote) {
-        var ret = make_string(str, quote);
-        if (options.inline_script) {
-            ret = ret.replace(/<\x2f(script)([>\/\t\n\f\r ])/gi, "<\\/$1$2");
-            ret = ret.replace(/\x3c!--/g, "\\x3c!--");
-            ret = ret.replace(/--\x3e/g, "--\\x3e");
-        }
-        return ret;
-    }
-
-    function make_name(name) {
-        name = name.toString();
-        name = to_utf8(name, true);
-        return name;
+        return quote_string(to_utf8(str), quote, dq, sq);
     }
 
     /* -----[ beautification/minification ]----- */
 
-    var has_parens = false;
-    var line_end = 0;
-    var line_fixed = true;
-    var might_need_space = false;
-    var might_need_semicolon = false;
-    var need_newline_indented = false;
-    var need_space = false;
-    var newline_insert = -1;
-    var last = "";
-    var mapping_token, mapping_name, mappings = options.source_map && [];
-
     var adjust_mappings = mappings ? function(line, col) {
         mappings.forEach(function(mapping) {
             mapping.line += line;
@@ -257,8 +254,14 @@
 
     var requireSemicolonChars = makePredicate("( [ + * / - , .");
 
-    function print(str) {
-        str = String(str);
+    var print = options.beautify
+        || options.comments
+        || options.max_line_len
+        || options.preserve_line
+        || options.shebang
+        || !options.semicolons
+        || options.source_map
+        || options.width ? function(str) {
         var ch = str.charAt(0);
         if (need_newline_indented && ch) {
             need_newline_indented = false;
@@ -328,7 +331,6 @@
         }
 
         OUTPUT += str;
-        has_parens = str.slice(-1) == "(";
         current_pos += str.length;
         var a = str.split(/\r?\n/), n = a.length - 1;
         current_line += n;
@@ -338,7 +340,30 @@
             current_col = a[n].length;
         }
         last = str;
-    }
+    } : function(str) {
+        var ch = str.charAt(0);
+        var prev = last.slice(-1);
+        if (might_need_semicolon) {
+            might_need_semicolon = false;
+            if (prev == ":" && ch == "}" || (!ch || ";}".indexOf(ch) < 0) && 
prev != ";") {
+                OUTPUT += ";";
+                might_need_space = false;
+            }
+        }
+        if (might_need_space) {
+            if (is_identifier_char(prev) && (is_identifier_char(ch) || ch == 
"\\")
+                || (ch == "/" && ch == prev)
+                || ((ch == "+" || ch == "-") && ch == last)
+                || str == "--" && last == "!"
+                || str == "in" && prev == "/"
+                || last == "--" && ch == ">") {
+                OUTPUT += " ";
+            }
+            if (prev != "<" || str != "!") might_need_space = false;
+        }
+        OUTPUT += str;
+        last = str;
+    };
 
     var space = options.beautify ? function() {
         print(" ");
@@ -351,14 +376,12 @@
         print(repeat_string(" ", half ? indentation - (options.indent_level >> 
1) : indentation));
     } : noop;
 
-    var with_indent = options.beautify ? function(col, cont) {
-        if (col === true) col = next_indent();
+    var with_indent = options.beautify ? function(cont) {
         var save_indentation = indentation;
-        indentation = col;
-        var ret = cont();
+        indentation += options.indent_level;
+        cont();
         indentation = save_indentation;
-        return ret;
-    } : function(col, cont) { return cont() };
+    } : function(cont) { cont() };
 
     var may_add_newline = options.max_line_len || options.preserve_line ? 
function() {
         fix_line();
@@ -387,41 +410,28 @@
         print(";");
     }
 
-    function next_indent() {
-        return indentation + options.indent_level;
-    }
-
     function with_block(cont) {
-        var ret;
         print("{");
         newline();
-        with_indent(next_indent(), function() {
-            ret = cont();
-        });
+        with_indent(cont);
         indent();
         print("}");
-        return ret;
     }
 
     function with_parens(cont) {
         print("(");
         may_add_newline();
-        //XXX: still nice to have that for argument lists
-        //var ret = with_indent(current_col, cont);
-        var ret = cont();
+        cont();
         may_add_newline();
         print(")");
-        return ret;
     }
 
     function with_square(cont) {
         print("[");
         may_add_newline();
-        //var ret = with_indent(current_col, cont);
-        var ret = cont();
+        cont();
         may_add_newline();
         print("]");
-        return ret;
     }
 
     function comma() {
@@ -553,15 +563,14 @@
         if (OUTPUT.length > insert) newline_insert = insert;
     }
 
-    var stack = [];
     return {
         get             : get,
-        toString        : get,
+        reset           : reset,
         indent          : indent,
-        should_break    : readonly ? noop : function() {
-            return options.width && current_col - indentation >= options.width;
-        },
-        has_parens      : function() { return has_parens },
+        should_break    : options.width ? function() {
+            return current_col - indentation >= options.width;
+        } : return_false,
+        has_parens      : function() { return last.slice(-1) == "(" },
         newline         : newline,
         print           : print,
         space           : space,
@@ -571,20 +580,21 @@
         semicolon       : semicolon,
         force_semicolon : force_semicolon,
         to_utf8         : to_utf8,
-        print_name      : function(name) { print(make_name(name)) },
-        print_string    : function(str, quote) { print(encode_string(str, 
quote)) },
-        next_indent     : next_indent,
+        print_name      : function(name) { print(to_utf8(name.toString(), 
true)) },
+        print_string    : options.inline_script ? function(str, quote) {
+            str = make_string(str, quote).replace(/<\x2f(script)([>\/\t\n\f\r 
])/gi, "<\\/$1$2");
+            print(str.replace(/\x3c!--/g, "\\x3c!--").replace(/--\x3e/g, 
"--\\x3e"));
+        } : function(str, quote) {
+            print(make_string(str, quote));
+        },
         with_indent     : with_indent,
         with_block      : with_block,
         with_parens     : with_parens,
         with_square     : with_square,
         add_mapping     : add_mapping,
         option          : function(opt) { return options[opt] },
-        prepend_comments: readonly ? noop : prepend_comments,
-        append_comments : readonly || comment_filter === return_false ? noop : 
append_comments,
-        line            : function() { return current_line },
-        col             : function() { return current_col },
-        pos             : function() { return current_pos },
+        prepend_comments: options.comments || options.shebang ? 
prepend_comments : noop,
+        append_comments : options.comments ? append_comments : noop,
         push_node       : function(node) { stack.push(node) },
         pop_node        : options.preserve_line ? function() {
             var node = stack.pop();
@@ -629,10 +639,19 @@
             stream.append_comments(self);
         }
     });
+    var readonly = OutputStream({
+        inline_script: false,
+        shebang: false,
+        width: false,
+    });
     AST_Node.DEFMETHOD("print_to_string", function(options) {
-        var s = OutputStream(options);
-        this.print(s);
-        return s.get();
+        if (options) {
+            var stream = OutputStream(options);
+            this.print(stream);
+            return stream.get();
+        }
+        this.print(readonly);
+        return readonly.reset();
     });
 
     /* -----[ PARENTHESES ]----- */
@@ -915,7 +934,7 @@
     });
     function print_braced_empty(self, output) {
         output.print("{");
-        output.with_indent(output.next_indent(), function() {
+        output.with_indent(function() {
             output.append_comments(self, true);
         });
         output.print("}");
@@ -1481,11 +1500,7 @@
             output.print_string(prop);
             output.print("]");
         } else {
-            if (expr instanceof AST_Number && expr.value >= 0) {
-                if (!/[xa-f.)]/i.test(output.last())) {
-                    output.print(".");
-                }
-            }
+            if (expr instanceof AST_Number && !/[ex.)]/i.test(output.last())) 
output.print(".");
             output.print(".");
             // the name after dot would be mapped about here.
             output.add_mapping(self.end);
@@ -1735,7 +1750,7 @@
         output.print("`");
     });
     DEFPRINT(AST_Constant, function(output) {
-        output.print(this.value);
+        output.print("" + this.value);
     });
     DEFPRINT(AST_String, function(output) {
         output.print_string(this.value, this.quote);
@@ -1791,7 +1806,7 @@
     function force_statement(stat, output) {
         if (output.option("braces") && !(stat instanceof AST_Const || stat 
instanceof AST_Let)) {
             make_block(stat, output);
-        } else if (!stat || stat instanceof AST_EmptyStatement) {
+        } else if (stat instanceof AST_EmptyStatement) {
             output.force_semicolon();
         } else {
             stat.print(output);
@@ -1842,11 +1857,11 @@
     }
 
     function make_block(stmt, output) {
-        if (!stmt || stmt instanceof AST_EmptyStatement)
-            output.print("{}");
-        else if (stmt instanceof AST_BlockStatement)
+        if (stmt instanceof AST_EmptyStatement) {
+            print_braced_empty(stmt, output);
+        } else if (stmt instanceof AST_BlockStatement) {
             stmt.print(output);
-        else output.with_block(function() {
+        } else output.with_block(function() {
             output.indent();
             stmt.print(output);
             output.newline();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package/lib/parse.js new/package/lib/parse.js
--- old/package/lib/parse.js    1985-10-26 09:15:00.000000000 +0100
+++ new/package/lib/parse.js    1985-10-26 09:15:00.000000000 +0100
@@ -351,7 +351,7 @@
 
     function read_while(pred) {
         var ret = "", ch;
-        while ((ch = peek()) && pred(ch)) ret += next();
+        while ((ch = peek()) && pred(ch, ret)) ret += next();
         return ret;
     }
 
@@ -359,24 +359,27 @@
         js_error(err, filename, S.tokline, S.tokcol, S.tokpos);
     }
 
+    function is_octal(num) {
+        return /^0[0-7_]+$/.test(num);
+    }
+
     function read_num(prefix) {
         var has_e = false, after_e = false, has_x = false, has_dot = prefix == 
".";
-        var num = read_while(function(ch) {
-            var code = ch.charCodeAt(0);
-            switch (code) {
-              case 120: case 88: // xX
+        var num = read_while(function(ch, str) {
+            switch (ch) {
+              case "x": case "X":
                 return has_x ? false : (has_x = true);
-              case 101: case 69: // eE
+              case "e": case "E":
                 return has_x ? true : has_e ? false : (has_e = after_e = true);
-              case 43: case 45: // +-
+              case "+": case "-":
                 return after_e;
-              case (after_e = false, 46): // .
-                return (!has_dot && !has_x && !has_e) ? (has_dot = true) : 
false;
+              case (after_e = false, "."):
+                return has_dot || has_e || has_x || is_octal(str) ? false : 
(has_dot = true);
             }
-            return is_digit(code) || /[_0-9a-fo]/i.test(ch);
+            return /[_0-9a-dfo]/i.test(ch);
         });
         if (prefix) num = prefix + num;
-        if (/^0[0-7_]+$/.test(num)) {
+        if (is_octal(num)) {
             if (next_token.has_directive("use strict")) parse_error("Legacy 
octal literals are not allowed in strict mode");
         } else {
             num = num.replace(has_x ? /([1-9a-f]|.0)_(?=[0-9a-f])/gi : 
/([1-9]|.0)_(?=[0-9])/gi, "$1");
@@ -854,7 +857,8 @@
                 next();
                 return export_();
               case "import":
-                if (!is_token(peek(), "punc", "(")) {
+                var token = peek();
+                if (!(token.type == "punc" && /^[(.]$/.test(token.value))) {
                     next();
                     return import_();
                 }
@@ -1185,7 +1189,7 @@
         var await = is("name", "await") && next();
         expect("(");
         var init = null;
-        if (!is("punc", ";")) {
+        if (await || !is("punc", ";")) {
             init = is("keyword", "const")
                 ? (next(), const_(true))
                 : is("keyword", "let")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package/lib/propmangle.js 
new/package/lib/propmangle.js
--- old/package/lib/propmangle.js       1985-10-26 09:15:00.000000000 +0100
+++ new/package/lib/propmangle.js       1985-10-26 09:15:00.000000000 +0100
@@ -81,7 +81,9 @@
 
 function reserve_quoted_keys(ast, reserved) {
     ast.walk(new TreeWalker(function(node) {
-        if (node instanceof AST_ObjectProperty) {
+        if (node instanceof AST_ClassProperty) {
+            if (node.start && node.start.quote) add(node.key);
+        } else if (node instanceof AST_ObjectProperty) {
             if (node.start && node.start.quote) add(node.key);
         } else if (node instanceof AST_Sub) {
             addStrings(node.property, add);
@@ -163,6 +165,8 @@
                 addStrings(node.args[0], add);
                 break;
             }
+        } else if (node instanceof AST_ClassProperty) {
+            if (typeof node.key == "string") add(node.key);
         } else if (node instanceof AST_Dot) {
             add(node.property);
         } else if (node instanceof AST_ObjectProperty) {
@@ -193,6 +197,8 @@
                 mangleStrings(node.args[0]);
                 break;
             }
+        } else if (node instanceof AST_ClassProperty) {
+            if (typeof node.key == "string") node.key = mangle(node.key);
         } else if (node instanceof AST_Dot) {
             node.property = mangle(node.property);
         } else if (node instanceof AST_ObjectProperty) {
@@ -222,9 +228,7 @@
     }
 
     function mangle(name) {
-        if (!should_mangle(name)) {
-            return name;
-        }
+        if (!should_mangle(name)) return name;
         var mangled = cache.get(name);
         if (!mangled) {
             if (debug) {
@@ -236,6 +240,7 @@
             if (!mangled) do {
                 mangled = base54(++cname);
             } while (!can_mangle(mangled));
+            if (/^#/.test(name)) mangled = "#" + mangled;
             cache.set(name, mangled);
         }
         return mangled;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package/lib/scope.js new/package/lib/scope.js
--- old/package/lib/scope.js    1985-10-26 09:15:00.000000000 +0100
+++ new/package/lib/scope.js    1985-10-26 09:15:00.000000000 +0100
@@ -273,16 +273,18 @@
             return true;
         }
         if (node instanceof AST_SymbolDeclaration) {
+            var def = node.definition();
+            def.preinit = def.references.length;
             if (node instanceof AST_SymbolCatch) {
                 // ensure mangling works if `catch` reuses a scope variable
-                var def = node.definition().redefined();
-                if (def) for (var s = node.scope; s; s = s.parent_scope) {
-                    push_uniq(s.enclosed, def);
-                    if (s === def.scope) break;
+                var redef = def.redefined();
+                if (redef) for (var s = node.scope; s; s = s.parent_scope) {
+                    push_uniq(s.enclosed, redef);
+                    if (s === redef.scope) break;
                 }
             } else if (node instanceof AST_SymbolConst) {
                 // ensure compression works if `const` reuses a scope variable
-                var redef = node.definition().redefined();
+                var redef = def.redefined();
                 if (redef) redef.const_redefs = true;
             }
             if (node.name != "arguments") return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/package/package.json new/package/package.json
--- old/package/package.json    1985-10-26 09:15:00.000000000 +0100
+++ new/package/package.json    1985-10-26 09:15:00.000000000 +0100
@@ -3,7 +3,7 @@
   "description": "JavaScript parser, mangler/compressor and beautifier 
toolkit",
   "author": "Mihai Bazon <mihai.ba...@gmail.com> (http://lisperator.net/)",
   "license": "BSD-2-Clause",
-  "version": "3.13.3",
+  "version": "3.13.4",
   "engines": {
     "node": ">=0.8.0"
   },

Reply via email to