mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-03 04:10:04 +02:00
add some packages
This commit is contained in:
1402
node_modules/babel-plugin-minify-dead-code-elimination/lib/index.js
generated
vendored
Normal file
1402
node_modules/babel-plugin-minify-dead-code-elimination/lib/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
48
node_modules/babel-plugin-minify-dead-code-elimination/lib/remove-use-strict.js
generated
vendored
Normal file
48
node_modules/babel-plugin-minify-dead-code-elimination/lib/remove-use-strict.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = removeUseStrict;
|
||||
const newIssueUrl = "https://github.com/babel/minify/issues/new";
|
||||
const useStrict = "use strict";
|
||||
/**
|
||||
* Remove redundant use strict
|
||||
* If the parent has a "use strict" directive, it is not required in
|
||||
* the children
|
||||
*
|
||||
* @param {NodePath} block BlockStatement
|
||||
*/
|
||||
|
||||
function removeUseStrict(block) {
|
||||
if (!block.isBlockStatement()) {
|
||||
throw new Error(`Received ${block.type}. Expected BlockStatement. ` + `Please report at ${newIssueUrl}`);
|
||||
}
|
||||
|
||||
const useStricts = getUseStrictDirectives(block); // early exit
|
||||
|
||||
if (useStricts.length < 1) return; // only keep the first use strict
|
||||
|
||||
if (useStricts.length > 1) {
|
||||
for (let i = 1; i < useStricts.length; i++) {
|
||||
useStricts[i].remove();
|
||||
}
|
||||
} // check if parent has an use strict
|
||||
|
||||
|
||||
if (hasStrictParent(block)) {
|
||||
useStricts[0].remove();
|
||||
}
|
||||
}
|
||||
|
||||
function hasStrictParent(path) {
|
||||
return path.findParent(parent => parent.isBlockStatement() && isStrict(parent));
|
||||
}
|
||||
|
||||
function isStrict(block) {
|
||||
return getUseStrictDirectives(block).length > 0;
|
||||
}
|
||||
|
||||
function getUseStrictDirectives(block) {
|
||||
var dir = block.get("directives");
|
||||
return Array.isArray(dir) ? dir.filter(function (directive) {
|
||||
return directive.node.value.value === useStrict;
|
||||
}) : [];
|
||||
}
|
Reference in New Issue
Block a user