1
0
mirror of https://github.com/S2-/minifyfromhtml.git synced 2025-08-02 20:00:05 +02:00

update packages to latest version

This commit is contained in:
s2
2022-08-20 18:51:33 +02:00
parent 09663a35a5
commit 806ebf9a57
4513 changed files with 366205 additions and 92512 deletions

View File

@@ -41,7 +41,6 @@
***********************************************************************/
import * as ast from "./ast.js";
import { make_node } from "./utils/index.js";
import {
AST_Accessor,
@@ -158,6 +157,7 @@ import {
AST_With,
AST_Yield,
} from "./ast.js";
import { is_basic_identifier_string } from "./parse.js";
(function() {
@@ -179,6 +179,24 @@ import {
return body;
};
const assert_clause_from_moz = (assertions) => {
if (assertions && assertions.length > 0) {
return new AST_Object({
start: my_start_token(assertions),
end: my_end_token(assertions),
properties: assertions.map((assertion_kv) =>
new AST_ObjectKeyVal({
start: my_start_token(assertion_kv),
end: my_end_token(assertion_kv),
key: assertion_kv.key.name || assertion_kv.key.value,
value: from_moz(assertion_kv.value)
})
)
});
}
return null;
};
var MOZ_TO_ME = {
Program: function(M) {
return new AST_Toplevel({
@@ -187,6 +205,7 @@ import {
body: normalize_directives(M.body.map(from_moz))
});
},
ArrayPattern: function(M) {
return new AST_Destructuring({
start: my_start_token(M),
@@ -200,6 +219,7 @@ import {
is_array: true
});
},
ObjectPattern: function(M) {
return new AST_Destructuring({
start: my_start_token(M),
@@ -208,6 +228,7 @@ import {
is_array: false
});
},
AssignmentPattern: function(M) {
return new AST_DefaultAssign({
start: my_start_token(M),
@@ -217,6 +238,7 @@ import {
right: from_moz(M.right)
});
},
SpreadElement: function(M) {
return new AST_Expansion({
start: my_start_token(M),
@@ -224,6 +246,7 @@ import {
expression: from_moz(M.argument)
});
},
RestElement: function(M) {
return new AST_Expansion({
start: my_start_token(M),
@@ -231,6 +254,7 @@ import {
expression: from_moz(M.argument)
});
},
TemplateElement: function(M) {
return new AST_TemplateSegment({
start: my_start_token(M),
@@ -239,6 +263,7 @@ import {
raw: M.value.raw
});
},
TemplateLiteral: function(M) {
var segments = [];
for (var i = 0; i < M.quasis.length; i++) {
@@ -253,6 +278,7 @@ import {
segments: segments
});
},
TaggedTemplateExpression: function(M) {
return new AST_PrefixedTemplateString({
start: my_start_token(M),
@@ -261,6 +287,7 @@ import {
prefix: from_moz(M.tag)
});
},
FunctionDeclaration: function(M) {
return new AST_Defun({
start: my_start_token(M),
@@ -272,6 +299,7 @@ import {
body: normalize_directives(from_moz(M.body).body)
});
},
FunctionExpression: function(M) {
return new AST_Function({
start: my_start_token(M),
@@ -283,6 +311,7 @@ import {
body: normalize_directives(from_moz(M.body).body)
});
},
ArrowFunctionExpression: function(M) {
const body = M.body.type === "BlockStatement"
? from_moz(M.body).body
@@ -295,6 +324,7 @@ import {
async: M.async,
});
},
ExpressionStatement: function(M) {
return new AST_SimpleStatement({
start: my_start_token(M),
@@ -302,6 +332,7 @@ import {
body: from_moz(M.expression)
});
},
TryStatement: function(M) {
var handlers = M.handlers || [M.handler];
if (handlers.length > 1 || M.guardedHandlers && M.guardedHandlers.length) {
@@ -315,6 +346,7 @@ import {
bfinally : M.finalizer ? new AST_Finally(from_moz(M.finalizer)) : null
});
},
Property: function(M) {
var key = M.key;
var args = {
@@ -357,6 +389,7 @@ import {
return new AST_ConciseMethod(args);
}
},
MethodDefinition: function(M) {
var args = {
start : my_start_token(M),
@@ -375,6 +408,7 @@ import {
args.async = M.value.async;
return new AST_ConciseMethod(args);
},
FieldDefinition: function(M) {
let key;
if (M.computed) {
@@ -391,6 +425,7 @@ import {
static : M.static,
});
},
PropertyDefinition: function(M) {
let key;
if (M.computed) {
@@ -408,6 +443,7 @@ import {
static : M.static,
});
},
ArrayExpression: function(M) {
return new AST_Array({
start : my_start_token(M),
@@ -417,6 +453,7 @@ import {
})
});
},
ObjectExpression: function(M) {
return new AST_Object({
start : my_start_token(M),
@@ -430,6 +467,7 @@ import {
})
});
},
SequenceExpression: function(M) {
return new AST_Sequence({
start : my_start_token(M),
@@ -437,6 +475,7 @@ import {
expressions: M.expressions.map(from_moz)
});
},
MemberExpression: function(M) {
return new (M.computed ? AST_Sub : AST_Dot)({
start : my_start_token(M),
@@ -446,6 +485,7 @@ import {
optional : M.optional || false
});
},
ChainExpression: function(M) {
return new AST_Chain({
start : my_start_token(M),
@@ -453,6 +493,7 @@ import {
expression : from_moz(M.expression)
});
},
SwitchCase: function(M) {
return new (M.test ? AST_Case : AST_Default)({
start : my_start_token(M),
@@ -461,6 +502,7 @@ import {
body : M.consequent.map(from_moz)
});
},
VariableDeclaration: function(M) {
return new (M.kind === "const" ? AST_Const :
M.kind === "let" ? AST_Let : AST_Var)({
@@ -499,9 +541,11 @@ import {
end : my_end_token(M),
imported_name: imported_name,
imported_names : imported_names,
module_name : from_moz(M.source)
module_name : from_moz(M.source),
assert_clause: assert_clause_from_moz(M.assertions)
});
},
ExportAllDeclaration: function(M) {
return new AST_Export({
start: my_start_token(M),
@@ -512,9 +556,11 @@ import {
foreign_name: new AST_SymbolExportForeign({ name: "*" })
})
],
module_name: from_moz(M.source)
module_name: from_moz(M.source),
assert_clause: assert_clause_from_moz(M.assertions)
});
},
ExportNamedDeclaration: function(M) {
return new AST_Export({
start: my_start_token(M),
@@ -526,9 +572,11 @@ import {
name: from_moz(specifier.local)
});
}) : null,
module_name: from_moz(M.source)
module_name: from_moz(M.source),
assert_clause: assert_clause_from_moz(M.assertions)
});
},
ExportDefaultDeclaration: function(M) {
return new AST_Export({
start: my_start_token(M),
@@ -537,6 +585,7 @@ import {
is_default: true
});
},
Literal: function(M) {
var val = M.value, args = {
start : my_start_token(M),
@@ -572,6 +621,7 @@ import {
return new (val ? AST_True : AST_False)(args);
}
},
MetaProperty: function(M) {
if (M.meta.name === "new" && M.property.name === "target") {
return new AST_NewTarget({
@@ -585,6 +635,7 @@ import {
});
}
},
Identifier: function(M) {
var p = FROM_MOZ_STACK[FROM_MOZ_STACK.length - 2];
return new ( p.type == "LabeledStatement" ? AST_Label
@@ -607,12 +658,262 @@ import {
name : M.name
});
},
BigIntLiteral(M) {
return new AST_BigInt({
start : my_start_token(M),
end : my_end_token(M),
value : M.value
});
},
EmptyStatement: function(M) {
return new AST_EmptyStatement({
start: my_start_token(M),
end: my_end_token(M)
});
},
BlockStatement: function(M) {
return new AST_BlockStatement({
start: my_start_token(M),
end: my_end_token(M),
body: M.body.map(from_moz)
});
},
IfStatement: function(M) {
return new AST_If({
start: my_start_token(M),
end: my_end_token(M),
condition: from_moz(M.test),
body: from_moz(M.consequent),
alternative: from_moz(M.alternate)
});
},
LabeledStatement: function(M) {
return new AST_LabeledStatement({
start: my_start_token(M),
end: my_end_token(M),
label: from_moz(M.label),
body: from_moz(M.body)
});
},
BreakStatement: function(M) {
return new AST_Break({
start: my_start_token(M),
end: my_end_token(M),
label: from_moz(M.label)
});
},
ContinueStatement: function(M) {
return new AST_Continue({
start: my_start_token(M),
end: my_end_token(M),
label: from_moz(M.label)
});
},
WithStatement: function(M) {
return new AST_With({
start: my_start_token(M),
end: my_end_token(M),
expression: from_moz(M.object),
body: from_moz(M.body)
});
},
SwitchStatement: function(M) {
return new AST_Switch({
start: my_start_token(M),
end: my_end_token(M),
expression: from_moz(M.discriminant),
body: M.cases.map(from_moz)
});
},
ReturnStatement: function(M) {
return new AST_Return({
start: my_start_token(M),
end: my_end_token(M),
value: from_moz(M.argument)
});
},
ThrowStatement: function(M) {
return new AST_Throw({
start: my_start_token(M),
end: my_end_token(M),
value: from_moz(M.argument)
});
},
WhileStatement: function(M) {
return new AST_While({
start: my_start_token(M),
end: my_end_token(M),
condition: from_moz(M.test),
body: from_moz(M.body)
});
},
DoWhileStatement: function(M) {
return new AST_Do({
start: my_start_token(M),
end: my_end_token(M),
condition: from_moz(M.test),
body: from_moz(M.body)
});
},
ForStatement: function(M) {
return new AST_For({
start: my_start_token(M),
end: my_end_token(M),
init: from_moz(M.init),
condition: from_moz(M.test),
step: from_moz(M.update),
body: from_moz(M.body)
});
},
ForInStatement: function(M) {
return new AST_ForIn({
start: my_start_token(M),
end: my_end_token(M),
init: from_moz(M.left),
object: from_moz(M.right),
body: from_moz(M.body)
});
},
ForOfStatement: function(M) {
return new AST_ForOf({
start: my_start_token(M),
end: my_end_token(M),
init: from_moz(M.left),
object: from_moz(M.right),
body: from_moz(M.body),
await: M.await
});
},
AwaitExpression: function(M) {
return new AST_Await({
start: my_start_token(M),
end: my_end_token(M),
expression: from_moz(M.argument)
});
},
YieldExpression: function(M) {
return new AST_Yield({
start: my_start_token(M),
end: my_end_token(M),
expression: from_moz(M.argument),
is_star: M.delegate
});
},
DebuggerStatement: function(M) {
return new AST_Debugger({
start: my_start_token(M),
end: my_end_token(M)
});
},
VariableDeclarator: function(M) {
return new AST_VarDef({
start: my_start_token(M),
end: my_end_token(M),
name: from_moz(M.id),
value: from_moz(M.init)
});
},
CatchClause: function(M) {
return new AST_Catch({
start: my_start_token(M),
end: my_end_token(M),
argname: from_moz(M.param),
body: from_moz(M.body).body
});
},
ThisExpression: function(M) {
return new AST_This({
start: my_start_token(M),
end: my_end_token(M)
});
},
Super: function(M) {
return new AST_Super({
start: my_start_token(M),
end: my_end_token(M)
});
},
BinaryExpression: function(M) {
return new AST_Binary({
start: my_start_token(M),
end: my_end_token(M),
operator: M.operator,
left: from_moz(M.left),
right: from_moz(M.right)
});
},
LogicalExpression: function(M) {
return new AST_Binary({
start: my_start_token(M),
end: my_end_token(M),
operator: M.operator,
left: from_moz(M.left),
right: from_moz(M.right)
});
},
AssignmentExpression: function(M) {
return new AST_Assign({
start: my_start_token(M),
end: my_end_token(M),
operator: M.operator,
left: from_moz(M.left),
right: from_moz(M.right)
});
},
ConditionalExpression: function(M) {
return new AST_Conditional({
start: my_start_token(M),
end: my_end_token(M),
condition: from_moz(M.test),
consequent: from_moz(M.consequent),
alternative: from_moz(M.alternate)
});
},
NewExpression: function(M) {
return new AST_New({
start: my_start_token(M),
end: my_end_token(M),
expression: from_moz(M.callee),
args: M.arguments.map(from_moz)
});
},
CallExpression: function(M) {
return new AST_Call({
start: my_start_token(M),
end: my_end_token(M),
expression: from_moz(M.callee),
optional: M.optional,
args: M.arguments.map(from_moz)
});
}
};
@@ -639,35 +940,200 @@ import {
});
};
map("EmptyStatement", AST_EmptyStatement);
map("BlockStatement", AST_BlockStatement, "body@body");
map("IfStatement", AST_If, "test>condition, consequent>body, alternate>alternative");
map("LabeledStatement", AST_LabeledStatement, "label>label, body>body");
map("BreakStatement", AST_Break, "label>label");
map("ContinueStatement", AST_Continue, "label>label");
map("WithStatement", AST_With, "object>expression, body>body");
map("SwitchStatement", AST_Switch, "discriminant>expression, cases@body");
map("ReturnStatement", AST_Return, "argument>value");
map("ThrowStatement", AST_Throw, "argument>value");
map("WhileStatement", AST_While, "test>condition, body>body");
map("DoWhileStatement", AST_Do, "test>condition, body>body");
map("ForStatement", AST_For, "init>init, test>condition, update>step, body>body");
map("ForInStatement", AST_ForIn, "left>init, right>object, body>body");
map("ForOfStatement", AST_ForOf, "left>init, right>object, body>body, await=await");
map("AwaitExpression", AST_Await, "argument>expression");
map("YieldExpression", AST_Yield, "argument>expression, delegate=is_star");
map("DebuggerStatement", AST_Debugger);
map("VariableDeclarator", AST_VarDef, "id>name, init>value");
map("CatchClause", AST_Catch, "param>argname, body%body");
def_to_moz(AST_EmptyStatement, function To_Moz_EmptyStatement() {
return {
type: "EmptyStatement"
};
});
def_to_moz(AST_BlockStatement, function To_Moz_BlockStatement(M) {
return {
type: "BlockStatement",
body: M.body.map(to_moz)
};
});
def_to_moz(AST_If, function To_Moz_IfStatement(M) {
return {
type: "IfStatement",
test: to_moz(M.condition),
consequent: to_moz(M.body),
alternate: to_moz(M.alternative)
};
});
def_to_moz(AST_LabeledStatement, function To_Moz_LabeledStatement(M) {
return {
type: "LabeledStatement",
label: to_moz(M.label),
body: to_moz(M.body)
};
});
def_to_moz(AST_Break, function To_Moz_BreakStatement(M) {
return {
type: "BreakStatement",
label: to_moz(M.label)
};
});
def_to_moz(AST_Continue, function To_Moz_ContinueStatement(M) {
return {
type: "ContinueStatement",
label: to_moz(M.label)
};
});
def_to_moz(AST_With, function To_Moz_WithStatement(M) {
return {
type: "WithStatement",
object: to_moz(M.expression),
body: to_moz(M.body)
};
});
def_to_moz(AST_Switch, function To_Moz_SwitchStatement(M) {
return {
type: "SwitchStatement",
discriminant: to_moz(M.expression),
cases: M.body.map(to_moz)
};
});
def_to_moz(AST_Return, function To_Moz_ReturnStatement(M) {
return {
type: "ReturnStatement",
argument: to_moz(M.value)
};
});
def_to_moz(AST_Throw, function To_Moz_ThrowStatement(M) {
return {
type: "ThrowStatement",
argument: to_moz(M.value)
};
});
def_to_moz(AST_While, function To_Moz_WhileStatement(M) {
return {
type: "WhileStatement",
test: to_moz(M.condition),
body: to_moz(M.body)
};
});
def_to_moz(AST_Do, function To_Moz_DoWhileStatement(M) {
return {
type: "DoWhileStatement",
test: to_moz(M.condition),
body: to_moz(M.body)
};
});
def_to_moz(AST_For, function To_Moz_ForStatement(M) {
return {
type: "ForStatement",
init: to_moz(M.init),
test: to_moz(M.condition),
update: to_moz(M.step),
body: to_moz(M.body)
};
});
def_to_moz(AST_ForIn, function To_Moz_ForInStatement(M) {
return {
type: "ForInStatement",
left: to_moz(M.init),
right: to_moz(M.object),
body: to_moz(M.body)
};
});
def_to_moz(AST_ForOf, function To_Moz_ForOfStatement(M) {
return {
type: "ForOfStatement",
left: to_moz(M.init),
right: to_moz(M.object),
body: to_moz(M.body),
await: M.await
};
});
def_to_moz(AST_Await, function To_Moz_AwaitExpression(M) {
return {
type: "AwaitExpression",
argument: to_moz(M.expression)
};
});
def_to_moz(AST_Yield, function To_Moz_YieldExpression(M) {
return {
type: "YieldExpression",
argument: to_moz(M.expression),
delegate: M.is_star
};
});
def_to_moz(AST_Debugger, function To_Moz_DebuggerStatement() {
return {
type: "DebuggerStatement"
};
});
def_to_moz(AST_VarDef, function To_Moz_VariableDeclarator(M) {
return {
type: "VariableDeclarator",
id: to_moz(M.name),
init: to_moz(M.value)
};
});
def_to_moz(AST_Catch, function To_Moz_CatchClause(M) {
return {
type: "CatchClause",
param: to_moz(M.argname),
body: to_moz_block(M)
};
});
map("ThisExpression", AST_This);
map("Super", AST_Super);
map("BinaryExpression", AST_Binary, "operator=operator, left>left, right>right");
map("LogicalExpression", AST_Binary, "operator=operator, left>left, right>right");
map("AssignmentExpression", AST_Assign, "operator=operator, left>left, right>right");
map("ConditionalExpression", AST_Conditional, "test>condition, consequent>consequent, alternate>alternative");
map("NewExpression", AST_New, "callee>expression, arguments@args");
map("CallExpression", AST_Call, "callee>expression, optional=optional, arguments@args");
def_to_moz(AST_This, function To_Moz_ThisExpression() {
return {
type: "ThisExpression"
};
});
def_to_moz(AST_Super, function To_Moz_Super() {
return {
type: "Super"
};
});
def_to_moz(AST_Binary, function To_Moz_BinaryExpression(M) {
return {
type: "BinaryExpression",
operator: M.operator,
left: to_moz(M.left),
right: to_moz(M.right)
};
});
def_to_moz(AST_Binary, function To_Moz_LogicalExpression(M) {
return {
type: "LogicalExpression",
operator: M.operator,
left: to_moz(M.left),
right: to_moz(M.right)
};
});
def_to_moz(AST_Assign, function To_Moz_AssignmentExpression(M) {
return {
type: "AssignmentExpression",
operator: M.operator,
left: to_moz(M.left),
right: to_moz(M.right)
};
});
def_to_moz(AST_Conditional, function To_Moz_ConditionalExpression(M) {
return {
type: "ConditionalExpression",
test: to_moz(M.condition),
consequent: to_moz(M.consequent),
alternate: to_moz(M.alternative)
};
});
def_to_moz(AST_New, function To_Moz_NewExpression(M) {
return {
type: "NewExpression",
callee: to_moz(M.expression),
arguments: M.args.map(to_moz)
};
});
def_to_moz(AST_Call, function To_Moz_CallExpression(M) {
return {
type: "CallExpression",
callee: to_moz(M.expression),
optional: M.optional,
arguments: M.args.map(to_moz)
};
});
def_to_moz(AST_Toplevel, function To_Moz_Program(M) {
return to_moz_scope("Program", M);
@@ -818,12 +1284,30 @@ import {
};
});
const assert_clause_to_moz = assert_clause => {
const assertions = [];
if (assert_clause) {
for (const { key, value } of assert_clause.properties) {
const key_moz = is_basic_identifier_string(key)
? { type: "Identifier", name: key }
: { type: "Literal", value: key, raw: JSON.stringify(key) };
assertions.push({
type: "ImportAttribute",
key: key_moz,
value: to_moz(value)
});
}
}
return assertions;
};
def_to_moz(AST_Export, function To_Moz_ExportDeclaration(M) {
if (M.exported_names) {
if (M.exported_names[0].name.name === "*") {
return {
type: "ExportAllDeclaration",
source: to_moz(M.module_name)
source: to_moz(M.module_name),
assertions: assert_clause_to_moz(M.assert_clause)
};
}
return {
@@ -836,7 +1320,8 @@ import {
};
}),
declaration: to_moz(M.exported_definition),
source: to_moz(M.module_name)
source: to_moz(M.module_name),
assertions: assert_clause_to_moz(M.assert_clause)
};
}
return {
@@ -870,7 +1355,8 @@ import {
return {
type: "ImportDeclaration",
specifiers: specifiers,
source: to_moz(M.module_name)
source: to_moz(M.module_name),
assertions: assert_clause_to_moz(M.assert_clause)
};
});
@@ -1198,57 +1684,6 @@ import {
);
}
function map(moztype, mytype, propmap) {
var moz_to_me = "function From_Moz_" + moztype + "(M){\n";
moz_to_me += "return new U2." + mytype.name + "({\n" +
"start: my_start_token(M),\n" +
"end: my_end_token(M)";
var me_to_moz = "function To_Moz_" + moztype + "(M){\n";
me_to_moz += "return {\n" +
"type: " + JSON.stringify(moztype);
if (propmap) propmap.split(/\s*,\s*/).forEach(function(prop) {
var m = /([a-z0-9$_]+)([=@>%])([a-z0-9$_]+)/i.exec(prop);
if (!m) throw new Error("Can't understand property map: " + prop);
var moz = m[1], how = m[2], my = m[3];
moz_to_me += ",\n" + my + ": ";
me_to_moz += ",\n" + moz + ": ";
switch (how) {
case "@":
moz_to_me += "M." + moz + ".map(from_moz)";
me_to_moz += "M." + my + ".map(to_moz)";
break;
case ">":
moz_to_me += "from_moz(M." + moz + ")";
me_to_moz += "to_moz(M." + my + ")";
break;
case "=":
moz_to_me += "M." + moz;
me_to_moz += "M." + my;
break;
case "%":
moz_to_me += "from_moz(M." + moz + ").body";
me_to_moz += "to_moz_block(M)";
break;
default:
throw new Error("Can't understand operator in propmap: " + prop);
}
});
moz_to_me += "\n})\n}";
me_to_moz += "\n}\n}";
moz_to_me = new Function("U2", "my_start_token", "my_end_token", "from_moz", "return(" + moz_to_me + ")")(
ast, my_start_token, my_end_token, from_moz
);
me_to_moz = new Function("to_moz", "to_moz_block", "to_moz_scope", "return(" + me_to_moz + ")")(
to_moz, to_moz_block, to_moz_scope
);
MOZ_TO_ME[moztype] = moz_to_me;
def_to_moz(mytype, me_to_moz);
}
var FROM_MOZ_STACK = null;
function from_moz(node) {