webfuscator 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/analysis/constant.js +3 -3
  2. package/dist/analysis/constant.js.map +1 -1
  3. package/dist/analysis/inlineability.js +2 -2
  4. package/dist/analysis/inlineability.js.map +1 -1
  5. package/dist/analysis/purity.js +1 -1
  6. package/dist/analysis/purity.js.map +1 -1
  7. package/dist/index.d.ts +2 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/obfuscator.d.ts.map +1 -1
  11. package/dist/obfuscator.js.map +1 -1
  12. package/dist/options.d.ts.map +1 -1
  13. package/dist/preparation/expand-destructuring.js +4 -3
  14. package/dist/preparation/expand-destructuring.js.map +1 -1
  15. package/dist/preparation/expand-template-literals.js +3 -2
  16. package/dist/preparation/expand-template-literals.js.map +1 -1
  17. package/dist/preparation/split-sequence-expressions.js +1 -1
  18. package/dist/preparation/split-sequence-expressions.js.map +1 -1
  19. package/dist/preparation/split-variable-declarations.js +1 -1
  20. package/dist/preparation/split-variable-declarations.js.map +1 -1
  21. package/dist/preparation/stringify-object-keys.js +1 -1
  22. package/dist/preparation/stringify-object-keys.js.map +1 -1
  23. package/dist/preparation/wrap-single-statements.js +2 -2
  24. package/dist/preparation/wrap-single-statements.js.map +1 -1
  25. package/dist/transforms/arguments-to-parameters.js +1 -1
  26. package/dist/transforms/arguments-to-parameters.js.map +1 -1
  27. package/dist/transforms/arrow-to-function.js.map +1 -1
  28. package/dist/transforms/collapse-single-use-temps.js +7 -7
  29. package/dist/transforms/collapse-single-use-temps.js.map +1 -1
  30. package/dist/transforms/const-let-to-var.js +3 -3
  31. package/dist/transforms/const-let-to-var.js.map +1 -1
  32. package/dist/transforms/const-to-let.js.map +1 -1
  33. package/dist/transforms/do-while-to-while.js +3 -3
  34. package/dist/transforms/do-while-to-while.js.map +1 -1
  35. package/dist/transforms/drop-console.js +4 -3
  36. package/dist/transforms/drop-console.js.map +1 -1
  37. package/dist/transforms/drop-debugger.js.map +1 -1
  38. package/dist/transforms/expand-binary-assignment.js +5 -3
  39. package/dist/transforms/expand-binary-assignment.js.map +1 -1
  40. package/dist/transforms/expand-logical-assignment.js +5 -3
  41. package/dist/transforms/expand-logical-assignment.js.map +1 -1
  42. package/dist/transforms/extract-object-properties.js +7 -7
  43. package/dist/transforms/extract-object-properties.js.map +1 -1
  44. package/dist/transforms/fold-builtin-methods.js +16 -15
  45. package/dist/transforms/fold-builtin-methods.js.map +1 -1
  46. package/dist/transforms/fold-constants.js +2 -2
  47. package/dist/transforms/fold-constants.js.map +1 -1
  48. package/dist/transforms/for-to-while.js +5 -5
  49. package/dist/transforms/for-to-while.js.map +1 -1
  50. package/dist/transforms/function-declaration-to-expression.js +3 -3
  51. package/dist/transforms/function-declaration-to-expression.js.map +1 -1
  52. package/dist/transforms/inline-functions.js +7 -7
  53. package/dist/transforms/inline-functions.js.map +1 -1
  54. package/dist/transforms/logical-to-ternary.js +2 -2
  55. package/dist/transforms/logical-to-ternary.js.map +1 -1
  56. package/dist/transforms/mangle-properties.d.ts.map +1 -1
  57. package/dist/transforms/mangle-properties.js +35 -86
  58. package/dist/transforms/mangle-properties.js.map +1 -1
  59. package/dist/transforms/nullish-coalescing-to-ternary.js +2 -2
  60. package/dist/transforms/nullish-coalescing-to-ternary.js.map +1 -1
  61. package/dist/transforms/numbers-to-strings.js +2 -2
  62. package/dist/transforms/numbers-to-strings.js.map +1 -1
  63. package/dist/transforms/object-method-to-property.js +1 -1
  64. package/dist/transforms/object-method-to-property.js.map +1 -1
  65. package/dist/transforms/optional-chaining-to-ternary.js +2 -2
  66. package/dist/transforms/optional-chaining-to-ternary.js.map +1 -1
  67. package/dist/transforms/pack-declarations-into-parameters.js +2 -2
  68. package/dist/transforms/pack-declarations-into-parameters.js.map +1 -1
  69. package/dist/transforms/pack.d.ts.map +1 -1
  70. package/dist/transforms/pack.js +10 -11
  71. package/dist/transforms/pack.js.map +1 -1
  72. package/dist/transforms/remove-anonymous-function-names.js +3 -3
  73. package/dist/transforms/remove-anonymous-function-names.js.map +1 -1
  74. package/dist/transforms/remove-unreachable-code.js +1 -1
  75. package/dist/transforms/remove-unreachable-code.js.map +1 -1
  76. package/dist/transforms/remove-unused-code.js +4 -4
  77. package/dist/transforms/remove-unused-code.js.map +1 -1
  78. package/dist/transforms/rename-identifiers.d.ts.map +1 -1
  79. package/dist/transforms/rename-identifiers.js +4 -3
  80. package/dist/transforms/rename-identifiers.js.map +1 -1
  81. package/dist/transforms/specials-to-strings.d.ts.map +1 -1
  82. package/dist/transforms/specials-to-strings.js +2 -2
  83. package/dist/transforms/specials-to-strings.js.map +1 -1
  84. package/dist/transforms/switch-to-if.js +7 -7
  85. package/dist/transforms/switch-to-if.js.map +1 -1
  86. package/dist/transforms/ternary-to-if.js +7 -4
  87. package/dist/transforms/ternary-to-if.js.map +1 -1
  88. package/dist/transforms/update-to-assignment.js +4 -2
  89. package/dist/transforms/update-to-assignment.js.map +1 -1
  90. package/dist/transforms/yodify-conditions.js +3 -3
  91. package/dist/transforms/yodify-conditions.js.map +1 -1
  92. package/dist/utils/ast.d.ts.map +1 -1
  93. package/dist/utils/ast.js +2 -1
  94. package/dist/utils/ast.js.map +1 -1
  95. package/dist/utils/evaluation-order.js.map +1 -1
  96. package/dist/utils/logical-lowering.js +2 -2
  97. package/dist/utils/logical-lowering.js.map +1 -1
  98. package/dist/utils/loop-lowering.js +1 -1
  99. package/dist/utils/loop-lowering.js.map +1 -1
  100. package/dist/utils/string-generator.js +1 -1
  101. package/dist/utils/string-generator.js.map +1 -1
  102. package/package.json +11 -10
  103. package/src/analysis/constant.ts +4 -4
  104. package/src/analysis/inlineability.ts +4 -4
  105. package/src/analysis/purity.ts +3 -3
  106. package/src/index.ts +4 -2
  107. package/src/obfuscator.ts +42 -42
  108. package/src/options.ts +1 -1
  109. package/src/preparation/expand-destructuring.ts +5 -4
  110. package/src/preparation/expand-template-literals.ts +4 -3
  111. package/src/preparation/split-sequence-expressions.ts +2 -2
  112. package/src/preparation/split-variable-declarations.ts +1 -1
  113. package/src/preparation/stringify-object-keys.ts +2 -2
  114. package/src/preparation/wrap-single-statements.ts +2 -2
  115. package/src/transforms/arguments-to-parameters.ts +5 -5
  116. package/src/transforms/arrow-to-function.ts +3 -3
  117. package/src/transforms/collapse-single-use-temps.ts +14 -14
  118. package/src/transforms/const-let-to-var.ts +6 -6
  119. package/src/transforms/const-to-let.ts +4 -4
  120. package/src/transforms/do-while-to-while.ts +6 -6
  121. package/src/transforms/drop-console.ts +8 -7
  122. package/src/transforms/drop-debugger.ts +2 -2
  123. package/src/transforms/expand-binary-assignment.ts +8 -6
  124. package/src/transforms/expand-logical-assignment.ts +8 -6
  125. package/src/transforms/extract-object-properties.ts +12 -12
  126. package/src/transforms/fold-builtin-methods.ts +20 -19
  127. package/src/transforms/fold-constants.ts +8 -8
  128. package/src/transforms/for-to-while.ts +8 -8
  129. package/src/transforms/function-declaration-to-expression.ts +5 -5
  130. package/src/transforms/inline-functions.ts +14 -14
  131. package/src/transforms/logical-to-ternary.ts +7 -7
  132. package/src/transforms/mangle-properties.ts +43 -97
  133. package/src/transforms/nullish-coalescing-to-ternary.ts +6 -6
  134. package/src/transforms/numbers-to-strings.ts +4 -4
  135. package/src/transforms/object-method-to-property.ts +4 -4
  136. package/src/transforms/optional-chaining-to-ternary.ts +5 -5
  137. package/src/transforms/pack-declarations-into-parameters.ts +7 -7
  138. package/src/transforms/pack.ts +20 -16
  139. package/src/transforms/remove-anonymous-function-names.ts +5 -5
  140. package/src/transforms/remove-unreachable-code.ts +3 -3
  141. package/src/transforms/remove-unused-code.ts +8 -8
  142. package/src/transforms/rename-identifiers.ts +9 -8
  143. package/src/transforms/specials-to-strings.ts +7 -7
  144. package/src/transforms/switch-to-if.ts +12 -12
  145. package/src/transforms/ternary-to-if.ts +12 -9
  146. package/src/transforms/update-to-assignment.ts +7 -5
  147. package/src/transforms/yodify-conditions.ts +6 -6
  148. package/src/utils/ast.ts +2 -1
  149. package/src/utils/evaluation-order.ts +1 -1
  150. package/src/utils/logical-lowering.ts +3 -3
  151. package/src/utils/loop-lowering.ts +1 -1
  152. package/src/utils/string-generator.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"evaluation-order.js","sourceRoot":"","sources":["../../src/utils/evaluation-order.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluation-order.js","sourceRoot":"","sources":["../../src/utils/evaluation-order.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as t from '@babel/types';
2
2
  import { isSideEffectFree } from '../analysis/purity.js';
3
- import { isStandaloneDeclaration } from '../utils/paths.js';
3
+ import { isStandaloneDeclaration } from './paths.js';
4
4
  // Lowers a short-circuit expression assigned to a bare identifier:
5
5
  //
6
6
  // x = L;
@@ -9,7 +9,7 @@ import { isStandaloneDeclaration } from '../utils/paths.js';
9
9
  // `fallbackTest` selects `!x`, `x`, or `x == null`. The parent must accept a
10
10
  // multi-statement replacement.
11
11
  export function lowerLogicalWriteStatement(path, fallbackTest) {
12
- const { node } = path;
12
+ const node = path.node;
13
13
  const parent = path.parentPath;
14
14
  if (!parent) {
15
15
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"logical-lowering.js","sourceRoot":"","sources":["../../src/utils/logical-lowering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logical-lowering.js","sourceRoot":"","sources":["../../src/utils/logical-lowering.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ const redirectVisitor = {
57
57
  path.skip();
58
58
  },
59
59
  ContinueStatement(path, state) {
60
- const { label } = path.node;
60
+ const label = path.node.label;
61
61
  if (!label) {
62
62
  if (!hasInterposedLoop(path, state.rootPath)) {
63
63
  path.replaceWith(t.breakStatement(t.identifier(state.innerLabel)));
@@ -1 +1 @@
1
- {"version":3,"file":"loop-lowering.js","sourceRoot":"","sources":["../../src/utils/loop-lowering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-lowering.js","sourceRoot":"","sources":["../../src/utils/loop-lowering.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { shuffleInPlace } from '../utils/random.js';
1
+ import { shuffleInPlace } from './random.js';
2
2
  // Reserved words and sensitive globals cannot be emitted bare. Zero-width mode
3
3
  // makes entries from this same pool legal with ZWNJ padding.
4
4
  const RESERVED = new Set([
@@ -1 +1 @@
1
- {"version":3,"file":"string-generator.js","sourceRoot":"","sources":["../../src/utils/string-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAiBjD,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS;IAC/B,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;IACL,UAAU;IACV,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,WAAW;IACX,KAAK;IACL,KAAK;IACL,MAAM;IACN,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,IAAI;IACJ,WAAW;IACX,MAAM;IACN,WAAW;IACX,KAAK;IACL,UAAU;CACX,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,wDAAwD,CAAA;AACjF,MAAM,YAAY,GAAG,kBAAkB,CAAA;AACvC,MAAM,WAAW,GAAG,wDAAwD,CAAA;AAC5E,MAAM,UAAU,GAAG,GAAG,WAAW,YAAY,CAAA;AAC7C,2EAA2E;AAC3E,MAAM,IAAI,GAAG,QAAQ,CAAA;AAErB,2EAA2E;AAC3E,MAAM,OAAO,eAAe;IAClB,OAAO,GAAG,CAAC,CAAA;IACX,KAAK,GAAa,EAAE,CAAA;IACpB,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAClB,KAAK,CAAgC;IACrC,GAAG,CAAc;IAE1B,eAAe,CAAQ;IACvB,aAAa,GAAG,CAAC,CAAA;IACjB,aAAa,GAAG,CAAC,CAAA;IACjB,aAAa,GAAa,EAAE,CAAA;IAC5B,YAAY,GAAG,CAAC,CAAA;IAExB,YAAY,MAAiC,EAAE,GAAiB;QAC9D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAA6B,CAAC,CAAA;QACtF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAA;QAErB,MAAM,QAAQ,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAA;QACtC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,EAAE,CAAC,KAAa;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAE,CAAA;IAC3B,CAAC;IAEO,OAAO;QACb,IAAI,SAAiB,CAAA;QACrB,GAAG,CAAC;YACF,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC3C,CAAC,QAAQ,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAC;QAChE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAA;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAE,CAAA;IAChE,CAAC;IAEO,OAAO,CAAC,IAAyB;QACvC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;YAC9B,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAClC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACjC,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;YAChC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,gEAAgE;IACxD,cAAc;QACpB,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,aAAa,CAAA;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAA;QACvC,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;YACpC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAE,GAAG,IAAI,CAAA;YAC9C,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,kBAAkB;QACxB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1C,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YACzC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;QACnE,CAAC;QACD,OAAO,MAAM,GAAG,EAAE,CAAA;IACpB,CAAC;IAEO,iBAAiB;QACvB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1C,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAE,CAAA;QACtE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAE,CAAA;QACnE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,yEAAyE;IACzE,8BAA8B;IACtB,gBAAgB;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,MAAM,KAAK,GAAa,EAAE,CAAA;YAC1B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;gBAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC7C,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvB,CAAC;YACH,CAAC;YACD,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAG,CAAA;IAClC,CAAC;IAEO,aAAa;QACnB,OAAO,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAA;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"string-generator.js","sourceRoot":"","sources":["../../src/utils/string-generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webfuscator",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "JavaScript obfuscator built on Babel",
5
5
  "keywords": [
6
6
  "babel",
@@ -17,9 +17,6 @@
17
17
  },
18
18
  "license": "MIT",
19
19
  "author": "Esoware",
20
- "contentPolicy": {
21
- "class": "dual-use"
22
- },
23
20
  "repository": {
24
21
  "type": "git",
25
22
  "url": "git+https://github.com/esoware/webfuscator.git",
@@ -30,22 +27,23 @@
30
27
  "dist",
31
28
  "src"
32
29
  ],
33
- "publishConfig": {
34
- "access": "public"
35
- },
36
30
  "type": "module",
37
31
  "main": "dist/index.js",
38
32
  "types": "dist/index.d.ts",
39
33
  "exports": {
40
34
  ".": {
35
+ "source": "./src/index.ts",
41
36
  "types": "./dist/index.d.ts",
42
37
  "default": "./dist/index.js"
43
38
  }
44
39
  },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
45
43
  "scripts": {
46
44
  "prepublishOnly": "pnpm --workspace-root check",
47
45
  "prepack": "pnpm run build",
48
- "build": "node --eval \"require('node:fs').rmSync('dist', { force: true, recursive: true })\" && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
46
+ "build": "node --eval \"require('node:fs').rmSync('dist', { force: true, recursive: true })\" && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && node scripts/verify-dist.mjs",
49
47
  "check": "pnpm run typecheck && pnpm run test",
50
48
  "test": "vitest run",
51
49
  "typecheck": "tsc --noEmit"
@@ -57,12 +55,15 @@
57
55
  "@babel/types": "^8.0.4"
58
56
  },
59
57
  "devDependencies": {
60
- "@types/node": "^26.2.0",
58
+ "@types/node": "catalog:",
61
59
  "tsc-alias": "^1.9.2",
62
- "typescript": "^7.0.2",
60
+ "typescript": "catalog:",
63
61
  "vitest": "^4.1.11"
64
62
  },
65
63
  "engines": {
66
64
  "node": "^22.18.0 || >=24.11.0"
65
+ },
66
+ "contentPolicy": {
67
+ "class": "dual-use"
67
68
  }
68
69
  }
@@ -1,13 +1,13 @@
1
1
  import type { Binding, NodePath, Scope } from '@babel/traverse'
2
2
  import * as t from '@babel/types'
3
3
 
4
+ import { enclosingScopeHasDirectEval, isInsideWith } from '../utils/ast'
4
5
  import {
5
6
  declarationReaches,
6
7
  initializerReaches,
7
8
  readCrossesFunctionBoundary,
8
- } from 'src/analysis/document-order'
9
- import { isSideEffectFree } from 'src/analysis/purity'
10
- import { enclosingScopeHasDirectEval, isInsideWith } from 'src/utils/ast'
9
+ } from './document-order'
10
+ import { isSideEffectFree } from './purity'
11
11
 
12
12
  export type Evaluation = { known: true; value: unknown } | { known: false }
13
13
 
@@ -48,7 +48,7 @@ const EVALUATORS: Partial<Record<t.Node['type'], Evaluator>> = {
48
48
  if (template.expressions.length > 0) {
49
49
  return UNKNOWN
50
50
  }
51
- const [quasi] = template.quasis
51
+ const quasi = template.quasis[0]
52
52
  return { known: true, value: quasi?.value.cooked ?? quasi?.value.raw ?? '' }
53
53
  },
54
54
  UnaryExpression: evaluateUnary,
@@ -3,8 +3,8 @@ import type { Binding, NodePath, Visitor } from '@babel/traverse'
3
3
  import * as t from '@babel/types'
4
4
  import type { File } from '@babel/types'
5
5
 
6
- import { walkOwnFunctionScope } from 'src/utils/ast'
7
- import { hasAnnexBFunctionAlias, referencesOrWritesVariable } from 'src/utils/paths'
6
+ import { walkOwnFunctionScope } from '../utils/ast'
7
+ import { hasAnnexBFunctionAlias, referencesOrWritesVariable } from '../utils/paths'
8
8
 
9
9
  export interface InlineCandidate {
10
10
  name: string
@@ -47,7 +47,7 @@ export function analyzeInlineability(ast: File): Map<string, InlineCandidate> {
47
47
  if (!t.isIdentifier(path.node.id)) {
48
48
  return
49
49
  }
50
- const { init } = path.node
50
+ const init = path.node.init
51
51
  if (!t.isFunctionExpression(init)) {
52
52
  return
53
53
  }
@@ -267,7 +267,7 @@ const analyzeBodyVisitor: Visitor<AnalyzeBodyState> = {
267
267
  path.stop()
268
268
  },
269
269
  Identifier(path, state) {
270
- const { name } = path.node
270
+ const name = path.node.name
271
271
  if (
272
272
  state.innerFnDepth === 0 &&
273
273
  (name === 'arguments' || name === 'eval' || name === state.candidateName)
@@ -1,13 +1,13 @@
1
1
  import type { Binding, NodePath, Scope } from '@babel/traverse'
2
2
  import * as t from '@babel/types'
3
3
 
4
+ import { isInsideWith } from '../utils/ast'
5
+ import { isPrimitiveLiteral } from '../utils/literal'
4
6
  import {
5
7
  declarationReaches,
6
8
  initializerReaches,
7
9
  readCrossesFunctionBoundary,
8
- } from 'src/analysis/document-order'
9
- import { isInsideWith } from 'src/utils/ast'
10
- import { isPrimitiveLiteral } from 'src/utils/literal'
10
+ } from './document-order'
11
11
 
12
12
  // Purity also requires deterministic repetition and no throw. Identifier reads
13
13
  // need scope and reference paths to prove resolution, initialization, and the
package/src/index.ts CHANGED
@@ -1,7 +1,9 @@
1
- export { obfuscate } from 'src/obfuscator'
1
+ export { obfuscate } from './obfuscator'
2
2
  export type {
3
3
  ManglePropertiesOptions,
4
4
  ObfuscatorOptions,
5
5
  PackOptions,
6
6
  PropertyNameGenerator,
7
- } from 'src/options'
7
+ TransformName,
8
+ } from './options'
9
+ export type { StringGeneratorMode, StringGeneratorModeOption } from './utils/string-generator'
package/src/obfuscator.ts CHANGED
@@ -3,48 +3,48 @@ import { parse } from '@babel/parser'
3
3
  import type { ParserOptions } from '@babel/parser'
4
4
  import type { File } from '@babel/types'
5
5
 
6
- import type { ObfuscatorOptions, TransformContext, TransformName } from 'src/options'
7
- import { dotToBracket } from 'src/preparation/dot-to-bracket'
8
- import { expandDestructuring } from 'src/preparation/expand-destructuring'
9
- import { expandTemplateLiterals } from 'src/preparation/expand-template-literals'
10
- import { splitSequenceExpressions } from 'src/preparation/split-sequence-expressions'
11
- import { splitVariableDeclarations } from 'src/preparation/split-variable-declarations'
12
- import { stringifyObjectKeys } from 'src/preparation/stringify-object-keys'
13
- import { wrapSingleStatements } from 'src/preparation/wrap-single-statements'
14
- import { argumentsToParameters } from 'src/transforms/arguments-to-parameters'
15
- import { arrowToFunction } from 'src/transforms/arrow-to-function'
16
- import { collapseSingleUseTemps } from 'src/transforms/collapse-single-use-temps'
17
- import { constLetToVar } from 'src/transforms/const-let-to-var'
18
- import { constToLet } from 'src/transforms/const-to-let'
19
- import { doWhileToWhile } from 'src/transforms/do-while-to-while'
20
- import { dropConsole } from 'src/transforms/drop-console'
21
- import { dropDebugger } from 'src/transforms/drop-debugger'
22
- import { expandBinaryAssignment } from 'src/transforms/expand-binary-assignment'
23
- import { expandLogicalAssignment } from 'src/transforms/expand-logical-assignment'
24
- import { extractObjectProperties } from 'src/transforms/extract-object-properties'
25
- import { foldBuiltinMethods } from 'src/transforms/fold-builtin-methods'
26
- import { foldConstants } from 'src/transforms/fold-constants'
27
- import { forToWhile } from 'src/transforms/for-to-while'
28
- import { functionDeclarationToExpression } from 'src/transforms/function-declaration-to-expression'
29
- import { inlineFunctions } from 'src/transforms/inline-functions'
30
- import { logicalToTernary } from 'src/transforms/logical-to-ternary'
31
- import { mangleProperties } from 'src/transforms/mangle-properties'
32
- import { nullishCoalescingToTernary } from 'src/transforms/nullish-coalescing-to-ternary'
33
- import { numbersToStrings } from 'src/transforms/numbers-to-strings'
34
- import { objectMethodToProperty } from 'src/transforms/object-method-to-property'
35
- import { optionalChainingToTernary } from 'src/transforms/optional-chaining-to-ternary'
36
- import { pack } from 'src/transforms/pack'
37
- import { packDeclarationsIntoParameters } from 'src/transforms/pack-declarations-into-parameters'
38
- import { removeAnonymousFunctionNames } from 'src/transforms/remove-anonymous-function-names'
39
- import { removeUnreachableCode } from 'src/transforms/remove-unreachable-code'
40
- import { removeUnusedCode } from 'src/transforms/remove-unused-code'
41
- import { renameIdentifiers } from 'src/transforms/rename-identifiers'
42
- import { specialsToStrings } from 'src/transforms/specials-to-strings'
43
- import { switchToIf } from 'src/transforms/switch-to-if'
44
- import { ternaryToIf } from 'src/transforms/ternary-to-if'
45
- import { updateToAssignment } from 'src/transforms/update-to-assignment'
46
- import { yodifyConditions } from 'src/transforms/yodify-conditions'
47
- import type { StringGeneratorModeOption } from 'src/utils/string-generator'
6
+ import type { ObfuscatorOptions, TransformContext, TransformName } from './options'
7
+ import { dotToBracket } from './preparation/dot-to-bracket'
8
+ import { expandDestructuring } from './preparation/expand-destructuring'
9
+ import { expandTemplateLiterals } from './preparation/expand-template-literals'
10
+ import { splitSequenceExpressions } from './preparation/split-sequence-expressions'
11
+ import { splitVariableDeclarations } from './preparation/split-variable-declarations'
12
+ import { stringifyObjectKeys } from './preparation/stringify-object-keys'
13
+ import { wrapSingleStatements } from './preparation/wrap-single-statements'
14
+ import { argumentsToParameters } from './transforms/arguments-to-parameters'
15
+ import { arrowToFunction } from './transforms/arrow-to-function'
16
+ import { collapseSingleUseTemps } from './transforms/collapse-single-use-temps'
17
+ import { constLetToVar } from './transforms/const-let-to-var'
18
+ import { constToLet } from './transforms/const-to-let'
19
+ import { doWhileToWhile } from './transforms/do-while-to-while'
20
+ import { dropConsole } from './transforms/drop-console'
21
+ import { dropDebugger } from './transforms/drop-debugger'
22
+ import { expandBinaryAssignment } from './transforms/expand-binary-assignment'
23
+ import { expandLogicalAssignment } from './transforms/expand-logical-assignment'
24
+ import { extractObjectProperties } from './transforms/extract-object-properties'
25
+ import { foldBuiltinMethods } from './transforms/fold-builtin-methods'
26
+ import { foldConstants } from './transforms/fold-constants'
27
+ import { forToWhile } from './transforms/for-to-while'
28
+ import { functionDeclarationToExpression } from './transforms/function-declaration-to-expression'
29
+ import { inlineFunctions } from './transforms/inline-functions'
30
+ import { logicalToTernary } from './transforms/logical-to-ternary'
31
+ import { mangleProperties } from './transforms/mangle-properties'
32
+ import { nullishCoalescingToTernary } from './transforms/nullish-coalescing-to-ternary'
33
+ import { numbersToStrings } from './transforms/numbers-to-strings'
34
+ import { objectMethodToProperty } from './transforms/object-method-to-property'
35
+ import { optionalChainingToTernary } from './transforms/optional-chaining-to-ternary'
36
+ import { pack } from './transforms/pack'
37
+ import { packDeclarationsIntoParameters } from './transforms/pack-declarations-into-parameters'
38
+ import { removeAnonymousFunctionNames } from './transforms/remove-anonymous-function-names'
39
+ import { removeUnreachableCode } from './transforms/remove-unreachable-code'
40
+ import { removeUnusedCode } from './transforms/remove-unused-code'
41
+ import { renameIdentifiers } from './transforms/rename-identifiers'
42
+ import { specialsToStrings } from './transforms/specials-to-strings'
43
+ import { switchToIf } from './transforms/switch-to-if'
44
+ import { ternaryToIf } from './transforms/ternary-to-if'
45
+ import { updateToAssignment } from './transforms/update-to-assignment'
46
+ import { yodifyConditions } from './transforms/yodify-conditions'
47
+ import type { StringGeneratorModeOption } from './utils/string-generator'
48
48
 
49
49
  const parserOptions: ParserOptions = { sourceType: 'unambiguous' }
50
50
 
package/src/options.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { StringGeneratorModeOption } from 'src/utils/string-generator'
1
+ import type { StringGeneratorModeOption } from './utils/string-generator'
2
2
 
3
3
  /**
4
4
  * Exported transform entry points. Preparation passes are always enabled and
@@ -3,7 +3,7 @@ import type { NodePath, Scope } from '@babel/traverse'
3
3
  import * as t from '@babel/types'
4
4
  import type { File } from '@babel/types'
5
5
 
6
- import { enclosingScopeHasDirectEval, isInsideWith } from 'src/utils/ast'
6
+ import { enclosingScopeHasDirectEval, isInsideWith } from '../utils/ast'
7
7
 
8
8
  type Kind = t.VariableDeclaration['kind']
9
9
 
@@ -47,12 +47,13 @@ const visitor = {
47
47
  return
48
48
  }
49
49
 
50
- const { kind } = path.node
50
+ const kind = path.node.kind
51
51
  const replacement: t.Statement[] = []
52
52
  let changed = false
53
53
 
54
54
  for (const declarator of path.node.declarations) {
55
- const { id, init } = declarator
55
+ const id = declarator.id
56
+ const init = declarator.init
56
57
 
57
58
  if (
58
59
  !init ||
@@ -135,7 +136,7 @@ function expandPattern(
135
136
  if (t.isRestElement(prop)) {
136
137
  continue
137
138
  }
138
- const { key } = prop
139
+ const key = prop.key
139
140
  const useComputed = prop.computed || !t.isIdentifier(key)
140
141
  const access = t.memberExpression(
141
142
  t.cloneNode(src),
@@ -3,7 +3,7 @@ import type { Visitor } from '@babel/traverse'
3
3
  import * as t from '@babel/types'
4
4
  import type { File } from '@babel/types'
5
5
 
6
- import { isInDirectivePrologue } from 'src/utils/ast'
6
+ import { isInDirectivePrologue } from '../utils/ast'
7
7
 
8
8
  /**
9
9
  * Rewrites safe template literals as string concatenation. Tagged templates
@@ -31,12 +31,13 @@ export function expandTemplateLiterals(ast: File): void {
31
31
 
32
32
  const visitor: Visitor = {
33
33
  TemplateLiteral(path) {
34
- const { parent } = path
34
+ const parent = path.parent
35
35
  if (t.isTaggedTemplateExpression(parent) && parent.quasi === path.node) {
36
36
  return
37
37
  }
38
38
 
39
- const { quasis, expressions } = path.node
39
+ const quasis = path.node.quasis
40
+ const expressions = path.node.expressions
40
41
 
41
42
  if (expressions.length === 0) {
42
43
  // Rewriting a leading template as a string would create a directive.
@@ -3,7 +3,7 @@ import type { NodePath } from '@babel/traverse'
3
3
  import * as t from '@babel/types'
4
4
  import type { File } from '@babel/types'
5
5
 
6
- import { isInDirectivePrologue } from 'src/utils/ast'
6
+ import { isInDirectivePrologue } from '../utils/ast'
7
7
 
8
8
  /**
9
9
  * Splits comma-sequenced expression statements into one statement each.
@@ -30,7 +30,7 @@ const visitor = {
30
30
  return
31
31
  }
32
32
  // Splitting a leading string out of a sequence could create a directive.
33
- const [first] = path.node.expression.expressions
33
+ const first = path.node.expression.expressions[0]
34
34
  if (t.isStringLiteral(first) && isInDirectivePrologue(path)) {
35
35
  return
36
36
  }
@@ -32,7 +32,7 @@ const visitor = {
32
32
  if (path.node.declarations.length <= 1) {
33
33
  return
34
34
  }
35
- const { kind } = path.node
35
+ const kind = path.node.kind
36
36
  const replacements = path.node.declarations.map((decl) => t.variableDeclaration(kind, [decl]))
37
37
  path.replaceWithMultiple(replacements)
38
38
  },
@@ -3,7 +3,7 @@ import type { NodePath } from '@babel/traverse'
3
3
  import * as t from '@babel/types'
4
4
  import type { File } from '@babel/types'
5
5
 
6
- import { isProtoKey } from 'src/utils/ast'
6
+ import { isProtoKey } from '../utils/ast'
7
7
 
8
8
  /**
9
9
  * Rewrites property keys in object literals and classes as computed strings.
@@ -57,7 +57,7 @@ function keyOrderIsSpreadSensitive(path: NodePath<t.ObjectProperty | t.ObjectMet
57
57
  if (!object || !object.isObjectExpression()) {
58
58
  return false
59
59
  }
60
- const { properties } = object.node
60
+ const properties = object.node.properties
61
61
  const hasSpread = properties.some((prop) => t.isSpreadElement(prop))
62
62
  if (!hasSpread) {
63
63
  return false
@@ -36,7 +36,7 @@ export function wrapSingleStatements(ast: File): void {
36
36
 
37
37
  const visitor = {
38
38
  IfStatement(path: { node: t.IfStatement }) {
39
- const { node } = path
39
+ const node = path.node
40
40
  if (!t.isBlockStatement(node.consequent)) {
41
41
  node.consequent = t.blockStatement([node.consequent])
42
42
  }
@@ -48,7 +48,7 @@ const visitor = {
48
48
  wrapLoopBody(path.node)
49
49
  },
50
50
  ArrowFunctionExpression(path: { node: t.ArrowFunctionExpression }) {
51
- const { node } = path
51
+ const node = path.node
52
52
  if (!t.isBlockStatement(node.body)) {
53
53
  node.body = t.blockStatement([t.returnStatement(node.body)])
54
54
  node.expression = false
@@ -2,10 +2,10 @@ import type { NodePath, Visitor } from '@babel/traverse'
2
2
  import * as t from '@babel/types'
3
3
  import type { File } from '@babel/types'
4
4
 
5
- import { hasDuplicateParamNames } from 'src/utils/ast'
6
- import { traverseForChanges } from 'src/utils/change-tracking'
7
- import type { ChangeState } from 'src/utils/change-tracking'
8
- import { isInStrictContext } from 'src/utils/paths'
5
+ import { hasDuplicateParamNames } from '../utils/ast'
6
+ import { traverseForChanges } from '../utils/change-tracking'
7
+ import type { ChangeState } from '../utils/change-tracking'
8
+ import { isInStrictContext } from '../utils/paths'
9
9
 
10
10
  /**
11
11
  * Replaces `arguments[i]` reads with their mapped parameter in sloppy functions
@@ -113,7 +113,7 @@ function processFunction(path: NodePath<t.Function>): boolean {
113
113
  if (path.isArrowFunctionExpression()) {
114
114
  return false
115
115
  }
116
- const { params } = path.node
116
+ const params = path.node.params
117
117
  // Rest, defaults, and destructuring make `arguments` unmapped.
118
118
  if (!params.every((param) => t.isIdentifier(param))) {
119
119
  return false
@@ -2,9 +2,9 @@ import type { NodePath, Visitor } from '@babel/traverse'
2
2
  import * as t from '@babel/types'
3
3
  import type { File } from '@babel/types'
4
4
 
5
- import { enclosingScopeHasDirectEval, isInsideWith } from 'src/utils/ast'
6
- import { traverseForChanges } from 'src/utils/change-tracking'
7
- import type { ChangeState } from 'src/utils/change-tracking'
5
+ import { enclosingScopeHasDirectEval, isInsideWith } from '../utils/ast'
6
+ import { traverseForChanges } from '../utils/change-tracking'
7
+ import type { ChangeState } from '../utils/change-tracking'
8
8
 
9
9
  /**
10
10
  * Lowers arrows with Babel's capture-aware `arrowFunctionToExpression`. Arrows
@@ -3,17 +3,17 @@ import type { Binding, NodePath, Scope } from '@babel/traverse'
3
3
  import * as t from '@babel/types'
4
4
  import type { File } from '@babel/types'
5
5
 
6
- import { evaluateConstant } from 'src/analysis/constant'
6
+ import { evaluateConstant } from '../analysis/constant'
7
7
  import {
8
8
  declarationReaches,
9
9
  initializerReaches,
10
10
  readCrossesFunctionBoundary,
11
- } from 'src/analysis/document-order'
12
- import { isPure } from 'src/analysis/purity'
13
- import { isInsideWith } from 'src/utils/ast'
14
- import { reorderableToStatement } from 'src/utils/evaluation-order'
15
- import { valueToLiteral } from 'src/utils/literal'
16
- import { isCalleeOrTagOf } from 'src/utils/paths'
11
+ } from '../analysis/document-order'
12
+ import { isPure } from '../analysis/purity'
13
+ import { isInsideWith } from '../utils/ast'
14
+ import { reorderableToStatement } from '../utils/evaluation-order'
15
+ import { valueToLiteral } from '../utils/literal'
16
+ import { isCalleeOrTagOf } from '../utils/paths'
17
17
 
18
18
  /**
19
19
  * Drops single-use temporaries through substitution, direct branch writes, or
@@ -125,7 +125,7 @@ function trySubstituteSingleUse(
125
125
  binding: Binding,
126
126
  declaratorPath: NodePath<t.VariableDeclarator>,
127
127
  ): boolean {
128
- const [readPath] = binding.referencePaths
128
+ const readPath = binding.referencePaths[0]
129
129
  if (!readPath || !isPathLive(readPath)) {
130
130
  return false
131
131
  }
@@ -138,7 +138,7 @@ function trySubstituteSingleUse(
138
138
  return false
139
139
  }
140
140
 
141
- const { init } = declaratorPath.node
141
+ const init = declaratorPath.node.init
142
142
  let writeStmt: NodePath
143
143
  let writeValueOwner: NodePath
144
144
  let writeRhs: t.Expression
@@ -255,7 +255,7 @@ function tryRenameWritesToReader(
255
255
  return false
256
256
  }
257
257
 
258
- const [readPath] = binding.referencePaths
258
+ const readPath = binding.referencePaths[0]
259
259
  if (!readPath || !isPathLive(readPath)) {
260
260
  return false
261
261
  }
@@ -389,7 +389,7 @@ function tryScatterIntoTerminator(
389
389
  return false
390
390
  }
391
391
 
392
- const [readPath] = binding.referencePaths
392
+ const readPath = binding.referencePaths[0]
393
393
  if (!readPath || !isPathLive(readPath)) {
394
394
  return false
395
395
  }
@@ -648,7 +648,7 @@ function combineFall(a: boolean | null, b: boolean | null): boolean | null {
648
648
  // Apart from redirected writes, the span must run no user code or observations.
649
649
  // Redirected right sides must also be pure.
650
650
  function spanStatementIsInert(path: NodePath, tempBinding: Binding): boolean {
651
- const { node } = path
651
+ const node = path.node
652
652
  if (t.isEmptyStatement(node) || t.isBreakStatement(node) || t.isContinueStatement(node)) {
653
653
  return true
654
654
  }
@@ -715,7 +715,7 @@ function tryPropagateConstant(
715
715
  return false
716
716
  }
717
717
 
718
- const { init } = declaratorPath.node
718
+ const init = declaratorPath.node.init
719
719
  let writeRhs: t.Expression
720
720
  let writeRhsPath: NodePath
721
721
  let writeStmtToRemove: NodePath | null
@@ -886,7 +886,7 @@ function subtreeReadsBinding(stmtPath: NodePath, target: Binding): boolean {
886
886
  }
887
887
 
888
888
  function isStatementMovementSafe(path: NodePath): boolean {
889
- const { node } = path
889
+ const node = path.node
890
890
  if (t.isEmptyStatement(node)) {
891
891
  return true
892
892
  }