improve mangle and tests
This commit is contained in:
parent
2a4482c012
commit
2d45c1ff30
12
lib/scope.js
12
lib/scope.js
|
|
@ -183,7 +183,8 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options){
|
||||||
node.references = [];
|
node.references = [];
|
||||||
}
|
}
|
||||||
if (node instanceof AST_SymbolLambda) {
|
if (node instanceof AST_SymbolLambda) {
|
||||||
mark_export(defun.def_function(node));
|
defun.def_function(node);
|
||||||
|
in_export = false;
|
||||||
}
|
}
|
||||||
else if (node instanceof AST_SymbolDefun) {
|
else if (node instanceof AST_SymbolDefun) {
|
||||||
// Careful here, the scope where this should be defined is
|
// Careful here, the scope where this should be defined is
|
||||||
|
|
@ -201,7 +202,8 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options){
|
||||||
mark_export(defun.def_variable(node));
|
mark_export(defun.def_variable(node));
|
||||||
}
|
}
|
||||||
else if (node instanceof AST_SymbolImport) {
|
else if (node instanceof AST_SymbolImport) {
|
||||||
mark_export(scope.def_variable(node));
|
scope.def_variable(node);
|
||||||
|
in_export = false;
|
||||||
}
|
}
|
||||||
else if (node instanceof AST_SymbolDefClass) {
|
else if (node instanceof AST_SymbolDefClass) {
|
||||||
// This deals with the name of the class being available
|
// This deals with the name of the class being available
|
||||||
|
|
@ -212,6 +214,11 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options){
|
||||||
|| node instanceof AST_SymbolLet
|
|| node instanceof AST_SymbolLet
|
||||||
|| node instanceof AST_SymbolConst) {
|
|| node instanceof AST_SymbolConst) {
|
||||||
var def = ((node instanceof AST_SymbolBlockDeclaration) ? scope : defun).def_variable(node);
|
var def = ((node instanceof AST_SymbolBlockDeclaration) ? scope : defun).def_variable(node);
|
||||||
|
if (node instanceof AST_SymbolFunarg) {
|
||||||
|
in_export = false;
|
||||||
|
} else {
|
||||||
|
mark_export(def);
|
||||||
|
}
|
||||||
def.destructuring = in_destructuring;
|
def.destructuring = in_destructuring;
|
||||||
if (defun !== scope) {
|
if (defun !== scope) {
|
||||||
node.mark_enclosed(options);
|
node.mark_enclosed(options);
|
||||||
|
|
@ -224,6 +231,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options){
|
||||||
}
|
}
|
||||||
else if (node instanceof AST_SymbolCatch) {
|
else if (node instanceof AST_SymbolCatch) {
|
||||||
scope.def_variable(node).defun = defun;
|
scope.def_variable(node).defun = defun;
|
||||||
|
in_export = false;
|
||||||
}
|
}
|
||||||
else if (node instanceof AST_LabelRef) {
|
else if (node instanceof AST_LabelRef) {
|
||||||
var sym = labels.get(node.name);
|
var sym = labels.get(node.name);
|
||||||
|
|
|
||||||
|
|
@ -79,10 +79,13 @@ export_mangle_2: {
|
||||||
return one - two;
|
return one - two;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
expect_exact: "export default function foo(n,o){return n-o};"
|
expect_exact: "export default function n(r,t){return r-t};"
|
||||||
}
|
}
|
||||||
|
|
||||||
export_mangle_3: {
|
export_mangle_3: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
}
|
||||||
mangle = {}
|
mangle = {}
|
||||||
input: {
|
input: {
|
||||||
export class C {
|
export class C {
|
||||||
|
|
@ -92,10 +95,13 @@ export_mangle_3: {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
expect_exact: "export class C{go(n,r){var t=n;return n-r+t}};"
|
expect_exact: "export class C{go(n,r){return n-r+n}};"
|
||||||
}
|
}
|
||||||
|
|
||||||
export_mangle_4: {
|
export_mangle_4: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
}
|
||||||
mangle = {}
|
mangle = {}
|
||||||
input: {
|
input: {
|
||||||
export default class C {
|
export default class C {
|
||||||
|
|
@ -105,7 +111,7 @@ export_mangle_4: {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
expect_exact: "export default class C{go(n,r){var t=n;return n-r+t}};"
|
expect_exact: "export default class C{go(n,r){return n-r+n}};"
|
||||||
}
|
}
|
||||||
|
|
||||||
export_mangle_5: {
|
export_mangle_5: {
|
||||||
|
|
@ -119,3 +125,11 @@ export_mangle_5: {
|
||||||
}
|
}
|
||||||
expect_exact: "export default{prop:function(n,r){return n-r}};"
|
expect_exact: "export default{prop:function(n,r){return n-r}};"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export_mangle_6: {
|
||||||
|
mangle = {}
|
||||||
|
input: {
|
||||||
|
export let foo = 1;
|
||||||
|
}
|
||||||
|
expect_exact: "export let foo=1;"
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user