1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Module trait — the contract every transformation pass implements.
//!
//! Leaf type — depends only on OXC types.
use Allocator;
use Program;
use Scoping;
use Result;
/// Result of a single module's transformation pass.
/// A deobfuscation transformation module.
///
/// Each module is a self-contained transformation pass. Modules run in a
/// fixed order within the convergence loop. The engine chains scoping
/// between modules and rebuilds it when `changes_symbols` returns true.