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,2275 @@
1
+ /*
2
+ Copyright (C) 2012 Michael Ficarra <escodegen.copyright@michael.ficarra.me>
3
+ Copyright (C) 2012 Robert Gust-Bardon <donate@robert.gust-bardon.org>
4
+ Copyright (C) 2012 John Freeman <jfreeman08@gmail.com>
5
+ Copyright (C) 2011-2012 Ariya Hidayat <ariya.hidayat@gmail.com>
6
+ Copyright (C) 2012 Mathias Bynens <mathias@qiwi.be>
7
+ Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
8
+ Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>
9
+ Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
10
+ Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
11
+
12
+ Redistribution and use in source and binary forms, with or without
13
+ modification, are permitted provided that the following conditions are met:
14
+
15
+ * Redistributions of source code must retain the above copyright
16
+ notice, this list of conditions and the following disclaimer.
17
+ * Redistributions in binary form must reproduce the above copyright
18
+ notice, this list of conditions and the following disclaimer in the
19
+ documentation and/or other materials provided with the distribution.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
+ ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
25
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
+ */
32
+
33
+ /*jslint bitwise:true */
34
+ /*global escodegen:true, exports:true, generateStatement:true, generateExpression:true, generateFunctionBody:true, process:true, require:true, define:true, global:true*/
35
+ (function () {
36
+ 'use strict';
37
+
38
+ var Syntax,
39
+ Precedence,
40
+ BinaryPrecedence,
41
+ Regex,
42
+ VisitorKeys,
43
+ VisitorOption,
44
+ SourceNode,
45
+ isArray,
46
+ base,
47
+ indent,
48
+ json,
49
+ renumber,
50
+ hexadecimal,
51
+ quotes,
52
+ escapeless,
53
+ newline,
54
+ space,
55
+ parentheses,
56
+ semicolons,
57
+ safeConcatenation,
58
+ directive,
59
+ extra,
60
+ parse,
61
+ sourceMap,
62
+ traverse;
63
+
64
+ traverse = require('estraverse').traverse;
65
+
66
+ Syntax = {
67
+ AssignmentExpression: 'AssignmentExpression',
68
+ ArrayExpression: 'ArrayExpression',
69
+ ArrayPattern: 'ArrayPattern',
70
+ BlockStatement: 'BlockStatement',
71
+ BinaryExpression: 'BinaryExpression',
72
+ BreakStatement: 'BreakStatement',
73
+ CallExpression: 'CallExpression',
74
+ CatchClause: 'CatchClause',
75
+ ComprehensionBlock: 'ComprehensionBlock',
76
+ ComprehensionExpression: 'ComprehensionExpression',
77
+ ConditionalExpression: 'ConditionalExpression',
78
+ ContinueStatement: 'ContinueStatement',
79
+ DirectiveStatement: 'DirectiveStatement',
80
+ DoWhileStatement: 'DoWhileStatement',
81
+ DebuggerStatement: 'DebuggerStatement',
82
+ EmptyStatement: 'EmptyStatement',
83
+ ExpressionStatement: 'ExpressionStatement',
84
+ ForStatement: 'ForStatement',
85
+ ForInStatement: 'ForInStatement',
86
+ FunctionDeclaration: 'FunctionDeclaration',
87
+ FunctionExpression: 'FunctionExpression',
88
+ Identifier: 'Identifier',
89
+ IfStatement: 'IfStatement',
90
+ Literal: 'Literal',
91
+ LabeledStatement: 'LabeledStatement',
92
+ LogicalExpression: 'LogicalExpression',
93
+ MemberExpression: 'MemberExpression',
94
+ NewExpression: 'NewExpression',
95
+ ObjectExpression: 'ObjectExpression',
96
+ ObjectPattern: 'ObjectPattern',
97
+ Program: 'Program',
98
+ Property: 'Property',
99
+ ReturnStatement: 'ReturnStatement',
100
+ SequenceExpression: 'SequenceExpression',
101
+ SwitchStatement: 'SwitchStatement',
102
+ SwitchCase: 'SwitchCase',
103
+ ThisExpression: 'ThisExpression',
104
+ ThrowStatement: 'ThrowStatement',
105
+ TryStatement: 'TryStatement',
106
+ UnaryExpression: 'UnaryExpression',
107
+ UpdateExpression: 'UpdateExpression',
108
+ VariableDeclaration: 'VariableDeclaration',
109
+ VariableDeclarator: 'VariableDeclarator',
110
+ WhileStatement: 'WhileStatement',
111
+ WithStatement: 'WithStatement',
112
+ YieldExpression: 'YieldExpression'
113
+
114
+ };
115
+
116
+ Precedence = {
117
+ Sequence: 0,
118
+ Assignment: 1,
119
+ Conditional: 2,
120
+ LogicalOR: 3,
121
+ LogicalAND: 4,
122
+ BitwiseOR: 5,
123
+ BitwiseXOR: 6,
124
+ BitwiseAND: 7,
125
+ Equality: 8,
126
+ Relational: 9,
127
+ BitwiseSHIFT: 10,
128
+ Additive: 11,
129
+ Multiplicative: 12,
130
+ Unary: 13,
131
+ Postfix: 14,
132
+ Call: 15,
133
+ New: 16,
134
+ Member: 17,
135
+ Primary: 18
136
+ };
137
+
138
+ BinaryPrecedence = {
139
+ '||': Precedence.LogicalOR,
140
+ '&&': Precedence.LogicalAND,
141
+ '|': Precedence.BitwiseOR,
142
+ '^': Precedence.BitwiseXOR,
143
+ '&': Precedence.BitwiseAND,
144
+ '==': Precedence.Equality,
145
+ '!=': Precedence.Equality,
146
+ '===': Precedence.Equality,
147
+ '!==': Precedence.Equality,
148
+ 'is': Precedence.Equality,
149
+ 'isnt': Precedence.Equality,
150
+ '<': Precedence.Relational,
151
+ '>': Precedence.Relational,
152
+ '<=': Precedence.Relational,
153
+ '>=': Precedence.Relational,
154
+ 'in': Precedence.Relational,
155
+ 'instanceof': Precedence.Relational,
156
+ '<<': Precedence.BitwiseSHIFT,
157
+ '>>': Precedence.BitwiseSHIFT,
158
+ '>>>': Precedence.BitwiseSHIFT,
159
+ '+': Precedence.Additive,
160
+ '-': Precedence.Additive,
161
+ '*': Precedence.Multiplicative,
162
+ '%': Precedence.Multiplicative,
163
+ '/': Precedence.Multiplicative
164
+ };
165
+
166
+ Regex = {
167
+ NonAsciiIdentifierPart: new RegExp('[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]')
168
+ };
169
+
170
+ function getDefaultOptions() {
171
+ // default options
172
+ return {
173
+ indent: null,
174
+ base: null,
175
+ parse: null,
176
+ comment: false,
177
+ format: {
178
+ indent: {
179
+ style: ' ',
180
+ base: 0,
181
+ adjustMultilineComment: false
182
+ },
183
+ json: false,
184
+ renumber: false,
185
+ hexadecimal: false,
186
+ quotes: 'single',
187
+ escapeless: false,
188
+ compact: false,
189
+ parentheses: true,
190
+ semicolons: true,
191
+ safeConcatenation: false
192
+ },
193
+ moz: {
194
+ starlessGenerator: false,
195
+ parenthesizedComprehensionBlock: false
196
+ },
197
+ sourceMap: null,
198
+ sourceMapRoot: null,
199
+ sourceMapWithCode: false,
200
+ directive: false,
201
+ verbatim: null
202
+ };
203
+ }
204
+
205
+ function stringToArray(str) {
206
+ var length = str.length,
207
+ result = [],
208
+ i;
209
+ for (i = 0; i < length; i += 1) {
210
+ result[i] = str.charAt(i);
211
+ }
212
+ return result;
213
+ }
214
+
215
+ function stringRepeat(str, num) {
216
+ var result = '';
217
+
218
+ for (num |= 0; num > 0; num >>>= 1, str += str) {
219
+ if (num & 1) {
220
+ result += str;
221
+ }
222
+ }
223
+
224
+ return result;
225
+ }
226
+
227
+ isArray = Array.isArray;
228
+ if (!isArray) {
229
+ isArray = function isArray(array) {
230
+ return Object.prototype.toString.call(array) === '[object Array]';
231
+ };
232
+ }
233
+
234
+ // Fallback for the non SourceMap environment
235
+ function SourceNodeMock(line, column, filename, chunk) {
236
+ var result = [];
237
+
238
+ function flatten(input) {
239
+ var i, iz;
240
+ if (isArray(input)) {
241
+ for (i = 0, iz = input.length; i < iz; ++i) {
242
+ flatten(input[i]);
243
+ }
244
+ } else if (input instanceof SourceNodeMock) {
245
+ result.push(input);
246
+ } else if (typeof input === 'string' && input) {
247
+ result.push(input);
248
+ }
249
+ }
250
+
251
+ flatten(chunk);
252
+ this.children = result;
253
+ }
254
+
255
+ SourceNodeMock.prototype.toString = function toString() {
256
+ var res = '', i, iz, node;
257
+ for (i = 0, iz = this.children.length; i < iz; ++i) {
258
+ node = this.children[i];
259
+ if (node instanceof SourceNodeMock) {
260
+ res += node.toString();
261
+ } else {
262
+ res += node;
263
+ }
264
+ }
265
+ return res;
266
+ };
267
+
268
+ SourceNodeMock.prototype.replaceRight = function replaceRight(pattern, replacement) {
269
+ var last = this.children[this.children.length - 1];
270
+ if (last instanceof SourceNodeMock) {
271
+ last.replaceRight(pattern, replacement);
272
+ } else if (typeof last === 'string') {
273
+ this.children[this.children.length - 1] = last.replace(pattern, replacement);
274
+ } else {
275
+ this.children.push(''.replace(pattern, replacement));
276
+ }
277
+ return this;
278
+ };
279
+
280
+ SourceNodeMock.prototype.join = function join(sep) {
281
+ var i, iz, result;
282
+ result = [];
283
+ iz = this.children.length;
284
+ if (iz > 0) {
285
+ for (i = 0, iz -= 1; i < iz; ++i) {
286
+ result.push(this.children[i], sep);
287
+ }
288
+ result.push(this.children[iz]);
289
+ this.children = result;
290
+ }
291
+ return this;
292
+ };
293
+
294
+ function hasLineTerminator(str) {
295
+ return (/[\r\n]/g).test(str);
296
+ }
297
+
298
+ function endsWithLineTerminator(str) {
299
+ var ch = str.charAt(str.length - 1);
300
+ return ch === '\r' || ch === '\n';
301
+ }
302
+
303
+ function shallowCopy(obj) {
304
+ var ret = {}, key;
305
+ for (key in obj) {
306
+ if (obj.hasOwnProperty(key)) {
307
+ ret[key] = obj[key];
308
+ }
309
+ }
310
+ return ret;
311
+ }
312
+
313
+ function deepCopy(obj) {
314
+ var ret = {}, key, val;
315
+ for (key in obj) {
316
+ if (obj.hasOwnProperty(key)) {
317
+ val = obj[key];
318
+ if (typeof val === 'object' && val !== null) {
319
+ ret[key] = deepCopy(val);
320
+ } else {
321
+ ret[key] = val;
322
+ }
323
+ }
324
+ }
325
+ return ret;
326
+ }
327
+
328
+ function updateDeeply(target, override) {
329
+ var key, val;
330
+
331
+ function isHashObject(target) {
332
+ return typeof target === 'object' && target instanceof Object && !(target instanceof RegExp);
333
+ }
334
+
335
+ for (key in override) {
336
+ if (override.hasOwnProperty(key)) {
337
+ val = override[key];
338
+ if (isHashObject(val)) {
339
+ if (isHashObject(target[key])) {
340
+ updateDeeply(target[key], val);
341
+ } else {
342
+ target[key] = updateDeeply({}, val);
343
+ }
344
+ } else {
345
+ target[key] = val;
346
+ }
347
+ }
348
+ }
349
+ return target;
350
+ }
351
+
352
+ function generateNumber(value) {
353
+ var result, point, temp, exponent, pos;
354
+
355
+ if (value !== value) {
356
+ throw new Error('Numeric literal whose value is NaN');
357
+ }
358
+ if (value < 0 || (value === 0 && 1 / value < 0)) {
359
+ throw new Error('Numeric literal whose value is negative');
360
+ }
361
+
362
+ if (value === 1 / 0) {
363
+ return json ? 'null' : renumber ? '1e400' : '1e+400';
364
+ }
365
+
366
+ result = '' + value;
367
+ if (!renumber || result.length < 3) {
368
+ return result;
369
+ }
370
+
371
+ point = result.indexOf('.');
372
+ if (!json && result.charAt(0) === '0' && point === 1) {
373
+ point = 0;
374
+ result = result.slice(1);
375
+ }
376
+ temp = result;
377
+ result = result.replace('e+', 'e');
378
+ exponent = 0;
379
+ if ((pos = temp.indexOf('e')) > 0) {
380
+ exponent = +temp.slice(pos + 1);
381
+ temp = temp.slice(0, pos);
382
+ }
383
+ if (point >= 0) {
384
+ exponent -= temp.length - point - 1;
385
+ temp = +(temp.slice(0, point) + temp.slice(point + 1)) + '';
386
+ }
387
+ pos = 0;
388
+ while (temp.charAt(temp.length + pos - 1) === '0') {
389
+ pos -= 1;
390
+ }
391
+ if (pos !== 0) {
392
+ exponent -= pos;
393
+ temp = temp.slice(0, pos);
394
+ }
395
+ if (exponent !== 0) {
396
+ temp += 'e' + exponent;
397
+ }
398
+ if ((temp.length < result.length ||
399
+ (hexadecimal && value > 1e12 && Math.floor(value) === value && (temp = '0x' + value.toString(16)).length < result.length)) &&
400
+ +temp === value) {
401
+ result = temp;
402
+ }
403
+
404
+ return result;
405
+ }
406
+
407
+ // Generate valid RegExp expression.
408
+ // This function is based on https://github.com/Constellation/iv Engine
409
+
410
+ function escapeRegExpCharacter(ch, previousIsBackslash) {
411
+ // not handling '\' and handling \u2028 or \u2029 to unicode escape sequence
412
+ if ((ch & ~1) === 0x2028) {
413
+ return (previousIsBackslash ? 'u' : '\\u') + ((ch === 0x2028) ? '2028' : '2029');
414
+ } else if (ch === 10 || ch === 13) { // \n, \r
415
+ return (previousIsBackslash ? '' : '\\') + ((ch === 10) ? 'n' : 'r');
416
+ }
417
+ return String.fromCharCode(ch);
418
+ }
419
+
420
+ function generateRegExp(reg) {
421
+ var match, result, flags, i, iz, ch, characterInBrack, previousIsBackslash;
422
+
423
+ result = reg.toString();
424
+
425
+ if (reg.source) {
426
+ // extract flag from toString result
427
+ match = result.match(/\/([^/]*)$/);
428
+ if (!match) {
429
+ return result;
430
+ }
431
+
432
+ flags = match[1];
433
+ result = '';
434
+
435
+ characterInBrack = false;
436
+ previousIsBackslash = false;
437
+ for (i = 0, iz = reg.source.length; i < iz; ++i) {
438
+ ch = reg.source.charCodeAt(i);
439
+
440
+ if (!previousIsBackslash) {
441
+ if (characterInBrack) {
442
+ if (ch === 93) { // ]
443
+ characterInBrack = false;
444
+ }
445
+ } else {
446
+ if (ch === 47) { // /
447
+ result += '\\';
448
+ } else if (ch === 91) { // [
449
+ characterInBrack = true;
450
+ }
451
+ }
452
+ result += escapeRegExpCharacter(ch, previousIsBackslash);
453
+ previousIsBackslash = ch === 92; // \
454
+ } else {
455
+ // if new RegExp("\\\n') is provided, create /\n/
456
+ result += escapeRegExpCharacter(ch, previousIsBackslash);
457
+ // prevent like /\\[/]/
458
+ previousIsBackslash = false;
459
+ }
460
+ }
461
+
462
+ return '/' + result + '/' + flags;
463
+ }
464
+
465
+ return result;
466
+ }
467
+
468
+ function escapeAllowedCharacter(ch, next) {
469
+ var code = ch.charCodeAt(0), hex = code.toString(16), result = '\\';
470
+
471
+ switch (ch) {
472
+ case '\b':
473
+ result += 'b';
474
+ break;
475
+ case '\f':
476
+ result += 'f';
477
+ break;
478
+ case '\t':
479
+ result += 't';
480
+ break;
481
+ default:
482
+ if (json || code > 0xff) {
483
+ result += 'u' + '0000'.slice(hex.length) + hex;
484
+ } else if (ch === '\u0000' && '0123456789'.indexOf(next) < 0) {
485
+ result += '0';
486
+ } else if (ch === '\x0B') { // '\v'
487
+ result += 'x0B';
488
+ } else {
489
+ result += 'x' + '00'.slice(hex.length) + hex;
490
+ }
491
+ break;
492
+ }
493
+
494
+ return result;
495
+ }
496
+
497
+ function escapeDisallowedCharacter(ch) {
498
+ var result = '\\';
499
+ switch (ch) {
500
+ case '\\':
501
+ result += '\\';
502
+ break;
503
+ case '\n':
504
+ result += 'n';
505
+ break;
506
+ case '\r':
507
+ result += 'r';
508
+ break;
509
+ case '\u2028':
510
+ result += 'u2028';
511
+ break;
512
+ case '\u2029':
513
+ result += 'u2029';
514
+ break;
515
+ default:
516
+ throw new Error('Incorrectly classified character');
517
+ }
518
+
519
+ return result;
520
+ }
521
+
522
+ function escapeDirective(str) {
523
+ var i, iz, ch, single, buf, quote;
524
+
525
+ buf = str;
526
+ if (typeof buf[0] === 'undefined') {
527
+ buf = stringToArray(buf);
528
+ }
529
+
530
+ quote = quotes === 'double' ? '"' : '\'';
531
+ for (i = 0, iz = buf.length; i < iz; i += 1) {
532
+ ch = buf[i];
533
+ if (ch === '\'') {
534
+ quote = '"';
535
+ break;
536
+ } else if (ch === '"') {
537
+ quote = '\'';
538
+ break;
539
+ } else if (ch === '\\') {
540
+ i += 1;
541
+ }
542
+ }
543
+
544
+ return quote + str + quote;
545
+ }
546
+
547
+ function escapeString(str) {
548
+ var result = '', i, len, ch, next, singleQuotes = 0, doubleQuotes = 0, single;
549
+
550
+ if (typeof str[0] === 'undefined') {
551
+ str = stringToArray(str);
552
+ }
553
+
554
+ for (i = 0, len = str.length; i < len; i += 1) {
555
+ ch = str[i];
556
+ if (ch === '\'') {
557
+ singleQuotes += 1;
558
+ } else if (ch === '"') {
559
+ doubleQuotes += 1;
560
+ } else if (ch === '/' && json) {
561
+ result += '\\';
562
+ } else if ('\\\n\r\u2028\u2029'.indexOf(ch) >= 0) {
563
+ result += escapeDisallowedCharacter(ch);
564
+ continue;
565
+ } else if ((json && ch < ' ') || !(json || escapeless || (ch >= ' ' && ch <= '~'))) {
566
+ result += escapeAllowedCharacter(ch, str[i + 1]);
567
+ continue;
568
+ }
569
+ result += ch;
570
+ }
571
+
572
+ single = !(quotes === 'double' || (quotes === 'auto' && doubleQuotes < singleQuotes));
573
+ str = result;
574
+ result = single ? '\'' : '"';
575
+
576
+ if (typeof str[0] === 'undefined') {
577
+ str = stringToArray(str);
578
+ }
579
+
580
+ for (i = 0, len = str.length; i < len; i += 1) {
581
+ ch = str[i];
582
+ if ((ch === '\'' && single) || (ch === '"' && !single)) {
583
+ result += '\\';
584
+ }
585
+ result += ch;
586
+ }
587
+
588
+ return result + (single ? '\'' : '"');
589
+ }
590
+
591
+ function isWhiteSpace(ch) {
592
+ // Use `\x0B` instead of `\v` for IE < 9 compatibility
593
+ return '\t\x0B\f \xa0'.indexOf(ch) >= 0 || (ch.charCodeAt(0) >= 0x1680 && '\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff'.indexOf(ch) >= 0);
594
+ }
595
+
596
+ function isLineTerminator(ch) {
597
+ return '\n\r\u2028\u2029'.indexOf(ch) >= 0;
598
+ }
599
+
600
+ function isIdentifierPart(ch) {
601
+ return (ch === '$') || (ch === '_') || (ch === '\\') ||
602
+ (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') ||
603
+ ((ch >= '0') && (ch <= '9')) ||
604
+ ((ch.charCodeAt(0) >= 0x80) && Regex.NonAsciiIdentifierPart.test(ch));
605
+ }
606
+
607
+ function toSourceNode(generated, node) {
608
+ if (node == null) {
609
+ if (generated instanceof SourceNode) {
610
+ return generated;
611
+ } else {
612
+ node = {};
613
+ }
614
+ }
615
+ if (node.loc == null) {
616
+ return new SourceNode(null, null, sourceMap, generated);
617
+ }
618
+ return new SourceNode(node.loc.start.line, node.loc.start.column, (sourceMap === true ? node.loc.source || null : sourceMap), generated);
619
+ }
620
+
621
+ function join(left, right) {
622
+ var leftSource = toSourceNode(left).toString(),
623
+ rightSource = toSourceNode(right).toString(),
624
+ leftChar = leftSource.charAt(leftSource.length - 1),
625
+ rightChar = rightSource.charAt(0);
626
+
627
+ if (((leftChar === '+' || leftChar === '-') && leftChar === rightChar) || (isIdentifierPart(leftChar) && isIdentifierPart(rightChar))) {
628
+ return [left, ' ', right];
629
+ } else if (isWhiteSpace(leftChar) || isLineTerminator(leftChar) || isWhiteSpace(rightChar) || isLineTerminator(rightChar)) {
630
+ return [left, right];
631
+ }
632
+ return [left, space, right];
633
+ }
634
+
635
+ function addIndent(stmt) {
636
+ return [base, stmt];
637
+ }
638
+
639
+ function withIndent(fn) {
640
+ var previousBase, result;
641
+ previousBase = base;
642
+ base += indent;
643
+ result = fn.call(this, base);
644
+ base = previousBase;
645
+ return result;
646
+ }
647
+
648
+ function calculateSpaces(str) {
649
+ var i;
650
+ for (i = str.length - 1; i >= 0; i -= 1) {
651
+ if (isLineTerminator(str.charAt(i))) {
652
+ break;
653
+ }
654
+ }
655
+ return (str.length - 1) - i;
656
+ }
657
+
658
+ function adjustMultilineComment(value, specialBase) {
659
+ var array, i, len, line, j, ch, spaces, previousBase;
660
+
661
+ array = value.split(/\r\n|[\r\n]/);
662
+ spaces = Number.MAX_VALUE;
663
+
664
+ // first line doesn't have indentation
665
+ for (i = 1, len = array.length; i < len; i += 1) {
666
+ line = array[i];
667
+ j = 0;
668
+ while (j < line.length && isWhiteSpace(line[j])) {
669
+ j += 1;
670
+ }
671
+ if (spaces > j) {
672
+ spaces = j;
673
+ }
674
+ }
675
+
676
+ if (typeof specialBase !== 'undefined') {
677
+ // pattern like
678
+ // {
679
+ // var t = 20; /*
680
+ // * this is comment
681
+ // */
682
+ // }
683
+ previousBase = base;
684
+ if (array[1][spaces] === '*') {
685
+ specialBase += ' ';
686
+ }
687
+ base = specialBase;
688
+ } else {
689
+ if (spaces & 1) {
690
+ // /*
691
+ // *
692
+ // */
693
+ // If spaces are odd number, above pattern is considered.
694
+ // We waste 1 space.
695
+ spaces -= 1;
696
+ }
697
+ previousBase = base;
698
+ }
699
+
700
+ for (i = 1, len = array.length; i < len; i += 1) {
701
+ array[i] = toSourceNode(addIndent(array[i].slice(spaces))).join('');
702
+ }
703
+
704
+ base = previousBase;
705
+
706
+ return array.join('\n');
707
+ }
708
+
709
+ function generateComment(comment, specialBase) {
710
+ if (comment.type === 'Line') {
711
+ if (endsWithLineTerminator(comment.value)) {
712
+ return '//' + comment.value;
713
+ } else {
714
+ // Always use LineTerminator
715
+ return '//' + comment.value + '\n';
716
+ }
717
+ }
718
+ if (extra.format.indent.adjustMultilineComment && /[\n\r]/.test(comment.value)) {
719
+ return adjustMultilineComment('/*' + comment.value + '*/', specialBase);
720
+ }
721
+ return '/*' + comment.value + '*/';
722
+ }
723
+
724
+ function addCommentsToStatement(stmt, result) {
725
+ var i, len, comment, save, node, tailingToStatement, specialBase, fragment;
726
+
727
+ if (stmt.leadingComments && stmt.leadingComments.length > 0) {
728
+ save = result;
729
+
730
+ comment = stmt.leadingComments[0];
731
+ result = [];
732
+ if (safeConcatenation && stmt.type === Syntax.Program && stmt.body.length === 0) {
733
+ result.push('\n');
734
+ }
735
+ result.push(generateComment(comment));
736
+ if (!endsWithLineTerminator(toSourceNode(result).toString())) {
737
+ result.push('\n');
738
+ }
739
+
740
+ for (i = 1, len = stmt.leadingComments.length; i < len; i += 1) {
741
+ comment = stmt.leadingComments[i];
742
+ fragment = [generateComment(comment)];
743
+ if (!endsWithLineTerminator(toSourceNode(fragment).toString())) {
744
+ fragment.push('\n');
745
+ }
746
+ result.push(addIndent(fragment));
747
+ }
748
+
749
+ result.push(addIndent(save));
750
+ }
751
+
752
+ if (stmt.trailingComments) {
753
+ tailingToStatement = !endsWithLineTerminator(toSourceNode(result).toString());
754
+ specialBase = stringRepeat(' ', calculateSpaces(toSourceNode([base, result, indent]).toString()));
755
+ for (i = 0, len = stmt.trailingComments.length; i < len; i += 1) {
756
+ comment = stmt.trailingComments[i];
757
+ if (tailingToStatement) {
758
+ // We assume target like following script
759
+ //
760
+ // var t = 20; /**
761
+ // * This is comment of t
762
+ // */
763
+ if (i === 0) {
764
+ // first case
765
+ result = [result, indent];
766
+ } else {
767
+ result = [result, specialBase];
768
+ }
769
+ result.push(generateComment(comment, specialBase));
770
+ } else {
771
+ result = [result, addIndent(generateComment(comment))];
772
+ }
773
+ if (i !== len - 1 && !endsWithLineTerminator(toSourceNode(result).toString())) {
774
+ result = [result, '\n'];
775
+ }
776
+ }
777
+ }
778
+
779
+ return result;
780
+ }
781
+
782
+ function parenthesize(text, current, should) {
783
+ if (current < should) {
784
+ return ['(', text, ')'];
785
+ }
786
+ return text;
787
+ }
788
+
789
+ function maybeBlock(stmt, semicolonOptional, functionBody) {
790
+ var result, noLeadingComment;
791
+
792
+ noLeadingComment = !extra.comment || !stmt.leadingComments;
793
+
794
+ if (stmt.type === Syntax.BlockStatement && noLeadingComment) {
795
+ return [space, generateStatement(stmt, { functionBody: functionBody })];
796
+ }
797
+
798
+ if (stmt.type === Syntax.EmptyStatement && noLeadingComment) {
799
+ return ';';
800
+ }
801
+
802
+ withIndent(function () {
803
+ result = [newline, addIndent(generateStatement(stmt, { semicolonOptional: semicolonOptional, functionBody: functionBody }))];
804
+ });
805
+
806
+ return result;
807
+ }
808
+
809
+ function maybeBlockSuffix(stmt, result) {
810
+ var ends = endsWithLineTerminator(toSourceNode(result).toString());
811
+ if (stmt.type === Syntax.BlockStatement && (!extra.comment || !stmt.leadingComments) && !ends) {
812
+ return [result, space];
813
+ }
814
+ if (ends) {
815
+ return [result, base];
816
+ }
817
+ return [result, newline, base];
818
+ }
819
+
820
+ function generateVerbatim(expr, option) {
821
+ var i, result;
822
+ result = expr[extra.verbatim].split(/\r\n|\n/);
823
+ for (i = 1; i < result.length; i++) {
824
+ result[i] = newline + base + result[i];
825
+ }
826
+
827
+ result = parenthesize(result, Precedence.Sequence, option.precedence);
828
+ return toSourceNode(result, expr);
829
+ }
830
+
831
+ function generateFunctionBody(node) {
832
+ var result, i, len, expr;
833
+ result = ['('];
834
+ for (i = 0, len = node.params.length; i < len; i += 1) {
835
+ result.push(node.params[i].name);
836
+ if (i + 1 < len) {
837
+ result.push(',' + space);
838
+ }
839
+ }
840
+ result.push(')');
841
+
842
+ if (node.expression) {
843
+ result.push(space);
844
+ expr = generateExpression(node.body, {
845
+ precedence: Precedence.Assignment,
846
+ allowIn: true,
847
+ allowCall: true
848
+ });
849
+ if (expr.toString().charAt(0) === '{') {
850
+ expr = ['(', expr, ')'];
851
+ }
852
+ result.push(expr);
853
+ } else {
854
+ result.push(maybeBlock(node.body, false, true));
855
+ }
856
+ return result;
857
+ }
858
+
859
+ function generateExpression(expr, option) {
860
+ var result, precedence, type, currentPrecedence, i, len, raw, fragment, multiline, leftChar, leftSource, rightChar, rightSource, allowIn, allowCall, allowUnparenthesizedNew, property, key, value;
861
+
862
+ precedence = option.precedence;
863
+ allowIn = option.allowIn;
864
+ allowCall = option.allowCall;
865
+ type = expr.type || option.type;
866
+
867
+ if (extra.verbatim && expr.hasOwnProperty(extra.verbatim)) {
868
+ return generateVerbatim(expr, option);
869
+ }
870
+
871
+ switch (type) {
872
+ case Syntax.SequenceExpression:
873
+ result = [];
874
+ allowIn |= (Precedence.Sequence < precedence);
875
+ for (i = 0, len = expr.expressions.length; i < len; i += 1) {
876
+ result.push(generateExpression(expr.expressions[i], {
877
+ precedence: Precedence.Assignment,
878
+ allowIn: allowIn,
879
+ allowCall: true
880
+ }));
881
+ if (i + 1 < len) {
882
+ result.push(',' + space);
883
+ }
884
+ }
885
+ result = parenthesize(result, Precedence.Sequence, precedence);
886
+ break;
887
+
888
+ case Syntax.AssignmentExpression:
889
+ allowIn |= (Precedence.Assignment < precedence);
890
+ result = parenthesize(
891
+ [
892
+ generateExpression(expr.left, {
893
+ precedence: Precedence.Call,
894
+ allowIn: allowIn,
895
+ allowCall: true
896
+ }),
897
+ space + expr.operator + space,
898
+ generateExpression(expr.right, {
899
+ precedence: Precedence.Assignment,
900
+ allowIn: allowIn,
901
+ allowCall: true
902
+ })
903
+ ],
904
+ Precedence.Assignment,
905
+ precedence
906
+ );
907
+ break;
908
+
909
+ case Syntax.ConditionalExpression:
910
+ allowIn |= (Precedence.Conditional < precedence);
911
+ result = parenthesize(
912
+ [
913
+ generateExpression(expr.test, {
914
+ precedence: Precedence.LogicalOR,
915
+ allowIn: allowIn,
916
+ allowCall: true
917
+ }),
918
+ space + '?' + space,
919
+ generateExpression(expr.consequent, {
920
+ precedence: Precedence.Assignment,
921
+ allowIn: allowIn,
922
+ allowCall: true
923
+ }),
924
+ space + ':' + space,
925
+ generateExpression(expr.alternate, {
926
+ precedence: Precedence.Assignment,
927
+ allowIn: allowIn,
928
+ allowCall: true
929
+ })
930
+ ],
931
+ Precedence.Conditional,
932
+ precedence
933
+ );
934
+ break;
935
+
936
+ case Syntax.LogicalExpression:
937
+ case Syntax.BinaryExpression:
938
+ currentPrecedence = BinaryPrecedence[expr.operator];
939
+
940
+ allowIn |= (currentPrecedence < precedence);
941
+
942
+ fragment = generateExpression(expr.left, {
943
+ precedence: currentPrecedence,
944
+ allowIn: allowIn,
945
+ allowCall: true
946
+ });
947
+
948
+ leftSource = fragment.toString();
949
+
950
+ if (leftSource.charAt(leftSource.length - 1) === '/' && isIdentifierPart(expr.operator.charAt(0))) {
951
+ result = [fragment, ' ', expr.operator];
952
+ } else {
953
+ result = join(fragment, expr.operator);
954
+ }
955
+
956
+ fragment = generateExpression(expr.right, {
957
+ precedence: currentPrecedence + 1,
958
+ allowIn: allowIn,
959
+ allowCall: true
960
+ });
961
+
962
+ if (expr.operator === '/' && fragment.toString().charAt(0) === '/') {
963
+ // If '/' concats with '/', it is interpreted as comment start
964
+ result.push(' ', fragment);
965
+ } else {
966
+ result = join(result, fragment);
967
+ }
968
+
969
+ if (expr.operator === 'in' && !allowIn) {
970
+ result = ['(', result, ')'];
971
+ } else {
972
+ result = parenthesize(result, currentPrecedence, precedence);
973
+ }
974
+
975
+ break;
976
+
977
+ case Syntax.CallExpression:
978
+ result = [generateExpression(expr.callee, {
979
+ precedence: Precedence.Call,
980
+ allowIn: true,
981
+ allowCall: true,
982
+ allowUnparenthesizedNew: false
983
+ })];
984
+
985
+ result.push('(');
986
+ for (i = 0, len = expr['arguments'].length; i < len; i += 1) {
987
+ result.push(generateExpression(expr['arguments'][i], {
988
+ precedence: Precedence.Assignment,
989
+ allowIn: true,
990
+ allowCall: true
991
+ }));
992
+ if (i + 1 < len) {
993
+ result.push(',' + space);
994
+ }
995
+ }
996
+ result.push(')');
997
+
998
+ if (!allowCall) {
999
+ result = ['(', result, ')'];
1000
+ } else {
1001
+ result = parenthesize(result, Precedence.Call, precedence);
1002
+ }
1003
+ break;
1004
+
1005
+ case Syntax.NewExpression:
1006
+ len = expr['arguments'].length;
1007
+ allowUnparenthesizedNew = option.allowUnparenthesizedNew === undefined || option.allowUnparenthesizedNew;
1008
+
1009
+ result = join(
1010
+ 'new',
1011
+ generateExpression(expr.callee, {
1012
+ precedence: Precedence.New,
1013
+ allowIn: true,
1014
+ allowCall: false,
1015
+ allowUnparenthesizedNew: allowUnparenthesizedNew && !parentheses && len === 0
1016
+ })
1017
+ );
1018
+
1019
+ if (!allowUnparenthesizedNew || parentheses || len > 0) {
1020
+ result.push('(');
1021
+ for (i = 0; i < len; i += 1) {
1022
+ result.push(generateExpression(expr['arguments'][i], {
1023
+ precedence: Precedence.Assignment,
1024
+ allowIn: true,
1025
+ allowCall: true
1026
+ }));
1027
+ if (i + 1 < len) {
1028
+ result.push(',' + space);
1029
+ }
1030
+ }
1031
+ result.push(')');
1032
+ }
1033
+
1034
+ result = parenthesize(result, Precedence.New, precedence);
1035
+ break;
1036
+
1037
+ case Syntax.MemberExpression:
1038
+ result = [generateExpression(expr.object, {
1039
+ precedence: Precedence.Call,
1040
+ allowIn: true,
1041
+ allowCall: allowCall,
1042
+ allowUnparenthesizedNew: false
1043
+ })];
1044
+
1045
+ if (expr.computed) {
1046
+ result.push('[', generateExpression(expr.property, {
1047
+ precedence: Precedence.Sequence,
1048
+ allowIn: true,
1049
+ allowCall: allowCall
1050
+ }), ']');
1051
+ } else {
1052
+ if (expr.object.type === Syntax.Literal && typeof expr.object.value === 'number') {
1053
+ fragment = toSourceNode(result).toString();
1054
+ if (fragment.indexOf('.') < 0) {
1055
+ if (!/[eExX]/.test(fragment) &&
1056
+ !(fragment.length >= 2 && fragment.charCodeAt(0) === 48)) { // '0'
1057
+ result.push('.');
1058
+ }
1059
+ }
1060
+ }
1061
+ result.push('.' + expr.property.name);
1062
+ }
1063
+
1064
+ result = parenthesize(result, Precedence.Member, precedence);
1065
+ break;
1066
+
1067
+ case Syntax.UnaryExpression:
1068
+ fragment = generateExpression(expr.argument, {
1069
+ precedence: Precedence.Unary,
1070
+ allowIn: true,
1071
+ allowCall: true
1072
+ });
1073
+
1074
+ if (space === '') {
1075
+ result = join(expr.operator, fragment);
1076
+ } else {
1077
+ result = [expr.operator];
1078
+ if (expr.operator.length > 2) {
1079
+ // delete, void, typeof
1080
+ // get `typeof []`, not `typeof[]`
1081
+ result = join(result, fragment);
1082
+ } else {
1083
+ // Prevent inserting spaces between operator and argument if it is unnecessary
1084
+ // like, `!cond`
1085
+ leftSource = toSourceNode(result).toString();
1086
+ leftChar = leftSource.charAt(leftSource.length - 1);
1087
+ rightChar = fragment.toString().charAt(0);
1088
+
1089
+ if (((leftChar === '+' || leftChar === '-') && leftChar === rightChar) || (isIdentifierPart(leftChar) && isIdentifierPart(rightChar))) {
1090
+ result.push(' ', fragment);
1091
+ } else {
1092
+ result.push(fragment);
1093
+ }
1094
+ }
1095
+ }
1096
+ result = parenthesize(result, Precedence.Unary, precedence);
1097
+ break;
1098
+
1099
+ case Syntax.YieldExpression:
1100
+ if (expr.delegate) {
1101
+ result = 'yield*';
1102
+ } else {
1103
+ result = 'yield';
1104
+ }
1105
+ if (expr.argument) {
1106
+ result = join(
1107
+ result,
1108
+ generateExpression(expr.argument, {
1109
+ precedence: Precedence.Assignment,
1110
+ allowIn: true,
1111
+ allowCall: true
1112
+ })
1113
+ );
1114
+ }
1115
+ break;
1116
+
1117
+ case Syntax.UpdateExpression:
1118
+ if (expr.prefix) {
1119
+ result = parenthesize(
1120
+ [
1121
+ expr.operator,
1122
+ generateExpression(expr.argument, {
1123
+ precedence: Precedence.Unary,
1124
+ allowIn: true,
1125
+ allowCall: true
1126
+ })
1127
+ ],
1128
+ Precedence.Unary,
1129
+ precedence
1130
+ );
1131
+ } else {
1132
+ result = parenthesize(
1133
+ [
1134
+ generateExpression(expr.argument, {
1135
+ precedence: Precedence.Postfix,
1136
+ allowIn: true,
1137
+ allowCall: true
1138
+ }),
1139
+ expr.operator
1140
+ ],
1141
+ Precedence.Postfix,
1142
+ precedence
1143
+ );
1144
+ }
1145
+ break;
1146
+
1147
+ case Syntax.FunctionExpression:
1148
+ result = 'function';
1149
+ if (expr.id) {
1150
+ result += ' ' + expr.id.name;
1151
+ } else {
1152
+ result += space;
1153
+ }
1154
+
1155
+ result = [result, generateFunctionBody(expr)];
1156
+ break;
1157
+
1158
+ case Syntax.ArrayPattern:
1159
+ case Syntax.ArrayExpression:
1160
+ if (!expr.elements.length) {
1161
+ result = '[]';
1162
+ break;
1163
+ }
1164
+ multiline = expr.elements.length > 1;
1165
+ result = ['[', multiline ? newline : ''];
1166
+ withIndent(function (indent) {
1167
+ for (i = 0, len = expr.elements.length; i < len; i += 1) {
1168
+ if (!expr.elements[i]) {
1169
+ if (multiline) {
1170
+ result.push(indent);
1171
+ }
1172
+ if (i + 1 === len) {
1173
+ result.push(',');
1174
+ }
1175
+ } else {
1176
+ result.push(multiline ? indent : '', generateExpression(expr.elements[i], {
1177
+ precedence: Precedence.Assignment,
1178
+ allowIn: true,
1179
+ allowCall: true
1180
+ }));
1181
+ }
1182
+ if (i + 1 < len) {
1183
+ result.push(',' + (multiline ? newline : space));
1184
+ }
1185
+ }
1186
+ });
1187
+ if (multiline && !endsWithLineTerminator(toSourceNode(result).toString())) {
1188
+ result.push(newline);
1189
+ }
1190
+ result.push(multiline ? base : '', ']');
1191
+ break;
1192
+
1193
+ case Syntax.Property:
1194
+ if (expr.kind === 'get' || expr.kind === 'set') {
1195
+ result = [
1196
+ expr.kind + ' ',
1197
+ generateExpression(expr.key, {
1198
+ precedence: Precedence.Sequence,
1199
+ allowIn: true,
1200
+ allowCall: true
1201
+ }),
1202
+ generateFunctionBody(expr.value)
1203
+ ];
1204
+ } else {
1205
+ if (expr.shorthand) {
1206
+ result = generateExpression(expr.key, {
1207
+ precedence: Precedence.Sequence,
1208
+ allowIn: true,
1209
+ allowCall: true
1210
+ });
1211
+ } else if (expr.method) {
1212
+ result = [];
1213
+ if (expr.value.generator) {
1214
+ result.push('*');
1215
+ }
1216
+ result.push(generateExpression(expr.key, {
1217
+ precedence: Precedence.Sequence,
1218
+ allowIn: true,
1219
+ allowCall: true
1220
+ }), generateFunctionBody(expr.value));
1221
+ } else {
1222
+ result = [
1223
+ generateExpression(expr.key, {
1224
+ precedence: Precedence.Sequence,
1225
+ allowIn: true,
1226
+ allowCall: true
1227
+ }),
1228
+ ':' + space,
1229
+ generateExpression(expr.value, {
1230
+ precedence: Precedence.Assignment,
1231
+ allowIn: true,
1232
+ allowCall: true
1233
+ })
1234
+ ];
1235
+ }
1236
+ }
1237
+ break;
1238
+
1239
+ case Syntax.ObjectExpression:
1240
+ if (!expr.properties.length) {
1241
+ result = '{}';
1242
+ break;
1243
+ }
1244
+ multiline = expr.properties.length > 1;
1245
+
1246
+ withIndent(function (indent) {
1247
+ fragment = generateExpression(expr.properties[0], {
1248
+ precedence: Precedence.Sequence,
1249
+ allowIn: true,
1250
+ allowCall: true,
1251
+ type: Syntax.Property
1252
+ });
1253
+ });
1254
+
1255
+ if (!multiline) {
1256
+ // issues 4
1257
+ // Do not transform from
1258
+ // dejavu.Class.declare({
1259
+ // method2: function () {}
1260
+ // });
1261
+ // to
1262
+ // dejavu.Class.declare({method2: function () {
1263
+ // }});
1264
+ if (!hasLineTerminator(toSourceNode(fragment).toString())) {
1265
+ result = [ '{', space, fragment, space, '}' ];
1266
+ break;
1267
+ }
1268
+ }
1269
+
1270
+ withIndent(function (indent) {
1271
+ result = [ '{', newline, indent, fragment ];
1272
+
1273
+ if (multiline) {
1274
+ result.push(',' + newline);
1275
+ for (i = 1, len = expr.properties.length; i < len; i += 1) {
1276
+ result.push(indent, generateExpression(expr.properties[i], {
1277
+ precedence: Precedence.Sequence,
1278
+ allowIn: true,
1279
+ allowCall: true,
1280
+ type: Syntax.Property
1281
+ }));
1282
+ if (i + 1 < len) {
1283
+ result.push(',' + newline);
1284
+ }
1285
+ }
1286
+ }
1287
+ });
1288
+
1289
+ if (!endsWithLineTerminator(toSourceNode(result).toString())) {
1290
+ result.push(newline);
1291
+ }
1292
+ result.push(base, '}');
1293
+ break;
1294
+
1295
+ case Syntax.ObjectPattern:
1296
+ if (!expr.properties.length) {
1297
+ result = '{}';
1298
+ break;
1299
+ }
1300
+
1301
+ multiline = false;
1302
+ if (expr.properties.length === 1) {
1303
+ property = expr.properties[0];
1304
+ if (property.value.type !== Syntax.Identifier) {
1305
+ multiline = true;
1306
+ }
1307
+ } else {
1308
+ for (i = 0, len = expr.properties.length; i < len; i += 1) {
1309
+ property = expr.properties[i];
1310
+ if (!property.shorthand) {
1311
+ multiline = true;
1312
+ break;
1313
+ }
1314
+ }
1315
+ }
1316
+ result = ['{', multiline ? newline : '' ];
1317
+
1318
+ withIndent(function (indent) {
1319
+ for (i = 0, len = expr.properties.length; i < len; i += 1) {
1320
+ result.push(multiline ? indent : '', generateExpression(expr.properties[i], {
1321
+ precedence: Precedence.Sequence,
1322
+ allowIn: true,
1323
+ allowCall: true
1324
+ }));
1325
+ if (i + 1 < len) {
1326
+ result.push(',' + (multiline ? newline : space));
1327
+ }
1328
+ }
1329
+ });
1330
+
1331
+ if (multiline && !endsWithLineTerminator(toSourceNode(result).toString())) {
1332
+ result.push(newline);
1333
+ }
1334
+ result.push(multiline ? base : '', '}');
1335
+ break;
1336
+
1337
+ case Syntax.ThisExpression:
1338
+ result = 'this';
1339
+ break;
1340
+
1341
+ case Syntax.Identifier:
1342
+ result = expr.name;
1343
+ break;
1344
+
1345
+ case Syntax.Literal:
1346
+ if (expr.hasOwnProperty('raw') && parse) {
1347
+ try {
1348
+ raw = parse(expr.raw).body[0].expression;
1349
+ if (raw.type === Syntax.Literal) {
1350
+ if (raw.value === expr.value) {
1351
+ result = expr.raw;
1352
+ break;
1353
+ }
1354
+ }
1355
+ } catch (e) {
1356
+ // not use raw property
1357
+ }
1358
+ }
1359
+
1360
+ if (expr.value === null) {
1361
+ result = 'null';
1362
+ break;
1363
+ }
1364
+
1365
+ if (typeof expr.value === 'string') {
1366
+ result = escapeString(expr.value);
1367
+ break;
1368
+ }
1369
+
1370
+ if (typeof expr.value === 'number') {
1371
+ result = generateNumber(expr.value);
1372
+ break;
1373
+ }
1374
+
1375
+ if (typeof expr.value === 'boolean') {
1376
+ result = expr.value ? 'true' : 'false';
1377
+ break;
1378
+ }
1379
+
1380
+ result = generateRegExp(expr.value);
1381
+ break;
1382
+
1383
+ case Syntax.ComprehensionExpression:
1384
+ result = [
1385
+ '[',
1386
+ generateExpression(expr.body, {
1387
+ precedence: Precedence.Assignment,
1388
+ allowIn: true,
1389
+ allowCall: true
1390
+ })
1391
+ ];
1392
+
1393
+ if (expr.blocks) {
1394
+ for (i = 0, len = expr.blocks.length; i < len; i += 1) {
1395
+ fragment = generateExpression(expr.blocks[i], {
1396
+ precedence: Precedence.Sequence,
1397
+ allowIn: true,
1398
+ allowCall: true
1399
+ });
1400
+ result = join(result, fragment);
1401
+ }
1402
+ }
1403
+
1404
+ if (expr.filter) {
1405
+ result = join(result, 'if' + space);
1406
+ fragment = generateExpression(expr.filter, {
1407
+ precedence: Precedence.Sequence,
1408
+ allowIn: true,
1409
+ allowCall: true
1410
+ });
1411
+ if (extra.moz.parenthesizedComprehensionBlock) {
1412
+ result = join(result, [ '(', fragment, ')' ]);
1413
+ } else {
1414
+ result = join(result, fragment);
1415
+ }
1416
+ }
1417
+ result.push(']');
1418
+ break;
1419
+
1420
+ case Syntax.ComprehensionBlock:
1421
+ if (expr.left.type === Syntax.VariableDeclaration) {
1422
+ fragment = [
1423
+ expr.left.kind + ' ',
1424
+ generateStatement(expr.left.declarations[0], {
1425
+ allowIn: false
1426
+ })
1427
+ ];
1428
+ } else {
1429
+ fragment = generateExpression(expr.left, {
1430
+ precedence: Precedence.Call,
1431
+ allowIn: true,
1432
+ allowCall: true
1433
+ });
1434
+ }
1435
+
1436
+ fragment = join(fragment, expr.of ? 'of' : 'in');
1437
+ fragment = join(fragment, generateExpression(expr.right, {
1438
+ precedence: Precedence.Sequence,
1439
+ allowIn: true,
1440
+ allowCall: true
1441
+ }));
1442
+
1443
+ if (extra.moz.parenthesizedComprehensionBlock) {
1444
+ result = [ 'for' + space + '(', fragment, ')' ];
1445
+ } else {
1446
+ result = join('for' + space, fragment);
1447
+ }
1448
+ break;
1449
+
1450
+ default:
1451
+ throw new Error('Unknown expression type: ' + expr.type);
1452
+ }
1453
+
1454
+ return toSourceNode(result, expr);
1455
+ }
1456
+
1457
+ function generateStatement(stmt, option) {
1458
+ var i, len, result, node, allowIn, functionBody, directiveContext, fragment, semicolon;
1459
+
1460
+ allowIn = true;
1461
+ semicolon = ';';
1462
+ functionBody = false;
1463
+ directiveContext = false;
1464
+ if (option) {
1465
+ allowIn = option.allowIn === undefined || option.allowIn;
1466
+ if (!semicolons && option.semicolonOptional === true) {
1467
+ semicolon = '';
1468
+ }
1469
+ functionBody = option.functionBody;
1470
+ directiveContext = option.directiveContext;
1471
+ }
1472
+
1473
+ switch (stmt.type) {
1474
+ case Syntax.BlockStatement:
1475
+ result = ['{', newline];
1476
+
1477
+ withIndent(function () {
1478
+ for (i = 0, len = stmt.body.length; i < len; i += 1) {
1479
+ fragment = addIndent(generateStatement(stmt.body[i], {
1480
+ semicolonOptional: i === len - 1,
1481
+ directiveContext: functionBody
1482
+ }));
1483
+ result.push(fragment);
1484
+ if (!endsWithLineTerminator(toSourceNode(fragment).toString())) {
1485
+ result.push(newline);
1486
+ }
1487
+ }
1488
+ });
1489
+
1490
+ result.push(addIndent('}'));
1491
+ break;
1492
+
1493
+ case Syntax.BreakStatement:
1494
+ if (stmt.label) {
1495
+ result = 'break ' + stmt.label.name + semicolon;
1496
+ } else {
1497
+ result = 'break' + semicolon;
1498
+ }
1499
+ break;
1500
+
1501
+ case Syntax.ContinueStatement:
1502
+ if (stmt.label) {
1503
+ result = 'continue ' + stmt.label.name + semicolon;
1504
+ } else {
1505
+ result = 'continue' + semicolon;
1506
+ }
1507
+ break;
1508
+
1509
+ case Syntax.DirectiveStatement:
1510
+ if (stmt.raw) {
1511
+ result = stmt.raw + semicolon;
1512
+ } else {
1513
+ result = escapeDirective(stmt.directive) + semicolon;
1514
+ }
1515
+ break;
1516
+
1517
+ case Syntax.DoWhileStatement:
1518
+ // Because `do 42 while (cond)` is Syntax Error. We need semicolon.
1519
+ result = join('do', maybeBlock(stmt.body));
1520
+ result = maybeBlockSuffix(stmt.body, result);
1521
+ result = join(result, [
1522
+ 'while' + space + '(',
1523
+ generateExpression(stmt.test, {
1524
+ precedence: Precedence.Sequence,
1525
+ allowIn: true,
1526
+ allowCall: true
1527
+ }),
1528
+ ')' + semicolon
1529
+ ]);
1530
+ break;
1531
+
1532
+ case Syntax.CatchClause:
1533
+ withIndent(function () {
1534
+ result = [
1535
+ 'catch' + space + '(',
1536
+ generateExpression(stmt.param, {
1537
+ precedence: Precedence.Sequence,
1538
+ allowIn: true,
1539
+ allowCall: true
1540
+ }),
1541
+ ')'
1542
+ ];
1543
+ });
1544
+ result.push(maybeBlock(stmt.body));
1545
+ break;
1546
+
1547
+ case Syntax.DebuggerStatement:
1548
+ result = 'debugger' + semicolon;
1549
+ break;
1550
+
1551
+ case Syntax.EmptyStatement:
1552
+ result = ';';
1553
+ break;
1554
+
1555
+ case Syntax.ExpressionStatement:
1556
+ result = [generateExpression(stmt.expression, {
1557
+ precedence: Precedence.Sequence,
1558
+ allowIn: true,
1559
+ allowCall: true
1560
+ })];
1561
+ // 12.4 '{', 'function' is not allowed in this position.
1562
+ // wrap expression with parentheses
1563
+ fragment = toSourceNode(result).toString();
1564
+ if (fragment.charAt(0) === '{' || (fragment.slice(0, 8) === 'function' && " (".indexOf(fragment.charAt(8)) >= 0) || (directive && directiveContext && stmt.expression.type === Syntax.Literal && typeof stmt.expression.value === 'string')) {
1565
+ result = ['(', result, ')' + semicolon];
1566
+ } else {
1567
+ result.push(semicolon);
1568
+ }
1569
+ break;
1570
+
1571
+ case Syntax.VariableDeclarator:
1572
+ if (stmt.init) {
1573
+ result = [
1574
+ generateExpression(stmt.id, {
1575
+ precedence: Precedence.Assignment,
1576
+ allowIn: allowIn,
1577
+ allowCall: true
1578
+ }) + space + '=' + space,
1579
+ generateExpression(stmt.init, {
1580
+ precedence: Precedence.Assignment,
1581
+ allowIn: allowIn,
1582
+ allowCall: true
1583
+ })
1584
+ ];
1585
+ } else {
1586
+ result = stmt.id.name;
1587
+ }
1588
+ break;
1589
+
1590
+ case Syntax.VariableDeclaration:
1591
+ result = [stmt.kind];
1592
+ // special path for
1593
+ // var x = function () {
1594
+ // };
1595
+ if (stmt.declarations.length === 1 && stmt.declarations[0].init &&
1596
+ stmt.declarations[0].init.type === Syntax.FunctionExpression) {
1597
+ result.push(' ', generateStatement(stmt.declarations[0], {
1598
+ allowIn: allowIn
1599
+ }));
1600
+ } else {
1601
+ // VariableDeclarator is typed as Statement,
1602
+ // but joined with comma (not LineTerminator).
1603
+ // So if comment is attached to target node, we should specialize.
1604
+ withIndent(function () {
1605
+ node = stmt.declarations[0];
1606
+ if (extra.comment && node.leadingComments) {
1607
+ result.push('\n', addIndent(generateStatement(node, {
1608
+ allowIn: allowIn
1609
+ })));
1610
+ } else {
1611
+ result.push(' ', generateStatement(node, {
1612
+ allowIn: allowIn
1613
+ }));
1614
+ }
1615
+
1616
+ for (i = 1, len = stmt.declarations.length; i < len; i += 1) {
1617
+ node = stmt.declarations[i];
1618
+ if (extra.comment && node.leadingComments) {
1619
+ result.push(',' + newline, addIndent(generateStatement(node, {
1620
+ allowIn: allowIn
1621
+ })));
1622
+ } else {
1623
+ result.push(',' + space, generateStatement(node, {
1624
+ allowIn: allowIn
1625
+ }));
1626
+ }
1627
+ }
1628
+ });
1629
+ }
1630
+ result.push(semicolon);
1631
+ break;
1632
+
1633
+ case Syntax.ThrowStatement:
1634
+ result = [join(
1635
+ 'throw',
1636
+ generateExpression(stmt.argument, {
1637
+ precedence: Precedence.Sequence,
1638
+ allowIn: true,
1639
+ allowCall: true
1640
+ })
1641
+ ), semicolon];
1642
+ break;
1643
+
1644
+ case Syntax.TryStatement:
1645
+ result = ['try', maybeBlock(stmt.block)];
1646
+ result = maybeBlockSuffix(stmt.block, result);
1647
+ if (stmt.handlers) {
1648
+ // old interface
1649
+ for (i = 0, len = stmt.handlers.length; i < len; i += 1) {
1650
+ result = join(result, generateStatement(stmt.handlers[i]));
1651
+ if (stmt.finalizer || i + 1 !== len) {
1652
+ result = maybeBlockSuffix(stmt.handlers[i].body, result);
1653
+ }
1654
+ }
1655
+ } else {
1656
+ // new interface
1657
+ if (stmt.handler) {
1658
+ result = join(result, generateStatement(stmt.handler));
1659
+ if (stmt.finalizer || stmt.guardedHandlers.length > 0) {
1660
+ result = maybeBlockSuffix(stmt.handler.body, result);
1661
+ }
1662
+ }
1663
+
1664
+ for (i = 0, len = stmt.guardedHandlers.length; i < len; i += 1) {
1665
+ result = join(result, generateStatement(stmt.guardedHandlers[i]));
1666
+ if (stmt.finalizer || i + 1 !== len) {
1667
+ result = maybeBlockSuffix(stmt.guardedHandlers[i].body, result);
1668
+ }
1669
+ }
1670
+ }
1671
+ if (stmt.finalizer) {
1672
+ result = join(result, ['finally', maybeBlock(stmt.finalizer)]);
1673
+ }
1674
+ break;
1675
+
1676
+ case Syntax.SwitchStatement:
1677
+ withIndent(function () {
1678
+ result = [
1679
+ 'switch' + space + '(',
1680
+ generateExpression(stmt.discriminant, {
1681
+ precedence: Precedence.Sequence,
1682
+ allowIn: true,
1683
+ allowCall: true
1684
+ }),
1685
+ ')' + space + '{' + newline
1686
+ ];
1687
+ });
1688
+ if (stmt.cases) {
1689
+ for (i = 0, len = stmt.cases.length; i < len; i += 1) {
1690
+ fragment = addIndent(generateStatement(stmt.cases[i], {semicolonOptional: i === len - 1}));
1691
+ result.push(fragment);
1692
+ if (!endsWithLineTerminator(toSourceNode(fragment).toString())) {
1693
+ result.push(newline);
1694
+ }
1695
+ }
1696
+ }
1697
+ result.push(addIndent('}'));
1698
+ break;
1699
+
1700
+ case Syntax.SwitchCase:
1701
+ withIndent(function () {
1702
+ if (stmt.test) {
1703
+ result = [
1704
+ join('case', generateExpression(stmt.test, {
1705
+ precedence: Precedence.Sequence,
1706
+ allowIn: true,
1707
+ allowCall: true
1708
+ })),
1709
+ ':'
1710
+ ];
1711
+ } else {
1712
+ result = ['default:'];
1713
+ }
1714
+
1715
+ i = 0;
1716
+ len = stmt.consequent.length;
1717
+ if (len && stmt.consequent[0].type === Syntax.BlockStatement) {
1718
+ fragment = maybeBlock(stmt.consequent[0]);
1719
+ result.push(fragment);
1720
+ i = 1;
1721
+ }
1722
+
1723
+ if (i !== len && !endsWithLineTerminator(toSourceNode(result).toString())) {
1724
+ result.push(newline);
1725
+ }
1726
+
1727
+ for (; i < len; i += 1) {
1728
+ fragment = addIndent(generateStatement(stmt.consequent[i], {semicolonOptional: i === len - 1 && semicolon === ''}));
1729
+ result.push(fragment);
1730
+ if (i + 1 !== len && !endsWithLineTerminator(toSourceNode(fragment).toString())) {
1731
+ result.push(newline);
1732
+ }
1733
+ }
1734
+ });
1735
+ break;
1736
+
1737
+ case Syntax.IfStatement:
1738
+ withIndent(function () {
1739
+ result = [
1740
+ 'if' + space + '(',
1741
+ generateExpression(stmt.test, {
1742
+ precedence: Precedence.Sequence,
1743
+ allowIn: true,
1744
+ allowCall: true
1745
+ }),
1746
+ ')'
1747
+ ];
1748
+ });
1749
+ if (stmt.alternate) {
1750
+ result.push(maybeBlock(stmt.consequent));
1751
+ result = maybeBlockSuffix(stmt.consequent, result);
1752
+ if (stmt.alternate.type === Syntax.IfStatement) {
1753
+ result = join(result, ['else ', generateStatement(stmt.alternate, {semicolonOptional: semicolon === ''})]);
1754
+ } else {
1755
+ result = join(result, join('else', maybeBlock(stmt.alternate, semicolon === '')));
1756
+ }
1757
+ } else {
1758
+ result.push(maybeBlock(stmt.consequent, semicolon === ''));
1759
+ }
1760
+ break;
1761
+
1762
+ case Syntax.ForStatement:
1763
+ withIndent(function () {
1764
+ result = ['for' + space + '('];
1765
+ if (stmt.init) {
1766
+ if (stmt.init.type === Syntax.VariableDeclaration) {
1767
+ result.push(generateStatement(stmt.init, {allowIn: false}));
1768
+ } else {
1769
+ result.push(generateExpression(stmt.init, {
1770
+ precedence: Precedence.Sequence,
1771
+ allowIn: false,
1772
+ allowCall: true
1773
+ }), ';');
1774
+ }
1775
+ } else {
1776
+ result.push(';');
1777
+ }
1778
+
1779
+ if (stmt.test) {
1780
+ result.push(space, generateExpression(stmt.test, {
1781
+ precedence: Precedence.Sequence,
1782
+ allowIn: true,
1783
+ allowCall: true
1784
+ }), ';');
1785
+ } else {
1786
+ result.push(';');
1787
+ }
1788
+
1789
+ if (stmt.update) {
1790
+ result.push(space, generateExpression(stmt.update, {
1791
+ precedence: Precedence.Sequence,
1792
+ allowIn: true,
1793
+ allowCall: true
1794
+ }), ')');
1795
+ } else {
1796
+ result.push(')');
1797
+ }
1798
+ });
1799
+
1800
+ result.push(maybeBlock(stmt.body, semicolon === ''));
1801
+ break;
1802
+
1803
+ case Syntax.ForInStatement:
1804
+ result = ['for' + space + '('];
1805
+ withIndent(function () {
1806
+ if (stmt.left.type === Syntax.VariableDeclaration) {
1807
+ withIndent(function () {
1808
+ result.push(stmt.left.kind + ' ', generateStatement(stmt.left.declarations[0], {
1809
+ allowIn: false
1810
+ }));
1811
+ });
1812
+ } else {
1813
+ result.push(generateExpression(stmt.left, {
1814
+ precedence: Precedence.Call,
1815
+ allowIn: true,
1816
+ allowCall: true
1817
+ }));
1818
+ }
1819
+
1820
+ result = join(result, 'in');
1821
+ result = [join(
1822
+ result,
1823
+ generateExpression(stmt.right, {
1824
+ precedence: Precedence.Sequence,
1825
+ allowIn: true,
1826
+ allowCall: true
1827
+ })
1828
+ ), ')'];
1829
+ });
1830
+ result.push(maybeBlock(stmt.body, semicolon === ''));
1831
+ break;
1832
+
1833
+ case Syntax.LabeledStatement:
1834
+ result = [stmt.label.name + ':', maybeBlock(stmt.body, semicolon === '')];
1835
+ break;
1836
+
1837
+ case Syntax.Program:
1838
+ len = stmt.body.length;
1839
+ result = [safeConcatenation && len > 0 ? '\n' : ''];
1840
+ for (i = 0; i < len; i += 1) {
1841
+ fragment = addIndent(
1842
+ generateStatement(stmt.body[i], {
1843
+ semicolonOptional: !safeConcatenation && i === len - 1,
1844
+ directiveContext: true
1845
+ })
1846
+ );
1847
+ result.push(fragment);
1848
+ if (i + 1 < len && !endsWithLineTerminator(toSourceNode(fragment).toString())) {
1849
+ result.push(newline);
1850
+ }
1851
+ }
1852
+ break;
1853
+
1854
+ case Syntax.FunctionDeclaration:
1855
+ result = [(stmt.generator && !extra.moz.starlessGenerator ? 'function* ' : 'function ') + stmt.id.name, generateFunctionBody(stmt)];
1856
+ break;
1857
+
1858
+ case Syntax.ReturnStatement:
1859
+ if (stmt.argument) {
1860
+ result = [join(
1861
+ 'return',
1862
+ generateExpression(stmt.argument, {
1863
+ precedence: Precedence.Sequence,
1864
+ allowIn: true,
1865
+ allowCall: true
1866
+ })
1867
+ ), semicolon];
1868
+ } else {
1869
+ result = ['return' + semicolon];
1870
+ }
1871
+ break;
1872
+
1873
+ case Syntax.WhileStatement:
1874
+ withIndent(function () {
1875
+ result = [
1876
+ 'while' + space + '(',
1877
+ generateExpression(stmt.test, {
1878
+ precedence: Precedence.Sequence,
1879
+ allowIn: true,
1880
+ allowCall: true
1881
+ }),
1882
+ ')'
1883
+ ];
1884
+ });
1885
+ result.push(maybeBlock(stmt.body, semicolon === ''));
1886
+ break;
1887
+
1888
+ case Syntax.WithStatement:
1889
+ withIndent(function () {
1890
+ result = [
1891
+ 'with' + space + '(',
1892
+ generateExpression(stmt.object, {
1893
+ precedence: Precedence.Sequence,
1894
+ allowIn: true,
1895
+ allowCall: true
1896
+ }),
1897
+ ')'
1898
+ ];
1899
+ });
1900
+ result.push(maybeBlock(stmt.body, semicolon === ''));
1901
+ break;
1902
+
1903
+ default:
1904
+ throw new Error('Unknown statement type: ' + stmt.type);
1905
+ }
1906
+
1907
+ // Attach comments
1908
+
1909
+ if (extra.comment) {
1910
+ result = addCommentsToStatement(stmt, result);
1911
+ }
1912
+
1913
+ fragment = toSourceNode(result).toString();
1914
+ if (stmt.type === Syntax.Program && !safeConcatenation && newline === '' && fragment.charAt(fragment.length - 1) === '\n') {
1915
+ result = toSourceNode(result).replaceRight(/\s+$/, '');
1916
+ }
1917
+
1918
+ return toSourceNode(result, stmt);
1919
+ }
1920
+
1921
+ function generate(node, options) {
1922
+ var defaultOptions = getDefaultOptions(), result, pair;
1923
+
1924
+ if (options != null) {
1925
+ // Obsolete options
1926
+ //
1927
+ // `options.indent`
1928
+ // `options.base`
1929
+ //
1930
+ // Instead of them, we can use `option.format.indent`.
1931
+ if (typeof options.indent === 'string') {
1932
+ defaultOptions.format.indent.style = options.indent;
1933
+ }
1934
+ if (typeof options.base === 'number') {
1935
+ defaultOptions.format.indent.base = options.base;
1936
+ }
1937
+ options = updateDeeply(defaultOptions, options);
1938
+ indent = options.format.indent.style;
1939
+ if (typeof options.base === 'string') {
1940
+ base = options.base;
1941
+ } else {
1942
+ base = stringRepeat(indent, options.format.indent.base);
1943
+ }
1944
+ } else {
1945
+ options = defaultOptions;
1946
+ indent = options.format.indent.style;
1947
+ base = stringRepeat(indent, options.format.indent.base);
1948
+ }
1949
+ json = options.format.json;
1950
+ renumber = options.format.renumber;
1951
+ hexadecimal = json ? false : options.format.hexadecimal;
1952
+ quotes = json ? 'double' : options.format.quotes;
1953
+ escapeless = options.format.escapeless;
1954
+ if (options.format.compact) {
1955
+ newline = space = indent = base = '';
1956
+ } else {
1957
+ newline = '\n';
1958
+ space = ' ';
1959
+ }
1960
+ parentheses = options.format.parentheses;
1961
+ semicolons = options.format.semicolons;
1962
+ safeConcatenation = options.format.safeConcatenation;
1963
+ directive = options.directive;
1964
+ parse = json ? null : options.parse;
1965
+ sourceMap = options.sourceMap;
1966
+ extra = options;
1967
+
1968
+ if (sourceMap) {
1969
+ if (!exports.browser) {
1970
+ // We assume environment is node.js
1971
+ // And prevent from including source-map by browserify
1972
+ SourceNode = require('source-map').SourceNode;
1973
+ } else {
1974
+ SourceNode = global.sourceMap.SourceNode;
1975
+ }
1976
+ } else {
1977
+ SourceNode = SourceNodeMock;
1978
+ }
1979
+
1980
+ switch (node.type) {
1981
+ case Syntax.BlockStatement:
1982
+ case Syntax.BreakStatement:
1983
+ case Syntax.CatchClause:
1984
+ case Syntax.ContinueStatement:
1985
+ case Syntax.DirectiveStatement:
1986
+ case Syntax.DoWhileStatement:
1987
+ case Syntax.DebuggerStatement:
1988
+ case Syntax.EmptyStatement:
1989
+ case Syntax.ExpressionStatement:
1990
+ case Syntax.ForStatement:
1991
+ case Syntax.ForInStatement:
1992
+ case Syntax.FunctionDeclaration:
1993
+ case Syntax.IfStatement:
1994
+ case Syntax.LabeledStatement:
1995
+ case Syntax.Program:
1996
+ case Syntax.ReturnStatement:
1997
+ case Syntax.SwitchStatement:
1998
+ case Syntax.SwitchCase:
1999
+ case Syntax.ThrowStatement:
2000
+ case Syntax.TryStatement:
2001
+ case Syntax.VariableDeclaration:
2002
+ case Syntax.VariableDeclarator:
2003
+ case Syntax.WhileStatement:
2004
+ case Syntax.WithStatement:
2005
+ result = generateStatement(node);
2006
+ break;
2007
+
2008
+ case Syntax.AssignmentExpression:
2009
+ case Syntax.ArrayExpression:
2010
+ case Syntax.ArrayPattern:
2011
+ case Syntax.BinaryExpression:
2012
+ case Syntax.CallExpression:
2013
+ case Syntax.ConditionalExpression:
2014
+ case Syntax.FunctionExpression:
2015
+ case Syntax.Identifier:
2016
+ case Syntax.Literal:
2017
+ case Syntax.LogicalExpression:
2018
+ case Syntax.MemberExpression:
2019
+ case Syntax.NewExpression:
2020
+ case Syntax.ObjectExpression:
2021
+ case Syntax.ObjectPattern:
2022
+ case Syntax.Property:
2023
+ case Syntax.SequenceExpression:
2024
+ case Syntax.ThisExpression:
2025
+ case Syntax.UnaryExpression:
2026
+ case Syntax.UpdateExpression:
2027
+ case Syntax.YieldExpression:
2028
+
2029
+ result = generateExpression(node, {
2030
+ precedence: Precedence.Sequence,
2031
+ allowIn: true,
2032
+ allowCall: true
2033
+ });
2034
+ break;
2035
+
2036
+ default:
2037
+ throw new Error('Unknown node type: ' + node.type);
2038
+ }
2039
+
2040
+ if (!sourceMap) {
2041
+ return result.toString();
2042
+ }
2043
+
2044
+ pair = result.toStringWithSourceMap({
2045
+ file: options.sourceMap,
2046
+ sourceRoot: options.sourceMapRoot
2047
+ });
2048
+
2049
+ if (options.sourceMapWithCode) {
2050
+ return pair;
2051
+ }
2052
+ return pair.map.toString();
2053
+ }
2054
+
2055
+ // simple visitor implementation
2056
+
2057
+ VisitorKeys = {
2058
+ AssignmentExpression: ['left', 'right'],
2059
+ ArrayExpression: ['elements'],
2060
+ ArrayPattern: ['elements'],
2061
+ BlockStatement: ['body'],
2062
+ BinaryExpression: ['left', 'right'],
2063
+ BreakStatement: ['label'],
2064
+ CallExpression: ['callee', 'arguments'],
2065
+ CatchClause: ['param', 'body'],
2066
+ ConditionalExpression: ['test', 'consequent', 'alternate'],
2067
+ ContinueStatement: ['label'],
2068
+ DirectiveStatement: [],
2069
+ DoWhileStatement: ['body', 'test'],
2070
+ DebuggerStatement: [],
2071
+ EmptyStatement: [],
2072
+ ExpressionStatement: ['expression'],
2073
+ ForStatement: ['init', 'test', 'update', 'body'],
2074
+ ForInStatement: ['left', 'right', 'body'],
2075
+ FunctionDeclaration: ['id', 'params', 'body'],
2076
+ FunctionExpression: ['id', 'params', 'body'],
2077
+ Identifier: [],
2078
+ IfStatement: ['test', 'consequent', 'alternate'],
2079
+ Literal: [],
2080
+ LabeledStatement: ['label', 'body'],
2081
+ LogicalExpression: ['left', 'right'],
2082
+ MemberExpression: ['object', 'property'],
2083
+ NewExpression: ['callee', 'arguments'],
2084
+ ObjectExpression: ['properties'],
2085
+ ObjectPattern: ['properties'],
2086
+ Program: ['body'],
2087
+ Property: ['key', 'value'],
2088
+ ReturnStatement: ['argument'],
2089
+ SequenceExpression: ['expressions'],
2090
+ SwitchStatement: ['discriminant', 'cases'],
2091
+ SwitchCase: ['test', 'consequent'],
2092
+ ThisExpression: [],
2093
+ ThrowStatement: ['argument'],
2094
+ TryStatement: ['block', 'handlers', 'finalizer'],
2095
+ UnaryExpression: ['argument'],
2096
+ UpdateExpression: ['argument'],
2097
+ VariableDeclaration: ['declarations'],
2098
+ VariableDeclarator: ['id', 'init'],
2099
+ WhileStatement: ['test', 'body'],
2100
+ WithStatement: ['object', 'body'],
2101
+ YieldExpression: ['argument']
2102
+ };
2103
+
2104
+ VisitorOption = {
2105
+ Break: 1,
2106
+ Skip: 2
2107
+ };
2108
+
2109
+ // based on LLVM libc++ upper_bound / lower_bound
2110
+ // MIT License
2111
+
2112
+ function upperBound(array, func) {
2113
+ var diff, len, i, current;
2114
+
2115
+ len = array.length;
2116
+ i = 0;
2117
+
2118
+ while (len) {
2119
+ diff = len >>> 1;
2120
+ current = i + diff;
2121
+ if (func(array[current])) {
2122
+ len = diff;
2123
+ } else {
2124
+ i = current + 1;
2125
+ len -= diff + 1;
2126
+ }
2127
+ }
2128
+ return i;
2129
+ }
2130
+
2131
+ function lowerBound(array, func) {
2132
+ var diff, len, i, current;
2133
+
2134
+ len = array.length;
2135
+ i = 0;
2136
+
2137
+ while (len) {
2138
+ diff = len >>> 1;
2139
+ current = i + diff;
2140
+ if (func(array[current])) {
2141
+ i = current + 1;
2142
+ len -= diff + 1;
2143
+ } else {
2144
+ len = diff;
2145
+ }
2146
+ }
2147
+ return i;
2148
+ }
2149
+
2150
+ function extendCommentRange(comment, tokens) {
2151
+ var target, token;
2152
+
2153
+ target = upperBound(tokens, function search(token) {
2154
+ return token.range[0] > comment.range[0];
2155
+ });
2156
+
2157
+ comment.extendedRange = [comment.range[0], comment.range[1]];
2158
+
2159
+ if (target !== tokens.length) {
2160
+ comment.extendedRange[1] = tokens[target].range[0];
2161
+ }
2162
+
2163
+ target -= 1;
2164
+ if (target >= 0) {
2165
+ if (target < tokens.length) {
2166
+ comment.extendedRange[0] = tokens[target].range[1];
2167
+ } else if (token.length) {
2168
+ comment.extendedRange[1] = tokens[tokens.length - 1].range[0];
2169
+ }
2170
+ }
2171
+
2172
+ return comment;
2173
+ }
2174
+
2175
+ function attachComments(tree, providedComments, tokens) {
2176
+ // At first, we should calculate extended comment ranges.
2177
+ var comments = [], comment, len, i;
2178
+
2179
+ if (!tree.range) {
2180
+ throw new Error('attachComments needs range information');
2181
+ }
2182
+
2183
+ // tokens array is empty, we attach comments to tree as 'leadingComments'
2184
+ if (!tokens.length) {
2185
+ if (providedComments.length) {
2186
+ for (i = 0, len = providedComments.length; i < len; i += 1) {
2187
+ comment = deepCopy(providedComments[i]);
2188
+ comment.extendedRange = [0, tree.range[0]];
2189
+ comments.push(comment);
2190
+ }
2191
+ tree.leadingComments = comments;
2192
+ }
2193
+ return tree;
2194
+ }
2195
+
2196
+ for (i = 0, len = providedComments.length; i < len; i += 1) {
2197
+ comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));
2198
+ }
2199
+
2200
+ // This is based on John Freeman's implementation.
2201
+ traverse(tree, {
2202
+ cursor: 0,
2203
+ enter: function (node) {
2204
+ var comment;
2205
+
2206
+ while (this.cursor < comments.length) {
2207
+ comment = comments[this.cursor];
2208
+ if (comment.extendedRange[1] > node.range[0]) {
2209
+ break;
2210
+ }
2211
+
2212
+ if (comment.extendedRange[1] === node.range[0]) {
2213
+ if (!node.leadingComments) {
2214
+ node.leadingComments = [];
2215
+ }
2216
+ node.leadingComments.push(comment);
2217
+ comments.splice(this.cursor, 1);
2218
+ } else {
2219
+ this.cursor += 1;
2220
+ }
2221
+ }
2222
+
2223
+ // already out of owned node
2224
+ if (this.cursor === comments.length) {
2225
+ return VisitorOption.Break;
2226
+ }
2227
+
2228
+ if (comments[this.cursor].extendedRange[0] > node.range[1]) {
2229
+ return VisitorOption.Skip;
2230
+ }
2231
+ }
2232
+ });
2233
+
2234
+ traverse(tree, {
2235
+ cursor: 0,
2236
+ leave: function (node) {
2237
+ var comment;
2238
+
2239
+ while (this.cursor < comments.length) {
2240
+ comment = comments[this.cursor];
2241
+ if (node.range[1] < comment.extendedRange[0]) {
2242
+ break;
2243
+ }
2244
+
2245
+ if (node.range[1] === comment.extendedRange[0]) {
2246
+ if (!node.trailingComments) {
2247
+ node.trailingComments = [];
2248
+ }
2249
+ node.trailingComments.push(comment);
2250
+ comments.splice(this.cursor, 1);
2251
+ } else {
2252
+ this.cursor += 1;
2253
+ }
2254
+ }
2255
+
2256
+ // already out of owned node
2257
+ if (this.cursor === comments.length) {
2258
+ return VisitorOption.Break;
2259
+ }
2260
+
2261
+ if (comments[this.cursor].extendedRange[0] > node.range[1]) {
2262
+ return VisitorOption.Skip;
2263
+ }
2264
+ }
2265
+ });
2266
+
2267
+ return tree;
2268
+ }
2269
+
2270
+ exports.version = require('./package.json').version;
2271
+ exports.generate = generate;
2272
+ exports.attachComments = attachComments;
2273
+ exports.browser = false;
2274
+ }());
2275
+ /* vim: set sw=4 ts=4 et tw=80 : */