Control Flow Flattening

controlFlowFlattening

Преобразует структуру кода, чтобы скрыть исходный ход выполнения программы. Превращает линейный код в конечный автомат на основе оператора switch, что значительно затрудняет ручной анализ.

JavaScript

Эта опция может заметно замедлить выполнение; измерьте влияние на собственном коде. С помощью controlFlowFlatteningThreshold задайте долю узлов, которые будут уплощены: чем меньше значение, тем меньше потери производительности.

JavaScript

Control Flow Flattening сочетается с другими базовыми опциями и с VM-обфускацией. Когда включён vmObfuscation, сначала выполняется виртуализация, а затем Control Flow Flattening применяется к оставшемуся JavaScript-коду, например к функциям, не выбранным для VM. Код, уже скомпилированный в байт-код, не уплощается.