You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 9, 2025. It is now read-only.
Disables the use of <code>console.log</code>, <code>console.info</code>, <code>console.error</code> and <code>console.warn</code> by replacing them with empty functions. This makes the use of the debugger harder.
95
-
</td>
96
-
</tr>
97
94
98
-
<tr>
99
-
<tdclass="collapsing">Debug Protection</td>
100
-
<td>
101
95
<divclass="ui tiny message">
102
-
<p><iclass="warning sign icon"></i>Can freeze your browser if you open the Developer Tools.</p>
96
+
<p><iclass="warning sign icon"></i>This option greatly affects the performance up to 1.5x slower runtime speed.</p>
103
97
</div>
104
-
<p>This option makes it almost impossible to use the <strong>Console</strong> tab of the Developer Tools (both on Google Chrome and Mozilla Firefox).</p>
98
+
99
+
<p>
100
+
Enables code control flow flattening. Control flow flattening is a structure transformation of the source code that hinders program comprehension. See the docs on <ahref="https://github.com/javascript-obfuscator/javascript-obfuscator#controlflowflattening" target="_new">JavaScript's obfuscator GH page</a> for an example of how the transformation works.
<p>If checked, an interval is used to force the debug mode on the <strong>Console</strong> tab, making it harder to use other features of the Developer Tools.</p>
113
-
<p>How does it works? A special code that calls <code>debugger;</code> repeatedly is inserted throughout the obfuscated source code.</p>
109
+
<p>You can use this setting to adjust the probability (from 0 to 1) that a <code>controlFlowFlattening</code> transformation will be applied to a node.</p>
110
+
<p>In larger codebases it's advised to lower this value, because larger amounts of control flow transformations can increase the size of your code and slow it down.</p>
114
111
</td>
115
112
</tr>
116
113
@@ -173,49 +170,28 @@ <h3>Sounds great!</h3>
173
170
</tr>
174
171
175
172
<tr>
176
-
<tdclass="collapsing">Source Map</td>
173
+
<tdclass="collapsing">Disable Console Output</td>
177
174
<td>
178
-
<divclass="ui tiny message">
179
-
<p><iclass="warning sign icon"></i> Be sure not to upload the obfuscated source code with the inline source map embedded on it, as it contains your original source code.</p>
180
-
</div>
181
-
182
-
<p>Source maps can be useful to help you debug your obfuscated Java Script source code. If you want or need to debug in production, you can upload the separate source map file to a secret location and then point your browser there. <ahref="https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps" target="_new">Read more about source maps on the Google Chrome Developer Tools website</a>.</p>
183
-
184
-
<strong>Inline Source Map</strong>
185
-
<p>This embeds the source map of your source in the result of the obfuscated code. Useful if you just want to debug locally on your machine.</p>
186
-
187
-
<strong>Separate Source Map</strong>
188
-
<p>This generates a separate file with the source map. Useful to debug code in production, as this enables you to upload the source map to a secret location on your server and then point your browser to use it.</p>
189
-
190
-
<p>Use the <strong>Source Map Base URL</strong> and <strong>Source Map File Name</strong> to customize the <code>sourceMappingURL</code> property that will get appended to the end of your obfuscated code.</p>
191
-
192
-
<p>For instance, if you set the <strong>Base URL</strong> to <code>"http://localhost:9000"</code> and <strong>File Name</strong> to <code>"example"</code>, you'll get: <code>//# sourceMappingURL=http://localhost:9000/example.js.map</code>. appended to the end of your obfuscated code.</p>
193
-
175
+
Disables the use of <code>console.log</code>, <code>console.info</code>, <code>console.error</code> and <code>console.warn</code> by replacing them with empty functions. This makes the use of the debugger harder.
<p><iclass="warning sign icon"></i>This option will decrease the performance of your code.</p>
183
+
<p><iclass="warning sign icon"></i>Can freeze your browser if you open the Developer Tools.</p>
203
184
</div>
204
-
205
-
<p>
206
-
Control flow flattening is a structure transformation of the source code that hinders program comprehension by removing functions definitions from its original locations and placing them inside a dispatch table. Arguments from those functions are also hidden inside a string array.
207
-
</p>
208
-
209
-
<p>Since this transformation makes the affected nodes' function calls dynamic, it will likely disable optimizations that the JavaScript engine can do and will slow down your code.</p>
185
+
<p>This option makes it almost impossible to use the <strong>Console</strong> tab of the Developer Tools (both on Google Chrome and Mozilla Firefox).</p>
<p>You can use this setting to adjust the probability (from 0 to 1) that a <code>controlFlowFlattening</code> transformation will be applied to a node.</p>
218
-
<p>In larger codebases it's advised to lower this value, because larger amounts of control flow transformations will increase the size of your code and slow it down significantly.</p>
193
+
<p>If checked, an interval is used to force the debug mode on the <strong>Console</strong> tab, making it harder to use other features of the Developer Tools.</p>
194
+
<p>How does it works? A special code that calls <code>debugger;</code> repeatedly is inserted throughout the obfuscated source code.</p>
219
195
</td>
220
196
</tr>
221
197
@@ -242,6 +218,27 @@ <h3>Sounds great!</h3>
242
218
</td>
243
219
</tr>
244
220
221
+
<tr>
222
+
<tdclass="collapsing">Source Map</td>
223
+
<td>
224
+
<divclass="ui tiny message">
225
+
<p><iclass="warning sign icon"></i> Be sure not to upload the obfuscated source code with the inline source map embedded on it, as it contains your original source code.</p>
226
+
</div>
227
+
228
+
<p>Source maps can be useful to help you debug your obfuscated Java Script source code. If you want or need to debug in production, you can upload the separate source map file to a secret location and then point your browser there. <ahref="https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps" target="_new">Read more about source maps on the Google Chrome Developer Tools website</a>.</p>
229
+
230
+
<strong>Inline Source Map</strong>
231
+
<p>This embeds the source map of your source in the result of the obfuscated code. Useful if you just want to debug locally on your machine.</p>
232
+
233
+
<strong>Separate Source Map</strong>
234
+
<p>This generates a separate file with the source map. Useful to debug code in production, as this enables you to upload the source map to a secret location on your server and then point your browser to use it.</p>
235
+
236
+
<p>Use the <strong>Source Map Base URL</strong> and <strong>Source Map File Name</strong> to customize the <code>sourceMappingURL</code> property that will get appended to the end of your obfuscated code.</p>
237
+
238
+
<p>For instance, if you set the <strong>Base URL</strong> to <code>"http://localhost:9000"</code> and <strong>File Name</strong> to <code>"example"</code>, you'll get: <code>//# sourceMappingURL=http://localhost:9000/example.js.map</code>. appended to the end of your obfuscated code.</p>
0 commit comments