sprockets-browserify 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1278) hide show
  1. checksums.yaml +14 -6
  2. data/lib/sprockets/browserify.rb +7 -3
  3. data/node_modules/browserify/README.markdown +366 -107
  4. data/node_modules/browserify/{node_modules/resolve/test/resolver/baz/doom.js → _empty.js} +0 -0
  5. data/node_modules/browserify/bin/advanced.txt +36 -0
  6. data/node_modules/browserify/bin/args.js +116 -0
  7. data/node_modules/browserify/bin/cmd.js +56 -145
  8. data/node_modules/browserify/bin/usage.txt +32 -0
  9. data/node_modules/browserify/example/api/browser/bar.js +1 -0
  10. data/node_modules/browserify/example/api/browser/foo.js +5 -0
  11. data/node_modules/browserify/example/api/browser/main.js +2 -0
  12. data/node_modules/browserify/example/api/build.js +4 -0
  13. data/node_modules/browserify/example/multiple_bundles/beep.js +2 -0
  14. data/node_modules/browserify/example/multiple_bundles/boop.js +2 -0
  15. data/node_modules/browserify/example/multiple_bundles/build.sh +4 -0
  16. data/node_modules/browserify/example/multiple_bundles/robot.js +1 -0
  17. data/node_modules/browserify/example/multiple_bundles/static/beep.html +2 -0
  18. data/node_modules/browserify/example/multiple_bundles/static/beep.js +6 -0
  19. data/node_modules/browserify/example/multiple_bundles/static/boop.html +2 -0
  20. data/node_modules/browserify/example/multiple_bundles/static/boop.js +6 -0
  21. data/node_modules/browserify/example/multiple_bundles/static/common.js +3 -0
  22. data/node_modules/browserify/example/source_maps/build.js +10 -0
  23. data/node_modules/browserify/example/source_maps/build.sh +4 -0
  24. data/node_modules/browserify/example/source_maps/index.html +11 -0
  25. data/node_modules/browserify/example/source_maps/js/foo.js +7 -0
  26. data/node_modules/browserify/example/source_maps/js/main.js +4 -0
  27. data/node_modules/browserify/example/source_maps/js/wunder/bar.js +8 -0
  28. data/node_modules/browserify/index.js +319 -156
  29. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/LICENSE.APACHE2 +0 -0
  30. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/LICENSE.MIT +0 -0
  31. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/examples/all_docs.js +0 -0
  32. data/node_modules/browserify/node_modules/JSONStream/index.js +191 -0
  33. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/LICENSE +0 -0
  34. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/README.markdown +0 -0
  35. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/bench.js +0 -0
  36. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/examples/twitterfeed.js +0 -0
  37. data/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +401 -0
  38. data/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/package.json +34 -0
  39. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/samplejson/basic.json +0 -0
  40. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/samplejson/basic2.json +0 -0
  41. data/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js +110 -0
  42. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/test/primitives.js +0 -0
  43. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/test/utf8.js +0 -0
  44. data/node_modules/browserify/node_modules/JSONStream/package.json +36 -0
  45. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/readme.markdown +0 -0
  46. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/bool.js +0 -0
  47. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/destroy_missing.js +0 -0
  48. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/empty.js +0 -0
  49. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/fixtures/all_npm.json +0 -0
  50. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/fn.js +0 -0
  51. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/multiple_objects.js +0 -0
  52. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/multiple_objects_error.js +0 -0
  53. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/parsejson.js +0 -0
  54. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/stringify.js +0 -0
  55. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/stringify_object.js +0 -0
  56. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/test.js +0 -0
  57. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/test2.js +0 -0
  58. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/two-ways.js +0 -0
  59. data/node_modules/browserify/node_modules/{resolve → browser-pack}/LICENSE +0 -0
  60. data/node_modules/browserify/node_modules/browser-pack/cmd.js +4 -0
  61. data/node_modules/browserify/node_modules/browser-pack/example/input.json +13 -0
  62. data/node_modules/browserify/node_modules/browser-pack/example/output.js +1 -0
  63. data/node_modules/browserify/node_modules/browser-pack/example/sourcemap/input.json +15 -0
  64. data/node_modules/browserify/node_modules/browser-pack/example/sourcemap/output.js +6 -0
  65. data/node_modules/browserify/node_modules/browser-pack/index.js +79 -0
  66. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/LICENSE +23 -0
  67. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/README.md +111 -0
  68. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/example/two-files-short.js +26 -0
  69. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/example/two-files.js +47 -0
  70. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/index.js +97 -0
  71. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE +23 -0
  72. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/README.md +85 -0
  73. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/example/comment-to-json.js +15 -0
  74. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/index.js +89 -0
  75. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/package.json +33 -0
  76. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/test/comment-regex.js +25 -0
  77. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/test/convert-source-map.js +129 -0
  78. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/LICENSE +23 -0
  79. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/README.md +88 -0
  80. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/example/foo-bar.js +8 -0
  81. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/index.js +127 -0
  82. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/CHANGELOG.md +58 -0
  83. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/LICENSE +0 -0
  84. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/Makefile.dryice.js +166 -0
  85. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/README.md +347 -0
  86. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/assert-shim.js +0 -0
  87. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/mini-require.js +0 -0
  88. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  89. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/prefix-utils.jsm +18 -0
  90. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/suffix-browser.js +0 -0
  91. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  92. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/suffix-utils.jsm +21 -0
  93. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/test-prefix.js +0 -0
  94. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/test-suffix.js +0 -0
  95. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/array-set.js +96 -0
  96. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map/base64-vlq.js +0 -0
  97. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map/base64.js +0 -0
  98. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map/binary-search.js +0 -0
  99. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/source-map-consumer.js +426 -0
  100. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  101. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/source-node.js +353 -0
  102. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/util.js +91 -0
  103. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map.js +0 -0
  104. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/node_modules/amdefine/LICENSE +0 -0
  105. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  106. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  107. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  108. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/package.json +74 -0
  109. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/run-tests.js +73 -0
  110. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-api.js +0 -0
  111. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-array-set.js +0 -0
  112. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -0
  113. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-base64.js +0 -0
  114. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-binary-search.js +0 -0
  115. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -0
  116. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/test-source-map-consumer.js +291 -0
  117. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  118. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  119. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/util.js +152 -0
  120. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/package.json +42 -0
  121. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/test/inline-source-map.js +247 -0
  122. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/test/source-content.js +129 -0
  123. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/LICENSE +23 -0
  124. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/MOZILLA_LICENSE +28 -0
  125. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/README.md +35 -0
  126. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/base64-vlq.js +108 -0
  127. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/base64.js +35 -0
  128. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/example/one-to-one-mappings.js +5 -0
  129. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/index.js +82 -0
  130. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/package.json +39 -0
  131. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/test/parse-base64vlq-mappings.js +72 -0
  132. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/package.json +45 -0
  133. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/test/combine-source-map.js +143 -0
  134. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/README.html +1012 -0
  135. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/README.org +593 -0
  136. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/bin/uglifyjs +334 -0
  137. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/docstyle.css +75 -0
  138. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/consolidator.js +1220 -0
  139. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/parse-js.js +1369 -0
  140. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/process.js +2117 -0
  141. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/squeeze-more.js +78 -0
  142. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/package.json +28 -0
  143. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/beautify.js +28 -0
  144. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/testconsolidator.js +1391 -0
  145. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/testparser.js +409 -0
  146. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/1e21.js +1 -0
  147. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  148. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  149. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  150. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  151. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  152. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  153. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  154. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/div-with-regexp.js +1 -0
  155. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  156. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  157. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/if-not.js +1 -0
  158. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  159. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  160. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  161. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/infinite.js +1 -0
  162. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  163. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  164. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  165. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  166. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  167. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  168. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  169. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  170. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  171. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  172. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue278.js +1 -0
  173. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  174. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  175. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  176. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  177. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue349.js +1 -0
  178. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue353.js +1 -0
  179. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue372.js +1 -0
  180. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  181. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  182. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  183. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  184. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  185. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  186. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  187. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  188. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issues222_324.js +1 -0
  189. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  190. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/null_string.js +1 -0
  191. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  192. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  193. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/whitespace.js +1 -0
  194. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  195. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/1e21.js +1 -0
  196. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  197. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  198. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  199. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  200. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  201. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  202. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  203. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/div-with-regexp.js +1 -0
  204. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  205. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  206. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/if-not.js +1 -0
  207. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  208. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  209. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  210. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/infinite.js +1 -0
  211. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  212. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  213. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  214. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  215. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  216. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  217. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  218. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  219. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  220. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  221. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue278.js +1 -0
  222. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  223. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  224. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  225. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  226. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue349.js +25 -0
  227. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue353.js +4 -0
  228. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue372.js +32 -0
  229. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  230. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  231. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  232. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  233. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  234. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  235. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  236. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  237. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issues222_324.js +82 -0
  238. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  239. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/null_string.js +1 -0
  240. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  241. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  242. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/whitespace.js +21 -0
  243. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  244. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/scripts.js +57 -0
  245. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/hoist.js +33 -0
  246. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/instrument.js +97 -0
  247. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/test.js +30 -0
  248. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/uglify-js.js +18 -0
  249. data/node_modules/browserify/node_modules/browser-pack/package.json +63 -0
  250. data/node_modules/browserify/node_modules/browser-pack/prelude.js +42 -0
  251. data/node_modules/browserify/node_modules/browser-pack/readme.markdown +85 -0
  252. data/node_modules/browserify/node_modules/browser-pack/test/comment.js +33 -0
  253. data/node_modules/browserify/node_modules/browser-pack/test/only_execute_entries.js +26 -0
  254. data/node_modules/browserify/node_modules/browser-pack/test/order.js +38 -0
  255. data/node_modules/browserify/node_modules/browser-pack/test/pack.js +28 -0
  256. data/node_modules/browserify/node_modules/browser-pack/test/raw.js +32 -0
  257. data/node_modules/browserify/node_modules/browser-pack/test/source-maps-existing.js +56 -0
  258. data/node_modules/browserify/node_modules/browser-pack/test/source-maps.js +113 -0
  259. data/node_modules/browserify/node_modules/browser-pack/test/this.js +24 -0
  260. data/node_modules/browserify/node_modules/browser-resolve/README.md +115 -0
  261. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/assert.js +0 -0
  262. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/child_process.js +0 -0
  263. data/node_modules/browserify/node_modules/{resolve/test/resolver/mug.coffee → browser-resolve/builtin/dgram.js} +0 -0
  264. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/builtin/events.js +0 -0
  265. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/fs.js +0 -0
  266. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/builtin/https.js +0 -0
  267. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/net.js +0 -0
  268. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/path.js +0 -0
  269. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/builtin/process.js +0 -0
  270. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/querystring.js +0 -0
  271. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/stream.js +0 -0
  272. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/string_decoder.js +0 -0
  273. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/sys.js +0 -0
  274. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/timers.js +0 -0
  275. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/tls.js +0 -0
  276. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/tty.js +0 -0
  277. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/url.js +0 -0
  278. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/util.js +0 -0
  279. data/node_modules/browserify/node_modules/{resolve/test/resolver/mug.js → browser-resolve/empty.js} +0 -0
  280. data/node_modules/browserify/node_modules/browser-resolve/example/builtin.js +4 -0
  281. data/node_modules/browserify/node_modules/browser-resolve/example/custom/custom.js +1 -0
  282. data/node_modules/browserify/node_modules/browser-resolve/example/custom/main.js +1 -0
  283. data/node_modules/browserify/node_modules/browser-resolve/example/custom/package.json +7 -0
  284. data/node_modules/browserify/node_modules/browser-resolve/example/custom.js +5 -0
  285. data/node_modules/browserify/node_modules/browser-resolve/example/resolve.js +4 -0
  286. data/node_modules/browserify/node_modules/browser-resolve/example/skip/main.js +9 -0
  287. data/node_modules/browserify/node_modules/browser-resolve/example/skip/package.json +7 -0
  288. data/node_modules/browserify/node_modules/browser-resolve/example/skip.js +5 -0
  289. data/node_modules/browserify/node_modules/browser-resolve/index.js +170 -0
  290. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/README.md +0 -0
  291. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/buffer_ieee754.js +0 -0
  292. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/index.js +0 -0
  293. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/README.md +0 -0
  294. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/lib/b64.js +0 -0
  295. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/package.json +0 -0
  296. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/test/runner.js +0 -0
  297. data/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/package.json +42 -0
  298. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/test/buffer.js +0 -0
  299. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/LICENCE +0 -0
  300. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/README.md +0 -0
  301. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/index.js +0 -0
  302. data/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/package.json +76 -0
  303. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/test/index.js +0 -0
  304. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/test/static/index.html +0 -0
  305. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/test/static/test-adapter.js +0 -0
  306. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/example/bundle.js +0 -0
  307. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/example/index.html +0 -0
  308. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/example/test.js +0 -0
  309. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/index.js +0 -0
  310. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/md5.js +0 -0
  311. data/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/package.json +30 -0
  312. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/readme.markdown +0 -0
  313. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/rng.js +0 -0
  314. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/sha.js +0 -0
  315. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/test/simple.js +0 -0
  316. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/get/index.html +0 -0
  317. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/get/main.js +0 -0
  318. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/get/server.js +0 -0
  319. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/headers/index.html +0 -0
  320. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/headers/main.js +0 -0
  321. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/headers/server.js +0 -0
  322. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/data.json +0 -0
  323. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/index.html +0 -0
  324. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/main.js +0 -0
  325. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/LICENSE.APACHE2 +0 -0
  326. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/LICENSE.MIT +0 -0
  327. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/examples/all_docs.js +0 -0
  328. data/node_modules/{JSONStream → browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream}/index.js +0 -0
  329. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/LICENSE +0 -0
  330. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/README.markdown +0 -0
  331. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/bench.js +0 -0
  332. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js +0 -0
  333. data/node_modules/{JSONStream → browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream}/node_modules/jsonparse/jsonparse.js +0 -0
  334. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/package.json +0 -0
  335. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json +0 -0
  336. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json +0 -0
  337. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js +0 -0
  338. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js +0 -0
  339. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/package.json +0 -0
  340. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/readme.markdown +0 -0
  341. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/bool.js +0 -0
  342. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/destroy_missing.js +0 -0
  343. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/empty.js +0 -0
  344. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/fixtures/all_npm.json +0 -0
  345. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/fn.js +0 -0
  346. data/node_modules/{JSONStream → browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream}/test/memory.js +0 -0
  347. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/multiple_objects.js +0 -0
  348. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/multiple_objects_error.js +0 -0
  349. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/parsejson.js +0 -0
  350. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/stringify.js +0 -0
  351. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/stringify_object.js +0 -0
  352. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/test.js +0 -0
  353. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/test2.js +0 -0
  354. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/two-ways.js +0 -0
  355. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/server.js +0 -0
  356. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/post/index.html +0 -0
  357. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/post/main.js +0 -0
  358. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/post/server.js +0 -0
  359. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/streaming/index.html +0 -0
  360. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/streaming/main.js +0 -0
  361. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/streaming/server.js +0 -0
  362. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/index.js +0 -0
  363. data/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/lib/request.js +131 -0
  364. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/lib/response.js +0 -0
  365. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/index.js +0 -0
  366. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/package.json +0 -0
  367. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/readme.md +0 -0
  368. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/test.js +0 -0
  369. data/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/package.json +42 -0
  370. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/readme.markdown +0 -0
  371. data/node_modules/{module-deps → browserify/node_modules/browser-resolve/node_modules/resolve}/LICENSE +0 -0
  372. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/example/async.js +0 -0
  373. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/example/sync.js +0 -0
  374. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/index.js +0 -0
  375. data/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/async.js +131 -0
  376. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/lib/core.js +0 -0
  377. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/lib/core.json +0 -0
  378. data/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/sync.js +99 -0
  379. data/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/package.json +32 -0
  380. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/readme.markdown +0 -0
  381. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/core.js +0 -0
  382. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/filter.js +0 -0
  383. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/filter_sync.js +0 -0
  384. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/mock.js +0 -0
  385. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/mock_sync.js +0 -0
  386. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/bar/node_modules/foo/index.js +0 -0
  387. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  388. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/baz/package.json +0 -0
  389. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/baz/quux.js +0 -0
  390. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/biz/node_modules/grux/index.js +0 -0
  391. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/biz/node_modules/tiv/index.js +0 -0
  392. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/cup.coffee +0 -0
  393. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/foo.js +0 -0
  394. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver/mug.coffee +0 -0
  395. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver/mug.js +0 -0
  396. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/other_path/lib/other-lib.js +0 -0
  397. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/other_path/root.js +0 -0
  398. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver.js +0 -0
  399. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver_sync.js +0 -0
  400. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/README.markdown +0 -0
  401. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/bundle.js +0 -0
  402. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/entry.js +0 -0
  403. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/index.html +0 -0
  404. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/server.js +0 -0
  405. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/index.js +0 -0
  406. data/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/package.json +39 -0
  407. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/testling/run.js +0 -0
  408. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/testling/test.sh +0 -0
  409. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/index.js +0 -0
  410. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/package.json +0 -0
  411. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/readme.md +0 -0
  412. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/test/zlib.test.js +0 -0
  413. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/zlib.js +0 -0
  414. data/node_modules/browserify/node_modules/browser-resolve/package.json +38 -0
  415. data/node_modules/browserify/node_modules/browser-resolve/test/core.js +28 -0
  416. data/node_modules/browserify/node_modules/browser-resolve/test/false.js +24 -0
  417. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/fixtures/foo.js +0 -0
  418. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/local.js +0 -0
  419. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/mocha.opts +0 -0
  420. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/modules.js +0 -0
  421. data/node_modules/browserify/node_modules/concat-stream/index.js +50 -0
  422. data/node_modules/browserify/node_modules/concat-stream/package.json +29 -0
  423. data/node_modules/{module-deps/node_modules/browser-resolve/node_modules/http-browserify → browserify}/node_modules/concat-stream/readme.md +0 -0
  424. data/node_modules/browserify/node_modules/concat-stream/test.js +34 -0
  425. data/node_modules/{module-deps/node_modules/browser-resolve/node_modules/console-browserify → browserify/node_modules/duplexer}/LICENCE +0 -0
  426. data/node_modules/browserify/node_modules/duplexer/Makefile +4 -0
  427. data/node_modules/browserify/node_modules/duplexer/README.md +36 -0
  428. data/node_modules/browserify/node_modules/duplexer/index.js +77 -0
  429. data/node_modules/browserify/node_modules/duplexer/package.json +42 -0
  430. data/node_modules/browserify/node_modules/duplexer/test.js +27 -0
  431. data/node_modules/browserify/node_modules/inherits/README.md +51 -0
  432. data/node_modules/browserify/node_modules/inherits/inherits.js +29 -0
  433. data/node_modules/browserify/node_modules/inherits/package.json +26 -0
  434. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals}/LICENSE +0 -0
  435. data/node_modules/browserify/node_modules/insert-module-globals/bench/results.txt +18 -0
  436. data/node_modules/browserify/node_modules/insert-module-globals/bench/run.sh +2 -0
  437. data/node_modules/browserify/node_modules/insert-module-globals/bin/cmd.js +13 -0
  438. data/node_modules/browserify/node_modules/insert-module-globals/buffer.js +3863 -0
  439. data/node_modules/browserify/node_modules/insert-module-globals/bundle.sh +4 -0
  440. data/node_modules/browserify/node_modules/insert-module-globals/example/files/foo/index.js +6 -0
  441. data/node_modules/browserify/node_modules/insert-module-globals/example/files/main.js +6 -0
  442. data/node_modules/browserify/node_modules/insert-module-globals/example/insert.js +10 -0
  443. data/node_modules/browserify/node_modules/insert-module-globals/index.js +102 -0
  444. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/README.markdown +0 -0
  445. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/example/base.js +0 -0
  446. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/example/dir.js +0 -0
  447. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/index.js +0 -0
  448. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/package.json +0 -0
  449. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/test/dirs.js +0 -0
  450. data/node_modules/{module-deps/node_modules/resolve → browserify/node_modules/insert-module-globals/node_modules/lexical-scope}/LICENSE +0 -0
  451. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/jquery.js +4 -0
  452. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/results.txt +15 -0
  453. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/run.js +7 -0
  454. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/example/detect.js +6 -0
  455. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/example/src.js +27 -0
  456. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/index.js +164 -0
  457. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/LICENSE +18 -0
  458. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/example/types.js +8 -0
  459. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/index.js +42 -0
  460. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/ChangeLog +0 -0
  461. data/node_modules/browserify/node_modules/{detective → insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/LICENSE.BSD +0 -0
  462. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/README.md +0 -0
  463. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/bin/esparse.js +0 -0
  464. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/bin/esvalidate.js +0 -0
  465. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/component.json +0 -0
  466. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/doc/index.html +0 -0
  467. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/esprima.js +0 -0
  468. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/examples/detectnestedternary.js +0 -0
  469. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/examples/findbooleantrap.js +0 -0
  470. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/examples/tokendist.js +0 -0
  471. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/index.html +0 -0
  472. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/package.json +0 -0
  473. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/benchmarks.html +0 -0
  474. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/benchmarks.js +0 -0
  475. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compare.html +0 -0
  476. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compare.js +0 -0
  477. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compat.html +0 -0
  478. data/node_modules/browserify/node_modules/{detective → insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compat.js +0 -0
  479. data/node_modules/browserify/node_modules/{detective → insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/coverage.footer.html +0 -0
  480. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/coverage.header.html +0 -0
  481. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/coverage.html +0 -0
  482. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/index.html +0 -0
  483. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/module.html +0 -0
  484. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/module.js +0 -0
  485. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/reflect.js +0 -0
  486. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/run.js +0 -0
  487. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/runner.js +0 -0
  488. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/test.js +0 -0
  489. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/package.json +50 -0
  490. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/readme.markdown +52 -0
  491. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/test/parent.js +25 -0
  492. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/package.json +61 -0
  493. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/readme.markdown +99 -0
  494. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/argument.js +17 -0
  495. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/assign_implicit.js +13 -0
  496. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/detect.js +17 -0
  497. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/argument.js +6 -0
  498. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/assign_implicit.js +2 -0
  499. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/detect.js +32 -0
  500. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/labels.js +11 -0
  501. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/multiple-exports.js +6 -0
  502. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/named_arg.js +6 -0
  503. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/obj.js +1 -0
  504. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/return_hash.js +5 -0
  505. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/right_hand.js +2 -0
  506. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/labels.js +13 -0
  507. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/multiple-exports.js +18 -0
  508. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/named_arg.js +17 -0
  509. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/obj.js +16 -0
  510. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/package.json +5 -0
  511. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/return_hash.js +13 -0
  512. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/right_hand.js +16 -0
  513. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/shebang.js +19 -0
  514. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/2132fedf7e11adbdb654aea08615ffea7b84cbf0.patch +25 -0
  515. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/README.md +15 -0
  516. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js +52 -0
  517. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/index.js +2 -0
  518. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/package.json +26 -0
  519. data/node_modules/browserify/node_modules/insert-module-globals/package.json +52 -0
  520. data/node_modules/browserify/node_modules/insert-module-globals/readme.markdown +86 -0
  521. data/node_modules/browserify/node_modules/insert-module-globals/test/always/main.js +6 -0
  522. data/node_modules/browserify/node_modules/insert-module-globals/test/always.js +23 -0
  523. data/node_modules/browserify/node_modules/insert-module-globals/test/global/filename.js +2 -0
  524. data/node_modules/browserify/node_modules/insert-module-globals/test/global/main.js +2 -0
  525. data/node_modules/browserify/node_modules/insert-module-globals/test/global.js +49 -0
  526. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/buffer.js +1 -0
  527. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/foo/buf.js +4 -0
  528. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/foo/index.js +4 -0
  529. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/main.js +4 -0
  530. data/node_modules/browserify/node_modules/insert-module-globals/test/insert.js +35 -0
  531. data/node_modules/browserify/node_modules/module-deps/LICENSE +18 -0
  532. data/node_modules/{module-deps → browserify/node_modules/module-deps}/cmd.js +0 -0
  533. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/deps.js +0 -0
  534. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/bar.js +0 -0
  535. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/foo.js +0 -0
  536. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/main.js +0 -0
  537. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/xyz.js +0 -0
  538. data/node_modules/browserify/node_modules/module-deps/index.js +195 -0
  539. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/LICENSE +18 -0
  540. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/example/strings.js +0 -0
  541. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/example/strings_src.js +0 -0
  542. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/index.js +66 -0
  543. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/LICENSE.BSD +0 -0
  544. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/LICENSE.source-map +0 -0
  545. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/README.md +0 -0
  546. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/bin/escodegen.js +0 -0
  547. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/bin/esgenerate.js +0 -0
  548. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/escodegen.js +0 -0
  549. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/CHANGELOG.md +58 -0
  550. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/LICENSE +28 -0
  551. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +166 -0
  552. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/README.md +347 -0
  553. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/assert-shim.js +56 -0
  554. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/mini-require.js +152 -0
  555. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  556. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +18 -0
  557. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js +8 -0
  558. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  559. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +21 -0
  560. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/test-prefix.js +8 -0
  561. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/test-suffix.js +3 -0
  562. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js +96 -0
  563. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  564. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js +42 -0
  565. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  566. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js +426 -0
  567. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  568. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js +353 -0
  569. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +91 -0
  570. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map.js +8 -0
  571. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  572. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  573. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  574. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +34 -0
  575. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/package.json +74 -0
  576. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/run-tests.js +73 -0
  577. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js +26 -0
  578. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  579. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  580. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js +35 -0
  581. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  582. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  583. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js +291 -0
  584. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  585. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  586. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +152 -0
  587. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/package.json +0 -0
  588. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/ChangeLog +18 -0
  589. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/esprima/LICENSE.BSD +0 -0
  590. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/README.md +73 -0
  591. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/bin/esparse.js +117 -0
  592. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/bin/esvalidate.js +177 -0
  593. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/component.json +14 -0
  594. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/doc/index.html +473 -0
  595. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/esprima.js +3895 -0
  596. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/detectnestedternary.js +106 -0
  597. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/findbooleantrap.js +173 -0
  598. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/tokendist.js +33 -0
  599. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/index.html +102 -0
  600. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/package.json +40 -0
  601. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/benchmarks.html +58 -0
  602. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/benchmarks.js +334 -0
  603. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compare.html +69 -0
  604. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compare.js +328 -0
  605. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compat.html +40 -0
  606. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/esprima/test/compat.js +0 -0
  607. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/esprima/test/coverage.footer.html +0 -0
  608. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/coverage.header.html +37 -0
  609. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/coverage.html +4676 -0
  610. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/index.html +37 -0
  611. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/module.html +36 -0
  612. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/module.js +129 -0
  613. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/reflect.js +422 -0
  614. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/run.js +66 -0
  615. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/runner.js +387 -0
  616. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/test.js +19764 -0
  617. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/package.json +36 -0
  618. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/readme.markdown +73 -0
  619. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/both.js +26 -0
  620. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/chained.js +0 -0
  621. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/both.js +0 -0
  622. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/chained.js +0 -0
  623. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/nested.js +0 -0
  624. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/test/files/shebang.js +0 -0
  625. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/sparse-array.js +3 -0
  626. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/strings.js +0 -0
  627. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/word.js +0 -0
  628. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/nested.js +0 -0
  629. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/return.js +9 -0
  630. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/test/shebang.js +0 -0
  631. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/sparse-array.js +14 -0
  632. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/strings.js +0 -0
  633. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/word.js +0 -0
  634. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/LICENSE +18 -0
  635. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/example/async.js +5 -0
  636. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/example/sync.js +3 -0
  637. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/index.js +5 -0
  638. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/async.js +131 -0
  639. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/core.js +4 -0
  640. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/core.json +38 -0
  641. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/sync.js +99 -0
  642. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/package.json +32 -0
  643. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/readme.markdown +134 -0
  644. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/core.js +0 -0
  645. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/filter.js +17 -0
  646. data/node_modules/browserify/node_modules/{resolve/test/filter.js → module-deps/node_modules/resolve/test/filter_sync.js} +0 -0
  647. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/mock.js +68 -0
  648. data/node_modules/browserify/node_modules/{resolve/test/mock.js → module-deps/node_modules/resolve/test/mock_sync.js} +0 -0
  649. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +0 -0
  650. data/node_modules/browserify/{test/wrap/x.js → node_modules/module-deps/node_modules/resolve/test/resolver/baz/doom.js} +0 -0
  651. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/baz/package.json +0 -0
  652. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/baz/quux.js +0 -0
  653. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +0 -0
  654. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +0 -0
  655. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/cup.coffee +0 -0
  656. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/foo.js +0 -0
  657. data/node_modules/{module-deps/node_modules/resolve/test/resolver/other_path/lib/other-lib.js → browserify/node_modules/module-deps/node_modules/resolve/test/resolver/mug.coffee} +0 -0
  658. data/node_modules/{module-deps/node_modules/resolve/test/resolver/other_path/root.js → browserify/node_modules/module-deps/node_modules/resolve/test/resolver/mug.js} +0 -0
  659. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  660. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  661. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver.js +144 -0
  662. data/node_modules/browserify/node_modules/{resolve/test/resolver.js → module-deps/node_modules/resolve/test/resolver_sync.js} +0 -0
  663. data/node_modules/{through → browserify/node_modules/module-deps/node_modules/through}/LICENSE.APACHE2 +0 -0
  664. data/node_modules/{through → browserify/node_modules/module-deps/node_modules/through}/LICENSE.MIT +0 -0
  665. data/node_modules/browserify/node_modules/module-deps/node_modules/through/index.js +108 -0
  666. data/node_modules/browserify/node_modules/module-deps/node_modules/through/package.json +43 -0
  667. data/node_modules/browserify/node_modules/module-deps/node_modules/through/readme.markdown +63 -0
  668. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/auto-destroy.js +30 -0
  669. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/buffering.js +71 -0
  670. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/end.js +45 -0
  671. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/index.js +114 -0
  672. data/node_modules/browserify/node_modules/module-deps/package.json +48 -0
  673. data/node_modules/browserify/node_modules/module-deps/readme.markdown +137 -0
  674. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/bundle.js +0 -0
  675. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/deps.js +0 -0
  676. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/bar.js +0 -0
  677. data/node_modules/browserify/node_modules/module-deps/test/files/filterable.js +10 -0
  678. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/foo.js +0 -0
  679. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/main.js +0 -0
  680. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/f.js +0 -0
  681. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/main.js +0 -0
  682. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/g/index.js +0 -0
  683. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/g/node_modules/insert-ggg/index.js +0 -0
  684. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/g/package.json +0 -0
  685. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/insert-aaa/index.js +0 -0
  686. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/insert-bbb/index.js +0 -0
  687. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/m/index.js +0 -0
  688. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/f.js +0 -0
  689. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/main.js +0 -0
  690. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/g/index.js +0 -0
  691. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/g/package.json +0 -0
  692. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/g/tr_g.js +0 -0
  693. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/m/index.js +0 -0
  694. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/tr_a.js +0 -0
  695. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/tr_b.js +0 -0
  696. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/xyz.js +0 -0
  697. data/node_modules/browserify/node_modules/module-deps/test/filter.js +37 -0
  698. data/node_modules/browserify/node_modules/module-deps/test/noparse.js +37 -0
  699. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/tr_fn.js +0 -0
  700. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/tr_module.js +0 -0
  701. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/tr_sh.js +0 -0
  702. data/node_modules/browserify/node_modules/optimist/README.markdown +13 -0
  703. data/node_modules/browserify/node_modules/optimist/index.js +36 -13
  704. data/node_modules/browserify/node_modules/optimist/package.json +6 -11
  705. data/node_modules/browserify/node_modules/optimist/test/dash.js +31 -0
  706. data/node_modules/browserify/node_modules/optimist/test/parse.js +13 -0
  707. data/node_modules/browserify/node_modules/optimist/test/parse_modified.js +14 -0
  708. data/node_modules/browserify/node_modules/optimist/test/short.js +16 -0
  709. data/node_modules/browserify/node_modules/optimist/test/whitespace.js +8 -0
  710. data/node_modules/browserify/node_modules/shell-quote/README.markdown +72 -0
  711. data/node_modules/browserify/node_modules/shell-quote/example/parse.js +3 -0
  712. data/node_modules/browserify/node_modules/shell-quote/example/quote.js +3 -0
  713. data/node_modules/browserify/node_modules/shell-quote/index.js +33 -0
  714. data/node_modules/browserify/node_modules/shell-quote/package.json +39 -0
  715. data/node_modules/browserify/node_modules/shell-quote/test/parse.js +14 -0
  716. data/node_modules/browserify/node_modules/shell-quote/test/quote.js +15 -0
  717. data/node_modules/browserify/node_modules/syntax-error/index.js +1 -1
  718. data/node_modules/browserify/node_modules/syntax-error/package.json +2 -2
  719. data/node_modules/browserify/node_modules/through/LICENSE.APACHE2 +15 -0
  720. data/node_modules/browserify/node_modules/through/LICENSE.MIT +24 -0
  721. data/node_modules/{through → browserify/node_modules/through}/index.js +0 -0
  722. data/node_modules/browserify/node_modules/through/package.json +43 -0
  723. data/node_modules/browserify/node_modules/through/readme.markdown +43 -0
  724. data/node_modules/browserify/node_modules/through/test/buffering.js +71 -0
  725. data/node_modules/browserify/node_modules/through/test/end.js +26 -0
  726. data/node_modules/browserify/node_modules/through/test/index.js +114 -0
  727. data/node_modules/browserify/node_modules/umd/README.md +46 -0
  728. data/node_modules/browserify/node_modules/umd/index.js +63 -0
  729. data/node_modules/browserify/node_modules/umd/node_modules/rfile/README.md +81 -0
  730. data/node_modules/browserify/node_modules/umd/node_modules/rfile/index.js +39 -0
  731. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/History.md +10 -0
  732. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/Makefile +6 -0
  733. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/Readme.md +44 -0
  734. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/index.js +10 -0
  735. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/package.json +27 -0
  736. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/LICENSE +18 -0
  737. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/example/async.js +5 -0
  738. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/example/sync.js +3 -0
  739. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/index.js +5 -0
  740. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/async.js +131 -0
  741. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/core.js +4 -0
  742. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/core.json +38 -0
  743. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/sync.js +99 -0
  744. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/package.json +32 -0
  745. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/readme.markdown +134 -0
  746. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/core.js +12 -0
  747. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/filter.js +17 -0
  748. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/filter_sync.js +15 -0
  749. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/mock.js +68 -0
  750. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/mock_sync.js +68 -0
  751. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  752. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  753. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/package.json +3 -0
  754. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  755. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  756. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  757. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/cup.coffee +1 -0
  758. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/foo.js +1 -0
  759. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/mug.coffee +0 -0
  760. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/mug.js +0 -0
  761. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  762. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  763. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver.js +144 -0
  764. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver_sync.js +157 -0
  765. data/node_modules/browserify/node_modules/umd/node_modules/rfile/package.json +36 -0
  766. data/node_modules/browserify/node_modules/umd/node_modules/rfile/test/index.js +43 -0
  767. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/README.md +26 -0
  768. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/index.js +9 -0
  769. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/package.json +39 -0
  770. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/fixture/jquery.js +9597 -0
  771. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/fixture/jquery.min.js +3 -0
  772. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/index.js +8 -0
  773. data/node_modules/browserify/node_modules/umd/node_modules/through/LICENSE.APACHE2 +15 -0
  774. data/node_modules/browserify/node_modules/umd/node_modules/through/LICENSE.MIT +24 -0
  775. data/node_modules/browserify/node_modules/umd/node_modules/through/index.js +108 -0
  776. data/node_modules/browserify/node_modules/umd/node_modules/through/package.json +43 -0
  777. data/node_modules/browserify/node_modules/umd/node_modules/through/readme.markdown +63 -0
  778. data/node_modules/browserify/node_modules/umd/node_modules/through/test/auto-destroy.js +30 -0
  779. data/node_modules/browserify/node_modules/umd/node_modules/through/test/buffering.js +71 -0
  780. data/node_modules/browserify/node_modules/umd/node_modules/through/test/end.js +45 -0
  781. data/node_modules/browserify/node_modules/umd/node_modules/through/test/index.js +114 -0
  782. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/README.md +544 -0
  783. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/bin/uglifyjs +370 -0
  784. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/ast.js +964 -0
  785. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/compress.js +1968 -0
  786. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/mozilla-ast.js +265 -0
  787. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/output.js +1220 -0
  788. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/parse.js +1407 -0
  789. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/scope.js +580 -0
  790. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/sourcemap.js +81 -0
  791. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/transform.js +218 -0
  792. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/utils.js +288 -0
  793. data/node_modules/browserify/node_modules/{deputy/node_modules/mkdirp → umd/node_modules/uglify-js/node_modules/optimist}/LICENSE +0 -0
  794. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/bool.js +10 -0
  795. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js +7 -0
  796. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js +7 -0
  797. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/default_hash.js +8 -0
  798. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/default_singles.js +7 -0
  799. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/divide.js +8 -0
  800. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/line_count.js +20 -0
  801. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js +29 -0
  802. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js +29 -0
  803. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/nonopt.js +4 -0
  804. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/reflect.js +2 -0
  805. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/short.js +3 -0
  806. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/string.js +11 -0
  807. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/usage-options.js +19 -0
  808. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/xup.js +10 -0
  809. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/index.js +478 -0
  810. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/README.markdown +70 -0
  811. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js +10 -0
  812. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js +3 -0
  813. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/index.js +76 -0
  814. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/package.json +41 -0
  815. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js +30 -0
  816. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/idleness.txt +63 -0
  817. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/wrap.js +31 -0
  818. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/package.json +42 -0
  819. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/readme.markdown +487 -0
  820. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/_/argv.js +2 -0
  821. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/_/bin.js +3 -0
  822. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/_.js +71 -0
  823. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/parse.js +446 -0
  824. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/usage.js +292 -0
  825. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md +58 -0
  826. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/LICENSE +28 -0
  827. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js +166 -0
  828. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/README.md +347 -0
  829. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js +56 -0
  830. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/mini-require.js +152 -0
  831. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  832. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm +18 -0
  833. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js +8 -0
  834. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  835. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm +21 -0
  836. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js +8 -0
  837. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js +3 -0
  838. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js +96 -0
  839. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  840. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js +42 -0
  841. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  842. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js +426 -0
  843. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  844. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js +353 -0
  845. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js +91 -0
  846. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map.js +8 -0
  847. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  848. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  849. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  850. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  851. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/package.json +74 -0
  852. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/run-tests.js +73 -0
  853. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js +26 -0
  854. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  855. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  856. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js +35 -0
  857. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  858. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  859. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js +291 -0
  860. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  861. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  862. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js +152 -0
  863. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/package.json +37 -0
  864. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/arrays.js +12 -0
  865. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/blocks.js +49 -0
  866. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/conditionals.js +143 -0
  867. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/dead-code.js +89 -0
  868. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/debugger.js +24 -0
  869. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/drop-unused.js +97 -0
  870. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-105.js +17 -0
  871. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-12.js +11 -0
  872. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-22.js +17 -0
  873. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-44.js +31 -0
  874. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-59.js +30 -0
  875. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/labels.js +163 -0
  876. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/loops.js +123 -0
  877. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/properties.js +25 -0
  878. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/sequences.js +161 -0
  879. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/switch.js +210 -0
  880. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/run-tests.js +170 -0
  881. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/tools/node.js +164 -0
  882. data/node_modules/browserify/node_modules/umd/package.json +32 -0
  883. data/node_modules/browserify/node_modules/umd/template.js +33 -0
  884. data/node_modules/browserify/package.json +25 -38
  885. data/node_modules/browserify/test/args.js +15 -0
  886. data/node_modules/browserify/test/backbone.js +13 -12
  887. data/node_modules/browserify/test/bin.js +6 -14
  888. data/node_modules/browserify/test/bin_entry.js +31 -0
  889. data/node_modules/browserify/test/buffer.js +83 -64
  890. data/node_modules/browserify/test/bundle_sourcemap.js +30 -0
  891. data/node_modules/browserify/test/catch/main.js +1 -0
  892. data/node_modules/browserify/test/catch.js +22 -0
  893. data/node_modules/browserify/test/circular/a.js +3 -0
  894. data/node_modules/browserify/test/circular/b.js +1 -0
  895. data/node_modules/browserify/test/circular/main.js +1 -0
  896. data/node_modules/browserify/test/circular.js +34 -0
  897. data/node_modules/browserify/test/coffee_bin/main.coffee +2 -0
  898. data/node_modules/browserify/test/coffee_bin/x.coffee +1 -0
  899. data/node_modules/browserify/test/coffee_bin.js +36 -0
  900. data/node_modules/browserify/test/comment.js +8 -9
  901. data/node_modules/browserify/test/dep.js +31 -0
  902. data/node_modules/browserify/test/dnode.js +17 -17
  903. data/node_modules/browserify/test/dollar.js +11 -12
  904. data/node_modules/browserify/test/entry.js +11 -28
  905. data/node_modules/browserify/test/entry_exec/fail.js +1 -0
  906. data/node_modules/browserify/test/entry_exec/main.js +1 -0
  907. data/node_modules/browserify/test/entry_exec.js +15 -0
  908. data/node_modules/browserify/test/error_code.js +0 -2
  909. data/node_modules/browserify/test/export.js +22 -39
  910. data/node_modules/browserify/test/fake/fake_fs.js +1 -0
  911. data/node_modules/browserify/test/fake/main.js +2 -0
  912. data/node_modules/browserify/test/fake.js +15 -0
  913. data/node_modules/browserify/test/field/node_modules/z-object/package.json +1 -3
  914. data/node_modules/browserify/test/field.js +40 -40
  915. data/node_modules/browserify/test/file_event.js +33 -0
  916. data/node_modules/browserify/test/global/buffer.js +2 -0
  917. data/node_modules/browserify/test/global/filename.js +2 -0
  918. data/node_modules/browserify/test/global/tick.js +3 -0
  919. data/node_modules/browserify/test/global.js +45 -10
  920. data/node_modules/browserify/test/ignore/by-id.js +4 -0
  921. data/node_modules/browserify/test/ignore/main.js +1 -0
  922. data/node_modules/browserify/test/ignore/skip.js +1 -0
  923. data/node_modules/browserify/test/ignore.js +33 -0
  924. data/node_modules/browserify/test/json.js +11 -10
  925. data/node_modules/browserify/test/maxlisteners/main.js +3 -0
  926. data/node_modules/browserify/test/maxlisteners.js +9 -4
  927. data/node_modules/browserify/test/multi_bundle/a.js +2 -0
  928. data/node_modules/browserify/test/multi_bundle/b.js +5 -0
  929. data/node_modules/browserify/test/multi_bundle.js +44 -0
  930. data/node_modules/browserify/test/multi_entry/c.js +0 -1
  931. data/node_modules/browserify/test/multi_entry.js +16 -11
  932. data/node_modules/browserify/test/process/main.js +3 -0
  933. data/node_modules/browserify/test/process/one.js +1 -0
  934. data/node_modules/browserify/test/process/two.js +1 -0
  935. data/node_modules/browserify/test/process.js +20 -0
  936. data/node_modules/browserify/test/require_cache.js +13 -12
  937. data/node_modules/browserify/test/retarget.js +2 -6
  938. data/node_modules/browserify/test/reverse_multi_bundle/app.js +22 -0
  939. data/node_modules/browserify/test/reverse_multi_bundle/lazy.js +4 -0
  940. data/node_modules/browserify/test/reverse_multi_bundle/shared.js +4 -0
  941. data/node_modules/browserify/test/reverse_multi_bundle.js +43 -0
  942. data/node_modules/browserify/test/shebang/foo.js +2 -0
  943. data/node_modules/browserify/test/shebang/main.js +4 -0
  944. data/node_modules/browserify/test/shebang.js +11 -0
  945. data/node_modules/browserify/test/standalone/main.js +3 -0
  946. data/node_modules/browserify/test/standalone/one.js +1 -0
  947. data/node_modules/browserify/test/standalone/two.js +1 -0
  948. data/node_modules/browserify/test/standalone.js +73 -0
  949. data/node_modules/browserify/test/subdep.js +8 -18
  950. data/node_modules/browserify/test/tr/f.js +1 -0
  951. data/node_modules/browserify/test/tr/main.js +7 -0
  952. data/node_modules/browserify/test/tr/node_modules/g/index.js +1 -0
  953. data/node_modules/browserify/test/tr/node_modules/g/node_modules/insert-ggg/index.js +7 -0
  954. data/node_modules/browserify/test/tr/node_modules/g/package.json +6 -0
  955. data/node_modules/browserify/test/tr/node_modules/insert-aaa/index.js +7 -0
  956. data/node_modules/browserify/test/tr/node_modules/insert-bbb/index.js +7 -0
  957. data/node_modules/browserify/test/tr/node_modules/m/index.js +3 -0
  958. data/node_modules/browserify/test/tr.js +21 -0
  959. data/node_modules/browserify/test/util.js +43 -29
  960. data/package.json +2 -5
  961. metadata +931 -614
  962. data/node_modules/JSONStream/node_modules/jsonparse/package.json +0 -34
  963. data/node_modules/JSONStream/package.json +0 -38
  964. data/node_modules/browserify/builtins/__browserify_process.js +0 -55
  965. data/node_modules/browserify/builtins/events.js +0 -178
  966. data/node_modules/browserify/builtins/https.js +0 -1
  967. data/node_modules/browserify/doc/methods.markdown +0 -182
  968. data/node_modules/browserify/doc/recipes.markdown +0 -62
  969. data/node_modules/browserify/example/debug/browserify.js +0 -219
  970. data/node_modules/browserify/example/debug/build.sh +0 -3
  971. data/node_modules/browserify/example/debug/index.html +0 -7
  972. data/node_modules/browserify/example/debug/js/entry.js +0 -2
  973. data/node_modules/browserify/example/debug/js/thrower.js +0 -3
  974. data/node_modules/browserify/example/debug/server.js +0 -9
  975. data/node_modules/browserify/example/simple-build/browserify.js +0 -368
  976. data/node_modules/browserify/example/simple-build/build.sh +0 -3
  977. data/node_modules/browserify/example/simple-build/index.html +0 -9
  978. data/node_modules/browserify/example/simple-build/js/bar.js +0 -3
  979. data/node_modules/browserify/example/simple-build/js/entry.js +0 -5
  980. data/node_modules/browserify/example/simple-build/js/foo.js +0 -5
  981. data/node_modules/browserify/example/simple-build/server.js +0 -9
  982. data/node_modules/browserify/example/test/b.js +0 -5
  983. data/node_modules/browserify/example/test/bar.js +0 -3
  984. data/node_modules/browserify/example/test/foo.js +0 -3
  985. data/node_modules/browserify/example/test/m.js +0 -3
  986. data/node_modules/browserify/example/test/n.js +0 -3
  987. data/node_modules/browserify/example/using-http/bundle.js +0 -813
  988. data/node_modules/browserify/example/using-http/entry.js +0 -25
  989. data/node_modules/browserify/example/using-http/index.html +0 -9
  990. data/node_modules/browserify/example/using-http/server.js +0 -28
  991. data/node_modules/browserify/lib/watch.js +0 -75
  992. data/node_modules/browserify/lib/wrap.js +0 -583
  993. data/node_modules/browserify/lib/wrappers.js +0 -10
  994. data/node_modules/browserify/node_modules/buffer-browserify/package.json +0 -42
  995. data/node_modules/browserify/node_modules/coffee-script/CNAME +0 -1
  996. data/node_modules/browserify/node_modules/coffee-script/CONTRIBUTING.md +0 -9
  997. data/node_modules/browserify/node_modules/coffee-script/LICENSE +0 -22
  998. data/node_modules/browserify/node_modules/coffee-script/README +0 -51
  999. data/node_modules/browserify/node_modules/coffee-script/Rakefile +0 -79
  1000. data/node_modules/browserify/node_modules/coffee-script/bin/cake +0 -7
  1001. data/node_modules/browserify/node_modules/coffee-script/bin/coffee +0 -7
  1002. data/node_modules/browserify/node_modules/coffee-script/extras/jsl.conf +0 -44
  1003. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/browser.js +0 -101
  1004. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/cake.js +0 -113
  1005. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/coffee-script.js +0 -218
  1006. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/command.js +0 -506
  1007. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/grammar.js +0 -623
  1008. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/helpers.js +0 -150
  1009. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/index.js +0 -11
  1010. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/lexer.js +0 -905
  1011. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/nodes.js +0 -3088
  1012. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/optparse.js +0 -138
  1013. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/parser.js +0 -608
  1014. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/repl.js +0 -104
  1015. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/rewriter.js +0 -478
  1016. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/scope.js +0 -147
  1017. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/sourcemap.js +0 -237
  1018. data/node_modules/browserify/node_modules/coffee-script/package.json +0 -48
  1019. data/node_modules/browserify/node_modules/console-browserify/package.json +0 -76
  1020. data/node_modules/browserify/node_modules/crypto-browserify/package.json +0 -30
  1021. data/node_modules/browserify/node_modules/deputy/README.markdown +0 -55
  1022. data/node_modules/browserify/node_modules/deputy/example/cache.js +0 -5
  1023. data/node_modules/browserify/node_modules/deputy/index.js +0 -46
  1024. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js +0 -6
  1025. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/index.js +0 -82
  1026. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/package.json +0 -30
  1027. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/readme.markdown +0 -63
  1028. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/chmod.js +0 -38
  1029. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/clobber.js +0 -37
  1030. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/mkdirp.js +0 -28
  1031. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm.js +0 -32
  1032. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm_sync.js +0 -39
  1033. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/race.js +0 -41
  1034. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/rel.js +0 -32
  1035. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return.js +0 -25
  1036. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return_sync.js +0 -24
  1037. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/root.js +0 -18
  1038. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/sync.js +0 -32
  1039. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask.js +0 -28
  1040. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask_sync.js +0 -32
  1041. data/node_modules/browserify/node_modules/deputy/package.json +0 -43
  1042. data/node_modules/browserify/node_modules/deputy/test/cache.js +0 -58
  1043. data/node_modules/browserify/node_modules/detective/README.markdown +0 -66
  1044. data/node_modules/browserify/node_modules/detective/example/strings.js +0 -6
  1045. data/node_modules/browserify/node_modules/detective/index.js +0 -60
  1046. data/node_modules/browserify/node_modules/detective/node_modules/esprima/README.md +0 -74
  1047. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/codemirror/codemirror.css +0 -112
  1048. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/codemirror/codemirror.js +0 -2972
  1049. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/codemirror/javascript.js +0 -360
  1050. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/json2.js +0 -487
  1051. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/style.css +0 -164
  1052. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/treeview-min.js +0 -12
  1053. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/treeview-sprite.gif +0 -0
  1054. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/treeview.css +0 -7
  1055. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/yahoo-dom-event.js +0 -14
  1056. data/node_modules/browserify/node_modules/detective/node_modules/esprima/bin/esparse.js +0 -42
  1057. data/node_modules/browserify/node_modules/detective/node_modules/esprima/changes +0 -92
  1058. data/node_modules/browserify/node_modules/detective/node_modules/esprima/cm +0 -696
  1059. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/checkenv.js +0 -42
  1060. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/collector.html +0 -82
  1061. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/collector.js +0 -170
  1062. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/functiontrace.html +0 -106
  1063. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/functiontrace.js +0 -123
  1064. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/parse.css +0 -82
  1065. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/parse.html +0 -352
  1066. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/precedence.html +0 -225
  1067. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/rewrite.html +0 -120
  1068. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/rewrite.js +0 -71
  1069. data/node_modules/browserify/node_modules/detective/node_modules/esprima/esprima.js +0 -3577
  1070. data/node_modules/browserify/node_modules/detective/node_modules/esprima/index.html +0 -103
  1071. data/node_modules/browserify/node_modules/detective/node_modules/esprima/package.json +0 -39
  1072. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/Tokenizer.js +0 -646
  1073. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/XMLHttpRequest.js +0 -509
  1074. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/ZeParser.js +0 -2185
  1075. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/backbone-0.5.3.js +0 -1158
  1076. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/benchmark.js +0 -3261
  1077. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/escodegen.js +0 -906
  1078. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/esmorph.js +0 -240
  1079. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/ext-core-3.0.0.js +0 -6579
  1080. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/ext-core-3.1.0.js +0 -10255
  1081. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jquery-1.6.4.js +0 -9046
  1082. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jquery-1.7.1.js +0 -9266
  1083. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jquery.mobile-1.0.js +0 -6951
  1084. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jsdefs.js +0 -731
  1085. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jslex.js +0 -588
  1086. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jsparse.js +0 -1921
  1087. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/mootools-1.3.2.js +0 -5952
  1088. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/mootools-1.4.1.js +0 -6297
  1089. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/parse-js.js +0 -1342
  1090. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/platform.js +0 -878
  1091. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/prototype-1.6.1.js +0 -4874
  1092. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/prototype-1.7.0.0.js +0 -6082
  1093. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/underscore-1.2.3.js +0 -981
  1094. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/benchmarks.html +0 -58
  1095. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/benchmarks.js +0 -328
  1096. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/compare.html +0 -140
  1097. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/compare.js +0 -270
  1098. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/compat.html +0 -40
  1099. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/coverage.header.html +0 -37
  1100. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/coverage.html +0 -3617
  1101. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/index.html +0 -36
  1102. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/reflect.js +0 -403
  1103. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/run.js +0 -66
  1104. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/test.js +0 -16659
  1105. data/node_modules/browserify/node_modules/detective/node_modules/esprima/tools/generate-unicode-regex.py +0 -164
  1106. data/node_modules/browserify/node_modules/detective/node_modules/esprima/tools/update-coverage.sh +0 -28
  1107. data/node_modules/browserify/node_modules/detective/package.json +0 -43
  1108. data/node_modules/browserify/node_modules/detective/test/both.js +0 -11
  1109. data/node_modules/browserify/node_modules/detective/test/files/skip.js +0 -7
  1110. data/node_modules/browserify/node_modules/detective/test/skip.js +0 -9
  1111. data/node_modules/browserify/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/index.js +0 -189
  1112. data/node_modules/browserify/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +0 -379
  1113. data/node_modules/browserify/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/memory.js +0 -69
  1114. data/node_modules/browserify/node_modules/http-browserify/lib/request.js +0 -128
  1115. data/node_modules/browserify/node_modules/http-browserify/package.json +0 -42
  1116. data/node_modules/browserify/node_modules/nub/README.markdown +0 -23
  1117. data/node_modules/browserify/node_modules/nub/index.js +0 -64
  1118. data/node_modules/browserify/node_modules/nub/package.json +0 -42
  1119. data/node_modules/browserify/node_modules/nub/test/by.js +0 -51
  1120. data/node_modules/browserify/node_modules/nub/test/nub.js +0 -46
  1121. data/node_modules/browserify/node_modules/optimist/x.js +0 -1
  1122. data/node_modules/browserify/node_modules/resolve/README.markdown +0 -47
  1123. data/node_modules/browserify/node_modules/resolve/index.js +0 -109
  1124. data/node_modules/browserify/node_modules/resolve/package.json +0 -41
  1125. data/node_modules/browserify/node_modules/vm-browserify/package.json +0 -39
  1126. data/node_modules/browserify/test/alias.js +0 -58
  1127. data/node_modules/browserify/test/bundle.js +0 -32
  1128. data/node_modules/browserify/test/cache.js +0 -28
  1129. data/node_modules/browserify/test/coffee/bar.js +0 -1
  1130. data/node_modules/browserify/test/coffee/baz.coffee +0 -1
  1131. data/node_modules/browserify/test/coffee/entry.coffee +0 -1
  1132. data/node_modules/browserify/test/coffee/foo.coffee +0 -1
  1133. data/node_modules/browserify/test/coffee/index.coffee +0 -5
  1134. data/node_modules/browserify/test/coffee/nested/nested.coffee +0 -2
  1135. data/node_modules/browserify/test/coffee.js +0 -39
  1136. data/node_modules/browserify/test/jade.js +0 -35
  1137. data/node_modules/browserify/test/module.js +0 -22
  1138. data/node_modules/browserify/test/multi_ignore.js +0 -23
  1139. data/node_modules/browserify/test/seq.js +0 -47
  1140. data/node_modules/browserify/test/watch/a.js +0 -1
  1141. data/node_modules/browserify/test/watch.js +0 -91
  1142. data/node_modules/browserify/test/wrap/a.js +0 -2
  1143. data/node_modules/browserify/test/wrap/c.js +0 -1
  1144. data/node_modules/browserify/test/wrap/node_modules/b/main.js +0 -1
  1145. data/node_modules/browserify/test/wrap/node_modules/b/package.json +0 -3
  1146. data/node_modules/browserify/test/wrap/node_modules/skipmetoo/index.js +0 -1
  1147. data/node_modules/browserify/test/wrap/skipme.js +0 -1
  1148. data/node_modules/browserify/test/wrap.js +0 -43
  1149. data/node_modules/browserify/testling/README.markdown +0 -29
  1150. data/node_modules/browserify/testling/test.sh +0 -37
  1151. data/node_modules/browserify/testling/tick.js +0 -9
  1152. data/node_modules/browserify/testling/timers.js +0 -50
  1153. data/node_modules/browserify/testling/util.js +0 -24
  1154. data/node_modules/browserify/v2.markdown +0 -41
  1155. data/node_modules/browserify/wrappers/alias.js +0 -1
  1156. data/node_modules/browserify/wrappers/body.js +0 -2
  1157. data/node_modules/browserify/wrappers/body_debug.js +0 -2
  1158. data/node_modules/browserify/wrappers/entry.js +0 -3
  1159. data/node_modules/browserify/wrappers/entry_debug.js +0 -3
  1160. data/node_modules/browserify/wrappers/package.js +0 -3
  1161. data/node_modules/browserify/wrappers/prelude.js +0 -196
  1162. data/node_modules/module-deps/index.js +0 -142
  1163. data/node_modules/module-deps/node_modules/browser-resolve/README.md +0 -14
  1164. data/node_modules/module-deps/node_modules/browser-resolve/builtin/assert.js +0 -314
  1165. data/node_modules/module-deps/node_modules/browser-resolve/builtin/child_process.js +0 -2
  1166. data/node_modules/module-deps/node_modules/browser-resolve/builtin/fs.js +0 -1
  1167. data/node_modules/module-deps/node_modules/browser-resolve/builtin/net.js +0 -1
  1168. data/node_modules/module-deps/node_modules/browser-resolve/builtin/path.js +0 -175
  1169. data/node_modules/module-deps/node_modules/browser-resolve/builtin/querystring.js +0 -250
  1170. data/node_modules/module-deps/node_modules/browser-resolve/builtin/stream.js +0 -119
  1171. data/node_modules/module-deps/node_modules/browser-resolve/builtin/string_decoder.js +0 -161
  1172. data/node_modules/module-deps/node_modules/browser-resolve/builtin/sys.js +0 -1
  1173. data/node_modules/module-deps/node_modules/browser-resolve/builtin/timers.js +0 -39
  1174. data/node_modules/module-deps/node_modules/browser-resolve/builtin/tls.js +0 -1
  1175. data/node_modules/module-deps/node_modules/browser-resolve/builtin/tty.js +0 -2
  1176. data/node_modules/module-deps/node_modules/browser-resolve/builtin/url.js +0 -604
  1177. data/node_modules/module-deps/node_modules/browser-resolve/builtin/util.js +0 -351
  1178. data/node_modules/module-deps/node_modules/browser-resolve/index.js +0 -144
  1179. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/README.md +0 -11
  1180. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/buffer_ieee754.js +0 -84
  1181. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/index.js +0 -1282
  1182. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/README.md +0 -14
  1183. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/lib/b64.js +0 -84
  1184. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/package.json +0 -26
  1185. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/test/runner.js +0 -50
  1186. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/package.json +0 -42
  1187. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/test/buffer.js +0 -121
  1188. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/README.md +0 -32
  1189. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/index.js +0 -85
  1190. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/package.json +0 -76
  1191. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/test/index.js +0 -67
  1192. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/test/static/index.html +0 -12
  1193. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/test/static/test-adapter.js +0 -53
  1194. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/example/bundle.js +0 -637
  1195. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/example/index.html +0 -12
  1196. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/example/test.js +0 -4
  1197. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/index.js +0 -74
  1198. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/md5.js +0 -384
  1199. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/package.json +0 -30
  1200. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/readme.markdown +0 -20
  1201. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/rng.js +0 -37
  1202. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/sha.js +0 -210
  1203. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/test/simple.js +0 -35
  1204. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/README.markdown +0 -128
  1205. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/get/index.html +0 -9
  1206. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/get/main.js +0 -14
  1207. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/get/server.js +0 -12
  1208. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/headers/index.html +0 -9
  1209. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/headers/main.js +0 -18
  1210. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/headers/server.js +0 -15
  1211. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/post/index.html +0 -9
  1212. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/post/main.js +0 -16
  1213. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/post/server.js +0 -19
  1214. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/index.html +0 -9
  1215. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/main.js +0 -16
  1216. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/server.js +0 -21
  1217. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/index.js +0 -59
  1218. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/lib/request.js +0 -122
  1219. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/lib/response.js +0 -119
  1220. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/index.js +0 -48
  1221. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/package.json +0 -29
  1222. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/test.js +0 -34
  1223. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/package.json +0 -42
  1224. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/README.markdown +0 -103
  1225. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/bundle.js +0 -473
  1226. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/entry.js +0 -6
  1227. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/index.html +0 -9
  1228. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/server.js +0 -6
  1229. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/index.js +0 -85
  1230. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/package.json +0 -39
  1231. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/testling/run.js +0 -22
  1232. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/testling/test.sh +0 -11
  1233. data/node_modules/module-deps/node_modules/browser-resolve/package.json +0 -38
  1234. data/node_modules/module-deps/node_modules/browser-resolve/test/core.js +0 -20
  1235. data/node_modules/module-deps/node_modules/detective/example/strings_src.js +0 -3
  1236. data/node_modules/module-deps/node_modules/detective/index.js +0 -62
  1237. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +0 -165
  1238. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/README.md +0 -268
  1239. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1240. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1241. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1242. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +0 -20
  1243. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js +0 -107
  1244. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -379
  1245. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js +0 -202
  1246. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js +0 -199
  1247. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +0 -40
  1248. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1249. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1250. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +0 -29
  1251. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/package.json +0 -38
  1252. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/run-tests.js +0 -72
  1253. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -142
  1254. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -187
  1255. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js +0 -163
  1256. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +0 -78
  1257. data/node_modules/module-deps/node_modules/detective/package.json +0 -36
  1258. data/node_modules/module-deps/node_modules/detective/readme.markdown +0 -70
  1259. data/node_modules/module-deps/node_modules/detective/test/both.js +0 -11
  1260. data/node_modules/module-deps/node_modules/detective/test/chained.js +0 -9
  1261. data/node_modules/module-deps/node_modules/detective/test/files/both.js +0 -4
  1262. data/node_modules/module-deps/node_modules/detective/test/files/chained.js +0 -5
  1263. data/node_modules/module-deps/node_modules/detective/test/files/nested.js +0 -22
  1264. data/node_modules/module-deps/node_modules/detective/test/files/strings.js +0 -13
  1265. data/node_modules/module-deps/node_modules/detective/test/files/word.js +0 -13
  1266. data/node_modules/module-deps/node_modules/detective/test/nested.js +0 -9
  1267. data/node_modules/module-deps/node_modules/detective/test/strings.js +0 -9
  1268. data/node_modules/module-deps/node_modules/detective/test/word.js +0 -12
  1269. data/node_modules/module-deps/node_modules/resolve/lib/async.js +0 -131
  1270. data/node_modules/module-deps/node_modules/resolve/lib/sync.js +0 -98
  1271. data/node_modules/module-deps/node_modules/resolve/package.json +0 -32
  1272. data/node_modules/module-deps/package.json +0 -47
  1273. data/node_modules/module-deps/readme.markdown +0 -128
  1274. data/node_modules/through/package.json +0 -35
  1275. data/node_modules/through/readme.markdown +0 -43
  1276. data/node_modules/through/test/buffering.js +0 -71
  1277. data/node_modules/through/test/end.js +0 -27
  1278. data/node_modules/through/test/index.js +0 -113
@@ -0,0 +1,1968 @@
1
+ /***********************************************************************
2
+
3
+ A JavaScript tokenizer / parser / beautifier / compressor.
4
+ https://github.com/mishoo/UglifyJS2
5
+
6
+ -------------------------------- (C) ---------------------------------
7
+
8
+ Author: Mihai Bazon
9
+ <mihai.bazon@gmail.com>
10
+ http://mihai.bazon.net/blog
11
+
12
+ Distributed under the BSD license:
13
+
14
+ Copyright 2012 (c) Mihai Bazon <mihai.bazon@gmail.com>
15
+
16
+ Redistribution and use in source and binary forms, with or without
17
+ modification, are permitted provided that the following conditions
18
+ are met:
19
+
20
+ * Redistributions of source code must retain the above
21
+ copyright notice, this list of conditions and the following
22
+ disclaimer.
23
+
24
+ * Redistributions in binary form must reproduce the above
25
+ copyright notice, this list of conditions and the following
26
+ disclaimer in the documentation and/or other materials
27
+ provided with the distribution.
28
+
29
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
30
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
32
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
33
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
34
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
35
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
36
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
38
+ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
39
+ THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
40
+ SUCH DAMAGE.
41
+
42
+ ***********************************************************************/
43
+
44
+ "use strict";
45
+
46
+ function Compressor(options, false_by_default) {
47
+ if (!(this instanceof Compressor))
48
+ return new Compressor(options, false_by_default);
49
+ TreeTransformer.call(this, this.before, this.after);
50
+ this.options = defaults(options, {
51
+ sequences : !false_by_default,
52
+ properties : !false_by_default,
53
+ dead_code : !false_by_default,
54
+ drop_debugger : !false_by_default,
55
+ unsafe : !false_by_default,
56
+ unsafe_comps : false,
57
+ conditionals : !false_by_default,
58
+ comparisons : !false_by_default,
59
+ evaluate : !false_by_default,
60
+ booleans : !false_by_default,
61
+ loops : !false_by_default,
62
+ unused : !false_by_default,
63
+ hoist_funs : !false_by_default,
64
+ hoist_vars : false,
65
+ if_return : !false_by_default,
66
+ join_vars : !false_by_default,
67
+ cascade : !false_by_default,
68
+ side_effects : !false_by_default,
69
+
70
+ warnings : true,
71
+ global_defs : {}
72
+ }, true);
73
+ };
74
+
75
+ Compressor.prototype = new TreeTransformer;
76
+ merge(Compressor.prototype, {
77
+ option: function(key) { return this.options[key] },
78
+ warn: function() {
79
+ if (this.options.warnings)
80
+ AST_Node.warn.apply(AST_Node, arguments);
81
+ },
82
+ before: function(node, descend, in_list) {
83
+ if (node._squeezed) return node;
84
+ if (node instanceof AST_Scope) {
85
+ node.drop_unused(this);
86
+ node = node.hoist_declarations(this);
87
+ }
88
+ descend(node, this);
89
+ node = node.optimize(this);
90
+ if (node instanceof AST_Scope) {
91
+ // dead code removal might leave further unused declarations.
92
+ // this'll usually save very few bytes, but the performance
93
+ // hit seems negligible so I'll just drop it here.
94
+
95
+ // no point to repeat warnings.
96
+ var save_warnings = this.options.warnings;
97
+ this.options.warnings = false;
98
+ node.drop_unused(this);
99
+ this.options.warnings = save_warnings;
100
+ }
101
+ node._squeezed = true;
102
+ return node;
103
+ }
104
+ });
105
+
106
+ (function(){
107
+
108
+ function OPT(node, optimizer) {
109
+ node.DEFMETHOD("optimize", function(compressor){
110
+ var self = this;
111
+ if (self._optimized) return self;
112
+ var opt = optimizer(self, compressor);
113
+ opt._optimized = true;
114
+ if (opt === self) return opt;
115
+ return opt.transform(compressor);
116
+ });
117
+ };
118
+
119
+ OPT(AST_Node, function(self, compressor){
120
+ return self;
121
+ });
122
+
123
+ AST_Node.DEFMETHOD("equivalent_to", function(node){
124
+ // XXX: this is a rather expensive way to test two node's equivalence:
125
+ return this.print_to_string() == node.print_to_string();
126
+ });
127
+
128
+ function make_node(ctor, orig, props) {
129
+ if (!props) props = {};
130
+ if (orig) {
131
+ if (!props.start) props.start = orig.start;
132
+ if (!props.end) props.end = orig.end;
133
+ }
134
+ return new ctor(props);
135
+ };
136
+
137
+ function make_node_from_constant(compressor, val, orig) {
138
+ // XXX: WIP.
139
+ // if (val instanceof AST_Node) return val.transform(new TreeTransformer(null, function(node){
140
+ // if (node instanceof AST_SymbolRef) {
141
+ // var scope = compressor.find_parent(AST_Scope);
142
+ // var def = scope.find_variable(node);
143
+ // node.thedef = def;
144
+ // return node;
145
+ // }
146
+ // })).transform(compressor);
147
+
148
+ if (val instanceof AST_Node) return val.transform(compressor);
149
+ switch (typeof val) {
150
+ case "string":
151
+ return make_node(AST_String, orig, {
152
+ value: val
153
+ }).optimize(compressor);
154
+ case "number":
155
+ return make_node(isNaN(val) ? AST_NaN : AST_Number, orig, {
156
+ value: val
157
+ }).optimize(compressor);
158
+ case "boolean":
159
+ return make_node(val ? AST_True : AST_False, orig);
160
+ case "undefined":
161
+ return make_node(AST_Undefined, orig).optimize(compressor);
162
+ default:
163
+ if (val === null) {
164
+ return make_node(AST_Null, orig).optimize(compressor);
165
+ }
166
+ if (val instanceof RegExp) {
167
+ return make_node(AST_RegExp, orig).optimize(compressor);
168
+ }
169
+ throw new Error(string_template("Can't handle constant of type: {type}", {
170
+ type: typeof val
171
+ }));
172
+ }
173
+ };
174
+
175
+ function as_statement_array(thing) {
176
+ if (thing === null) return [];
177
+ if (thing instanceof AST_BlockStatement) return thing.body;
178
+ if (thing instanceof AST_EmptyStatement) return [];
179
+ if (thing instanceof AST_Statement) return [ thing ];
180
+ throw new Error("Can't convert thing to statement array");
181
+ };
182
+
183
+ function is_empty(thing) {
184
+ if (thing === null) return true;
185
+ if (thing instanceof AST_EmptyStatement) return true;
186
+ if (thing instanceof AST_BlockStatement) return thing.body.length == 0;
187
+ return false;
188
+ };
189
+
190
+ function loop_body(x) {
191
+ if (x instanceof AST_Switch) return x;
192
+ if (x instanceof AST_For || x instanceof AST_ForIn || x instanceof AST_DWLoop) {
193
+ return (x.body instanceof AST_BlockStatement ? x.body : x);
194
+ }
195
+ return x;
196
+ };
197
+
198
+ function tighten_body(statements, compressor) {
199
+ var CHANGED;
200
+ do {
201
+ CHANGED = false;
202
+ statements = eliminate_spurious_blocks(statements);
203
+ if (compressor.option("dead_code")) {
204
+ statements = eliminate_dead_code(statements, compressor);
205
+ }
206
+ if (compressor.option("if_return")) {
207
+ statements = handle_if_return(statements, compressor);
208
+ }
209
+ if (compressor.option("sequences")) {
210
+ statements = sequencesize(statements, compressor);
211
+ }
212
+ if (compressor.option("join_vars")) {
213
+ statements = join_consecutive_vars(statements, compressor);
214
+ }
215
+ } while (CHANGED);
216
+ return statements;
217
+
218
+ function eliminate_spurious_blocks(statements) {
219
+ var seen_dirs = [];
220
+ return statements.reduce(function(a, stat){
221
+ if (stat instanceof AST_BlockStatement) {
222
+ CHANGED = true;
223
+ a.push.apply(a, eliminate_spurious_blocks(stat.body));
224
+ } else if (stat instanceof AST_EmptyStatement) {
225
+ CHANGED = true;
226
+ } else if (stat instanceof AST_Directive) {
227
+ if (seen_dirs.indexOf(stat.value) < 0) {
228
+ a.push(stat);
229
+ seen_dirs.push(stat.value);
230
+ } else {
231
+ CHANGED = true;
232
+ }
233
+ } else {
234
+ a.push(stat);
235
+ }
236
+ return a;
237
+ }, []);
238
+ };
239
+
240
+ function handle_if_return(statements, compressor) {
241
+ var self = compressor.self();
242
+ var in_lambda = self instanceof AST_Lambda;
243
+ var ret = [];
244
+ loop: for (var i = statements.length; --i >= 0;) {
245
+ var stat = statements[i];
246
+ switch (true) {
247
+ case (in_lambda && stat instanceof AST_Return && !stat.value && ret.length == 0):
248
+ CHANGED = true;
249
+ // note, ret.length is probably always zero
250
+ // because we drop unreachable code before this
251
+ // step. nevertheless, it's good to check.
252
+ continue loop;
253
+ case stat instanceof AST_If:
254
+ if (stat.body instanceof AST_Return) {
255
+ //---
256
+ // pretty silly case, but:
257
+ // if (foo()) return; return; ==> foo(); return;
258
+ if (((in_lambda && ret.length == 0)
259
+ || (ret[0] instanceof AST_Return && !ret[0].value))
260
+ && !stat.body.value && !stat.alternative) {
261
+ CHANGED = true;
262
+ var cond = make_node(AST_SimpleStatement, stat.condition, {
263
+ body: stat.condition
264
+ });
265
+ ret.unshift(cond);
266
+ continue loop;
267
+ }
268
+ //---
269
+ // if (foo()) return x; return y; ==> return foo() ? x : y;
270
+ if (ret[0] instanceof AST_Return && stat.body.value && ret[0].value && !stat.alternative) {
271
+ CHANGED = true;
272
+ stat = stat.clone();
273
+ stat.alternative = ret[0];
274
+ ret[0] = stat.transform(compressor);
275
+ continue loop;
276
+ }
277
+ //---
278
+ // if (foo()) return x; [ return ; ] ==> return foo() ? x : undefined;
279
+ if ((ret.length == 0 || ret[0] instanceof AST_Return) && stat.body.value && !stat.alternative && in_lambda) {
280
+ CHANGED = true;
281
+ stat = stat.clone();
282
+ stat.alternative = ret[0] || make_node(AST_Return, stat, {
283
+ value: make_node(AST_Undefined, stat)
284
+ });
285
+ ret[0] = stat.transform(compressor);
286
+ continue loop;
287
+ }
288
+ //---
289
+ // if (foo()) return; [ else x... ]; y... ==> if (!foo()) { x...; y... }
290
+ if (!stat.body.value && in_lambda) {
291
+ CHANGED = true;
292
+ stat = stat.clone();
293
+ stat.condition = stat.condition.negate(compressor);
294
+ stat.body = make_node(AST_BlockStatement, stat, {
295
+ body: as_statement_array(stat.alternative).concat(ret)
296
+ });
297
+ stat.alternative = null;
298
+ ret = [ stat.transform(compressor) ];
299
+ continue loop;
300
+ }
301
+ //---
302
+ if (ret.length == 1 && in_lambda && ret[0] instanceof AST_SimpleStatement
303
+ && (!stat.alternative || stat.alternative instanceof AST_SimpleStatement)) {
304
+ CHANGED = true;
305
+ ret.push(make_node(AST_Return, ret[0], {
306
+ value: make_node(AST_Undefined, ret[0])
307
+ }).transform(compressor));
308
+ ret = as_statement_array(stat.alternative).concat(ret);
309
+ ret.unshift(stat);
310
+ continue loop;
311
+ }
312
+ }
313
+
314
+ var ab = aborts(stat.body);
315
+ var lct = ab instanceof AST_LoopControl ? compressor.loopcontrol_target(ab.label) : null;
316
+ if (ab && ((ab instanceof AST_Return && !ab.value && in_lambda)
317
+ || (ab instanceof AST_Continue && self === loop_body(lct))
318
+ || (ab instanceof AST_Break && lct instanceof AST_BlockStatement && self === lct))) {
319
+ if (ab.label) {
320
+ remove(ab.label.thedef.references, ab.label);
321
+ }
322
+ CHANGED = true;
323
+ var body = as_statement_array(stat.body).slice(0, -1);
324
+ stat = stat.clone();
325
+ stat.condition = stat.condition.negate(compressor);
326
+ stat.body = make_node(AST_BlockStatement, stat, {
327
+ body: ret
328
+ });
329
+ stat.alternative = make_node(AST_BlockStatement, stat, {
330
+ body: body
331
+ });
332
+ ret = [ stat.transform(compressor) ];
333
+ continue loop;
334
+ }
335
+
336
+ var ab = aborts(stat.alternative);
337
+ var lct = ab instanceof AST_LoopControl ? compressor.loopcontrol_target(ab.label) : null;
338
+ if (ab && ((ab instanceof AST_Return && !ab.value && in_lambda)
339
+ || (ab instanceof AST_Continue && self === loop_body(lct))
340
+ || (ab instanceof AST_Break && lct instanceof AST_BlockStatement && self === lct))) {
341
+ if (ab.label) {
342
+ remove(ab.label.thedef.references, ab.label);
343
+ }
344
+ CHANGED = true;
345
+ stat = stat.clone();
346
+ stat.body = make_node(AST_BlockStatement, stat.body, {
347
+ body: as_statement_array(stat.body).concat(ret)
348
+ });
349
+ stat.alternative = make_node(AST_BlockStatement, stat.alternative, {
350
+ body: as_statement_array(stat.alternative).slice(0, -1)
351
+ });
352
+ ret = [ stat.transform(compressor) ];
353
+ continue loop;
354
+ }
355
+
356
+ ret.unshift(stat);
357
+ break;
358
+ default:
359
+ ret.unshift(stat);
360
+ break;
361
+ }
362
+ }
363
+ return ret;
364
+ };
365
+
366
+ function eliminate_dead_code(statements, compressor) {
367
+ var has_quit = false;
368
+ var orig = statements.length;
369
+ var self = compressor.self();
370
+ statements = statements.reduce(function(a, stat){
371
+ if (has_quit) {
372
+ extract_declarations_from_unreachable_code(compressor, stat, a);
373
+ } else {
374
+ if (stat instanceof AST_LoopControl) {
375
+ var lct = compressor.loopcontrol_target(stat.label);
376
+ if ((stat instanceof AST_Break
377
+ && lct instanceof AST_BlockStatement
378
+ && loop_body(lct) === self) || (stat instanceof AST_Continue
379
+ && loop_body(lct) === self)) {
380
+ if (stat.label) {
381
+ remove(stat.label.thedef.references, stat.label);
382
+ }
383
+ } else {
384
+ a.push(stat);
385
+ }
386
+ } else {
387
+ a.push(stat);
388
+ }
389
+ if (aborts(stat)) has_quit = true;
390
+ }
391
+ return a;
392
+ }, []);
393
+ CHANGED = statements.length != orig;
394
+ return statements;
395
+ };
396
+
397
+ function sequencesize(statements, compressor) {
398
+ if (statements.length < 2) return statements;
399
+ var seq = [], ret = [];
400
+ function push_seq() {
401
+ seq = AST_Seq.from_array(seq);
402
+ if (seq) ret.push(make_node(AST_SimpleStatement, seq, {
403
+ body: seq
404
+ }));
405
+ seq = [];
406
+ };
407
+ statements.forEach(function(stat){
408
+ if (stat instanceof AST_SimpleStatement) seq.push(stat.body);
409
+ else push_seq(), ret.push(stat);
410
+ });
411
+ push_seq();
412
+ ret = sequencesize_2(ret, compressor);
413
+ CHANGED = ret.length != statements.length;
414
+ return ret;
415
+ };
416
+
417
+ function sequencesize_2(statements, compressor) {
418
+ function cons_seq(right) {
419
+ ret.pop();
420
+ var left = prev.body;
421
+ if (left instanceof AST_Seq) {
422
+ left.add(right);
423
+ } else {
424
+ left = AST_Seq.cons(left, right);
425
+ }
426
+ return left.transform(compressor);
427
+ };
428
+ var ret = [], prev = null;
429
+ statements.forEach(function(stat){
430
+ if (prev) {
431
+ if (stat instanceof AST_For) {
432
+ var opera = {};
433
+ try {
434
+ prev.body.walk(new TreeWalker(function(node){
435
+ if (node instanceof AST_Binary && node.operator == "in")
436
+ throw opera;
437
+ }));
438
+ if (stat.init && !(stat.init instanceof AST_Definitions)) {
439
+ stat.init = cons_seq(stat.init);
440
+ }
441
+ else if (!stat.init) {
442
+ stat.init = prev.body;
443
+ ret.pop();
444
+ }
445
+ } catch(ex) {
446
+ if (ex !== opera) throw ex;
447
+ }
448
+ }
449
+ else if (stat instanceof AST_If) {
450
+ stat.condition = cons_seq(stat.condition);
451
+ }
452
+ else if (stat instanceof AST_With) {
453
+ stat.expression = cons_seq(stat.expression);
454
+ }
455
+ else if (stat instanceof AST_Exit && stat.value) {
456
+ stat.value = cons_seq(stat.value);
457
+ }
458
+ else if (stat instanceof AST_Exit) {
459
+ stat.value = cons_seq(make_node(AST_Undefined, stat));
460
+ }
461
+ else if (stat instanceof AST_Switch) {
462
+ stat.expression = cons_seq(stat.expression);
463
+ }
464
+ }
465
+ ret.push(stat);
466
+ prev = stat instanceof AST_SimpleStatement ? stat : null;
467
+ });
468
+ return ret;
469
+ };
470
+
471
+ function join_consecutive_vars(statements, compressor) {
472
+ var prev = null;
473
+ return statements.reduce(function(a, stat){
474
+ if (stat instanceof AST_Definitions && prev && prev.TYPE == stat.TYPE) {
475
+ prev.definitions = prev.definitions.concat(stat.definitions);
476
+ CHANGED = true;
477
+ }
478
+ else if (stat instanceof AST_For
479
+ && prev instanceof AST_Definitions
480
+ && (!stat.init || stat.init.TYPE == prev.TYPE)) {
481
+ CHANGED = true;
482
+ a.pop();
483
+ if (stat.init) {
484
+ stat.init.definitions = prev.definitions.concat(stat.init.definitions);
485
+ } else {
486
+ stat.init = prev;
487
+ }
488
+ a.push(stat);
489
+ prev = stat;
490
+ }
491
+ else {
492
+ prev = stat;
493
+ a.push(stat);
494
+ }
495
+ return a;
496
+ }, []);
497
+ };
498
+
499
+ };
500
+
501
+ function extract_declarations_from_unreachable_code(compressor, stat, target) {
502
+ compressor.warn("Dropping unreachable code [{file}:{line},{col}]", stat.start);
503
+ stat.walk(new TreeWalker(function(node){
504
+ if (node instanceof AST_Definitions) {
505
+ compressor.warn("Declarations in unreachable code! [{file}:{line},{col}]", node.start);
506
+ node.remove_initializers();
507
+ target.push(node);
508
+ return true;
509
+ }
510
+ if (node instanceof AST_Defun) {
511
+ target.push(node);
512
+ return true;
513
+ }
514
+ if (node instanceof AST_Scope) {
515
+ return true;
516
+ }
517
+ }));
518
+ };
519
+
520
+ /* -----[ boolean/negation helpers ]----- */
521
+
522
+ // methods to determine whether an expression has a boolean result type
523
+ (function (def){
524
+ var unary_bool = [ "!", "delete" ];
525
+ var binary_bool = [ "in", "instanceof", "==", "!=", "===", "!==", "<", "<=", ">=", ">" ];
526
+ def(AST_Node, function(){ return false });
527
+ def(AST_UnaryPrefix, function(){
528
+ return member(this.operator, unary_bool);
529
+ });
530
+ def(AST_Binary, function(){
531
+ return member(this.operator, binary_bool) ||
532
+ ( (this.operator == "&&" || this.operator == "||") &&
533
+ this.left.is_boolean() && this.right.is_boolean() );
534
+ });
535
+ def(AST_Conditional, function(){
536
+ return this.consequent.is_boolean() && this.alternative.is_boolean();
537
+ });
538
+ def(AST_Assign, function(){
539
+ return this.operator == "=" && this.right.is_boolean();
540
+ });
541
+ def(AST_Seq, function(){
542
+ return this.cdr.is_boolean();
543
+ });
544
+ def(AST_True, function(){ return true });
545
+ def(AST_False, function(){ return true });
546
+ })(function(node, func){
547
+ node.DEFMETHOD("is_boolean", func);
548
+ });
549
+
550
+ // methods to determine if an expression has a string result type
551
+ (function (def){
552
+ def(AST_Node, function(){ return false });
553
+ def(AST_String, function(){ return true });
554
+ def(AST_UnaryPrefix, function(){
555
+ return this.operator == "typeof";
556
+ });
557
+ def(AST_Binary, function(compressor){
558
+ return this.operator == "+" &&
559
+ (this.left.is_string(compressor) || this.right.is_string(compressor));
560
+ });
561
+ def(AST_Assign, function(compressor){
562
+ return (this.operator == "=" || this.operator == "+=") && this.right.is_string(compressor);
563
+ });
564
+ def(AST_Seq, function(compressor){
565
+ return this.cdr.is_string(compressor);
566
+ });
567
+ def(AST_Conditional, function(compressor){
568
+ return this.consequent.is_string(compressor) && this.alternative.is_string(compressor);
569
+ });
570
+ def(AST_Call, function(compressor){
571
+ return compressor.option("unsafe")
572
+ && this.expression instanceof AST_SymbolRef
573
+ && this.expression.name == "String"
574
+ && this.expression.undeclared();
575
+ });
576
+ })(function(node, func){
577
+ node.DEFMETHOD("is_string", func);
578
+ });
579
+
580
+ function best_of(ast1, ast2) {
581
+ return ast1.print_to_string().length >
582
+ ast2.print_to_string().length
583
+ ? ast2 : ast1;
584
+ };
585
+
586
+ // methods to evaluate a constant expression
587
+ (function (def){
588
+ // The evaluate method returns an array with one or two
589
+ // elements. If the node has been successfully reduced to a
590
+ // constant, then the second element tells us the value;
591
+ // otherwise the second element is missing. The first element
592
+ // of the array is always an AST_Node descendant; when
593
+ // evaluation was successful it's a node that represents the
594
+ // constant; otherwise it's the original node.
595
+ AST_Node.DEFMETHOD("evaluate", function(compressor){
596
+ if (!compressor.option("evaluate")) return [ this ];
597
+ try {
598
+ var val = this._eval(), ast = make_node_from_constant(compressor, val, this);
599
+ return [ best_of(ast, this), val ];
600
+ } catch(ex) {
601
+ if (ex !== def) throw ex;
602
+ return [ this ];
603
+ }
604
+ });
605
+ def(AST_Statement, function(){
606
+ throw new Error(string_template("Cannot evaluate a statement [{file}:{line},{col}]", this.start));
607
+ });
608
+ def(AST_Function, function(){
609
+ // XXX: AST_Function inherits from AST_Scope, which itself
610
+ // inherits from AST_Statement; however, an AST_Function
611
+ // isn't really a statement. This could byte in other
612
+ // places too. :-( Wish JS had multiple inheritance.
613
+ return [ this ];
614
+ });
615
+ function ev(node) {
616
+ return node._eval();
617
+ };
618
+ def(AST_Node, function(){
619
+ throw def; // not constant
620
+ });
621
+ def(AST_Constant, function(){
622
+ return this.getValue();
623
+ });
624
+ def(AST_UnaryPrefix, function(){
625
+ var e = this.expression;
626
+ switch (this.operator) {
627
+ case "!": return !ev(e);
628
+ case "typeof": return typeof ev(e);
629
+ case "void": return void ev(e);
630
+ case "~": return ~ev(e);
631
+ case "-":
632
+ e = ev(e);
633
+ if (e === 0) throw def;
634
+ return -e;
635
+ case "+": return +ev(e);
636
+ }
637
+ throw def;
638
+ });
639
+ def(AST_Binary, function(){
640
+ var left = this.left, right = this.right;
641
+ switch (this.operator) {
642
+ case "&&" : return ev(left) && ev(right);
643
+ case "||" : return ev(left) || ev(right);
644
+ case "|" : return ev(left) | ev(right);
645
+ case "&" : return ev(left) & ev(right);
646
+ case "^" : return ev(left) ^ ev(right);
647
+ case "+" : return ev(left) + ev(right);
648
+ case "*" : return ev(left) * ev(right);
649
+ case "/" : return ev(left) / ev(right);
650
+ case "%" : return ev(left) % ev(right);
651
+ case "-" : return ev(left) - ev(right);
652
+ case "<<" : return ev(left) << ev(right);
653
+ case ">>" : return ev(left) >> ev(right);
654
+ case ">>>" : return ev(left) >>> ev(right);
655
+ case "==" : return ev(left) == ev(right);
656
+ case "===" : return ev(left) === ev(right);
657
+ case "!=" : return ev(left) != ev(right);
658
+ case "!==" : return ev(left) !== ev(right);
659
+ case "<" : return ev(left) < ev(right);
660
+ case "<=" : return ev(left) <= ev(right);
661
+ case ">" : return ev(left) > ev(right);
662
+ case ">=" : return ev(left) >= ev(right);
663
+ case "in" : return ev(left) in ev(right);
664
+ case "instanceof" : return ev(left) instanceof ev(right);
665
+ }
666
+ throw def;
667
+ });
668
+ def(AST_Conditional, function(){
669
+ return ev(this.condition)
670
+ ? ev(this.consequent)
671
+ : ev(this.alternative);
672
+ });
673
+ def(AST_SymbolRef, function(){
674
+ var d = this.definition();
675
+ if (d && d.constant && d.init) return ev(d.init);
676
+ throw def;
677
+ });
678
+ })(function(node, func){
679
+ node.DEFMETHOD("_eval", func);
680
+ });
681
+
682
+ // method to negate an expression
683
+ (function(def){
684
+ function basic_negation(exp) {
685
+ return make_node(AST_UnaryPrefix, exp, {
686
+ operator: "!",
687
+ expression: exp
688
+ });
689
+ };
690
+ def(AST_Node, function(){
691
+ return basic_negation(this);
692
+ });
693
+ def(AST_Statement, function(){
694
+ throw new Error("Cannot negate a statement");
695
+ });
696
+ def(AST_Function, function(){
697
+ return basic_negation(this);
698
+ });
699
+ def(AST_UnaryPrefix, function(){
700
+ if (this.operator == "!")
701
+ return this.expression;
702
+ return basic_negation(this);
703
+ });
704
+ def(AST_Seq, function(compressor){
705
+ var self = this.clone();
706
+ self.cdr = self.cdr.negate(compressor);
707
+ return self;
708
+ });
709
+ def(AST_Conditional, function(compressor){
710
+ var self = this.clone();
711
+ self.consequent = self.consequent.negate(compressor);
712
+ self.alternative = self.alternative.negate(compressor);
713
+ return best_of(basic_negation(this), self);
714
+ });
715
+ def(AST_Binary, function(compressor){
716
+ var self = this.clone(), op = this.operator;
717
+ if (compressor.option("unsafe_comps")) {
718
+ switch (op) {
719
+ case "<=" : self.operator = ">" ; return self;
720
+ case "<" : self.operator = ">=" ; return self;
721
+ case ">=" : self.operator = "<" ; return self;
722
+ case ">" : self.operator = "<=" ; return self;
723
+ }
724
+ }
725
+ switch (op) {
726
+ case "==" : self.operator = "!="; return self;
727
+ case "!=" : self.operator = "=="; return self;
728
+ case "===": self.operator = "!=="; return self;
729
+ case "!==": self.operator = "==="; return self;
730
+ case "&&":
731
+ self.operator = "||";
732
+ self.left = self.left.negate(compressor);
733
+ self.right = self.right.negate(compressor);
734
+ return best_of(basic_negation(this), self);
735
+ case "||":
736
+ self.operator = "&&";
737
+ self.left = self.left.negate(compressor);
738
+ self.right = self.right.negate(compressor);
739
+ return best_of(basic_negation(this), self);
740
+ }
741
+ return basic_negation(this);
742
+ });
743
+ })(function(node, func){
744
+ node.DEFMETHOD("negate", function(compressor){
745
+ return func.call(this, compressor);
746
+ });
747
+ });
748
+
749
+ // determine if expression has side effects
750
+ (function(def){
751
+ def(AST_Node, function(){ return true });
752
+
753
+ def(AST_EmptyStatement, function(){ return false });
754
+ def(AST_Constant, function(){ return false });
755
+ def(AST_This, function(){ return false });
756
+
757
+ def(AST_Block, function(){
758
+ for (var i = this.body.length; --i >= 0;) {
759
+ if (this.body[i].has_side_effects())
760
+ return true;
761
+ }
762
+ return false;
763
+ });
764
+
765
+ def(AST_SimpleStatement, function(){
766
+ return this.body.has_side_effects();
767
+ });
768
+ def(AST_Defun, function(){ return true });
769
+ def(AST_Function, function(){ return false });
770
+ def(AST_Binary, function(){
771
+ return this.left.has_side_effects()
772
+ || this.right.has_side_effects();
773
+ });
774
+ def(AST_Assign, function(){ return true });
775
+ def(AST_Conditional, function(){
776
+ return this.condition.has_side_effects()
777
+ || this.consequent.has_side_effects()
778
+ || this.alternative.has_side_effects();
779
+ });
780
+ def(AST_Unary, function(){
781
+ return this.operator == "delete"
782
+ || this.operator == "++"
783
+ || this.operator == "--"
784
+ || this.expression.has_side_effects();
785
+ });
786
+ def(AST_SymbolRef, function(){ return false });
787
+ def(AST_Object, function(){
788
+ for (var i = this.properties.length; --i >= 0;)
789
+ if (this.properties[i].has_side_effects())
790
+ return true;
791
+ return false;
792
+ });
793
+ def(AST_ObjectProperty, function(){
794
+ return this.value.has_side_effects();
795
+ });
796
+ def(AST_Array, function(){
797
+ for (var i = this.elements.length; --i >= 0;)
798
+ if (this.elements[i].has_side_effects())
799
+ return true;
800
+ return false;
801
+ });
802
+ // def(AST_Dot, function(){
803
+ // return this.expression.has_side_effects();
804
+ // });
805
+ // def(AST_Sub, function(){
806
+ // return this.expression.has_side_effects()
807
+ // || this.property.has_side_effects();
808
+ // });
809
+ def(AST_PropAccess, function(){
810
+ return true;
811
+ });
812
+ def(AST_Seq, function(){
813
+ return this.car.has_side_effects()
814
+ || this.cdr.has_side_effects();
815
+ });
816
+ })(function(node, func){
817
+ node.DEFMETHOD("has_side_effects", func);
818
+ });
819
+
820
+ // tell me if a statement aborts
821
+ function aborts(thing) {
822
+ return thing && thing.aborts();
823
+ };
824
+ (function(def){
825
+ def(AST_Statement, function(){ return null });
826
+ def(AST_Jump, function(){ return this });
827
+ function block_aborts(){
828
+ var n = this.body.length;
829
+ return n > 0 && aborts(this.body[n - 1]);
830
+ };
831
+ def(AST_BlockStatement, block_aborts);
832
+ def(AST_SwitchBranch, block_aborts);
833
+ def(AST_If, function(){
834
+ return this.alternative && aborts(this.body) && aborts(this.alternative);
835
+ });
836
+ })(function(node, func){
837
+ node.DEFMETHOD("aborts", func);
838
+ });
839
+
840
+ /* -----[ optimizers ]----- */
841
+
842
+ OPT(AST_Directive, function(self, compressor){
843
+ if (self.scope.has_directive(self.value) !== self.scope) {
844
+ return make_node(AST_EmptyStatement, self);
845
+ }
846
+ return self;
847
+ });
848
+
849
+ OPT(AST_Debugger, function(self, compressor){
850
+ if (compressor.option("drop_debugger"))
851
+ return make_node(AST_EmptyStatement, self);
852
+ return self;
853
+ });
854
+
855
+ OPT(AST_LabeledStatement, function(self, compressor){
856
+ if (self.body instanceof AST_Break
857
+ && compressor.loopcontrol_target(self.body.label) === self.body) {
858
+ return make_node(AST_EmptyStatement, self);
859
+ }
860
+ return self.label.references.length == 0 ? self.body : self;
861
+ });
862
+
863
+ OPT(AST_Block, function(self, compressor){
864
+ self.body = tighten_body(self.body, compressor);
865
+ return self;
866
+ });
867
+
868
+ OPT(AST_BlockStatement, function(self, compressor){
869
+ self.body = tighten_body(self.body, compressor);
870
+ switch (self.body.length) {
871
+ case 1: return self.body[0];
872
+ case 0: return make_node(AST_EmptyStatement, self);
873
+ }
874
+ return self;
875
+ });
876
+
877
+ AST_Scope.DEFMETHOD("drop_unused", function(compressor){
878
+ var self = this;
879
+ if (compressor.option("unused")
880
+ && !(self instanceof AST_Toplevel)
881
+ && !self.uses_eval
882
+ ) {
883
+ var in_use = [];
884
+ var initializations = new Dictionary();
885
+ // pass 1: find out which symbols are directly used in
886
+ // this scope (not in nested scopes).
887
+ var scope = this;
888
+ var tw = new TreeWalker(function(node, descend){
889
+ if (node !== self) {
890
+ if (node instanceof AST_Defun) {
891
+ initializations.add(node.name.name, node);
892
+ return true; // don't go in nested scopes
893
+ }
894
+ if (node instanceof AST_Definitions && scope === self) {
895
+ node.definitions.forEach(function(def){
896
+ if (def.value) {
897
+ initializations.add(def.name.name, def.value);
898
+ if (def.value.has_side_effects()) {
899
+ def.value.walk(tw);
900
+ }
901
+ }
902
+ });
903
+ return true;
904
+ }
905
+ if (node instanceof AST_SymbolRef) {
906
+ push_uniq(in_use, node.definition());
907
+ return true;
908
+ }
909
+ if (node instanceof AST_Scope) {
910
+ var save_scope = scope;
911
+ scope = node;
912
+ descend();
913
+ scope = save_scope;
914
+ return true;
915
+ }
916
+ }
917
+ });
918
+ self.walk(tw);
919
+ // pass 2: for every used symbol we need to walk its
920
+ // initialization code to figure out if it uses other
921
+ // symbols (that may not be in_use).
922
+ for (var i = 0; i < in_use.length; ++i) {
923
+ in_use[i].orig.forEach(function(decl){
924
+ // undeclared globals will be instanceof AST_SymbolRef
925
+ var init = initializations.get(decl.name);
926
+ if (init) init.forEach(function(init){
927
+ var tw = new TreeWalker(function(node){
928
+ if (node instanceof AST_SymbolRef) {
929
+ push_uniq(in_use, node.definition());
930
+ }
931
+ });
932
+ init.walk(tw);
933
+ });
934
+ });
935
+ }
936
+ // pass 3: we should drop declarations not in_use
937
+ var tt = new TreeTransformer(
938
+ function before(node, descend, in_list) {
939
+ if (node instanceof AST_Lambda) {
940
+ for (var a = node.argnames, i = a.length; --i >= 0;) {
941
+ var sym = a[i];
942
+ if (sym.unreferenced()) {
943
+ a.pop();
944
+ compressor.warn("Dropping unused function argument {name} [{file}:{line},{col}]", {
945
+ name : sym.name,
946
+ file : sym.start.file,
947
+ line : sym.start.line,
948
+ col : sym.start.col
949
+ });
950
+ }
951
+ else break;
952
+ }
953
+ }
954
+ if (node instanceof AST_Defun && node !== self) {
955
+ if (!member(node.name.definition(), in_use)) {
956
+ compressor.warn("Dropping unused function {name} [{file}:{line},{col}]", {
957
+ name : node.name.name,
958
+ file : node.name.start.file,
959
+ line : node.name.start.line,
960
+ col : node.name.start.col
961
+ });
962
+ return make_node(AST_EmptyStatement, node);
963
+ }
964
+ return node;
965
+ }
966
+ if (node instanceof AST_Definitions && !(tt.parent() instanceof AST_ForIn)) {
967
+ var def = node.definitions.filter(function(def){
968
+ if (member(def.name.definition(), in_use)) return true;
969
+ var w = {
970
+ name : def.name.name,
971
+ file : def.name.start.file,
972
+ line : def.name.start.line,
973
+ col : def.name.start.col
974
+ };
975
+ if (def.value && def.value.has_side_effects()) {
976
+ def._unused_side_effects = true;
977
+ compressor.warn("Side effects in initialization of unused variable {name} [{file}:{line},{col}]", w);
978
+ return true;
979
+ }
980
+ compressor.warn("Dropping unused variable {name} [{file}:{line},{col}]", w);
981
+ return false;
982
+ });
983
+ // place uninitialized names at the start
984
+ def = mergeSort(def, function(a, b){
985
+ if (!a.value && b.value) return -1;
986
+ if (!b.value && a.value) return 1;
987
+ return 0;
988
+ });
989
+ // for unused names whose initialization has
990
+ // side effects, we can cascade the init. code
991
+ // into the next one, or next statement.
992
+ var side_effects = [];
993
+ for (var i = 0; i < def.length;) {
994
+ var x = def[i];
995
+ if (x._unused_side_effects) {
996
+ side_effects.push(x.value);
997
+ def.splice(i, 1);
998
+ } else {
999
+ if (side_effects.length > 0) {
1000
+ side_effects.push(x.value);
1001
+ x.value = AST_Seq.from_array(side_effects);
1002
+ side_effects = [];
1003
+ }
1004
+ ++i;
1005
+ }
1006
+ }
1007
+ if (side_effects.length > 0) {
1008
+ side_effects = make_node(AST_BlockStatement, node, {
1009
+ body: [ make_node(AST_SimpleStatement, node, {
1010
+ body: AST_Seq.from_array(side_effects)
1011
+ }) ]
1012
+ });
1013
+ } else {
1014
+ side_effects = null;
1015
+ }
1016
+ if (def.length == 0 && !side_effects) {
1017
+ return make_node(AST_EmptyStatement, node);
1018
+ }
1019
+ if (def.length == 0) {
1020
+ return side_effects;
1021
+ }
1022
+ node.definitions = def;
1023
+ if (side_effects) {
1024
+ side_effects.body.unshift(node);
1025
+ node = side_effects;
1026
+ }
1027
+ return node;
1028
+ }
1029
+ if (node instanceof AST_For && node.init instanceof AST_BlockStatement) {
1030
+ descend(node, this);
1031
+ // certain combination of unused name + side effect leads to:
1032
+ // https://github.com/mishoo/UglifyJS2/issues/44
1033
+ // that's an invalid AST.
1034
+ // We fix it at this stage by moving the `var` outside the `for`.
1035
+ var body = node.init.body.slice(0, -1);
1036
+ node.init = node.init.body.slice(-1)[0].body;
1037
+ body.push(node);
1038
+ return in_list ? MAP.splice(body) : make_node(AST_BlockStatement, node, {
1039
+ body: body
1040
+ });
1041
+ }
1042
+ if (node instanceof AST_Scope && node !== self)
1043
+ return node;
1044
+ }
1045
+ );
1046
+ self.transform(tt);
1047
+ }
1048
+ });
1049
+
1050
+ AST_Scope.DEFMETHOD("hoist_declarations", function(compressor){
1051
+ var hoist_funs = compressor.option("hoist_funs");
1052
+ var hoist_vars = compressor.option("hoist_vars");
1053
+ var self = this;
1054
+ if (hoist_funs || hoist_vars) {
1055
+ var dirs = [];
1056
+ var hoisted = [];
1057
+ var vars = new Dictionary(), vars_found = 0, var_decl = 0;
1058
+ // let's count var_decl first, we seem to waste a lot of
1059
+ // space if we hoist `var` when there's only one.
1060
+ self.walk(new TreeWalker(function(node){
1061
+ if (node instanceof AST_Scope && node !== self)
1062
+ return true;
1063
+ if (node instanceof AST_Var) {
1064
+ ++var_decl;
1065
+ return true;
1066
+ }
1067
+ }));
1068
+ hoist_vars = hoist_vars && var_decl > 1;
1069
+ var tt = new TreeTransformer(
1070
+ function before(node) {
1071
+ if (node !== self) {
1072
+ if (node instanceof AST_Directive) {
1073
+ dirs.push(node);
1074
+ return make_node(AST_EmptyStatement, node);
1075
+ }
1076
+ if (node instanceof AST_Defun && hoist_funs) {
1077
+ hoisted.push(node);
1078
+ return make_node(AST_EmptyStatement, node);
1079
+ }
1080
+ if (node instanceof AST_Var && hoist_vars) {
1081
+ node.definitions.forEach(function(def){
1082
+ vars.set(def.name.name, def);
1083
+ ++vars_found;
1084
+ });
1085
+ var seq = node.to_assignments();
1086
+ var p = tt.parent();
1087
+ if (p instanceof AST_ForIn && p.init === node) {
1088
+ if (seq == null) return node.definitions[0].name;
1089
+ return seq;
1090
+ }
1091
+ if (p instanceof AST_For && p.init === node) {
1092
+ return seq;
1093
+ }
1094
+ if (!seq) return make_node(AST_EmptyStatement, node);
1095
+ return make_node(AST_SimpleStatement, node, {
1096
+ body: seq
1097
+ });
1098
+ }
1099
+ if (node instanceof AST_Scope)
1100
+ return node; // to avoid descending in nested scopes
1101
+ }
1102
+ }
1103
+ );
1104
+ self = self.transform(tt);
1105
+ if (vars_found > 0) {
1106
+ // collect only vars which don't show up in self's arguments list
1107
+ var defs = [];
1108
+ vars.each(function(def, name){
1109
+ if (self instanceof AST_Lambda
1110
+ && find_if(function(x){ return x.name == def.name.name },
1111
+ self.argnames)) {
1112
+ vars.del(name);
1113
+ } else {
1114
+ def = def.clone();
1115
+ def.value = null;
1116
+ defs.push(def);
1117
+ vars.set(name, def);
1118
+ }
1119
+ });
1120
+ if (defs.length > 0) {
1121
+ // try to merge in assignments
1122
+ for (var i = 0; i < self.body.length;) {
1123
+ if (self.body[i] instanceof AST_SimpleStatement) {
1124
+ var expr = self.body[i].body, sym, assign;
1125
+ if (expr instanceof AST_Assign
1126
+ && expr.operator == "="
1127
+ && (sym = expr.left) instanceof AST_Symbol
1128
+ && vars.has(sym.name))
1129
+ {
1130
+ var def = vars.get(sym.name);
1131
+ if (def.value) break;
1132
+ def.value = expr.right;
1133
+ remove(defs, def);
1134
+ defs.push(def);
1135
+ self.body.splice(i, 1);
1136
+ continue;
1137
+ }
1138
+ if (expr instanceof AST_Seq
1139
+ && (assign = expr.car) instanceof AST_Assign
1140
+ && assign.operator == "="
1141
+ && (sym = assign.left) instanceof AST_Symbol
1142
+ && vars.has(sym.name))
1143
+ {
1144
+ var def = vars.get(sym.name);
1145
+ if (def.value) break;
1146
+ def.value = assign.right;
1147
+ remove(defs, def);
1148
+ defs.push(def);
1149
+ self.body[i].body = expr.cdr;
1150
+ continue;
1151
+ }
1152
+ }
1153
+ if (self.body[i] instanceof AST_EmptyStatement) {
1154
+ self.body.splice(i, 1);
1155
+ continue;
1156
+ }
1157
+ if (self.body[i] instanceof AST_BlockStatement) {
1158
+ var tmp = [ i, 1 ].concat(self.body[i].body);
1159
+ self.body.splice.apply(self.body, tmp);
1160
+ continue;
1161
+ }
1162
+ break;
1163
+ }
1164
+ defs = make_node(AST_Var, self, {
1165
+ definitions: defs
1166
+ });
1167
+ hoisted.push(defs);
1168
+ };
1169
+ }
1170
+ self.body = dirs.concat(hoisted, self.body);
1171
+ }
1172
+ return self;
1173
+ });
1174
+
1175
+ OPT(AST_SimpleStatement, function(self, compressor){
1176
+ if (compressor.option("side_effects")) {
1177
+ if (!self.body.has_side_effects()) {
1178
+ compressor.warn("Dropping side-effect-free statement [{file}:{line},{col}]", self.start);
1179
+ return make_node(AST_EmptyStatement, self);
1180
+ }
1181
+ }
1182
+ return self;
1183
+ });
1184
+
1185
+ OPT(AST_DWLoop, function(self, compressor){
1186
+ var cond = self.condition.evaluate(compressor);
1187
+ self.condition = cond[0];
1188
+ if (!compressor.option("loops")) return self;
1189
+ if (cond.length > 1) {
1190
+ if (cond[1]) {
1191
+ return make_node(AST_For, self, {
1192
+ body: self.body
1193
+ });
1194
+ } else if (self instanceof AST_While) {
1195
+ if (compressor.option("dead_code")) {
1196
+ var a = [];
1197
+ extract_declarations_from_unreachable_code(compressor, self.body, a);
1198
+ return make_node(AST_BlockStatement, self, { body: a });
1199
+ }
1200
+ } else {
1201
+ return self.body;
1202
+ }
1203
+ }
1204
+ return self;
1205
+ });
1206
+
1207
+ function if_break_in_loop(self, compressor) {
1208
+ function drop_it(rest) {
1209
+ rest = as_statement_array(rest);
1210
+ if (self.body instanceof AST_BlockStatement) {
1211
+ self.body = self.body.clone();
1212
+ self.body.body = rest.concat(self.body.body.slice(1));
1213
+ self.body = self.body.transform(compressor);
1214
+ } else {
1215
+ self.body = make_node(AST_BlockStatement, self.body, {
1216
+ body: rest
1217
+ }).transform(compressor);
1218
+ }
1219
+ if_break_in_loop(self, compressor);
1220
+ }
1221
+ var first = self.body instanceof AST_BlockStatement ? self.body.body[0] : self.body;
1222
+ if (first instanceof AST_If) {
1223
+ if (first.body instanceof AST_Break
1224
+ && compressor.loopcontrol_target(first.body.label) === self) {
1225
+ if (self.condition) {
1226
+ self.condition = make_node(AST_Binary, self.condition, {
1227
+ left: self.condition,
1228
+ operator: "&&",
1229
+ right: first.condition.negate(compressor),
1230
+ });
1231
+ } else {
1232
+ self.condition = first.condition.negate(compressor);
1233
+ }
1234
+ drop_it(first.alternative);
1235
+ }
1236
+ else if (first.alternative instanceof AST_Break
1237
+ && compressor.loopcontrol_target(first.alternative.label) === self) {
1238
+ if (self.condition) {
1239
+ self.condition = make_node(AST_Binary, self.condition, {
1240
+ left: self.condition,
1241
+ operator: "&&",
1242
+ right: first.condition,
1243
+ });
1244
+ } else {
1245
+ self.condition = first.condition;
1246
+ }
1247
+ drop_it(first.body);
1248
+ }
1249
+ }
1250
+ };
1251
+
1252
+ OPT(AST_While, function(self, compressor) {
1253
+ if (!compressor.option("loops")) return self;
1254
+ self = AST_DWLoop.prototype.optimize.call(self, compressor);
1255
+ if (self instanceof AST_While) {
1256
+ if_break_in_loop(self, compressor);
1257
+ self = make_node(AST_For, self, self).transform(compressor);
1258
+ }
1259
+ return self;
1260
+ });
1261
+
1262
+ OPT(AST_For, function(self, compressor){
1263
+ var cond = self.condition;
1264
+ if (cond) {
1265
+ cond = cond.evaluate(compressor);
1266
+ self.condition = cond[0];
1267
+ }
1268
+ if (!compressor.option("loops")) return self;
1269
+ if (cond) {
1270
+ if (cond.length > 1 && !cond[1]) {
1271
+ if (compressor.option("dead_code")) {
1272
+ var a = [];
1273
+ if (self.init instanceof AST_Statement) {
1274
+ a.push(self.init);
1275
+ }
1276
+ else if (self.init) {
1277
+ a.push(make_node(AST_SimpleStatement, self.init, {
1278
+ body: self.init
1279
+ }));
1280
+ }
1281
+ extract_declarations_from_unreachable_code(compressor, self.body, a);
1282
+ return make_node(AST_BlockStatement, self, { body: a });
1283
+ }
1284
+ }
1285
+ }
1286
+ if_break_in_loop(self, compressor);
1287
+ return self;
1288
+ });
1289
+
1290
+ OPT(AST_If, function(self, compressor){
1291
+ if (!compressor.option("conditionals")) return self;
1292
+ // if condition can be statically determined, warn and drop
1293
+ // one of the blocks. note, statically determined implies
1294
+ // “has no side effects”; also it doesn't work for cases like
1295
+ // `x && true`, though it probably should.
1296
+ var cond = self.condition.evaluate(compressor);
1297
+ self.condition = cond[0];
1298
+ if (cond.length > 1) {
1299
+ if (cond[1]) {
1300
+ compressor.warn("Condition always true [{file}:{line},{col}]", self.condition.start);
1301
+ if (compressor.option("dead_code")) {
1302
+ var a = [];
1303
+ if (self.alternative) {
1304
+ extract_declarations_from_unreachable_code(compressor, self.alternative, a);
1305
+ }
1306
+ a.push(self.body);
1307
+ return make_node(AST_BlockStatement, self, { body: a }).transform(compressor);
1308
+ }
1309
+ } else {
1310
+ compressor.warn("Condition always false [{file}:{line},{col}]", self.condition.start);
1311
+ if (compressor.option("dead_code")) {
1312
+ var a = [];
1313
+ extract_declarations_from_unreachable_code(compressor, self.body, a);
1314
+ if (self.alternative) a.push(self.alternative);
1315
+ return make_node(AST_BlockStatement, self, { body: a }).transform(compressor);
1316
+ }
1317
+ }
1318
+ }
1319
+ if (is_empty(self.alternative)) self.alternative = null;
1320
+ var negated = self.condition.negate(compressor);
1321
+ var negated_is_best = best_of(self.condition, negated) === negated;
1322
+ if (self.alternative && negated_is_best) {
1323
+ negated_is_best = false; // because we already do the switch here.
1324
+ self.condition = negated;
1325
+ var tmp = self.body;
1326
+ self.body = self.alternative || make_node(AST_EmptyStatement);
1327
+ self.alternative = tmp;
1328
+ }
1329
+ if (is_empty(self.body) && is_empty(self.alternative)) {
1330
+ return make_node(AST_SimpleStatement, self.condition, {
1331
+ body: self.condition
1332
+ }).transform(compressor);
1333
+ }
1334
+ if (self.body instanceof AST_SimpleStatement
1335
+ && self.alternative instanceof AST_SimpleStatement) {
1336
+ return make_node(AST_SimpleStatement, self, {
1337
+ body: make_node(AST_Conditional, self, {
1338
+ condition : self.condition,
1339
+ consequent : self.body.body,
1340
+ alternative : self.alternative.body
1341
+ })
1342
+ }).transform(compressor);
1343
+ }
1344
+ if (is_empty(self.alternative) && self.body instanceof AST_SimpleStatement) {
1345
+ if (negated_is_best) return make_node(AST_SimpleStatement, self, {
1346
+ body: make_node(AST_Binary, self, {
1347
+ operator : "||",
1348
+ left : negated,
1349
+ right : self.body.body
1350
+ })
1351
+ }).transform(compressor);
1352
+ return make_node(AST_SimpleStatement, self, {
1353
+ body: make_node(AST_Binary, self, {
1354
+ operator : "&&",
1355
+ left : self.condition,
1356
+ right : self.body.body
1357
+ })
1358
+ }).transform(compressor);
1359
+ }
1360
+ if (self.body instanceof AST_EmptyStatement
1361
+ && self.alternative
1362
+ && self.alternative instanceof AST_SimpleStatement) {
1363
+ return make_node(AST_SimpleStatement, self, {
1364
+ body: make_node(AST_Binary, self, {
1365
+ operator : "||",
1366
+ left : self.condition,
1367
+ right : self.alternative.body
1368
+ })
1369
+ }).transform(compressor);
1370
+ }
1371
+ if (self.body instanceof AST_Exit
1372
+ && self.alternative instanceof AST_Exit
1373
+ && self.body.TYPE == self.alternative.TYPE) {
1374
+ return make_node(self.body.CTOR, self, {
1375
+ value: make_node(AST_Conditional, self, {
1376
+ condition : self.condition,
1377
+ consequent : self.body.value || make_node(AST_Undefined, self.body).optimize(compressor),
1378
+ alternative : self.alternative.value || make_node(AST_Undefined, self.alternative).optimize(compressor)
1379
+ })
1380
+ }).transform(compressor);
1381
+ }
1382
+ if (self.body instanceof AST_If
1383
+ && !self.body.alternative
1384
+ && !self.alternative) {
1385
+ self.condition = make_node(AST_Binary, self.condition, {
1386
+ operator: "&&",
1387
+ left: self.condition,
1388
+ right: self.body.condition
1389
+ }).transform(compressor);
1390
+ self.body = self.body.body;
1391
+ }
1392
+ if (aborts(self.body)) {
1393
+ if (self.alternative) {
1394
+ var alt = self.alternative;
1395
+ self.alternative = null;
1396
+ return make_node(AST_BlockStatement, self, {
1397
+ body: [ self, alt ]
1398
+ }).transform(compressor);
1399
+ }
1400
+ }
1401
+ if (aborts(self.alternative)) {
1402
+ var body = self.body;
1403
+ self.body = self.alternative;
1404
+ self.condition = negated_is_best ? negated : self.condition.negate(compressor);
1405
+ self.alternative = null;
1406
+ return make_node(AST_BlockStatement, self, {
1407
+ body: [ self, body ]
1408
+ }).transform(compressor);
1409
+ }
1410
+ return self;
1411
+ });
1412
+
1413
+ OPT(AST_Switch, function(self, compressor){
1414
+ if (self.body.length == 0 && compressor.option("conditionals")) {
1415
+ return make_node(AST_SimpleStatement, self, {
1416
+ body: self.expression
1417
+ }).transform(compressor);
1418
+ }
1419
+ var last_branch = self.body[self.body.length - 1];
1420
+ if (last_branch) {
1421
+ var stat = last_branch.body[last_branch.body.length - 1]; // last statement
1422
+ if (stat instanceof AST_Break && loop_body(compressor.loopcontrol_target(stat.label)) === self)
1423
+ last_branch.body.pop();
1424
+ }
1425
+ var exp = self.expression.evaluate(compressor);
1426
+ out: if (exp.length == 2) try {
1427
+ // constant expression
1428
+ self.expression = exp[0];
1429
+ if (!compressor.option("dead_code")) break out;
1430
+ var value = exp[1];
1431
+ var in_if = false;
1432
+ var in_block = false;
1433
+ var started = false;
1434
+ var stopped = false;
1435
+ var ruined = false;
1436
+ var tt = new TreeTransformer(function(node, descend, in_list){
1437
+ if (node instanceof AST_Lambda || node instanceof AST_SimpleStatement) {
1438
+ // no need to descend these node types
1439
+ return node;
1440
+ }
1441
+ else if (node instanceof AST_Switch && node === self) {
1442
+ node = node.clone();
1443
+ descend(node, this);
1444
+ return ruined ? node : make_node(AST_BlockStatement, node, {
1445
+ body: node.body.reduce(function(a, branch){
1446
+ return a.concat(branch.body);
1447
+ }, [])
1448
+ }).transform(compressor);
1449
+ }
1450
+ else if (node instanceof AST_If || node instanceof AST_Try) {
1451
+ var save = in_if;
1452
+ in_if = !in_block;
1453
+ descend(node, this);
1454
+ in_if = save;
1455
+ return node;
1456
+ }
1457
+ else if (node instanceof AST_StatementWithBody || node instanceof AST_Switch) {
1458
+ var save = in_block;
1459
+ in_block = true;
1460
+ descend(node, this);
1461
+ in_block = save;
1462
+ return node;
1463
+ }
1464
+ else if (node instanceof AST_Break && this.loopcontrol_target(node.label) === self) {
1465
+ if (in_if) {
1466
+ ruined = true;
1467
+ return node;
1468
+ }
1469
+ if (in_block) return node;
1470
+ stopped = true;
1471
+ return in_list ? MAP.skip : make_node(AST_EmptyStatement, node);
1472
+ }
1473
+ else if (node instanceof AST_SwitchBranch && this.parent() === self) {
1474
+ if (stopped) return MAP.skip;
1475
+ if (node instanceof AST_Case) {
1476
+ var exp = node.expression.evaluate(compressor);
1477
+ if (exp.length < 2) {
1478
+ // got a case with non-constant expression, baling out
1479
+ throw self;
1480
+ }
1481
+ if (exp[1] === value || started) {
1482
+ started = true;
1483
+ if (aborts(node)) stopped = true;
1484
+ descend(node, this);
1485
+ return node;
1486
+ }
1487
+ return MAP.skip;
1488
+ }
1489
+ descend(node, this);
1490
+ return node;
1491
+ }
1492
+ });
1493
+ tt.stack = compressor.stack.slice(); // so that's able to see parent nodes
1494
+ self = self.transform(tt);
1495
+ } catch(ex) {
1496
+ if (ex !== self) throw ex;
1497
+ }
1498
+ return self;
1499
+ });
1500
+
1501
+ OPT(AST_Case, function(self, compressor){
1502
+ self.body = tighten_body(self.body, compressor);
1503
+ return self;
1504
+ });
1505
+
1506
+ OPT(AST_Try, function(self, compressor){
1507
+ self.body = tighten_body(self.body, compressor);
1508
+ return self;
1509
+ });
1510
+
1511
+ AST_Definitions.DEFMETHOD("remove_initializers", function(){
1512
+ this.definitions.forEach(function(def){ def.value = null });
1513
+ });
1514
+
1515
+ AST_Definitions.DEFMETHOD("to_assignments", function(){
1516
+ var assignments = this.definitions.reduce(function(a, def){
1517
+ if (def.value) {
1518
+ var name = make_node(AST_SymbolRef, def.name, def.name);
1519
+ a.push(make_node(AST_Assign, def, {
1520
+ operator : "=",
1521
+ left : name,
1522
+ right : def.value
1523
+ }));
1524
+ }
1525
+ return a;
1526
+ }, []);
1527
+ if (assignments.length == 0) return null;
1528
+ return AST_Seq.from_array(assignments);
1529
+ });
1530
+
1531
+ OPT(AST_Definitions, function(self, compressor){
1532
+ if (self.definitions.length == 0)
1533
+ return make_node(AST_EmptyStatement, self);
1534
+ return self;
1535
+ });
1536
+
1537
+ OPT(AST_Function, function(self, compressor){
1538
+ self = AST_Lambda.prototype.optimize.call(self, compressor);
1539
+ if (compressor.option("unused")) {
1540
+ if (self.name && self.name.unreferenced()) {
1541
+ self.name = null;
1542
+ }
1543
+ }
1544
+ return self;
1545
+ });
1546
+
1547
+ OPT(AST_Call, function(self, compressor){
1548
+ if (compressor.option("unsafe")) {
1549
+ var exp = self.expression;
1550
+ if (exp instanceof AST_SymbolRef && exp.undeclared()) {
1551
+ switch (exp.name) {
1552
+ case "Array":
1553
+ if (self.args.length != 1) {
1554
+ return make_node(AST_Array, self, {
1555
+ elements: self.args
1556
+ });
1557
+ }
1558
+ break;
1559
+ case "Object":
1560
+ if (self.args.length == 0) {
1561
+ return make_node(AST_Object, self, {
1562
+ properties: []
1563
+ });
1564
+ }
1565
+ break;
1566
+ case "String":
1567
+ if (self.args.length == 0) return make_node(AST_String, self, {
1568
+ value: ""
1569
+ });
1570
+ return make_node(AST_Binary, self, {
1571
+ left: self.args[0],
1572
+ operator: "+",
1573
+ right: make_node(AST_String, self, { value: "" })
1574
+ });
1575
+ }
1576
+ }
1577
+ else if (exp instanceof AST_Dot && exp.property == "toString" && self.args.length == 0) {
1578
+ return make_node(AST_Binary, self, {
1579
+ left: make_node(AST_String, self, { value: "" }),
1580
+ operator: "+",
1581
+ right: exp.expression
1582
+ }).transform(compressor);
1583
+ }
1584
+ }
1585
+ if (compressor.option("side_effects")) {
1586
+ if (self.expression instanceof AST_Function
1587
+ && self.args.length == 0
1588
+ && !AST_Block.prototype.has_side_effects.call(self.expression)) {
1589
+ return make_node(AST_Undefined, self).transform(compressor);
1590
+ }
1591
+ }
1592
+ return self;
1593
+ });
1594
+
1595
+ OPT(AST_New, function(self, compressor){
1596
+ if (compressor.option("unsafe")) {
1597
+ var exp = self.expression;
1598
+ if (exp instanceof AST_SymbolRef && exp.undeclared()) {
1599
+ switch (exp.name) {
1600
+ case "Object":
1601
+ case "RegExp":
1602
+ case "Function":
1603
+ case "Error":
1604
+ case "Array":
1605
+ return make_node(AST_Call, self, self).transform(compressor);
1606
+ }
1607
+ }
1608
+ }
1609
+ return self;
1610
+ });
1611
+
1612
+ OPT(AST_Seq, function(self, compressor){
1613
+ if (!compressor.option("side_effects"))
1614
+ return self;
1615
+ if (!self.car.has_side_effects()) {
1616
+ // we shouldn't compress (1,eval)(something) to
1617
+ // eval(something) because that changes the meaning of
1618
+ // eval (becomes lexical instead of global).
1619
+ var p;
1620
+ if (!(self.cdr instanceof AST_SymbolRef
1621
+ && self.cdr.name == "eval"
1622
+ && self.cdr.undeclared()
1623
+ && (p = compressor.parent()) instanceof AST_Call
1624
+ && p.expression === self)) {
1625
+ return self.cdr;
1626
+ }
1627
+ }
1628
+ if (compressor.option("cascade")) {
1629
+ if (self.car instanceof AST_Assign
1630
+ && !self.car.left.has_side_effects()
1631
+ && self.car.left.equivalent_to(self.cdr)) {
1632
+ return self.car;
1633
+ }
1634
+ if (!self.car.has_side_effects()
1635
+ && !self.cdr.has_side_effects()
1636
+ && self.car.equivalent_to(self.cdr)) {
1637
+ return self.car;
1638
+ }
1639
+ }
1640
+ return self;
1641
+ });
1642
+
1643
+ AST_Unary.DEFMETHOD("lift_sequences", function(compressor){
1644
+ if (compressor.option("sequences")) {
1645
+ if (this.expression instanceof AST_Seq) {
1646
+ var seq = this.expression;
1647
+ var x = seq.to_array();
1648
+ this.expression = x.pop();
1649
+ x.push(this);
1650
+ seq = AST_Seq.from_array(x).transform(compressor);
1651
+ return seq;
1652
+ }
1653
+ }
1654
+ return this;
1655
+ });
1656
+
1657
+ OPT(AST_UnaryPostfix, function(self, compressor){
1658
+ return self.lift_sequences(compressor);
1659
+ });
1660
+
1661
+ OPT(AST_UnaryPrefix, function(self, compressor){
1662
+ self = self.lift_sequences(compressor);
1663
+ var e = self.expression;
1664
+ if (compressor.option("booleans") && compressor.in_boolean_context()) {
1665
+ switch (self.operator) {
1666
+ case "!":
1667
+ if (e instanceof AST_UnaryPrefix && e.operator == "!") {
1668
+ // !!foo ==> foo, if we're in boolean context
1669
+ return e.expression;
1670
+ }
1671
+ break;
1672
+ case "typeof":
1673
+ // typeof always returns a non-empty string, thus it's
1674
+ // always true in booleans
1675
+ compressor.warn("Boolean expression always true [{file}:{line},{col}]", self.start);
1676
+ return make_node(AST_True, self);
1677
+ }
1678
+ if (e instanceof AST_Binary && self.operator == "!") {
1679
+ self = best_of(self, e.negate(compressor));
1680
+ }
1681
+ }
1682
+ return self.evaluate(compressor)[0];
1683
+ });
1684
+
1685
+ AST_Binary.DEFMETHOD("lift_sequences", function(compressor){
1686
+ if (compressor.option("sequences")) {
1687
+ if (this.left instanceof AST_Seq) {
1688
+ var seq = this.left;
1689
+ var x = seq.to_array();
1690
+ this.left = x.pop();
1691
+ x.push(this);
1692
+ seq = AST_Seq.from_array(x).transform(compressor);
1693
+ return seq;
1694
+ }
1695
+ if (this.right instanceof AST_Seq
1696
+ && !(this.operator == "||" || this.operator == "&&")
1697
+ && !this.left.has_side_effects()) {
1698
+ var seq = this.right;
1699
+ var x = seq.to_array();
1700
+ this.right = x.pop();
1701
+ x.push(this);
1702
+ seq = AST_Seq.from_array(x).transform(compressor);
1703
+ return seq;
1704
+ }
1705
+ }
1706
+ return this;
1707
+ });
1708
+
1709
+ var commutativeOperators = makePredicate("== === != !== * & | ^");
1710
+
1711
+ OPT(AST_Binary, function(self, compressor){
1712
+ function reverse(op) {
1713
+ if (!(self.left.has_side_effects() && self.right.has_side_effects())) {
1714
+ if (op) self.operator = op;
1715
+ var tmp = self.left;
1716
+ self.left = self.right;
1717
+ self.right = tmp;
1718
+ }
1719
+ };
1720
+ if (commutativeOperators(self.operator)) {
1721
+ if (self.right instanceof AST_Constant
1722
+ && !(self.left instanceof AST_Constant)) {
1723
+ reverse();
1724
+ }
1725
+ }
1726
+ self = self.lift_sequences(compressor);
1727
+ if (compressor.option("comparisons")) switch (self.operator) {
1728
+ case "===":
1729
+ case "!==":
1730
+ if ((self.left.is_string(compressor) && self.right.is_string(compressor)) ||
1731
+ (self.left.is_boolean() && self.right.is_boolean())) {
1732
+ self.operator = self.operator.substr(0, 2);
1733
+ }
1734
+ // XXX: intentionally falling down to the next case
1735
+ case "==":
1736
+ case "!=":
1737
+ if (self.left instanceof AST_String
1738
+ && self.left.value == "undefined"
1739
+ && self.right instanceof AST_UnaryPrefix
1740
+ && self.right.operator == "typeof"
1741
+ && compressor.option("unsafe")) {
1742
+ if (!(self.right.expression instanceof AST_SymbolRef)
1743
+ || !self.right.expression.undeclared()) {
1744
+ self.left = self.right.expression;
1745
+ self.right = make_node(AST_Undefined, self.left).optimize(compressor);
1746
+ if (self.operator.length == 2) self.operator += "=";
1747
+ }
1748
+ }
1749
+ break;
1750
+ }
1751
+ if (compressor.option("booleans") && compressor.in_boolean_context()) switch (self.operator) {
1752
+ case "&&":
1753
+ var ll = self.left.evaluate(compressor);
1754
+ var rr = self.right.evaluate(compressor);
1755
+ if ((ll.length > 1 && !ll[1]) || (rr.length > 1 && !rr[1])) {
1756
+ compressor.warn("Boolean && always false [{file}:{line},{col}]", self.start);
1757
+ return make_node(AST_False, self);
1758
+ }
1759
+ if (ll.length > 1 && ll[1]) {
1760
+ return rr[0];
1761
+ }
1762
+ if (rr.length > 1 && rr[1]) {
1763
+ return ll[0];
1764
+ }
1765
+ break;
1766
+ case "||":
1767
+ var ll = self.left.evaluate(compressor);
1768
+ var rr = self.right.evaluate(compressor);
1769
+ if ((ll.length > 1 && ll[1]) || (rr.length > 1 && rr[1])) {
1770
+ compressor.warn("Boolean || always true [{file}:{line},{col}]", self.start);
1771
+ return make_node(AST_True, self);
1772
+ }
1773
+ if (ll.length > 1 && !ll[1]) {
1774
+ return rr[0];
1775
+ }
1776
+ if (rr.length > 1 && !rr[1]) {
1777
+ return ll[0];
1778
+ }
1779
+ break;
1780
+ case "+":
1781
+ var ll = self.left.evaluate(compressor);
1782
+ var rr = self.right.evaluate(compressor);
1783
+ if ((ll.length > 1 && ll[0] instanceof AST_String && ll[1]) ||
1784
+ (rr.length > 1 && rr[0] instanceof AST_String && rr[1])) {
1785
+ compressor.warn("+ in boolean context always true [{file}:{line},{col}]", self.start);
1786
+ return make_node(AST_True, self);
1787
+ }
1788
+ break;
1789
+ }
1790
+ var exp = self.evaluate(compressor);
1791
+ if (exp.length > 1) {
1792
+ if (best_of(exp[0], self) !== self)
1793
+ return exp[0];
1794
+ }
1795
+ if (compressor.option("comparisons")) {
1796
+ if (!(compressor.parent() instanceof AST_Binary)
1797
+ || compressor.parent() instanceof AST_Assign) {
1798
+ var negated = make_node(AST_UnaryPrefix, self, {
1799
+ operator: "!",
1800
+ expression: self.negate(compressor)
1801
+ });
1802
+ self = best_of(self, negated);
1803
+ }
1804
+ switch (self.operator) {
1805
+ case "<": reverse(">"); break;
1806
+ case "<=": reverse(">="); break;
1807
+ }
1808
+ }
1809
+ if (self.operator == "+" && self.right instanceof AST_String
1810
+ && self.right.getValue() === "" && self.left instanceof AST_Binary
1811
+ && self.left.operator == "+" && self.left.is_string(compressor)) {
1812
+ return self.left;
1813
+ }
1814
+ return self;
1815
+ });
1816
+
1817
+ OPT(AST_SymbolRef, function(self, compressor){
1818
+ if (self.undeclared()) {
1819
+ var defines = compressor.option("global_defs");
1820
+ if (defines && defines.hasOwnProperty(self.name)) {
1821
+ return make_node_from_constant(compressor, defines[self.name], self);
1822
+ }
1823
+ switch (self.name) {
1824
+ case "undefined":
1825
+ return make_node(AST_Undefined, self);
1826
+ case "NaN":
1827
+ return make_node(AST_NaN, self);
1828
+ case "Infinity":
1829
+ return make_node(AST_Infinity, self);
1830
+ }
1831
+ }
1832
+ return self;
1833
+ });
1834
+
1835
+ OPT(AST_Undefined, function(self, compressor){
1836
+ if (compressor.option("unsafe")) {
1837
+ var scope = compressor.find_parent(AST_Scope);
1838
+ var undef = scope.find_variable("undefined");
1839
+ if (undef) {
1840
+ var ref = make_node(AST_SymbolRef, self, {
1841
+ name : "undefined",
1842
+ scope : scope,
1843
+ thedef : undef
1844
+ });
1845
+ ref.reference();
1846
+ return ref;
1847
+ }
1848
+ }
1849
+ return self;
1850
+ });
1851
+
1852
+ var ASSIGN_OPS = [ '+', '-', '/', '*', '%', '>>', '<<', '>>>', '|', '^', '&' ];
1853
+ OPT(AST_Assign, function(self, compressor){
1854
+ self = self.lift_sequences(compressor);
1855
+ if (self.operator == "="
1856
+ && self.left instanceof AST_SymbolRef
1857
+ && self.right instanceof AST_Binary
1858
+ && self.right.left instanceof AST_SymbolRef
1859
+ && self.right.left.name == self.left.name
1860
+ && member(self.right.operator, ASSIGN_OPS)) {
1861
+ self.operator = self.right.operator + "=";
1862
+ self.right = self.right.right;
1863
+ }
1864
+ return self;
1865
+ });
1866
+
1867
+ OPT(AST_Conditional, function(self, compressor){
1868
+ if (!compressor.option("conditionals")) return self;
1869
+ if (self.condition instanceof AST_Seq) {
1870
+ var car = self.condition.car;
1871
+ self.condition = self.condition.cdr;
1872
+ return AST_Seq.cons(car, self);
1873
+ }
1874
+ var cond = self.condition.evaluate(compressor);
1875
+ if (cond.length > 1) {
1876
+ if (cond[1]) {
1877
+ compressor.warn("Condition always true [{file}:{line},{col}]", self.start);
1878
+ return self.consequent;
1879
+ } else {
1880
+ compressor.warn("Condition always false [{file}:{line},{col}]", self.start);
1881
+ return self.alternative;
1882
+ }
1883
+ }
1884
+ var negated = cond[0].negate(compressor);
1885
+ if (best_of(cond[0], negated) === negated) {
1886
+ self = make_node(AST_Conditional, self, {
1887
+ condition: negated,
1888
+ consequent: self.alternative,
1889
+ alternative: self.consequent
1890
+ });
1891
+ }
1892
+ var consequent = self.consequent;
1893
+ var alternative = self.alternative;
1894
+ if (consequent instanceof AST_Assign
1895
+ && alternative instanceof AST_Assign
1896
+ && consequent.operator == alternative.operator
1897
+ && consequent.left.equivalent_to(alternative.left)
1898
+ ) {
1899
+ /*
1900
+ * Stuff like this:
1901
+ * if (foo) exp = something; else exp = something_else;
1902
+ * ==>
1903
+ * exp = foo ? something : something_else;
1904
+ */
1905
+ self = make_node(AST_Assign, self, {
1906
+ operator: consequent.operator,
1907
+ left: consequent.left,
1908
+ right: make_node(AST_Conditional, self, {
1909
+ condition: self.condition,
1910
+ consequent: consequent.right,
1911
+ alternative: alternative.right
1912
+ })
1913
+ });
1914
+ }
1915
+ return self;
1916
+ });
1917
+
1918
+ OPT(AST_Boolean, function(self, compressor){
1919
+ if (compressor.option("booleans")) {
1920
+ var p = compressor.parent();
1921
+ if (p instanceof AST_Binary && (p.operator == "=="
1922
+ || p.operator == "!=")) {
1923
+ compressor.warn("Non-strict equality against boolean: {operator} {value} [{file}:{line},{col}]", {
1924
+ operator : p.operator,
1925
+ value : self.value,
1926
+ file : p.start.file,
1927
+ line : p.start.line,
1928
+ col : p.start.col,
1929
+ });
1930
+ return make_node(AST_Number, self, {
1931
+ value: +self.value
1932
+ });
1933
+ }
1934
+ return make_node(AST_UnaryPrefix, self, {
1935
+ operator: "!",
1936
+ expression: make_node(AST_Number, self, {
1937
+ value: 1 - self.value
1938
+ })
1939
+ });
1940
+ }
1941
+ return self;
1942
+ });
1943
+
1944
+ OPT(AST_Sub, function(self, compressor){
1945
+ var prop = self.property;
1946
+ if (prop instanceof AST_String && compressor.option("properties")) {
1947
+ prop = prop.getValue();
1948
+ if (is_identifier(prop)) {
1949
+ return make_node(AST_Dot, self, {
1950
+ expression : self.expression,
1951
+ property : prop
1952
+ });
1953
+ }
1954
+ }
1955
+ return self;
1956
+ });
1957
+
1958
+ function literals_in_boolean_context(self, compressor) {
1959
+ if (compressor.option("booleans") && compressor.in_boolean_context()) {
1960
+ return make_node(AST_True, self);
1961
+ }
1962
+ return self;
1963
+ };
1964
+ OPT(AST_Array, literals_in_boolean_context);
1965
+ OPT(AST_Object, literals_in_boolean_context);
1966
+ OPT(AST_RegExp, literals_in_boolean_context);
1967
+
1968
+ })();