Fixed runtime error function statement not allowed when deadCodeInjection is enabled

This commit is contained in:
sanex3339
2020-07-03 10:52:10 +03:00
parent 43271f9f14
commit 460e956a6e
7 changed files with 239 additions and 159 deletions
@@ -100,7 +100,8 @@ export class DeadCodeInjectionTransformer extends AbstractNodeTransformer {
* @returns {boolean}
*/
private static isProhibitedNodeInsideCollectedBlockStatement (targetNode: ESTree.Node): boolean {
return NodeGuards.isBreakStatementNode(targetNode)
return NodeGuards.isFunctionDeclarationNode(targetNode) // can break code on strict mode
|| NodeGuards.isBreakStatementNode(targetNode)
|| NodeGuards.isContinueStatementNode(targetNode)
|| NodeGuards.isAwaitExpressionNode(targetNode)
|| NodeGuards.isSuperNode(targetNode);