You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2013/03/04 20:32:52 UTC
[27/91] [abbrv] never ever check in node modules. baaad.
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/19cf42ee/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.html
----------------------------------------------------------------------
diff --git a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.html b/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.html
deleted file mode 100644
index 8f5223f..0000000
--- a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.html
+++ /dev/null
@@ -1,1026 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-lang="en" xml:lang="en">
-<head>
-<title>UglifyJS -- a JavaScript parser/compressor/beautifier</title>
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-<meta name="generator" content="Org-mode"/>
-<meta name="generated" content="2011-08-29 19:17:55 EEST"/>
-<meta name="author" content="Mihai Bazon"/>
-<meta name="description" content="a JavaScript parser/compressor/beautifier in JavaScript"/>
-<meta name="keywords" content="javascript, js, parser, compiler, compressor, mangle, minify, minifier"/>
-<style type="text/css">
- <!--/*--><![CDATA[/*><!--*/
- html { font-family: Times, serif; font-size: 12pt; }
- .title { text-align: center; }
- .todo { color: red; }
- .done { color: green; }
- .tag { background-color: #add8e6; font-weight:normal }
- .target { }
- .timestamp { color: #bebebe; }
- .timestamp-kwd { color: #5f9ea0; }
- p.verse { margin-left: 3% }
- pre {
- border: 1pt solid #AEBDCC;
- background-color: #F3F5F7;
- padding: 5pt;
- font-family: courier, monospace;
- font-size: 90%;
- overflow:auto;
- }
- table { border-collapse: collapse; }
- td, th { vertical-align: top; }
- dt { font-weight: bold; }
- div.figure { padding: 0.5em; }
- div.figure p { text-align: center; }
- textarea { overflow-x: auto; }
- .linenr { font-size:smaller }
- .code-highlighted {background-color:#ffff00;}
- .org-info-js_info-navigation { border-style:none; }
- #org-info-js_console-label { font-size:10px; font-weight:bold;
- white-space:nowrap; }
- .org-info-js_search-highlight {background-color:#ffff00; color:#000000;
- font-weight:bold; }
- /*]]>*/-->
-</style>
-<link rel="stylesheet" type="text/css" href="docstyle.css" />
-<script type="text/javascript">
-<!--/*--><![CDATA[/*><!--*/
- function CodeHighlightOn(elem, id)
- {
- var target = document.getElementById(id);
- if(null != target) {
- elem.cacheClassElem = elem.className;
- elem.cacheClassTarget = target.className;
- target.className = "code-highlighted";
- elem.className = "code-highlighted";
- }
- }
- function CodeHighlightOff(elem, id)
- {
- var target = document.getElementById(id);
- if(elem.cacheClassElem)
- elem.className = elem.cacheClassElem;
- if(elem.cacheClassTarget)
- target.className = elem.cacheClassTarget;
- }
-/*]]>*///-->
-</script>
-
-</head>
-<body>
-<div id="content">
-
-<h1 class="title">UglifyJS – a JavaScript parser/compressor/beautifier</h1>
-
-
-<div id="table-of-contents">
-<h2>Table of Contents</h2>
-<div id="text-table-of-contents">
-<ul>
-<li><a href="#sec-1">1 UglifyJS — a JavaScript parser/compressor/beautifier </a>
-<ul>
-<li><a href="#sec-1_1">1.1 Unsafe transformations </a>
-<ul>
-<li><a href="#sec-1_1_1">1.1.1 Calls involving the global Array constructor </a></li>
-<li><a href="#sec-1_1_2">1.1.2 <code>obj.toString()</code> ==> <code>obj+“”</code> </a></li>
-</ul>
-</li>
-<li><a href="#sec-1_2">1.2 Install (NPM) </a></li>
-<li><a href="#sec-1_3">1.3 Install latest code from GitHub </a></li>
-<li><a href="#sec-1_4">1.4 Usage </a>
-<ul>
-<li><a href="#sec-1_4_1">1.4.1 API </a></li>
-<li><a href="#sec-1_4_2">1.4.2 Beautifier shortcoming – no more comments </a></li>
-<li><a href="#sec-1_4_3">1.4.3 Use as a code pre-processor </a></li>
-</ul>
-</li>
-<li><a href="#sec-1_5">1.5 Compression – how good is it? </a></li>
-<li><a href="#sec-1_6">1.6 Bugs? </a></li>
-<li><a href="#sec-1_7">1.7 Links </a></li>
-<li><a href="#sec-1_8">1.8 License </a></li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-
-<div id="outline-container-1" class="outline-2">
-<h2 id="sec-1"><span class="section-number-2">1</span> UglifyJS — a JavaScript parser/compressor/beautifier </h2>
-<div class="outline-text-2" id="text-1">
-
-
-<p>
-This package implements a general-purpose JavaScript
-parser/compressor/beautifier toolkit. It is developed on <a href="http://nodejs.org/">NodeJS</a>, but it
-should work on any JavaScript platform supporting the CommonJS module system
-(and if your platform of choice doesn't support CommonJS, you can easily
-implement it, or discard the <code>exports.*</code> lines from UglifyJS sources).
-</p>
-<p>
-The tokenizer/parser generates an abstract syntax tree from JS code. You
-can then traverse the AST to learn more about the code, or do various
-manipulations on it. This part is implemented in <a href="../lib/parse-js.js">parse-js.js</a> and it's a
-port to JavaScript of the excellent <a href="http://marijn.haverbeke.nl/parse-js/">parse-js</a> Common Lisp library from <a href="http://marijn.haverbeke.nl/">Marijn Haverbeke</a>.
-</p>
-<p>
-( See <a href="http://github.com/mishoo/cl-uglify-js">cl-uglify-js</a> if you're looking for the Common Lisp version of
-UglifyJS. )
-</p>
-<p>
-The second part of this package, implemented in <a href="../lib/process.js">process.js</a>, inspects and
-manipulates the AST generated by the parser to provide the following:
-</p>
-<ul>
-<li>
-ability to re-generate JavaScript code from the AST. Optionally
-indented—you can use this if you want to “beautify” a program that has
-been compressed, so that you can inspect the source. But you can also run
-our code generator to print out an AST without any whitespace, so you
-achieve compression as well.
-
-</li>
-<li>
-shorten variable names (usually to single characters). Our mangler will
-analyze the code and generate proper variable names, depending on scope
-and usage, and is smart enough to deal with globals defined elsewhere, or
-with <code>eval()</code> calls or <code>with{}</code> statements. In short, if <code>eval()</code> or
-<code>with{}</code> are used in some scope, then all variables in that scope and any
-variables in the parent scopes will remain unmangled, and any references
-to such variables remain unmangled as well.
-
-</li>
-<li>
-various small optimizations that may lead to faster code but certainly
-lead to smaller code. Where possible, we do the following:
-
-<ul>
-<li>
-foo["bar"] ==> foo.bar
-
-</li>
-<li>
-remove block brackets <code>{}</code>
-
-</li>
-<li>
-join consecutive var declarations:
-var a = 10; var b = 20; ==> var a=10,b=20;
-
-</li>
-<li>
-resolve simple constant expressions: 1 +2 * 3 ==> 7. We only do the
-replacement if the result occupies less bytes; for example 1/3 would
-translate to 0.333333333333, so in this case we don't replace it.
-
-</li>
-<li>
-consecutive statements in blocks are merged into a sequence; in many
-cases, this leaves blocks with a single statement, so then we can remove
-the block brackets.
-
-</li>
-<li>
-various optimizations for IF statements:
-
-<ul>
-<li>
-if (foo) bar(); else baz(); ==> foo?bar():baz();
-</li>
-<li>
-if (!foo) bar(); else baz(); ==> foo?baz():bar();
-</li>
-<li>
-if (foo) bar(); ==> foo&&bar();
-</li>
-<li>
-if (!foo) bar(); ==> foo||bar();
-</li>
-<li>
-if (foo) return bar(); else return baz(); ==> return foo?bar():baz();
-</li>
-<li>
-if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}
-
-</li>
-</ul>
-</li>
-<li>
-remove some unreachable code and warn about it (code that follows a
-<code>return</code>, <code>throw</code>, <code>break</code> or <code>continue</code> statement, except
-function/variable declarations).
-
-</li>
-<li>
-act a limited version of a pre-processor (c.f. the pre-processor of
-C/C++) to allow you to safely replace selected global symbols with
-specified values. When combined with the optimisations above this can
-make UglifyJS operate slightly more like a compilation process, in
-that when certain symbols are replaced by constant values, entire code
-blocks may be optimised away as unreachable.
-</li>
-</ul>
-</li>
-</ul>
-
-
-
-</div>
-
-<div id="outline-container-1_1" class="outline-3">
-<h3 id="sec-1_1"><span class="section-number-3">1.1</span> <span class="target">Unsafe transformations</span> </h3>
-<div class="outline-text-3" id="text-1_1">
-
-
-<p>
-The following transformations can in theory break code, although they're
-probably safe in most practical cases. To enable them you need to pass the
-<code>--unsafe</code> flag.
-</p>
-
-</div>
-
-<div id="outline-container-1_1_1" class="outline-4">
-<h4 id="sec-1_1_1"><span class="section-number-4">1.1.1</span> Calls involving the global Array constructor </h4>
-<div class="outline-text-4" id="text-1_1_1">
-
-
-<p>
-The following transformations occur:
-</p>
-
-
-
-<pre class="src src-js"><span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(1, 2, 3, 4) => [1,2,3,4]
-Array(a, b, c) => [a,b,c]
-<span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(5) => Array(5)
-<span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(a) => Array(a)
-</pre>
-
-
-
-<p>
-These are all safe if the Array name isn't redefined. JavaScript does allow
-one to globally redefine Array (and pretty much everything, in fact) but I
-personally don't see why would anyone do that.
-</p>
-<p>
-UglifyJS does handle the case where Array is redefined locally, or even
-globally but with a <code>function</code> or <code>var</code> declaration. Therefore, in the
-following cases UglifyJS <b>doesn't touch</b> calls or instantiations of Array:
-</p>
-
-
-
-<pre class="src src-js"><span style="color: #b22222;">// </span><span style="color: #b22222;">case 1. globally declared variable
-</span> <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">Array</span>;
- <span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(1, 2, 3);
- Array(a, b);
-
- <span style="color: #b22222;">// </span><span style="color: #b22222;">or (can be declared later)
-</span> <span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(1, 2, 3);
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">Array</span>;
-
- <span style="color: #b22222;">// </span><span style="color: #b22222;">or (can be a function)
-</span> <span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(1, 2, 3);
- <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">Array</span>() { ... }
-
-<span style="color: #b22222;">// </span><span style="color: #b22222;">case 2. declared in a function
-</span> (<span style="color: #a020f0;">function</span>(){
- a = <span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(1, 2, 3);
- b = Array(5, 6);
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">Array</span>;
- })();
-
- <span style="color: #b22222;">// </span><span style="color: #b22222;">or
-</span> (<span style="color: #a020f0;">function</span>(<span style="color: #b8860b;">Array</span>){
- <span style="color: #a020f0;">return</span> Array(5, 6, 7);
- })();
-
- <span style="color: #b22222;">// </span><span style="color: #b22222;">or
-</span> (<span style="color: #a020f0;">function</span>(){
- <span style="color: #a020f0;">return</span> <span style="color: #a020f0;">new</span> <span style="color: #228b22;">Array</span>(1, 2, 3, 4);
- <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">Array</span>() { ... }
- })();
-
- <span style="color: #b22222;">// </span><span style="color: #b22222;">etc.
-</span></pre>
-
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1_1_2" class="outline-4">
-<h4 id="sec-1_1_2"><span class="section-number-4">1.1.2</span> <code>obj.toString()</code> ==> <code>obj+“”</code> </h4>
-<div class="outline-text-4" id="text-1_1_2">
-
-
-</div>
-</div>
-
-</div>
-
-<div id="outline-container-1_2" class="outline-3">
-<h3 id="sec-1_2"><span class="section-number-3">1.2</span> Install (NPM) </h3>
-<div class="outline-text-3" id="text-1_2">
-
-
-<p>
-UglifyJS is now available through NPM — <code>npm install uglify-js</code> should do
-the job.
-</p>
-</div>
-
-</div>
-
-<div id="outline-container-1_3" class="outline-3">
-<h3 id="sec-1_3"><span class="section-number-3">1.3</span> Install latest code from GitHub </h3>
-<div class="outline-text-3" id="text-1_3">
-
-
-
-
-
-<pre class="src src-sh"><span style="color: #b22222;">## </span><span style="color: #b22222;">clone the repository
-</span>mkdir -p /where/you/wanna/put/it
-<span style="color: #da70d6;">cd</span> /where/you/wanna/put/it
-git clone git://github.com/mishoo/UglifyJS.git
-
-<span style="color: #b22222;">## </span><span style="color: #b22222;">make the module available to Node
-</span>mkdir -p ~/.node_libraries/
-<span style="color: #da70d6;">cd</span> ~/.node_libraries/
-ln -s /where/you/wanna/put/it/UglifyJS/uglify-js.js
-
-<span style="color: #b22222;">## </span><span style="color: #b22222;">and if you want the CLI script too:
-</span>mkdir -p ~/bin
-<span style="color: #da70d6;">cd</span> ~/bin
-ln -s /where/you/wanna/put/it/UglifyJS/bin/uglifyjs
- <span style="color: #b22222;"># </span><span style="color: #b22222;">(then add ~/bin to your $PATH if it's not there already)
-</span></pre>
-
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1_4" class="outline-3">
-<h3 id="sec-1_4"><span class="section-number-3">1.4</span> Usage </h3>
-<div class="outline-text-3" id="text-1_4">
-
-
-<p>
-There is a command-line tool that exposes the functionality of this library
-for your shell-scripting needs:
-</p>
-
-
-
-<pre class="src src-sh">uglifyjs [ options... ] [ filename ]
-</pre>
-
-
-
-<p>
-<code>filename</code> should be the last argument and should name the file from which
-to read the JavaScript code. If you don't specify it, it will read code
-from STDIN.
-</p>
-<p>
-Supported options:
-</p>
-<ul>
-<li>
-<code>-b</code> or <code>--beautify</code> — output indented code; when passed, additional
-options control the beautifier:
-
-<ul>
-<li>
-<code>-i N</code> or <code>--indent N</code> — indentation level (number of spaces)
-
-</li>
-<li>
-<code>-q</code> or <code>--quote-keys</code> — quote keys in literal objects (by default,
-only keys that cannot be identifier names will be quotes).
-
-</li>
-</ul>
-</li>
-<li>
-<code>--ascii</code> — pass this argument to encode non-ASCII characters as
-<code>\uXXXX</code> sequences. By default UglifyJS won't bother to do it and will
-output Unicode characters instead. (the output is always encoded in UTF8,
-but if you pass this option you'll only get ASCII).
-
-</li>
-<li>
-<code>-nm</code> or <code>--no-mangle</code> — don't mangle variable names
-
-</li>
-<li>
-<code>-ns</code> or <code>--no-squeeze</code> — don't call <code>ast_squeeze()</code> (which does various
-optimizations that result in smaller, less readable code).
-
-</li>
-<li>
-<code>-mt</code> or <code>--mangle-toplevel</code> — mangle names in the toplevel scope too
-(by default we don't do this).
-
-</li>
-<li>
-<code>--no-seqs</code> — when <code>ast_squeeze()</code> is called (thus, unless you pass
-<code>--no-squeeze</code>) it will reduce consecutive statements in blocks into a
-sequence. For example, "a = 10; b = 20; foo();" will be written as
-"a=10,b=20,foo();". In various occasions, this allows us to discard the
-block brackets (since the block becomes a single statement). This is ON
-by default because it seems safe and saves a few hundred bytes on some
-libs that I tested it on, but pass <code>--no-seqs</code> to disable it.
-
-</li>
-<li>
-<code>--no-dead-code</code> — by default, UglifyJS will remove code that is
-obviously unreachable (code that follows a <code>return</code>, <code>throw</code>, <code>break</code> or
-<code>continue</code> statement and is not a function/variable declaration). Pass
-this option to disable this optimization.
-
-</li>
-<li>
-<code>-nc</code> or <code>--no-copyright</code> — by default, <code>uglifyjs</code> will keep the initial
-comment tokens in the generated code (assumed to be copyright information
-etc.). If you pass this it will discard it.
-
-</li>
-<li>
-<code>-o filename</code> or <code>--output filename</code> — put the result in <code>filename</code>. If
-this isn't given, the result goes to standard output (or see next one).
-
-</li>
-<li>
-<code>--overwrite</code> — if the code is read from a file (not from STDIN) and you
-pass <code>--overwrite</code> then the output will be written in the same file.
-
-</li>
-<li>
-<code>--ast</code> — pass this if you want to get the Abstract Syntax Tree instead
-of JavaScript as output. Useful for debugging or learning more about the
-internals.
-
-</li>
-<li>
-<code>-v</code> or <code>--verbose</code> — output some notes on STDERR (for now just how long
-each operation takes).
-
-</li>
-<li>
-<code>-d SYMBOL[=VALUE]</code> or <code>--define SYMBOL[=VALUE]</code> — will replace
-all instances of the specified symbol where used as an identifier
-(except where symbol has properly declared by a var declaration or
-use as function parameter or similar) with the specified value. This
-argument may be specified multiple times to define multiple
-symbols - if no value is specified the symbol will be replaced with
-the value <code>true</code>, or you can specify a numeric value (such as
-<code>1024</code>), a quoted string value (such as ="object"= or
-='https://github.com'<code>), or the name of another symbol or keyword (such as =null</code> or <code>document</code>).
-This allows you, for example, to assign meaningful names to key
-constant values but discard the symbolic names in the uglified
-version for brevity/efficiency, or when used wth care, allows
-UglifyJS to operate as a form of <b>conditional compilation</b>
-whereby defining appropriate values may, by dint of the constant
-folding and dead code removal features above, remove entire
-superfluous code blocks (e.g. completely remove instrumentation or
-trace code for production use).
-Where string values are being defined, the handling of quotes are
-likely to be subject to the specifics of your command shell
-environment, so you may need to experiment with quoting styles
-depending on your platform, or you may find the option
-<code>--define-from-module</code> more suitable for use.
-
-</li>
-<li>
-<code>-define-from-module SOMEMODULE</code> — will load the named module (as
-per the NodeJS <code>require()</code> function) and iterate all the exported
-properties of the module defining them as symbol names to be defined
-(as if by the <code>--define</code> option) per the name of each property
-(i.e. without the module name prefix) and given the value of the
-property. This is a much easier way to handle and document groups of
-symbols to be defined rather than a large number of <code>--define</code>
-options.
-
-</li>
-<li>
-<code>--unsafe</code> — enable other additional optimizations that are known to be
-unsafe in some contrived situations, but could still be generally useful.
-For now only these:
-
-<ul>
-<li>
-foo.toString() ==> foo+""
-</li>
-<li>
-new Array(x,…) ==> [x,…]
-</li>
-<li>
-new Array(x) ==> Array(x)
-
-</li>
-</ul>
-</li>
-<li>
-<code>--max-line-len</code> (default 32K characters) — add a newline after around
-32K characters. I've seen both FF and Chrome croak when all the code was
-on a single line of around 670K. Pass –max-line-len 0 to disable this
-safety feature.
-
-</li>
-<li>
-<code>--reserved-names</code> — some libraries rely on certain names to be used, as
-pointed out in issue #92 and #81, so this option allow you to exclude such
-names from the mangler. For example, to keep names <code>require</code> and <code>$super</code>
-intact you'd specify –reserved-names "require,$super".
-
-</li>
-<li>
-<code>--inline-script</code> – when you want to include the output literally in an
-HTML <code><script></code> tag you can use this option to prevent <code></script</code> from
-showing up in the output.
-
-</li>
-<li>
-<code>--lift-vars</code> – when you pass this, UglifyJS will apply the following
-transformations (see the notes in API, <code>ast_lift_variables</code>):
-
-<ul>
-<li>
-put all <code>var</code> declarations at the start of the scope
-</li>
-<li>
-make sure a variable is declared only once
-</li>
-<li>
-discard unused function arguments
-</li>
-<li>
-discard unused inner (named) functions
-</li>
-<li>
-finally, try to merge assignments into that one <code>var</code> declaration, if
-possible.
-</li>
-</ul>
-</li>
-</ul>
-
-
-
-</div>
-
-<div id="outline-container-1_4_1" class="outline-4">
-<h4 id="sec-1_4_1"><span class="section-number-4">1.4.1</span> API </h4>
-<div class="outline-text-4" id="text-1_4_1">
-
-
-<p>
-To use the library from JavaScript, you'd do the following (example for
-NodeJS):
-</p>
-
-
-
-<pre class="src src-js"><span style="color: #a020f0;">var</span> <span style="color: #b8860b;">jsp</span> = require(<span style="color: #bc8f8f;">"uglify-js"</span>).parser;
-<span style="color: #a020f0;">var</span> <span style="color: #b8860b;">pro</span> = require(<span style="color: #bc8f8f;">"uglify-js"</span>).uglify;
-
-<span style="color: #a020f0;">var</span> <span style="color: #b8860b;">orig_code</span> = <span style="color: #bc8f8f;">"... JS code here"</span>;
-<span style="color: #a020f0;">var</span> <span style="color: #b8860b;">ast</span> = jsp.parse(orig_code); <span style="color: #b22222;">// </span><span style="color: #b22222;">parse code and get the initial AST
-</span>ast = pro.ast_mangle(ast); <span style="color: #b22222;">// </span><span style="color: #b22222;">get a new AST with mangled names
-</span>ast = pro.ast_squeeze(ast); <span style="color: #b22222;">// </span><span style="color: #b22222;">get an AST with compression optimizations
-</span><span style="color: #a020f0;">var</span> <span style="color: #b8860b;">final_code</span> = pro.gen_code(ast); <span style="color: #b22222;">// </span><span style="color: #b22222;">compressed code here
-</span></pre>
-
-
-
-<p>
-The above performs the full compression that is possible right now. As you
-can see, there are a sequence of steps which you can apply. For example if
-you want compressed output but for some reason you don't want to mangle
-variable names, you would simply skip the line that calls
-<code>pro.ast_mangle(ast)</code>.
-</p>
-<p>
-Some of these functions take optional arguments. Here's a description:
-</p>
-<ul>
-<li>
-<code>jsp.parse(code, strict_semicolons)</code> – parses JS code and returns an AST.
-<code>strict_semicolons</code> is optional and defaults to <code>false</code>. If you pass
-<code>true</code> then the parser will throw an error when it expects a semicolon and
-it doesn't find it. For most JS code you don't want that, but it's useful
-if you want to strictly sanitize your code.
-
-</li>
-<li>
-<code>pro.ast_lift_variables(ast)</code> – merge and move <code>var</code> declarations to the
-scop of the scope; discard unused function arguments or variables; discard
-unused (named) inner functions. It also tries to merge assignments
-following the <code>var</code> declaration into it.
-
-<p>
-If your code is very hand-optimized concerning <code>var</code> declarations, this
-lifting variable declarations might actually increase size. For me it
-helps out. On jQuery it adds 865 bytes (243 after gzip). YMMV. Also
-note that (since it's not enabled by default) this operation isn't yet
-heavily tested (please report if you find issues!).
-</p>
-<p>
-Note that although it might increase the image size (on jQuery it gains
-865 bytes, 243 after gzip) it's technically more correct: in certain
-situations, dead code removal might drop variable declarations, which
-would not happen if the variables are lifted in advance.
-</p>
-<p>
-Here's an example of what it does:
-</p>
-</li>
-</ul>
-
-
-
-
-<pre class="src src-js"><span style="color: #a020f0;">function</span> <span style="color: #0000ff;">f</span>(<span style="color: #b8860b;">a</span>, <span style="color: #b8860b;">b</span>, <span style="color: #b8860b;">c</span>, <span style="color: #b8860b;">d</span>, <span style="color: #b8860b;">e</span>) {
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">q</span>;
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">w</span>;
- w = 10;
- q = 20;
- <span style="color: #a020f0;">for</span> (<span style="color: #a020f0;">var</span> <span style="color: #b8860b;">i</span> = 1; i < 10; ++i) {
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">boo</span> = foo(a);
- }
- <span style="color: #a020f0;">for</span> (<span style="color: #a020f0;">var</span> <span style="color: #b8860b;">i</span> = 0; i < 1; ++i) {
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">boo</span> = bar(c);
- }
- <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">foo</span>(){ ... }
- <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">bar</span>(){ ... }
- <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">baz</span>(){ ... }
-}
-
-<span style="color: #b22222;">// </span><span style="color: #b22222;">transforms into ==>
-</span>
-<span style="color: #a020f0;">function</span> <span style="color: #0000ff;">f</span>(<span style="color: #b8860b;">a</span>, <span style="color: #b8860b;">b</span>, <span style="color: #b8860b;">c</span>) {
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">i</span>, <span style="color: #b8860b;">boo</span>, <span style="color: #b8860b;">w</span> = 10, <span style="color: #b8860b;">q</span> = 20;
- <span style="color: #a020f0;">for</span> (i = 1; i < 10; ++i) {
- boo = foo(a);
- }
- <span style="color: #a020f0;">for</span> (i = 0; i < 1; ++i) {
- boo = bar(c);
- }
- <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">foo</span>() { ... }
- <span style="color: #a020f0;">function</span> <span style="color: #0000ff;">bar</span>() { ... }
-}
-</pre>
-
-
-
-<ul>
-<li>
-<code>pro.ast_mangle(ast, options)</code> – generates a new AST containing mangled
-(compressed) variable and function names. It supports the following
-options:
-
-<ul>
-<li>
-<code>toplevel</code> – mangle toplevel names (by default we don't touch them).
-</li>
-<li>
-<code>except</code> – an array of names to exclude from compression.
-</li>
-<li>
-<code>defines</code> – an object with properties named after symbols to
-replace (see the <code>--define</code> option for the script) and the values
-representing the AST replacement value.
-
-</li>
-</ul>
-</li>
-<li>
-<code>pro.ast_squeeze(ast, options)</code> – employs further optimizations designed
-to reduce the size of the code that <code>gen_code</code> would generate from the
-AST. Returns a new AST. <code>options</code> can be a hash; the supported options
-are:
-
-<ul>
-<li>
-<code>make_seqs</code> (default true) which will cause consecutive statements in a
-block to be merged using the "sequence" (comma) operator
-
-</li>
-<li>
-<code>dead_code</code> (default true) which will remove unreachable code.
-
-</li>
-</ul>
-</li>
-<li>
-<code>pro.gen_code(ast, options)</code> – generates JS code from the AST. By
-default it's minified, but using the <code>options</code> argument you can get nicely
-formatted output. <code>options</code> is, well, optional :-) and if you pass it it
-must be an object and supports the following properties (below you can see
-the default values):
-
-<ul>
-<li>
-<code>beautify: false</code> – pass <code>true</code> if you want indented output
-</li>
-<li>
-<code>indent_start: 0</code> (only applies when <code>beautify</code> is <code>true</code>) – initial
-indentation in spaces
-</li>
-<li>
-<code>indent_level: 4</code> (only applies when <code>beautify</code> is <code>true</code>) --
-indentation level, in spaces (pass an even number)
-</li>
-<li>
-<code>quote_keys: false</code> – if you pass <code>true</code> it will quote all keys in
-literal objects
-</li>
-<li>
-<code>space_colon: false</code> (only applies when <code>beautify</code> is <code>true</code>) – wether
-to put a space before the colon in object literals
-</li>
-<li>
-<code>ascii_only: false</code> – pass <code>true</code> if you want to encode non-ASCII
-characters as <code>\uXXXX</code>.
-</li>
-<li>
-<code>inline_script: false</code> – pass <code>true</code> to escape occurrences of
-<code></script</code> in strings
-</li>
-</ul>
-</li>
-</ul>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1_4_2" class="outline-4">
-<h4 id="sec-1_4_2"><span class="section-number-4">1.4.2</span> Beautifier shortcoming – no more comments </h4>
-<div class="outline-text-4" id="text-1_4_2">
-
-
-<p>
-The beautifier can be used as a general purpose indentation tool. It's
-useful when you want to make a minified file readable. One limitation,
-though, is that it discards all comments, so you don't really want to use it
-to reformat your code, unless you don't have, or don't care about, comments.
-</p>
-<p>
-In fact it's not the beautifier who discards comments — they are dumped at
-the parsing stage, when we build the initial AST. Comments don't really
-make sense in the AST, and while we could add nodes for them, it would be
-inconvenient because we'd have to add special rules to ignore them at all
-the processing stages.
-</p>
-</div>
-
-</div>
-
-<div id="outline-container-1_4_3" class="outline-4">
-<h4 id="sec-1_4_3"><span class="section-number-4">1.4.3</span> Use as a code pre-processor </h4>
-<div class="outline-text-4" id="text-1_4_3">
-
-
-<p>
-The <code>--define</code> option can be used, particularly when combined with the
-constant folding logic, as a form of pre-processor to enable or remove
-particular constructions, such as might be used for instrumenting
-development code, or to produce variations aimed at a specific
-platform.
-</p>
-<p>
-The code below illustrates the way this can be done, and how the
-symbol replacement is performed.
-</p>
-
-
-
-<pre class="src src-js">CLAUSE1: <span style="color: #a020f0;">if</span> (<span style="color: #a020f0;">typeof</span> DEVMODE === <span style="color: #bc8f8f;">'undefined'</span>) {
- DEVMODE = <span style="color: #5f9ea0;">true</span>;
-}
-
-<span style="color: #0000ff;">CLAUSE2</span>: <span style="color: #a020f0;">function</span> init() {
- <span style="color: #a020f0;">if</span> (DEVMODE) {
- console.log(<span style="color: #bc8f8f;">"init() called"</span>);
- }
- ....
- DEVMODE &amp;&amp; console.log(<span style="color: #bc8f8f;">"init() complete"</span>);
-}
-
-<span style="color: #0000ff;">CLAUSE3</span>: <span style="color: #a020f0;">function</span> reportDeviceStatus(<span style="color: #b8860b;">device</span>) {
- <span style="color: #a020f0;">var</span> <span style="color: #b8860b;">DEVMODE</span> = device.mode, <span style="color: #b8860b;">DEVNAME</span> = device.name;
- <span style="color: #a020f0;">if</span> (DEVMODE === <span style="color: #bc8f8f;">'open'</span>) {
- ....
- }
-}
-</pre>
-
-
-
-<p>
-When the above code is normally executed, the undeclared global
-variable <code>DEVMODE</code> will be assigned the value <b>true</b> (see <code>CLAUSE1</code>)
-and so the <code>init()</code> function (<code>CLAUSE2</code>) will write messages to the
-console log when executed, but in <code>CLAUSE3</code> a locally declared
-variable will mask access to the <code>DEVMODE</code> global symbol.
-</p>
-<p>
-If the above code is processed by UglifyJS with an argument of
-<code>--define DEVMODE=false</code> then UglifyJS will replace <code>DEVMODE</code> with the
-boolean constant value <b>false</b> within <code>CLAUSE1</code> and <code>CLAUSE2</code>, but it
-will leave <code>CLAUSE3</code> as it stands because there <code>DEVMODE</code> resolves to
-a validly declared variable.
-</p>
-<p>
-And more so, the constant-folding features of UglifyJS will recognise
-that the <code>if</code> condition of <code>CLAUSE1</code> is thus always false, and so will
-remove the test and body of <code>CLAUSE1</code> altogether (including the
-otherwise slightly problematical statement <code>false = true;</code> which it
-will have formed by replacing <code>DEVMODE</code> in the body). Similarly,
-within <code>CLAUSE2</code> both calls to <code>console.log()</code> will be removed
-altogether.
-</p>
-<p>
-In this way you can mimic, to a limited degree, the functionality of
-the C/C++ pre-processor to enable or completely remove blocks
-depending on how certain symbols are defined - perhaps using UglifyJS
-to generate different versions of source aimed at different
-environments
-</p>
-<p>
-It is recommmended (but not made mandatory) that symbols designed for
-this purpose are given names consisting of <code>UPPER_CASE_LETTERS</code> to
-distinguish them from other (normal) symbols and avoid the sort of
-clash that <code>CLAUSE3</code> above illustrates.
-</p>
-</div>
-</div>
-
-</div>
-
-<div id="outline-container-1_5" class="outline-3">
-<h3 id="sec-1_5"><span class="section-number-3">1.5</span> Compression – how good is it? </h3>
-<div class="outline-text-3" id="text-1_5">
-
-
-<p>
-Here are updated statistics. (I also updated my Google Closure and YUI
-installations).
-</p>
-<p>
-We're still a lot better than YUI in terms of compression, though slightly
-slower. We're still a lot faster than Closure, and compression after gzip
-is comparable.
-</p>
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-<caption></caption>
-<colgroup><col align="left" /><col align="left" /><col align="right" /><col align="left" /><col align="right" /><col align="left" /><col align="right" />
-</colgroup>
-<thead>
-<tr><th scope="col">File</th><th scope="col">UglifyJS</th><th scope="col">UglifyJS+gzip</th><th scope="col">Closure</th><th scope="col">Closure+gzip</th><th scope="col">YUI</th><th scope="col">YUI+gzip</th></tr>
-</thead>
-<tbody>
-<tr><td>jquery-1.6.2.js</td><td>91001 (0:01.59)</td><td>31896</td><td>90678 (0:07.40)</td><td>31979</td><td>101527 (0:01.82)</td><td>34646</td></tr>
-<tr><td>paper.js</td><td>142023 (0:01.65)</td><td>43334</td><td>134301 (0:07.42)</td><td>42495</td><td>173383 (0:01.58)</td><td>48785</td></tr>
-<tr><td>prototype.js</td><td>88544 (0:01.09)</td><td>26680</td><td>86955 (0:06.97)</td><td>26326</td><td>92130 (0:00.79)</td><td>28624</td></tr>
-<tr><td>thelib-full.js (DynarchLIB)</td><td>251939 (0:02.55)</td><td>72535</td><td>249911 (0:09.05)</td><td>72696</td><td>258869 (0:01.94)</td><td>76584</td></tr>
-</tbody>
-</table>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1_6" class="outline-3">
-<h3 id="sec-1_6"><span class="section-number-3">1.6</span> Bugs? </h3>
-<div class="outline-text-3" id="text-1_6">
-
-
-<p>
-Unfortunately, for the time being there is no automated test suite. But I
-ran the compressor manually on non-trivial code, and then I tested that the
-generated code works as expected. A few hundred times.
-</p>
-<p>
-DynarchLIB was started in times when there was no good JS minifier.
-Therefore I was quite religious about trying to write short code manually,
-and as such DL contains a lot of syntactic hacks<sup><a class="footref" name="fnr.1" href="#fn.1">1</a></sup> such as “foo == bar ? a
-= 10 : b = 20”, though the more readable version would clearly be to use
-“if/else”.
-</p>
-<p>
-Since the parser/compressor runs fine on DL and jQuery, I'm quite confident
-that it's solid enough for production use. If you can identify any bugs,
-I'd love to hear about them (<a href="http://groups.google.com/group/uglifyjs">use the Google Group</a> or email me directly).
-</p>
-</div>
-
-</div>
-
-<div id="outline-container-1_7" class="outline-3">
-<h3 id="sec-1_7"><span class="section-number-3">1.7</span> Links </h3>
-<div class="outline-text-3" id="text-1_7">
-
-
-<ul>
-<li>
-Twitter: <a href="http://twitter.com/UglifyJS">@UglifyJS</a>
-</li>
-<li>
-Project at GitHub: <a href="http://github.com/mishoo/UglifyJS">http://github.com/mishoo/UglifyJS</a>
-</li>
-<li>
-Google Group: <a href="http://groups.google.com/group/uglifyjs">http://groups.google.com/group/uglifyjs</a>
-</li>
-<li>
-Common Lisp JS parser: <a href="http://marijn.haverbeke.nl/parse-js/">http://marijn.haverbeke.nl/parse-js/</a>
-</li>
-<li>
-JS-to-Lisp compiler: <a href="http://github.com/marijnh/js">http://github.com/marijnh/js</a>
-</li>
-<li>
-Common Lisp JS uglifier: <a href="http://github.com/mishoo/cl-uglify-js">http://github.com/mishoo/cl-uglify-js</a>
-</li>
-</ul>
-
-
-</div>
-
-</div>
-
-<div id="outline-container-1_8" class="outline-3">
-<h3 id="sec-1_8"><span class="section-number-3">1.8</span> License </h3>
-<div class="outline-text-3" id="text-1_8">
-
-
-<p>
-UglifyJS is released under the BSD license:
-</p>
-
-
-
-<pre class="example">Copyright 2010 (c) Mihai Bazon <mihai.bazon@gmail.com>
-Based on parse-js (http://marijn.haverbeke.nl/parse-js/).
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above
- copyright notice, this list of conditions and the following
- disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials
- provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-</pre>
-
-
-
-
-</div>
-</div>
-</div>
-<div id="footnotes">
-<h2 class="footnotes">Footnotes: </h2>
-<div id="text-footnotes">
-<p class="footnote"><sup><a class="footnum" name="fn.1" href="#fnr.1">1</a></sup> I even reported a few bugs and suggested some fixes in the original
-<a href="http://marijn.haverbeke.nl/parse-js/">parse-js</a> library, and Marijn pushed fixes literally in minutes.
-</p>
-</div>
-</div>
-<div id="postamble">
-<p class="author"> Author: Mihai Bazon
-</p>
-<p class="date"> Date: 2011-08-29 19:17:55 EEST</p>
-<p class="creator">HTML generated by org-mode 7.01trans in emacs 23</p>
-</div>
-</div>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/19cf42ee/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.org
----------------------------------------------------------------------
diff --git a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.org b/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.org
deleted file mode 100644
index 50c9c27..0000000
--- a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/README.org
+++ /dev/null
@@ -1,571 +0,0 @@
-#+TITLE: UglifyJS -- a JavaScript parser/compressor/beautifier
-#+KEYWORDS: javascript, js, parser, compiler, compressor, mangle, minify, minifier
-#+DESCRIPTION: a JavaScript parser/compressor/beautifier in JavaScript
-#+STYLE: <link rel="stylesheet" type="text/css" href="docstyle.css" />
-#+AUTHOR: Mihai Bazon
-#+EMAIL: mihai.bazon@gmail.com
-
-* UglifyJS --- a JavaScript parser/compressor/beautifier
-
-This package implements a general-purpose JavaScript
-parser/compressor/beautifier toolkit. It is developed on [[http://nodejs.org/][NodeJS]], but it
-should work on any JavaScript platform supporting the CommonJS module system
-(and if your platform of choice doesn't support CommonJS, you can easily
-implement it, or discard the =exports.*= lines from UglifyJS sources).
-
-The tokenizer/parser generates an abstract syntax tree from JS code. You
-can then traverse the AST to learn more about the code, or do various
-manipulations on it. This part is implemented in [[../lib/parse-js.js][parse-js.js]] and it's a
-port to JavaScript of the excellent [[http://marijn.haverbeke.nl/parse-js/][parse-js]] Common Lisp library from [[http://marijn.haverbeke.nl/][Marijn
-Haverbeke]].
-
-( See [[http://github.com/mishoo/cl-uglify-js][cl-uglify-js]] if you're looking for the Common Lisp version of
-UglifyJS. )
-
-The second part of this package, implemented in [[../lib/process.js][process.js]], inspects and
-manipulates the AST generated by the parser to provide the following:
-
-- ability to re-generate JavaScript code from the AST. Optionally
- indented---you can use this if you want to “beautify” a program that has
- been compressed, so that you can inspect the source. But you can also run
- our code generator to print out an AST without any whitespace, so you
- achieve compression as well.
-
-- shorten variable names (usually to single characters). Our mangler will
- analyze the code and generate proper variable names, depending on scope
- and usage, and is smart enough to deal with globals defined elsewhere, or
- with =eval()= calls or =with{}= statements. In short, if =eval()= or
- =with{}= are used in some scope, then all variables in that scope and any
- variables in the parent scopes will remain unmangled, and any references
- to such variables remain unmangled as well.
-
-- various small optimizations that may lead to faster code but certainly
- lead to smaller code. Where possible, we do the following:
-
- - foo["bar"] ==> foo.bar
-
- - remove block brackets ={}=
-
- - join consecutive var declarations:
- var a = 10; var b = 20; ==> var a=10,b=20;
-
- - resolve simple constant expressions: 1 +2 * 3 ==> 7. We only do the
- replacement if the result occupies less bytes; for example 1/3 would
- translate to 0.333333333333, so in this case we don't replace it.
-
- - consecutive statements in blocks are merged into a sequence; in many
- cases, this leaves blocks with a single statement, so then we can remove
- the block brackets.
-
- - various optimizations for IF statements:
-
- - if (foo) bar(); else baz(); ==> foo?bar():baz();
- - if (!foo) bar(); else baz(); ==> foo?baz():bar();
- - if (foo) bar(); ==> foo&&bar();
- - if (!foo) bar(); ==> foo||bar();
- - if (foo) return bar(); else return baz(); ==> return foo?bar():baz();
- - if (foo) return bar(); else something(); ==> {if(foo)return bar();something()}
-
- - remove some unreachable code and warn about it (code that follows a
- =return=, =throw=, =break= or =continue= statement, except
- function/variable declarations).
-
- - act a limited version of a pre-processor (c.f. the pre-processor of
- C/C++) to allow you to safely replace selected global symbols with
- specified values. When combined with the optimisations above this can
- make UglifyJS operate slightly more like a compilation process, in
- that when certain symbols are replaced by constant values, entire code
- blocks may be optimised away as unreachable.
-
-** <<Unsafe transformations>>
-
-The following transformations can in theory break code, although they're
-probably safe in most practical cases. To enable them you need to pass the
-=--unsafe= flag.
-
-*** Calls involving the global Array constructor
-
-The following transformations occur:
-
-#+BEGIN_SRC js
-new Array(1, 2, 3, 4) => [1,2,3,4]
-Array(a, b, c) => [a,b,c]
-new Array(5) => Array(5)
-new Array(a) => Array(a)
-#+END_SRC
-
-These are all safe if the Array name isn't redefined. JavaScript does allow
-one to globally redefine Array (and pretty much everything, in fact) but I
-personally don't see why would anyone do that.
-
-UglifyJS does handle the case where Array is redefined locally, or even
-globally but with a =function= or =var= declaration. Therefore, in the
-following cases UglifyJS *doesn't touch* calls or instantiations of Array:
-
-#+BEGIN_SRC js
-// case 1. globally declared variable
- var Array;
- new Array(1, 2, 3);
- Array(a, b);
-
- // or (can be declared later)
- new Array(1, 2, 3);
- var Array;
-
- // or (can be a function)
- new Array(1, 2, 3);
- function Array() { ... }
-
-// case 2. declared in a function
- (function(){
- a = new Array(1, 2, 3);
- b = Array(5, 6);
- var Array;
- })();
-
- // or
- (function(Array){
- return Array(5, 6, 7);
- })();
-
- // or
- (function(){
- return new Array(1, 2, 3, 4);
- function Array() { ... }
- })();
-
- // etc.
-#+END_SRC
-
-*** =obj.toString()= ==> =obj+“”=
-
-** Install (NPM)
-
-UglifyJS is now available through NPM --- =npm install uglify-js= should do
-the job.
-
-** Install latest code from GitHub
-
-#+BEGIN_SRC sh
-## clone the repository
-mkdir -p /where/you/wanna/put/it
-cd /where/you/wanna/put/it
-git clone git://github.com/mishoo/UglifyJS.git
-
-## make the module available to Node
-mkdir -p ~/.node_libraries/
-cd ~/.node_libraries/
-ln -s /where/you/wanna/put/it/UglifyJS/uglify-js.js
-
-## and if you want the CLI script too:
-mkdir -p ~/bin
-cd ~/bin
-ln -s /where/you/wanna/put/it/UglifyJS/bin/uglifyjs
- # (then add ~/bin to your $PATH if it's not there already)
-#+END_SRC
-
-** Usage
-
-There is a command-line tool that exposes the functionality of this library
-for your shell-scripting needs:
-
-#+BEGIN_SRC sh
-uglifyjs [ options... ] [ filename ]
-#+END_SRC
-
-=filename= should be the last argument and should name the file from which
-to read the JavaScript code. If you don't specify it, it will read code
-from STDIN.
-
-Supported options:
-
-- =-b= or =--beautify= --- output indented code; when passed, additional
- options control the beautifier:
-
- - =-i N= or =--indent N= --- indentation level (number of spaces)
-
- - =-q= or =--quote-keys= --- quote keys in literal objects (by default,
- only keys that cannot be identifier names will be quotes).
-
-- =--ascii= --- pass this argument to encode non-ASCII characters as
- =\uXXXX= sequences. By default UglifyJS won't bother to do it and will
- output Unicode characters instead. (the output is always encoded in UTF8,
- but if you pass this option you'll only get ASCII).
-
-- =-nm= or =--no-mangle= --- don't mangle variable names
-
-- =-ns= or =--no-squeeze= --- don't call =ast_squeeze()= (which does various
- optimizations that result in smaller, less readable code).
-
-- =-mt= or =--mangle-toplevel= --- mangle names in the toplevel scope too
- (by default we don't do this).
-
-- =--no-seqs= --- when =ast_squeeze()= is called (thus, unless you pass
- =--no-squeeze=) it will reduce consecutive statements in blocks into a
- sequence. For example, "a = 10; b = 20; foo();" will be written as
- "a=10,b=20,foo();". In various occasions, this allows us to discard the
- block brackets (since the block becomes a single statement). This is ON
- by default because it seems safe and saves a few hundred bytes on some
- libs that I tested it on, but pass =--no-seqs= to disable it.
-
-- =--no-dead-code= --- by default, UglifyJS will remove code that is
- obviously unreachable (code that follows a =return=, =throw=, =break= or
- =continue= statement and is not a function/variable declaration). Pass
- this option to disable this optimization.
-
-- =-nc= or =--no-copyright= --- by default, =uglifyjs= will keep the initial
- comment tokens in the generated code (assumed to be copyright information
- etc.). If you pass this it will discard it.
-
-- =-o filename= or =--output filename= --- put the result in =filename=. If
- this isn't given, the result goes to standard output (or see next one).
-
-- =--overwrite= --- if the code is read from a file (not from STDIN) and you
- pass =--overwrite= then the output will be written in the same file.
-
-- =--ast= --- pass this if you want to get the Abstract Syntax Tree instead
- of JavaScript as output. Useful for debugging or learning more about the
- internals.
-
-- =-v= or =--verbose= --- output some notes on STDERR (for now just how long
- each operation takes).
-
-- =-d SYMBOL[=VALUE]= or =--define SYMBOL[=VALUE]= --- will replace
- all instances of the specified symbol where used as an identifier
- (except where symbol has properly declared by a var declaration or
- use as function parameter or similar) with the specified value. This
- argument may be specified multiple times to define multiple
- symbols - if no value is specified the symbol will be replaced with
- the value =true=, or you can specify a numeric value (such as
- =1024=), a quoted string value (such as ="object"= or
- ='https://github.com'=), or the name of another symbol or keyword
- (such as =null= or =document=).
- This allows you, for example, to assign meaningful names to key
- constant values but discard the symbolic names in the uglified
- version for brevity/efficiency, or when used wth care, allows
- UglifyJS to operate as a form of *conditional compilation*
- whereby defining appropriate values may, by dint of the constant
- folding and dead code removal features above, remove entire
- superfluous code blocks (e.g. completely remove instrumentation or
- trace code for production use).
- Where string values are being defined, the handling of quotes are
- likely to be subject to the specifics of your command shell
- environment, so you may need to experiment with quoting styles
- depending on your platform, or you may find the option
- =--define-from-module= more suitable for use.
-
-- =-define-from-module SOMEMODULE= --- will load the named module (as
- per the NodeJS =require()= function) and iterate all the exported
- properties of the module defining them as symbol names to be defined
- (as if by the =--define= option) per the name of each property
- (i.e. without the module name prefix) and given the value of the
- property. This is a much easier way to handle and document groups of
- symbols to be defined rather than a large number of =--define=
- options.
-
-- =--unsafe= --- enable other additional optimizations that are known to be
- unsafe in some contrived situations, but could still be generally useful.
- For now only these:
-
- - foo.toString() ==> foo+""
- - new Array(x,...) ==> [x,...]
- - new Array(x) ==> Array(x)
-
-- =--max-line-len= (default 32K characters) --- add a newline after around
- 32K characters. I've seen both FF and Chrome croak when all the code was
- on a single line of around 670K. Pass --max-line-len 0 to disable this
- safety feature.
-
-- =--reserved-names= --- some libraries rely on certain names to be used, as
- pointed out in issue #92 and #81, so this option allow you to exclude such
- names from the mangler. For example, to keep names =require= and =$super=
- intact you'd specify --reserved-names "require,$super".
-
-- =--inline-script= -- when you want to include the output literally in an
- HTML =<script>= tag you can use this option to prevent =</script= from
- showing up in the output.
-
-- =--lift-vars= -- when you pass this, UglifyJS will apply the following
- transformations (see the notes in API, =ast_lift_variables=):
-
- - put all =var= declarations at the start of the scope
- - make sure a variable is declared only once
- - discard unused function arguments
- - discard unused inner (named) functions
- - finally, try to merge assignments into that one =var= declaration, if
- possible.
-
-*** API
-
-To use the library from JavaScript, you'd do the following (example for
-NodeJS):
-
-#+BEGIN_SRC js
-var jsp = require("uglify-js").parser;
-var pro = require("uglify-js").uglify;
-
-var orig_code = "... JS code here";
-var ast = jsp.parse(orig_code); // parse code and get the initial AST
-ast = pro.ast_mangle(ast); // get a new AST with mangled names
-ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
-var final_code = pro.gen_code(ast); // compressed code here
-#+END_SRC
-
-The above performs the full compression that is possible right now. As you
-can see, there are a sequence of steps which you can apply. For example if
-you want compressed output but for some reason you don't want to mangle
-variable names, you would simply skip the line that calls
-=pro.ast_mangle(ast)=.
-
-Some of these functions take optional arguments. Here's a description:
-
-- =jsp.parse(code, strict_semicolons)= -- parses JS code and returns an AST.
- =strict_semicolons= is optional and defaults to =false=. If you pass
- =true= then the parser will throw an error when it expects a semicolon and
- it doesn't find it. For most JS code you don't want that, but it's useful
- if you want to strictly sanitize your code.
-
-- =pro.ast_lift_variables(ast)= -- merge and move =var= declarations to the
- scop of the scope; discard unused function arguments or variables; discard
- unused (named) inner functions. It also tries to merge assignments
- following the =var= declaration into it.
-
- If your code is very hand-optimized concerning =var= declarations, this
- lifting variable declarations might actually increase size. For me it
- helps out. On jQuery it adds 865 bytes (243 after gzip). YMMV. Also
- note that (since it's not enabled by default) this operation isn't yet
- heavily tested (please report if you find issues!).
-
- Note that although it might increase the image size (on jQuery it gains
- 865 bytes, 243 after gzip) it's technically more correct: in certain
- situations, dead code removal might drop variable declarations, which
- would not happen if the variables are lifted in advance.
-
- Here's an example of what it does:
-
-#+BEGIN_SRC js
-function f(a, b, c, d, e) {
- var q;
- var w;
- w = 10;
- q = 20;
- for (var i = 1; i < 10; ++i) {
- var boo = foo(a);
- }
- for (var i = 0; i < 1; ++i) {
- var boo = bar(c);
- }
- function foo(){ ... }
- function bar(){ ... }
- function baz(){ ... }
-}
-
-// transforms into ==>
-
-function f(a, b, c) {
- var i, boo, w = 10, q = 20;
- for (i = 1; i < 10; ++i) {
- boo = foo(a);
- }
- for (i = 0; i < 1; ++i) {
- boo = bar(c);
- }
- function foo() { ... }
- function bar() { ... }
-}
-#+END_SRC
-
-- =pro.ast_mangle(ast, options)= -- generates a new AST containing mangled
- (compressed) variable and function names. It supports the following
- options:
-
- - =toplevel= -- mangle toplevel names (by default we don't touch them).
- - =except= -- an array of names to exclude from compression.
- - =defines= -- an object with properties named after symbols to
- replace (see the =--define= option for the script) and the values
- representing the AST replacement value.
-
-- =pro.ast_squeeze(ast, options)= -- employs further optimizations designed
- to reduce the size of the code that =gen_code= would generate from the
- AST. Returns a new AST. =options= can be a hash; the supported options
- are:
-
- - =make_seqs= (default true) which will cause consecutive statements in a
- block to be merged using the "sequence" (comma) operator
-
- - =dead_code= (default true) which will remove unreachable code.
-
-- =pro.gen_code(ast, options)= -- generates JS code from the AST. By
- default it's minified, but using the =options= argument you can get nicely
- formatted output. =options= is, well, optional :-) and if you pass it it
- must be an object and supports the following properties (below you can see
- the default values):
-
- - =beautify: false= -- pass =true= if you want indented output
- - =indent_start: 0= (only applies when =beautify= is =true=) -- initial
- indentation in spaces
- - =indent_level: 4= (only applies when =beautify= is =true=) --
- indentation level, in spaces (pass an even number)
- - =quote_keys: false= -- if you pass =true= it will quote all keys in
- literal objects
- - =space_colon: false= (only applies when =beautify= is =true=) -- wether
- to put a space before the colon in object literals
- - =ascii_only: false= -- pass =true= if you want to encode non-ASCII
- characters as =\uXXXX=.
- - =inline_script: false= -- pass =true= to escape occurrences of
- =</script= in strings
-
-*** Beautifier shortcoming -- no more comments
-
-The beautifier can be used as a general purpose indentation tool. It's
-useful when you want to make a minified file readable. One limitation,
-though, is that it discards all comments, so you don't really want to use it
-to reformat your code, unless you don't have, or don't care about, comments.
-
-In fact it's not the beautifier who discards comments --- they are dumped at
-the parsing stage, when we build the initial AST. Comments don't really
-make sense in the AST, and while we could add nodes for them, it would be
-inconvenient because we'd have to add special rules to ignore them at all
-the processing stages.
-
-*** Use as a code pre-processor
-
-The =--define= option can be used, particularly when combined with the
-constant folding logic, as a form of pre-processor to enable or remove
-particular constructions, such as might be used for instrumenting
-development code, or to produce variations aimed at a specific
-platform.
-
-The code below illustrates the way this can be done, and how the
-symbol replacement is performed.
-
-#+BEGIN_SRC js
-CLAUSE1: if (typeof DEVMODE === 'undefined') {
- DEVMODE = true;
-}
-
-CLAUSE2: function init() {
- if (DEVMODE) {
- console.log("init() called");
- }
- ....
- DEVMODE && console.log("init() complete");
-}
-
-CLAUSE3: function reportDeviceStatus(device) {
- var DEVMODE = device.mode, DEVNAME = device.name;
- if (DEVMODE === 'open') {
- ....
- }
-}
-#+END_SRC
-
-When the above code is normally executed, the undeclared global
-variable =DEVMODE= will be assigned the value *true* (see =CLAUSE1=)
-and so the =init()= function (=CLAUSE2=) will write messages to the
-console log when executed, but in =CLAUSE3= a locally declared
-variable will mask access to the =DEVMODE= global symbol.
-
-If the above code is processed by UglifyJS with an argument of
-=--define DEVMODE=false= then UglifyJS will replace =DEVMODE= with the
-boolean constant value *false* within =CLAUSE1= and =CLAUSE2=, but it
-will leave =CLAUSE3= as it stands because there =DEVMODE= resolves to
-a validly declared variable.
-
-And more so, the constant-folding features of UglifyJS will recognise
-that the =if= condition of =CLAUSE1= is thus always false, and so will
-remove the test and body of =CLAUSE1= altogether (including the
-otherwise slightly problematical statement =false = true;= which it
-will have formed by replacing =DEVMODE= in the body). Similarly,
-within =CLAUSE2= both calls to =console.log()= will be removed
-altogether.
-
-In this way you can mimic, to a limited degree, the functionality of
-the C/C++ pre-processor to enable or completely remove blocks
-depending on how certain symbols are defined - perhaps using UglifyJS
-to generate different versions of source aimed at different
-environments
-
-It is recommmended (but not made mandatory) that symbols designed for
-this purpose are given names consisting of =UPPER_CASE_LETTERS= to
-distinguish them from other (normal) symbols and avoid the sort of
-clash that =CLAUSE3= above illustrates.
-
-** Compression -- how good is it?
-
-Here are updated statistics. (I also updated my Google Closure and YUI
-installations).
-
-We're still a lot better than YUI in terms of compression, though slightly
-slower. We're still a lot faster than Closure, and compression after gzip
-is comparable.
-
-| File | UglifyJS | UglifyJS+gzip | Closure | Closure+gzip | YUI | YUI+gzip |
-|-----------------------------+------------------+---------------+------------------+--------------+------------------+----------|
-| jquery-1.6.2.js | 91001 (0:01.59) | 31896 | 90678 (0:07.40) | 31979 | 101527 (0:01.82) | 34646 |
-| paper.js | 142023 (0:01.65) | 43334 | 134301 (0:07.42) | 42495 | 173383 (0:01.58) | 48785 |
-| prototype.js | 88544 (0:01.09) | 26680 | 86955 (0:06.97) | 26326 | 92130 (0:00.79) | 28624 |
-| thelib-full.js (DynarchLIB) | 251939 (0:02.55) | 72535 | 249911 (0:09.05) | 72696 | 258869 (0:01.94) | 76584 |
-
-** Bugs?
-
-Unfortunately, for the time being there is no automated test suite. But I
-ran the compressor manually on non-trivial code, and then I tested that the
-generated code works as expected. A few hundred times.
-
-DynarchLIB was started in times when there was no good JS minifier.
-Therefore I was quite religious about trying to write short code manually,
-and as such DL contains a lot of syntactic hacks[1] such as “foo == bar ? a
-= 10 : b = 20”, though the more readable version would clearly be to use
-“if/else”.
-
-Since the parser/compressor runs fine on DL and jQuery, I'm quite confident
-that it's solid enough for production use. If you can identify any bugs,
-I'd love to hear about them ([[http://groups.google.com/group/uglifyjs][use the Google Group]] or email me directly).
-
-[1] I even reported a few bugs and suggested some fixes in the original
- [[http://marijn.haverbeke.nl/parse-js/][parse-js]] library, and Marijn pushed fixes literally in minutes.
-
-** Links
-
-- Twitter: [[http://twitter.com/UglifyJS][@UglifyJS]]
-- Project at GitHub: [[http://github.com/mishoo/UglifyJS][http://github.com/mishoo/UglifyJS]]
-- Google Group: [[http://groups.google.com/group/uglifyjs][http://groups.google.com/group/uglifyjs]]
-- Common Lisp JS parser: [[http://marijn.haverbeke.nl/parse-js/][http://marijn.haverbeke.nl/parse-js/]]
-- JS-to-Lisp compiler: [[http://github.com/marijnh/js][http://github.com/marijnh/js]]
-- Common Lisp JS uglifier: [[http://github.com/mishoo/cl-uglify-js][http://github.com/mishoo/cl-uglify-js]]
-
-** License
-
-UglifyJS is released under the BSD license:
-
-#+BEGIN_EXAMPLE
-Copyright 2010 (c) Mihai Bazon <mi...@gmail.com>
-Based on parse-js (http://marijn.haverbeke.nl/parse-js/).
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
- * Redistributions of source code must retain the above
- copyright notice, this list of conditions and the following
- disclaimer.
-
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials
- provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-#+END_EXAMPLE
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/19cf42ee/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/bin/uglifyjs
----------------------------------------------------------------------
diff --git a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/bin/uglifyjs b/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/bin/uglifyjs
deleted file mode 100755
index 407c9db..0000000
--- a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/bin/uglifyjs
+++ /dev/null
@@ -1,317 +0,0 @@
-#! /usr/bin/env node
-// -*- js -*-
-
-global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");
-var fs = require("fs");
-var uglify = require("uglify-js"), // symlink ~/.node_libraries/uglify-js.js to ../uglify-js.js
- jsp = uglify.parser,
- pro = uglify.uglify;
-
-var options = {
- ast: false,
- mangle: true,
- mangle_toplevel: false,
- squeeze: true,
- make_seqs: true,
- dead_code: true,
- verbose: false,
- show_copyright: true,
- out_same_file: false,
- max_line_length: 32 * 1024,
- unsafe: false,
- reserved_names: null,
- defines: { },
- lift_vars: false,
- codegen_options: {
- ascii_only: false,
- beautify: false,
- indent_level: 4,
- indent_start: 0,
- quote_keys: false,
- space_colon: false,
- inline_script: false
- },
- make: false,
- output: true // stdout
-};
-
-var args = jsp.slice(process.argv, 2);
-var filename;
-
-out: while (args.length > 0) {
- var v = args.shift();
- switch (v) {
- case "-b":
- case "--beautify":
- options.codegen_options.beautify = true;
- break;
- case "-i":
- case "--indent":
- options.codegen_options.indent_level = args.shift();
- break;
- case "-q":
- case "--quote-keys":
- options.codegen_options.quote_keys = true;
- break;
- case "-mt":
- case "--mangle-toplevel":
- options.mangle_toplevel = true;
- break;
- case "--no-mangle":
- case "-nm":
- options.mangle = false;
- break;
- case "--no-squeeze":
- case "-ns":
- options.squeeze = false;
- break;
- case "--no-seqs":
- options.make_seqs = false;
- break;
- case "--no-dead-code":
- options.dead_code = false;
- break;
- case "--no-copyright":
- case "-nc":
- options.show_copyright = false;
- break;
- case "-o":
- case "--output":
- options.output = args.shift();
- break;
- case "--overwrite":
- options.out_same_file = true;
- break;
- case "-v":
- case "--verbose":
- options.verbose = true;
- break;
- case "--ast":
- options.ast = true;
- break;
- case "--unsafe":
- options.unsafe = true;
- break;
- case "--max-line-len":
- options.max_line_length = parseInt(args.shift(), 10);
- break;
- case "--reserved-names":
- options.reserved_names = args.shift().split(",");
- break;
- case "--lift-vars":
- options.lift_vars = true;
- break;
- case "-d":
- case "--define":
- var defarg = args.shift();
- try {
- var defsym = function(sym) {
- // KEYWORDS_ATOM doesn't include NaN or Infinity - should we check
- // for them too ?? We don't check reserved words and the like as the
- // define values are only substituted AFTER parsing
- if (jsp.KEYWORDS_ATOM.hasOwnProperty(sym)) {
- throw "Don't define values for inbuilt constant '"+sym+"'";
- }
- return sym;
- },
- defval = function(v) {
- if (v.match(/^"(.*)"$/) || v.match(/^'(.*)'$/)) {
- return [ "string", RegExp.$1 ];
- }
- else if (!isNaN(parseFloat(v))) {
- return [ "num", parseFloat(v) ];
- }
- else if (v.match(/^[a-z\$_][a-z\$_0-9]*$/i)) {
- return [ "name", v ];
- }
- else if (!v.match(/"/)) {
- return [ "string", v ];
- }
- else if (!v.match(/'/)) {
- return [ "string", v ];
- }
- throw "Can't understand the specified value: "+v;
- };
- if (defarg.match(/^([a-z_\$][a-z_\$0-9]*)(=(.*))?$/i)) {
- var sym = defsym(RegExp.$1),
- val = RegExp.$2 ? defval(RegExp.$2.substr(1)) : [ 'name', 'true' ];
- options.defines[sym] = val;
- }
- else {
- throw "The --define option expects SYMBOL[=value]";
- }
- } catch(ex) {
- sys.print("ERROR: In option --define "+defarg+"\n"+ex+"\n");
- process.exit(1);
- }
- break;
- case "--define-from-module":
- var defmodarg = args.shift(),
- defmodule = require(defmodarg),
- sym,
- val;
- for (sym in defmodule) {
- if (defmodule.hasOwnProperty(sym)) {
- options.defines[sym] = function(val) {
- if (typeof val == "string")
- return [ "string", val ];
- if (typeof val == "number")
- return [ "num", val ];
- if (val === true)
- return [ 'name', 'true' ];
- if (val === false)
- return [ 'name', 'false' ];
- if (val === null)
- return [ 'name', 'null' ];
- if (val === undefined)
- return [ 'name', 'undefined' ];
- sys.print("ERROR: In option --define-from-module "+defmodarg+"\n");
- sys.print("ERROR: Unknown object type for: "+sym+"="+val+"\n");
- process.exit(1);
- return null;
- }(defmodule[sym]);
- }
- }
- break;
- case "--ascii":
- options.codegen_options.ascii_only = true;
- break;
- case "--make":
- options.make = true;
- break;
- case "--inline-script":
- options.codegen_options.inline_script = true;
- break;
- default:
- filename = v;
- break out;
- }
-}
-
-if (options.verbose) {
- pro.set_logger(function(msg){
- sys.debug(msg);
- });
-}
-
-jsp.set_logger(function(msg){
- sys.debug(msg);
-});
-
-if (options.make) {
- options.out_same_file = false; // doesn't make sense in this case
- var makefile = JSON.parse(fs.readFileSync(filename || "Makefile.uglify.js").toString());
- output(makefile.files.map(function(file){
- var code = fs.readFileSync(file.name);
- if (file.module) {
- code = "!function(exports, global){global = this;\n" + code + "\n;this." + file.module + " = exports;}({})";
- }
- else if (file.hide) {
- code = "(function(){" + code + "}());";
- }
- return squeeze_it(code);
- }).join("\n"));
-}
-else if (filename) {
- fs.readFile(filename, "utf8", function(err, text){
- if (err) throw err;
- output(squeeze_it(text));
- });
-}
-else {
- var stdin = process.openStdin();
- stdin.setEncoding("utf8");
- var text = "";
- stdin.on("data", function(chunk){
- text += chunk;
- });
- stdin.on("end", function() {
- output(squeeze_it(text));
- });
-}
-
-function output(text) {
- var out;
- if (options.out_same_file && filename)
- options.output = filename;
- if (options.output === true) {
- out = process.stdout;
- } else {
- out = fs.createWriteStream(options.output, {
- flags: "w",
- encoding: "utf8",
- mode: 0644
- });
- }
- out.write(text + ";");
- if (options.output !== true) {
- out.end();
- }
-};
-
-// --------- main ends here.
-
-function show_copyright(comments) {
- var ret = "";
- for (var i = 0; i < comments.length; ++i) {
- var c = comments[i];
- if (c.type == "comment1") {
- ret += "//" + c.value + "\n";
- } else {
- ret += "/*" + c.value + "*/";
- }
- }
- return ret;
-};
-
-function squeeze_it(code) {
- var result = "";
- if (options.show_copyright) {
- var tok = jsp.tokenizer(code), c;
- c = tok();
- result += show_copyright(c.comments_before);
- }
- try {
- var ast = time_it("parse", function(){ return jsp.parse(code); });
- if (options.lift_vars) {
- ast = time_it("lift", function(){ return pro.ast_lift_variables(ast); });
- }
- if (options.mangle) ast = time_it("mangle", function(){
- return pro.ast_mangle(ast, {
- toplevel: options.mangle_toplevel,
- defines: options.defines,
- except: options.reserved_names
- });
- });
- if (options.squeeze) ast = time_it("squeeze", function(){
- ast = pro.ast_squeeze(ast, {
- make_seqs : options.make_seqs,
- dead_code : options.dead_code,
- keep_comps : !options.unsafe
- });
- if (options.unsafe)
- ast = pro.ast_squeeze_more(ast);
- return ast;
- });
- if (options.ast)
- return sys.inspect(ast, null, null);
- result += time_it("generate", function(){ return pro.gen_code(ast, options.codegen_options) });
- if (!options.codegen_options.beautify && options.max_line_length) {
- result = time_it("split", function(){ return pro.split_lines(result, options.max_line_length) });
- }
- return result;
- } catch(ex) {
- sys.debug(ex.stack);
- sys.debug(sys.inspect(ex));
- sys.debug(JSON.stringify(ex));
- process.exit(1);
- }
-};
-
-function time_it(name, cont) {
- if (!options.verbose)
- return cont();
- var t1 = new Date().getTime();
- try { return cont(); }
- finally { sys.debug("// " + name + ": " + ((new Date().getTime() - t1) / 1000).toFixed(3) + " sec."); }
-};
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/19cf42ee/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/docstyle.css
----------------------------------------------------------------------
diff --git a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/docstyle.css b/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/docstyle.css
deleted file mode 100644
index 412481f..0000000
--- a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/docstyle.css
+++ /dev/null
@@ -1,75 +0,0 @@
-html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }
-body { max-width: 60em; }
-.title { text-align: center; }
-.todo { color: red; }
-.done { color: green; }
-.tag { background-color:lightblue; font-weight:normal }
-.target { }
-.timestamp { color: grey }
-.timestamp-kwd { color: CadetBlue }
-p.verse { margin-left: 3% }
-pre {
- border: 1pt solid #AEBDCC;
- background-color: #F3F5F7;
- padding: 5pt;
- font-family: monospace;
- font-size: 90%;
- overflow:auto;
-}
-pre.src {
- background-color: #eee; color: #112; border: 1px solid #000;
-}
-table { border-collapse: collapse; }
-td, th { vertical-align: top; }
-dt { font-weight: bold; }
-div.figure { padding: 0.5em; }
-div.figure p { text-align: center; }
-.linenr { font-size:smaller }
-.code-highlighted {background-color:#ffff00;}
-.org-info-js_info-navigation { border-style:none; }
-#org-info-js_console-label { font-size:10px; font-weight:bold;
- white-space:nowrap; }
-.org-info-js_search-highlight {background-color:#ffff00; color:#000000;
- font-weight:bold; }
-
-sup {
- vertical-align: baseline;
- position: relative;
- top: -0.5em;
- font-size: 80%;
-}
-
-sup a:link, sup a:visited {
- text-decoration: none;
- color: #c00;
-}
-
-sup a:before { content: "["; color: #999; }
-sup a:after { content: "]"; color: #999; }
-
-h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }
-
-#postamble {
- color: #777;
- font-size: 90%;
- padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;
- margin-top: 2em;
- padding-left: 2em;
- padding-right: 2em;
- text-align: right;
-}
-
-#postamble p { margin: 0; }
-
-#footnotes { border-top: 1px solid #000; }
-
-h1 { font-size: 200% }
-h2 { font-size: 175% }
-h3 { font-size: 150% }
-h4 { font-size: 125% }
-
-h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }
-
-@media print {
- html { font-size: 11pt; }
-}
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/19cf42ee/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/lib/object-ast.js
----------------------------------------------------------------------
diff --git a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/lib/object-ast.js b/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/lib/object-ast.js
deleted file mode 100644
index afdb69f..0000000
--- a/node_modules/nodeunit/node_modules/tap/node_modules/runforcover/node_modules/bunker/node_modules/burrito/node_modules/uglify-js/lib/object-ast.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var jsp = require("./parse-js"),
- pro = require("./process");
-
-var BY_TYPE = {};
-
-function HOP(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
-};
-
-function AST_Node(parent) {
- this.parent = parent;
-};
-
-AST_Node.prototype.init = function(){};
-
-function DEFINE_NODE_CLASS(type, props, methods) {
- var base = methods && methods.BASE || AST_Node;
- if (!base) base = AST_Node;
- function D(parent, data) {
- base.apply(this, arguments);
- if (props) props.forEach(function(name, i){
- this["_" + name] = data[i];
- });
- this.init();
- };
- var P = D.prototype = new AST_Node;
- P.node_type = function(){ return type };
- if (props) props.forEach(function(name){
- var propname = "_" + name;
- P["set_" + name] = function(val) {
- this[propname] = val;
- return this;
- };
- P["get_" + name] = function() {
- return this[propname];
- };
- });
- if (type != null) BY_TYPE[type] = D;
- if (methods) for (var i in methods) if (HOP(methods, i)) {
- P[i] = methods[i];
- }
- return D;
-};
-
-var AST_String_Node = DEFINE_NODE_CLASS("string", ["value"]);
-var AST_Number_Node = DEFINE_NODE_CLASS("num", ["value"]);
-var AST_Name_Node = DEFINE_NODE_CLASS("name", ["value"]);
-
-var AST_Statlist_Node = DEFINE_NODE_CLASS(null, ["body"]);
-var AST_Root_Node = DEFINE_NODE_CLASS("toplevel", null, { BASE: AST_Statlist_Node });
-var AST_Block_Node = DEFINE_NODE_CLASS("block", null, { BASE: AST_Statlist_Node });
-var AST_Splice_Node = DEFINE_NODE_CLASS("splice", null, { BASE: AST_Statlist_Node });
-
-var AST_Var_Node = DEFINE_NODE_CLASS("var", ["definitions"]);
-var AST_Const_Node = DEFINE_NODE_CLASS("const", ["definitions"]);
-
-var AST_Try_Node = DEFINE_NODE_CLASS("try", ["body", "catch", "finally"]);
-var AST_Throw_Node = DEFINE_NODE_CLASS("throw", ["exception"]);
-
-var AST_New_Node = DEFINE_NODE_CLASS("new", ["constructor", "arguments"]);
-
-var AST_Switch_Node = DEFINE_NODE_CLASS("switch", ["expression", "branches"]);
-var AST_Switch_Branch_Node = DEFINE_NODE_CLASS(null, ["expression", "body"]);
-
-var AST_Break_Node = DEFINE_NODE_CLASS("break", ["label"]);
-var AST_Continue_Node = DEFINE_NODE_CLASS("continue", ["label"]);
-var AST_Assign_Node = DEFINE_NODE_CLASS("assign", ["operator", "lvalue", "rvalue"]);
-var AST_Dot_Node = DEFINE_NODE_CLASS("dot", ["expression", "name"]);
-var AST_Call_Node = DEFINE_NODE_CLASS("call", ["function", "arguments"]);
-
-var AST_Lambda_Node = DEFINE_NODE_CLASS(null, ["name", "arguments", "body"])
-var AST_Function_Node = DEFINE_NODE_CLASS("function", null, AST_Lambda_Node);
-var AST_Defun_Node = DEFINE_NODE_CLASS("defun", null, AST_Lambda_Node);
-
-var AST_If_Node = DEFINE_NODE_CLASS("if", ["condition", "then", "else"]);