This repository has been archived by the owner on Jan 13, 2022. It is now read-only.
forked from jquery/esprima
-
Notifications
You must be signed in to change notification settings - Fork 58
/
minify.html
150 lines (138 loc) · 5.97 KB
/
minify.html
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html>
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8" />
<title>Esprima: Minify</title>
<meta name="viewport" content="width=device-width" />
<link rel="stylesheet" type="text/css" href="../assets/orion/built-editor.css"/>
<link rel="stylesheet" type="text/css" href="../assets/style.css"/>
<link rel="stylesheet" href="../assets/foundation/foundation.min.css">
</head>
<body>
<!-- Navigation bar -->
<div class="row">
<div class="twelve columns">
<nav class="top-bar">
<ul>
<li class="name">
<h1><a href="../index.html">Esprima</a></h1>
</li>
</ul>
<section>
<ul class="right">
<li class="divider show-for-medium-and-up"></li>
<li class="has-dropdown">
<a href="../demo/index.html">Demo</a>
<ul class="dropdown">
<li><label>Static Analysis</label></li>
<li><a href="../demo/parse.html">Online Parsing</a></li>
<li><a href="../demo/validate.html">Syntax Validator</a></li>
<li><a href="../demo/precedence.html">Operator Precedence</a></li>
<li><a href="../demo/collector.html">Regex Collector</a></li>
<li><label>Dynamic Tracing</label></li>
<li><a href="../demo/functiontrace.html">Function Instrumentation</a></li>
<li><label>Code Transformation</label></li>
<li><a href="../demo/rewrite.html">Source Rewrite</a></li>
<li><a href="../demo/minify.html">Minifiy & Obfuscate</a></li>
<li><label>Editing Tools</label></li>
<li><a href="../demo/highlight.html">Identifier Highlight</a></li>
<li><a href="../demo/rename.html">Rename Refactoring</a></li>
<li><a href="../demo/autocomplete.html">Autocomplete</a></li>
</ul>
</li>
<li class="has-dropdown">
<a href="#">Project</a>
<ul class="dropdown">
<li><a href="http://github.com/ariya/esprima">Git Repository</a></li>
<li><a href="https://travis-ci.org/ariya/esprima">Continuous Integration</a></li>
<li><a href="http://groups.google.com/group/esprima">Mailing List</a></li>
<li><a href="http://issues.esprima.org/">Issue Tracker</a></li>
<li class="divider"></li>
<li><label>QA</label></li>
<li><a href="../test/index.html">Unit Tests</a></li>
<li><a href="../test/benchmarks.html">Benchmarks Suite</a></li>
<li><a href="../test/compat.html">Compatibility Tests</a></li>
<li><a href="../test/compare.html">Speed Comparison</a></li>
<li><a href="../test/module.html">Module Loading</a></li>
<li><a href="../test/coverage.html">Coverage Analysis</a></li>
</ul>
</li>
<li><a href="../doc/index.html">Documentation</a></li>
</ul>
</section>
</nav>
</div>
</div>
<!-- Title and subtitle -->
<div class="row">
<div class="twelve columns">
<h3 class="subheader"><strong>Minify and Obfuscate</strong> to cover your tracks</h3>
</div>
</div>
<!-- Main content -->
<div class="row">
<div class="eight columns">
<pre id="editor" spellcheck="false" style="height: 350px">// Straightforward bubble sorting...
function bubbleSort (list) {
var items = list.slice(0), swapped =false,
p, q;
for ( p= 1;p < items.length; ++p) {
for (q=0; q < items.length - p; ++q) {
if (items[q + 1 ] < items[q]) {
swapped =true;
let temp = items[q];
items[q] = items[ q+1]; items[q+1] = temp;
}
}
if (!swapped)
break;
}
return items;
}
</pre>
<div id="info" class="alert-box secondary">Ready.</div>
<div class="eight columns">
<p>
<label><input type="checkbox" id="mangle">Shorten variable names</label>
<label><input type="checkbox" id="remove-unreachable-branch">Remove unreachable branches</label>
<label><input type="checkbox" id="remove-unused-vars">Remove unused variable definitions</label>
<label><input type="checkbox" id="fold-constant">Fold (literal) constants</label>
<label><input type="checkbox" id="eliminate-dead-code">Eliminate dead code</label>
</p>
</div>
<div class="four columns">
<p><input class="medium radius button right" type="button" value="Minify" id="minify"></p>
</div>
</div>
<div class="four columns">
<div class="panel">
<p>Minification reduces the size of the code without affecting its execution.
Further compression is achieved by compacting the syntax tree, shortening variable names,
and removing other unnecessary clutter.</p>
<p>Minification is carried out using
<a href="https://github.com/Constellation/escodegen">escodegen</a> and
<a href="https://github.com/Constellation/esmangle">esmangle</a> projects.</p>
</div>
</div>
</div>
<!-- Footer -->
<div class="row copyright">
<div class="six columns">
<p>Esprima is created and mantained by <a href="http://ariya.ofilabs.com/about">Ariya Hidayat</a>.</p>
</div>
<div class="six columns">
<ul class="link-list right">
<li><a href="http://twitter.com/esprima">@Esprima</a></li>
<li><a href="https://github.com/ariya/esprima">GitHub</a></li>
</ul>
</div>
</div>
<script src="../esprima.js"></script>
<script src="../test/3rdparty/escodegen.browser.js"></script>
<script src="../test/3rdparty/esmangle.browser.js"></script>
<script src="../assets/orion/built-editor.min.js"></script>
<script src="../assets/orion/customeditor.js"></script>
<script src="minify.js"></script>
</body>
</html>