remove compress hack in favor of @alexlamsl's AST_Function suggestion

This commit is contained in:
kzc 2017-12-17 09:25:13 -05:00
parent f3332f591e
commit 1fe2422f80
2 changed files with 9 additions and 8 deletions

View File

@ -409,7 +409,6 @@ merge(Compressor.prototype, {
}
}
if (node instanceof AST_DefClass || node instanceof AST_Defun) {
if (!node.name) return;
node.inlined = false;
var d = node.name.definition();
if (compressor.exposed(d) || safe_to_read(d)) {
@ -2582,7 +2581,6 @@ merge(Compressor.prototype, {
if (node instanceof AST_Defun || node instanceof AST_DefClass) {
var in_export = tw.parent() instanceof AST_Export;
if (in_export || !drop_funcs && scope === self) {
if (!node.name) return;
var node_def = node.name.definition();
if (node_def.global && !(node_def.id in in_use_ids)) {
in_use_ids[node_def.id] = true;
@ -2668,7 +2666,6 @@ merge(Compressor.prototype, {
if (node.name
&& (!compressor.option("keep_classnames") && node instanceof AST_ClassExpression
|| !compressor.option("keep_fnames") && node instanceof AST_Function)) {
if (!node.name) return;
var def = node.name.definition();
// any declarations with same name will overshadow
// name of this anonymous function and can therefore
@ -2704,7 +2701,6 @@ merge(Compressor.prototype, {
}
}
if ((node instanceof AST_Defun || node instanceof AST_DefClass) && node !== self) {
if (!node.name) return;
var def = node.name.definition();
var keep = (def.id in in_use_ids) || !drop_funcs && def.global;
if (!keep) {

View File

@ -1310,7 +1310,7 @@ function parse($TEXT, options) {
var function_ = function(ctor, is_generator_property, is_async, is_export_default) {
if (is_generator_property && is_async) croak("generators cannot be async");
var start = S.token
var start = S.token;
var in_statement = ctor === AST_Defun;
var is_generator = is("operator", "*");
@ -1319,8 +1319,13 @@ function parse($TEXT, options) {
}
var name = is("name") ? as_symbol(in_statement ? AST_SymbolDefun : AST_SymbolLambda) : null;
if (in_statement && !name && !is_export_default)
unexpected();
if (in_statement && !name) {
if (is_export_default) {
ctor = AST_Function;
} else {
unexpected();
}
}
if (name && ctor !== AST_Accessor && !(name instanceof AST_SymbolDeclaration))
unexpected(prev());
@ -2530,7 +2535,7 @@ function parse($TEXT, options) {
semicolon();
} else if ((node = statement(is_default)) instanceof AST_Definitions && is_default) {
unexpected(node.start);
} else if (node instanceof AST_Definitions || node instanceof AST_Defun || node instanceof AST_DefClass) {
} else if (node instanceof AST_Definitions || node instanceof AST_Lambda || node instanceof AST_DefClass) {
exported_definition = node;
} else if (node instanceof AST_SimpleStatement) {
exported_value = node.body;