cssesc-source 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (908) hide show
  1. checksums.yaml +15 -0
  2. data/lib/cssesc/source.rb +7 -0
  3. data/vendor/LICENSE-MIT.txt +20 -0
  4. data/vendor/README.md +207 -0
  5. data/vendor/bin/cssesc +122 -0
  6. data/vendor/cssesc.js +177 -0
  7. data/vendor/man/cssesc.1 +70 -0
  8. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/MIT-LICENSE.txt +21 -0
  9. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/README.md +43 -0
  10. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/bin/stripcolorcodes.js +18 -0
  11. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/index.js +3 -0
  12. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/package.json +42 -0
  13. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/fixture/with-colors +2 -0
  14. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/fixture/without-colors +2 -0
  15. data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/stripcolorcodes-test.js +20 -0
  16. data/vendor/node_modules/grunt-shell/package.json +53 -0
  17. data/vendor/node_modules/grunt-shell/readme.md +221 -0
  18. data/vendor/node_modules/grunt-shell/tasks/shell.js +54 -0
  19. data/vendor/node_modules/grunt-template/LICENSE-MIT.txt +20 -0
  20. data/vendor/node_modules/grunt-template/README.md +123 -0
  21. data/vendor/node_modules/grunt-template/package.json +50 -0
  22. data/vendor/node_modules/grunt-template/tasks/template.js +44 -0
  23. data/vendor/node_modules/grunt/CONTRIBUTING.md +1 -0
  24. data/vendor/node_modules/grunt/LICENSE-MIT +22 -0
  25. data/vendor/node_modules/grunt/README.md +16 -0
  26. data/vendor/node_modules/grunt/internal-tasks/bump.js +151 -0
  27. data/vendor/node_modules/grunt/internal-tasks/subgrunt.js +34 -0
  28. data/vendor/node_modules/grunt/lib/grunt.js +156 -0
  29. data/vendor/node_modules/grunt/lib/grunt/cli.js +128 -0
  30. data/vendor/node_modules/grunt/lib/grunt/config.js +118 -0
  31. data/vendor/node_modules/grunt/lib/grunt/event.js +16 -0
  32. data/vendor/node_modules/grunt/lib/grunt/fail.js +84 -0
  33. data/vendor/node_modules/grunt/lib/grunt/file.js +440 -0
  34. data/vendor/node_modules/grunt/lib/grunt/help.js +129 -0
  35. data/vendor/node_modules/grunt/lib/grunt/log.js +352 -0
  36. data/vendor/node_modules/grunt/lib/grunt/option.js +42 -0
  37. data/vendor/node_modules/grunt/lib/grunt/task.js +451 -0
  38. data/vendor/node_modules/grunt/lib/grunt/template.js +95 -0
  39. data/vendor/node_modules/grunt/lib/grunt/util.js +188 -0
  40. data/vendor/node_modules/grunt/lib/util/task.js +323 -0
  41. data/vendor/node_modules/grunt/node_modules/async/LICENSE +19 -0
  42. data/vendor/node_modules/grunt/node_modules/async/Makefile +25 -0
  43. data/vendor/node_modules/grunt/node_modules/async/README.md +1021 -0
  44. data/vendor/node_modules/grunt/node_modules/async/index.js +3 -0
  45. data/vendor/node_modules/grunt/node_modules/async/lib/async.js +692 -0
  46. data/vendor/node_modules/grunt/node_modules/async/package.json +32 -0
  47. data/vendor/node_modules/grunt/node_modules/coffee-script/CNAME +1 -0
  48. data/vendor/node_modules/grunt/node_modules/coffee-script/LICENSE +22 -0
  49. data/vendor/node_modules/grunt/node_modules/coffee-script/README +51 -0
  50. data/vendor/node_modules/grunt/node_modules/coffee-script/Rakefile +78 -0
  51. data/vendor/node_modules/grunt/node_modules/coffee-script/bin/cake +7 -0
  52. data/vendor/node_modules/grunt/node_modules/coffee-script/bin/coffee +7 -0
  53. data/vendor/node_modules/grunt/node_modules/coffee-script/extras/jsl.conf +44 -0
  54. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/browser.js +92 -0
  55. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/cake.js +111 -0
  56. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/coffee-script.js +167 -0
  57. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/command.js +500 -0
  58. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/grammar.js +606 -0
  59. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/helpers.js +77 -0
  60. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/index.js +11 -0
  61. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/lexer.js +788 -0
  62. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/nodes.js +2986 -0
  63. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/optparse.js +138 -0
  64. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/parser.js +683 -0
  65. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/repl.js +261 -0
  66. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/rewriter.js +349 -0
  67. data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/scope.js +146 -0
  68. data/vendor/node_modules/grunt/node_modules/coffee-script/package.json +47 -0
  69. data/vendor/node_modules/grunt/node_modules/colors/MIT-LICENSE.txt +22 -0
  70. data/vendor/node_modules/grunt/node_modules/colors/ReadMe.md +77 -0
  71. data/vendor/node_modules/grunt/node_modules/colors/colors.js +342 -0
  72. data/vendor/node_modules/grunt/node_modules/colors/example.html +76 -0
  73. data/vendor/node_modules/grunt/node_modules/colors/example.js +77 -0
  74. data/vendor/node_modules/grunt/node_modules/colors/package.json +29 -0
  75. data/vendor/node_modules/grunt/node_modules/colors/test.js +70 -0
  76. data/vendor/node_modules/grunt/node_modules/colors/themes/winston-dark.js +12 -0
  77. data/vendor/node_modules/grunt/node_modules/colors/themes/winston-light.js +12 -0
  78. data/vendor/node_modules/grunt/node_modules/dateformat/Readme.md +67 -0
  79. data/vendor/node_modules/grunt/node_modules/dateformat/lib/dateformat.js +165 -0
  80. data/vendor/node_modules/grunt/node_modules/dateformat/package.json +20 -0
  81. data/vendor/node_modules/grunt/node_modules/dateformat/test/test_weekofyear.js +4 -0
  82. data/vendor/node_modules/grunt/node_modules/dateformat/test/test_weekofyear.sh +27 -0
  83. data/vendor/node_modules/grunt/node_modules/eventemitter2/README.md +212 -0
  84. data/vendor/node_modules/grunt/node_modules/eventemitter2/index.js +1 -0
  85. data/vendor/node_modules/grunt/node_modules/eventemitter2/lib/eventemitter2.js +561 -0
  86. data/vendor/node_modules/grunt/node_modules/eventemitter2/package.json +62 -0
  87. data/vendor/node_modules/grunt/node_modules/exit/Gruntfile.js +48 -0
  88. data/vendor/node_modules/grunt/node_modules/exit/LICENSE-MIT +22 -0
  89. data/vendor/node_modules/grunt/node_modules/exit/README.md +75 -0
  90. data/vendor/node_modules/grunt/node_modules/exit/lib/exit.js +41 -0
  91. data/vendor/node_modules/grunt/node_modules/exit/package.json +51 -0
  92. data/vendor/node_modules/grunt/node_modules/exit/test/exit_test.js +121 -0
  93. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stderr.txt +10 -0
  94. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stdout-stderr.txt +20 -0
  95. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stdout.txt +10 -0
  96. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stderr.txt +100 -0
  97. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stdout-stderr.txt +200 -0
  98. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stdout.txt +100 -0
  99. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stderr.txt +1000 -0
  100. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stdout-stderr.txt +2000 -0
  101. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stdout.txt +1000 -0
  102. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/create-files.sh +8 -0
  103. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/log-broken.js +23 -0
  104. data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/log.js +25 -0
  105. data/vendor/node_modules/grunt/node_modules/findup-sync/Gruntfile.js +25 -0
  106. data/vendor/node_modules/grunt/node_modules/findup-sync/LICENSE-MIT +22 -0
  107. data/vendor/node_modules/grunt/node_modules/findup-sync/README.md +44 -0
  108. data/vendor/node_modules/grunt/node_modules/findup-sync/lib/findup-sync.js +46 -0
  109. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/README.md +164 -0
  110. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.js +5152 -0
  111. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.min.js +42 -0
  112. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.js +4983 -0
  113. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.min.js +40 -0
  114. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.js +4307 -0
  115. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.min.js +34 -0
  116. data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json +62 -0
  117. data/vendor/node_modules/grunt/node_modules/findup-sync/package.json +48 -0
  118. data/vendor/node_modules/grunt/node_modules/findup-sync/test/findup-sync_test.js +48 -0
  119. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a.txt +0 -0
  120. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a/b/bar.txt +0 -0
  121. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a/foo.txt +0 -0
  122. data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt +0 -0
  123. data/vendor/node_modules/grunt/node_modules/getobject/Gruntfile.js +48 -0
  124. data/vendor/node_modules/grunt/node_modules/getobject/LICENSE-MIT +22 -0
  125. data/vendor/node_modules/grunt/node_modules/getobject/README.md +20 -0
  126. data/vendor/node_modules/grunt/node_modules/getobject/lib/getobject.js +60 -0
  127. data/vendor/node_modules/grunt/node_modules/getobject/package.json +48 -0
  128. data/vendor/node_modules/grunt/node_modules/getobject/test/namespace_test.js +51 -0
  129. data/vendor/node_modules/grunt/node_modules/glob/LICENSE +27 -0
  130. data/vendor/node_modules/grunt/node_modules/glob/README.md +233 -0
  131. data/vendor/node_modules/grunt/node_modules/glob/examples/g.js +9 -0
  132. data/vendor/node_modules/grunt/node_modules/glob/examples/usr-local.js +9 -0
  133. data/vendor/node_modules/grunt/node_modules/glob/glob.js +643 -0
  134. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/LICENSE +27 -0
  135. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/README.md +33 -0
  136. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/graceful-fs.js +442 -0
  137. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/package.json +49 -0
  138. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/test/open.js +46 -0
  139. data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/test/ulimit.js +158 -0
  140. data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/README.md +51 -0
  141. data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/inherits.js +29 -0
  142. data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/package.json +30 -0
  143. data/vendor/node_modules/grunt/node_modules/glob/package.json +40 -0
  144. data/vendor/node_modules/grunt/node_modules/glob/test/00-setup.js +176 -0
  145. data/vendor/node_modules/grunt/node_modules/glob/test/bash-comparison.js +63 -0
  146. data/vendor/node_modules/grunt/node_modules/glob/test/bash-results.json +348 -0
  147. data/vendor/node_modules/grunt/node_modules/glob/test/cwd-test.js +55 -0
  148. data/vendor/node_modules/grunt/node_modules/glob/test/mark.js +74 -0
  149. data/vendor/node_modules/grunt/node_modules/glob/test/nocase-nomagic.js +113 -0
  150. data/vendor/node_modules/grunt/node_modules/glob/test/pause-resume.js +73 -0
  151. data/vendor/node_modules/grunt/node_modules/glob/test/root-nomount.js +39 -0
  152. data/vendor/node_modules/grunt/node_modules/glob/test/root.js +46 -0
  153. data/vendor/node_modules/grunt/node_modules/glob/test/zz-cleanup.js +11 -0
  154. data/vendor/node_modules/grunt/node_modules/hooker/LICENSE-MIT +22 -0
  155. data/vendor/node_modules/grunt/node_modules/hooker/README.md +186 -0
  156. data/vendor/node_modules/grunt/node_modules/hooker/child.js +101 -0
  157. data/vendor/node_modules/grunt/node_modules/hooker/dist/ba-hooker.js +169 -0
  158. data/vendor/node_modules/grunt/node_modules/hooker/dist/ba-hooker.min.js +4 -0
  159. data/vendor/node_modules/grunt/node_modules/hooker/grunt.js +47 -0
  160. data/vendor/node_modules/grunt/node_modules/hooker/lib/hooker.js +174 -0
  161. data/vendor/node_modules/grunt/node_modules/hooker/package.json +45 -0
  162. data/vendor/node_modules/grunt/node_modules/hooker/parent.js +17 -0
  163. data/vendor/node_modules/grunt/node_modules/hooker/test/hooker_test.js +435 -0
  164. data/vendor/node_modules/grunt/node_modules/iconv-lite/LICENSE +21 -0
  165. data/vendor/node_modules/grunt/node_modules/iconv-lite/README.md +72 -0
  166. data/vendor/node_modules/grunt/node_modules/iconv-lite/README.md~ +54 -0
  167. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/big5.js +9 -0
  168. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/gbk.js +9 -0
  169. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/singlebyte.js +340 -0
  170. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/table/big5.js +1 -0
  171. data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/table/gbk.js +1 -0
  172. data/vendor/node_modules/grunt/node_modules/iconv-lite/generation/generate-big5-table.js +25 -0
  173. data/vendor/node_modules/grunt/node_modules/iconv-lite/generation/generate-singlebyte.js +142 -0
  174. data/vendor/node_modules/grunt/node_modules/iconv-lite/index.js +231 -0
  175. data/vendor/node_modules/grunt/node_modules/iconv-lite/package.json +80 -0
  176. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/big5-test.js +36 -0
  177. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/big5File.txt +13 -0
  178. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/cyrillic-test.js +86 -0
  179. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/gbk-test.js +38 -0
  180. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/gbkFile.txt +14 -0
  181. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/greek-test.js +79 -0
  182. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/main-test.js +55 -0
  183. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/performance.js +67 -0
  184. data/vendor/node_modules/grunt/node_modules/iconv-lite/test/turkish-test.js +90 -0
  185. data/vendor/node_modules/grunt/node_modules/js-yaml/HISTORY.md +155 -0
  186. data/vendor/node_modules/grunt/node_modules/js-yaml/LICENSE +21 -0
  187. data/vendor/node_modules/grunt/node_modules/js-yaml/README.md +249 -0
  188. data/vendor/node_modules/grunt/node_modules/js-yaml/bin/js-yaml.js +125 -0
  189. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/custom_types.js +104 -0
  190. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/custom_types.yaml +18 -0
  191. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/dumper.js +31 -0
  192. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/dumper.json +22 -0
  193. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/sample_document.js +15 -0
  194. data/vendor/node_modules/grunt/node_modules/js-yaml/examples/sample_document.yaml +197 -0
  195. data/vendor/node_modules/grunt/node_modules/js-yaml/index.js +1 -0
  196. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml.js +33 -0
  197. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/common.js +60 -0
  198. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/dumper.js +437 -0
  199. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/exception.js +25 -0
  200. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/loader.js +1549 -0
  201. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/mark.js +78 -0
  202. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/require.js +23 -0
  203. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema.js +103 -0
  204. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/default.js +16 -0
  205. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/minimal.js +13 -0
  206. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/safe.js +25 -0
  207. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type.js +82 -0
  208. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/binary.js +118 -0
  209. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js +74 -0
  210. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/float.js +102 -0
  211. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/int.js +85 -0
  212. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/function.js +56 -0
  213. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +56 -0
  214. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  215. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/map.js +11 -0
  216. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/merge.js +18 -0
  217. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/null.js +36 -0
  218. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/omap.js +53 -0
  219. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/pairs.js +41 -0
  220. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/seq.js +11 -0
  221. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/set.js +31 -0
  222. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/str.js +11 -0
  223. data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +91 -0
  224. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/HISTORY.md +109 -0
  225. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/LICENSE +21 -0
  226. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/README.md +239 -0
  227. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +36 -0
  228. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/choice.js +22 -0
  229. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/constants.js +59 -0
  230. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/help.js +13 -0
  231. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +33 -0
  232. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/parents.js +28 -0
  233. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +23 -0
  234. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +49 -0
  235. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/sum.js +35 -0
  236. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +270 -0
  237. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/index.js +1 -0
  238. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action.js +146 -0
  239. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +55 -0
  240. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +47 -0
  241. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +40 -0
  242. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +48 -0
  243. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +50 -0
  244. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +43 -0
  245. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +27 -0
  246. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +26 -0
  247. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +148 -0
  248. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +50 -0
  249. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +481 -0
  250. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +14 -0
  251. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +50 -0
  252. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +54 -0
  253. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +75 -0
  254. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +1165 -0
  255. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/const.js +18 -0
  256. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +88 -0
  257. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +803 -0
  258. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +77 -0
  259. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Gemfile +4 -0
  260. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Gemfile.lock +17 -0
  261. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +814 -0
  262. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Rakefile +23 -0
  263. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +11 -0
  264. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/dist/underscore.string.min.js +1 -0
  265. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +673 -0
  266. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  267. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +73 -0
  268. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/run-qunit.js +45 -0
  269. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/speed.js +148 -0
  270. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/strings.js +685 -0
  271. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/strings_standalone.js +12 -0
  272. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test.html +31 -0
  273. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_standalone.html +18 -0
  274. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/arrays.js +200 -0
  275. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/chaining.js +59 -0
  276. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/collections.js +426 -0
  277. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/functions.js +259 -0
  278. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/index.html +45 -0
  279. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/objects.js +548 -0
  280. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/speed.js +75 -0
  281. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/utility.js +249 -0
  282. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/jquery.js +9404 -0
  283. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/jslitmus.js +670 -0
  284. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/qunit.css +235 -0
  285. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/qunit.js +1977 -0
  286. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/underscore.js +1201 -0
  287. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/CNAME +1 -0
  288. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/CONTRIBUTING.md +9 -0
  289. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +22 -0
  290. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +19 -0
  291. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/favicon.ico +0 -0
  292. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/index.html +2467 -0
  293. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/index.js +1 -0
  294. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +35 -0
  295. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +1 -0
  296. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +1226 -0
  297. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/package.json +50 -0
  298. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/README.md +73 -0
  299. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +117 -0
  300. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +177 -0
  301. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/esprima.js +3908 -0
  302. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/package.json +59 -0
  303. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/compat.js +239 -0
  304. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/reflect.js +422 -0
  305. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/run.js +66 -0
  306. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/runner.js +387 -0
  307. data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/test.js +20238 -0
  308. data/vendor/node_modules/grunt/node_modules/js-yaml/package.json +60 -0
  309. data/vendor/node_modules/grunt/node_modules/lodash/README.md +140 -0
  310. data/vendor/node_modules/grunt/node_modules/lodash/lodash.js +4258 -0
  311. data/vendor/node_modules/grunt/node_modules/lodash/lodash.min.js +35 -0
  312. data/vendor/node_modules/grunt/node_modules/lodash/lodash.underscore.js +3688 -0
  313. data/vendor/node_modules/grunt/node_modules/lodash/lodash.underscore.min.js +28 -0
  314. data/vendor/node_modules/grunt/node_modules/lodash/package.json +62 -0
  315. data/vendor/node_modules/grunt/node_modules/minimatch/LICENSE +23 -0
  316. data/vendor/node_modules/grunt/node_modules/minimatch/README.md +218 -0
  317. data/vendor/node_modules/grunt/node_modules/minimatch/minimatch.js +1055 -0
  318. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
  319. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
  320. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
  321. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
  322. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
  323. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
  324. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
  325. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
  326. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
  327. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
  328. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
  329. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
  330. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
  331. data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
  332. data/vendor/node_modules/grunt/node_modules/minimatch/package.json +40 -0
  333. data/vendor/node_modules/grunt/node_modules/minimatch/test/basic.js +399 -0
  334. data/vendor/node_modules/grunt/node_modules/minimatch/test/brace-expand.js +33 -0
  335. data/vendor/node_modules/grunt/node_modules/minimatch/test/caching.js +14 -0
  336. data/vendor/node_modules/grunt/node_modules/minimatch/test/defaults.js +274 -0
  337. data/vendor/node_modules/grunt/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  338. data/vendor/node_modules/grunt/node_modules/nopt/LICENSE +23 -0
  339. data/vendor/node_modules/grunt/node_modules/nopt/README.md +208 -0
  340. data/vendor/node_modules/grunt/node_modules/nopt/bin/nopt.js +44 -0
  341. data/vendor/node_modules/grunt/node_modules/nopt/examples/my-program.js +30 -0
  342. data/vendor/node_modules/grunt/node_modules/nopt/lib/nopt.js +552 -0
  343. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/LICENSE +23 -0
  344. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/README.md +23 -0
  345. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/lib/abbrev.js +111 -0
  346. data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/package.json +29 -0
  347. data/vendor/node_modules/grunt/node_modules/nopt/package.json +36 -0
  348. data/vendor/node_modules/grunt/node_modules/rimraf/AUTHORS +6 -0
  349. data/vendor/node_modules/grunt/node_modules/rimraf/LICENSE +23 -0
  350. data/vendor/node_modules/grunt/node_modules/rimraf/README.md +21 -0
  351. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/LICENSE +23 -0
  352. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/README.md +5 -0
  353. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/graceful-fs.js +312 -0
  354. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/package.json +40 -0
  355. data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/test/open.js +41 -0
  356. data/vendor/node_modules/grunt/node_modules/rimraf/package.json +59 -0
  357. data/vendor/node_modules/grunt/node_modules/rimraf/rimraf.js +161 -0
  358. data/vendor/node_modules/grunt/node_modules/rimraf/test/run.sh +10 -0
  359. data/vendor/node_modules/grunt/node_modules/rimraf/test/setup.sh +47 -0
  360. data/vendor/node_modules/grunt/node_modules/rimraf/test/test-async.js +5 -0
  361. data/vendor/node_modules/grunt/node_modules/rimraf/test/test-fiber.js +0 -0
  362. data/vendor/node_modules/grunt/node_modules/rimraf/test/test-sync.js +3 -0
  363. data/vendor/node_modules/grunt/node_modules/underscore.string/Gemfile +5 -0
  364. data/vendor/node_modules/grunt/node_modules/underscore.string/Gemfile.lock +34 -0
  365. data/vendor/node_modules/grunt/node_modules/underscore.string/README.markdown +668 -0
  366. data/vendor/node_modules/grunt/node_modules/underscore.string/Rakefile +28 -0
  367. data/vendor/node_modules/grunt/node_modules/underscore.string/dist/underscore.string.min.js +1 -0
  368. data/vendor/node_modules/grunt/node_modules/underscore.string/lib/underscore.string.js +525 -0
  369. data/vendor/node_modules/grunt/node_modules/underscore.string/package.json +72 -0
  370. data/vendor/node_modules/grunt/node_modules/underscore.string/test/run-qunit.js +44 -0
  371. data/vendor/node_modules/grunt/node_modules/underscore.string/test/speed.js +138 -0
  372. data/vendor/node_modules/grunt/node_modules/underscore.string/test/strings.js +438 -0
  373. data/vendor/node_modules/grunt/node_modules/underscore.string/test/strings_standalone.js +12 -0
  374. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test.html +31 -0
  375. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_standalone.html +18 -0
  376. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/arrays.js +166 -0
  377. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/chaining.js +59 -0
  378. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/collections.js +270 -0
  379. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/functions.js +198 -0
  380. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/objects.js +535 -0
  381. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/speed.js +70 -0
  382. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/temp.js +27 -0
  383. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/temp_tests.html +19 -0
  384. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/test.html +43 -0
  385. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/utility.js +155 -0
  386. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/jquery.js +19 -0
  387. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/jslitmus.js +670 -0
  388. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/qunit.css +196 -0
  389. data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/qunit.js +2360 -0
  390. data/vendor/node_modules/grunt/node_modules/underscore.string/test/underscore.js +999 -0
  391. data/vendor/node_modules/grunt/node_modules/which/LICENSE +23 -0
  392. data/vendor/node_modules/grunt/node_modules/which/README.md +5 -0
  393. data/vendor/node_modules/grunt/node_modules/which/bin/which +14 -0
  394. data/vendor/node_modules/grunt/node_modules/which/package.json +31 -0
  395. data/vendor/node_modules/grunt/node_modules/which/which.js +104 -0
  396. data/vendor/node_modules/grunt/package.json +82 -0
  397. data/vendor/node_modules/istanbul/CHANGELOG.md +57 -0
  398. data/vendor/node_modules/istanbul/LICENSE +24 -0
  399. data/vendor/node_modules/istanbul/README.md +205 -0
  400. data/vendor/node_modules/istanbul/index.js +115 -0
  401. data/vendor/node_modules/istanbul/lib/cli.js +74 -0
  402. data/vendor/node_modules/istanbul/lib/collector.js +121 -0
  403. data/vendor/node_modules/istanbul/lib/command/check-coverage.js +115 -0
  404. data/vendor/node_modules/istanbul/lib/command/common/run-with-cover.js +199 -0
  405. data/vendor/node_modules/istanbul/lib/command/cover.js +33 -0
  406. data/vendor/node_modules/istanbul/lib/command/help.js +58 -0
  407. data/vendor/node_modules/istanbul/lib/command/index.js +33 -0
  408. data/vendor/node_modules/istanbul/lib/command/instrument.js +244 -0
  409. data/vendor/node_modules/istanbul/lib/command/report.js +97 -0
  410. data/vendor/node_modules/istanbul/lib/command/test.js +31 -0
  411. data/vendor/node_modules/istanbul/lib/hook.js +187 -0
  412. data/vendor/node_modules/istanbul/lib/instrumenter.js +759 -0
  413. data/vendor/node_modules/istanbul/lib/object-utils.js +341 -0
  414. data/vendor/node_modules/istanbul/lib/register-plugins.js +15 -0
  415. data/vendor/node_modules/istanbul/lib/report/cobertura.js +207 -0
  416. data/vendor/node_modules/istanbul/lib/report/html.js +517 -0
  417. data/vendor/node_modules/istanbul/lib/report/index.js +60 -0
  418. data/vendor/node_modules/istanbul/lib/report/json.js +55 -0
  419. data/vendor/node_modules/istanbul/lib/report/lcov.js +49 -0
  420. data/vendor/node_modules/istanbul/lib/report/lcovonly.js +93 -0
  421. data/vendor/node_modules/istanbul/lib/report/none.js +20 -0
  422. data/vendor/node_modules/istanbul/lib/report/teamcity.js +82 -0
  423. data/vendor/node_modules/istanbul/lib/report/templates/foot.txt +102 -0
  424. data/vendor/node_modules/istanbul/lib/report/templates/head.txt +200 -0
  425. data/vendor/node_modules/istanbul/lib/report/text-summary.js +72 -0
  426. data/vendor/node_modules/istanbul/lib/report/text.js +210 -0
  427. data/vendor/node_modules/istanbul/lib/store/fslookup.js +60 -0
  428. data/vendor/node_modules/istanbul/lib/store/index.js +122 -0
  429. data/vendor/node_modules/istanbul/lib/store/memory.js +55 -0
  430. data/vendor/node_modules/istanbul/lib/store/tmp.js +80 -0
  431. data/vendor/node_modules/istanbul/lib/util/factory.js +88 -0
  432. data/vendor/node_modules/istanbul/lib/util/file-matcher.js +60 -0
  433. data/vendor/node_modules/istanbul/lib/util/file-writer.js +131 -0
  434. data/vendor/node_modules/istanbul/lib/util/flow-control.js +26 -0
  435. data/vendor/node_modules/istanbul/lib/util/help-formatter.js +24 -0
  436. data/vendor/node_modules/istanbul/lib/util/input-error.js +12 -0
  437. data/vendor/node_modules/istanbul/lib/util/insertion-text.js +109 -0
  438. data/vendor/node_modules/istanbul/lib/util/meta.js +13 -0
  439. data/vendor/node_modules/istanbul/lib/util/tree-summarizer.js +213 -0
  440. data/vendor/node_modules/istanbul/lib/util/writer.js +56 -0
  441. data/vendor/node_modules/istanbul/lib/util/yui-load-hook.js +49 -0
  442. data/vendor/node_modules/istanbul/lib/vendor/prettify.css +1 -0
  443. data/vendor/node_modules/istanbul/lib/vendor/prettify.js +1 -0
  444. data/vendor/node_modules/istanbul/node_modules/abbrev/LICENSE +23 -0
  445. data/vendor/node_modules/istanbul/node_modules/abbrev/README.md +23 -0
  446. data/vendor/node_modules/istanbul/node_modules/abbrev/lib/abbrev.js +111 -0
  447. data/vendor/node_modules/istanbul/node_modules/abbrev/package.json +29 -0
  448. data/vendor/node_modules/istanbul/node_modules/async/LICENSE +19 -0
  449. data/vendor/node_modules/istanbul/node_modules/async/README.md +1414 -0
  450. data/vendor/node_modules/istanbul/node_modules/async/component.json +11 -0
  451. data/vendor/node_modules/istanbul/node_modules/async/lib/async.js +955 -0
  452. data/vendor/node_modules/istanbul/node_modules/async/package.json +43 -0
  453. data/vendor/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD +19 -0
  454. data/vendor/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map +27 -0
  455. data/vendor/node_modules/istanbul/node_modules/escodegen/README.md +99 -0
  456. data/vendor/node_modules/istanbul/node_modules/escodegen/bin/escodegen.js +45 -0
  457. data/vendor/node_modules/istanbul/node_modules/escodegen/bin/esgenerate.js +45 -0
  458. data/vendor/node_modules/istanbul/node_modules/escodegen/component.json +48 -0
  459. data/vendor/node_modules/istanbul/node_modules/escodegen/escodegen.browser.js +3072 -0
  460. data/vendor/node_modules/istanbul/node_modules/escodegen/escodegen.js +2275 -0
  461. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/LICENSE.BSD +19 -0
  462. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/README.md +29 -0
  463. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/estraverse.js +315 -0
  464. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/package.json +41 -0
  465. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/CHANGELOG.md +112 -0
  466. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/LICENSE +28 -0
  467. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +166 -0
  468. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/README.md +434 -0
  469. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/assert-shim.js +56 -0
  470. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/mini-require.js +152 -0
  471. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  472. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +18 -0
  473. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js +8 -0
  474. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  475. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +21 -0
  476. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/test-prefix.js +8 -0
  477. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/test-suffix.js +3 -0
  478. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map.js +8 -0
  479. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js +97 -0
  480. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  481. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js +42 -0
  482. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  483. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js +477 -0
  484. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js +380 -0
  485. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js +371 -0
  486. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +205 -0
  487. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  488. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  489. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  490. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  491. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +36 -0
  492. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/package.json +110 -0
  493. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/run-tests.js +71 -0
  494. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js +26 -0
  495. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  496. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  497. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js +35 -0
  498. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  499. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  500. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js +451 -0
  501. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js +417 -0
  502. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js +365 -0
  503. data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +161 -0
  504. data/vendor/node_modules/istanbul/node_modules/escodegen/package.json +58 -0
  505. data/vendor/node_modules/istanbul/node_modules/esprima/README.md +73 -0
  506. data/vendor/node_modules/istanbul/node_modules/esprima/bin/esparse.js +117 -0
  507. data/vendor/node_modules/istanbul/node_modules/esprima/bin/esvalidate.js +177 -0
  508. data/vendor/node_modules/istanbul/node_modules/esprima/esprima.js +3908 -0
  509. data/vendor/node_modules/istanbul/node_modules/esprima/package.json +59 -0
  510. data/vendor/node_modules/istanbul/node_modules/esprima/test/compat.js +239 -0
  511. data/vendor/node_modules/istanbul/node_modules/esprima/test/reflect.js +422 -0
  512. data/vendor/node_modules/istanbul/node_modules/esprima/test/run.js +66 -0
  513. data/vendor/node_modules/istanbul/node_modules/esprima/test/runner.js +387 -0
  514. data/vendor/node_modules/istanbul/node_modules/esprima/test/test.js +20238 -0
  515. data/vendor/node_modules/istanbul/node_modules/fileset/LICENSE-MIT +22 -0
  516. data/vendor/node_modules/istanbul/node_modules/fileset/README.md +87 -0
  517. data/vendor/node_modules/istanbul/node_modules/fileset/lib/fileset.js +64 -0
  518. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/LICENSE +27 -0
  519. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/README.md +250 -0
  520. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/examples/g.js +9 -0
  521. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/examples/usr-local.js +9 -0
  522. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/glob.js +680 -0
  523. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  524. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/README.md +42 -0
  525. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  526. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  527. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/package.json +33 -0
  528. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/test.js +25 -0
  529. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json +39 -0
  530. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/00-setup.js +176 -0
  531. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/bash-comparison.js +63 -0
  532. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/bash-results.json +350 -0
  533. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/cwd-test.js +55 -0
  534. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/globstar-match.js +19 -0
  535. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/mark.js +74 -0
  536. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/new-glob-optional-options.js +10 -0
  537. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/nocase-nomagic.js +113 -0
  538. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/pause-resume.js +73 -0
  539. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/root-nomount.js +39 -0
  540. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/root.js +46 -0
  541. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/stat.js +32 -0
  542. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/zz-cleanup.js +11 -0
  543. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/LICENSE +23 -0
  544. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/README.md +218 -0
  545. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/minimatch.js +1055 -0
  546. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
  547. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
  548. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
  549. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
  550. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
  551. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
  552. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
  553. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
  554. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
  555. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
  556. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
  557. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
  558. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
  559. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
  560. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/package.json +40 -0
  561. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/basic.js +399 -0
  562. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/brace-expand.js +33 -0
  563. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/caching.js +14 -0
  564. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/defaults.js +274 -0
  565. data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  566. data/vendor/node_modules/istanbul/node_modules/fileset/package.json +34 -0
  567. data/vendor/node_modules/istanbul/node_modules/fileset/tests/fixtures/an (odd) filename.js +1 -0
  568. data/vendor/node_modules/istanbul/node_modules/fileset/tests/helper.js +61 -0
  569. data/vendor/node_modules/istanbul/node_modules/fileset/tests/test.js +133 -0
  570. data/vendor/node_modules/istanbul/node_modules/handlebars/LICENSE +19 -0
  571. data/vendor/node_modules/istanbul/node_modules/handlebars/README.markdown +391 -0
  572. data/vendor/node_modules/istanbul/node_modules/handlebars/bin/handlebars +213 -0
  573. data/vendor/node_modules/istanbul/node_modules/handlebars/bower.json +9 -0
  574. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.js +2278 -0
  575. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.min.js +2 -0
  576. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.runtime.js +362 -0
  577. data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.runtime.min.js +1 -0
  578. data/vendor/node_modules/istanbul/node_modules/handlebars/global-test.js +18 -0
  579. data/vendor/node_modules/istanbul/node_modules/handlebars/global.js +4 -0
  580. data/vendor/node_modules/istanbul/node_modules/handlebars/handlebars-source.gemspec +21 -0
  581. data/vendor/node_modules/istanbul/node_modules/handlebars/handlebars.js.nuspec +17 -0
  582. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars.js +43 -0
  583. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/base.js +166 -0
  584. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/browser-prefix.js +3 -0
  585. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/browser-suffix.js +1 -0
  586. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/ast.js +138 -0
  587. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/base.js +21 -0
  588. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/compiler.js +1305 -0
  589. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/index.js +16 -0
  590. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/parser.js +483 -0
  591. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/printer.js +138 -0
  592. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/visitor.js +18 -0
  593. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/runtime.js +106 -0
  594. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/source.rb +11 -0
  595. data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/utils.js +83 -0
  596. data/vendor/node_modules/istanbul/node_modules/handlebars/min.sh +11 -0
  597. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/LICENSE +21 -0
  598. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/bool.js +10 -0
  599. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/boolean_double.js +7 -0
  600. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/boolean_single.js +7 -0
  601. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/default_hash.js +8 -0
  602. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/default_singles.js +7 -0
  603. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/divide.js +8 -0
  604. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count.js +20 -0
  605. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count_options.js +29 -0
  606. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count_wrap.js +29 -0
  607. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/nonopt.js +4 -0
  608. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/reflect.js +2 -0
  609. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/short.js +3 -0
  610. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/string.js +11 -0
  611. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/usage-options.js +19 -0
  612. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/xup.js +10 -0
  613. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/index.js +478 -0
  614. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/package.json +46 -0
  615. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/readme.markdown +487 -0
  616. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_.js +71 -0
  617. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_/argv.js +2 -0
  618. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_/bin.js +3 -0
  619. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/parse.js +446 -0
  620. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/usage.js +292 -0
  621. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/LICENSE +29 -0
  622. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/README.md +588 -0
  623. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/bin/uglifyjs +402 -0
  624. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/ast.js +985 -0
  625. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/compress.js +2028 -0
  626. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/mozilla-ast.js +267 -0
  627. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/output.js +1229 -0
  628. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/parse.js +1410 -0
  629. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/scope.js +581 -0
  630. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/sourcemap.js +81 -0
  631. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/transform.js +217 -0
  632. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/utils.js +295 -0
  633. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md +112 -0
  634. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/LICENSE +28 -0
  635. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js +166 -0
  636. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/README.md +434 -0
  637. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js +56 -0
  638. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/mini-require.js +152 -0
  639. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  640. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm +18 -0
  641. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js +8 -0
  642. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  643. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm +21 -0
  644. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js +8 -0
  645. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js +3 -0
  646. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map.js +8 -0
  647. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js +97 -0
  648. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  649. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js +42 -0
  650. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  651. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js +477 -0
  652. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js +380 -0
  653. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js +371 -0
  654. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js +205 -0
  655. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  656. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  657. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  658. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  659. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  660. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/package.json +110 -0
  661. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/run-tests.js +71 -0
  662. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js +26 -0
  663. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  664. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  665. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js +35 -0
  666. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  667. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  668. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js +451 -0
  669. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js +417 -0
  670. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js +365 -0
  671. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js +161 -0
  672. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/package.json +39 -0
  673. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/arrays.js +12 -0
  674. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/blocks.js +49 -0
  675. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/conditionals.js +143 -0
  676. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/dead-code.js +89 -0
  677. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/debugger.js +24 -0
  678. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/drop-unused.js +97 -0
  679. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-105.js +25 -0
  680. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-12.js +11 -0
  681. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-143.js +48 -0
  682. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-22.js +17 -0
  683. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-44.js +31 -0
  684. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-59.js +30 -0
  685. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/labels.js +163 -0
  686. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/loops.js +123 -0
  687. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/properties.js +54 -0
  688. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/sequences.js +161 -0
  689. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/switch.js +260 -0
  690. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/typeof.js +25 -0
  691. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/run-tests.js +170 -0
  692. data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/tools/node.js +165 -0
  693. data/vendor/node_modules/istanbul/node_modules/handlebars/package.json +42 -0
  694. data/vendor/node_modules/istanbul/node_modules/handlebars/release-notes.md +93 -0
  695. data/vendor/node_modules/istanbul/node_modules/handlebars/test.js +20 -0
  696. data/vendor/node_modules/istanbul/node_modules/mkdirp/LICENSE +21 -0
  697. data/vendor/node_modules/istanbul/node_modules/mkdirp/examples/pow.js +6 -0
  698. data/vendor/node_modules/istanbul/node_modules/mkdirp/index.js +82 -0
  699. data/vendor/node_modules/istanbul/node_modules/mkdirp/package.json +34 -0
  700. data/vendor/node_modules/istanbul/node_modules/mkdirp/readme.markdown +63 -0
  701. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/chmod.js +38 -0
  702. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/clobber.js +37 -0
  703. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/mkdirp.js +28 -0
  704. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/perm.js +32 -0
  705. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/perm_sync.js +39 -0
  706. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/race.js +41 -0
  707. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/rel.js +32 -0
  708. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/return.js +25 -0
  709. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/return_sync.js +24 -0
  710. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/root.js +18 -0
  711. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/sync.js +32 -0
  712. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/umask.js +28 -0
  713. data/vendor/node_modules/istanbul/node_modules/mkdirp/test/umask_sync.js +32 -0
  714. data/vendor/node_modules/istanbul/node_modules/nopt/LICENSE +23 -0
  715. data/vendor/node_modules/istanbul/node_modules/nopt/README.md +210 -0
  716. data/vendor/node_modules/istanbul/node_modules/nopt/bin/nopt.js +51 -0
  717. data/vendor/node_modules/istanbul/node_modules/nopt/examples/my-program.js +30 -0
  718. data/vendor/node_modules/istanbul/node_modules/nopt/lib/nopt.js +612 -0
  719. data/vendor/node_modules/istanbul/node_modules/nopt/package.json +36 -0
  720. data/vendor/node_modules/istanbul/node_modules/resolve/LICENSE +18 -0
  721. data/vendor/node_modules/istanbul/node_modules/resolve/example/async.js +5 -0
  722. data/vendor/node_modules/istanbul/node_modules/resolve/example/sync.js +3 -0
  723. data/vendor/node_modules/istanbul/node_modules/resolve/index.js +5 -0
  724. data/vendor/node_modules/istanbul/node_modules/resolve/lib/async.js +125 -0
  725. data/vendor/node_modules/istanbul/node_modules/resolve/lib/caller.js +8 -0
  726. data/vendor/node_modules/istanbul/node_modules/resolve/lib/core.js +4 -0
  727. data/vendor/node_modules/istanbul/node_modules/resolve/lib/core.json +38 -0
  728. data/vendor/node_modules/istanbul/node_modules/resolve/lib/node-modules-paths.js +25 -0
  729. data/vendor/node_modules/istanbul/node_modules/resolve/lib/sync.js +80 -0
  730. data/vendor/node_modules/istanbul/node_modules/resolve/package.json +36 -0
  731. data/vendor/node_modules/istanbul/node_modules/resolve/readme.markdown +144 -0
  732. data/vendor/node_modules/istanbul/node_modules/resolve/test/core.js +12 -0
  733. data/vendor/node_modules/istanbul/node_modules/resolve/test/filter.js +18 -0
  734. data/vendor/node_modules/istanbul/node_modules/resolve/test/filter_sync.js +15 -0
  735. data/vendor/node_modules/istanbul/node_modules/resolve/test/mock.js +142 -0
  736. data/vendor/node_modules/istanbul/node_modules/resolve/test/mock_sync.js +68 -0
  737. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver.js +270 -0
  738. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  739. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  740. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/package.json +3 -0
  741. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  742. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js +1 -0
  743. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json +3 -0
  744. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  745. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  746. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/cup.coffee +1 -0
  747. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/foo.js +1 -0
  748. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0
  749. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0
  750. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/mug.coffee +0 -0
  751. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/mug.js +0 -0
  752. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  753. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  754. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/quux/foo/index.js +1 -0
  755. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/without_basedir/main.js +6 -0
  756. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js +1 -0
  757. data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver_sync.js +170 -0
  758. data/vendor/node_modules/istanbul/node_modules/which/LICENSE +23 -0
  759. data/vendor/node_modules/istanbul/node_modules/which/README.md +5 -0
  760. data/vendor/node_modules/istanbul/node_modules/which/bin/which +14 -0
  761. data/vendor/node_modules/istanbul/node_modules/which/package.json +32 -0
  762. data/vendor/node_modules/istanbul/node_modules/which/which.js +104 -0
  763. data/vendor/node_modules/istanbul/node_modules/wordwrap/README.markdown +70 -0
  764. data/vendor/node_modules/istanbul/node_modules/wordwrap/example/center.js +10 -0
  765. data/vendor/node_modules/istanbul/node_modules/wordwrap/example/meat.js +3 -0
  766. data/vendor/node_modules/istanbul/node_modules/wordwrap/index.js +76 -0
  767. data/vendor/node_modules/istanbul/node_modules/wordwrap/package.json +45 -0
  768. data/vendor/node_modules/istanbul/node_modules/wordwrap/test/break.js +30 -0
  769. data/vendor/node_modules/istanbul/node_modules/wordwrap/test/idleness.txt +63 -0
  770. data/vendor/node_modules/istanbul/node_modules/wordwrap/test/wrap.js +31 -0
  771. data/vendor/node_modules/istanbul/package.json +117 -0
  772. data/vendor/node_modules/istanbul/test/browser/support/index.html +153 -0
  773. data/vendor/node_modules/istanbul/test/browser/support/phantom-test.client.js +49 -0
  774. data/vendor/node_modules/istanbul/test/browser/support/server.js +154 -0
  775. data/vendor/node_modules/istanbul/test/browser/test-browser-instrumentation.js +94 -0
  776. data/vendor/node_modules/istanbul/test/cli-helper.js +219 -0
  777. data/vendor/node_modules/istanbul/test/cli/package.json +8 -0
  778. data/vendor/node_modules/istanbul/test/cli/sample-project/amd/ipsum.js +11 -0
  779. data/vendor/node_modules/istanbul/test/cli/sample-project/amd/lorem.js +7 -0
  780. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/bar.js +13 -0
  781. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/foo.js +12 -0
  782. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/util/bad.js +1 -0
  783. data/vendor/node_modules/istanbul/test/cli/sample-project/lib/util/generate-names.js +5 -0
  784. data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/dependency/index.js +9 -0
  785. data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/post-require/hook.js +11 -0
  786. data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/post-require/package.json +5 -0
  787. data/vendor/node_modules/istanbul/test/cli/sample-project/test/amd-run.js +16 -0
  788. data/vendor/node_modules/istanbul/test/cli/sample-project/test/global-leak.js +30 -0
  789. data/vendor/node_modules/istanbul/test/cli/sample-project/test/run.js +25 -0
  790. data/vendor/node_modules/istanbul/test/cli/sample-project/vendor/dummy_vendor_lib.js +9 -0
  791. data/vendor/node_modules/istanbul/test/cli/test-base-cli.js +39 -0
  792. data/vendor/node_modules/istanbul/test/cli/test-check-coverage-command.js +97 -0
  793. data/vendor/node_modules/istanbul/test/cli/test-cobertura-report.js +54 -0
  794. data/vendor/node_modules/istanbul/test/cli/test-cover-command.js +170 -0
  795. data/vendor/node_modules/istanbul/test/cli/test-html-report.js +125 -0
  796. data/vendor/node_modules/istanbul/test/cli/test-instrument-command.js +167 -0
  797. data/vendor/node_modules/istanbul/test/cli/test-json-report.js +60 -0
  798. data/vendor/node_modules/istanbul/test/cli/test-lcov-report.js +58 -0
  799. data/vendor/node_modules/istanbul/test/cli/test-lcovonly-report.js +61 -0
  800. data/vendor/node_modules/istanbul/test/cli/test-lots-of-files.js +87 -0
  801. data/vendor/node_modules/istanbul/test/cli/test-none-report.js +17 -0
  802. data/vendor/node_modules/istanbul/test/cli/test-report-command.js +65 -0
  803. data/vendor/node_modules/istanbul/test/cli/test-teamcity-report.js +54 -0
  804. data/vendor/node_modules/istanbul/test/cli/test-test-command.js +43 -0
  805. data/vendor/node_modules/istanbul/test/common.js +19 -0
  806. data/vendor/node_modules/istanbul/test/helper.js +122 -0
  807. data/vendor/node_modules/istanbul/test/instrumentation/test-do.js +53 -0
  808. data/vendor/node_modules/istanbul/test/instrumentation/test-expressions.js +70 -0
  809. data/vendor/node_modules/istanbul/test/instrumentation/test-for.js +206 -0
  810. data/vendor/node_modules/istanbul/test/instrumentation/test-forin.js +50 -0
  811. data/vendor/node_modules/istanbul/test/instrumentation/test-functions.js +102 -0
  812. data/vendor/node_modules/istanbul/test/instrumentation/test-if.js +393 -0
  813. data/vendor/node_modules/istanbul/test/instrumentation/test-misc.js +35 -0
  814. data/vendor/node_modules/istanbul/test/instrumentation/test-statement.js +182 -0
  815. data/vendor/node_modules/istanbul/test/instrumentation/test-strict.js +121 -0
  816. data/vendor/node_modules/istanbul/test/instrumentation/test-switch.js +155 -0
  817. data/vendor/node_modules/istanbul/test/instrumentation/test-while.js +104 -0
  818. data/vendor/node_modules/istanbul/test/loader.js +38 -0
  819. data/vendor/node_modules/istanbul/test/other/data-complete-copy/baz.js +3 -0
  820. data/vendor/node_modules/istanbul/test/other/data-complete-copy/fixture.xml +1 -0
  821. data/vendor/node_modules/istanbul/test/other/data-complete-copy/foo.js +4 -0
  822. data/vendor/node_modules/istanbul/test/other/data-complete-copy/myfile1 +0 -0
  823. data/vendor/node_modules/istanbul/test/other/data-complete-copy/myfile2 +1 -0
  824. data/vendor/node_modules/istanbul/test/other/data-complete-copy/subdir/x.css +3 -0
  825. data/vendor/node_modules/istanbul/test/other/data/baz.js +3 -0
  826. data/vendor/node_modules/istanbul/test/other/data/foo.js +4 -0
  827. data/vendor/node_modules/istanbul/test/other/data/matcher/general/general.js +2 -0
  828. data/vendor/node_modules/istanbul/test/other/data/matcher/general/node_modules/mod-file.js +2 -0
  829. data/vendor/node_modules/istanbul/test/other/data/matcher/lib/lib-top.js +2 -0
  830. data/vendor/node_modules/istanbul/test/other/data/matcher/node_modules/dep/mod-file.js +2 -0
  831. data/vendor/node_modules/istanbul/test/other/data/matcher/node_modules/mod-file.js +2 -0
  832. data/vendor/node_modules/istanbul/test/other/data/matcher/top.js +2 -0
  833. data/vendor/node_modules/istanbul/test/other/test-collector.js +85 -0
  834. data/vendor/node_modules/istanbul/test/other/test-command-xface.js +35 -0
  835. data/vendor/node_modules/istanbul/test/other/test-file-writer.js +71 -0
  836. data/vendor/node_modules/istanbul/test/other/test-help-formatter.js +31 -0
  837. data/vendor/node_modules/istanbul/test/other/test-hook.js +87 -0
  838. data/vendor/node_modules/istanbul/test/other/test-index-xface.js +17 -0
  839. data/vendor/node_modules/istanbul/test/other/test-input-error.js +10 -0
  840. data/vendor/node_modules/istanbul/test/other/test-insertion-text.js +102 -0
  841. data/vendor/node_modules/istanbul/test/other/test-matcher.js +93 -0
  842. data/vendor/node_modules/istanbul/test/other/test-object-utils.js +201 -0
  843. data/vendor/node_modules/istanbul/test/other/test-store.js +129 -0
  844. data/vendor/node_modules/istanbul/test/other/test-summarizer.js +172 -0
  845. data/vendor/node_modules/istanbul/test/run-again.js +19 -0
  846. data/vendor/node_modules/istanbul/test/run.js +108 -0
  847. data/vendor/node_modules/istanbul/yui-coverage-comparison.md +85 -0
  848. data/vendor/node_modules/qunit-clib/LICENSE.txt +20 -0
  849. data/vendor/node_modules/qunit-clib/README.md +2 -0
  850. data/vendor/node_modules/qunit-clib/package.json +36 -0
  851. data/vendor/node_modules/qunit-clib/qunit-clib.js +570 -0
  852. data/vendor/node_modules/qunitjs/AUTHORS.txt +55 -0
  853. data/vendor/node_modules/qunitjs/History.md +496 -0
  854. data/vendor/node_modules/qunitjs/README.md +62 -0
  855. data/vendor/node_modules/qunitjs/addons/canvas/README.md +17 -0
  856. data/vendor/node_modules/qunitjs/addons/canvas/canvas-test.js +76 -0
  857. data/vendor/node_modules/qunitjs/addons/canvas/canvas.html +15 -0
  858. data/vendor/node_modules/qunitjs/addons/canvas/qunit-canvas.js +6 -0
  859. data/vendor/node_modules/qunitjs/addons/close-enough/README.md +18 -0
  860. data/vendor/node_modules/qunitjs/addons/close-enough/close-enough-test.js +35 -0
  861. data/vendor/node_modules/qunitjs/addons/close-enough/close-enough.html +14 -0
  862. data/vendor/node_modules/qunitjs/addons/close-enough/qunit-close-enough.js +32 -0
  863. data/vendor/node_modules/qunitjs/addons/composite/README.md +26 -0
  864. data/vendor/node_modules/qunitjs/addons/composite/composite-demo-test.html +24 -0
  865. data/vendor/node_modules/qunitjs/addons/composite/index.html +34 -0
  866. data/vendor/node_modules/qunitjs/addons/composite/qunit-composite.css +13 -0
  867. data/vendor/node_modules/qunitjs/addons/composite/qunit-composite.js +112 -0
  868. data/vendor/node_modules/qunitjs/addons/junitlogger/README.md +18 -0
  869. data/vendor/node_modules/qunitjs/addons/junitlogger/index.html +44 -0
  870. data/vendor/node_modules/qunitjs/addons/junitlogger/junitlogger.js +306 -0
  871. data/vendor/node_modules/qunitjs/addons/phantomjs/README.md +16 -0
  872. data/vendor/node_modules/qunitjs/addons/phantomjs/runner.js +127 -0
  873. data/vendor/node_modules/qunitjs/addons/step/README.md +20 -0
  874. data/vendor/node_modules/qunitjs/addons/step/qunit-step.js +26 -0
  875. data/vendor/node_modules/qunitjs/addons/step/step-test.js +15 -0
  876. data/vendor/node_modules/qunitjs/addons/step/step.html +14 -0
  877. data/vendor/node_modules/qunitjs/addons/themes/README.md +6 -0
  878. data/vendor/node_modules/qunitjs/addons/themes/gabe.css +371 -0
  879. data/vendor/node_modules/qunitjs/addons/themes/gabe.html +15 -0
  880. data/vendor/node_modules/qunitjs/addons/themes/ninja.css +196 -0
  881. data/vendor/node_modules/qunitjs/addons/themes/ninja.html +15 -0
  882. data/vendor/node_modules/qunitjs/addons/themes/nv.css +217 -0
  883. data/vendor/node_modules/qunitjs/addons/themes/nv.html +15 -0
  884. data/vendor/node_modules/qunitjs/grunt.js +101 -0
  885. data/vendor/node_modules/qunitjs/package.json +49 -0
  886. data/vendor/node_modules/qunitjs/qunit/qunit.css +244 -0
  887. data/vendor/node_modules/qunitjs/qunit/qunit.js +2152 -0
  888. data/vendor/node_modules/qunitjs/test/async.html +26 -0
  889. data/vendor/node_modules/qunitjs/test/async.js +6 -0
  890. data/vendor/node_modules/qunitjs/test/deepEqual.js +1438 -0
  891. data/vendor/node_modules/qunitjs/test/headless.html +28 -0
  892. data/vendor/node_modules/qunitjs/test/index.html +16 -0
  893. data/vendor/node_modules/qunitjs/test/logs.html +14 -0
  894. data/vendor/node_modules/qunitjs/test/logs.js +184 -0
  895. data/vendor/node_modules/qunitjs/test/narwhal-test.js +22 -0
  896. data/vendor/node_modules/qunitjs/test/node-test.js +22 -0
  897. data/vendor/node_modules/qunitjs/test/swarminject.js +10 -0
  898. data/vendor/node_modules/qunitjs/test/test.js +804 -0
  899. data/vendor/node_modules/regenerate/LICENSE-MIT.txt +20 -0
  900. data/vendor/node_modules/regenerate/README.md +467 -0
  901. data/vendor/node_modules/regenerate/package.json +50 -0
  902. data/vendor/node_modules/regenerate/regenerate.js +617 -0
  903. data/vendor/node_modules/requirejs/README.md +9 -0
  904. data/vendor/node_modules/requirejs/bin/r.js +26059 -0
  905. data/vendor/node_modules/requirejs/package.json +39 -0
  906. data/vendor/node_modules/requirejs/require.js +2054 -0
  907. data/vendor/package.json +56 -0
  908. metadata +949 -0
