if (!base && !values) return null;
exprs = [];
}
- if (values) {
- var fn = make_node(AST_Arrow, this, {
- argnames: [],
- body: [],
- value: make_sequence(this, values),
- });
- fn.init_vars(this.parent_scope);
- exprs.push(make_node(AST_Call, this, {
- args: [],
- expression: fn,
+ if (base) {
+ var node = to_class_expr(this, true);
+ node.properties = [];
+ if (exprs.length) node.properties.push(make_node(AST_ClassMethod, this, {
+ key: make_sequence(this, exprs),
+ value: make_node(AST_Function, this, {
+ argnames: [],
+ body: [],
+ }).init_vars(node),
}));
+ exprs = [ node ];
+
}
- exprs = exprs.length ? make_sequence(this, exprs) : null;
- if (!base) return exprs;
- var node = make_node(AST_ClassExpression, this, this);
- node.name = null;
- node.properties = [];
- if (exprs) node.properties.push(make_node(AST_ClassMethod, this, {
- key: exprs,
- value: make_node(AST_Function, this, {
+ if (values) exprs.push(make_node(AST_Call, this, {
+ expression: make_node(AST_Arrow, this, {
argnames: [],
body: [],
- }).init_vars(node),
+ value: make_sequence(this, values),
+ }).init_vars(this.parent_scope),
+ args: [],
}));
- return node;
+ return make_sequence(this, exprs);
});
def(AST_Conditional, function(compressor) {
var consequent = this.consequent.drop_side_effect_free(compressor);
});
AST_Arrow.DEFMETHOD("init_vars", function(parent_scope) {
init_scope_vars(this, parent_scope);
+ return this;
});
AST_AsyncArrow.DEFMETHOD("init_vars", function(parent_scope) {
init_scope_vars(this, parent_scope);