cssesc-source 0.1.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (908) hide show
  1. checksums.yaml +5 -13
  2. data/vendor/LICENSE-MIT.txt +1 -1
  3. data/vendor/README.md +44 -50
  4. data/vendor/bin/cssesc +103 -109
  5. data/vendor/cssesc.js +114 -161
  6. data/vendor/man/cssesc.1 +2 -2
  7. data/vendor/package-lock.json +1664 -0
  8. data/vendor/package.json +47 -54
  9. metadata +9 -908
  10. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/MIT-LICENSE.txt +0 -21
  11. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/README.md +0 -43
  12. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/bin/stripcolorcodes.js +0 -18
  13. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/index.js +0 -3
  14. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/package.json +0 -42
  15. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/fixture/with-colors +0 -2
  16. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/fixture/without-colors +0 -2
  17. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/stripcolorcodes-test.js +0 -20
  18. data/vendor/node_modules/grunt-shell/package.json +0 -53
  19. data/vendor/node_modules/grunt-shell/readme.md +0 -221
  20. data/vendor/node_modules/grunt-shell/tasks/shell.js +0 -54
  21. data/vendor/node_modules/grunt-template/LICENSE-MIT.txt +0 -20
  22. data/vendor/node_modules/grunt-template/README.md +0 -123
  23. data/vendor/node_modules/grunt-template/package.json +0 -50
  24. data/vendor/node_modules/grunt-template/tasks/template.js +0 -44
  25. data/vendor/node_modules/grunt/CONTRIBUTING.md +0 -1
  26. data/vendor/node_modules/grunt/LICENSE-MIT +0 -22
  27. data/vendor/node_modules/grunt/README.md +0 -16
  28. data/vendor/node_modules/grunt/internal-tasks/bump.js +0 -151
  29. data/vendor/node_modules/grunt/internal-tasks/subgrunt.js +0 -34
  30. data/vendor/node_modules/grunt/lib/grunt.js +0 -156
  31. data/vendor/node_modules/grunt/lib/grunt/cli.js +0 -128
  32. data/vendor/node_modules/grunt/lib/grunt/config.js +0 -118
  33. data/vendor/node_modules/grunt/lib/grunt/event.js +0 -16
  34. data/vendor/node_modules/grunt/lib/grunt/fail.js +0 -84
  35. data/vendor/node_modules/grunt/lib/grunt/file.js +0 -440
  36. data/vendor/node_modules/grunt/lib/grunt/help.js +0 -129
  37. data/vendor/node_modules/grunt/lib/grunt/log.js +0 -352
  38. data/vendor/node_modules/grunt/lib/grunt/option.js +0 -42
  39. data/vendor/node_modules/grunt/lib/grunt/task.js +0 -451
  40. data/vendor/node_modules/grunt/lib/grunt/template.js +0 -95
  41. data/vendor/node_modules/grunt/lib/grunt/util.js +0 -188
  42. data/vendor/node_modules/grunt/lib/util/task.js +0 -323
  43. data/vendor/node_modules/grunt/node_modules/async/LICENSE +0 -19
  44. data/vendor/node_modules/grunt/node_modules/async/Makefile +0 -25
  45. data/vendor/node_modules/grunt/node_modules/async/README.md +0 -1021
  46. data/vendor/node_modules/grunt/node_modules/async/index.js +0 -3
  47. data/vendor/node_modules/grunt/node_modules/async/lib/async.js +0 -692
  48. data/vendor/node_modules/grunt/node_modules/async/package.json +0 -32
  49. data/vendor/node_modules/grunt/node_modules/coffee-script/CNAME +0 -1
  50. data/vendor/node_modules/grunt/node_modules/coffee-script/LICENSE +0 -22
  51. data/vendor/node_modules/grunt/node_modules/coffee-script/README +0 -51
  52. data/vendor/node_modules/grunt/node_modules/coffee-script/Rakefile +0 -78
  53. data/vendor/node_modules/grunt/node_modules/coffee-script/bin/cake +0 -7
  54. data/vendor/node_modules/grunt/node_modules/coffee-script/bin/coffee +0 -7
  55. data/vendor/node_modules/grunt/node_modules/coffee-script/extras/jsl.conf +0 -44
  56. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/browser.js +0 -92
  57. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/cake.js +0 -111
  58. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/coffee-script.js +0 -167
  59. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/command.js +0 -500
  60. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/grammar.js +0 -606
  61. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/helpers.js +0 -77
  62. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/index.js +0 -11
  63. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/lexer.js +0 -788
  64. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/nodes.js +0 -2986
  65. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/optparse.js +0 -138
  66. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/parser.js +0 -683
  67. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/repl.js +0 -261
  68. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/rewriter.js +0 -349
  69. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/scope.js +0 -146
  70. data/vendor/node_modules/grunt/node_modules/coffee-script/package.json +0 -47
  71. data/vendor/node_modules/grunt/node_modules/colors/MIT-LICENSE.txt +0 -22
  72. data/vendor/node_modules/grunt/node_modules/colors/ReadMe.md +0 -77
  73. data/vendor/node_modules/grunt/node_modules/colors/colors.js +0 -342
  74. data/vendor/node_modules/grunt/node_modules/colors/example.html +0 -76
  75. data/vendor/node_modules/grunt/node_modules/colors/example.js +0 -77
  76. data/vendor/node_modules/grunt/node_modules/colors/package.json +0 -29
  77. data/vendor/node_modules/grunt/node_modules/colors/test.js +0 -70
  78. data/vendor/node_modules/grunt/node_modules/colors/themes/winston-dark.js +0 -12
  79. data/vendor/node_modules/grunt/node_modules/colors/themes/winston-light.js +0 -12
  80. data/vendor/node_modules/grunt/node_modules/dateformat/Readme.md +0 -67
  81. data/vendor/node_modules/grunt/node_modules/dateformat/lib/dateformat.js +0 -165
  82. data/vendor/node_modules/grunt/node_modules/dateformat/package.json +0 -20
  83. data/vendor/node_modules/grunt/node_modules/dateformat/test/test_weekofyear.js +0 -4
  84. data/vendor/node_modules/grunt/node_modules/dateformat/test/test_weekofyear.sh +0 -27
  85. data/vendor/node_modules/grunt/node_modules/eventemitter2/README.md +0 -212
  86. data/vendor/node_modules/grunt/node_modules/eventemitter2/index.js +0 -1
  87. data/vendor/node_modules/grunt/node_modules/eventemitter2/lib/eventemitter2.js +0 -561
  88. data/vendor/node_modules/grunt/node_modules/eventemitter2/package.json +0 -62
  89. data/vendor/node_modules/grunt/node_modules/exit/Gruntfile.js +0 -48
  90. data/vendor/node_modules/grunt/node_modules/exit/LICENSE-MIT +0 -22
  91. data/vendor/node_modules/grunt/node_modules/exit/README.md +0 -75
  92. data/vendor/node_modules/grunt/node_modules/exit/lib/exit.js +0 -41
  93. data/vendor/node_modules/grunt/node_modules/exit/package.json +0 -51
  94. data/vendor/node_modules/grunt/node_modules/exit/test/exit_test.js +0 -121
  95. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stderr.txt +0 -10
  96. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stdout-stderr.txt +0 -20
  97. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stdout.txt +0 -10
  98. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stderr.txt +0 -100
  99. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stdout-stderr.txt +0 -200
  100. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stdout.txt +0 -100
  101. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stderr.txt +0 -1000
  102. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stdout-stderr.txt +0 -2000
  103. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stdout.txt +0 -1000
  104. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/create-files.sh +0 -8
  105. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/log-broken.js +0 -23
  106. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/log.js +0 -25
  107. data/vendor/node_modules/grunt/node_modules/findup-sync/Gruntfile.js +0 -25
  108. data/vendor/node_modules/grunt/node_modules/findup-sync/LICENSE-MIT +0 -22
  109. data/vendor/node_modules/grunt/node_modules/findup-sync/README.md +0 -44
  110. data/vendor/node_modules/grunt/node_modules/findup-sync/lib/findup-sync.js +0 -46
  111. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/README.md +0 -164
  112. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.js +0 -5152
  113. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.min.js +0 -42
  114. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.js +0 -4983
  115. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.min.js +0 -40
  116. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.js +0 -4307
  117. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.min.js +0 -34
  118. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json +0 -62
  119. data/vendor/node_modules/grunt/node_modules/findup-sync/package.json +0 -48
  120. data/vendor/node_modules/grunt/node_modules/findup-sync/test/findup-sync_test.js +0 -48
  121. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a.txt +0 -0
  122. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a/b/bar.txt +0 -0
  123. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a/foo.txt +0 -0
  124. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt +0 -0
  125. data/vendor/node_modules/grunt/node_modules/getobject/Gruntfile.js +0 -48
  126. data/vendor/node_modules/grunt/node_modules/getobject/LICENSE-MIT +0 -22
  127. data/vendor/node_modules/grunt/node_modules/getobject/README.md +0 -20
  128. data/vendor/node_modules/grunt/node_modules/getobject/lib/getobject.js +0 -60
  129. data/vendor/node_modules/grunt/node_modules/getobject/package.json +0 -48
  130. data/vendor/node_modules/grunt/node_modules/getobject/test/namespace_test.js +0 -51
  131. data/vendor/node_modules/grunt/node_modules/glob/LICENSE +0 -27
  132. data/vendor/node_modules/grunt/node_modules/glob/README.md +0 -233
  133. data/vendor/node_modules/grunt/node_modules/glob/examples/g.js +0 -9
  134. data/vendor/node_modules/grunt/node_modules/glob/examples/usr-local.js +0 -9
  135. data/vendor/node_modules/grunt/node_modules/glob/glob.js +0 -643
  136. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/LICENSE +0 -27
  137. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/README.md +0 -33
  138. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/graceful-fs.js +0 -442
  139. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/package.json +0 -49
  140. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/test/open.js +0 -46
  141. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/test/ulimit.js +0 -158
  142. data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/README.md +0 -51
  143. data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/inherits.js +0 -29
  144. data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/package.json +0 -30
  145. data/vendor/node_modules/grunt/node_modules/glob/package.json +0 -40
  146. data/vendor/node_modules/grunt/node_modules/glob/test/00-setup.js +0 -176
  147. data/vendor/node_modules/grunt/node_modules/glob/test/bash-comparison.js +0 -63
  148. data/vendor/node_modules/grunt/node_modules/glob/test/bash-results.json +0 -348
  149. data/vendor/node_modules/grunt/node_modules/glob/test/cwd-test.js +0 -55
  150. data/vendor/node_modules/grunt/node_modules/glob/test/mark.js +0 -74
  151. data/vendor/node_modules/grunt/node_modules/glob/test/nocase-nomagic.js +0 -113
  152. data/vendor/node_modules/grunt/node_modules/glob/test/pause-resume.js +0 -73
  153. data/vendor/node_modules/grunt/node_modules/glob/test/root-nomount.js +0 -39
  154. data/vendor/node_modules/grunt/node_modules/glob/test/root.js +0 -46
  155. data/vendor/node_modules/grunt/node_modules/glob/test/zz-cleanup.js +0 -11
  156. data/vendor/node_modules/grunt/node_modules/hooker/LICENSE-MIT +0 -22
  157. data/vendor/node_modules/grunt/node_modules/hooker/README.md +0 -186
  158. data/vendor/node_modules/grunt/node_modules/hooker/child.js +0 -101
  159. data/vendor/node_modules/grunt/node_modules/hooker/dist/ba-hooker.js +0 -169
  160. data/vendor/node_modules/grunt/node_modules/hooker/dist/ba-hooker.min.js +0 -4
  161. data/vendor/node_modules/grunt/node_modules/hooker/grunt.js +0 -47
  162. data/vendor/node_modules/grunt/node_modules/hooker/lib/hooker.js +0 -174
  163. data/vendor/node_modules/grunt/node_modules/hooker/package.json +0 -45
  164. data/vendor/node_modules/grunt/node_modules/hooker/parent.js +0 -17
  165. data/vendor/node_modules/grunt/node_modules/hooker/test/hooker_test.js +0 -435
  166. data/vendor/node_modules/grunt/node_modules/iconv-lite/LICENSE +0 -21
  167. data/vendor/node_modules/grunt/node_modules/iconv-lite/README.md +0 -72
  168. data/vendor/node_modules/grunt/node_modules/iconv-lite/README.md~ +0 -54
  169. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/big5.js +0 -9
  170. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/gbk.js +0 -9
  171. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/singlebyte.js +0 -340
  172. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/table/big5.js +0 -1
  173. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/table/gbk.js +0 -1
  174. data/vendor/node_modules/grunt/node_modules/iconv-lite/generation/generate-big5-table.js +0 -25
  175. data/vendor/node_modules/grunt/node_modules/iconv-lite/generation/generate-singlebyte.js +0 -142
  176. data/vendor/node_modules/grunt/node_modules/iconv-lite/index.js +0 -231
  177. data/vendor/node_modules/grunt/node_modules/iconv-lite/package.json +0 -80
  178. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/big5-test.js +0 -36
  179. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/big5File.txt +0 -13
  180. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/cyrillic-test.js +0 -86
  181. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/gbk-test.js +0 -38
  182. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/gbkFile.txt +0 -14
  183. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/greek-test.js +0 -79
  184. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/main-test.js +0 -55
  185. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/performance.js +0 -67
  186. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/turkish-test.js +0 -90
  187. data/vendor/node_modules/grunt/node_modules/js-yaml/HISTORY.md +0 -155
  188. data/vendor/node_modules/grunt/node_modules/js-yaml/LICENSE +0 -21
  189. data/vendor/node_modules/grunt/node_modules/js-yaml/README.md +0 -249
  190. data/vendor/node_modules/grunt/node_modules/js-yaml/bin/js-yaml.js +0 -125
  191. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/custom_types.js +0 -104
  192. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/custom_types.yaml +0 -18
  193. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/dumper.js +0 -31
  194. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/dumper.json +0 -22
  195. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/sample_document.js +0 -15
  196. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/sample_document.yaml +0 -197
  197. data/vendor/node_modules/grunt/node_modules/js-yaml/index.js +0 -1
  198. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml.js +0 -33
  199. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/common.js +0 -60
  200. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/dumper.js +0 -437
  201. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/exception.js +0 -25
  202. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/loader.js +0 -1549
  203. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/mark.js +0 -78
  204. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/require.js +0 -23
  205. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema.js +0 -103
  206. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/default.js +0 -16
  207. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/minimal.js +0 -13
  208. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/safe.js +0 -25
  209. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type.js +0 -82
  210. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/binary.js +0 -118
  211. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js +0 -74
  212. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/float.js +0 -102
  213. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/int.js +0 -85
  214. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/function.js +0 -56
  215. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +0 -56
  216. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +0 -28
  217. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/map.js +0 -11
  218. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/merge.js +0 -18
  219. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/null.js +0 -36
  220. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/omap.js +0 -53
  221. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/pairs.js +0 -41
  222. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/seq.js +0 -11
  223. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/set.js +0 -31
  224. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/str.js +0 -11
  225. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +0 -91
  226. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/HISTORY.md +0 -109
  227. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/LICENSE +0 -21
  228. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/README.md +0 -239
  229. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +0 -36
  230. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/choice.js +0 -22
  231. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/constants.js +0 -59
  232. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/help.js +0 -13
  233. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +0 -33
  234. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/parents.js +0 -28
  235. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +0 -23
  236. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +0 -49
  237. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/sum.js +0 -35
  238. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +0 -270
  239. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/index.js +0 -1
  240. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action.js +0 -146
  241. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +0 -55
  242. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +0 -47
  243. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +0 -40
  244. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +0 -48
  245. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +0 -50
  246. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +0 -43
  247. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +0 -27
  248. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +0 -26
  249. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +0 -148
  250. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +0 -50
  251. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +0 -481
  252. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +0 -14
  253. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +0 -50
  254. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +0 -54
  255. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +0 -75
  256. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +0 -1165
  257. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/const.js +0 -18
  258. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +0 -88
  259. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +0 -803
  260. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +0 -77
  261. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Gemfile +0 -4
  262. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Gemfile.lock +0 -17
  263. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +0 -814
  264. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Rakefile +0 -23
  265. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +0 -11
  266. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/dist/underscore.string.min.js +0 -1
  267. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +0 -673
  268. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  269. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +0 -73
  270. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/run-qunit.js +0 -45
  271. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/speed.js +0 -148
  272. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/strings.js +0 -685
  273. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/strings_standalone.js +0 -12
  274. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test.html +0 -31
  275. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_standalone.html +0 -18
  276. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/arrays.js +0 -200
  277. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/chaining.js +0 -59
  278. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/collections.js +0 -426
  279. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/functions.js +0 -259
  280. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/index.html +0 -45
  281. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/objects.js +0 -548
  282. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/speed.js +0 -75
  283. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/utility.js +0 -249
  284. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/jquery.js +0 -9404
  285. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/jslitmus.js +0 -670
  286. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/qunit.css +0 -235
  287. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/qunit.js +0 -1977
  288. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/underscore.js +0 -1201
  289. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/CNAME +0 -1
  290. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/CONTRIBUTING.md +0 -9
  291. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +0 -22
  292. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +0 -19
  293. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/favicon.ico +0 -0
  294. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/index.html +0 -2467
  295. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/index.js +0 -1
  296. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +0 -35
  297. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +0 -1
  298. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +0 -1226
  299. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/package.json +0 -50
  300. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/README.md +0 -73
  301. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +0 -117
  302. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +0 -177
  303. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/esprima.js +0 -3908
  304. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/package.json +0 -59
  305. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/compat.js +0 -239
  306. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/reflect.js +0 -422
  307. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/run.js +0 -66
  308. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/runner.js +0 -387
  309. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/test.js +0 -20238
  310. data/vendor/node_modules/grunt/node_modules/js-yaml/package.json +0 -60
  311. data/vendor/node_modules/grunt/node_modules/lodash/README.md +0 -140
  312. data/vendor/node_modules/grunt/node_modules/lodash/lodash.js +0 -4258
  313. data/vendor/node_modules/grunt/node_modules/lodash/lodash.min.js +0 -35
  314. data/vendor/node_modules/grunt/node_modules/lodash/lodash.underscore.js +0 -3688
  315. data/vendor/node_modules/grunt/node_modules/lodash/lodash.underscore.min.js +0 -28
  316. data/vendor/node_modules/grunt/node_modules/lodash/package.json +0 -62
  317. data/vendor/node_modules/grunt/node_modules/minimatch/LICENSE +0 -23
  318. data/vendor/node_modules/grunt/node_modules/minimatch/README.md +0 -218
  319. data/vendor/node_modules/grunt/node_modules/minimatch/minimatch.js +0 -1055
  320. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +0 -14
  321. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/LICENSE +0 -23
  322. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/README.md +0 -97
  323. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +0 -252
  324. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/package.json +0 -33
  325. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/basic.js +0 -369
  326. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +0 -52
  327. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +0 -50
  328. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/LICENSE +0 -27
  329. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/README.md +0 -53
  330. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/bench.js +0 -283
  331. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/package.json +0 -42
  332. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/sigmund.js +0 -39
  333. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/test/basic.js +0 -24
  334. data/vendor/node_modules/grunt/node_modules/minimatch/package.json +0 -40
  335. data/vendor/node_modules/grunt/node_modules/minimatch/test/basic.js +0 -399
  336. data/vendor/node_modules/grunt/node_modules/minimatch/test/brace-expand.js +0 -33
  337. data/vendor/node_modules/grunt/node_modules/minimatch/test/caching.js +0 -14
  338. data/vendor/node_modules/grunt/node_modules/minimatch/test/defaults.js +0 -274
  339. data/vendor/node_modules/grunt/node_modules/minimatch/test/extglob-ending-with-state-char.js +0 -8
  340. data/vendor/node_modules/grunt/node_modules/nopt/LICENSE +0 -23
  341. data/vendor/node_modules/grunt/node_modules/nopt/README.md +0 -208
  342. data/vendor/node_modules/grunt/node_modules/nopt/bin/nopt.js +0 -44
  343. data/vendor/node_modules/grunt/node_modules/nopt/examples/my-program.js +0 -30
  344. data/vendor/node_modules/grunt/node_modules/nopt/lib/nopt.js +0 -552
  345. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/LICENSE +0 -23
  346. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/README.md +0 -23
  347. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/lib/abbrev.js +0 -111
  348. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/package.json +0 -29
  349. data/vendor/node_modules/grunt/node_modules/nopt/package.json +0 -36
  350. data/vendor/node_modules/grunt/node_modules/rimraf/AUTHORS +0 -6
  351. data/vendor/node_modules/grunt/node_modules/rimraf/LICENSE +0 -23
  352. data/vendor/node_modules/grunt/node_modules/rimraf/README.md +0 -21
  353. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/LICENSE +0 -23
  354. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/README.md +0 -5
  355. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/graceful-fs.js +0 -312
  356. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/package.json +0 -40
  357. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/test/open.js +0 -41
  358. data/vendor/node_modules/grunt/node_modules/rimraf/package.json +0 -59
  359. data/vendor/node_modules/grunt/node_modules/rimraf/rimraf.js +0 -161
  360. data/vendor/node_modules/grunt/node_modules/rimraf/test/run.sh +0 -10
  361. data/vendor/node_modules/grunt/node_modules/rimraf/test/setup.sh +0 -47
  362. data/vendor/node_modules/grunt/node_modules/rimraf/test/test-async.js +0 -5
  363. data/vendor/node_modules/grunt/node_modules/rimraf/test/test-fiber.js +0 -0
  364. data/vendor/node_modules/grunt/node_modules/rimraf/test/test-sync.js +0 -3
  365. data/vendor/node_modules/grunt/node_modules/underscore.string/Gemfile +0 -5
  366. data/vendor/node_modules/grunt/node_modules/underscore.string/Gemfile.lock +0 -34
  367. data/vendor/node_modules/grunt/node_modules/underscore.string/README.markdown +0 -668
  368. data/vendor/node_modules/grunt/node_modules/underscore.string/Rakefile +0 -28
  369. data/vendor/node_modules/grunt/node_modules/underscore.string/dist/underscore.string.min.js +0 -1
  370. data/vendor/node_modules/grunt/node_modules/underscore.string/lib/underscore.string.js +0 -525
  371. data/vendor/node_modules/grunt/node_modules/underscore.string/package.json +0 -72
  372. data/vendor/node_modules/grunt/node_modules/underscore.string/test/run-qunit.js +0 -44
  373. data/vendor/node_modules/grunt/node_modules/underscore.string/test/speed.js +0 -138
  374. data/vendor/node_modules/grunt/node_modules/underscore.string/test/strings.js +0 -438
  375. data/vendor/node_modules/grunt/node_modules/underscore.string/test/strings_standalone.js +0 -12
  376. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test.html +0 -31
  377. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_standalone.html +0 -18
  378. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/arrays.js +0 -166
  379. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/chaining.js +0 -59
  380. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/collections.js +0 -270
  381. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/functions.js +0 -198
  382. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/objects.js +0 -535
  383. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/speed.js +0 -70
  384. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/temp.js +0 -27
  385. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/temp_tests.html +0 -19
  386. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/test.html +0 -43
  387. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/utility.js +0 -155
  388. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/jquery.js +0 -19
  389. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/jslitmus.js +0 -670
  390. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/qunit.css +0 -196
  391. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/qunit.js +0 -2360
  392. data/vendor/node_modules/grunt/node_modules/underscore.string/test/underscore.js +0 -999
  393. data/vendor/node_modules/grunt/node_modules/which/LICENSE +0 -23
  394. data/vendor/node_modules/grunt/node_modules/which/README.md +0 -5
  395. data/vendor/node_modules/grunt/node_modules/which/bin/which +0 -14
  396. data/vendor/node_modules/grunt/node_modules/which/package.json +0 -31
  397. data/vendor/node_modules/grunt/node_modules/which/which.js +0 -104
  398. data/vendor/node_modules/grunt/package.json +0 -82
  399. data/vendor/node_modules/istanbul/CHANGELOG.md +0 -57
  400. data/vendor/node_modules/istanbul/LICENSE +0 -24
  401. data/vendor/node_modules/istanbul/README.md +0 -205
  402. data/vendor/node_modules/istanbul/index.js +0 -115
  403. data/vendor/node_modules/istanbul/lib/cli.js +0 -74
  404. data/vendor/node_modules/istanbul/lib/collector.js +0 -121
  405. data/vendor/node_modules/istanbul/lib/command/check-coverage.js +0 -115
  406. data/vendor/node_modules/istanbul/lib/command/common/run-with-cover.js +0 -199
  407. data/vendor/node_modules/istanbul/lib/command/cover.js +0 -33
  408. data/vendor/node_modules/istanbul/lib/command/help.js +0 -58
  409. data/vendor/node_modules/istanbul/lib/command/index.js +0 -33
  410. data/vendor/node_modules/istanbul/lib/command/instrument.js +0 -244
  411. data/vendor/node_modules/istanbul/lib/command/report.js +0 -97
  412. data/vendor/node_modules/istanbul/lib/command/test.js +0 -31
  413. data/vendor/node_modules/istanbul/lib/hook.js +0 -187
  414. data/vendor/node_modules/istanbul/lib/instrumenter.js +0 -759
  415. data/vendor/node_modules/istanbul/lib/object-utils.js +0 -341
  416. data/vendor/node_modules/istanbul/lib/register-plugins.js +0 -15
  417. data/vendor/node_modules/istanbul/lib/report/cobertura.js +0 -207
  418. data/vendor/node_modules/istanbul/lib/report/html.js +0 -517
  419. data/vendor/node_modules/istanbul/lib/report/index.js +0 -60
  420. data/vendor/node_modules/istanbul/lib/report/json.js +0 -55
  421. data/vendor/node_modules/istanbul/lib/report/lcov.js +0 -49
  422. data/vendor/node_modules/istanbul/lib/report/lcovonly.js +0 -93
  423. data/vendor/node_modules/istanbul/lib/report/none.js +0 -20
  424. data/vendor/node_modules/istanbul/lib/report/teamcity.js +0 -82
  425. data/vendor/node_modules/istanbul/lib/report/templates/foot.txt +0 -102
  426. data/vendor/node_modules/istanbul/lib/report/templates/head.txt +0 -200
  427. data/vendor/node_modules/istanbul/lib/report/text-summary.js +0 -72
  428. data/vendor/node_modules/istanbul/lib/report/text.js +0 -210
  429. data/vendor/node_modules/istanbul/lib/store/fslookup.js +0 -60
  430. data/vendor/node_modules/istanbul/lib/store/index.js +0 -122
  431. data/vendor/node_modules/istanbul/lib/store/memory.js +0 -55
  432. data/vendor/node_modules/istanbul/lib/store/tmp.js +0 -80
  433. data/vendor/node_modules/istanbul/lib/util/factory.js +0 -88
  434. data/vendor/node_modules/istanbul/lib/util/file-matcher.js +0 -60
  435. data/vendor/node_modules/istanbul/lib/util/file-writer.js +0 -131
  436. data/vendor/node_modules/istanbul/lib/util/flow-control.js +0 -26
  437. data/vendor/node_modules/istanbul/lib/util/help-formatter.js +0 -24
  438. data/vendor/node_modules/istanbul/lib/util/input-error.js +0 -12
  439. data/vendor/node_modules/istanbul/lib/util/insertion-text.js +0 -109
  440. data/vendor/node_modules/istanbul/lib/util/meta.js +0 -13
  441. data/vendor/node_modules/istanbul/lib/util/tree-summarizer.js +0 -213
  442. data/vendor/node_modules/istanbul/lib/util/writer.js +0 -56
  443. data/vendor/node_modules/istanbul/lib/util/yui-load-hook.js +0 -49
  444. data/vendor/node_modules/istanbul/lib/vendor/prettify.css +0 -1
  445. data/vendor/node_modules/istanbul/lib/vendor/prettify.js +0 -1
  446. data/vendor/node_modules/istanbul/node_modules/abbrev/LICENSE +0 -23
  447. data/vendor/node_modules/istanbul/node_modules/abbrev/README.md +0 -23
  448. data/vendor/node_modules/istanbul/node_modules/abbrev/lib/abbrev.js +0 -111
  449. data/vendor/node_modules/istanbul/node_modules/abbrev/package.json +0 -29
  450. data/vendor/node_modules/istanbul/node_modules/async/LICENSE +0 -19
  451. data/vendor/node_modules/istanbul/node_modules/async/README.md +0 -1414
  452. data/vendor/node_modules/istanbul/node_modules/async/component.json +0 -11
  453. data/vendor/node_modules/istanbul/node_modules/async/lib/async.js +0 -955
  454. data/vendor/node_modules/istanbul/node_modules/async/package.json +0 -43
  455. data/vendor/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD +0 -19
  456. data/vendor/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map +0 -27
  457. data/vendor/node_modules/istanbul/node_modules/escodegen/README.md +0 -99
  458. data/vendor/node_modules/istanbul/node_modules/escodegen/bin/escodegen.js +0 -45
  459. data/vendor/node_modules/istanbul/node_modules/escodegen/bin/esgenerate.js +0 -45
  460. data/vendor/node_modules/istanbul/node_modules/escodegen/component.json +0 -48
  461. data/vendor/node_modules/istanbul/node_modules/escodegen/escodegen.browser.js +0 -3072
  462. data/vendor/node_modules/istanbul/node_modules/escodegen/escodegen.js +0 -2275
  463. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/LICENSE.BSD +0 -19
  464. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/README.md +0 -29
  465. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/estraverse.js +0 -315
  466. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/package.json +0 -41
  467. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/CHANGELOG.md +0 -112
  468. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/LICENSE +0 -28
  469. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +0 -166
  470. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/README.md +0 -434
  471. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/assert-shim.js +0 -56
  472. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/mini-require.js +0 -152
  473. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  474. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +0 -18
  475. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js +0 -8
  476. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  477. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +0 -21
  478. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/test-prefix.js +0 -8
  479. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/test-suffix.js +0 -3
  480. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map.js +0 -8
  481. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js +0 -97
  482. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  483. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js +0 -42
  484. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  485. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -477
  486. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js +0 -380
  487. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js +0 -371
  488. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +0 -205
  489. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  490. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +0 -171
  491. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  492. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/intercept.js +0 -36
  493. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +0 -36
  494. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/package.json +0 -110
  495. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/run-tests.js +0 -71
  496. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js +0 -26
  497. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js +0 -104
  498. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  499. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js +0 -35
  500. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  501. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  502. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -451
  503. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -417
  504. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js +0 -365
  505. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +0 -161
  506. data/vendor/node_modules/istanbul/node_modules/escodegen/package.json +0 -58
  507. data/vendor/node_modules/istanbul/node_modules/esprima/README.md +0 -73
  508. data/vendor/node_modules/istanbul/node_modules/esprima/bin/esparse.js +0 -117
  509. data/vendor/node_modules/istanbul/node_modules/esprima/bin/esvalidate.js +0 -177
  510. data/vendor/node_modules/istanbul/node_modules/esprima/esprima.js +0 -3908
  511. data/vendor/node_modules/istanbul/node_modules/esprima/package.json +0 -59
  512. data/vendor/node_modules/istanbul/node_modules/esprima/test/compat.js +0 -239
  513. data/vendor/node_modules/istanbul/node_modules/esprima/test/reflect.js +0 -422
  514. data/vendor/node_modules/istanbul/node_modules/esprima/test/run.js +0 -66
  515. data/vendor/node_modules/istanbul/node_modules/esprima/test/runner.js +0 -387
  516. data/vendor/node_modules/istanbul/node_modules/esprima/test/test.js +0 -20238
  517. data/vendor/node_modules/istanbul/node_modules/fileset/LICENSE-MIT +0 -22
  518. data/vendor/node_modules/istanbul/node_modules/fileset/README.md +0 -87
  519. data/vendor/node_modules/istanbul/node_modules/fileset/lib/fileset.js +0 -64
  520. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/LICENSE +0 -27
  521. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/README.md +0 -250
  522. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/examples/g.js +0 -9
  523. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/examples/usr-local.js +0 -9
  524. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/glob.js +0 -680
  525. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/LICENSE +0 -16
  526. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/README.md +0 -42
  527. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits.js +0 -1
  528. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits_browser.js +0 -23
  529. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/package.json +0 -33
  530. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/test.js +0 -25
  531. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json +0 -39
  532. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/00-setup.js +0 -176
  533. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/bash-comparison.js +0 -63
  534. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/bash-results.json +0 -350
  535. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/cwd-test.js +0 -55
  536. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/globstar-match.js +0 -19
  537. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/mark.js +0 -74
  538. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/new-glob-optional-options.js +0 -10
  539. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/nocase-nomagic.js +0 -113
  540. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/pause-resume.js +0 -73
  541. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/root-nomount.js +0 -39
  542. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/root.js +0 -46
  543. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/stat.js +0 -32
  544. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/zz-cleanup.js +0 -11
  545. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/LICENSE +0 -23
  546. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/README.md +0 -218
  547. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/minimatch.js +0 -1055
  548. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +0 -14
  549. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/LICENSE +0 -23
  550. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/README.md +0 -97
  551. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +0 -252
  552. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/package.json +0 -33
  553. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/basic.js +0 -369
  554. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +0 -52
  555. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +0 -50
  556. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/LICENSE +0 -27
  557. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/README.md +0 -53
  558. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/bench.js +0 -283
  559. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/package.json +0 -42
  560. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/sigmund.js +0 -39
  561. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/test/basic.js +0 -24
  562. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/package.json +0 -40
  563. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/basic.js +0 -399
  564. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/brace-expand.js +0 -33
  565. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/caching.js +0 -14
  566. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/defaults.js +0 -274
  567. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/extglob-ending-with-state-char.js +0 -8
  568. data/vendor/node_modules/istanbul/node_modules/fileset/package.json +0 -34
  569. data/vendor/node_modules/istanbul/node_modules/fileset/tests/fixtures/an (odd) filename.js +0 -1
  570. data/vendor/node_modules/istanbul/node_modules/fileset/tests/helper.js +0 -61
  571. data/vendor/node_modules/istanbul/node_modules/fileset/tests/test.js +0 -133
  572. data/vendor/node_modules/istanbul/node_modules/handlebars/LICENSE +0 -19
  573. data/vendor/node_modules/istanbul/node_modules/handlebars/README.markdown +0 -391
  574. data/vendor/node_modules/istanbul/node_modules/handlebars/bin/handlebars +0 -213
  575. data/vendor/node_modules/istanbul/node_modules/handlebars/bower.json +0 -9
  576. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.js +0 -2278
  577. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.min.js +0 -2
  578. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.runtime.js +0 -362
  579. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.runtime.min.js +0 -1
  580. data/vendor/node_modules/istanbul/node_modules/handlebars/global-test.js +0 -18
  581. data/vendor/node_modules/istanbul/node_modules/handlebars/global.js +0 -4
  582. data/vendor/node_modules/istanbul/node_modules/handlebars/handlebars-source.gemspec +0 -21
  583. data/vendor/node_modules/istanbul/node_modules/handlebars/handlebars.js.nuspec +0 -17
  584. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars.js +0 -43
  585. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/base.js +0 -166
  586. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/browser-prefix.js +0 -3
  587. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/browser-suffix.js +0 -1
  588. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/ast.js +0 -138
  589. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/base.js +0 -21
  590. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/compiler.js +0 -1305
  591. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/index.js +0 -16
  592. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/parser.js +0 -483
  593. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/printer.js +0 -138
  594. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/visitor.js +0 -18
  595. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/runtime.js +0 -106
  596. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/source.rb +0 -11
  597. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/utils.js +0 -83
  598. data/vendor/node_modules/istanbul/node_modules/handlebars/min.sh +0 -11
  599. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/LICENSE +0 -21
  600. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/bool.js +0 -10
  601. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/boolean_double.js +0 -7
  602. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/boolean_single.js +0 -7
  603. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/default_hash.js +0 -8
  604. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/default_singles.js +0 -7
  605. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/divide.js +0 -8
  606. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count.js +0 -20
  607. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count_options.js +0 -29
  608. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count_wrap.js +0 -29
  609. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/nonopt.js +0 -4
  610. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/reflect.js +0 -2
  611. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/short.js +0 -3
  612. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/string.js +0 -11
  613. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/usage-options.js +0 -19
  614. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/xup.js +0 -10
  615. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/index.js +0 -478
  616. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/package.json +0 -46
  617. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/readme.markdown +0 -487
  618. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_.js +0 -71
  619. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_/argv.js +0 -2
  620. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_/bin.js +0 -3
  621. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/parse.js +0 -446
  622. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/usage.js +0 -292
  623. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/LICENSE +0 -29
  624. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/README.md +0 -588
  625. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/bin/uglifyjs +0 -402
  626. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/ast.js +0 -985
  627. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/compress.js +0 -2028
  628. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/mozilla-ast.js +0 -267
  629. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/output.js +0 -1229
  630. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/parse.js +0 -1410
  631. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/scope.js +0 -581
  632. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/sourcemap.js +0 -81
  633. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/transform.js +0 -217
  634. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/utils.js +0 -295
  635. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md +0 -112
  636. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/LICENSE +0 -28
  637. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js +0 -166
  638. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/README.md +0 -434
  639. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js +0 -56
  640. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/mini-require.js +0 -152
  641. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  642. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm +0 -18
  643. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js +0 -8
  644. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  645. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm +0 -21
  646. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js +0 -8
  647. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js +0 -3
  648. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map.js +0 -8
  649. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js +0 -97
  650. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  651. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js +0 -42
  652. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  653. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -477
  654. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js +0 -380
  655. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js +0 -371
  656. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js +0 -205
  657. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  658. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md +0 -171
  659. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  660. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js +0 -36
  661. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json +0 -37
  662. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/package.json +0 -110
  663. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/run-tests.js +0 -71
  664. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js +0 -26
  665. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js +0 -104
  666. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  667. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js +0 -35
  668. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  669. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  670. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -451
  671. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -417
  672. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js +0 -365
  673. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js +0 -161
  674. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/package.json +0 -39
  675. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/arrays.js +0 -12
  676. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/blocks.js +0 -49
  677. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/conditionals.js +0 -143
  678. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/dead-code.js +0 -89
  679. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/debugger.js +0 -24
  680. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/drop-unused.js +0 -97
  681. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-105.js +0 -25
  682. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-12.js +0 -11
  683. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-143.js +0 -48
  684. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-22.js +0 -17
  685. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-44.js +0 -31
  686. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-59.js +0 -30
  687. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/labels.js +0 -163
  688. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/loops.js +0 -123
  689. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/properties.js +0 -54
  690. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/sequences.js +0 -161
  691. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/switch.js +0 -260
  692. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/typeof.js +0 -25
  693. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/run-tests.js +0 -170
  694. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/tools/node.js +0 -165
  695. data/vendor/node_modules/istanbul/node_modules/handlebars/package.json +0 -42
  696. data/vendor/node_modules/istanbul/node_modules/handlebars/release-notes.md +0 -93
  697. data/vendor/node_modules/istanbul/node_modules/handlebars/test.js +0 -20
  698. data/vendor/node_modules/istanbul/node_modules/mkdirp/LICENSE +0 -21
  699. data/vendor/node_modules/istanbul/node_modules/mkdirp/examples/pow.js +0 -6
  700. data/vendor/node_modules/istanbul/node_modules/mkdirp/index.js +0 -82
  701. data/vendor/node_modules/istanbul/node_modules/mkdirp/package.json +0 -34
  702. data/vendor/node_modules/istanbul/node_modules/mkdirp/readme.markdown +0 -63
  703. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/chmod.js +0 -38
  704. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/clobber.js +0 -37
  705. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/mkdirp.js +0 -28
  706. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/perm.js +0 -32
  707. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/perm_sync.js +0 -39
  708. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/race.js +0 -41
  709. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/rel.js +0 -32
  710. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/return.js +0 -25
  711. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/return_sync.js +0 -24
  712. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/root.js +0 -18
  713. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/sync.js +0 -32
  714. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/umask.js +0 -28
  715. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/umask_sync.js +0 -32
  716. data/vendor/node_modules/istanbul/node_modules/nopt/LICENSE +0 -23
  717. data/vendor/node_modules/istanbul/node_modules/nopt/README.md +0 -210
  718. data/vendor/node_modules/istanbul/node_modules/nopt/bin/nopt.js +0 -51
  719. data/vendor/node_modules/istanbul/node_modules/nopt/examples/my-program.js +0 -30
  720. data/vendor/node_modules/istanbul/node_modules/nopt/lib/nopt.js +0 -612
  721. data/vendor/node_modules/istanbul/node_modules/nopt/package.json +0 -36
  722. data/vendor/node_modules/istanbul/node_modules/resolve/LICENSE +0 -18
  723. data/vendor/node_modules/istanbul/node_modules/resolve/example/async.js +0 -5
  724. data/vendor/node_modules/istanbul/node_modules/resolve/example/sync.js +0 -3
  725. data/vendor/node_modules/istanbul/node_modules/resolve/index.js +0 -5
  726. data/vendor/node_modules/istanbul/node_modules/resolve/lib/async.js +0 -125
  727. data/vendor/node_modules/istanbul/node_modules/resolve/lib/caller.js +0 -8
  728. data/vendor/node_modules/istanbul/node_modules/resolve/lib/core.js +0 -4
  729. data/vendor/node_modules/istanbul/node_modules/resolve/lib/core.json +0 -38
  730. data/vendor/node_modules/istanbul/node_modules/resolve/lib/node-modules-paths.js +0 -25
  731. data/vendor/node_modules/istanbul/node_modules/resolve/lib/sync.js +0 -80
  732. data/vendor/node_modules/istanbul/node_modules/resolve/package.json +0 -36
  733. data/vendor/node_modules/istanbul/node_modules/resolve/readme.markdown +0 -144
  734. data/vendor/node_modules/istanbul/node_modules/resolve/test/core.js +0 -12
  735. data/vendor/node_modules/istanbul/node_modules/resolve/test/filter.js +0 -18
  736. data/vendor/node_modules/istanbul/node_modules/resolve/test/filter_sync.js +0 -15
  737. data/vendor/node_modules/istanbul/node_modules/resolve/test/mock.js +0 -142
  738. data/vendor/node_modules/istanbul/node_modules/resolve/test/mock_sync.js +0 -68
  739. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver.js +0 -270
  740. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +0 -1
  741. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  742. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/package.json +0 -3
  743. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/quux.js +0 -1
  744. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js +0 -1
  745. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json +0 -3
  746. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +0 -1
  747. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +0 -1
  748. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/cup.coffee +0 -1
  749. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/foo.js +0 -1
  750. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/incorrect_main/index.js +0 -2
  751. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/incorrect_main/package.json +0 -3
  752. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/mug.coffee +0 -0
  753. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/mug.js +0 -0
  754. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  755. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  756. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/quux/foo/index.js +0 -1
  757. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/without_basedir/main.js +0 -6
  758. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js +0 -1
  759. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver_sync.js +0 -170
  760. data/vendor/node_modules/istanbul/node_modules/which/LICENSE +0 -23
  761. data/vendor/node_modules/istanbul/node_modules/which/README.md +0 -5
  762. data/vendor/node_modules/istanbul/node_modules/which/bin/which +0 -14
  763. data/vendor/node_modules/istanbul/node_modules/which/package.json +0 -32
  764. data/vendor/node_modules/istanbul/node_modules/which/which.js +0 -104
  765. data/vendor/node_modules/istanbul/node_modules/wordwrap/README.markdown +0 -70
  766. data/vendor/node_modules/istanbul/node_modules/wordwrap/example/center.js +0 -10
  767. data/vendor/node_modules/istanbul/node_modules/wordwrap/example/meat.js +0 -3
  768. data/vendor/node_modules/istanbul/node_modules/wordwrap/index.js +0 -76
  769. data/vendor/node_modules/istanbul/node_modules/wordwrap/package.json +0 -45
  770. data/vendor/node_modules/istanbul/node_modules/wordwrap/test/break.js +0 -30
  771. data/vendor/node_modules/istanbul/node_modules/wordwrap/test/idleness.txt +0 -63
  772. data/vendor/node_modules/istanbul/node_modules/wordwrap/test/wrap.js +0 -31
  773. data/vendor/node_modules/istanbul/package.json +0 -117
  774. data/vendor/node_modules/istanbul/test/browser/support/index.html +0 -153
  775. data/vendor/node_modules/istanbul/test/browser/support/phantom-test.client.js +0 -49
  776. data/vendor/node_modules/istanbul/test/browser/support/server.js +0 -154
  777. data/vendor/node_modules/istanbul/test/browser/test-browser-instrumentation.js +0 -94
  778. data/vendor/node_modules/istanbul/test/cli-helper.js +0 -219
  779. data/vendor/node_modules/istanbul/test/cli/package.json +0 -8
  780. data/vendor/node_modules/istanbul/test/cli/sample-project/amd/ipsum.js +0 -11
  781. data/vendor/node_modules/istanbul/test/cli/sample-project/amd/lorem.js +0 -7
  782. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/bar.js +0 -13
  783. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/foo.js +0 -12
  784. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/util/bad.js +0 -1
  785. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/util/generate-names.js +0 -5
  786. data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/dependency/index.js +0 -9
  787. data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/post-require/hook.js +0 -11
  788. data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/post-require/package.json +0 -5
  789. data/vendor/node_modules/istanbul/test/cli/sample-project/test/amd-run.js +0 -16
  790. data/vendor/node_modules/istanbul/test/cli/sample-project/test/global-leak.js +0 -30
  791. data/vendor/node_modules/istanbul/test/cli/sample-project/test/run.js +0 -25
  792. data/vendor/node_modules/istanbul/test/cli/sample-project/vendor/dummy_vendor_lib.js +0 -9
  793. data/vendor/node_modules/istanbul/test/cli/test-base-cli.js +0 -39
  794. data/vendor/node_modules/istanbul/test/cli/test-check-coverage-command.js +0 -97
  795. data/vendor/node_modules/istanbul/test/cli/test-cobertura-report.js +0 -54
  796. data/vendor/node_modules/istanbul/test/cli/test-cover-command.js +0 -170
  797. data/vendor/node_modules/istanbul/test/cli/test-html-report.js +0 -125
  798. data/vendor/node_modules/istanbul/test/cli/test-instrument-command.js +0 -167
  799. data/vendor/node_modules/istanbul/test/cli/test-json-report.js +0 -60
  800. data/vendor/node_modules/istanbul/test/cli/test-lcov-report.js +0 -58
  801. data/vendor/node_modules/istanbul/test/cli/test-lcovonly-report.js +0 -61
  802. data/vendor/node_modules/istanbul/test/cli/test-lots-of-files.js +0 -87
  803. data/vendor/node_modules/istanbul/test/cli/test-none-report.js +0 -17
  804. data/vendor/node_modules/istanbul/test/cli/test-report-command.js +0 -65
  805. data/vendor/node_modules/istanbul/test/cli/test-teamcity-report.js +0 -54
  806. data/vendor/node_modules/istanbul/test/cli/test-test-command.js +0 -43
  807. data/vendor/node_modules/istanbul/test/common.js +0 -19
  808. data/vendor/node_modules/istanbul/test/helper.js +0 -122
  809. data/vendor/node_modules/istanbul/test/instrumentation/test-do.js +0 -53
  810. data/vendor/node_modules/istanbul/test/instrumentation/test-expressions.js +0 -70
  811. data/vendor/node_modules/istanbul/test/instrumentation/test-for.js +0 -206
  812. data/vendor/node_modules/istanbul/test/instrumentation/test-forin.js +0 -50
  813. data/vendor/node_modules/istanbul/test/instrumentation/test-functions.js +0 -102
  814. data/vendor/node_modules/istanbul/test/instrumentation/test-if.js +0 -393
  815. data/vendor/node_modules/istanbul/test/instrumentation/test-misc.js +0 -35
  816. data/vendor/node_modules/istanbul/test/instrumentation/test-statement.js +0 -182
  817. data/vendor/node_modules/istanbul/test/instrumentation/test-strict.js +0 -121
  818. data/vendor/node_modules/istanbul/test/instrumentation/test-switch.js +0 -155
  819. data/vendor/node_modules/istanbul/test/instrumentation/test-while.js +0 -104
  820. data/vendor/node_modules/istanbul/test/loader.js +0 -38
  821. data/vendor/node_modules/istanbul/test/other/data-complete-copy/baz.js +0 -3
  822. data/vendor/node_modules/istanbul/test/other/data-complete-copy/fixture.xml +0 -1
  823. data/vendor/node_modules/istanbul/test/other/data-complete-copy/foo.js +0 -4
  824. data/vendor/node_modules/istanbul/test/other/data-complete-copy/myfile1 +0 -0
  825. data/vendor/node_modules/istanbul/test/other/data-complete-copy/myfile2 +0 -1
  826. data/vendor/node_modules/istanbul/test/other/data-complete-copy/subdir/x.css +0 -3
  827. data/vendor/node_modules/istanbul/test/other/data/baz.js +0 -3
  828. data/vendor/node_modules/istanbul/test/other/data/foo.js +0 -4
  829. data/vendor/node_modules/istanbul/test/other/data/matcher/general/general.js +0 -2
  830. data/vendor/node_modules/istanbul/test/other/data/matcher/general/node_modules/mod-file.js +0 -2
  831. data/vendor/node_modules/istanbul/test/other/data/matcher/lib/lib-top.js +0 -2
  832. data/vendor/node_modules/istanbul/test/other/data/matcher/node_modules/dep/mod-file.js +0 -2
  833. data/vendor/node_modules/istanbul/test/other/data/matcher/node_modules/mod-file.js +0 -2
  834. data/vendor/node_modules/istanbul/test/other/data/matcher/top.js +0 -2
  835. data/vendor/node_modules/istanbul/test/other/test-collector.js +0 -85
  836. data/vendor/node_modules/istanbul/test/other/test-command-xface.js +0 -35
  837. data/vendor/node_modules/istanbul/test/other/test-file-writer.js +0 -71
  838. data/vendor/node_modules/istanbul/test/other/test-help-formatter.js +0 -31
  839. data/vendor/node_modules/istanbul/test/other/test-hook.js +0 -87
  840. data/vendor/node_modules/istanbul/test/other/test-index-xface.js +0 -17
  841. data/vendor/node_modules/istanbul/test/other/test-input-error.js +0 -10
  842. data/vendor/node_modules/istanbul/test/other/test-insertion-text.js +0 -102
  843. data/vendor/node_modules/istanbul/test/other/test-matcher.js +0 -93
  844. data/vendor/node_modules/istanbul/test/other/test-object-utils.js +0 -201
  845. data/vendor/node_modules/istanbul/test/other/test-store.js +0 -129
  846. data/vendor/node_modules/istanbul/test/other/test-summarizer.js +0 -172
  847. data/vendor/node_modules/istanbul/test/run-again.js +0 -19
  848. data/vendor/node_modules/istanbul/test/run.js +0 -108
  849. data/vendor/node_modules/istanbul/yui-coverage-comparison.md +0 -85
  850. data/vendor/node_modules/qunit-clib/LICENSE.txt +0 -20
  851. data/vendor/node_modules/qunit-clib/README.md +0 -2
  852. data/vendor/node_modules/qunit-clib/package.json +0 -36
  853. data/vendor/node_modules/qunit-clib/qunit-clib.js +0 -570
  854. data/vendor/node_modules/qunitjs/AUTHORS.txt +0 -55
  855. data/vendor/node_modules/qunitjs/History.md +0 -496
  856. data/vendor/node_modules/qunitjs/README.md +0 -62
  857. data/vendor/node_modules/qunitjs/addons/canvas/README.md +0 -17
  858. data/vendor/node_modules/qunitjs/addons/canvas/canvas-test.js +0 -76
  859. data/vendor/node_modules/qunitjs/addons/canvas/canvas.html +0 -15
  860. data/vendor/node_modules/qunitjs/addons/canvas/qunit-canvas.js +0 -6
  861. data/vendor/node_modules/qunitjs/addons/close-enough/README.md +0 -18
  862. data/vendor/node_modules/qunitjs/addons/close-enough/close-enough-test.js +0 -35
  863. data/vendor/node_modules/qunitjs/addons/close-enough/close-enough.html +0 -14
  864. data/vendor/node_modules/qunitjs/addons/close-enough/qunit-close-enough.js +0 -32
  865. data/vendor/node_modules/qunitjs/addons/composite/README.md +0 -26
  866. data/vendor/node_modules/qunitjs/addons/composite/composite-demo-test.html +0 -24
  867. data/vendor/node_modules/qunitjs/addons/composite/index.html +0 -34
  868. data/vendor/node_modules/qunitjs/addons/composite/qunit-composite.css +0 -13
  869. data/vendor/node_modules/qunitjs/addons/composite/qunit-composite.js +0 -112
  870. data/vendor/node_modules/qunitjs/addons/junitlogger/README.md +0 -18
  871. data/vendor/node_modules/qunitjs/addons/junitlogger/index.html +0 -44
  872. data/vendor/node_modules/qunitjs/addons/junitlogger/junitlogger.js +0 -306
  873. data/vendor/node_modules/qunitjs/addons/phantomjs/README.md +0 -16
  874. data/vendor/node_modules/qunitjs/addons/phantomjs/runner.js +0 -127
  875. data/vendor/node_modules/qunitjs/addons/step/README.md +0 -20
  876. data/vendor/node_modules/qunitjs/addons/step/qunit-step.js +0 -26
  877. data/vendor/node_modules/qunitjs/addons/step/step-test.js +0 -15
  878. data/vendor/node_modules/qunitjs/addons/step/step.html +0 -14
  879. data/vendor/node_modules/qunitjs/addons/themes/README.md +0 -6
  880. data/vendor/node_modules/qunitjs/addons/themes/gabe.css +0 -371
  881. data/vendor/node_modules/qunitjs/addons/themes/gabe.html +0 -15
  882. data/vendor/node_modules/qunitjs/addons/themes/ninja.css +0 -196
  883. data/vendor/node_modules/qunitjs/addons/themes/ninja.html +0 -15
  884. data/vendor/node_modules/qunitjs/addons/themes/nv.css +0 -217
  885. data/vendor/node_modules/qunitjs/addons/themes/nv.html +0 -15
  886. data/vendor/node_modules/qunitjs/grunt.js +0 -101
  887. data/vendor/node_modules/qunitjs/package.json +0 -49
  888. data/vendor/node_modules/qunitjs/qunit/qunit.css +0 -244
  889. data/vendor/node_modules/qunitjs/qunit/qunit.js +0 -2152
  890. data/vendor/node_modules/qunitjs/test/async.html +0 -26
  891. data/vendor/node_modules/qunitjs/test/async.js +0 -6
  892. data/vendor/node_modules/qunitjs/test/deepEqual.js +0 -1438
  893. data/vendor/node_modules/qunitjs/test/headless.html +0 -28
  894. data/vendor/node_modules/qunitjs/test/index.html +0 -16
  895. data/vendor/node_modules/qunitjs/test/logs.html +0 -14
  896. data/vendor/node_modules/qunitjs/test/logs.js +0 -184
  897. data/vendor/node_modules/qunitjs/test/narwhal-test.js +0 -22
  898. data/vendor/node_modules/qunitjs/test/node-test.js +0 -22
  899. data/vendor/node_modules/qunitjs/test/swarminject.js +0 -10
  900. data/vendor/node_modules/qunitjs/test/test.js +0 -804
  901. data/vendor/node_modules/regenerate/LICENSE-MIT.txt +0 -20
  902. data/vendor/node_modules/regenerate/README.md +0 -467
  903. data/vendor/node_modules/regenerate/package.json +0 -50
  904. data/vendor/node_modules/regenerate/regenerate.js +0 -617
  905. data/vendor/node_modules/requirejs/README.md +0 -9
  906. data/vendor/node_modules/requirejs/bin/r.js +0 -26059
  907. data/vendor/node_modules/requirejs/package.json +0 -39
  908. data/vendor/node_modules/requirejs/require.js +0 -2054