@@ -0,0 +1,402 @@
1
+ #! /usr/bin/env node
2
+ // -*- js -*-
3
+
4
+ "use strict";
5
+
6
+ var UglifyJS = require("../tools/node");
7
+ var sys = require("util");
8
+ var optimist = require("optimist");
9
+ var fs = require("fs");
10
+ var async = require("async");
11
+ var acorn;
12
+ var ARGS = optimist
13
+ .usage("$0 input1.js [input2.js ...] [options]\n\
14
+ Use a single dash to read input from the standard input.\
15
+ \n\n\
16
+ NOTE: by default there is no mangling/compression.\n\
17
+ Without [options] it will simply parse input files and dump the AST\n\
18
+ with whitespace and comments discarded. To achieve compression and\n\
19
+ mangling you need to use `-c` and `-m`.\
20
+ ")
21
+ .describe("source-map", "Specify an output file where to generate source map.")
22
+ .describe("source-map-root", "The path to the original source to be included in the source map.")
23
+ .describe("source-map-url", "The path to the source map to be added in //# sourceMappingURL. Defaults to the value passed with --source-map.")
24
+ .describe("in-source-map", "Input source map, useful if you're compressing JS that was generated from some other original code.")
25
+ .describe("screw-ie8", "Pass this flag if you don't care about full compliance with Internet Explorer 6-8 quirks (by default UglifyJS will try to be IE-proof).")
26
+ .describe("expr", "Parse a single expression, rather than a program (for parsing JSON)")
27
+ .describe("p", "Skip prefix for original filenames that appear in source maps. \
28
+ For example -p 3 will drop 3 directories from file names and ensure they are relative paths.")
29
+ .describe("o", "Output file (default STDOUT).")
30
+ .describe("b", "Beautify output/specify output options.")
31
+ .describe("m", "Mangle names/pass mangler options.")
32
+ .describe("r", "Reserved names to exclude from mangling.")
33
+ .describe("c", "Enable compressor/pass compressor options. \
34
+ Pass options like -c hoist_vars=false,if_return=false. \
35
+ Use -c with no argument to use the default compression options.")
36
+ .describe("d", "Global definitions")
37
+ .describe("e", "Embed everything in a big function, with a configurable parameter/argument list.")
38
+
39
+ .describe("comments", "Preserve copyright comments in the output. \
40
+ By default this works like Google Closure, keeping JSDoc-style comments that contain \"@license\" or \"@preserve\". \
41
+ You can optionally pass one of the following arguments to this flag:\n\
42
+ - \"all\" to keep all comments\n\
43
+ - a valid JS regexp (needs to start with a slash) to keep only comments that match.\n\
44
+ \
45
+ Note that currently not *all* comments can be kept when compression is on, \
46
+ because of dead code removal or cascading statements into sequences.")
47
+
48
+ .describe("stats", "Display operations run time on STDERR.")
49
+ .describe("acorn", "Use Acorn for parsing.")
50
+ .describe("spidermonkey", "Assume input files are SpiderMonkey AST format (as JSON).")
51
+ .describe("self", "Build itself (UglifyJS2) as a library (implies --wrap=UglifyJS --export-all)")
52
+ .describe("wrap", "Embed everything in a big function, making the “exports” and “global” variables available. \
53
+ You need to pass an argument to this option to specify the name that your module will take when included in, say, a browser.")
54
+ .describe("export-all", "Only used when --wrap, this tells UglifyJS to add code to automatically export all globals.")
55
+ .describe("lint", "Display some scope warnings")
56
+ .describe("v", "Verbose")
57
+ .describe("V", "Print version number and exit.")
58
+
59
+ .alias("p", "prefix")
60
+ .alias("o", "output")
61
+ .alias("v", "verbose")
62
+ .alias("b", "beautify")
63
+ .alias("m", "mangle")
64
+ .alias("c", "compress")
65
+ .alias("d", "define")
66
+ .alias("r", "reserved")
67
+ .alias("V", "version")
68
+ .alias("e", "enclose")
69
+
70
+ .string("source-map")
71
+ .string("source-map-root")
72
+ .string("source-map-url")
73
+ .string("b")
74
+ .string("m")
75
+ .string("c")
76
+ .string("d")
77
+ .string("e")
78
+ .string("comments")
79
+ .string("wrap")
80
+
81
+ .boolean("expr")
82
+ .boolean("screw-ie8")
83
+ .boolean("export-all")
84
+ .boolean("self")
85
+ .boolean("v")
86
+ .boolean("stats")
87
+ .boolean("acorn")
88
+ .boolean("spidermonkey")
89
+ .boolean("lint")
90
+ .boolean("V")
91
+
92
+ .wrap(80)
93
+
94
+ .argv
95
+ ;
96
+
97
+ normalize(ARGS);
98
+
99
+ if (ARGS.version || ARGS.V) {
100
+ var json = require("../package.json");
101
+ sys.puts(json.name + ' ' + json.version);
102
+ process.exit(0);
103
+ }
104
+
105
+ if (ARGS.ast_help) {
106
+ var desc = UglifyJS.describe_ast();
107
+ sys.puts(typeof desc == "string" ? desc : JSON.stringify(desc, null, 2));
108
+ process.exit(0);
109
+ }
110
+
111
+ if (ARGS.h || ARGS.help) {
112
+ sys.puts(optimist.help());
113
+ process.exit(0);
114
+ }
115
+
116
+ if (ARGS.acorn) {
117
+ acorn = require("acorn");
118
+ }
119
+
120
+ var COMPRESS = getOptions("c", true);
121
+ var MANGLE = getOptions("m", true);
122
+ var BEAUTIFY = getOptions("b", true);
123
+
124
+ if (ARGS.d) {
125
+ if (COMPRESS) COMPRESS.global_defs = getOptions("d");
126
+ }
127
+
128
+ if (ARGS.screw_ie8) {
129
+ if (COMPRESS) COMPRESS.screw_ie8 = true;
130
+ if (MANGLE) MANGLE.screw_ie8 = true;
131
+ }
132
+
133
+ if (ARGS.r) {
134
+ if (MANGLE) MANGLE.except = ARGS.r.replace(/^\s+|\s+$/g).split(/\s*,+\s*/);
135
+ }
136
+
137
+ var OUTPUT_OPTIONS = {
138
+ beautify: BEAUTIFY ? true : false
139
+ };
140
+
141
+ if (BEAUTIFY)
142
+ UglifyJS.merge(OUTPUT_OPTIONS, BEAUTIFY);
143
+
144
+ if (ARGS.comments) {
145
+ if (/^\//.test(ARGS.comments)) {
146
+ OUTPUT_OPTIONS.comments = new Function("return(" + ARGS.comments + ")")();
147
+ } else if (ARGS.comments == "all") {
148
+ OUTPUT_OPTIONS.comments = true;
149
+ } else {
150
+ OUTPUT_OPTIONS.comments = function(node, comment) {
151
+ var text = comment.value;
152
+ var type = comment.type;
153
+ if (type == "comment2") {
154
+ // multiline comment
155
+ return /@preserve|@license|@cc_on/i.test(text);
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ var files = ARGS._.slice();
162
+
163
+ if (ARGS.self) {
164
+ if (files.length > 0) {
165
+ sys.error("WARN: Ignoring input files since --self was passed");
166
+ }
167
+ files = UglifyJS.FILES;
168
+ if (!ARGS.wrap) ARGS.wrap = "UglifyJS";
169
+ ARGS.export_all = true;
170
+ }
171
+
172
+ var ORIG_MAP = ARGS.in_source_map;
173
+
174
+ if (ORIG_MAP) {
175
+ ORIG_MAP = JSON.parse(fs.readFileSync(ORIG_MAP));
176
+ if (files.length == 0) {
177
+ sys.error("INFO: Using file from the input source map: " + ORIG_MAP.file);
178
+ files = [ ORIG_MAP.file ];
179
+ }
180
+ if (ARGS.source_map_root == null) {
181
+ ARGS.source_map_root = ORIG_MAP.sourceRoot;
182
+ }
183
+ }
184
+
185
+ if (files.length == 0) {
186
+ files = [ "-" ];
187
+ }
188
+
189
+ if (files.indexOf("-") >= 0 && ARGS.source_map) {
190
+ sys.error("ERROR: Source map doesn't work with input from STDIN");
191
+ process.exit(1);
192
+ }
193
+
194
+ if (files.filter(function(el){ return el == "-" }).length > 1) {
195
+ sys.error("ERROR: Can read a single file from STDIN (two or more dashes specified)");
196
+ process.exit(1);
197
+ }
198
+
199
+ var STATS = {};
200
+ var OUTPUT_FILE = ARGS.o;
201
+ var TOPLEVEL = null;
202
+
203
+ var SOURCE_MAP = ARGS.source_map ? UglifyJS.SourceMap({
204
+ file: OUTPUT_FILE,
205
+ root: ARGS.source_map_root,
206
+ orig: ORIG_MAP,
207
+ }) : null;
208
+
209
+ OUTPUT_OPTIONS.source_map = SOURCE_MAP;
210
+
211
+ try {
212
+ var output = UglifyJS.OutputStream(OUTPUT_OPTIONS);
213
+ var compressor = COMPRESS && UglifyJS.Compressor(COMPRESS);
214
+ } catch(ex) {
215
+ if (ex instanceof UglifyJS.DefaultsError) {
216
+ sys.error(ex.msg);
217
+ sys.error("Supported options:");
218
+ sys.error(sys.inspect(ex.defs));
219
+ process.exit(1);
220
+ }
221
+ }
222
+
223
+ async.eachLimit(files, 1, function (file, cb) {
224
+ read_whole_file(file, function (err, code) {
225
+ if (err) {
226
+ sys.error("ERROR: can't read file: " + filename);
227
+ process.exit(1);
228
+ }
229
+ if (ARGS.p != null) {
230
+ file = file.replace(/^\/+/, "").split(/\/+/).slice(ARGS.p).join("/");
231
+ }
232
+ time_it("parse", function(){
233
+ if (ARGS.spidermonkey) {
234
+ var program = JSON.parse(code);
235
+ if (!TOPLEVEL) TOPLEVEL = program;
236
+ else TOPLEVEL.body = TOPLEVEL.body.concat(program.body);
237
+ }
238
+ else if (ARGS.acorn) {
239
+ TOPLEVEL = acorn.parse(code, {
240
+ locations : true,
241
+ trackComments : true,
242
+ sourceFile : file,
243
+ program : TOPLEVEL
244
+ });
245
+ }
246
+ else {
247
+ TOPLEVEL = UglifyJS.parse(code, {
248
+ filename : file,
249
+ toplevel : TOPLEVEL,
250
+ expression : ARGS.expr,
251
+ });
252
+ };
253
+ });
254
+ cb();
255
+ });
256
+ }, function () {
257
+ if (ARGS.acorn || ARGS.spidermonkey) time_it("convert_ast", function(){
258
+ TOPLEVEL = UglifyJS.AST_Node.from_mozilla_ast(TOPLEVEL);
259
+ });
260
+
261
+ if (ARGS.wrap) {
262
+ TOPLEVEL = TOPLEVEL.wrap_commonjs(ARGS.wrap, ARGS.export_all);
263
+ }
264
+
265
+ if (ARGS.enclose) {
266
+ var arg_parameter_list = ARGS.enclose;
267
+
268
+ if (!(arg_parameter_list instanceof Array)) {
269
+ arg_parameter_list = [arg_parameter_list];
270
+ }
271
+
272
+ TOPLEVEL = TOPLEVEL.wrap_enclose(arg_parameter_list);
273
+ }
274
+
275
+ var SCOPE_IS_NEEDED = COMPRESS || MANGLE || ARGS.lint;
276
+
277
+ if (SCOPE_IS_NEEDED) {
278
+ time_it("scope", function(){
279
+ TOPLEVEL.figure_out_scope({ screw_ie8: ARGS.screw_ie8 });
280
+ if (ARGS.lint) {
281
+ TOPLEVEL.scope_warnings();
282
+ }
283
+ });
284
+ }
285
+
286
+ if (COMPRESS) {
287
+ time_it("squeeze", function(){
288
+ TOPLEVEL = TOPLEVEL.transform(compressor);
289
+ });
290
+ }
291
+
292
+ if (SCOPE_IS_NEEDED) {
293
+ time_it("scope", function(){
294
+ TOPLEVEL.figure_out_scope({ screw_ie8: ARGS.screw_ie8 });
295
+ if (MANGLE) {
296
+ TOPLEVEL.compute_char_frequency(MANGLE);
297
+ }
298
+ });
299
+ }
300
+
301
+ if (MANGLE) time_it("mangle", function(){
302
+ TOPLEVEL.mangle_names(MANGLE);
303
+ });
304
+ time_it("generate", function(){
305
+ TOPLEVEL.print(output);
306
+ });
307
+
308
+ output = output.get();
309
+
310
+ if (SOURCE_MAP) {
311
+ fs.writeFileSync(ARGS.source_map, SOURCE_MAP, "utf8");
312
+ output += "\n//# sourceMappingURL=" + (ARGS.source_map_url || ARGS.source_map);
313
+ }
314
+
315
+ if (OUTPUT_FILE) {
316
+ fs.writeFileSync(OUTPUT_FILE, output, "utf8");
317
+ } else {
318
+ sys.print(output);
319
+ sys.error("\n");
320
+ }
321
+
322
+ if (ARGS.stats) {
323
+ sys.error(UglifyJS.string_template("Timing information (compressed {count} files):", {
324
+ count: files.length
325
+ }));
326
+ for (var i in STATS) if (STATS.hasOwnProperty(i)) {
327
+ sys.error(UglifyJS.string_template("- {name}: {time}s", {
328
+ name: i,
329
+ time: (STATS[i] / 1000).toFixed(3)
330
+ }));
331
+ }
332
+ }
333
+ });
334
+
335
+ /* -----[ functions ]----- */
336
+
337
+ function normalize(o) {
338
+ for (var i in o) if (o.hasOwnProperty(i) && /-/.test(i)) {
339
+ o[i.replace(/-/g, "_")] = o[i];
340
+ delete o[i];
341
+ }
342
+ }
343
+
344
+ function getOptions(x, constants) {
345
+ x = ARGS[x];
346
+ if (!x) return null;
347
+ var ret = {};
348
+ if (x !== true) {
349
+ var ast;
350
+ try {
351
+ ast = UglifyJS.parse(x);
352
+ } catch(ex) {
353
+ if (ex instanceof UglifyJS.JS_Parse_Error) {
354
+ sys.error("Error parsing arguments in: " + x);
355
+ process.exit(1);
356
+ }
357
+ }
358
+ ast.walk(new UglifyJS.TreeWalker(function(node){
359
+ if (node instanceof UglifyJS.AST_Toplevel) return; // descend
360
+ if (node instanceof UglifyJS.AST_SimpleStatement) return; // descend
361
+ if (node instanceof UglifyJS.AST_Seq) return; // descend
362
+ if (node instanceof UglifyJS.AST_Assign) {
363
+ var name = node.left.print_to_string({ beautify: false }).replace(/-/g, "_");
364
+ var value = node.right;
365
+ if (constants)
366
+ value = new Function("return (" + value.print_to_string() + ")")();
367
+ ret[name] = value;
368
+ return true; // no descend
369
+ }
370
+ sys.error(node.TYPE)
371
+ sys.error("Error parsing arguments in: " + x);
372
+ process.exit(1);
373
+ }));
374
+ }
375
+ return ret;
376
+ }
377
+
378
+ function read_whole_file(filename, cb) {
379
+ if (filename == "-") {
380
+ var chunks = [];
381
+ process.stdin.setEncoding('utf-8');
382
+ process.stdin.on('data', function (chunk) {
383
+ chunks.push(chunk);
384
+ }).on('end', function () {
385
+ cb(null, chunks.join(""));
386
+ });
387
+ process.openStdin();
388
+ } else {
389
+ fs.readFile(filename, "utf-8", cb);
390
+ }
391
+ }
392
+
393
+ function time_it(name, cont) {
394
+ var t1 = new Date().getTime();
395
+ var ret = cont();
396
+ if (ARGS.stats) {
397
+ var spent = new Date().getTime() - t1;
398
+ if (STATS[name]) STATS[name] += spent;
399
+ else STATS[name] = spent;
400
+ }
401
+ return ret;
402
+ }
@@ -0,0 +1,985 @@
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 DEFNODE(type, props, methods, base) {
47
+ if (arguments.length < 4) base = AST_Node;
48
+ if (!props) props = [];
49
+ else props = props.split(/\s+/);
50
+ var self_props = props;
51
+ if (base && base.PROPS)
52
+ props = props.concat(base.PROPS);
53
+ var code = "return function AST_" + type + "(props){ if (props) { ";
54
+ for (var i = props.length; --i >= 0;) {
55
+ code += "this." + props[i] + " = props." + props[i] + ";";
56
+ }
57
+ var proto = base && new base;
58
+ if (proto && proto.initialize || (methods && methods.initialize))
59
+ code += "this.initialize();";
60
+ code += "}}";
61
+ var ctor = new Function(code)();
62
+ if (proto) {
63
+ ctor.prototype = proto;
64
+ ctor.BASE = base;
65
+ }
66
+ if (base) base.SUBCLASSES.push(ctor);
67
+ ctor.prototype.CTOR = ctor;
68
+ ctor.PROPS = props || null;
69
+ ctor.SELF_PROPS = self_props;
70
+ ctor.SUBCLASSES = [];
71
+ if (type) {
72
+ ctor.prototype.TYPE = ctor.TYPE = type;
73
+ }
74
+ if (methods) for (i in methods) if (methods.hasOwnProperty(i)) {
75
+ if (/^\$/.test(i)) {
76
+ ctor[i.substr(1)] = methods[i];
77
+ } else {
78
+ ctor.prototype[i] = methods[i];
79
+ }
80
+ }
81
+ ctor.DEFMETHOD = function(name, method) {
82
+ this.prototype[name] = method;
83
+ };
84
+ return ctor;
85
+ };
86
+
87
+ var AST_Token = DEFNODE("Token", "type value line col pos endpos nlb comments_before file", {
88
+ }, null);
89
+
90
+ var AST_Node = DEFNODE("Node", "start end", {
91
+ clone: function() {
92
+ return new this.CTOR(this);
93
+ },
94
+ $documentation: "Base class of all AST nodes",
95
+ $propdoc: {
96
+ start: "[AST_Token] The first token of this node",
97
+ end: "[AST_Token] The last token of this node"
98
+ },
99
+ _walk: function(visitor) {
100
+ return visitor._visit(this);
101
+ },
102
+ walk: function(visitor) {
103
+ return this._walk(visitor); // not sure the indirection will be any help
104
+ }
105
+ }, null);
106
+
107
+ AST_Node.warn_function = null;
108
+ AST_Node.warn = function(txt, props) {
109
+ if (AST_Node.warn_function)
110
+ AST_Node.warn_function(string_template(txt, props));
111
+ };
112
+
113
+ /* -----[ statements ]----- */
114
+
115
+ var AST_Statement = DEFNODE("Statement", null, {
116
+ $documentation: "Base class of all statements",
117
+ });
118
+
119
+ var AST_Debugger = DEFNODE("Debugger", null, {
120
+ $documentation: "Represents a debugger statement",
121
+ }, AST_Statement);
122
+
123
+ var AST_Directive = DEFNODE("Directive", "value scope", {
124
+ $documentation: "Represents a directive, like \"use strict\";",
125
+ $propdoc: {
126
+ value: "[string] The value of this directive as a plain string (it's not an AST_String!)",
127
+ scope: "[AST_Scope/S] The scope that this directive affects"
128
+ },
129
+ }, AST_Statement);
130
+
131
+ var AST_SimpleStatement = DEFNODE("SimpleStatement", "body", {
132
+ $documentation: "A statement consisting of an expression, i.e. a = 1 + 2",
133
+ $propdoc: {
134
+ body: "[AST_Node] an expression node (should not be instanceof AST_Statement)"
135
+ },
136
+ _walk: function(visitor) {
137
+ return visitor._visit(this, function(){
138
+ this.body._walk(visitor);
139
+ });
140
+ }
141
+ }, AST_Statement);
142
+
143
+ function walk_body(node, visitor) {
144
+ if (node.body instanceof AST_Statement) {
145
+ node.body._walk(visitor);
146
+ }
147
+ else node.body.forEach(function(stat){
148
+ stat._walk(visitor);
149
+ });
150
+ };
151
+
152
+ var AST_Block = DEFNODE("Block", "body", {
153
+ $documentation: "A body of statements (usually bracketed)",
154
+ $propdoc: {
155
+ body: "[AST_Statement*] an array of statements"
156
+ },
157
+ _walk: function(visitor) {
158
+ return visitor._visit(this, function(){
159
+ walk_body(this, visitor);
160
+ });
161
+ }
162
+ }, AST_Statement);
163
+
164
+ var AST_BlockStatement = DEFNODE("BlockStatement", null, {
165
+ $documentation: "A block statement",
166
+ }, AST_Block);
167
+
168
+ var AST_EmptyStatement = DEFNODE("EmptyStatement", null, {
169
+ $documentation: "The empty statement (empty block or simply a semicolon)",
170
+ _walk: function(visitor) {
171
+ return visitor._visit(this);
172
+ }
173
+ }, AST_Statement);
174
+
175
+ var AST_StatementWithBody = DEFNODE("StatementWithBody", "body", {
176
+ $documentation: "Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`",
177
+ $propdoc: {
178
+ body: "[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement"
179
+ },
180
+ _walk: function(visitor) {
181
+ return visitor._visit(this, function(){
182
+ this.body._walk(visitor);
183
+ });
184
+ }
185
+ }, AST_Statement);
186
+
187
+ var AST_LabeledStatement = DEFNODE("LabeledStatement", "label", {
188
+ $documentation: "Statement with a label",
189
+ $propdoc: {
190
+ label: "[AST_Label] a label definition"
191
+ },
192
+ _walk: function(visitor) {
193
+ return visitor._visit(this, function(){
194
+ this.label._walk(visitor);
195
+ this.body._walk(visitor);
196
+ });
197
+ }
198
+ }, AST_StatementWithBody);
199
+
200
+ var AST_DWLoop = DEFNODE("DWLoop", "condition", {
201
+ $documentation: "Base class for do/while statements",
202
+ $propdoc: {
203
+ condition: "[AST_Node] the loop condition. Should not be instanceof AST_Statement"
204
+ },
205
+ _walk: function(visitor) {
206
+ return visitor._visit(this, function(){
207
+ this.condition._walk(visitor);
208
+ this.body._walk(visitor);
209
+ });
210
+ }
211
+ }, AST_StatementWithBody);
212
+
213
+ var AST_Do = DEFNODE("Do", null, {
214
+ $documentation: "A `do` statement",
215
+ }, AST_DWLoop);
216
+
217
+ var AST_While = DEFNODE("While", null, {
218
+ $documentation: "A `while` statement",
219
+ }, AST_DWLoop);
220
+
221
+ var AST_For = DEFNODE("For", "init condition step", {
222
+ $documentation: "A `for` statement",
223
+ $propdoc: {
224
+ init: "[AST_Node?] the `for` initialization code, or null if empty",
225
+ condition: "[AST_Node?] the `for` termination clause, or null if empty",
226
+ step: "[AST_Node?] the `for` update clause, or null if empty"
227
+ },
228
+ _walk: function(visitor) {
229
+ return visitor._visit(this, function(){
230
+ if (this.init) this.init._walk(visitor);
231
+ if (this.condition) this.condition._walk(visitor);
232
+ if (this.step) this.step._walk(visitor);
233
+ this.body._walk(visitor);
234
+ });
235
+ }
236
+ }, AST_StatementWithBody);
237
+
238
+ var AST_ForIn = DEFNODE("ForIn", "init name object", {
239
+ $documentation: "A `for ... in` statement",
240
+ $propdoc: {
241
+ init: "[AST_Node] the `for/in` initialization code",
242
+ name: "[AST_SymbolRef?] the loop variable, only if `init` is AST_Var",
243
+ object: "[AST_Node] the object that we're looping through"
244
+ },
245
+ _walk: function(visitor) {
246
+ return visitor._visit(this, function(){
247
+ this.init._walk(visitor);
248
+ this.object._walk(visitor);
249
+ this.body._walk(visitor);
250
+ });
251
+ }
252
+ }, AST_StatementWithBody);
253
+
254
+ var AST_With = DEFNODE("With", "expression", {
255
+ $documentation: "A `with` statement",
256
+ $propdoc: {
257
+ expression: "[AST_Node] the `with` expression"
258
+ },
259
+ _walk: function(visitor) {
260
+ return visitor._visit(this, function(){
261
+ this.expression._walk(visitor);
262
+ this.body._walk(visitor);
263
+ });
264
+ }
265
+ }, AST_StatementWithBody);
266
+
267
+ /* -----[ scope and functions ]----- */
268
+
269
+ var AST_Scope = DEFNODE("Scope", "directives variables functions uses_with uses_eval parent_scope enclosed cname", {
270
+ $documentation: "Base class for all statements introducing a lexical scope",
271
+ $propdoc: {
272
+ directives: "[string*/S] an array of directives declared in this scope",
273
+ variables: "[Object/S] a map of name -> SymbolDef for all variables/functions defined in this scope",
274
+ functions: "[Object/S] like `variables`, but only lists function declarations",
275
+ uses_with: "[boolean/S] tells whether this scope uses the `with` statement",
276
+ uses_eval: "[boolean/S] tells whether this scope contains a direct call to the global `eval`",
277
+ parent_scope: "[AST_Scope?/S] link to the parent scope",
278
+ enclosed: "[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes",
279
+ cname: "[integer/S] current index for mangling variables (used internally by the mangler)",
280
+ },
281
+ }, AST_Block);
282
+
283
+ var AST_Toplevel = DEFNODE("Toplevel", "globals", {
284
+ $documentation: "The toplevel scope",
285
+ $propdoc: {
286
+ globals: "[Object/S] a map of name -> SymbolDef for all undeclared names",
287
+ },
288
+ wrap_enclose: function(arg_parameter_pairs) {
289
+ var self = this;
290
+ var args = [];
291
+ var parameters = [];
292
+
293
+ arg_parameter_pairs.forEach(function(pair) {
294
+ var split = pair.split(":");
295
+
296
+ args.push(split[0]);
297
+ parameters.push(split[1]);
298
+ });
299
+
300
+ var wrapped_tl = "(function(" + parameters.join(",") + "){ '$ORIG'; })(" + args.join(",") + ")";
301
+ wrapped_tl = parse(wrapped_tl);
302
+ wrapped_tl = wrapped_tl.transform(new TreeTransformer(function before(node){
303
+ if (node instanceof AST_Directive && node.value == "$ORIG") {
304
+ return MAP.splice(self.body);
305
+ }
306
+ }));
307
+ return wrapped_tl;
308
+ },
309
+ wrap_commonjs: function(name, export_all) {
310
+ var self = this;
311
+ var to_export = [];
312
+ if (export_all) {
313
+ self.figure_out_scope();
314
+ self.walk(new TreeWalker(function(node){
315
+ if (node instanceof AST_SymbolDeclaration && node.definition().global) {
316
+ if (!find_if(function(n){ return n.name == node.name }, to_export))
317
+ to_export.push(node);
318
+ }
319
+ }));
320
+ }
321
+ var wrapped_tl = "(function(exports, global){ global['" + name + "'] = exports; '$ORIG'; '$EXPORTS'; }({}, (function(){return this}())))";
322
+ wrapped_tl = parse(wrapped_tl);
323
+ wrapped_tl = wrapped_tl.transform(new TreeTransformer(function before(node){
324
+ if (node instanceof AST_SimpleStatement) {
325
+ node = node.body;
326
+ if (node instanceof AST_String) switch (node.getValue()) {
327
+ case "$ORIG":
328
+ return MAP.splice(self.body);
329
+ case "$EXPORTS":
330
+ var body = [];
331
+ to_export.forEach(function(sym){
332
+ body.push(new AST_SimpleStatement({
333
+ body: new AST_Assign({
334
+ left: new AST_Sub({
335
+ expression: new AST_SymbolRef({ name: "exports" }),
336
+ property: new AST_String({ value: sym.name }),
337
+ }),
338
+ operator: "=",
339
+ right: new AST_SymbolRef(sym),
340
+ }),
341
+ }));
342
+ });
343
+ return MAP.splice(body);
344
+ }
345
+ }
346
+ }));
347
+ return wrapped_tl;
348
+ }
349
+ }, AST_Scope);
350
+
351
+ var AST_Lambda = DEFNODE("Lambda", "name argnames uses_arguments", {
352
+ $documentation: "Base class for functions",
353
+ $propdoc: {
354
+ name: "[AST_SymbolDeclaration?] the name of this function",
355
+ argnames: "[AST_SymbolFunarg*] array of function arguments",
356
+ uses_arguments: "[boolean/S] tells whether this function accesses the arguments array"
357
+ },
358
+ _walk: function(visitor) {
359
+ return visitor._visit(this, function(){
360
+ if (this.name) this.name._walk(visitor);
361
+ this.argnames.forEach(function(arg){
362
+ arg._walk(visitor);
363
+ });
364
+ walk_body(this, visitor);
365
+ });
366
+ }
367
+ }, AST_Scope);
368
+
369
+ var AST_Accessor = DEFNODE("Accessor", null, {
370
+ $documentation: "A setter/getter function"
371
+ }, AST_Lambda);
372
+
373
+ var AST_Function = DEFNODE("Function", null, {
374
+ $documentation: "A function expression"
375
+ }, AST_Lambda);
376
+
377
+ var AST_Defun = DEFNODE("Defun", null, {
378
+ $documentation: "A function definition"
379
+ }, AST_Lambda);
380
+
381
+ /* -----[ JUMPS ]----- */
382
+
383
+ var AST_Jump = DEFNODE("Jump", null, {
384
+ $documentation: "Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)"
385
+ }, AST_Statement);
386
+
387
+ var AST_Exit = DEFNODE("Exit", "value", {
388
+ $documentation: "Base class for “exits” (`return` and `throw`)",
389
+ $propdoc: {
390
+ value: "[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return"
391
+ },
392
+ _walk: function(visitor) {
393
+ return visitor._visit(this, this.value && function(){
394
+ this.value._walk(visitor);
395
+ });
396
+ }
397
+ }, AST_Jump);
398
+
399
+ var AST_Return = DEFNODE("Return", null, {
400
+ $documentation: "A `return` statement"
401
+ }, AST_Exit);
402
+
403
+ var AST_Throw = DEFNODE("Throw", null, {
404
+ $documentation: "A `throw` statement"
405
+ }, AST_Exit);
406
+
407
+ var AST_LoopControl = DEFNODE("LoopControl", "label", {
408
+ $documentation: "Base class for loop control statements (`break` and `continue`)",
409
+ $propdoc: {
410
+ label: "[AST_LabelRef?] the label, or null if none",
411
+ },
412
+ _walk: function(visitor) {
413
+ return visitor._visit(this, this.label && function(){
414
+ this.label._walk(visitor);
415
+ });
416
+ }
417
+ }, AST_Jump);
418
+
419
+ var AST_Break = DEFNODE("Break", null, {
420
+ $documentation: "A `break` statement"
421
+ }, AST_LoopControl);
422
+
423
+ var AST_Continue = DEFNODE("Continue", null, {
424
+ $documentation: "A `continue` statement"
425
+ }, AST_LoopControl);
426
+
427
+ /* -----[ IF ]----- */
428
+
429
+ var AST_If = DEFNODE("If", "condition alternative", {
430
+ $documentation: "A `if` statement",
431
+ $propdoc: {
432
+ condition: "[AST_Node] the `if` condition",
433
+ alternative: "[AST_Statement?] the `else` part, or null if not present"
434
+ },
435
+ _walk: function(visitor) {
436
+ return visitor._visit(this, function(){
437
+ this.condition._walk(visitor);
438
+ this.body._walk(visitor);
439
+ if (this.alternative) this.alternative._walk(visitor);
440
+ });
441
+ }
442
+ }, AST_StatementWithBody);
443
+
444
+ /* -----[ SWITCH ]----- */
445
+
446
+ var AST_Switch = DEFNODE("Switch", "expression", {
447
+ $documentation: "A `switch` statement",
448
+ $propdoc: {
449
+ expression: "[AST_Node] the `switch` “discriminant”"
450
+ },
451
+ _walk: function(visitor) {
452
+ return visitor._visit(this, function(){
453
+ this.expression._walk(visitor);
454
+ walk_body(this, visitor);
455
+ });
456
+ }
457
+ }, AST_Block);
458
+
459
+ var AST_SwitchBranch = DEFNODE("SwitchBranch", null, {
460
+ $documentation: "Base class for `switch` branches",
461
+ }, AST_Block);
462
+
463
+ var AST_Default = DEFNODE("Default", null, {
464
+ $documentation: "A `default` switch branch",
465
+ }, AST_SwitchBranch);
466
+
467
+ var AST_Case = DEFNODE("Case", "expression", {
468
+ $documentation: "A `case` switch branch",
469
+ $propdoc: {
470
+ expression: "[AST_Node] the `case` expression"
471
+ },
472
+ _walk: function(visitor) {
473
+ return visitor._visit(this, function(){
474
+ this.expression._walk(visitor);
475
+ walk_body(this, visitor);
476
+ });
477
+ }
478
+ }, AST_SwitchBranch);
479
+
480
+ /* -----[ EXCEPTIONS ]----- */
481
+
482
+ var AST_Try = DEFNODE("Try", "bcatch bfinally", {
483
+ $documentation: "A `try` statement",
484
+ $propdoc: {
485
+ bcatch: "[AST_Catch?] the catch block, or null if not present",
486
+ bfinally: "[AST_Finally?] the finally block, or null if not present"
487
+ },
488
+ _walk: function(visitor) {
489
+ return visitor._visit(this, function(){
490
+ walk_body(this, visitor);
491
+ if (this.bcatch) this.bcatch._walk(visitor);
492
+ if (this.bfinally) this.bfinally._walk(visitor);
493
+ });
494
+ }
495
+ }, AST_Block);
496
+
497
+ // XXX: this is wrong according to ECMA-262 (12.4). the catch block
498
+ // should introduce another scope, as the argname should be visible
499
+ // only inside the catch block. However, doing it this way because of
500
+ // IE which simply introduces the name in the surrounding scope. If
501
+ // we ever want to fix this then AST_Catch should inherit from
502
+ // AST_Scope.
503
+ var AST_Catch = DEFNODE("Catch", "argname", {
504
+ $documentation: "A `catch` node; only makes sense as part of a `try` statement",
505
+ $propdoc: {
506
+ argname: "[AST_SymbolCatch] symbol for the exception"
507
+ },
508
+ _walk: function(visitor) {
509
+ return visitor._visit(this, function(){
510
+ this.argname._walk(visitor);
511
+ walk_body(this, visitor);
512
+ });
513
+ }
514
+ }, AST_Block);
515
+
516
+ var AST_Finally = DEFNODE("Finally", null, {
517
+ $documentation: "A `finally` node; only makes sense as part of a `try` statement"
518
+ }, AST_Block);
519
+
520
+ /* -----[ VAR/CONST ]----- */
521
+
522
+ var AST_Definitions = DEFNODE("Definitions", "definitions", {
523
+ $documentation: "Base class for `var` or `const` nodes (variable declarations/initializations)",
524
+ $propdoc: {
525
+ definitions: "[AST_VarDef*] array of variable definitions"
526
+ },
527
+ _walk: function(visitor) {
528
+ return visitor._visit(this, function(){
529
+ this.definitions.forEach(function(def){
530
+ def._walk(visitor);
531
+ });
532
+ });
533
+ }
534
+ }, AST_Statement);
535
+
536
+ var AST_Var = DEFNODE("Var", null, {
537
+ $documentation: "A `var` statement"
538
+ }, AST_Definitions);
539
+
540
+ var AST_Const = DEFNODE("Const", null, {
541
+ $documentation: "A `const` statement"
542
+ }, AST_Definitions);
543
+
544
+ var AST_VarDef = DEFNODE("VarDef", "name value", {
545
+ $documentation: "A variable declaration; only appears in a AST_Definitions node",
546
+ $propdoc: {
547
+ name: "[AST_SymbolVar|AST_SymbolConst] name of the variable",
548
+ value: "[AST_Node?] initializer, or null of there's no initializer"
549
+ },
550
+ _walk: function(visitor) {
551
+ return visitor._visit(this, function(){
552
+ this.name._walk(visitor);
553
+ if (this.value) this.value._walk(visitor);
554
+ });
555
+ }
556
+ });
557
+
558
+ /* -----[ OTHER ]----- */
559
+
560
+ var AST_Call = DEFNODE("Call", "expression args", {
561
+ $documentation: "A function call expression",
562
+ $propdoc: {
563
+ expression: "[AST_Node] expression to invoke as function",
564
+ args: "[AST_Node*] array of arguments"
565
+ },
566
+ _walk: function(visitor) {
567
+ return visitor._visit(this, function(){
568
+ this.expression._walk(visitor);
569
+ this.args.forEach(function(arg){
570
+ arg._walk(visitor);
571
+ });
572
+ });
573
+ }
574
+ });
575
+
576
+ var AST_New = DEFNODE("New", null, {
577
+ $documentation: "An object instantiation. Derives from a function call since it has exactly the same properties"
578
+ }, AST_Call);
579
+
580
+ var AST_Seq = DEFNODE("Seq", "car cdr", {
581
+ $documentation: "A sequence expression (two comma-separated expressions)",
582
+ $propdoc: {
583
+ car: "[AST_Node] first element in sequence",
584
+ cdr: "[AST_Node] second element in sequence"
585
+ },
586
+ $cons: function(x, y) {
587
+ var seq = new AST_Seq(x);
588
+ seq.car = x;
589
+ seq.cdr = y;
590
+ return seq;
591
+ },
592
+ $from_array: function(array) {
593
+ if (array.length == 0) return null;
594
+ if (array.length == 1) return array[0].clone();
595
+ var list = null;
596
+ for (var i = array.length; --i >= 0;) {
597
+ list = AST_Seq.cons(array[i], list);
598
+ }
599
+ var p = list;
600
+ while (p) {
601
+ if (p.cdr && !p.cdr.cdr) {
602
+ p.cdr = p.cdr.car;
603
+ break;
604
+ }
605
+ p = p.cdr;
606
+ }
607
+ return list;
608
+ },
609
+ to_array: function() {
610
+ var p = this, a = [];
611
+ while (p) {
612
+ a.push(p.car);
613
+ if (p.cdr && !(p.cdr instanceof AST_Seq)) {
614
+ a.push(p.cdr);
615
+ break;
616
+ }
617
+ p = p.cdr;
618
+ }
619
+ return a;
620
+ },
621
+ add: function(node) {
622
+ var p = this;
623
+ while (p) {
624
+ if (!(p.cdr instanceof AST_Seq)) {
625
+ var cell = AST_Seq.cons(p.cdr, node);
626
+ return p.cdr = cell;
627
+ }
628
+ p = p.cdr;
629
+ }
630
+ },
631
+ _walk: function(visitor) {
632
+ return visitor._visit(this, function(){
633
+ this.car._walk(visitor);
634
+ if (this.cdr) this.cdr._walk(visitor);
635
+ });
636
+ }
637
+ });
638
+
639
+ var AST_PropAccess = DEFNODE("PropAccess", "expression property", {
640
+ $documentation: "Base class for property access expressions, i.e. `a.foo` or `a[\"foo\"]`",
641
+ $propdoc: {
642
+ expression: "[AST_Node] the “container” expression",
643
+ property: "[AST_Node|string] the property to access. For AST_Dot this is always a plain string, while for AST_Sub it's an arbitrary AST_Node"
644
+ }
645
+ });
646
+
647
+ var AST_Dot = DEFNODE("Dot", null, {
648
+ $documentation: "A dotted property access expression",
649
+ _walk: function(visitor) {
650
+ return visitor._visit(this, function(){
651
+ this.expression._walk(visitor);
652
+ });
653
+ }
654
+ }, AST_PropAccess);
655
+
656
+ var AST_Sub = DEFNODE("Sub", null, {
657
+ $documentation: "Index-style property access, i.e. `a[\"foo\"]`",
658
+ _walk: function(visitor) {
659
+ return visitor._visit(this, function(){
660
+ this.expression._walk(visitor);
661
+ this.property._walk(visitor);
662
+ });
663
+ }
664
+ }, AST_PropAccess);
665
+
666
+ var AST_Unary = DEFNODE("Unary", "operator expression", {
667
+ $documentation: "Base class for unary expressions",
668
+ $propdoc: {
669
+ operator: "[string] the operator",
670
+ expression: "[AST_Node] expression that this unary operator applies to"
671
+ },
672
+ _walk: function(visitor) {
673
+ return visitor._visit(this, function(){
674
+ this.expression._walk(visitor);
675
+ });
676
+ }
677
+ });
678
+
679
+ var AST_UnaryPrefix = DEFNODE("UnaryPrefix", null, {
680
+ $documentation: "Unary prefix expression, i.e. `typeof i` or `++i`"
681
+ }, AST_Unary);
682
+
683
+ var AST_UnaryPostfix = DEFNODE("UnaryPostfix", null, {
684
+ $documentation: "Unary postfix expression, i.e. `i++`"
685
+ }, AST_Unary);
686
+
687
+ var AST_Binary = DEFNODE("Binary", "left operator right", {
688
+ $documentation: "Binary expression, i.e. `a + b`",
689
+ $propdoc: {
690
+ left: "[AST_Node] left-hand side expression",
691
+ operator: "[string] the operator",
692
+ right: "[AST_Node] right-hand side expression"
693
+ },
694
+ _walk: function(visitor) {
695
+ return visitor._visit(this, function(){
696
+ this.left._walk(visitor);
697
+ this.right._walk(visitor);
698
+ });
699
+ }
700
+ });
701
+
702
+ var AST_Conditional = DEFNODE("Conditional", "condition consequent alternative", {
703
+ $documentation: "Conditional expression using the ternary operator, i.e. `a ? b : c`",
704
+ $propdoc: {
705
+ condition: "[AST_Node]",
706
+ consequent: "[AST_Node]",
707
+ alternative: "[AST_Node]"
708
+ },
709
+ _walk: function(visitor) {
710
+ return visitor._visit(this, function(){
711
+ this.condition._walk(visitor);
712
+ this.consequent._walk(visitor);
713
+ this.alternative._walk(visitor);
714
+ });
715
+ }
716
+ });
717
+
718
+ var AST_Assign = DEFNODE("Assign", null, {
719
+ $documentation: "An assignment expression — `a = b + 5`",
720
+ }, AST_Binary);
721
+
722
+ /* -----[ LITERALS ]----- */
723
+
724
+ var AST_Array = DEFNODE("Array", "elements", {
725
+ $documentation: "An array literal",
726
+ $propdoc: {
727
+ elements: "[AST_Node*] array of elements"
728
+ },
729
+ _walk: function(visitor) {
730
+ return visitor._visit(this, function(){
731
+ this.elements.forEach(function(el){
732
+ el._walk(visitor);
733
+ });
734
+ });
735
+ }
736
+ });
737
+
738
+ var AST_Object = DEFNODE("Object", "properties", {
739
+ $documentation: "An object literal",
740
+ $propdoc: {
741
+ properties: "[AST_ObjectProperty*] array of properties"
742
+ },
743
+ _walk: function(visitor) {
744
+ return visitor._visit(this, function(){
745
+ this.properties.forEach(function(prop){
746
+ prop._walk(visitor);
747
+ });
748
+ });
749
+ }
750
+ });
751
+
752
+ var AST_ObjectProperty = DEFNODE("ObjectProperty", "key value", {
753
+ $documentation: "Base class for literal object properties",
754
+ $propdoc: {
755
+ key: "[string] the property name; it's always a plain string in our AST, no matter if it was a string, number or identifier in original code",
756
+ value: "[AST_Node] property value. For setters and getters this is an AST_Function."
757
+ },
758
+ _walk: function(visitor) {
759
+ return visitor._visit(this, function(){
760
+ this.value._walk(visitor);
761
+ });
762
+ }
763
+ });
764
+
765
+ var AST_ObjectKeyVal = DEFNODE("ObjectKeyVal", null, {
766
+ $documentation: "A key: value object property",
767
+ }, AST_ObjectProperty);
768
+
769
+ var AST_ObjectSetter = DEFNODE("ObjectSetter", null, {
770
+ $documentation: "An object setter property",
771
+ }, AST_ObjectProperty);
772
+
773
+ var AST_ObjectGetter = DEFNODE("ObjectGetter", null, {
774
+ $documentation: "An object getter property",
775
+ }, AST_ObjectProperty);
776
+
777
+ var AST_Symbol = DEFNODE("Symbol", "scope name thedef", {
778
+ $propdoc: {
779
+ name: "[string] name of this symbol",
780
+ scope: "[AST_Scope/S] the current scope (not necessarily the definition scope)",
781
+ thedef: "[SymbolDef/S] the definition of this symbol"
782
+ },
783
+ $documentation: "Base class for all symbols",
784
+ });
785
+
786
+ var AST_SymbolAccessor = DEFNODE("SymbolAccessor", null, {
787
+ $documentation: "The name of a property accessor (setter/getter function)"
788
+ }, AST_Symbol);
789
+
790
+ var AST_SymbolDeclaration = DEFNODE("SymbolDeclaration", "init", {
791
+ $documentation: "A declaration symbol (symbol in var/const, function name or argument, symbol in catch)",
792
+ $propdoc: {
793
+ init: "[AST_Node*/S] array of initializers for this declaration."
794
+ }
795
+ }, AST_Symbol);
796
+
797
+ var AST_SymbolVar = DEFNODE("SymbolVar", null, {
798
+ $documentation: "Symbol defining a variable",
799
+ }, AST_SymbolDeclaration);
800
+
801
+ var AST_SymbolConst = DEFNODE("SymbolConst", null, {
802
+ $documentation: "A constant declaration"
803
+ }, AST_SymbolDeclaration);
804
+
805
+ var AST_SymbolFunarg = DEFNODE("SymbolFunarg", null, {
806
+ $documentation: "Symbol naming a function argument",
807
+ }, AST_SymbolVar);
808
+
809
+ var AST_SymbolDefun = DEFNODE("SymbolDefun", null, {
810
+ $documentation: "Symbol defining a function",
811
+ }, AST_SymbolDeclaration);
812
+
813
+ var AST_SymbolLambda = DEFNODE("SymbolLambda", null, {
814
+ $documentation: "Symbol naming a function expression",
815
+ }, AST_SymbolDeclaration);
816
+
817
+ var AST_SymbolCatch = DEFNODE("SymbolCatch", null, {
818
+ $documentation: "Symbol naming the exception in catch",
819
+ }, AST_SymbolDeclaration);
820
+
821
+ var AST_Label = DEFNODE("Label", "references", {
822
+ $documentation: "Symbol naming a label (declaration)",
823
+ $propdoc: {
824
+ references: "[AST_LabelRef*] a list of nodes referring to this label"
825
+ }
826
+ }, AST_Symbol);
827
+
828
+ var AST_SymbolRef = DEFNODE("SymbolRef", null, {
829
+ $documentation: "Reference to some symbol (not definition/declaration)",
830
+ }, AST_Symbol);
831
+
832
+ var AST_LabelRef = DEFNODE("LabelRef", null, {
833
+ $documentation: "Reference to a label symbol",
834
+ }, AST_Symbol);
835
+
836
+ var AST_This = DEFNODE("This", null, {
837
+ $documentation: "The `this` symbol",
838
+ }, AST_Symbol);
839
+
840
+ var AST_Constant = DEFNODE("Constant", null, {
841
+ $documentation: "Base class for all constants",
842
+ getValue: function() {
843
+ return this.value;
844
+ }
845
+ });
846
+
847
+ var AST_String = DEFNODE("String", "value", {
848
+ $documentation: "A string literal",
849
+ $propdoc: {
850
+ value: "[string] the contents of this string"
851
+ }
852
+ }, AST_Constant);
853
+
854
+ var AST_Number = DEFNODE("Number", "value", {
855
+ $documentation: "A number literal",
856
+ $propdoc: {
857
+ value: "[number] the numeric value"
858
+ }
859
+ }, AST_Constant);
860
+
861
+ var AST_RegExp = DEFNODE("RegExp", "value", {
862
+ $documentation: "A regexp literal",
863
+ $propdoc: {
864
+ value: "[RegExp] the actual regexp"
865
+ }
866
+ }, AST_Constant);
867
+
868
+ var AST_Atom = DEFNODE("Atom", null, {
869
+ $documentation: "Base class for atoms",
870
+ }, AST_Constant);
871
+
872
+ var AST_Null = DEFNODE("Null", null, {
873
+ $documentation: "The `null` atom",
874
+ value: null
875
+ }, AST_Atom);
876
+
877
+ var AST_NaN = DEFNODE("NaN", null, {
878
+ $documentation: "The impossible value",
879
+ value: 0/0
880
+ }, AST_Atom);
881
+
882
+ var AST_Undefined = DEFNODE("Undefined", null, {
883
+ $documentation: "The `undefined` value",
884
+ value: (function(){}())
885
+ }, AST_Atom);
886
+
887
+ var AST_Hole = DEFNODE("Hole", null, {
888
+ $documentation: "A hole in an array",
889
+ value: (function(){}())
890
+ }, AST_Atom);
891
+
892
+ var AST_Infinity = DEFNODE("Infinity", null, {
893
+ $documentation: "The `Infinity` value",
894
+ value: 1/0
895
+ }, AST_Atom);
896
+
897
+ var AST_Boolean = DEFNODE("Boolean", null, {
898
+ $documentation: "Base class for booleans",
899
+ }, AST_Atom);
900
+
901
+ var AST_False = DEFNODE("False", null, {
902
+ $documentation: "The `false` atom",
903
+ value: false
904
+ }, AST_Boolean);
905
+
906
+ var AST_True = DEFNODE("True", null, {
907
+ $documentation: "The `true` atom",
908
+ value: true
909
+ }, AST_Boolean);
910
+
911
+ /* -----[ TreeWalker ]----- */
912
+
913
+ function TreeWalker(callback) {
914
+ this.visit = callback;
915
+ this.stack = [];
916
+ };
917
+ TreeWalker.prototype = {
918
+ _visit: function(node, descend) {
919
+ this.stack.push(node);
920
+ var ret = this.visit(node, descend ? function(){
921
+ descend.call(node);
922
+ } : noop);
923
+ if (!ret && descend) {
924
+ descend.call(node);
925
+ }
926
+ this.stack.pop();
927
+ return ret;
928
+ },
929
+ parent: function(n) {
930
+ return this.stack[this.stack.length - 2 - (n || 0)];
931
+ },
932
+ push: function (node) {
933
+ this.stack.push(node);
934
+ },
935
+ pop: function() {
936
+ return this.stack.pop();
937
+ },
938
+ self: function() {
939
+ return this.stack[this.stack.length - 1];
940
+ },
941
+ find_parent: function(type) {
942
+ var stack = this.stack;
943
+ for (var i = stack.length; --i >= 0;) {
944
+ var x = stack[i];
945
+ if (x instanceof type) return x;
946
+ }
947
+ },
948
+ in_boolean_context: function() {
949
+ var stack = this.stack;
950
+ var i = stack.length, self = stack[--i];
951
+ while (i > 0) {
952
+ var p = stack[--i];
953
+ if ((p instanceof AST_If && p.condition === self) ||
954
+ (p instanceof AST_Conditional && p.condition === self) ||
955
+ (p instanceof AST_DWLoop && p.condition === self) ||
956
+ (p instanceof AST_For && p.condition === self) ||
957
+ (p instanceof AST_UnaryPrefix && p.operator == "!" && p.expression === self))
958
+ {
959
+ return true;
960
+ }
961
+ if (!(p instanceof AST_Binary && (p.operator == "&&" || p.operator == "||")))
962
+ return false;
963
+ self = p;
964
+ }
965
+ },
966
+ loopcontrol_target: function(label) {
967
+ var stack = this.stack;
968
+ if (label) {
969
+ for (var i = stack.length; --i >= 0;) {
970
+ var x = stack[i];
971
+ if (x instanceof AST_LabeledStatement && x.label.name == label.name) {
972
+ return x.body;
973
+ }
974
+ }
975
+ } else {
976
+ for (var i = stack.length; --i >= 0;) {
977
+ var x = stack[i];
978
+ if (x instanceof AST_Switch
979
+ || x instanceof AST_For
980
+ || x instanceof AST_ForIn
981
+ || x instanceof AST_DWLoop) return x;
982
+ }
983
+ }
984
+ }
985
+ };