improve class compatibility in side_effects (#5279)
This commit is contained in:
@@ -8290,17 +8290,26 @@ Compressor.prototype.compress = function(node) {
|
||||
if (!base && !values) return null;
|
||||
exprs = [];
|
||||
}
|
||||
if (base) {
|
||||
if (base || !compressor.has_directive("use strict")) {
|
||||
var node = to_class_expr(self, true);
|
||||
if (!base) node.extends = null;
|
||||
node.properties = [];
|
||||
if (exprs.length) node.properties.push(make_node(AST_ClassMethod, self, {
|
||||
key: make_sequence(self, exprs),
|
||||
value: make_node(AST_Function, self, {
|
||||
argnames: [],
|
||||
body: [],
|
||||
}).init_vars(node),
|
||||
}));
|
||||
exprs = [ node ];
|
||||
if (values) {
|
||||
node.properties.push(make_node(AST_ClassField, self, {
|
||||
static: true,
|
||||
key: exprs.length ? make_sequence(self, exprs) : "c",
|
||||
value: make_sequence(self, values),
|
||||
}));
|
||||
} else if (exprs.length) {
|
||||
node.properties.push(make_node(AST_ClassMethod, self, {
|
||||
key: make_sequence(self, exprs),
|
||||
value: make_node(AST_Function, self, {
|
||||
argnames: [],
|
||||
body: [],
|
||||
}).init_vars(node),
|
||||
}));
|
||||
}
|
||||
return node;
|
||||
}
|
||||
if (values) exprs.push(make_node(AST_Call, self, {
|
||||
expression: make_node(AST_Arrow, self, {
|
||||
|
||||
Reference in New Issue
Block a user