@@ -1,2028 +0,0 @@
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,
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
- screw_ie8 : false,
70
-
71
- warnings : true,
72
- global_defs : {}
73
- }, true);
74
- };
75
-
76
- Compressor.prototype = new TreeTransformer;
77
- merge(Compressor.prototype, {
78
- option: function(key) { return this.options[key] },
79
- warn: function() {
80
- if (this.options.warnings)
81
- AST_Node.warn.apply(AST_Node, arguments);
82
- },
83
- before: function(node, descend, in_list) {
84
- if (node._squeezed) return node;
85
- if (node instanceof AST_Scope) {
86
- node.drop_unused(this);
87
- node = node.hoist_declarations(this);
88
- }
89
- descend(node, this);
90
- node = node.optimize(this);
91
- if (node instanceof AST_Scope) {
92
- // dead code removal might leave further unused declarations.
93
- // this'll usually save very few bytes, but the performance
94
- // hit seems negligible so I'll just drop it here.
95
-
96
- // no point to repeat warnings.
97
- var save_warnings = this.options.warnings;
98
- this.options.warnings = false;
99
- node.drop_unused(this);
100
- this.options.warnings = save_warnings;
101
- }
102
- node._squeezed = true;
103
- return node;
104
- }
105
- });
106
-
107
- (function(){
108
-
109
- function OPT(node, optimizer) {
110
- node.DEFMETHOD("optimize", function(compressor){
111
- var self = this;
112
- if (self._optimized) return self;
113
- var opt = optimizer(self, compressor);
114
- opt._optimized = true;
115
- if (opt === self) return opt;
116
- return opt.transform(compressor);
117
- });
118
- };
119
-
120
- OPT(AST_Node, function(self, compressor){
121
- return self;
122
- });
123
-
124
- AST_Node.DEFMETHOD("equivalent_to", function(node){
125
- // XXX: this is a rather expensive way to test two node's equivalence:
126
- return this.print_to_string() == node.print_to_string();
127
- });
128
-
129
- function make_node(ctor, orig, props) {
130
- if (!props) props = {};
131
- if (orig) {
132
- if (!props.start) props.start = orig.start;
133
- if (!props.end) props.end = orig.end;
134
- }
135
- return new ctor(props);
136
- };
137
-
138
- function make_node_from_constant(compressor, val, orig) {
139
- // XXX: WIP.
140
- // if (val instanceof AST_Node) return val.transform(new TreeTransformer(null, function(node){
141
- // if (node instanceof AST_SymbolRef) {
142
- // var scope = compressor.find_parent(AST_Scope);
143
- // var def = scope.find_variable(node);
144
- // node.thedef = def;
145
- // return node;
146
- // }
147
- // })).transform(compressor);
148
-
149
- if (val instanceof AST_Node) return val.transform(compressor);
150
- switch (typeof val) {
151
- case "string":
152
- return make_node(AST_String, orig, {
153
- value: val
154
- }).optimize(compressor);
155
- case "number":
156
- return make_node(isNaN(val) ? AST_NaN : AST_Number, orig, {
157
- value: val
158
- }).optimize(compressor);
159
- case "boolean":
160
- return make_node(val ? AST_True : AST_False, orig).optimize(compressor);
161
- case "undefined":
162
- return make_node(AST_Undefined, orig).optimize(compressor);
163
- default:
164
- if (val === null) {
165
- return make_node(AST_Null, orig).optimize(compressor);
166
- }
167
- if (val instanceof RegExp) {
168
- return make_node(AST_RegExp, orig).optimize(compressor);
169
- }
170
- throw new Error(string_template("Can't handle constant of type: {type}", {
171
- type: typeof val
172
- }));
173
- }
174
- };
175
-
176
- function as_statement_array(thing) {
177
- if (thing === null) return [];
178
- if (thing instanceof AST_BlockStatement) return thing.body;
179
- if (thing instanceof AST_EmptyStatement) return [];
180
- if (thing instanceof AST_Statement) return [ thing ];
181
- throw new Error("Can't convert thing to statement array");
182
- };
183
-
184
- function is_empty(thing) {
185
- if (thing === null) return true;
186
- if (thing instanceof AST_EmptyStatement) return true;
187
- if (thing instanceof AST_BlockStatement) return thing.body.length == 0;
188
- return false;
189
- };
190
-
191
- function loop_body(x) {
192
- if (x instanceof AST_Switch) return x;
193
- if (x instanceof AST_For || x instanceof AST_ForIn || x instanceof AST_DWLoop) {
194
- return (x.body instanceof AST_BlockStatement ? x.body : x);
195
- }
196
- return x;
197
- };
198
-
199
- function tighten_body(statements, compressor) {
200
- var CHANGED;
201
- do {
202
- CHANGED = false;
203
- statements = eliminate_spurious_blocks(statements);
204
- if (compressor.option("dead_code")) {
205
- statements = eliminate_dead_code(statements, compressor);
206
- }
207
- if (compressor.option("if_return")) {
208
- statements = handle_if_return(statements, compressor);
209
- }
210
- if (compressor.option("sequences")) {
211
- statements = sequencesize(statements, compressor);
212
- }
213
- if (compressor.option("join_vars")) {
214
- statements = join_consecutive_vars(statements, compressor);
215
- }
216
- } while (CHANGED);
217
- return statements;
218
-
219
- function eliminate_spurious_blocks(statements) {
220
- var seen_dirs = [];
221
- return statements.reduce(function(a, stat){
222
- if (stat instanceof AST_BlockStatement) {
223
- CHANGED = true;
224
- a.push.apply(a, eliminate_spurious_blocks(stat.body));
225
- } else if (stat instanceof AST_EmptyStatement) {
226
- CHANGED = true;
227
- } else if (stat instanceof AST_Directive) {
228
- if (seen_dirs.indexOf(stat.value) < 0) {
229
- a.push(stat);
230
- seen_dirs.push(stat.value);
231
- } else {
232
- CHANGED = true;
233
- }
234
- } else {
235
- a.push(stat);
236
- }
237
- return a;
238
- }, []);
239
- };
240
-
241
- function handle_if_return(statements, compressor) {
242
- var self = compressor.self();
243
- var in_lambda = self instanceof AST_Lambda;
244
- var ret = [];
245
- loop: for (var i = statements.length; --i >= 0;) {
246
- var stat = statements[i];
247
- switch (true) {
248
- case (in_lambda && stat instanceof AST_Return && !stat.value && ret.length == 0):
249
- CHANGED = true;
250
- // note, ret.length is probably always zero
251
- // because we drop unreachable code before this
252
- // step. nevertheless, it's good to check.
253
- continue loop;
254
- case stat instanceof AST_If:
255
- if (stat.body instanceof AST_Return) {
256
- //---
257
- // pretty silly case, but:
258
- // if (foo()) return; return; ==> foo(); return;
259
- if (((in_lambda && ret.length == 0)
260
- || (ret[0] instanceof AST_Return && !ret[0].value))
261
- && !stat.body.value && !stat.alternative) {
262
- CHANGED = true;
263
- var cond = make_node(AST_SimpleStatement, stat.condition, {
264
- body: stat.condition
265
- });
266
- ret.unshift(cond);
267
- continue loop;
268
- }
269
- //---
270
- // if (foo()) return x; return y; ==> return foo() ? x : y;
271
- if (ret[0] instanceof AST_Return && stat.body.value && ret[0].value && !stat.alternative) {
272
- CHANGED = true;
273
- stat = stat.clone();
274
- stat.alternative = ret[0];
275
- ret[0] = stat.transform(compressor);
276
- continue loop;
277
- }
278
- //---
279
- // if (foo()) return x; [ return ; ] ==> return foo() ? x : undefined;
280
- if ((ret.length == 0 || ret[0] instanceof AST_Return) && stat.body.value && !stat.alternative && in_lambda) {
281
- CHANGED = true;
282
- stat = stat.clone();
283
- stat.alternative = ret[0] || make_node(AST_Return, stat, {
284
- value: make_node(AST_Undefined, stat)
285
- });
286
- ret[0] = stat.transform(compressor);
287
- continue loop;
288
- }
289
- //---
290
- // if (foo()) return; [ else x... ]; y... ==> if (!foo()) { x...; y... }
291
- if (!stat.body.value && in_lambda) {
292
- CHANGED = true;
293
- stat = stat.clone();
294
- stat.condition = stat.condition.negate(compressor);
295
- stat.body = make_node(AST_BlockStatement, stat, {
296
- body: as_statement_array(stat.alternative).concat(ret)
297
- });
298
- stat.alternative = null;
299
- ret = [ stat.transform(compressor) ];
300
- continue loop;
301
- }
302
- //---
303
- if (ret.length == 1 && in_lambda && ret[0] instanceof AST_SimpleStatement
304
- && (!stat.alternative || stat.alternative instanceof AST_SimpleStatement)) {
305
- CHANGED = true;
306
- ret.push(make_node(AST_Return, ret[0], {
307
- value: make_node(AST_Undefined, ret[0])
308
- }).transform(compressor));
309
- ret = as_statement_array(stat.alternative).concat(ret);
310
- ret.unshift(stat);
311
- continue loop;
312
- }
313
- }
314
-
315
- var ab = aborts(stat.body);
316
- var lct = ab instanceof AST_LoopControl ? compressor.loopcontrol_target(ab.label) : null;
317
- if (ab && ((ab instanceof AST_Return && !ab.value && in_lambda)
318
- || (ab instanceof AST_Continue && self === loop_body(lct))
319
- || (ab instanceof AST_Break && lct instanceof AST_BlockStatement && self === lct))) {
320
- if (ab.label) {
321
- remove(ab.label.thedef.references, ab.label);
322
- }
323
- CHANGED = true;
324
- var body = as_statement_array(stat.body).slice(0, -1);
325
- stat = stat.clone();
326
- stat.condition = stat.condition.negate(compressor);
327
- stat.body = make_node(AST_BlockStatement, stat, {
328
- body: ret
329
- });
330
- stat.alternative = make_node(AST_BlockStatement, stat, {
331
- body: body
332
- });
333
- ret = [ stat.transform(compressor) ];
334
- continue loop;
335
- }
336
-
337
- var ab = aborts(stat.alternative);
338
- var lct = ab instanceof AST_LoopControl ? compressor.loopcontrol_target(ab.label) : null;
339
- if (ab && ((ab instanceof AST_Return && !ab.value && in_lambda)
340
- || (ab instanceof AST_Continue && self === loop_body(lct))
341
- || (ab instanceof AST_Break && lct instanceof AST_BlockStatement && self === lct))) {
342
- if (ab.label) {
343
- remove(ab.label.thedef.references, ab.label);
344
- }
345
- CHANGED = true;
346
- stat = stat.clone();
347
- stat.body = make_node(AST_BlockStatement, stat.body, {
348
- body: as_statement_array(stat.body).concat(ret)
349
- });
350
- stat.alternative = make_node(AST_BlockStatement, stat.alternative, {
351
- body: as_statement_array(stat.alternative).slice(0, -1)
352
- });
353
- ret = [ stat.transform(compressor) ];
354
- continue loop;
355
- }
356
-
357
- ret.unshift(stat);
358
- break;
359
- default:
360
- ret.unshift(stat);
361
- break;
362
- }
363
- }
364
- return ret;
365
- };
366
-
367
- function eliminate_dead_code(statements, compressor) {
368
- var has_quit = false;
369
- var orig = statements.length;
370
- var self = compressor.self();
371
- statements = statements.reduce(function(a, stat){
372
- if (has_quit) {
373
- extract_declarations_from_unreachable_code(compressor, stat, a);
374
- } else {
375
- if (stat instanceof AST_LoopControl) {
376
- var lct = compressor.loopcontrol_target(stat.label);
377
- if ((stat instanceof AST_Break
378
- && lct instanceof AST_BlockStatement
379
- && loop_body(lct) === self) || (stat instanceof AST_Continue
380
- && loop_body(lct) === self)) {
381
- if (stat.label) {
382
- remove(stat.label.thedef.references, stat.label);
383
- }
384
- } else {
385
- a.push(stat);
386
- }
387
- } else {
388
- a.push(stat);
389
- }
390
- if (aborts(stat)) has_quit = true;
391
- }
392
- return a;
393
- }, []);
394
- CHANGED = statements.length != orig;
395
- return statements;
396
- };
397
-
398
- function sequencesize(statements, compressor) {
399
- if (statements.length < 2) return statements;
400
- var seq = [], ret = [];
401
- function push_seq() {
402
- seq = AST_Seq.from_array(seq);
403
- if (seq) ret.push(make_node(AST_SimpleStatement, seq, {
404
- body: seq
405
- }));
406
- seq = [];
407
- };
408
- statements.forEach(function(stat){
409
- if (stat instanceof AST_SimpleStatement) seq.push(stat.body);
410
- else push_seq(), ret.push(stat);
411
- });
412
- push_seq();
413
- ret = sequencesize_2(ret, compressor);
414
- CHANGED = ret.length != statements.length;
415
- return ret;
416
- };
417
-
418
- function sequencesize_2(statements, compressor) {
419
- function cons_seq(right) {
420
- ret.pop();
421
- var left = prev.body;
422
- if (left instanceof AST_Seq) {
423
- left.add(right);
424
- } else {
425
- left = AST_Seq.cons(left, right);
426
- }
427
- return left.transform(compressor);
428
- };
429
- var ret = [], prev = null;
430
- statements.forEach(function(stat){
431
- if (prev) {
432
- if (stat instanceof AST_For) {
433
- var opera = {};
434
- try {
435
- prev.body.walk(new TreeWalker(function(node){
436
- if (node instanceof AST_Binary && node.operator == "in")
437
- throw opera;
438
- }));
439
- if (stat.init && !(stat.init instanceof AST_Definitions)) {
440
- stat.init = cons_seq(stat.init);
441
- }
442
- else if (!stat.init) {
443
- stat.init = prev.body;
444
- ret.pop();
445
- }
446
- } catch(ex) {
447
- if (ex !== opera) throw ex;
448
- }
449
- }
450
- else if (stat instanceof AST_If) {
451
- stat.condition = cons_seq(stat.condition);
452
- }
453
- else if (stat instanceof AST_With) {
454
- stat.expression = cons_seq(stat.expression);
455
- }
456
- else if (stat instanceof AST_Exit && stat.value) {
457
- stat.value = cons_seq(stat.value);
458
- }
459
- else if (stat instanceof AST_Exit) {
460
- stat.value = cons_seq(make_node(AST_Undefined, stat));
461
- }
462
- else if (stat instanceof AST_Switch) {
463
- stat.expression = cons_seq(stat.expression);
464
- }
465
- }
466
- ret.push(stat);
467
- prev = stat instanceof AST_SimpleStatement ? stat : null;
468
- });
469
- return ret;
470
- };
471
-
472
- function join_consecutive_vars(statements, compressor) {
473
- var prev = null;
474
- return statements.reduce(function(a, stat){
475
- if (stat instanceof AST_Definitions && prev && prev.TYPE == stat.TYPE) {
476
- prev.definitions = prev.definitions.concat(stat.definitions);
477
- CHANGED = true;
478
- }
479
- else if (stat instanceof AST_For
480
- && prev instanceof AST_Definitions
481
- && (!stat.init || stat.init.TYPE == prev.TYPE)) {
482
- CHANGED = true;
483
- a.pop();
484
- if (stat.init) {
485
- stat.init.definitions = prev.definitions.concat(stat.init.definitions);
486
- } else {
487
- stat.init = prev;
488
- }
489
- a.push(stat);
490
- prev = stat;
491
- }
492
- else {
493
- prev = stat;
494
- a.push(stat);
495
- }
496
- return a;
497
- }, []);
498
- };
499
-
500
- };
501
-
502
- function extract_declarations_from_unreachable_code(compressor, stat, target) {
503
- compressor.warn("Dropping unreachable code [{file}:{line},{col}]", stat.start);
504
- stat.walk(new TreeWalker(function(node){
505
- if (node instanceof AST_Definitions) {
506
- compressor.warn("Declarations in unreachable code! [{file}:{line},{col}]", node.start);
507
- node.remove_initializers();
508
- target.push(node);
509
- return true;
510
- }
511
- if (node instanceof AST_Defun) {
512
- target.push(node);
513
- return true;
514
- }
515
- if (node instanceof AST_Scope) {
516
- return true;
517
- }
518
- }));
519
- };
520
-
521
- /* -----[ boolean/negation helpers ]----- */
522
-
523
- // methods to determine whether an expression has a boolean result type
524
- (function (def){
525
- var unary_bool = [ "!", "delete" ];
526
- var binary_bool = [ "in", "instanceof", "==", "!=", "===", "!==", "<", "<=", ">=", ">" ];
527
- def(AST_Node, function(){ return false });
528
- def(AST_UnaryPrefix, function(){
529
- return member(this.operator, unary_bool);
530
- });
531
- def(AST_Binary, function(){
532
- return member(this.operator, binary_bool) ||
533
- ( (this.operator == "&&" || this.operator == "||") &&
534
- this.left.is_boolean() && this.right.is_boolean() );
535
- });
536
- def(AST_Conditional, function(){
537
- return this.consequent.is_boolean() && this.alternative.is_boolean();
538
- });
539
- def(AST_Assign, function(){
540
- return this.operator == "=" && this.right.is_boolean();
541
- });
542
- def(AST_Seq, function(){
543
- return this.cdr.is_boolean();
544
- });
545
- def(AST_True, function(){ return true });
546
- def(AST_False, function(){ return true });
547
- })(function(node, func){
548
- node.DEFMETHOD("is_boolean", func);
549
- });
550
-
551
- // methods to determine if an expression has a string result type
552
- (function (def){
553
- def(AST_Node, function(){ return false });
554
- def(AST_String, function(){ return true });
555
- def(AST_UnaryPrefix, function(){
556
- return this.operator == "typeof";
557
- });
558
- def(AST_Binary, function(compressor){
559
- return this.operator == "+" &&
560
- (this.left.is_string(compressor) || this.right.is_string(compressor));
561
- });
562
- def(AST_Assign, function(compressor){
563
- return (this.operator == "=" || this.operator == "+=") && this.right.is_string(compressor);
564
- });
565
- def(AST_Seq, function(compressor){
566
- return this.cdr.is_string(compressor);
567
- });
568
- def(AST_Conditional, function(compressor){
569
- return this.consequent.is_string(compressor) && this.alternative.is_string(compressor);
570
- });
571
- def(AST_Call, function(compressor){
572
- return compressor.option("unsafe")
573
- && this.expression instanceof AST_SymbolRef
574
- && this.expression.name == "String"
575
- && this.expression.undeclared();
576
- });
577
- })(function(node, func){
578
- node.DEFMETHOD("is_string", func);
579
- });
580
-
581
- function best_of(ast1, ast2) {
582
- return ast1.print_to_string().length >
583
- ast2.print_to_string().length
584
- ? ast2 : ast1;
585
- };
586
-
587
- // methods to evaluate a constant expression
588
- (function (def){
589
- // The evaluate method returns an array with one or two
590
- // elements. If the node has been successfully reduced to a
591
- // constant, then the second element tells us the value;
592
- // otherwise the second element is missing. The first element
593
- // of the array is always an AST_Node descendant; when
594
- // evaluation was successful it's a node that represents the
595
- // constant; otherwise it's the original node.
596
- AST_Node.DEFMETHOD("evaluate", function(compressor){
597
- if (!compressor.option("evaluate")) return [ this ];
598
- try {
599
- var val = this._eval(), ast = make_node_from_constant(compressor, val, this);
600
- return [ best_of(ast, this), val ];
601
- } catch(ex) {
602
- if (ex !== def) throw ex;
603
- return [ this ];
604
- }
605
- });
606
- def(AST_Statement, function(){
607
- throw new Error(string_template("Cannot evaluate a statement [{file}:{line},{col}]", this.start));
608
- });
609
- def(AST_Function, function(){
610
- // XXX: AST_Function inherits from AST_Scope, which itself
611
- // inherits from AST_Statement; however, an AST_Function
612
- // isn't really a statement. This could byte in other
613
- // places too. :-( Wish JS had multiple inheritance.
614
- return [ this ];
615
- });
616
- function ev(node) {
617
- return node._eval();
618
- };
619
- def(AST_Node, function(){
620
- throw def; // not constant
621
- });
622
- def(AST_Constant, function(){
623
- return this.getValue();
624
- });
625
- def(AST_UnaryPrefix, function(){
626
- var e = this.expression;
627
- switch (this.operator) {
628
- case "!": return !ev(e);
629
- case "typeof":
630
- // Function would be evaluated to an array and so typeof would
631
- // incorrectly return 'object'. Hence making is a special case.
632
- if (e instanceof AST_Function) return typeof function(){};
633
-
634
- e = ev(e);
635
-
636
- // typeof <RegExp> returns "object" or "function" on different platforms
637
- // so cannot evaluate reliably
638
- if (e instanceof RegExp) throw def;
639
-
640
- return typeof e;
641
- case "void": return void ev(e);
642
- case "~": return ~ev(e);
643
- case "-":
644
- e = ev(e);
645
- if (e === 0) throw def;
646
- return -e;
647
- case "+": return +ev(e);
648
- }
649
- throw def;
650
- });
651
- def(AST_Binary, function(){
652
- var left = this.left, right = this.right;
653
- switch (this.operator) {
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 "-" : return ev(left) - ev(right);
664
- case "<<" : return ev(left) << ev(right);
665
- case ">>" : return ev(left) >> ev(right);
666
- case ">>>" : return ev(left) >>> ev(right);
667
- case "==" : return ev(left) == ev(right);
668
- case "===" : return ev(left) === ev(right);
669
- case "!=" : return ev(left) != ev(right);
670
- case "!==" : return ev(left) !== ev(right);
671
- case "<" : return ev(left) < ev(right);
672
- case "<=" : return ev(left) <= ev(right);
673
- case ">" : return ev(left) > ev(right);
674
- case ">=" : return ev(left) >= ev(right);
675
- case "in" : return ev(left) in ev(right);
676
- case "instanceof" : return ev(left) instanceof ev(right);
677
- }
678
- throw def;
679
- });
680
- def(AST_Conditional, function(){
681
- return ev(this.condition)
682
- ? ev(this.consequent)
683
- : ev(this.alternative);
684
- });
685
- def(AST_SymbolRef, function(){
686
- var d = this.definition();
687
- if (d && d.constant && d.init) return ev(d.init);
688
- throw def;
689
- });
690
- })(function(node, func){
691
- node.DEFMETHOD("_eval", func);
692
- });
693
-
694
- // method to negate an expression
695
- (function(def){
696
- function basic_negation(exp) {
697
- return make_node(AST_UnaryPrefix, exp, {
698
- operator: "!",
699
- expression: exp
700
- });
701
- };
702
- def(AST_Node, function(){
703
- return basic_negation(this);
704
- });
705
- def(AST_Statement, function(){
706
- throw new Error("Cannot negate a statement");
707
- });
708
- def(AST_Function, function(){
709
- return basic_negation(this);
710
- });
711
- def(AST_UnaryPrefix, function(){
712
- if (this.operator == "!")
713
- return this.expression;
714
- return basic_negation(this);
715
- });
716
- def(AST_Seq, function(compressor){
717
- var self = this.clone();
718
- self.cdr = self.cdr.negate(compressor);
719
- return self;
720
- });
721
- def(AST_Conditional, function(compressor){
722
- var self = this.clone();
723
- self.consequent = self.consequent.negate(compressor);
724
- self.alternative = self.alternative.negate(compressor);
725
- return best_of(basic_negation(this), self);
726
- });
727
- def(AST_Binary, function(compressor){
728
- var self = this.clone(), op = this.operator;
729
- if (compressor.option("unsafe_comps")) {
730
- switch (op) {
731
- case "<=" : self.operator = ">" ; return self;
732
- case "<" : self.operator = ">=" ; return self;
733
- case ">=" : self.operator = "<" ; return self;
734
- case ">" : self.operator = "<=" ; return self;
735
- }
736
- }
737
- switch (op) {
738
- case "==" : self.operator = "!="; return self;
739
- case "!=" : self.operator = "=="; return self;
740
- case "===": self.operator = "!=="; return self;
741
- case "!==": self.operator = "==="; return self;
742
- case "&&":
743
- self.operator = "||";
744
- self.left = self.left.negate(compressor);
745
- self.right = self.right.negate(compressor);
746
- return best_of(basic_negation(this), self);
747
- case "||":
748
- self.operator = "&&";
749
- self.left = self.left.negate(compressor);
750
- self.right = self.right.negate(compressor);
751
- return best_of(basic_negation(this), self);
752
- }
753
- return basic_negation(this);
754
- });
755
- })(function(node, func){
756
- node.DEFMETHOD("negate", function(compressor){
757
- return func.call(this, compressor);
758
- });
759
- });
760
-
761
- // determine if expression has side effects
762
- (function(def){
763
- def(AST_Node, function(){ return true });
764
-
765
- def(AST_EmptyStatement, function(){ return false });
766
- def(AST_Constant, function(){ return false });
767
- def(AST_This, function(){ return false });
768
-
769
- def(AST_Block, function(){
770
- for (var i = this.body.length; --i >= 0;) {
771
- if (this.body[i].has_side_effects())
772
- return true;
773
- }
774
- return false;
775
- });
776
-
777
- def(AST_SimpleStatement, function(){
778
- return this.body.has_side_effects();
779
- });
780
- def(AST_Defun, function(){ return true });
781
- def(AST_Function, function(){ return false });
782
- def(AST_Binary, function(){
783
- return this.left.has_side_effects()
784
- || this.right.has_side_effects();
785
- });
786
- def(AST_Assign, function(){ return true });
787
- def(AST_Conditional, function(){
788
- return this.condition.has_side_effects()
789
- || this.consequent.has_side_effects()
790
- || this.alternative.has_side_effects();
791
- });
792
- def(AST_Unary, function(){
793
- return this.operator == "delete"
794
- || this.operator == "++"
795
- || this.operator == "--"
796
- || this.expression.has_side_effects();
797
- });
798
- def(AST_SymbolRef, function(){ return false });
799
- def(AST_Object, function(){
800
- for (var i = this.properties.length; --i >= 0;)
801
- if (this.properties[i].has_side_effects())
802
- return true;
803
- return false;
804
- });
805
- def(AST_ObjectProperty, function(){
806
- return this.value.has_side_effects();
807
- });
808
- def(AST_Array, function(){
809
- for (var i = this.elements.length; --i >= 0;)
810
- if (this.elements[i].has_side_effects())
811
- return true;
812
- return false;
813
- });
814
- // def(AST_Dot, function(){
815
- // return this.expression.has_side_effects();
816
- // });
817
- // def(AST_Sub, function(){
818
- // return this.expression.has_side_effects()
819
- // || this.property.has_side_effects();
820
- // });
821
- def(AST_PropAccess, function(){
822
- return true;
823
- });
824
- def(AST_Seq, function(){
825
- return this.car.has_side_effects()
826
- || this.cdr.has_side_effects();
827
- });
828
- })(function(node, func){
829
- node.DEFMETHOD("has_side_effects", func);
830
- });
831
-
832
- // tell me if a statement aborts
833
- function aborts(thing) {
834
- return thing && thing.aborts();
835
- };
836
- (function(def){
837
- def(AST_Statement, function(){ return null });
838
- def(AST_Jump, function(){ return this });
839
- function block_aborts(){
840
- var n = this.body.length;
841
- return n > 0 && aborts(this.body[n - 1]);
842
- };
843
- def(AST_BlockStatement, block_aborts);
844
- def(AST_SwitchBranch, block_aborts);
845
- def(AST_If, function(){
846
- return this.alternative && aborts(this.body) && aborts(this.alternative);
847
- });
848
- })(function(node, func){
849
- node.DEFMETHOD("aborts", func);
850
- });
851
-
852
- /* -----[ optimizers ]----- */
853
-
854
- OPT(AST_Directive, function(self, compressor){
855
- if (self.scope.has_directive(self.value) !== self.scope) {
856
- return make_node(AST_EmptyStatement, self);
857
- }
858
- return self;
859
- });
860
-
861
- OPT(AST_Debugger, function(self, compressor){
862
- if (compressor.option("drop_debugger"))
863
- return make_node(AST_EmptyStatement, self);
864
- return self;
865
- });
866
-
867
- OPT(AST_LabeledStatement, function(self, compressor){
868
- if (self.body instanceof AST_Break
869
- && compressor.loopcontrol_target(self.body.label) === self.body) {
870
- return make_node(AST_EmptyStatement, self);
871
- }
872
- return self.label.references.length == 0 ? self.body : self;
873
- });
874
-
875
- OPT(AST_Block, function(self, compressor){
876
- self.body = tighten_body(self.body, compressor);
877
- return self;
878
- });
879
-
880
- OPT(AST_BlockStatement, function(self, compressor){
881
- self.body = tighten_body(self.body, compressor);
882
- switch (self.body.length) {
883
- case 1: return self.body[0];
884
- case 0: return make_node(AST_EmptyStatement, self);
885
- }
886
- return self;
887
- });
888
-
889
- AST_Scope.DEFMETHOD("drop_unused", function(compressor){
890
- var self = this;
891
- if (compressor.option("unused")
892
- && !(self instanceof AST_Toplevel)
893
- && !self.uses_eval
894
- ) {
895
- var in_use = [];
896
- var initializations = new Dictionary();
897
- // pass 1: find out which symbols are directly used in
898
- // this scope (not in nested scopes).
899
- var scope = this;
900
- var tw = new TreeWalker(function(node, descend){
901
- if (node !== self) {
902
- if (node instanceof AST_Defun) {
903
- initializations.add(node.name.name, node);
904
- return true; // don't go in nested scopes
905
- }
906
- if (node instanceof AST_Definitions && scope === self) {
907
- node.definitions.forEach(function(def){
908
- if (def.value) {
909
- initializations.add(def.name.name, def.value);
910
- if (def.value.has_side_effects()) {
911
- def.value.walk(tw);
912
- }
913
- }
914
- });
915
- return true;
916
- }
917
- if (node instanceof AST_SymbolRef) {
918
- push_uniq(in_use, node.definition());
919
- return true;
920
- }
921
- if (node instanceof AST_Scope) {
922
- var save_scope = scope;
923
- scope = node;
924
- descend();
925
- scope = save_scope;
926
- return true;
927
- }
928
- }
929
- });
930
- self.walk(tw);
931
- // pass 2: for every used symbol we need to walk its
932
- // initialization code to figure out if it uses other
933
- // symbols (that may not be in_use).
934
- for (var i = 0; i < in_use.length; ++i) {
935
- in_use[i].orig.forEach(function(decl){
936
- // undeclared globals will be instanceof AST_SymbolRef
937
- var init = initializations.get(decl.name);
938
- if (init) init.forEach(function(init){
939
- var tw = new TreeWalker(function(node){
940
- if (node instanceof AST_SymbolRef) {
941
- push_uniq(in_use, node.definition());
942
- }
943
- });
944
- init.walk(tw);
945
- });
946
- });
947
- }
948
- // pass 3: we should drop declarations not in_use
949
- var tt = new TreeTransformer(
950
- function before(node, descend, in_list) {
951
- if (node instanceof AST_Lambda) {
952
- for (var a = node.argnames, i = a.length; --i >= 0;) {
953
- var sym = a[i];
954
- if (sym.unreferenced()) {
955
- a.pop();
956
- compressor.warn("Dropping unused function argument {name} [{file}:{line},{col}]", {
957
- name : sym.name,
958
- file : sym.start.file,
959
- line : sym.start.line,
960
- col : sym.start.col
961
- });
962
- }
963
- else break;
964
- }
965
- }
966
- if (node instanceof AST_Defun && node !== self) {
967
- if (!member(node.name.definition(), in_use)) {
968
- compressor.warn("Dropping unused function {name} [{file}:{line},{col}]", {
969
- name : node.name.name,
970
- file : node.name.start.file,
971
- line : node.name.start.line,
972
- col : node.name.start.col
973
- });
974
- return make_node(AST_EmptyStatement, node);
975
- }
976
- return node;
977
- }
978
- if (node instanceof AST_Definitions && !(tt.parent() instanceof AST_ForIn)) {
979
- var def = node.definitions.filter(function(def){
980
- if (member(def.name.definition(), in_use)) return true;
981
- var w = {
982
- name : def.name.name,
983
- file : def.name.start.file,
984
- line : def.name.start.line,
985
- col : def.name.start.col
986
- };
987
- if (def.value && def.value.has_side_effects()) {
988
- def._unused_side_effects = true;
989
- compressor.warn("Side effects in initialization of unused variable {name} [{file}:{line},{col}]", w);
990
- return true;
991
- }
992
- compressor.warn("Dropping unused variable {name} [{file}:{line},{col}]", w);
993
- return false;
994
- });
995
- // place uninitialized names at the start
996
- def = mergeSort(def, function(a, b){
997
- if (!a.value && b.value) return -1;
998
- if (!b.value && a.value) return 1;
999
- return 0;
1000
- });
1001
- // for unused names whose initialization has
1002
- // side effects, we can cascade the init. code
1003
- // into the next one, or next statement.
1004
- var side_effects = [];
1005
- for (var i = 0; i < def.length;) {
1006
- var x = def[i];
1007
- if (x._unused_side_effects) {
1008
- side_effects.push(x.value);
1009
- def.splice(i, 1);
1010
- } else {
1011
- if (side_effects.length > 0) {
1012
- side_effects.push(x.value);
1013
- x.value = AST_Seq.from_array(side_effects);
1014
- side_effects = [];
1015
- }
1016
- ++i;
1017
- }
1018
- }
1019
- if (side_effects.length > 0) {
1020
- side_effects = make_node(AST_BlockStatement, node, {
1021
- body: [ make_node(AST_SimpleStatement, node, {
1022
- body: AST_Seq.from_array(side_effects)
1023
- }) ]
1024
- });
1025
- } else {
1026
- side_effects = null;
1027
- }
1028
- if (def.length == 0 && !side_effects) {
1029
- return make_node(AST_EmptyStatement, node);
1030
- }
1031
- if (def.length == 0) {
1032
- return side_effects;
1033
- }
1034
- node.definitions = def;
1035
- if (side_effects) {
1036
- side_effects.body.unshift(node);
1037
- node = side_effects;
1038
- }
1039
- return node;
1040
- }
1041
- if (node instanceof AST_For && node.init instanceof AST_BlockStatement) {
1042
- descend(node, this);
1043
- // certain combination of unused name + side effect leads to:
1044
- // https://github.com/mishoo/UglifyJS2/issues/44
1045
- // that's an invalid AST.
1046
- // We fix it at this stage by moving the `var` outside the `for`.
1047
- var body = node.init.body.slice(0, -1);
1048
- node.init = node.init.body.slice(-1)[0].body;
1049
- body.push(node);
1050
- return in_list ? MAP.splice(body) : make_node(AST_BlockStatement, node, {
1051
- body: body
1052
- });
1053
- }
1054
- if (node instanceof AST_Scope && node !== self)
1055
- return node;
1056
- }
1057
- );
1058
- self.transform(tt);
1059
- }
1060
- });
1061
-
1062
- AST_Scope.DEFMETHOD("hoist_declarations", function(compressor){
1063
- var hoist_funs = compressor.option("hoist_funs");
1064
- var hoist_vars = compressor.option("hoist_vars");
1065
- var self = this;
1066
- if (hoist_funs || hoist_vars) {
1067
- var dirs = [];
1068
- var hoisted = [];
1069
- var vars = new Dictionary(), vars_found = 0, var_decl = 0;
1070
- // let's count var_decl first, we seem to waste a lot of
1071
- // space if we hoist `var` when there's only one.
1072
- self.walk(new TreeWalker(function(node){
1073
- if (node instanceof AST_Scope && node !== self)
1074
- return true;
1075
- if (node instanceof AST_Var) {
1076
- ++var_decl;
1077
- return true;
1078
- }
1079
- }));
1080
- hoist_vars = hoist_vars && var_decl > 1;
1081
- var tt = new TreeTransformer(
1082
- function before(node) {
1083
- if (node !== self) {
1084
- if (node instanceof AST_Directive) {
1085
- dirs.push(node);
1086
- return make_node(AST_EmptyStatement, node);
1087
- }
1088
- if (node instanceof AST_Defun && hoist_funs) {
1089
- hoisted.push(node);
1090
- return make_node(AST_EmptyStatement, node);
1091
- }
1092
- if (node instanceof AST_Var && hoist_vars) {
1093
- node.definitions.forEach(function(def){
1094
- vars.set(def.name.name, def);
1095
- ++vars_found;
1096
- });
1097
- var seq = node.to_assignments();
1098
- var p = tt.parent();
1099
- if (p instanceof AST_ForIn && p.init === node) {
1100
- if (seq == null) return node.definitions[0].name;
1101
- return seq;
1102
- }
1103
- if (p instanceof AST_For && p.init === node) {
1104
- return seq;
1105
- }
1106
- if (!seq) return make_node(AST_EmptyStatement, node);
1107
- return make_node(AST_SimpleStatement, node, {
1108
- body: seq
1109
- });
1110
- }
1111
- if (node instanceof AST_Scope)
1112
- return node; // to avoid descending in nested scopes
1113
- }
1114
- }
1115
- );
1116
- self = self.transform(tt);
1117
- if (vars_found > 0) {
1118
- // collect only vars which don't show up in self's arguments list
1119
- var defs = [];
1120
- vars.each(function(def, name){
1121
- if (self instanceof AST_Lambda
1122
- && find_if(function(x){ return x.name == def.name.name },
1123
- self.argnames)) {
1124
- vars.del(name);
1125
- } else {
1126
- def = def.clone();
1127
- def.value = null;
1128
- defs.push(def);
1129
- vars.set(name, def);
1130
- }
1131
- });
1132
- if (defs.length > 0) {
1133
- // try to merge in assignments
1134
- for (var i = 0; i < self.body.length;) {
1135
- if (self.body[i] instanceof AST_SimpleStatement) {
1136
- var expr = self.body[i].body, sym, assign;
1137
- if (expr instanceof AST_Assign
1138
- && expr.operator == "="
1139
- && (sym = expr.left) instanceof AST_Symbol
1140
- && vars.has(sym.name))
1141
- {
1142
- var def = vars.get(sym.name);
1143
- if (def.value) break;
1144
- def.value = expr.right;
1145
- remove(defs, def);
1146
- defs.push(def);
1147
- self.body.splice(i, 1);
1148
- continue;
1149
- }
1150
- if (expr instanceof AST_Seq
1151
- && (assign = expr.car) instanceof AST_Assign
1152
- && assign.operator == "="
1153
- && (sym = assign.left) instanceof AST_Symbol
1154
- && vars.has(sym.name))
1155
- {
1156
- var def = vars.get(sym.name);
1157
- if (def.value) break;
1158
- def.value = assign.right;
1159
- remove(defs, def);
1160
- defs.push(def);
1161
- self.body[i].body = expr.cdr;
1162
- continue;
1163
- }
1164
- }
1165
- if (self.body[i] instanceof AST_EmptyStatement) {
1166
- self.body.splice(i, 1);
1167
- continue;
1168
- }
1169
- if (self.body[i] instanceof AST_BlockStatement) {
1170
- var tmp = [ i, 1 ].concat(self.body[i].body);
1171
- self.body.splice.apply(self.body, tmp);
1172
- continue;
1173
- }
1174
- break;
1175
- }
1176
- defs = make_node(AST_Var, self, {
1177
- definitions: defs
1178
- });
1179
- hoisted.push(defs);
1180
- };
1181
- }
1182
- self.body = dirs.concat(hoisted, self.body);
1183
- }
1184
- return self;
1185
- });
1186
-
1187
- OPT(AST_SimpleStatement, function(self, compressor){
1188
- if (compressor.option("side_effects")) {
1189
- if (!self.body.has_side_effects()) {
1190
- compressor.warn("Dropping side-effect-free statement [{file}:{line},{col}]", self.start);
1191
- return make_node(AST_EmptyStatement, self);
1192
- }
1193
- }
1194
- return self;
1195
- });
1196
-
1197
- OPT(AST_DWLoop, function(self, compressor){
1198
- var cond = self.condition.evaluate(compressor);
1199
- self.condition = cond[0];
1200
- if (!compressor.option("loops")) return self;
1201
- if (cond.length > 1) {
1202
- if (cond[1]) {
1203
- return make_node(AST_For, self, {
1204
- body: self.body
1205
- });
1206
- } else if (self instanceof AST_While) {
1207
- if (compressor.option("dead_code")) {
1208
- var a = [];
1209
- extract_declarations_from_unreachable_code(compressor, self.body, a);
1210
- return make_node(AST_BlockStatement, self, { body: a });
1211
- }
1212
- }
1213
- }
1214
- return self;
1215
- });
1216
-
1217
- function if_break_in_loop(self, compressor) {
1218
- function drop_it(rest) {
1219
- rest = as_statement_array(rest);
1220
- if (self.body instanceof AST_BlockStatement) {
1221
- self.body = self.body.clone();
1222
- self.body.body = rest.concat(self.body.body.slice(1));
1223
- self.body = self.body.transform(compressor);
1224
- } else {
1225
- self.body = make_node(AST_BlockStatement, self.body, {
1226
- body: rest
1227
- }).transform(compressor);
1228
- }
1229
- if_break_in_loop(self, compressor);
1230
- }
1231
- var first = self.body instanceof AST_BlockStatement ? self.body.body[0] : self.body;
1232
- if (first instanceof AST_If) {
1233
- if (first.body instanceof AST_Break
1234
- && compressor.loopcontrol_target(first.body.label) === self) {
1235
- if (self.condition) {
1236
- self.condition = make_node(AST_Binary, self.condition, {
1237
- left: self.condition,
1238
- operator: "&&",
1239
- right: first.condition.negate(compressor),
1240
- });
1241
- } else {
1242
- self.condition = first.condition.negate(compressor);
1243
- }
1244
- drop_it(first.alternative);
1245
- }
1246
- else if (first.alternative instanceof AST_Break
1247
- && compressor.loopcontrol_target(first.alternative.label) === self) {
1248
- if (self.condition) {
1249
- self.condition = make_node(AST_Binary, self.condition, {
1250
- left: self.condition,
1251
- operator: "&&",
1252
- right: first.condition,
1253
- });
1254
- } else {
1255
- self.condition = first.condition;
1256
- }
1257
- drop_it(first.body);
1258
- }
1259
- }
1260
- };
1261
-
1262
- OPT(AST_While, function(self, compressor) {
1263
- if (!compressor.option("loops")) return self;
1264
- self = AST_DWLoop.prototype.optimize.call(self, compressor);
1265
- if (self instanceof AST_While) {
1266
- if_break_in_loop(self, compressor);
1267
- self = make_node(AST_For, self, self).transform(compressor);
1268
- }
1269
- return self;
1270
- });
1271
-
1272
- OPT(AST_For, function(self, compressor){
1273
- var cond = self.condition;
1274
- if (cond) {
1275
- cond = cond.evaluate(compressor);
1276
- self.condition = cond[0];
1277
- }
1278
- if (!compressor.option("loops")) return self;
1279
- if (cond) {
1280
- if (cond.length > 1 && !cond[1]) {
1281
- if (compressor.option("dead_code")) {
1282
- var a = [];
1283
- if (self.init instanceof AST_Statement) {
1284
- a.push(self.init);
1285
- }
1286
- else if (self.init) {
1287
- a.push(make_node(AST_SimpleStatement, self.init, {
1288
- body: self.init
1289
- }));
1290
- }
1291
- extract_declarations_from_unreachable_code(compressor, self.body, a);
1292
- return make_node(AST_BlockStatement, self, { body: a });
1293
- }
1294
- }
1295
- }
1296
- if_break_in_loop(self, compressor);
1297
- return self;
1298
- });
1299
-
1300
- OPT(AST_If, function(self, compressor){
1301
- if (!compressor.option("conditionals")) return self;
1302
- // if condition can be statically determined, warn and drop
1303
- // one of the blocks. note, statically determined implies
1304
- // “has no side effects”; also it doesn't work for cases like
1305
- // `x && true`, though it probably should.
1306
- var cond = self.condition.evaluate(compressor);
1307
- self.condition = cond[0];
1308
- if (cond.length > 1) {
1309
- if (cond[1]) {
1310
- compressor.warn("Condition always true [{file}:{line},{col}]", self.condition.start);
1311
- if (compressor.option("dead_code")) {
1312
- var a = [];
1313
- if (self.alternative) {
1314
- extract_declarations_from_unreachable_code(compressor, self.alternative, a);
1315
- }
1316
- a.push(self.body);
1317
- return make_node(AST_BlockStatement, self, { body: a }).transform(compressor);
1318
- }
1319
- } else {
1320
- compressor.warn("Condition always false [{file}:{line},{col}]", self.condition.start);
1321
- if (compressor.option("dead_code")) {
1322
- var a = [];
1323
- extract_declarations_from_unreachable_code(compressor, self.body, a);
1324
- if (self.alternative) a.push(self.alternative);
1325
- return make_node(AST_BlockStatement, self, { body: a }).transform(compressor);
1326
- }
1327
- }
1328
- }
1329
- if (is_empty(self.alternative)) self.alternative = null;
1330
- var negated = self.condition.negate(compressor);
1331
- var negated_is_best = best_of(self.condition, negated) === negated;
1332
- if (self.alternative && negated_is_best) {
1333
- negated_is_best = false; // because we already do the switch here.
1334
- self.condition = negated;
1335
- var tmp = self.body;
1336
- self.body = self.alternative || make_node(AST_EmptyStatement);
1337
- self.alternative = tmp;
1338
- }
1339
- if (is_empty(self.body) && is_empty(self.alternative)) {
1340
- return make_node(AST_SimpleStatement, self.condition, {
1341
- body: self.condition
1342
- }).transform(compressor);
1343
- }
1344
- if (self.body instanceof AST_SimpleStatement
1345
- && self.alternative instanceof AST_SimpleStatement) {
1346
- return make_node(AST_SimpleStatement, self, {
1347
- body: make_node(AST_Conditional, self, {
1348
- condition : self.condition,
1349
- consequent : self.body.body,
1350
- alternative : self.alternative.body
1351
- })
1352
- }).transform(compressor);
1353
- }
1354
- if (is_empty(self.alternative) && self.body instanceof AST_SimpleStatement) {
1355
- if (negated_is_best) return make_node(AST_SimpleStatement, self, {
1356
- body: make_node(AST_Binary, self, {
1357
- operator : "||",
1358
- left : negated,
1359
- right : self.body.body
1360
- })
1361
- }).transform(compressor);
1362
- return make_node(AST_SimpleStatement, self, {
1363
- body: make_node(AST_Binary, self, {
1364
- operator : "&&",
1365
- left : self.condition,
1366
- right : self.body.body
1367
- })
1368
- }).transform(compressor);
1369
- }
1370
- if (self.body instanceof AST_EmptyStatement
1371
- && self.alternative
1372
- && self.alternative instanceof AST_SimpleStatement) {
1373
- return make_node(AST_SimpleStatement, self, {
1374
- body: make_node(AST_Binary, self, {
1375
- operator : "||",
1376
- left : self.condition,
1377
- right : self.alternative.body
1378
- })
1379
- }).transform(compressor);
1380
- }
1381
- if (self.body instanceof AST_Exit
1382
- && self.alternative instanceof AST_Exit
1383
- && self.body.TYPE == self.alternative.TYPE) {
1384
- return make_node(self.body.CTOR, self, {
1385
- value: make_node(AST_Conditional, self, {
1386
- condition : self.condition,
1387
- consequent : self.body.value || make_node(AST_Undefined, self.body).optimize(compressor),
1388
- alternative : self.alternative.value || make_node(AST_Undefined, self.alternative).optimize(compressor)
1389
- })
1390
- }).transform(compressor);
1391
- }
1392
- if (self.body instanceof AST_If
1393
- && !self.body.alternative
1394
- && !self.alternative) {
1395
- self.condition = make_node(AST_Binary, self.condition, {
1396
- operator: "&&",
1397
- left: self.condition,
1398
- right: self.body.condition
1399
- }).transform(compressor);
1400
- self.body = self.body.body;
1401
- }
1402
- if (aborts(self.body)) {
1403
- if (self.alternative) {
1404
- var alt = self.alternative;
1405
- self.alternative = null;
1406
- return make_node(AST_BlockStatement, self, {
1407
- body: [ self, alt ]
1408
- }).transform(compressor);
1409
- }
1410
- }
1411
- if (aborts(self.alternative)) {
1412
- var body = self.body;
1413
- self.body = self.alternative;
1414
- self.condition = negated_is_best ? negated : self.condition.negate(compressor);
1415
- self.alternative = null;
1416
- return make_node(AST_BlockStatement, self, {
1417
- body: [ self, body ]
1418
- }).transform(compressor);
1419
- }
1420
- return self;
1421
- });
1422
-
1423
- OPT(AST_Switch, function(self, compressor){
1424
- if (self.body.length == 0 && compressor.option("conditionals")) {
1425
- return make_node(AST_SimpleStatement, self, {
1426
- body: self.expression
1427
- }).transform(compressor);
1428
- }
1429
- for(;;) {
1430
- var last_branch = self.body[self.body.length - 1];
1431
- if (last_branch) {
1432
- var stat = last_branch.body[last_branch.body.length - 1]; // last statement
1433
- if (stat instanceof AST_Break && loop_body(compressor.loopcontrol_target(stat.label)) === self)
1434
- last_branch.body.pop();
1435
- if (last_branch instanceof AST_Default && last_branch.body.length == 0) {
1436
- self.body.pop();
1437
- continue;
1438
- }
1439
- }
1440
- break;
1441
- }
1442
- var exp = self.expression.evaluate(compressor);
1443
- out: if (exp.length == 2) try {
1444
- // constant expression
1445
- self.expression = exp[0];
1446
- if (!compressor.option("dead_code")) break out;
1447
- var value = exp[1];
1448
- var in_if = false;
1449
- var in_block = false;
1450
- var started = false;
1451
- var stopped = false;
1452
- var ruined = false;
1453
- var tt = new TreeTransformer(function(node, descend, in_list){
1454
- if (node instanceof AST_Lambda || node instanceof AST_SimpleStatement) {
1455
- // no need to descend these node types
1456
- return node;
1457
- }
1458
- else if (node instanceof AST_Switch && node === self) {
1459
- node = node.clone();
1460
- descend(node, this);
1461
- return ruined ? node : make_node(AST_BlockStatement, node, {
1462
- body: node.body.reduce(function(a, branch){
1463
- return a.concat(branch.body);
1464
- }, [])
1465
- }).transform(compressor);
1466
- }
1467
- else if (node instanceof AST_If || node instanceof AST_Try) {
1468
- var save = in_if;
1469
- in_if = !in_block;
1470
- descend(node, this);
1471
- in_if = save;
1472
- return node;
1473
- }
1474
- else if (node instanceof AST_StatementWithBody || node instanceof AST_Switch) {
1475
- var save = in_block;
1476
- in_block = true;
1477
- descend(node, this);
1478
- in_block = save;
1479
- return node;
1480
- }
1481
- else if (node instanceof AST_Break && this.loopcontrol_target(node.label) === self) {
1482
- if (in_if) {
1483
- ruined = true;
1484
- return node;
1485
- }
1486
- if (in_block) return node;
1487
- stopped = true;
1488
- return in_list ? MAP.skip : make_node(AST_EmptyStatement, node);
1489
- }
1490
- else if (node instanceof AST_SwitchBranch && this.parent() === self) {
1491
- if (stopped) return MAP.skip;
1492
- if (node instanceof AST_Case) {
1493
- var exp = node.expression.evaluate(compressor);
1494
- if (exp.length < 2) {
1495
- // got a case with non-constant expression, baling out
1496
- throw self;
1497
- }
1498
- if (exp[1] === value || started) {
1499
- started = true;
1500
- if (aborts(node)) stopped = true;
1501
- descend(node, this);
1502
- return node;
1503
- }
1504
- return MAP.skip;
1505
- }
1506
- descend(node, this);
1507
- return node;
1508
- }
1509
- });
1510
- tt.stack = compressor.stack.slice(); // so that's able to see parent nodes
1511
- self = self.transform(tt);
1512
- } catch(ex) {
1513
- if (ex !== self) throw ex;
1514
- }
1515
- return self;
1516
- });
1517
-
1518
- OPT(AST_Case, function(self, compressor){
1519
- self.body = tighten_body(self.body, compressor);
1520
- return self;
1521
- });
1522
-
1523
- OPT(AST_Try, function(self, compressor){
1524
- self.body = tighten_body(self.body, compressor);
1525
- return self;
1526
- });
1527
-
1528
- AST_Definitions.DEFMETHOD("remove_initializers", function(){
1529
- this.definitions.forEach(function(def){ def.value = null });
1530
- });
1531
-
1532
- AST_Definitions.DEFMETHOD("to_assignments", function(){
1533
- var assignments = this.definitions.reduce(function(a, def){
1534
- if (def.value) {
1535
- var name = make_node(AST_SymbolRef, def.name, def.name);
1536
- a.push(make_node(AST_Assign, def, {
1537
- operator : "=",
1538
- left : name,
1539
- right : def.value
1540
- }));
1541
- }
1542
- return a;
1543
- }, []);
1544
- if (assignments.length == 0) return null;
1545
- return AST_Seq.from_array(assignments);
1546
- });
1547
-
1548
- OPT(AST_Definitions, function(self, compressor){
1549
- if (self.definitions.length == 0)
1550
- return make_node(AST_EmptyStatement, self);
1551
- return self;
1552
- });
1553
-
1554
- OPT(AST_Function, function(self, compressor){
1555
- self = AST_Lambda.prototype.optimize.call(self, compressor);
1556
- if (compressor.option("unused")) {
1557
- if (self.name && self.name.unreferenced()) {
1558
- self.name = null;
1559
- }
1560
- }
1561
- return self;
1562
- });
1563
-
1564
- OPT(AST_Call, function(self, compressor){
1565
- if (compressor.option("unsafe")) {
1566
- var exp = self.expression;
1567
- if (exp instanceof AST_SymbolRef && exp.undeclared()) {
1568
- switch (exp.name) {
1569
- case "Array":
1570
- if (self.args.length != 1) {
1571
- return make_node(AST_Array, self, {
1572
- elements: self.args
1573
- });
1574
- }
1575
- break;
1576
- case "Object":
1577
- if (self.args.length == 0) {
1578
- return make_node(AST_Object, self, {
1579
- properties: []
1580
- });
1581
- }
1582
- break;
1583
- case "String":
1584
- if (self.args.length == 0) return make_node(AST_String, self, {
1585
- value: ""
1586
- });
1587
- return make_node(AST_Binary, self, {
1588
- left: self.args[0],
1589
- operator: "+",
1590
- right: make_node(AST_String, self, { value: "" })
1591
- });
1592
- case "Function":
1593
- if (all(self.args, function(x){ return x instanceof AST_String })) {
1594
- // quite a corner-case, but we can handle it:
1595
- // https://github.com/mishoo/UglifyJS2/issues/203
1596
- // if the code argument is a constant, then we can minify it.
1597
- try {
1598
- var code = "(function(" + self.args.slice(0, -1).map(function(arg){
1599
- return arg.value;
1600
- }).join(",") + "){" + self.args[self.args.length - 1].value + "})()";
1601
- var ast = parse(code);
1602
- ast.figure_out_scope();
1603
- var comp = new Compressor(compressor.options);
1604
- ast = ast.transform(comp);
1605
- ast.figure_out_scope();
1606
- ast.mangle_names();
1607
- var fun = ast.body[0].body.expression;
1608
- var args = fun.argnames.map(function(arg, i){
1609
- return make_node(AST_String, self.args[i], {
1610
- value: arg.print_to_string()
1611
- });
1612
- });
1613
- var code = OutputStream();
1614
- AST_BlockStatement.prototype._codegen.call(fun, fun, code);
1615
- code = code.toString().replace(/^\{|\}$/g, "");
1616
- args.push(make_node(AST_String, self.args[self.args.length - 1], {
1617
- value: code
1618
- }));
1619
- self.args = args;
1620
- return self;
1621
- } catch(ex) {
1622
- if (ex instanceof JS_Parse_Error) {
1623
- compressor.warn("Error parsing code passed to new Function [{file}:{line},{col}]", self.args[self.args.length - 1].start);
1624
- compressor.warn(ex.toString());
1625
- } else {
1626
- console.log(ex);
1627
- }
1628
- }
1629
- }
1630
- break;
1631
- }
1632
- }
1633
- else if (exp instanceof AST_Dot && exp.property == "toString" && self.args.length == 0) {
1634
- return make_node(AST_Binary, self, {
1635
- left: make_node(AST_String, self, { value: "" }),
1636
- operator: "+",
1637
- right: exp.expression
1638
- }).transform(compressor);
1639
- }
1640
- }
1641
- if (compressor.option("side_effects")) {
1642
- if (self.expression instanceof AST_Function
1643
- && self.args.length == 0
1644
- && !AST_Block.prototype.has_side_effects.call(self.expression)) {
1645
- return make_node(AST_Undefined, self).transform(compressor);
1646
- }
1647
- }
1648
- return self;
1649
- });
1650
-
1651
- OPT(AST_New, function(self, compressor){
1652
- if (compressor.option("unsafe")) {
1653
- var exp = self.expression;
1654
- if (exp instanceof AST_SymbolRef && exp.undeclared()) {
1655
- switch (exp.name) {
1656
- case "Object":
1657
- case "RegExp":
1658
- case "Function":
1659
- case "Error":
1660
- case "Array":
1661
- return make_node(AST_Call, self, self).transform(compressor);
1662
- }
1663
- }
1664
- }
1665
- return self;
1666
- });
1667
-
1668
- OPT(AST_Seq, function(self, compressor){
1669
- if (!compressor.option("side_effects"))
1670
- return self;
1671
- if (!self.car.has_side_effects()) {
1672
- // we shouldn't compress (1,eval)(something) to
1673
- // eval(something) because that changes the meaning of
1674
- // eval (becomes lexical instead of global).
1675
- var p;
1676
- if (!(self.cdr instanceof AST_SymbolRef
1677
- && self.cdr.name == "eval"
1678
- && self.cdr.undeclared()
1679
- && (p = compressor.parent()) instanceof AST_Call
1680
- && p.expression === self)) {
1681
- return self.cdr;
1682
- }
1683
- }
1684
- if (compressor.option("cascade")) {
1685
- if (self.car instanceof AST_Assign
1686
- && !self.car.left.has_side_effects()
1687
- && self.car.left.equivalent_to(self.cdr)) {
1688
- return self.car;
1689
- }
1690
- if (!self.car.has_side_effects()
1691
- && !self.cdr.has_side_effects()
1692
- && self.car.equivalent_to(self.cdr)) {
1693
- return self.car;
1694
- }
1695
- }
1696
- return self;
1697
- });
1698
-
1699
- AST_Unary.DEFMETHOD("lift_sequences", function(compressor){
1700
- if (compressor.option("sequences")) {
1701
- if (this.expression instanceof AST_Seq) {
1702
- var seq = this.expression;
1703
- var x = seq.to_array();
1704
- this.expression = x.pop();
1705
- x.push(this);
1706
- seq = AST_Seq.from_array(x).transform(compressor);
1707
- return seq;
1708
- }
1709
- }
1710
- return this;
1711
- });
1712
-
1713
- OPT(AST_UnaryPostfix, function(self, compressor){
1714
- return self.lift_sequences(compressor);
1715
- });
1716
-
1717
- OPT(AST_UnaryPrefix, function(self, compressor){
1718
- self = self.lift_sequences(compressor);
1719
- var e = self.expression;
1720
- if (compressor.option("booleans") && compressor.in_boolean_context()) {
1721
- switch (self.operator) {
1722
- case "!":
1723
- if (e instanceof AST_UnaryPrefix && e.operator == "!") {
1724
- // !!foo ==> foo, if we're in boolean context
1725
- return e.expression;
1726
- }
1727
- break;
1728
- case "typeof":
1729
- // typeof always returns a non-empty string, thus it's
1730
- // always true in booleans
1731
- compressor.warn("Boolean expression always true [{file}:{line},{col}]", self.start);
1732
- return make_node(AST_True, self);
1733
- }
1734
- if (e instanceof AST_Binary && self.operator == "!") {
1735
- self = best_of(self, e.negate(compressor));
1736
- }
1737
- }
1738
- return self.evaluate(compressor)[0];
1739
- });
1740
-
1741
- AST_Binary.DEFMETHOD("lift_sequences", function(compressor){
1742
- if (compressor.option("sequences")) {
1743
- if (this.left instanceof AST_Seq) {
1744
- var seq = this.left;
1745
- var x = seq.to_array();
1746
- this.left = x.pop();
1747
- x.push(this);
1748
- seq = AST_Seq.from_array(x).transform(compressor);
1749
- return seq;
1750
- }
1751
- if (this.right instanceof AST_Seq
1752
- && !(this.operator == "||" || this.operator == "&&")
1753
- && !this.left.has_side_effects()) {
1754
- var seq = this.right;
1755
- var x = seq.to_array();
1756
- this.right = x.pop();
1757
- x.push(this);
1758
- seq = AST_Seq.from_array(x).transform(compressor);
1759
- return seq;
1760
- }
1761
- }
1762
- return this;
1763
- });
1764
-
1765
- var commutativeOperators = makePredicate("== === != !== * & | ^");
1766
-
1767
- OPT(AST_Binary, function(self, compressor){
1768
- function reverse(op, force) {
1769
- if (force || !(self.left.has_side_effects() || self.right.has_side_effects())) {
1770
- if (op) self.operator = op;
1771
- var tmp = self.left;
1772
- self.left = self.right;
1773
- self.right = tmp;
1774
- }
1775
- };
1776
- if (commutativeOperators(self.operator)) {
1777
- if (self.right instanceof AST_Constant
1778
- && !(self.left instanceof AST_Constant)) {
1779
- // if right is a constant, whatever side effects the
1780
- // left side might have could not influence the
1781
- // result. hence, force switch.
1782
- reverse(null, true);
1783
- }
1784
- }
1785
- self = self.lift_sequences(compressor);
1786
- if (compressor.option("comparisons")) switch (self.operator) {
1787
- case "===":
1788
- case "!==":
1789
- if ((self.left.is_string(compressor) && self.right.is_string(compressor)) ||
1790
- (self.left.is_boolean() && self.right.is_boolean())) {
1791
- self.operator = self.operator.substr(0, 2);
1792
- }
1793
- // XXX: intentionally falling down to the next case
1794
- case "==":
1795
- case "!=":
1796
- if (self.left instanceof AST_String
1797
- && self.left.value == "undefined"
1798
- && self.right instanceof AST_UnaryPrefix
1799
- && self.right.operator == "typeof"
1800
- && compressor.option("unsafe")) {
1801
- if (!(self.right.expression instanceof AST_SymbolRef)
1802
- || !self.right.expression.undeclared()) {
1803
- self.right = self.right.expression;
1804
- self.left = make_node(AST_Undefined, self.left).optimize(compressor);
1805
- if (self.operator.length == 2) self.operator += "=";
1806
- }
1807
- }
1808
- break;
1809
- }
1810
- if (compressor.option("booleans") && compressor.in_boolean_context()) switch (self.operator) {
1811
- case "&&":
1812
- var ll = self.left.evaluate(compressor);
1813
- var rr = self.right.evaluate(compressor);
1814
- if ((ll.length > 1 && !ll[1]) || (rr.length > 1 && !rr[1])) {
1815
- compressor.warn("Boolean && always false [{file}:{line},{col}]", self.start);
1816
- return make_node(AST_False, self);
1817
- }
1818
- if (ll.length > 1 && ll[1]) {
1819
- return rr[0];
1820
- }
1821
- if (rr.length > 1 && rr[1]) {
1822
- return ll[0];
1823
- }
1824
- break;
1825
- case "||":
1826
- var ll = self.left.evaluate(compressor);
1827
- var rr = self.right.evaluate(compressor);
1828
- if ((ll.length > 1 && ll[1]) || (rr.length > 1 && rr[1])) {
1829
- compressor.warn("Boolean || always true [{file}:{line},{col}]", self.start);
1830
- return make_node(AST_True, self);
1831
- }
1832
- if (ll.length > 1 && !ll[1]) {
1833
- return rr[0];
1834
- }
1835
- if (rr.length > 1 && !rr[1]) {
1836
- return ll[0];
1837
- }
1838
- break;
1839
- case "+":
1840
- var ll = self.left.evaluate(compressor);
1841
- var rr = self.right.evaluate(compressor);
1842
- if ((ll.length > 1 && ll[0] instanceof AST_String && ll[1]) ||
1843
- (rr.length > 1 && rr[0] instanceof AST_String && rr[1])) {
1844
- compressor.warn("+ in boolean context always true [{file}:{line},{col}]", self.start);
1845
- return make_node(AST_True, self);
1846
- }
1847
- break;
1848
- }
1849
- var exp = self.evaluate(compressor);
1850
- if (exp.length > 1) {
1851
- if (best_of(exp[0], self) !== self)
1852
- return exp[0];
1853
- }
1854
- if (compressor.option("comparisons")) {
1855
- if (!(compressor.parent() instanceof AST_Binary)
1856
- || compressor.parent() instanceof AST_Assign) {
1857
- var negated = make_node(AST_UnaryPrefix, self, {
1858
- operator: "!",
1859
- expression: self.negate(compressor)
1860
- });
1861
- self = best_of(self, negated);
1862
- }
1863
- switch (self.operator) {
1864
- case "<": reverse(">"); break;
1865
- case "<=": reverse(">="); break;
1866
- }
1867
- }
1868
- if (self.operator == "+" && self.right instanceof AST_String
1869
- && self.right.getValue() === "" && self.left instanceof AST_Binary
1870
- && self.left.operator == "+" && self.left.is_string(compressor)) {
1871
- return self.left;
1872
- }
1873
- return self;
1874
- });
1875
-
1876
- OPT(AST_SymbolRef, function(self, compressor){
1877
- if (self.undeclared()) {
1878
- var defines = compressor.option("global_defs");
1879
- if (defines && defines.hasOwnProperty(self.name)) {
1880
- return make_node_from_constant(compressor, defines[self.name], self);
1881
- }
1882
- switch (self.name) {
1883
- case "undefined":
1884
- return make_node(AST_Undefined, self);
1885
- case "NaN":
1886
- return make_node(AST_NaN, self);
1887
- case "Infinity":
1888
- return make_node(AST_Infinity, self);
1889
- }
1890
- }
1891
- return self;
1892
- });
1893
-
1894
- OPT(AST_Undefined, function(self, compressor){
1895
- if (compressor.option("unsafe")) {
1896
- var scope = compressor.find_parent(AST_Scope);
1897
- var undef = scope.find_variable("undefined");
1898
- if (undef) {
1899
- var ref = make_node(AST_SymbolRef, self, {
1900
- name : "undefined",
1901
- scope : scope,
1902
- thedef : undef
1903
- });
1904
- ref.reference();
1905
- return ref;
1906
- }
1907
- }
1908
- return self;
1909
- });
1910
-
1911
- var ASSIGN_OPS = [ '+', '-', '/', '*', '%', '>>', '<<', '>>>', '|', '^', '&' ];
1912
- OPT(AST_Assign, function(self, compressor){
1913
- self = self.lift_sequences(compressor);
1914
- if (self.operator == "="
1915
- && self.left instanceof AST_SymbolRef
1916
- && self.right instanceof AST_Binary
1917
- && self.right.left instanceof AST_SymbolRef
1918
- && self.right.left.name == self.left.name
1919
- && member(self.right.operator, ASSIGN_OPS)) {
1920
- self.operator = self.right.operator + "=";
1921
- self.right = self.right.right;
1922
- }
1923
- return self;
1924
- });
1925
-
1926
- OPT(AST_Conditional, function(self, compressor){
1927
- if (!compressor.option("conditionals")) return self;
1928
- if (self.condition instanceof AST_Seq) {
1929
- var car = self.condition.car;
1930
- self.condition = self.condition.cdr;
1931
- return AST_Seq.cons(car, self);
1932
- }
1933
- var cond = self.condition.evaluate(compressor);
1934
- if (cond.length > 1) {
1935
- if (cond[1]) {
1936
- compressor.warn("Condition always true [{file}:{line},{col}]", self.start);
1937
- return self.consequent;
1938
- } else {
1939
- compressor.warn("Condition always false [{file}:{line},{col}]", self.start);
1940
- return self.alternative;
1941
- }
1942
- }
1943
- var negated = cond[0].negate(compressor);
1944
- if (best_of(cond[0], negated) === negated) {
1945
- self = make_node(AST_Conditional, self, {
1946
- condition: negated,
1947
- consequent: self.alternative,
1948
- alternative: self.consequent
1949
- });
1950
- }
1951
- var consequent = self.consequent;
1952
- var alternative = self.alternative;
1953
- if (consequent instanceof AST_Assign
1954
- && alternative instanceof AST_Assign
1955
- && consequent.operator == alternative.operator
1956
- && consequent.left.equivalent_to(alternative.left)
1957
- ) {
1958
- /*
1959
- * Stuff like this:
1960
- * if (foo) exp = something; else exp = something_else;
1961
- * ==>
1962
- * exp = foo ? something : something_else;
1963
- */
1964
- self = make_node(AST_Assign, self, {
1965
- operator: consequent.operator,
1966
- left: consequent.left,
1967
- right: make_node(AST_Conditional, self, {
1968
- condition: self.condition,
1969
- consequent: consequent.right,
1970
- alternative: alternative.right
1971
- })
1972
- });
1973
- }
1974
- return self;
1975
- });
1976
-
1977
- OPT(AST_Boolean, function(self, compressor){
1978
- if (compressor.option("booleans")) {
1979
- var p = compressor.parent();
1980
- if (p instanceof AST_Binary && (p.operator == "=="
1981
- || p.operator == "!=")) {
1982
- compressor.warn("Non-strict equality against boolean: {operator} {value} [{file}:{line},{col}]", {
1983
- operator : p.operator,
1984
- value : self.value,
1985
- file : p.start.file,
1986
- line : p.start.line,
1987
- col : p.start.col,
1988
- });
1989
- return make_node(AST_Number, self, {
1990
- value: +self.value
1991
- });
1992
- }
1993
- return make_node(AST_UnaryPrefix, self, {
1994
- operator: "!",
1995
- expression: make_node(AST_Number, self, {
1996
- value: 1 - self.value
1997
- })
1998
- });
1999
- }
2000
- return self;
2001
- });
2002
-
2003
- OPT(AST_Sub, function(self, compressor){
2004
- var prop = self.property;
2005
- if (prop instanceof AST_String && compressor.option("properties")) {
2006
- prop = prop.getValue();
2007
- if ((compressor.option("screw_ie8") && RESERVED_WORDS(prop))
2008
- || (!(RESERVED_WORDS(prop)) && is_identifier_string(prop))) {
2009
- return make_node(AST_Dot, self, {
2010
- expression : self.expression,
2011
- property : prop
2012
- });
2013
- }
2014
- }
2015
- return self;
2016
- });
2017
-
2018
- function literals_in_boolean_context(self, compressor) {
2019
- if (compressor.option("booleans") && compressor.in_boolean_context()) {
2020
- return make_node(AST_True, self);
2021
- }
2022
- return self;
2023
- };
2024
- OPT(AST_Array, literals_in_boolean_context);
2025
- OPT(AST_Object, literals_in_boolean_context);
2026
- OPT(AST_RegExp, literals_in_boolean_context);
2027
-
2028
- })();