coffeecake 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1336) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/README.markdown +28 -0
  4. data/Rakefile +2 -0
  5. data/bin/ck +16 -0
  6. data/coffeecake.gemspec +21 -0
  7. data/lib/coffeecake.rb +4 -0
  8. data/lib/coffeecake/generators.rb +12 -0
  9. data/lib/coffeecake/generators/new_generator.rb +55 -0
  10. data/lib/coffeecake/templates/.gitkeep +0 -0
  11. data/lib/coffeecake/templates/README.markdown +56 -0
  12. data/lib/coffeecake/templates/SpecHelper.tt +0 -0
  13. data/lib/coffeecake/templates/docs_readme +5 -0
  14. data/lib/coffeecake/templates/jasmine.tt +18 -0
  15. data/lib/coffeecake/templates/lib.tt +3 -0
  16. data/lib/coffeecake/templates/spec.tt +3 -0
  17. data/lib/coffeecake/version.rb +3 -0
  18. data/lib/thor_register_patch.rb +16 -0
  19. data/node_modules/.bin/cake +7 -0
  20. data/node_modules/.bin/coffee +7 -0
  21. data/node_modules/.bin/docco +8 -0
  22. data/node_modules/.bin/jasmine +26 -0
  23. data/node_modules/.bin/jasmine-node +7 -0
  24. data/node_modules/.bin/uglifycss +127 -0
  25. data/node_modules/.bin/uglifyjs +317 -0
  26. data/node_modules/coffee-script/.npmignore +11 -0
  27. data/node_modules/coffee-script/LICENSE +22 -0
  28. data/node_modules/coffee-script/README +51 -0
  29. data/node_modules/coffee-script/Rakefile +78 -0
  30. data/node_modules/coffee-script/bin/cake +7 -0
  31. data/node_modules/coffee-script/bin/coffee +7 -0
  32. data/node_modules/coffee-script/extras/jsl.conf +44 -0
  33. data/node_modules/coffee-script/lib/coffee-script/browser.js +74 -0
  34. data/node_modules/coffee-script/lib/coffee-script/cake.js +89 -0
  35. data/node_modules/coffee-script/lib/coffee-script/coffee-script.js +148 -0
  36. data/node_modules/coffee-script/lib/coffee-script/command.js +310 -0
  37. data/node_modules/coffee-script/lib/coffee-script/grammar.js +588 -0
  38. data/node_modules/coffee-script/lib/coffee-script/helpers.js +72 -0
  39. data/node_modules/coffee-script/lib/coffee-script/index.js +10 -0
  40. data/node_modules/coffee-script/lib/coffee-script/lexer.js +687 -0
  41. data/node_modules/coffee-script/lib/coffee-script/nodes.js +2481 -0
  42. data/node_modules/coffee-script/lib/coffee-script/optparse.js +122 -0
  43. data/node_modules/coffee-script/lib/coffee-script/parser.js +670 -0
  44. data/node_modules/coffee-script/lib/coffee-script/repl.js +149 -0
  45. data/node_modules/coffee-script/lib/coffee-script/rewriter.js +288 -0
  46. data/node_modules/coffee-script/lib/coffee-script/scope.js +124 -0
  47. data/node_modules/coffee-script/npm-install-45965.sh +282 -0
  48. data/node_modules/coffee-script/package.json +31 -0
  49. data/node_modules/docco/.gitignore +3 -0
  50. data/node_modules/docco/Cakefile +27 -0
  51. data/node_modules/docco/README +13 -0
  52. data/node_modules/docco/bin/docco +8 -0
  53. data/node_modules/docco/index.html +143 -0
  54. data/node_modules/docco/lib/docco.js +155 -0
  55. data/node_modules/docco/package.json +21 -0
  56. data/node_modules/docco/resources/docco.css +186 -0
  57. data/node_modules/docco/resources/docco.jst +58 -0
  58. data/node_modules/docco/src/docco.coffee +204 -0
  59. data/node_modules/docco/vendor/showdown.js +1298 -0
  60. data/node_modules/jasmine-jquery/.gitignore +3 -0
  61. data/node_modules/jasmine-jquery/MIT.LICENSE +20 -0
  62. data/node_modules/jasmine-jquery/README.markdown +174 -0
  63. data/node_modules/jasmine-jquery/SpecRunner.html +24 -0
  64. data/node_modules/jasmine-jquery/index.js +15 -0
  65. data/node_modules/jasmine-jquery/lib/jasmine-jquery.js +288 -0
  66. data/node_modules/jasmine-jquery/package.json +19 -0
  67. data/node_modules/jasmine-jquery/spec/fixtures/real_non_mocked_fixture.html +1 -0
  68. data/node_modules/jasmine-jquery/spec/suites/jasmine-jquery-spec.js +691 -0
  69. data/node_modules/jasmine-node/.gitignore +10 -0
  70. data/node_modules/jasmine-node/LICENSE +22 -0
  71. data/node_modules/jasmine-node/README.md +35 -0
  72. data/node_modules/jasmine-node/bin/jasmine-node +7 -0
  73. data/node_modules/jasmine-node/lib/jasmine-node/cli.js +110 -0
  74. data/node_modules/jasmine-node/lib/jasmine-node/index.js +171 -0
  75. data/node_modules/jasmine-node/lib/jasmine-node/jasmine-2.0.0.rc1.js +2479 -0
  76. data/node_modules/jasmine-node/lib/jasmine-node/reporter.js +177 -0
  77. data/node_modules/jasmine-node/package.json +22 -0
  78. data/node_modules/jasmine-node/spec/CoffeeSpec.coffee +4 -0
  79. data/node_modules/jasmine-node/spec/SampleSpecs.js +15 -0
  80. data/node_modules/jasmine-node/spec/TestSpec.js +5 -0
  81. data/node_modules/jasmine-node/spec/helper_spec.js +7 -0
  82. data/node_modules/jasmine-node/spec/include/include_spec.js +7 -0
  83. data/node_modules/jasmine-node/spec/include/lib/test.js +3 -0
  84. data/node_modules/jasmine-node/spec/nested.js/NestedSpec.js +5 -0
  85. data/node_modules/jasmine-node/spec/nested/NestedSpec.js +5 -0
  86. data/node_modules/jasmine-node/spec/nested/uber-nested/UberNestedSpec.js +11 -0
  87. data/node_modules/jasmine-node/spec/sample_helper.js +19 -0
  88. data/node_modules/jasmine-node/specs.sh +2 -0
  89. data/node_modules/jasmine-reporters/.gitignore +1 -0
  90. data/node_modules/jasmine-reporters/.gitmodules +3 -0
  91. data/node_modules/jasmine-reporters/LICENSE +21 -0
  92. data/node_modules/jasmine-reporters/README.markdown +52 -0
  93. data/node_modules/jasmine-reporters/ext/env.rhino.1.2.js +13989 -0
  94. data/node_modules/jasmine-reporters/ext/jasmine-html.js +182 -0
  95. data/node_modules/jasmine-reporters/ext/jasmine.css +166 -0
  96. data/node_modules/jasmine-reporters/ext/jasmine.js +2421 -0
  97. data/node_modules/jasmine-reporters/ext/jline.jar +0 -0
  98. data/node_modules/jasmine-reporters/ext/js.jar +0 -0
  99. data/node_modules/jasmine-reporters/ext/phantomjs/.gitignore +10 -0
  100. data/node_modules/jasmine-reporters/ext/phantomjs/ChangeLog +57 -0
  101. data/node_modules/jasmine-reporters/ext/phantomjs/LICENSE.BSD +22 -0
  102. data/node_modules/jasmine-reporters/ext/phantomjs/README.md +28 -0
  103. data/node_modules/jasmine-reporters/ext/phantomjs/examples/arguments.coffee +6 -0
  104. data/node_modules/jasmine-reporters/ext/phantomjs/examples/arguments.js +8 -0
  105. data/node_modules/jasmine-reporters/ext/phantomjs/examples/colorwheel.coffee +45 -0
  106. data/node_modules/jasmine-reporters/ext/phantomjs/examples/colorwheel.js +52 -0
  107. data/node_modules/jasmine-reporters/ext/phantomjs/examples/countdown.coffee +8 -0
  108. data/node_modules/jasmine-reporters/ext/phantomjs/examples/countdown.js +8 -0
  109. data/node_modules/jasmine-reporters/ext/phantomjs/examples/cycle_multiple_urls.js +64 -0
  110. data/node_modules/jasmine-reporters/ext/phantomjs/examples/direction.coffee +28 -0
  111. data/node_modules/jasmine-reporters/ext/phantomjs/examples/direction.js +34 -0
  112. data/node_modules/jasmine-reporters/ext/phantomjs/examples/extract-text.coffee +81 -0
  113. data/node_modules/jasmine-reporters/ext/phantomjs/examples/extract-text.js +121 -0
  114. data/node_modules/jasmine-reporters/ext/phantomjs/examples/fibo.coffee +8 -0
  115. data/node_modules/jasmine-reporters/ext/phantomjs/examples/fibo.js +9 -0
  116. data/node_modules/jasmine-reporters/ext/phantomjs/examples/follow.coffee +36 -0
  117. data/node_modules/jasmine-reporters/ext/phantomjs/examples/follow.js +37 -0
  118. data/node_modules/jasmine-reporters/ext/phantomjs/examples/hello.coffee +2 -0
  119. data/node_modules/jasmine-reporters/ext/phantomjs/examples/hello.js +2 -0
  120. data/node_modules/jasmine-reporters/ext/phantomjs/examples/ipgeocode.coffee +13 -0
  121. data/node_modules/jasmine-reporters/ext/phantomjs/examples/ipgeocode.js +14 -0
  122. data/node_modules/jasmine-reporters/ext/phantomjs/examples/loadspeed.coffee +17 -0
  123. data/node_modules/jasmine-reporters/ext/phantomjs/examples/loadspeed.js +20 -0
  124. data/node_modules/jasmine-reporters/ext/phantomjs/examples/movies.coffee +13 -0
  125. data/node_modules/jasmine-reporters/ext/phantomjs/examples/movies.js +14 -0
  126. data/node_modules/jasmine-reporters/ext/phantomjs/examples/pizza.coffee +10 -0
  127. data/node_modules/jasmine-reporters/ext/phantomjs/examples/pizza.js +12 -0
  128. data/node_modules/jasmine-reporters/ext/phantomjs/examples/rasterize.coffee +21 -0
  129. data/node_modules/jasmine-reporters/ext/phantomjs/examples/rasterize.js +22 -0
  130. data/node_modules/jasmine-reporters/ext/phantomjs/examples/run-jasmine.js +26 -0
  131. data/node_modules/jasmine-reporters/ext/phantomjs/examples/run-qunit.js +24 -0
  132. data/node_modules/jasmine-reporters/ext/phantomjs/examples/seasonfood.coffee +17 -0
  133. data/node_modules/jasmine-reporters/ext/phantomjs/examples/seasonfood.js +19 -0
  134. data/node_modules/jasmine-reporters/ext/phantomjs/examples/technews.coffee +13 -0
  135. data/node_modules/jasmine-reporters/ext/phantomjs/examples/technews.js +14 -0
  136. data/node_modules/jasmine-reporters/ext/phantomjs/examples/tweets.coffee +8 -0
  137. data/node_modules/jasmine-reporters/ext/phantomjs/examples/tweets.js +12 -0
  138. data/node_modules/jasmine-reporters/ext/phantomjs/examples/useragent.coffee +7 -0
  139. data/node_modules/jasmine-reporters/ext/phantomjs/examples/useragent.js +8 -0
  140. data/node_modules/jasmine-reporters/ext/phantomjs/examples/version.coffee +5 -0
  141. data/node_modules/jasmine-reporters/ext/phantomjs/examples/version.js +5 -0
  142. data/node_modules/jasmine-reporters/ext/phantomjs/examples/waitfor.coffee +40 -0
  143. data/node_modules/jasmine-reporters/ext/phantomjs/examples/waitfor.js +43 -0
  144. data/node_modules/jasmine-reporters/ext/phantomjs/examples/weather.coffee +35 -0
  145. data/node_modules/jasmine-reporters/ext/phantomjs/examples/weather.js +42 -0
  146. data/node_modules/jasmine-reporters/ext/phantomjs/phantomjs.pro +3 -0
  147. data/node_modules/jasmine-reporters/ext/phantomjs/python/INSTALL +20 -0
  148. data/node_modules/jasmine-reporters/ext/phantomjs/python/LICENSE +674 -0
  149. data/node_modules/jasmine-reporters/ext/phantomjs/python/README +56 -0
  150. data/node_modules/jasmine-reporters/ext/phantomjs/python/csconverter.py +41 -0
  151. data/node_modules/jasmine-reporters/ext/phantomjs/python/networkaccessmanager.py +84 -0
  152. data/node_modules/jasmine-reporters/ext/phantomjs/python/phantom.py +384 -0
  153. data/node_modules/jasmine-reporters/ext/phantomjs/python/plugincontroller.py +98 -0
  154. data/node_modules/jasmine-reporters/ext/phantomjs/python/plugins/__init__.py +1 -0
  155. data/node_modules/jasmine-reporters/ext/phantomjs/python/pyphantomjs.py +154 -0
  156. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources.py +4160 -0
  157. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources.qrc +6 -0
  158. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources/coffee-script.js +8 -0
  159. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources/pyphantomjs-icon.ico +0 -0
  160. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources/pyphantomjs-icon.png +0 -0
  161. data/node_modules/jasmine-reporters/ext/phantomjs/python/tools/build_resources.sh +14 -0
  162. data/node_modules/jasmine-reporters/ext/phantomjs/python/tools/setup.py +52 -0
  163. data/node_modules/jasmine-reporters/ext/phantomjs/python/utils.py +126 -0
  164. data/node_modules/jasmine-reporters/ext/phantomjs/python/webpage.py +67 -0
  165. data/node_modules/jasmine-reporters/ext/phantomjs/src/coffee-script.js +8 -0
  166. data/node_modules/jasmine-reporters/ext/phantomjs/src/consts.h +39 -0
  167. data/node_modules/jasmine-reporters/ext/phantomjs/src/csconverter.cpp +61 -0
  168. data/node_modules/jasmine-reporters/ext/phantomjs/src/csconverter.h +47 -0
  169. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/config.h +1 -0
  170. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/egif_lib.c +1111 -0
  171. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif.pri +20 -0
  172. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_err.c +120 -0
  173. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_hash.c +160 -0
  174. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_hash.h +59 -0
  175. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_lib.h +336 -0
  176. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_lib_private.h +59 -0
  177. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gifalloc.c +443 -0
  178. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gifwriter.cpp +126 -0
  179. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gifwriter.h +38 -0
  180. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/quantize.c +330 -0
  181. data/node_modules/jasmine-reporters/ext/phantomjs/src/main.cpp +64 -0
  182. data/node_modules/jasmine-reporters/ext/phantomjs/src/networkaccessmanager.cpp +119 -0
  183. data/node_modules/jasmine-reporters/ext/phantomjs/src/networkaccessmanager.h +53 -0
  184. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantom.cpp +494 -0
  185. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantom.h +117 -0
  186. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs-icon.png +0 -0
  187. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs.pro +32 -0
  188. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs.qrc +7 -0
  189. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_os2.ico +0 -0
  190. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_os2.rc +1 -0
  191. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_win.ico +0 -0
  192. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_win.rc +1 -0
  193. data/node_modules/jasmine-reporters/ext/phantomjs/src/usage.txt +11 -0
  194. data/node_modules/jasmine-reporters/ext/phantomjs/src/utils.cpp +74 -0
  195. data/node_modules/jasmine-reporters/ext/phantomjs/src/utils.h +50 -0
  196. data/node_modules/jasmine-reporters/ext/phantomjs/src/webpage.cpp +87 -0
  197. data/node_modules/jasmine-reporters/ext/phantomjs/src/webpage.h +61 -0
  198. data/node_modules/jasmine-reporters/package.json +15 -0
  199. data/node_modules/jasmine-reporters/src/jasmine.console_reporter.js +132 -0
  200. data/node_modules/jasmine-reporters/src/jasmine.junit_reporter.js +199 -0
  201. data/node_modules/jasmine-reporters/src/load_reporters.js +2 -0
  202. data/node_modules/jasmine-reporters/test/JUnitXmlReporterSpec.js +214 -0
  203. data/node_modules/jasmine-reporters/test/console_reporter.html +36 -0
  204. data/node_modules/jasmine-reporters/test/envjs.bootstrap.js +14 -0
  205. data/node_modules/jasmine-reporters/test/envjs.runner.sh +7 -0
  206. data/node_modules/jasmine-reporters/test/junit_xml_reporter.html +23 -0
  207. data/node_modules/jasmine-reporters/test/phantomjs-testrunner.js +39 -0
  208. data/node_modules/jasmine-reporters/test/phantomjs.runner.sh +30 -0
  209. data/node_modules/jasmine-reporters/test/pyphantomjs-plugins/saveToFile/__init__.py +1 -0
  210. data/node_modules/jasmine-reporters/test/pyphantomjs-plugins/saveToFile/saveToFile.py +46 -0
  211. data/node_modules/jasmine-runner/README.md +42 -0
  212. data/node_modules/jasmine-runner/TODO.md +16 -0
  213. data/node_modules/jasmine-runner/bin/jasmine +26 -0
  214. data/node_modules/jasmine-runner/lib/ServerRoutes.js +70 -0
  215. data/node_modules/jasmine-runner/lib/TestRunner.js +29 -0
  216. data/node_modules/jasmine-runner/lib/browser.js +14 -0
  217. data/node_modules/jasmine-runner/lib/config.js +21 -0
  218. data/node_modules/jasmine-runner/lib/jasmine-runner.js +83 -0
  219. data/node_modules/jasmine-runner/lib/monitor.js +34 -0
  220. data/node_modules/jasmine-runner/lib/notify.js +48 -0
  221. data/node_modules/jasmine-runner/lib/public/control-frame.js +57 -0
  222. data/node_modules/jasmine-runner/lib/public/jasmine-html.js +188 -0
  223. data/node_modules/jasmine-runner/lib/public/jasmine.css +166 -0
  224. data/node_modules/jasmine-runner/lib/public/jasmine.js +2421 -0
  225. data/node_modules/jasmine-runner/lib/public/jquery-1.4.3.js +166 -0
  226. data/node_modules/jasmine-runner/lib/public/json2.js +482 -0
  227. data/node_modules/jasmine-runner/lib/public/run.js +6 -0
  228. data/node_modules/jasmine-runner/lib/reporters.js +31 -0
  229. data/node_modules/jasmine-runner/lib/server-worker.js +18 -0
  230. data/node_modules/jasmine-runner/lib/server.js +27 -0
  231. data/node_modules/jasmine-runner/lib/template/jasmine.json +18 -0
  232. data/node_modules/jasmine-runner/lib/template/public/javascript/Player.js +22 -0
  233. data/node_modules/jasmine-runner/lib/template/public/javascript/Song.js +7 -0
  234. data/node_modules/jasmine-runner/lib/template/spec/PlayerSpec.coffee +45 -0
  235. data/node_modules/jasmine-runner/lib/template/spec/PlayerSpec.js +58 -0
  236. data/node_modules/jasmine-runner/lib/template/spec/SpecHelper.js +9 -0
  237. data/node_modules/jasmine-runner/lib/testserver.js +26 -0
  238. data/node_modules/jasmine-runner/lib/views/control-frame.jade +7 -0
  239. data/node_modules/jasmine-runner/lib/views/index.jade +18 -0
  240. data/node_modules/jasmine-runner/node_modules/.bin/cake +7 -0
  241. data/node_modules/jasmine-runner/node_modules/.bin/coffee +7 -0
  242. data/node_modules/jasmine-runner/node_modules/.bin/express +451 -0
  243. data/node_modules/jasmine-runner/node_modules/.bin/jade +92 -0
  244. data/node_modules/jasmine-runner/node_modules/.bin/vows +421 -0
  245. data/node_modules/jasmine-runner/node_modules/coffee-script/.npmignore +11 -0
  246. data/node_modules/jasmine-runner/node_modules/coffee-script/LICENSE +22 -0
  247. data/node_modules/jasmine-runner/node_modules/coffee-script/README +47 -0
  248. data/node_modules/jasmine-runner/node_modules/coffee-script/Rakefile +78 -0
  249. data/node_modules/jasmine-runner/node_modules/coffee-script/bin/cake +7 -0
  250. data/node_modules/jasmine-runner/node_modules/coffee-script/bin/coffee +7 -0
  251. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/browser.js +52 -0
  252. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/cake.js +76 -0
  253. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/coffee-script.js +82 -0
  254. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/command.js +269 -0
  255. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/grammar.js +586 -0
  256. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/helpers.js +66 -0
  257. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/index.js +8 -0
  258. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/lexer.js +638 -0
  259. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/nodes.js +2181 -0
  260. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/optparse.js +111 -0
  261. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/parser.js +656 -0
  262. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/repl.js +47 -0
  263. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/rewriter.js +353 -0
  264. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/scope.js +120 -0
  265. data/node_modules/jasmine-runner/node_modules/coffee-script/package.json +22 -0
  266. data/node_modules/jasmine-runner/node_modules/colors/MIT-LICENSE.txt +20 -0
  267. data/node_modules/jasmine-runner/node_modules/colors/ReadMe.md +30 -0
  268. data/node_modules/jasmine-runner/node_modules/colors/colors.js +75 -0
  269. data/node_modules/jasmine-runner/node_modules/colors/example.js +6 -0
  270. data/node_modules/jasmine-runner/node_modules/colors/package.json +14 -0
  271. data/node_modules/jasmine-runner/node_modules/express/.npmignore +7 -0
  272. data/node_modules/jasmine-runner/node_modules/express/History.md +630 -0
  273. data/node_modules/jasmine-runner/node_modules/express/LICENSE +22 -0
  274. data/node_modules/jasmine-runner/node_modules/express/Makefile +39 -0
  275. data/node_modules/jasmine-runner/node_modules/express/Readme.md +102 -0
  276. data/node_modules/jasmine-runner/node_modules/express/bin/express +451 -0
  277. data/node_modules/jasmine-runner/node_modules/express/index.js +2 -0
  278. data/node_modules/jasmine-runner/node_modules/express/lib/express.js +78 -0
  279. data/node_modules/jasmine-runner/node_modules/express/lib/http.js +503 -0
  280. data/node_modules/jasmine-runner/node_modules/express/lib/https.js +52 -0
  281. data/node_modules/jasmine-runner/node_modules/express/lib/request.js +289 -0
  282. data/node_modules/jasmine-runner/node_modules/express/lib/response.js +423 -0
  283. data/node_modules/jasmine-runner/node_modules/express/lib/router/index.js +329 -0
  284. data/node_modules/jasmine-runner/node_modules/express/lib/router/methods.js +70 -0
  285. data/node_modules/jasmine-runner/node_modules/express/lib/router/route.js +71 -0
  286. data/node_modules/jasmine-runner/node_modules/express/lib/utils.js +122 -0
  287. data/node_modules/jasmine-runner/node_modules/express/lib/view.js +413 -0
  288. data/node_modules/jasmine-runner/node_modules/express/lib/view/partial.js +40 -0
  289. data/node_modules/jasmine-runner/node_modules/express/lib/view/view.js +206 -0
  290. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/.npmignore +11 -0
  291. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/LICENSE +24 -0
  292. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/index.js +2 -0
  293. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/cache.js +81 -0
  294. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/connect.js +106 -0
  295. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/http.js +215 -0
  296. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/https.js +47 -0
  297. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/index.js +46 -0
  298. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/basicAuth.js +93 -0
  299. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +92 -0
  300. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/compiler.js +163 -0
  301. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js +46 -0
  302. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/csrf.js +105 -0
  303. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/directory.js +222 -0
  304. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/errorHandler.js +100 -0
  305. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/favicon.js +76 -0
  306. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/limit.js +82 -0
  307. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/logger.js +299 -0
  308. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js +38 -0
  309. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/profiler.js +100 -0
  310. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/query.js +40 -0
  311. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/responseTime.js +34 -0
  312. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/router.js +379 -0
  313. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session.js +346 -0
  314. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/cookie.js +126 -0
  315. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/memory.js +131 -0
  316. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/session.js +137 -0
  317. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/store.js +87 -0
  318. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/static.js +225 -0
  319. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +175 -0
  320. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/vhost.js +44 -0
  321. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/patch.js +79 -0
  322. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/directory.html +75 -0
  323. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/error.html +13 -0
  324. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/favicon.ico +0 -0
  325. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page.png +0 -0
  326. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_add.png +0 -0
  327. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_attach.png +0 -0
  328. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_code.png +0 -0
  329. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_copy.png +0 -0
  330. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_delete.png +0 -0
  331. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_edit.png +0 -0
  332. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_error.png +0 -0
  333. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_excel.png +0 -0
  334. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_find.png +0 -0
  335. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_gear.png +0 -0
  336. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_go.png +0 -0
  337. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_green.png +0 -0
  338. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_key.png +0 -0
  339. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_lightning.png +0 -0
  340. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_link.png +0 -0
  341. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_paintbrush.png +0 -0
  342. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_paste.png +0 -0
  343. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_red.png +0 -0
  344. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_refresh.png +0 -0
  345. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_save.png +0 -0
  346. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white.png +0 -0
  347. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_acrobat.png +0 -0
  348. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_actionscript.png +0 -0
  349. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_add.png +0 -0
  350. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_c.png +0 -0
  351. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_camera.png +0 -0
  352. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_cd.png +0 -0
  353. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_code.png +0 -0
  354. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_code_red.png +0 -0
  355. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_coldfusion.png +0 -0
  356. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_compressed.png +0 -0
  357. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_copy.png +0 -0
  358. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_cplusplus.png +0 -0
  359. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_csharp.png +0 -0
  360. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_cup.png +0 -0
  361. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_database.png +0 -0
  362. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_delete.png +0 -0
  363. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_dvd.png +0 -0
  364. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_edit.png +0 -0
  365. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_error.png +0 -0
  366. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_excel.png +0 -0
  367. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_find.png +0 -0
  368. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_flash.png +0 -0
  369. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_freehand.png +0 -0
  370. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_gear.png +0 -0
  371. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_get.png +0 -0
  372. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_go.png +0 -0
  373. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_h.png +0 -0
  374. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_horizontal.png +0 -0
  375. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_key.png +0 -0
  376. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_lightning.png +0 -0
  377. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_link.png +0 -0
  378. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_magnify.png +0 -0
  379. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_medal.png +0 -0
  380. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_office.png +0 -0
  381. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_paint.png +0 -0
  382. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_paintbrush.png +0 -0
  383. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_paste.png +0 -0
  384. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_php.png +0 -0
  385. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_picture.png +0 -0
  386. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_powerpoint.png +0 -0
  387. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_put.png +0 -0
  388. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_ruby.png +0 -0
  389. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_stack.png +0 -0
  390. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_star.png +0 -0
  391. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_swoosh.png +0 -0
  392. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_text.png +0 -0
  393. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_text_width.png +0 -0
  394. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_tux.png +0 -0
  395. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_vector.png +0 -0
  396. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_visualstudio.png +0 -0
  397. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_width.png +0 -0
  398. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_word.png +0 -0
  399. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_world.png +0 -0
  400. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_wrench.png +0 -0
  401. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_zip.png +0 -0
  402. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_word.png +0 -0
  403. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_world.png +0 -0
  404. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/style.css +141 -0
  405. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/utils.js +451 -0
  406. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/package.json +24 -0
  407. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/test.js +11 -0
  408. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/LICENSE +19 -0
  409. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/README.md +50 -0
  410. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/mime.js +92 -0
  411. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/package.json +22 -0
  412. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/test.js +79 -0
  413. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/types/mime.types +1479 -0
  414. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/types/node.types +43 -0
  415. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/.gitignore +1 -0
  416. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/.gitmodules +6 -0
  417. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/History.md +57 -0
  418. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/Makefile +7 -0
  419. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/Readme.md +49 -0
  420. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/benchmark.js +17 -0
  421. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/examples.js +48 -0
  422. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/index.js +2 -0
  423. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/lib/querystring.js +236 -0
  424. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/package.json +16 -0
  425. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/test/parse.test.js +156 -0
  426. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/test/stringify.test.js +95 -0
  427. data/node_modules/jasmine-runner/node_modules/express/package.json +22 -0
  428. data/node_modules/jasmine-runner/node_modules/growl/History.md +10 -0
  429. data/node_modules/jasmine-runner/node_modules/growl/Readme.md +74 -0
  430. data/node_modules/jasmine-runner/node_modules/growl/lib/growl.js +80 -0
  431. data/node_modules/jasmine-runner/node_modules/growl/package.json +6 -0
  432. data/node_modules/jasmine-runner/node_modules/growl/seed.yml +4 -0
  433. data/node_modules/jasmine-runner/node_modules/growl/test.js +17 -0
  434. data/node_modules/jasmine-runner/node_modules/jade/.gitignore +3 -0
  435. data/node_modules/jasmine-runner/node_modules/jade/.gitmodules +21 -0
  436. data/node_modules/jasmine-runner/node_modules/jade/.npmignore +4 -0
  437. data/node_modules/jasmine-runner/node_modules/jade/CNAME +1 -0
  438. data/node_modules/jasmine-runner/node_modules/jade/History.md +163 -0
  439. data/node_modules/jasmine-runner/node_modules/jade/LICENSE +22 -0
  440. data/node_modules/jasmine-runner/node_modules/jade/Makefile +25 -0
  441. data/node_modules/jasmine-runner/node_modules/jade/Readme.md +408 -0
  442. data/node_modules/jasmine-runner/node_modules/jade/api.html +850 -0
  443. data/node_modules/jasmine-runner/node_modules/jade/bin/jade +92 -0
  444. data/node_modules/jasmine-runner/node_modules/jade/index.js +2 -0
  445. data/node_modules/jasmine-runner/node_modules/jade/lib/compiler.js +273 -0
  446. data/node_modules/jasmine-runner/node_modules/jade/lib/doctypes.js +18 -0
  447. data/node_modules/jasmine-runner/node_modules/jade/lib/filters.js +70 -0
  448. data/node_modules/jasmine-runner/node_modules/jade/lib/index.js +314 -0
  449. data/node_modules/jasmine-runner/node_modules/jade/lib/jade.js +314 -0
  450. data/node_modules/jasmine-runner/node_modules/jade/lib/lexer.js +359 -0
  451. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/block.js +29 -0
  452. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/code.js +35 -0
  453. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/comment.js +32 -0
  454. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/doctype.js +29 -0
  455. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/each.js +35 -0
  456. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/filter.js +33 -0
  457. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/index.js +16 -0
  458. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/node.js +20 -0
  459. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/tag.js +80 -0
  460. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/text.js +29 -0
  461. data/node_modules/jasmine-runner/node_modules/jade/lib/parser.js +358 -0
  462. data/node_modules/jasmine-runner/node_modules/jade/lib/self-closing.js +17 -0
  463. data/node_modules/jasmine-runner/node_modules/jade/lib/utils.js +49 -0
  464. data/node_modules/jasmine-runner/node_modules/jade/package.json +9 -0
  465. data/node_modules/jasmine-runner/node_modules/libnotify/.gitignore +2 -0
  466. data/node_modules/jasmine-runner/node_modules/libnotify/README.md +59 -0
  467. data/node_modules/jasmine-runner/node_modules/libnotify/lib/libnotify.js +72 -0
  468. data/node_modules/jasmine-runner/node_modules/libnotify/package.json +11 -0
  469. data/node_modules/jasmine-runner/node_modules/libnotify/seed.yml +5 -0
  470. data/node_modules/jasmine-runner/node_modules/libnotify/test.js +5 -0
  471. data/node_modules/jasmine-runner/node_modules/socket.io/.gitignore +8 -0
  472. data/node_modules/jasmine-runner/node_modules/socket.io/Makefile +10 -0
  473. data/node_modules/jasmine-runner/node_modules/socket.io/README.md +218 -0
  474. data/node_modules/jasmine-runner/node_modules/socket.io/example/chat.html +61 -0
  475. data/node_modules/jasmine-runner/node_modules/socket.io/example/json.js +18 -0
  476. data/node_modules/jasmine-runner/node_modules/socket.io/example/server.js +58 -0
  477. data/node_modules/jasmine-runner/node_modules/socket.io/index.js +1 -0
  478. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/client.js +191 -0
  479. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/index.js +4 -0
  480. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/listener.js +166 -0
  481. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/flashsocket.js +44 -0
  482. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/htmlfile.js +45 -0
  483. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/jsonp-polling.js +32 -0
  484. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/websocket.js +137 -0
  485. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/xhr-multipart.js +63 -0
  486. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/xhr-polling.js +75 -0
  487. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/utils.js +52 -0
  488. data/node_modules/jasmine-runner/node_modules/socket.io/package.json +17 -0
  489. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/.gitignore +3 -0
  490. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/.gitmodules +3 -0
  491. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/History.md +97 -0
  492. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/Makefile +53 -0
  493. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/Readme.md +39 -0
  494. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/bin/expresso +837 -0
  495. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/COPYING +339 -0
  496. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/Makefile.am +81 -0
  497. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/Makefile.in +884 -0
  498. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/Readme.md +8 -0
  499. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/aclocal.m4 +872 -0
  500. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.guess +1526 -0
  501. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.h.in +92 -0
  502. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.rpath +666 -0
  503. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.sub +1658 -0
  504. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/configure +7971 -0
  505. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/configure.ac +88 -0
  506. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/depcomp +589 -0
  507. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/encoding.c +315 -0
  508. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/encoding.h +33 -0
  509. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/generate-resources.c +58 -0
  510. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/global.h +29 -0
  511. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/highlight.c +478 -0
  512. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/highlight.h +37 -0
  513. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-connection.c +192 -0
  514. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-exchange.c +494 -0
  515. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-host.c +95 -0
  516. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-message.c +900 -0
  517. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-server.c +236 -0
  518. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-server.h +208 -0
  519. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-url.c +156 -0
  520. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/install-sh +519 -0
  521. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument-js.cpp +1873 -0
  522. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument-js.h +81 -0
  523. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument.c +226 -0
  524. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument.h +31 -0
  525. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/GNUmakefile +15 -0
  526. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/Makefile.ref +483 -0
  527. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/README.html +54 -0
  528. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/SpiderMonkey.rsp +11 -0
  529. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/aclocal.m4 +9 -0
  530. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/bench.sh +5 -0
  531. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/builtins.tbl +98 -0
  532. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config.mk +206 -0
  533. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/Makefile.in +106 -0
  534. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/Moz/Milestone.pm +232 -0
  535. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/autoconf.mk.in +349 -0
  536. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/check-sync-dirs.py +108 -0
  537. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/check-sync-exceptions +6 -0
  538. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/config.mk +884 -0
  539. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/fastcwd.pl +66 -0
  540. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/gcc_hidden.h +2 -0
  541. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/insure.mk +53 -0
  542. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/make-system-wrappers.pl +59 -0
  543. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/milestone.pl +112 -0
  544. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/milestone.txt +13 -0
  545. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/Makefile.in +84 -0
  546. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/cppsetup.c +233 -0
  547. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/def.h +184 -0
  548. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/ifparser.c +549 -0
  549. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/ifparser.h +83 -0
  550. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/imakemdep.h +733 -0
  551. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/include.c +337 -0
  552. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/main.c +860 -0
  553. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/mkdepend.man +382 -0
  554. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/parse.c +686 -0
  555. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/pr.c +124 -0
  556. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/nfspwd.pl +50 -0
  557. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/nsinstall.c +481 -0
  558. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/nsinstall.py +139 -0
  559. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/pathsub.c +247 -0
  560. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/pathsub.h +74 -0
  561. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/preprocessor.pl +671 -0
  562. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/revdepth-nt.pl +48 -0
  563. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/revdepth.pl +51 -0
  564. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/rules.mk +2269 -0
  565. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/system-headers +1038 -0
  566. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/version.mk +85 -0
  567. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/version_win.pl +423 -0
  568. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/dtoa.c +3321 -0
  569. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/Makefile.ref +143 -0
  570. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/README +83 -0
  571. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/editline.3 +175 -0
  572. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/editline.c +1368 -0
  573. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/editline.h +135 -0
  574. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/sysunix.c +182 -0
  575. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/unix.h +82 -0
  576. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/javascript-trace.d +73 -0
  577. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jitstats.tbl +52 -0
  578. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js-config.h.in +55 -0
  579. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js-config.in +111 -0
  580. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js.cpp +4050 -0
  581. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js.mdp +0 -0
  582. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js.msg +309 -0
  583. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js3240.rc +79 -0
  584. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsOS240.def +654 -0
  585. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsapi.cpp +6060 -0
  586. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsapi.h +2699 -0
  587. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarena.cpp +450 -0
  588. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarena.h +318 -0
  589. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarray.cpp +3426 -0
  590. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarray.h +191 -0
  591. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsatom.cpp +1064 -0
  592. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsatom.h +458 -0
  593. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbit.h +253 -0
  594. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbool.cpp +182 -0
  595. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbool.h +75 -0
  596. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbuiltins.cpp +497 -0
  597. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbuiltins.h +374 -0
  598. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsclist.h +139 -0
  599. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscntxt.cpp +1394 -0
  600. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscntxt.h +1247 -0
  601. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscompat.h +57 -0
  602. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsconfig.mk +181 -0
  603. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscpucfg.cpp +388 -0
  604. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscpucfg.h +212 -0
  605. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdate.cpp +2475 -0
  606. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdate.h +124 -0
  607. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdbgapi.cpp +1954 -0
  608. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdbgapi.h +500 -0
  609. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdhash.cpp +876 -0
  610. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdhash.h +588 -0
  611. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtoa.cpp +572 -0
  612. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtoa.h +131 -0
  613. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtracef.c +318 -0
  614. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtracef.h +81 -0
  615. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsemit.cpp +6857 -0
  616. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsemit.h +777 -0
  617. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsexn.cpp +1376 -0
  618. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsexn.h +96 -0
  619. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfile.cpp +2736 -0
  620. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfile.h +56 -0
  621. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfile.msg +90 -0
  622. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfun.cpp +2706 -0
  623. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfun.h +296 -0
  624. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsgc.cpp +3763 -0
  625. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsgc.h +427 -0
  626. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jshash.cpp +476 -0
  627. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jshash.h +151 -0
  628. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsify.pl +483 -0
  629. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsinterp.cpp +7225 -0
  630. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsinterp.h +591 -0
  631. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsinvoke.cpp +42 -0
  632. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsiter.cpp +1050 -0
  633. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsiter.h +140 -0
  634. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jskeyword.tbl +124 -0
  635. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jskwgen.cpp +460 -0
  636. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslibmath.h +69 -0
  637. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslock.cpp +1417 -0
  638. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslock.h +311 -0
  639. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslocko.asm +60 -0
  640. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslog2.cpp +94 -0
  641. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslong.cpp +264 -0
  642. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslong.h +412 -0
  643. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsmath.cpp +721 -0
  644. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsmath.h +63 -0
  645. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsnum.cpp +1338 -0
  646. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsnum.h +287 -0
  647. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsobj.cpp +5563 -0
  648. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsobj.h +735 -0
  649. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/json.cpp +954 -0
  650. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/json.h +107 -0
  651. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsopcode.cpp +5304 -0
  652. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsopcode.h +404 -0
  653. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsopcode.tbl +557 -0
  654. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsoplengen.cpp +121 -0
  655. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsotypes.h +202 -0
  656. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsparse.cpp +6822 -0
  657. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsparse.h +508 -0
  658. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsprf.cpp +1262 -0
  659. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsprf.h +150 -0
  660. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsproto.tbl +129 -0
  661. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsprvtd.h +263 -0
  662. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jspubtd.h +727 -0
  663. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsregexp.cpp +4772 -0
  664. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsregexp.h +192 -0
  665. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsreops.tbl +145 -0
  666. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscan.cpp +2017 -0
  667. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscan.h +389 -0
  668. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscope.cpp +1955 -0
  669. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscope.h +419 -0
  670. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscript.cpp +1891 -0
  671. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscript.h +330 -0
  672. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsshell.msg +51 -0
  673. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstaticcheck.h +57 -0
  674. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstddef.h +87 -0
  675. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstr.cpp +5347 -0
  676. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstr.h +662 -0
  677. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jstracer.cpp +8276 -0
  678. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jstracer.h +552 -0
  679. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jstypes.h +490 -0
  680. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsutil.cpp +345 -0
  681. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsutil.h +168 -0
  682. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsversion.h +243 -0
  683. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxdrapi.cpp +800 -0
  684. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxdrapi.h +220 -0
  685. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxml.cpp +8343 -0
  686. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxml.h +298 -0
  687. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/lock_SunOS.s +119 -0
  688. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/plify_jsdhash.sed +35 -0
  689. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/prmjtime.cpp +846 -0
  690. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/prmjtime.h +103 -0
  691. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/AIX4.1.mk +65 -0
  692. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/AIX4.2.mk +64 -0
  693. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/AIX4.3.mk +65 -0
  694. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Cygwin.mk +14 -0
  695. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin.mk +85 -0
  696. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin1.3.mk +81 -0
  697. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin1.4.mk +41 -0
  698. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin5.2.mk +81 -0
  699. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin5.3.mk +81 -0
  700. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin64.mk +72 -0
  701. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/HP-UXB.10.10.mk +77 -0
  702. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/HP-UXB.10.20.mk +77 -0
  703. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/HP-UXB.11.00.mk +80 -0
  704. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX.mk +87 -0
  705. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX5.3.mk +44 -0
  706. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.1.mk +44 -0
  707. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.2.mk +44 -0
  708. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.3.mk +44 -0
  709. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.5.mk +44 -0
  710. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Linux_All.mk +105 -0
  711. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/MSYS.mk +7 -0
  712. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Mac_OS10.0.mk +82 -0
  713. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/OSF1V4.0.mk +72 -0
  714. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/OSF1V5.0.mk +69 -0
  715. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS4.1.4.mk +101 -0
  716. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.10.mk +50 -0
  717. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.3.mk +91 -0
  718. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.4.mk +92 -0
  719. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.5.1.mk +44 -0
  720. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.5.mk +87 -0
  721. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.6.mk +89 -0
  722. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.7.mk +44 -0
  723. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.8.mk +44 -0
  724. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.9.mk +44 -0
  725. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT4.0.mk +118 -0
  726. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT5.0.mk +118 -0
  727. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT5.1.mk +118 -0
  728. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT5.2.mk +118 -0
  729. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT6.0.mk +118 -0
  730. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/dgux.mk +64 -0
  731. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/resource.h +15 -0
  732. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/rules.mk +206 -0
  733. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/time.sh +13 -0
  734. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/win32.order +384 -0
  735. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-help.txt +12 -0
  736. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-highlight.css +38 -0
  737. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-ie.css +89 -0
  738. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-overlay.js +211 -0
  739. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-server-help.txt +17 -0
  740. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-server.1 +79 -0
  741. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-server.c +1307 -0
  742. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-throbber.gif +0 -0
  743. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.1 +52 -0
  744. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.c +142 -0
  745. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.css +328 -0
  746. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.html +125 -0
  747. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.js +1024 -0
  748. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.jsm +22 -0
  749. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.manifest +2 -0
  750. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.xul +36 -0
  751. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/iconv.m4 +180 -0
  752. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/lib-ld.m4 +110 -0
  753. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/lib-link.m4 +709 -0
  754. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/lib-prefix.m4 +185 -0
  755. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/make-bin-dist.sh.in +24 -0
  756. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/make-dist.sh.in +43 -0
  757. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/missing +367 -0
  758. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/report.js +76 -0
  759. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/resource-manager.c +59 -0
  760. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/resource-manager.h +46 -0
  761. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/stream.c +129 -0
  762. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/stream.h +57 -0
  763. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/Makefile.am +130 -0
  764. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/Makefile.in +846 -0
  765. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/asprintf.c +42 -0
  766. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/asprintf.sh +19 -0
  767. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/charset.sh +110 -0
  768. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/chunked.sh +74 -0
  769. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/common.sh +7 -0
  770. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/destination-is-existing-directory.expected.err +2 -0
  771. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/destination-is-file.expected.err +2 -0
  772. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/encoding-requires-argument.expected.err +2 -0
  773. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/encodings.c +223 -0
  774. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/encodings.sh +19 -0
  775. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/exclude-requires-argument.expected.err +2 -0
  776. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/fatal.sh +110 -0
  777. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/gethostbyname.c +53 -0
  778. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/gethostbyname.sh +25 -0
  779. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/help.sh +35 -0
  780. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-client-bad-body.c +98 -0
  781. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-client-bad-url.c +77 -0
  782. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-client-close-after-request.c +57 -0
  783. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-bad-body.c +97 -0
  784. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-bad-headers.c +97 -0
  785. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-charset.c +144 -0
  786. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-chunked.c +196 -0
  787. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-close-immediately.c +60 -0
  788. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/invalid-option.expected.err +2 -0
  789. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/invalid-option.sh +29 -0
  790. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-ignore.expected/ignore.js +106 -0
  791. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-ignore.sh +28 -0
  792. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-ignore/ignore.js +44 -0
  793. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-invalid.expected.err +2 -0
  794. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-invalid/javascript-invalid.js +1 -0
  795. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-setter.expected.err +1 -0
  796. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-setter/javascript-setter.js +3 -0
  797. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-utf-8.expected/javascript-utf-8.js +15 -0
  798. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-utf-8.sh +43 -0
  799. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-utf-8/javascript-utf-8.js +2 -0
  800. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-xml.expected.err +1 -0
  801. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-xml/javascript-xml.js +8 -0
  802. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-array-comprehension.js +32 -0
  803. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-assign.js +51 -0
  804. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-colon.js +24 -0
  805. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-comma.js +12 -0
  806. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-cr.js +12 -0
  807. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-crlf.js +12 -0
  808. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-debugger.js +21 -0
  809. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-dec.js +15 -0
  810. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-delete.js +12 -0
  811. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-destructuring.js +96 -0
  812. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-do.js +28 -0
  813. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-dot.js +30 -0
  814. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-empty.js +9 -0
  815. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-for.js +51 -0
  816. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-foreach.js +16 -0
  817. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-function.js +79 -0
  818. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-generator-expression.js +45 -0
  819. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-generator.js +32 -0
  820. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-getter-setter.js +31 -0
  821. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-hook.js +15 -0
  822. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-if.js +71 -0
  823. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-in.js +19 -0
  824. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-inc.js +15 -0
  825. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-iso-8859-1.js +15 -0
  826. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-lambda.js +14 -0
  827. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-let.js +148 -0
  828. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-lf.js +12 -0
  829. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-new.js +22 -0
  830. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-number.js +57 -0
  831. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-object.js +15 -0
  832. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-op.js +108 -0
  833. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-primary.js +21 -0
  834. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-rb.js +24 -0
  835. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-rc.js +15 -0
  836. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-rp.js +12 -0
  837. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-special-characters.js +30 -0
  838. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-string.js +36 -0
  839. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-switch.js +55 -0
  840. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-throw.js +21 -0
  841. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-try.js +66 -0
  842. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-unaryop.js +27 -0
  843. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-var.js +15 -0
  844. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-while.js +79 -0
  845. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-with.js +30 -0
  846. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.sh +53 -0
  847. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-array-comprehension.js +14 -0
  848. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-assign.js +14 -0
  849. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-colon.js +7 -0
  850. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-comma.js +1 -0
  851. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-cr.js +1 -0
  852. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-crlf.js +4 -0
  853. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-debugger.js +6 -0
  854. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-dec.js +2 -0
  855. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-delete.js +1 -0
  856. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-destructuring.js +42 -0
  857. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-do.js +10 -0
  858. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-dot.js +8 -0
  859. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-empty.js +0 -0
  860. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-for.js +22 -0
  861. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-foreach.js +8 -0
  862. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-function.js +38 -0
  863. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-generator-expression.js +18 -0
  864. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-generator.js +11 -0
  865. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-getter-setter.js +19 -0
  866. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-hook.js +2 -0
  867. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-if.js +30 -0
  868. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-in.js +4 -0
  869. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-inc.js +2 -0
  870. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-iso-8859-1.js +2 -0
  871. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-lambda.js +3 -0
  872. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-let.js +79 -0
  873. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-lf.js +4 -0
  874. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-new.js +4 -0
  875. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-number.js +19 -0
  876. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-object.js +2 -0
  877. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-op.js +55 -0
  878. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-primary.js +4 -0
  879. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-rb.js +5 -0
  880. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-rc.js +7 -0
  881. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-rp.js +1 -0
  882. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-special-characters.js +11 -0
  883. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-string.js +11 -0
  884. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-switch.js +21 -0
  885. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-throw.js +6 -0
  886. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-try.js +32 -0
  887. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-unaryop.js +6 -0
  888. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-var.js +2 -0
  889. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-while.js +35 -0
  890. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-with.js +9 -0
  891. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/json-cmp.js +65 -0
  892. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/json.c +48 -0
  893. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/json.sh +19 -0
  894. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/mkdirs.c +42 -0
  895. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/mkdirs.sh +19 -0
  896. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/netcat.pl +35 -0
  897. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/no-arguments.expected.err +2 -0
  898. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/no-arguments.sh +29 -0
  899. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/no-instrument-requires-argument.expected.err +2 -0
  900. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-request-body.sh +58 -0
  901. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-body-javascript.sh +53 -0
  902. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-body.expected.err +1 -0
  903. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-body.sh +54 -0
  904. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-headers.sh +53 -0
  905. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-no-server.sh +49 -0
  906. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-url.sh +67 -0
  907. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy.sh +143 -0
  908. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-crlf.sh +59 -0
  909. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-dir-list.c +93 -0
  910. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-dir-list.sh +19 -0
  911. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-exclude.sh +41 -0
  912. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-fatal.sh +40 -0
  913. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-no-instrument.sh +41 -0
  914. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/1.css +3 -0
  915. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/1.html +12 -0
  916. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/1.js +12 -0
  917. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/2/2.css +3 -0
  918. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/2/2.html +11 -0
  919. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/2/2.js +12 -0
  920. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/image.png +0 -0
  921. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/index.html +12 -0
  922. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/script.js +19 -0
  923. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/style.css +3 -0
  924. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/unix.txt +3 -0
  925. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/windows.txt +3 -0
  926. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/x +1 -0
  927. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.sh +55 -0
  928. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/1.css +3 -0
  929. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/1.html +12 -0
  930. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/1.js +1 -0
  931. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/2/2.css +3 -0
  932. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/2/2.html +11 -0
  933. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/2/2.js +1 -0
  934. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/image.png +0 -0
  935. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/index.html +12 -0
  936. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/script.js +6 -0
  937. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/style.css +3 -0
  938. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/unix.txt +3 -0
  939. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/windows.txt +3 -0
  940. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/x +1 -0
  941. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/same-directory.expected.err +1 -0
  942. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/same-directory.sh +30 -0
  943. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-bad-requests.sh +104 -0
  944. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-close-after-request.sh +47 -0
  945. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-content-types.sh +68 -0
  946. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-directory-listing.expected +4 -0
  947. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-directory-listing.sh +57 -0
  948. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-directory-redirect.sh +50 -0
  949. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-encoded-url.sh +57 -0
  950. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-error.sh +61 -0
  951. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-help.sh +26 -0
  952. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-ip-address.sh +68 -0
  953. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-shutdown-bad-method.sh +49 -0
  954. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-shutdown.expected.err +1 -0
  955. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-shutdown.sh +42 -0
  956. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-special-file.sh +62 -0
  957. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-unreadable-directory.sh +61 -0
  958. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-unreadable-file.sh +62 -0
  959. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-verbose.expected.err +4 -0
  960. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-verbose.sh +54 -0
  961. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-version.sh +25 -0
  962. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server.pl +61 -0
  963. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server.sh +216 -0
  964. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/source-does-not-exist.expected.err +2 -0
  965. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/source-is-file.expected.err +2 -0
  966. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-json.sh +50 -0
  967. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-request-body.sh +48 -0
  968. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-response-headers.sh +56 -0
  969. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-source-urls.expected.err +3 -0
  970. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-source-urls.expected.json +14 -0
  971. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.expected.json +6 -0
  972. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.js +11 -0
  973. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.json +3 -0
  974. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.sh +52 -0
  975. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-server-bad-body.sh +59 -0
  976. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-server-closes-immediately.sh +58 -0
  977. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.expected.err +1 -0
  978. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.expected.json +6 -0
  979. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.json +3 -0
  980. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.sh +50 -0
  981. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-urls.expected.err +3 -0
  982. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-urls.expected.json +14 -0
  983. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unreachable-source-urls.expected.err +3 -0
  984. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unreachable-source-urls.expected.json +14 -0
  985. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unreadable-json.sh +66 -0
  986. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unwritable-json.sh +58 -0
  987. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store.expected.json +14 -0
  988. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store.json +5 -0
  989. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store.sh +137 -0
  990. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/streams.c +107 -0
  991. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/streams.sh +19 -0
  992. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/too-many-arguments.expected.err +2 -0
  993. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/valgrind.sh +7 -0
  994. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/version.sh +29 -0
  995. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/util.c +570 -0
  996. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/util.h +133 -0
  997. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/api.html +1048 -0
  998. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/index.html +373 -0
  999. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/index.md +290 -0
  1000. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/layout/foot.html +3 -0
  1001. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/layout/head.html +42 -0
  1002. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/lib/bar.js +4 -0
  1003. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/lib/foo.js +16 -0
  1004. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/package.json +12 -0
  1005. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/assert.test.js +84 -0
  1006. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/async.test.js +6 -0
  1007. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/bar.test.js +12 -0
  1008. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/foo.test.js +13 -0
  1009. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/http.test.js +82 -0
  1010. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/serial/async.test.js +38 -0
  1011. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/serial/http.test.js +47 -0
  1012. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/LICENSE +27 -0
  1013. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/Makefile +8 -0
  1014. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/README.md +41 -0
  1015. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/examples/client-unix.js +12 -0
  1016. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/examples/client.js +10 -0
  1017. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/examples/server-unix.js +13 -0
  1018. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/lib/websocket.js +562 -0
  1019. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/package.json +22 -0
  1020. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-basic.js +63 -0
  1021. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-readonly-attrs.js +44 -0
  1022. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-ready-state.js +23 -0
  1023. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-unix-send-fd.js +63 -0
  1024. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-unix-sockets.js +46 -0
  1025. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/.gitignore +1 -0
  1026. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/.gitmodules +3 -0
  1027. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/Makefile +2 -0
  1028. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/README.md +213 -0
  1029. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/io.js +24 -0
  1030. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/socket.js +157 -0
  1031. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transport.js +141 -0
  1032. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/flashsocket.js +53 -0
  1033. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/htmlfile.js +73 -0
  1034. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/jsonp-polling.js +116 -0
  1035. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/websocket.js +60 -0
  1036. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/xhr-multipart.js +36 -0
  1037. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/xhr-polling.js +68 -0
  1038. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/xhr.js +131 -0
  1039. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/util.js +60 -0
  1040. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/.gitignore +1 -0
  1041. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/FABridge.js +604 -0
  1042. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/README.txt +109 -0
  1043. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/WebSocketMain.swf +0 -0
  1044. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/WebSocketMainInsecure.zip +0 -0
  1045. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocket.as +461 -0
  1046. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMain.as +94 -0
  1047. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as +19 -0
  1048. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketStateEvent.as +32 -0
  1049. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/bridge/FABridge.as +943 -0
  1050. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/build.sh +10 -0
  1051. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as +204 -0
  1052. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as +375 -0
  1053. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as +287 -0
  1054. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as +3235 -0
  1055. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as +218 -0
  1056. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as +57 -0
  1057. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as +82 -0
  1058. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as +27 -0
  1059. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as +21 -0
  1060. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as +137 -0
  1061. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as +124 -0
  1062. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as +204 -0
  1063. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as +106 -0
  1064. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as +28 -0
  1065. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as +115 -0
  1066. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as +71 -0
  1067. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as +90 -0
  1068. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as +20 -0
  1069. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as +119 -0
  1070. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as +142 -0
  1071. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as +339 -0
  1072. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as +2797 -0
  1073. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as +375 -0
  1074. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as +55 -0
  1075. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as +61 -0
  1076. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as +64 -0
  1077. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as +58 -0
  1078. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as +365 -0
  1079. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as +86 -0
  1080. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as +21 -0
  1081. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as +15 -0
  1082. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as +32 -0
  1083. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as +21 -0
  1084. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as +35 -0
  1085. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as +110 -0
  1086. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as +34 -0
  1087. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as +52 -0
  1088. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as +44 -0
  1089. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as +44 -0
  1090. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as +60 -0
  1091. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as +42 -0
  1092. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as +88 -0
  1093. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as +94 -0
  1094. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl +29 -0
  1095. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt +2304 -0
  1096. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as +1220 -0
  1097. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as +58 -0
  1098. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as +39 -0
  1099. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as +148 -0
  1100. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as +160 -0
  1101. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as +71 -0
  1102. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as +98 -0
  1103. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as +109 -0
  1104. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as +112 -0
  1105. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as +151 -0
  1106. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as +184 -0
  1107. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as +20 -0
  1108. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as +56 -0
  1109. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as +58 -0
  1110. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as +101 -0
  1111. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as +92 -0
  1112. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as +198 -0
  1113. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as +58 -0
  1114. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as +60 -0
  1115. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as +51 -0
  1116. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as +42 -0
  1117. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as +59 -0
  1118. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as +66 -0
  1119. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as +102 -0
  1120. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as +117 -0
  1121. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as +14 -0
  1122. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as +29 -0
  1123. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as +24 -0
  1124. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as +38 -0
  1125. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as +171 -0
  1126. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as +26 -0
  1127. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as +340 -0
  1128. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as +70 -0
  1129. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as +151 -0
  1130. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as +895 -0
  1131. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as +39 -0
  1132. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as +27 -0
  1133. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as +197 -0
  1134. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as +370 -0
  1135. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as +26 -0
  1136. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as +180 -0
  1137. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as +90 -0
  1138. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as +1543 -0
  1139. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as +35 -0
  1140. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as +11 -0
  1141. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as +85 -0
  1142. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as +34 -0
  1143. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as +11 -0
  1144. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as +25 -0
  1145. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as +189 -0
  1146. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as +66 -0
  1147. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as +28 -0
  1148. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as +43 -0
  1149. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as +210 -0
  1150. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as +21 -0
  1151. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as +44 -0
  1152. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as +35 -0
  1153. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as +112 -0
  1154. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as +118 -0
  1155. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as +49 -0
  1156. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as +90 -0
  1157. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as +27 -0
  1158. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as +94 -0
  1159. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as +60 -0
  1160. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/sample.html +76 -0
  1161. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/swfobject.js +4 -0
  1162. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/web_socket.js +388 -0
  1163. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/socket.io.js +1918 -0
  1164. data/node_modules/jasmine-runner/node_modules/socket.io/tests/index.js +17 -0
  1165. data/node_modules/jasmine-runner/node_modules/socket.io/tests/listener.js +152 -0
  1166. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.flashsocket.js +48 -0
  1167. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.htmlfile.js +214 -0
  1168. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.jsonp-polling.js +148 -0
  1169. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.websocket.js +245 -0
  1170. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.xhr-multipart.js +215 -0
  1171. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.xhr-polling.js +138 -0
  1172. data/node_modules/jasmine-runner/node_modules/socket.io/tests/utils.js +25 -0
  1173. data/node_modules/jasmine-runner/node_modules/vows/LICENSE +20 -0
  1174. data/node_modules/jasmine-runner/node_modules/vows/Makefile +7 -0
  1175. data/node_modules/jasmine-runner/node_modules/vows/README.md +39 -0
  1176. data/node_modules/jasmine-runner/node_modules/vows/bin/vows +421 -0
  1177. data/node_modules/jasmine-runner/node_modules/vows/lib/assert/error.js +27 -0
  1178. data/node_modules/jasmine-runner/node_modules/vows/lib/assert/macros.js +180 -0
  1179. data/node_modules/jasmine-runner/node_modules/vows/lib/vows.js +195 -0
  1180. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/console.js +93 -0
  1181. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/context.js +55 -0
  1182. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/extras.js +28 -0
  1183. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/dot-matrix.js +69 -0
  1184. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/json.js +10 -0
  1185. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/silent.js +8 -0
  1186. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/spec.js +74 -0
  1187. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/watch.js +38 -0
  1188. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/xunit.js +90 -0
  1189. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/suite.js +321 -0
  1190. data/node_modules/jasmine-runner/node_modules/vows/package.json +14 -0
  1191. data/node_modules/jasmine-runner/node_modules/vows/test/assert-test.js +101 -0
  1192. data/node_modules/jasmine-runner/node_modules/vows/test/vows-test.js +373 -0
  1193. data/node_modules/jasmine-runner/node_modules/webworker/.gitignore +2 -0
  1194. data/node_modules/jasmine-runner/node_modules/webworker/LICENSE +27 -0
  1195. data/node_modules/jasmine-runner/node_modules/webworker/Makefile +15 -0
  1196. data/node_modules/jasmine-runner/node_modules/webworker/README.md +74 -0
  1197. data/node_modules/jasmine-runner/node_modules/webworker/docs/design.md +103 -0
  1198. data/node_modules/jasmine-runner/node_modules/webworker/examples/prefork/README.md +1 -0
  1199. data/node_modules/jasmine-runner/node_modules/webworker/examples/prefork/master.js +12 -0
  1200. data/node_modules/jasmine-runner/node_modules/webworker/examples/prefork/worker.js +20 -0
  1201. data/node_modules/jasmine-runner/node_modules/webworker/lib/webworker-child.js +173 -0
  1202. data/node_modules/jasmine-runner/node_modules/webworker/lib/webworker-util.js +185 -0
  1203. data/node_modules/jasmine-runner/node_modules/webworker/lib/webworker.js +304 -0
  1204. data/node_modules/jasmine-runner/node_modules/webworker/lib/ws.js +118 -0
  1205. data/node_modules/jasmine-runner/node_modules/webworker/lib/ws/connection.js +408 -0
  1206. data/node_modules/jasmine-runner/node_modules/webworker/lib/ws/manager.js +98 -0
  1207. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/LICENSE +27 -0
  1208. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/Makefile +8 -0
  1209. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/README.md +41 -0
  1210. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/examples/client-unix.js +12 -0
  1211. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/examples/client.js +10 -0
  1212. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/examples/server-unix.js +13 -0
  1213. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/lib/websocket.js +516 -0
  1214. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/package.json +22 -0
  1215. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-basic.js +63 -0
  1216. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-readonly-attrs.js +44 -0
  1217. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-ready-state.js +23 -0
  1218. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-unix-send-fd.js +63 -0
  1219. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-unix-sockets.js +46 -0
  1220. data/node_modules/jasmine-runner/node_modules/webworker/package.json +25 -0
  1221. data/node_modules/jasmine-runner/node_modules/webworker/test/test-error.js +24 -0
  1222. data/node_modules/jasmine-runner/node_modules/webworker/test/test-fd.js +32 -0
  1223. data/node_modules/jasmine-runner/node_modules/webworker/test/test-simple.js +36 -0
  1224. data/node_modules/jasmine-runner/node_modules/webworker/test/workers/error.js +6 -0
  1225. data/node_modules/jasmine-runner/node_modules/webworker/test/workers/fd.js +17 -0
  1226. data/node_modules/jasmine-runner/node_modules/webworker/test/workers/simple.js +15 -0
  1227. data/node_modules/jasmine-runner/package.json +22 -0
  1228. data/node_modules/jasmine-runner/spec/ConsoleLoggerSpec.js +1 -0
  1229. data/node_modules/jasmine-runner/spec/ServerSpec.js +42 -0
  1230. data/node_modules/jasmine-runner/spec/TestRunner.js +72 -0
  1231. data/node_modules/jasmine-runner/spec/file.worker +8 -0
  1232. data/node_modules/jasmine-runner/spec/temp/spec/foo.spec.js +0 -0
  1233. data/node_modules/jasmine-runner/spec/temp/src/foo.hs +1 -0
  1234. data/node_modules/uglify-js/.gitignore +4 -0
  1235. data/node_modules/uglify-js/README.html +1026 -0
  1236. data/node_modules/uglify-js/README.org +571 -0
  1237. data/node_modules/uglify-js/bin/uglifyjs +317 -0
  1238. data/node_modules/uglify-js/docstyle.css +75 -0
  1239. data/node_modules/uglify-js/lib/object-ast.js +75 -0
  1240. data/node_modules/uglify-js/lib/parse-js.js +1339 -0
  1241. data/node_modules/uglify-js/lib/process.js +2001 -0
  1242. data/node_modules/uglify-js/lib/squeeze-more.js +51 -0
  1243. data/node_modules/uglify-js/package.json +24 -0
  1244. data/node_modules/uglify-js/package.json~ +24 -0
  1245. data/node_modules/uglify-js/test/beautify.js +28 -0
  1246. data/node_modules/uglify-js/test/testparser.js +403 -0
  1247. data/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  1248. data/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  1249. data/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  1250. data/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  1251. data/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  1252. data/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  1253. data/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  1254. data/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  1255. data/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  1256. data/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  1257. data/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  1258. data/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  1259. data/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  1260. data/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  1261. data/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  1262. data/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  1263. data/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  1264. data/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  1265. data/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  1266. data/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  1267. data/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  1268. data/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  1269. data/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  1270. data/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  1271. data/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  1272. data/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  1273. data/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  1274. data/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  1275. data/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  1276. data/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  1277. data/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  1278. data/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  1279. data/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  1280. data/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  1281. data/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  1282. data/node_modules/uglify-js/test/unit/compress/expected/null_string.js +1 -0
  1283. data/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  1284. data/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  1285. data/node_modules/uglify-js/test/unit/compress/expected/whitespace.js +1 -0
  1286. data/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  1287. data/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  1288. data/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  1289. data/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  1290. data/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  1291. data/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  1292. data/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  1293. data/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  1294. data/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  1295. data/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  1296. data/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  1297. data/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  1298. data/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  1299. data/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  1300. data/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  1301. data/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  1302. data/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  1303. data/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  1304. data/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  1305. data/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  1306. data/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  1307. data/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  1308. data/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  1309. data/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  1310. data/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  1311. data/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  1312. data/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  1313. data/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  1314. data/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  1315. data/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  1316. data/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  1317. data/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  1318. data/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  1319. data/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  1320. data/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  1321. data/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  1322. data/node_modules/uglify-js/test/unit/compress/test/null_string.js +1 -0
  1323. data/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  1324. data/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  1325. data/node_modules/uglify-js/test/unit/compress/test/whitespace.js +21 -0
  1326. data/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  1327. data/node_modules/uglify-js/test/unit/scripts.js +55 -0
  1328. data/node_modules/uglify-js/uglify-js.js +17 -0
  1329. data/node_modules/uglifycss/README.md +21 -0
  1330. data/node_modules/uglifycss/index.js +26 -0
  1331. data/node_modules/uglifycss/package.json +15 -0
  1332. data/node_modules/uglifycss/test.js +43 -0
  1333. data/node_modules/uglifycss/tests.yui.js +42 -0
  1334. data/node_modules/uglifycss/uglifycss +127 -0
  1335. data/node_modules/uglifycss/uglifycss-lib.js +461 -0
  1336. metadata +1383 -0
@@ -0,0 +1,192 @@
1
+ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
+ *
3
+ * ***** BEGIN LICENSE BLOCK *****
4
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
+ *
6
+ * The contents of this file are subject to the Mozilla Public License Version
7
+ * 1.1 (the "License"); you may not use this file except in compliance with
8
+ * the License. You may obtain a copy of the License at
9
+ * http://www.mozilla.org/MPL/
10
+ *
11
+ * Software distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13
+ * for the specific language governing rights and limitations under the
14
+ * License.
15
+ *
16
+ * The Original Code is Mozilla Communicator client code, released
17
+ * March 31, 1998.
18
+ *
19
+ * The Initial Developer of the Original Code is
20
+ * Netscape Communications Corporation.
21
+ * Portions created by the Initial Developer are Copyright (C) 1998
22
+ * the Initial Developer. All Rights Reserved.
23
+ *
24
+ * Contributor(s):
25
+ *
26
+ * Alternatively, the contents of this file may be used under the terms of
27
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
28
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29
+ * in which case the provisions of the GPL or the LGPL are applicable instead
30
+ * of those above. If you wish to allow use of your version of this file only
31
+ * under the terms of either the GPL or the LGPL, and not to allow others to
32
+ * use your version of this file under the terms of the MPL, indicate your
33
+ * decision by deleting the provisions above and replace them with the notice
34
+ * and other provisions required by the GPL or the LGPL. If you do not delete
35
+ * the provisions above, a recipient may use your version of this file under
36
+ * the terms of any one of the MPL, the GPL or the LGPL.
37
+ *
38
+ * ***** END LICENSE BLOCK ***** */
39
+
40
+ #ifndef jsregexp_h___
41
+ #define jsregexp_h___
42
+ /*
43
+ * JS regular expression interface.
44
+ */
45
+ #include <stddef.h>
46
+ #include "jspubtd.h"
47
+ #include "jsstr.h"
48
+
49
+ #ifdef JS_THREADSAFE
50
+ #include "jsdhash.h"
51
+ #endif
52
+
53
+ JS_BEGIN_EXTERN_C
54
+
55
+ struct JSRegExpStatics {
56
+ JSString *input; /* input string to match (perl $_, GC root) */
57
+ JSBool multiline; /* whether input contains newlines (perl $*) */
58
+ uint16 parenCount; /* number of valid elements in parens[] */
59
+ uint16 moreLength; /* number of allocated elements in moreParens */
60
+ JSSubString parens[9]; /* last set of parens matched (perl $1, $2) */
61
+ JSSubString *moreParens; /* null or realloc'd vector for $10, etc. */
62
+ JSSubString lastMatch; /* last string matched (perl $&) */
63
+ JSSubString lastParen; /* last paren matched (perl $+) */
64
+ JSSubString leftContext; /* input to left of last match (perl $`) */
65
+ JSSubString rightContext; /* input to right of last match (perl $') */
66
+ };
67
+
68
+ /*
69
+ * This struct holds a bitmap representation of a class from a regexp.
70
+ * There's a list of these referenced by the classList field in the JSRegExp
71
+ * struct below. The initial state has startIndex set to the offset in the
72
+ * original regexp source of the beginning of the class contents. The first
73
+ * use of the class converts the source representation into a bitmap.
74
+ *
75
+ */
76
+ typedef struct RECharSet {
77
+ JSPackedBool converted;
78
+ JSPackedBool sense;
79
+ uint16 length;
80
+ union {
81
+ uint8 *bits;
82
+ struct {
83
+ size_t startIndex;
84
+ size_t length;
85
+ } src;
86
+ } u;
87
+ } RECharSet;
88
+
89
+ /*
90
+ * This macro is safe because moreParens is guaranteed to be allocated and big
91
+ * enough to hold parenCount, or else be null when parenCount is 0.
92
+ */
93
+ #define REGEXP_PAREN_SUBSTRING(res, num) \
94
+ (((jsuint)(num) < (jsuint)(res)->parenCount) \
95
+ ? ((jsuint)(num) < 9) \
96
+ ? &(res)->parens[num] \
97
+ : &(res)->moreParens[(num) - 9] \
98
+ : &js_EmptySubString)
99
+
100
+ typedef struct RENode RENode;
101
+
102
+ struct JSRegExp {
103
+ jsrefcount nrefs; /* reference count */
104
+ uint16 flags; /* flags, see jsapi.h's JSREG_* defines */
105
+ size_t parenCount; /* number of parenthesized submatches */
106
+ size_t classCount; /* count [...] bitmaps */
107
+ RECharSet *classList; /* list of [...] bitmaps */
108
+ JSString *source; /* locked source string, sans // */
109
+ jsbytecode program[1]; /* regular expression bytecode */
110
+ };
111
+
112
+ extern JSRegExp *
113
+ js_NewRegExp(JSContext *cx, JSTokenStream *ts,
114
+ JSString *str, uintN flags, JSBool flat);
115
+
116
+ extern JSRegExp *
117
+ js_NewRegExpOpt(JSContext *cx, JSString *str, JSString *opt, JSBool flat);
118
+
119
+ #define HOLD_REGEXP(cx, re) JS_ATOMIC_INCREMENT(&(re)->nrefs)
120
+ #define DROP_REGEXP(cx, re) js_DestroyRegExp(cx, re)
121
+
122
+ extern void
123
+ js_DestroyRegExp(JSContext *cx, JSRegExp *re);
124
+
125
+ /*
126
+ * Execute re on input str at *indexp, returning null in *rval on mismatch.
127
+ * On match, return true if test is true, otherwise return an array object.
128
+ * Update *indexp and cx->regExpStatics always on match.
129
+ */
130
+ extern JSBool
131
+ js_ExecuteRegExp(JSContext *cx, JSRegExp *re, JSString *str, size_t *indexp,
132
+ JSBool test, jsval *rval);
133
+
134
+ /*
135
+ * These two add and remove GC roots, respectively, so their calls must be
136
+ * well-ordered.
137
+ */
138
+ extern JSBool
139
+ js_InitRegExpStatics(JSContext *cx, JSRegExpStatics *res);
140
+
141
+ extern void
142
+ js_FreeRegExpStatics(JSContext *cx, JSRegExpStatics *res);
143
+
144
+ #define VALUE_IS_REGEXP(cx, v) \
145
+ (JSVAL_IS_OBJECT(v) && JSVAL_TO_OBJECT(v) && \
146
+ OBJ_GET_CLASS(cx, JSVAL_TO_OBJECT(v)) == &js_RegExpClass)
147
+
148
+ extern JSClass js_RegExpClass;
149
+
150
+ enum regexp_tinyid {
151
+ REGEXP_SOURCE = -1,
152
+ REGEXP_GLOBAL = -2,
153
+ REGEXP_IGNORE_CASE = -3,
154
+ REGEXP_LAST_INDEX = -4,
155
+ REGEXP_MULTILINE = -5,
156
+ REGEXP_STICKY = -6
157
+ };
158
+
159
+ extern JSObject *
160
+ js_InitRegExpClass(JSContext *cx, JSObject *obj);
161
+
162
+ /*
163
+ * Export js_regexp_toString to the decompiler.
164
+ */
165
+ extern JSBool
166
+ js_regexp_toString(JSContext *cx, JSObject *obj, jsval *vp);
167
+
168
+ /*
169
+ * Create, serialize/deserialize, or clone a RegExp object.
170
+ */
171
+ extern JSObject *
172
+ js_NewRegExpObject(JSContext *cx, JSTokenStream *ts,
173
+ jschar *chars, size_t length, uintN flags);
174
+
175
+ extern JSBool
176
+ js_XDRRegExp(JSXDRState *xdr, JSObject **objp);
177
+
178
+ extern JSObject *
179
+ js_CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *parent);
180
+
181
+ /*
182
+ * Get and set the per-object (clone or clone-parent) lastIndex slot.
183
+ */
184
+ extern JSBool
185
+ js_GetLastIndex(JSContext *cx, JSObject *obj, jsdouble *lastIndex);
186
+
187
+ extern JSBool
188
+ js_SetLastIndex(JSContext *cx, JSObject *obj, jsdouble lastIndex);
189
+
190
+ JS_END_EXTERN_C
191
+
192
+ #endif /* jsregexp_h___ */
@@ -0,0 +1,145 @@
1
+ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
+ * vim: set ts=8 sw=4 et tw=0 ft=C:
3
+ *
4
+ * ***** BEGIN LICENSE BLOCK *****
5
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6
+ *
7
+ * The contents of this file are subject to the Mozilla Public License Version
8
+ * 1.1 (the "license"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ * http://www.mozilla.org/MPL/
11
+ *
12
+ * Software distributed under the License is distributed on an "as is" basis,
13
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14
+ * for the specific language governing rights and limitations under the
15
+ * License.
16
+ *
17
+ * The Original Code is Mozilla Communicator client code, released
18
+ * March 31, 1998.
19
+ *
20
+ * The Initial Developer of the Original Code is
21
+ * Netscape Communications Corporation.
22
+ * Portions created by the Initial Developer are Copyright (C) 1998
23
+ * the Initial Developer. All Rights Reserved.
24
+ *
25
+ * Contributor(s):
26
+ *
27
+ * Alternatively, the contentsof this file are subject to the Mozilla Public License Version
28
+ * 1.1 (the "license"); you may not use this file except in compliance with
29
+ * the License. You may obtain a copy of thter (the "lgpl"),
30
+ * in which case the provisions of the GPL or the LGPL are applicable instead
31
+ * of those above. If you wish to allow use of your version of this file only
32
+ * under the terms of either the GPL or the LGPL, and not to allow others to
33
+ * use your version of this file under the terms of the MPL, indicate your
34
+ * decision by deleting the provisions above and replace them with the notice
35
+ * and other provisions required by the GPL or the LGPL. If you do not delete
36
+ * the provisions above, a recipient may use your version of this file under
37
+ * the terms of any one of the MPL, the GPL or the LGPL.
38
+ *
39
+ * ***** END LICENSE BLOCK ***** */
40
+
41
+
42
+ /* Note : contiguity of 'simple opcodes' is important for SimpleMatch() */
43
+
44
+ /* match rest of input against rest of r.e. */
45
+ REOP_DEF(REOP_EMPTY, "empty")
46
+ /* beginning of input (or line if multiline) */
47
+ REOP_DEF(REOP_BOL, "bol")
48
+ /* end of input (or line if multiline) */
49
+ REOP_DEF(REOP_EOL, "eol")
50
+ /* match "" at word boundary */
51
+ REOP_DEF(REOP_WBDRY, "wbdry")
52
+ /* match "" at word non-boundary */
53
+ REOP_DEF(REOP_WNONBDRY, "wnonbdry")
54
+ /* stands for any character */
55
+ REOP_DEF(REOP_DOT, "dot")
56
+ /* match a digit char: [0-9] */
57
+ REOP_DEF(REOP_DIGIT, "digit")
58
+ /* match a non-digit char: [^0-9] */
59
+ REOP_DEF(REOP_NONDIGIT, "nondigit")
60
+ /* match an alphanumeric char: [0-9a-z_A-Z] */
61
+ REOP_DEF(REOP_ALNUM, "alnum")
62
+ /* match a non-alphanumeric char: [^0-9a-z_A-Z] */
63
+ REOP_DEF(REOP_NONALNUM, "nonalnum")
64
+ /* match a whitespace char */
65
+ REOP_DEF(REOP_SPACE, "space")
66
+ /* match a non-whitespace char */
67
+ REOP_DEF(REOP_NONSPACE, "nonspace")
68
+ /* back-reference (e.g., \1) to a parenthetical */
69
+ REOP_DEF(REOP_BACKREF, "backref")
70
+ /* match a flat string */
71
+ REOP_DEF(REOP_FLAT, "flat")
72
+ /* match a single char */
73
+ REOP_DEF(REOP_FLAT1, "flat1")
74
+ /* case-independent REOP_FLAT */
75
+ REOP_DEF(REOP_FLATi, "flati")
76
+ /* case-independent REOP_FLAT1 */
77
+ REOP_DEF(REOP_FLAT1i, "flat1i")
78
+ /* single Unicode char */
79
+ REOP_DEF(REOP_UCFLAT1, "ucflat1")
80
+ /* case-independent REOP_UCFLAT1 */
81
+ REOP_DEF(REOP_UCFLAT1i, "ucflat1i")
82
+ /* flat Unicode string; len immediate counts chars */
83
+ REOP_DEF(REOP_UCFLAT, "ucflat")
84
+ /* case-independent REOP_UCFLAT */
85
+ REOP_DEF(REOP_UCFLATi, "ucflati")
86
+ /* character class with index */
87
+ REOP_DEF(REOP_CLASS, "class")
88
+ /* negated character class with index */
89
+ REOP_DEF(REOP_NCLASS, "nclass")
90
+
91
+ /* NCLASS is considered to be the last "simple" op-code */
92
+
93
+
94
+ /* alternative subexpressions in kid and next */
95
+ REOP_DEF(REOP_ALT, "alt")
96
+ /* quantified atom: atom{1,2} */
97
+ REOP_DEF(REOP_QUANT, "quant")
98
+ /* zero or more occurrences of kid */
99
+ REOP_DEF(REOP_STAR, "star")
100
+ /* one or more occurrences of kid */
101
+ REOP_DEF(REOP_PLUS, "plus")
102
+ /* optional subexpression in kid */
103
+ REOP_DEF(REOP_OPT, "opt")
104
+ /* left paren bytecode: kid is u.num'th sub-regexp */
105
+ REOP_DEF(REOP_LPAREN, "lparen")
106
+ /* right paren bytecode */
107
+ REOP_DEF(REOP_RPAREN, "rparen")
108
+ /* for deoptimized closure loops */
109
+ REOP_DEF(REOP_JUMP, "jump")
110
+ /* optimize .* to use a single opcode */
111
+ REOP_DEF(REOP_DOTSTAR, "dotstar")
112
+ /* non-capturing version of REOP_LPAREN */
113
+ REOP_DEF(REOP_LPARENNON, "lparennon")
114
+ /* zero width positive lookahead assertion */
115
+ REOP_DEF(REOP_ASSERT, "assert")
116
+ /* zero width negative lookahead assertion */
117
+ REOP_DEF(REOP_ASSERT_NOT, "assert_not")
118
+ /* sentinel at end of assertion child */
119
+ REOP_DEF(REOP_ASSERTTEST, "asserttest")
120
+ /* sentinel at end of !assertion child */
121
+ REOP_DEF(REOP_ASSERTNOTTEST, "assertnottest")
122
+ /* non-greedy version of * */
123
+ REOP_DEF(REOP_MINIMALSTAR, "minimalstar")
124
+ /* non-greedy version of + */
125
+ REOP_DEF(REOP_MINIMALPLUS, "minimalplus")
126
+ /* non-greedy version of ? */
127
+ REOP_DEF(REOP_MINIMALOPT, "minimalopt")
128
+ /* non-greedy version of {} */
129
+ REOP_DEF(REOP_MINIMALQUANT, "minimalquant")
130
+ /* sentinel at end of quantifier child */
131
+ REOP_DEF(REOP_ENDCHILD, "endchild")
132
+ /* directs execution of greedy quantifier */
133
+ REOP_DEF(REOP_REPEAT, "repeat")
134
+ /* directs execution of non-greedy quantifier */
135
+ REOP_DEF(REOP_MINIMALREPEAT, "minimalrepeat")
136
+ /* prerequisite for ALT, either of two chars */
137
+ REOP_DEF(REOP_ALTPREREQ, "altprereq")
138
+ /* prerequisite for ALT, a char or a class */
139
+ REOP_DEF(REOP_ALTPREREQ2, "altprereq2")
140
+ /* end of final alternate */
141
+ REOP_DEF(REOP_ENDALT, "endalt")
142
+ /* concatenation of terms (parse time only) */
143
+ REOP_DEF(REOP_CONCAT, "concat")
144
+ /* end of expression */
145
+ REOP_DEF(REOP_END, "end")
@@ -0,0 +1,2017 @@
1
+ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
+ * vim: set sw=4 ts=8 et tw=78:
3
+ *
4
+ * ***** BEGIN LICENSE BLOCK *****
5
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6
+ *
7
+ * The contents of this file are subject to the Mozilla Public License Version
8
+ * 1.1 (the "License"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ * http://www.mozilla.org/MPL/
11
+ *
12
+ * Software distributed under the License is distributed on an "AS IS" basis,
13
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14
+ * for the specific language governing rights and limitations under the
15
+ * License.
16
+ *
17
+ * The Original Code is Mozilla Communicator client code, released
18
+ * March 31, 1998.
19
+ *
20
+ * The Initial Developer of the Original Code is
21
+ * Netscape Communications Corporation.
22
+ * Portions created by the Initial Developer are Copyright (C) 1998
23
+ * the Initial Developer. All Rights Reserved.
24
+ *
25
+ * Contributor(s):
26
+ *
27
+ * Alternatively, the contents of this file may be used under the terms of
28
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
29
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
30
+ * in which case the provisions of the GPL or the LGPL are applicable instead
31
+ * of those above. If you wish to allow use of your version of this file only
32
+ * under the terms of either the GPL or the LGPL, and not to allow others to
33
+ * use your version of this file under the terms of the MPL, indicate your
34
+ * decision by deleting the provisions above and replace them with the notice
35
+ * and other provisions required by the GPL or the LGPL. If you do not delete
36
+ * the provisions above, a recipient may use your version of this file under
37
+ * the terms of any one of the MPL, the GPL or the LGPL.
38
+ *
39
+ * ***** END LICENSE BLOCK ***** */
40
+
41
+ /*
42
+ * JS lexical scanner.
43
+ */
44
+ #include "jsstddef.h"
45
+ #include <stdio.h> /* first to avoid trouble on some systems */
46
+ #include <errno.h>
47
+ #include <limits.h>
48
+ #include <math.h>
49
+ #ifdef HAVE_MEMORY_H
50
+ #include <memory.h>
51
+ #endif
52
+ #include <stdarg.h>
53
+ #include <stdlib.h>
54
+ #include <string.h>
55
+ #include "jstypes.h"
56
+ #include "jsarena.h" /* Added by JSIFY */
57
+ #include "jsutil.h" /* Added by JSIFY */
58
+ #include "jsdtoa.h"
59
+ #include "jsprf.h"
60
+ #include "jsapi.h"
61
+ #include "jsatom.h"
62
+ #include "jscntxt.h"
63
+ #include "jsversion.h"
64
+ #include "jsemit.h"
65
+ #include "jsexn.h"
66
+ #include "jsnum.h"
67
+ #include "jsopcode.h"
68
+ #include "jsparse.h"
69
+ #include "jsregexp.h"
70
+ #include "jsscan.h"
71
+ #include "jsscript.h"
72
+ #include "jsstaticcheck.h"
73
+
74
+ #if JS_HAS_XML_SUPPORT
75
+ #include "jsxml.h"
76
+ #endif
77
+
78
+ #define JS_KEYWORD(keyword, type, op, version) \
79
+ const char js_##keyword##_str[] = #keyword;
80
+ #include "jskeyword.tbl"
81
+ #undef JS_KEYWORD
82
+
83
+ struct keyword {
84
+ const char *chars; /* C string with keyword text */
85
+ JSTokenType tokentype; /* JSTokenType */
86
+ JSOp op; /* JSOp */
87
+ JSVersion version; /* JSVersion */
88
+ };
89
+
90
+ static const struct keyword keyword_defs[] = {
91
+ #define JS_KEYWORD(keyword, type, op, version) \
92
+ {js_##keyword##_str, type, op, version},
93
+ #include "jskeyword.tbl"
94
+ #undef JS_KEYWORD
95
+ };
96
+
97
+ #define KEYWORD_COUNT JS_ARRAY_LENGTH(keyword_defs)
98
+
99
+ static const struct keyword *
100
+ FindKeyword(const jschar *s, size_t length)
101
+ {
102
+ register size_t i;
103
+ const struct keyword *kw;
104
+ const char *chars;
105
+
106
+ JS_ASSERT(length != 0);
107
+
108
+ #define JSKW_LENGTH() length
109
+ #define JSKW_AT(column) s[column]
110
+ #define JSKW_GOT_MATCH(index) i = (index); goto got_match;
111
+ #define JSKW_TEST_GUESS(index) i = (index); goto test_guess;
112
+ #define JSKW_NO_MATCH() goto no_match;
113
+ #include "jsautokw.h"
114
+ #undef JSKW_NO_MATCH
115
+ #undef JSKW_TEST_GUESS
116
+ #undef JSKW_GOT_MATCH
117
+ #undef JSKW_AT
118
+ #undef JSKW_LENGTH
119
+
120
+ got_match:
121
+ return &keyword_defs[i];
122
+
123
+ test_guess:
124
+ kw = &keyword_defs[i];
125
+ chars = kw->chars;
126
+ do {
127
+ if (*s++ != (unsigned char)(*chars++))
128
+ goto no_match;
129
+ } while (--length != 0);
130
+ return kw;
131
+
132
+ no_match:
133
+ return NULL;
134
+ }
135
+
136
+ JSTokenType
137
+ js_CheckKeyword(const jschar *str, size_t length)
138
+ {
139
+ const struct keyword *kw;
140
+
141
+ JS_ASSERT(length != 0);
142
+ kw = FindKeyword(str, length);
143
+ return kw ? kw->tokentype : TOK_EOF;
144
+ }
145
+
146
+ JS_FRIEND_API(void)
147
+ js_MapKeywords(void (*mapfun)(const char *))
148
+ {
149
+ size_t i;
150
+
151
+ for (i = 0; i != KEYWORD_COUNT; ++i)
152
+ mapfun(keyword_defs[i].chars);
153
+ }
154
+
155
+ JSBool
156
+ js_IsIdentifier(JSString *str)
157
+ {
158
+ size_t length;
159
+ jschar c, *chars, *end;
160
+
161
+ JSSTRING_CHARS_AND_LENGTH(str, chars, length);
162
+ if (length == 0)
163
+ return JS_FALSE;
164
+ c = *chars;
165
+ if (!JS_ISIDSTART(c))
166
+ return JS_FALSE;
167
+ end = chars + length;
168
+ while (++chars != end) {
169
+ c = *chars;
170
+ if (!JS_ISIDENT(c))
171
+ return JS_FALSE;
172
+ }
173
+ return JS_TRUE;
174
+ }
175
+
176
+ #define TBMIN 64
177
+
178
+ static JSBool
179
+ GrowTokenBuf(JSStringBuffer *sb, size_t newlength)
180
+ {
181
+ JSContext *cx;
182
+ jschar *base;
183
+ ptrdiff_t offset, length;
184
+ size_t tbsize;
185
+ JSArenaPool *pool;
186
+
187
+ cx = (JSContext*) sb->data;
188
+ base = sb->base;
189
+ offset = PTRDIFF(sb->ptr, base, jschar);
190
+ pool = &cx->tempPool;
191
+ if (!base) {
192
+ tbsize = TBMIN * sizeof(jschar);
193
+ length = TBMIN - 1;
194
+ JS_ARENA_ALLOCATE_CAST(base, jschar *, pool, tbsize);
195
+ } else {
196
+ length = PTRDIFF(sb->limit, base, jschar);
197
+ if ((size_t)length >= ~(size_t)0 / sizeof(jschar)) {
198
+ base = NULL;
199
+ } else {
200
+ tbsize = (length + 1) * sizeof(jschar);
201
+ length += length + 1;
202
+ JS_ARENA_GROW_CAST(base, jschar *, pool, tbsize, tbsize);
203
+ }
204
+ }
205
+ if (!base) {
206
+ js_ReportOutOfScriptQuota(cx);
207
+ sb->base = STRING_BUFFER_ERROR_BASE;
208
+ return JS_FALSE;
209
+ }
210
+ sb->base = base;
211
+ sb->limit = base + length;
212
+ sb->ptr = base + offset;
213
+ return JS_TRUE;
214
+ }
215
+
216
+ JSBool
217
+ js_InitTokenStream(JSContext *cx, JSTokenStream *ts,
218
+ const jschar *base, size_t length,
219
+ FILE *fp, const char *filename, uintN lineno)
220
+ {
221
+ jschar *buf;
222
+ size_t nb;
223
+
224
+ JS_ASSERT_IF(fp, !base);
225
+ JS_ASSERT_IF(!base, length == 0);
226
+ nb = fp
227
+ ? 2 * JS_LINE_LIMIT * sizeof(jschar)
228
+ : JS_LINE_LIMIT * sizeof(jschar);
229
+ JS_ARENA_ALLOCATE_CAST(buf, jschar *, &cx->tempPool, nb);
230
+ if (!buf) {
231
+ js_ReportOutOfScriptQuota(cx);
232
+ return JS_FALSE;
233
+ }
234
+ memset(buf, 0, nb);
235
+ memset(ts, 0, sizeof(*ts));
236
+ ts->filename = filename;
237
+ ts->lineno = lineno;
238
+ ts->linebuf.base = ts->linebuf.limit = ts->linebuf.ptr = buf;
239
+ if (fp) {
240
+ ts->file = fp;
241
+ ts->userbuf.base = buf + JS_LINE_LIMIT;
242
+ ts->userbuf.ptr = ts->userbuf.limit = ts->userbuf.base + JS_LINE_LIMIT;
243
+ } else {
244
+ ts->userbuf.base = (jschar *)base;
245
+ ts->userbuf.limit = (jschar *)base + length;
246
+ ts->userbuf.ptr = (jschar *)base;
247
+ }
248
+ ts->tokenbuf.grow = GrowTokenBuf;
249
+ ts->tokenbuf.data = cx;
250
+ ts->listener = cx->debugHooks->sourceHandler;
251
+ ts->listenerData = cx->debugHooks->sourceHandlerData;
252
+ return JS_TRUE;
253
+ }
254
+
255
+ void
256
+ js_CloseTokenStream(JSContext *cx, JSTokenStream *ts)
257
+ {
258
+ if (ts->flags & TSF_OWNFILENAME)
259
+ JS_free(cx, (void *) ts->filename);
260
+ }
261
+
262
+ JS_FRIEND_API(int)
263
+ js_fgets(char *buf, int size, FILE *file)
264
+ {
265
+ int n, i, c;
266
+ JSBool crflag;
267
+
268
+ n = size - 1;
269
+ if (n < 0)
270
+ return -1;
271
+
272
+ crflag = JS_FALSE;
273
+ for (i = 0; i < n && (c = getc(file)) != EOF; i++) {
274
+ buf[i] = c;
275
+ if (c == '\n') { /* any \n ends a line */
276
+ i++; /* keep the \n; we know there is room for \0 */
277
+ break;
278
+ }
279
+ if (crflag) { /* \r not followed by \n ends line at the \r */
280
+ ungetc(c, file);
281
+ break; /* and overwrite c in buf with \0 */
282
+ }
283
+ crflag = (c == '\r');
284
+ }
285
+
286
+ buf[i] = '\0';
287
+ return i;
288
+ }
289
+
290
+ static int32
291
+ GetChar(JSTokenStream *ts)
292
+ {
293
+ int32 c;
294
+ ptrdiff_t i, j, len, olen;
295
+ JSBool crflag;
296
+ char cbuf[JS_LINE_LIMIT];
297
+ jschar *ubuf, *nl;
298
+
299
+ if (ts->ungetpos != 0) {
300
+ c = ts->ungetbuf[--ts->ungetpos];
301
+ } else {
302
+ if (ts->linebuf.ptr == ts->linebuf.limit) {
303
+ len = PTRDIFF(ts->userbuf.limit, ts->userbuf.ptr, jschar);
304
+ if (len <= 0) {
305
+ if (!ts->file) {
306
+ ts->flags |= TSF_EOF;
307
+ return EOF;
308
+ }
309
+
310
+ /* Fill ts->userbuf so that \r and \r\n convert to \n. */
311
+ crflag = (ts->flags & TSF_CRFLAG) != 0;
312
+ len = js_fgets(cbuf, JS_LINE_LIMIT - crflag, ts->file);
313
+ if (len <= 0) {
314
+ ts->flags |= TSF_EOF;
315
+ return EOF;
316
+ }
317
+ olen = len;
318
+ ubuf = ts->userbuf.base;
319
+ i = 0;
320
+ if (crflag) {
321
+ ts->flags &= ~TSF_CRFLAG;
322
+ if (cbuf[0] != '\n') {
323
+ ubuf[i++] = '\n';
324
+ len++;
325
+ ts->linepos--;
326
+ }
327
+ }
328
+ for (j = 0; i < len; i++, j++)
329
+ ubuf[i] = (jschar) (unsigned char) cbuf[j];
330
+ ts->userbuf.limit = ubuf + len;
331
+ ts->userbuf.ptr = ubuf;
332
+ }
333
+ if (ts->listener) {
334
+ ts->listener(ts->filename, ts->lineno, ts->userbuf.ptr, len,
335
+ &ts->listenerTSData, ts->listenerData);
336
+ }
337
+
338
+ nl = ts->saveEOL;
339
+ if (!nl) {
340
+ /*
341
+ * Any one of \n, \r, or \r\n ends a line (the longest
342
+ * match wins). Also allow the Unicode line and paragraph
343
+ * separators.
344
+ */
345
+ for (nl = ts->userbuf.ptr; nl < ts->userbuf.limit; nl++) {
346
+ /*
347
+ * Try to prevent value-testing on most characters by
348
+ * filtering out characters that aren't 000x or 202x.
349
+ */
350
+ if ((*nl & 0xDFD0) == 0) {
351
+ if (*nl == '\n')
352
+ break;
353
+ if (*nl == '\r') {
354
+ if (nl + 1 < ts->userbuf.limit && nl[1] == '\n')
355
+ nl++;
356
+ break;
357
+ }
358
+ if (*nl == LINE_SEPARATOR || *nl == PARA_SEPARATOR)
359
+ break;
360
+ }
361
+ }
362
+ }
363
+
364
+ /*
365
+ * If there was a line terminator, copy thru it into linebuf.
366
+ * Else copy JS_LINE_LIMIT-1 bytes into linebuf.
367
+ */
368
+ if (nl < ts->userbuf.limit)
369
+ len = PTRDIFF(nl, ts->userbuf.ptr, jschar) + 1;
370
+ if (len >= JS_LINE_LIMIT) {
371
+ len = JS_LINE_LIMIT - 1;
372
+ ts->saveEOL = nl;
373
+ } else {
374
+ ts->saveEOL = NULL;
375
+ }
376
+ js_strncpy(ts->linebuf.base, ts->userbuf.ptr, len);
377
+ ts->userbuf.ptr += len;
378
+ olen = len;
379
+
380
+ /*
381
+ * Make sure linebuf contains \n for EOL (don't do this in
382
+ * userbuf because the user's string might be readonly).
383
+ */
384
+ if (nl < ts->userbuf.limit) {
385
+ if (*nl == '\r') {
386
+ if (ts->linebuf.base[len-1] == '\r') {
387
+ /*
388
+ * Does the line segment end in \r? We must check
389
+ * for a \n at the front of the next segment before
390
+ * storing a \n into linebuf. This case matters
391
+ * only when we're reading from a file.
392
+ */
393
+ if (nl + 1 == ts->userbuf.limit && ts->file) {
394
+ len--;
395
+ ts->flags |= TSF_CRFLAG; /* clear NLFLAG? */
396
+ if (len == 0) {
397
+ /*
398
+ * This can happen when a segment ends in
399
+ * \r\r. Start over. ptr == limit in this
400
+ * case, so we'll fall into buffer-filling
401
+ * code.
402
+ */
403
+ return GetChar(ts);
404
+ }
405
+ } else {
406
+ ts->linebuf.base[len-1] = '\n';
407
+ }
408
+ }
409
+ } else if (*nl == '\n') {
410
+ if (nl > ts->userbuf.base &&
411
+ nl[-1] == '\r' &&
412
+ ts->linebuf.base[len-2] == '\r') {
413
+ len--;
414
+ JS_ASSERT(ts->linebuf.base[len] == '\n');
415
+ ts->linebuf.base[len-1] = '\n';
416
+ }
417
+ } else if (*nl == LINE_SEPARATOR || *nl == PARA_SEPARATOR) {
418
+ ts->linebuf.base[len-1] = '\n';
419
+ }
420
+ }
421
+
422
+ /* Reset linebuf based on adjusted segment length. */
423
+ ts->linebuf.limit = ts->linebuf.base + len;
424
+ ts->linebuf.ptr = ts->linebuf.base;
425
+
426
+ /* Update position of linebuf within physical userbuf line. */
427
+ if (!(ts->flags & TSF_NLFLAG))
428
+ ts->linepos += ts->linelen;
429
+ else
430
+ ts->linepos = 0;
431
+ if (ts->linebuf.limit[-1] == '\n')
432
+ ts->flags |= TSF_NLFLAG;
433
+ else
434
+ ts->flags &= ~TSF_NLFLAG;
435
+
436
+ /* Update linelen from original segment length. */
437
+ ts->linelen = olen;
438
+ }
439
+ c = *ts->linebuf.ptr++;
440
+ }
441
+ if (c == '\n')
442
+ ts->lineno++;
443
+ return c;
444
+ }
445
+
446
+ static void
447
+ UngetChar(JSTokenStream *ts, int32 c)
448
+ {
449
+ if (c == EOF)
450
+ return;
451
+ JS_ASSERT(ts->ungetpos < JS_ARRAY_LENGTH(ts->ungetbuf));
452
+ if (c == '\n')
453
+ ts->lineno--;
454
+ ts->ungetbuf[ts->ungetpos++] = (jschar)c;
455
+ }
456
+
457
+ static int32
458
+ PeekChar(JSTokenStream *ts)
459
+ {
460
+ int32 c;
461
+
462
+ c = GetChar(ts);
463
+ UngetChar(ts, c);
464
+ return c;
465
+ }
466
+
467
+ /*
468
+ * Peek n chars ahead into ts. Return true if n chars were read, false if
469
+ * there weren't enough characters in the input stream. This function cannot
470
+ * be used to peek into or past a newline.
471
+ */
472
+ static JSBool
473
+ PeekChars(JSTokenStream *ts, intN n, jschar *cp)
474
+ {
475
+ intN i, j;
476
+ int32 c;
477
+
478
+ for (i = 0; i < n; i++) {
479
+ c = GetChar(ts);
480
+ if (c == EOF)
481
+ break;
482
+ if (c == '\n') {
483
+ UngetChar(ts, c);
484
+ break;
485
+ }
486
+ cp[i] = (jschar)c;
487
+ }
488
+ for (j = i - 1; j >= 0; j--)
489
+ UngetChar(ts, cp[j]);
490
+ return i == n;
491
+ }
492
+
493
+ static void
494
+ SkipChars(JSTokenStream *ts, intN n)
495
+ {
496
+ while (--n >= 0)
497
+ GetChar(ts);
498
+ }
499
+
500
+ static JSBool
501
+ MatchChar(JSTokenStream *ts, int32 expect)
502
+ {
503
+ int32 c;
504
+
505
+ c = GetChar(ts);
506
+ if (c == expect)
507
+ return JS_TRUE;
508
+ UngetChar(ts, c);
509
+ return JS_FALSE;
510
+ }
511
+
512
+ JSBool
513
+ js_ReportCompileErrorNumber(JSContext *cx, JSTokenStream *ts, JSParseNode *pn,
514
+ uintN flags, uintN errorNumber, ...)
515
+ {
516
+ JSErrorReport report;
517
+ char *message;
518
+ size_t linelength;
519
+ jschar *linechars;
520
+ char *linebytes;
521
+ va_list ap;
522
+ JSBool warning, ok;
523
+ JSTokenPos *tp;
524
+ uintN index, i;
525
+ JSErrorReporter onError;
526
+
527
+ JS_ASSERT(ts->linebuf.limit < ts->linebuf.base + JS_LINE_LIMIT);
528
+
529
+ if ((flags & JSREPORT_STRICT) && !JS_HAS_STRICT_OPTION(cx))
530
+ return JS_TRUE;
531
+
532
+ memset(&report, 0, sizeof report);
533
+ report.flags = flags;
534
+ report.errorNumber = errorNumber;
535
+ message = NULL;
536
+ linechars = NULL;
537
+ linebytes = NULL;
538
+
539
+ MUST_FLOW_THROUGH("out");
540
+ va_start(ap, errorNumber);
541
+ ok = js_ExpandErrorArguments(cx, js_GetErrorMessage, NULL,
542
+ errorNumber, &message, &report, &warning,
543
+ !(flags & JSREPORT_UC), ap);
544
+ va_end(ap);
545
+ if (!ok) {
546
+ warning = JS_FALSE;
547
+ goto out;
548
+ }
549
+
550
+ report.filename = ts->filename;
551
+
552
+ if (pn) {
553
+ report.lineno = pn->pn_pos.begin.lineno;
554
+ if (report.lineno != ts->lineno)
555
+ goto report;
556
+ tp = &pn->pn_pos;
557
+ } else {
558
+ /* Point to the current token, not the next one to get. */
559
+ tp = &ts->tokens[ts->cursor].pos;
560
+ }
561
+ report.lineno = ts->lineno;
562
+ linelength = PTRDIFF(ts->linebuf.limit, ts->linebuf.base, jschar);
563
+ linechars = (jschar *)JS_malloc(cx, (linelength + 1) * sizeof(jschar));
564
+ if (!linechars) {
565
+ warning = JS_FALSE;
566
+ goto out;
567
+ }
568
+ memcpy(linechars, ts->linebuf.base, linelength * sizeof(jschar));
569
+ linechars[linelength] = 0;
570
+ linebytes = js_DeflateString(cx, linechars, linelength);
571
+ if (!linebytes) {
572
+ warning = JS_FALSE;
573
+ goto out;
574
+ }
575
+ report.linebuf = linebytes;
576
+
577
+ /*
578
+ * FIXME: What should instead happen here is that we should
579
+ * find error-tokens in userbuf, if !ts->file. That will
580
+ * allow us to deliver a more helpful error message, which
581
+ * includes all or part of the bad string or bad token. The
582
+ * code here yields something that looks truncated.
583
+ * See https://bugzilla.mozilla.org/show_bug.cgi?id=352970
584
+ */
585
+ index = 0;
586
+ if (tp->begin.lineno == tp->end.lineno) {
587
+ if (tp->begin.index < ts->linepos)
588
+ goto report;
589
+
590
+ index = tp->begin.index - ts->linepos;
591
+ }
592
+
593
+ report.tokenptr = report.linebuf + index;
594
+ report.uclinebuf = linechars;
595
+ report.uctokenptr = report.uclinebuf + index;
596
+
597
+ /*
598
+ * If there's a runtime exception type associated with this error
599
+ * number, set that as the pending exception. For errors occuring at
600
+ * compile time, this is very likely to be a JSEXN_SYNTAXERR.
601
+ *
602
+ * If an exception is thrown but not caught, the JSREPORT_EXCEPTION
603
+ * flag will be set in report.flags. Proper behavior for an error
604
+ * reporter is to ignore a report with this flag for all but top-level
605
+ * compilation errors. The exception will remain pending, and so long
606
+ * as the non-top-level "load", "eval", or "compile" native function
607
+ * returns false, the top-level reporter will eventually receive the
608
+ * uncaught exception report.
609
+ *
610
+ * XXX it'd probably be best if there was only one call to this
611
+ * function, but there seem to be two error reporter call points.
612
+ */
613
+ report:
614
+ onError = cx->errorReporter;
615
+
616
+ /*
617
+ * Try to raise an exception only if there isn't one already set --
618
+ * otherwise the exception will describe the last compile-time error,
619
+ * which is likely spurious.
620
+ */
621
+ if (!(ts->flags & TSF_ERROR)) {
622
+ if (js_ErrorToException(cx, message, &report))
623
+ onError = NULL;
624
+ }
625
+
626
+ /*
627
+ * Suppress any compile-time errors that don't occur at the top level.
628
+ * This may still fail, as interplevel may be zero in contexts where we
629
+ * don't really want to call the error reporter, as when js is called
630
+ * by other code which could catch the error.
631
+ */
632
+ if (cx->interpLevel != 0 && !JSREPORT_IS_WARNING(flags))
633
+ onError = NULL;
634
+
635
+ if (onError) {
636
+ JSDebugErrorHook hook = cx->debugHooks->debugErrorHook;
637
+
638
+ /*
639
+ * If debugErrorHook is present then we give it a chance to veto
640
+ * sending the error on to the regular error reporter.
641
+ */
642
+ if (hook && !hook(cx, message, &report,
643
+ cx->debugHooks->debugErrorHookData)) {
644
+ onError = NULL;
645
+ }
646
+ }
647
+ if (onError)
648
+ (*onError)(cx, message, &report);
649
+
650
+ out:
651
+ if (linebytes)
652
+ JS_free(cx, linebytes);
653
+ if (linechars)
654
+ JS_free(cx, linechars);
655
+ if (message)
656
+ JS_free(cx, message);
657
+ if (report.ucmessage)
658
+ JS_free(cx, (void *)report.ucmessage);
659
+
660
+ if (report.messageArgs) {
661
+ if (!(flags & JSREPORT_UC)) {
662
+ i = 0;
663
+ while (report.messageArgs[i])
664
+ JS_free(cx, (void *)report.messageArgs[i++]);
665
+ }
666
+ JS_free(cx, (void *)report.messageArgs);
667
+ }
668
+
669
+ if (!JSREPORT_IS_WARNING(flags)) {
670
+ /* Set the error flag to suppress spurious reports. */
671
+ ts->flags |= TSF_ERROR;
672
+ }
673
+
674
+ return warning;
675
+ }
676
+
677
+ static JSBool
678
+ GrowStringBuffer(JSStringBuffer *sb, size_t newlength)
679
+ {
680
+ ptrdiff_t offset;
681
+ jschar *bp;
682
+
683
+ offset = PTRDIFF(sb->ptr, sb->base, jschar);
684
+ JS_ASSERT(offset >= 0);
685
+ newlength += offset + 1;
686
+ if ((size_t)offset < newlength && newlength < ~(size_t)0 / sizeof(jschar))
687
+ bp = (jschar *) realloc(sb->base, newlength * sizeof(jschar));
688
+ else
689
+ bp = NULL;
690
+ if (!bp) {
691
+ free(sb->base);
692
+ sb->base = STRING_BUFFER_ERROR_BASE;
693
+ return JS_FALSE;
694
+ }
695
+ sb->base = bp;
696
+ sb->ptr = bp + offset;
697
+ sb->limit = bp + newlength - 1;
698
+ return JS_TRUE;
699
+ }
700
+
701
+ static void
702
+ FreeStringBuffer(JSStringBuffer *sb)
703
+ {
704
+ JS_ASSERT(STRING_BUFFER_OK(sb));
705
+ if (sb->base)
706
+ free(sb->base);
707
+ }
708
+
709
+ void
710
+ js_InitStringBuffer(JSStringBuffer *sb)
711
+ {
712
+ sb->base = sb->limit = sb->ptr = NULL;
713
+ sb->data = NULL;
714
+ sb->grow = GrowStringBuffer;
715
+ sb->free = FreeStringBuffer;
716
+ }
717
+
718
+ void
719
+ js_FinishStringBuffer(JSStringBuffer *sb)
720
+ {
721
+ sb->free(sb);
722
+ }
723
+
724
+ #define ENSURE_STRING_BUFFER(sb,n) \
725
+ ((sb)->ptr + (n) <= (sb)->limit || sb->grow(sb, n))
726
+
727
+ static void
728
+ FastAppendChar(JSStringBuffer *sb, jschar c)
729
+ {
730
+ if (!STRING_BUFFER_OK(sb))
731
+ return;
732
+ if (!ENSURE_STRING_BUFFER(sb, 1))
733
+ return;
734
+ *sb->ptr++ = c;
735
+ }
736
+
737
+ void
738
+ js_AppendChar(JSStringBuffer *sb, jschar c)
739
+ {
740
+ jschar *bp;
741
+
742
+ if (!STRING_BUFFER_OK(sb))
743
+ return;
744
+ if (!ENSURE_STRING_BUFFER(sb, 1))
745
+ return;
746
+ bp = sb->ptr;
747
+ *bp++ = c;
748
+ *bp = 0;
749
+ sb->ptr = bp;
750
+ }
751
+
752
+ void
753
+ js_AppendUCString(JSStringBuffer *sb, const jschar *buf, uintN len)
754
+ {
755
+ jschar *bp;
756
+
757
+ if (!STRING_BUFFER_OK(sb))
758
+ return;
759
+ if (len == 0 || !ENSURE_STRING_BUFFER(sb, len))
760
+ return;
761
+ bp = sb->ptr;
762
+ js_strncpy(bp, buf, len);
763
+ bp += len;
764
+ *bp = 0;
765
+ sb->ptr = bp;
766
+ }
767
+
768
+ #if JS_HAS_XML_SUPPORT
769
+
770
+ void
771
+ js_RepeatChar(JSStringBuffer *sb, jschar c, uintN count)
772
+ {
773
+ jschar *bp;
774
+
775
+ if (!STRING_BUFFER_OK(sb) || count == 0)
776
+ return;
777
+ if (!ENSURE_STRING_BUFFER(sb, count))
778
+ return;
779
+ for (bp = sb->ptr; count; --count)
780
+ *bp++ = c;
781
+ *bp = 0;
782
+ sb->ptr = bp;
783
+ }
784
+
785
+ void
786
+ js_AppendCString(JSStringBuffer *sb, const char *asciiz)
787
+ {
788
+ size_t length;
789
+ jschar *bp;
790
+
791
+ if (!STRING_BUFFER_OK(sb) || *asciiz == '\0')
792
+ return;
793
+ length = strlen(asciiz);
794
+ if (!ENSURE_STRING_BUFFER(sb, length))
795
+ return;
796
+ for (bp = sb->ptr; length; --length)
797
+ *bp++ = (jschar) *asciiz++;
798
+ *bp = 0;
799
+ sb->ptr = bp;
800
+ }
801
+
802
+ void
803
+ js_AppendJSString(JSStringBuffer *sb, JSString *str)
804
+ {
805
+ js_AppendUCString(sb, JSSTRING_CHARS(str), JSSTRING_LENGTH(str));
806
+ }
807
+
808
+ static JSBool
809
+ GetXMLEntity(JSContext *cx, JSTokenStream *ts)
810
+ {
811
+ ptrdiff_t offset, length, i;
812
+ int32 c, d;
813
+ JSBool ispair;
814
+ jschar *bp, digit;
815
+ char *bytes;
816
+ JSErrNum msg;
817
+
818
+ /* Put the entity, including the '&' already scanned, in ts->tokenbuf. */
819
+ offset = PTRDIFF(ts->tokenbuf.ptr, ts->tokenbuf.base, jschar);
820
+ FastAppendChar(&ts->tokenbuf, '&');
821
+ if (!STRING_BUFFER_OK(&ts->tokenbuf))
822
+ return JS_FALSE;
823
+ while ((c = GetChar(ts)) != ';') {
824
+ if (c == EOF || c == '\n') {
825
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
826
+ JSMSG_END_OF_XML_ENTITY);
827
+ return JS_FALSE;
828
+ }
829
+ FastAppendChar(&ts->tokenbuf, (jschar) c);
830
+ if (!STRING_BUFFER_OK(&ts->tokenbuf))
831
+ return JS_FALSE;
832
+ }
833
+
834
+ /* Let length be the number of jschars after the '&', including the ';'. */
835
+ length = PTRDIFF(ts->tokenbuf.ptr, ts->tokenbuf.base, jschar) - offset;
836
+ bp = ts->tokenbuf.base + offset;
837
+ c = d = 0;
838
+ ispair = JS_FALSE;
839
+ if (length > 2 && bp[1] == '#') {
840
+ /* Match a well-formed XML Character Reference. */
841
+ i = 2;
842
+ if (length > 3 && JS_TOLOWER(bp[i]) == 'x') {
843
+ if (length > 9) /* at most 6 hex digits allowed */
844
+ goto badncr;
845
+ while (++i < length) {
846
+ digit = bp[i];
847
+ if (!JS7_ISHEX(digit))
848
+ goto badncr;
849
+ c = (c << 4) + JS7_UNHEX(digit);
850
+ }
851
+ } else {
852
+ while (i < length) {
853
+ digit = bp[i++];
854
+ if (!JS7_ISDEC(digit))
855
+ goto badncr;
856
+ c = (c * 10) + JS7_UNDEC(digit);
857
+ if (c < 0)
858
+ goto badncr;
859
+ }
860
+ }
861
+
862
+ if (0x10000 <= c && c <= 0x10FFFF) {
863
+ /* Form a surrogate pair (c, d) -- c is the high surrogate. */
864
+ d = 0xDC00 + (c & 0x3FF);
865
+ c = 0xD7C0 + (c >> 10);
866
+ ispair = JS_TRUE;
867
+ } else {
868
+ /* Enforce the http://www.w3.org/TR/REC-xml/#wf-Legalchar WFC. */
869
+ if (c != 0x9 && c != 0xA && c != 0xD &&
870
+ !(0x20 <= c && c <= 0xD7FF) &&
871
+ !(0xE000 <= c && c <= 0xFFFD)) {
872
+ goto badncr;
873
+ }
874
+ }
875
+ } else {
876
+ /* Try to match one of the five XML 1.0 predefined entities. */
877
+ switch (length) {
878
+ case 3:
879
+ if (bp[2] == 't') {
880
+ if (bp[1] == 'l')
881
+ c = '<';
882
+ else if (bp[1] == 'g')
883
+ c = '>';
884
+ }
885
+ break;
886
+ case 4:
887
+ if (bp[1] == 'a' && bp[2] == 'm' && bp[3] == 'p')
888
+ c = '&';
889
+ break;
890
+ case 5:
891
+ if (bp[3] == 'o') {
892
+ if (bp[1] == 'a' && bp[2] == 'p' && bp[4] == 's')
893
+ c = '\'';
894
+ else if (bp[1] == 'q' && bp[2] == 'u' && bp[4] == 't')
895
+ c = '"';
896
+ }
897
+ break;
898
+ }
899
+ if (c == 0) {
900
+ msg = JSMSG_UNKNOWN_XML_ENTITY;
901
+ goto bad;
902
+ }
903
+ }
904
+
905
+ /* If we matched, retract ts->tokenbuf and store the entity's value. */
906
+ *bp++ = (jschar) c;
907
+ if (ispair)
908
+ *bp++ = (jschar) d;
909
+ *bp = 0;
910
+ ts->tokenbuf.ptr = bp;
911
+ return JS_TRUE;
912
+
913
+ badncr:
914
+ msg = JSMSG_BAD_XML_NCR;
915
+ bad:
916
+ /* No match: throw a TypeError per ECMA-357 10.3.2.1 step 8(a). */
917
+ JS_ASSERT(STRING_BUFFER_OK(&ts->tokenbuf));
918
+ JS_ASSERT(PTRDIFF(ts->tokenbuf.ptr, bp, jschar) >= 1);
919
+ bytes = js_DeflateString(cx, bp + 1,
920
+ PTRDIFF(ts->tokenbuf.ptr, bp, jschar) - 1);
921
+ if (bytes) {
922
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
923
+ msg, bytes);
924
+ JS_free(cx, bytes);
925
+ }
926
+ return JS_FALSE;
927
+ }
928
+
929
+ #endif /* JS_HAS_XML_SUPPORT */
930
+
931
+ JSTokenType
932
+ js_PeekToken(JSContext *cx, JSTokenStream *ts)
933
+ {
934
+ JSTokenType tt;
935
+
936
+ if (ts->lookahead != 0) {
937
+ tt = ts->tokens[(ts->cursor + ts->lookahead) & NTOKENS_MASK].type;
938
+ } else {
939
+ tt = js_GetToken(cx, ts);
940
+ js_UngetToken(ts);
941
+ }
942
+ return tt;
943
+ }
944
+
945
+ JSTokenType
946
+ js_PeekTokenSameLine(JSContext *cx, JSTokenStream *ts)
947
+ {
948
+ JSTokenType tt;
949
+
950
+ if (!ON_CURRENT_LINE(ts, CURRENT_TOKEN(ts).pos))
951
+ return TOK_EOL;
952
+ ts->flags |= TSF_NEWLINES;
953
+ tt = js_PeekToken(cx, ts);
954
+ ts->flags &= ~TSF_NEWLINES;
955
+ return tt;
956
+ }
957
+
958
+ /*
959
+ * We have encountered a '\': check for a Unicode escape sequence after it,
960
+ * returning the character code value if we found a Unicode escape sequence.
961
+ * Otherwise, non-destructively return the original '\'.
962
+ */
963
+ static int32
964
+ GetUnicodeEscape(JSTokenStream *ts)
965
+ {
966
+ jschar cp[5];
967
+ int32 c;
968
+
969
+ if (PeekChars(ts, 5, cp) && cp[0] == 'u' &&
970
+ JS7_ISHEX(cp[1]) && JS7_ISHEX(cp[2]) &&
971
+ JS7_ISHEX(cp[3]) && JS7_ISHEX(cp[4]))
972
+ {
973
+ c = (((((JS7_UNHEX(cp[1]) << 4)
974
+ + JS7_UNHEX(cp[2])) << 4)
975
+ + JS7_UNHEX(cp[3])) << 4)
976
+ + JS7_UNHEX(cp[4]);
977
+ SkipChars(ts, 5);
978
+ return c;
979
+ }
980
+ return '\\';
981
+ }
982
+
983
+ static JSToken *
984
+ NewToken(JSTokenStream *ts, ptrdiff_t adjust)
985
+ {
986
+ JSToken *tp;
987
+
988
+ ts->cursor = (ts->cursor + 1) & NTOKENS_MASK;
989
+ tp = &CURRENT_TOKEN(ts);
990
+ tp->ptr = ts->linebuf.ptr + adjust;
991
+ tp->pos.begin.index = ts->linepos +
992
+ PTRDIFF(tp->ptr, ts->linebuf.base, jschar) -
993
+ ts->ungetpos;
994
+ tp->pos.begin.lineno = tp->pos.end.lineno = (uint16)ts->lineno;
995
+ return tp;
996
+ }
997
+
998
+ static JS_ALWAYS_INLINE JSBool
999
+ ScanAsSpace(jschar c)
1000
+ {
1001
+ /* Treat little- and big-endian BOMs as whitespace for compatibility. */
1002
+ if (JS_ISSPACE(c) || c == 0xfffe || c == 0xfeff)
1003
+ return JS_TRUE;
1004
+ return JS_FALSE;
1005
+ }
1006
+
1007
+ JSTokenType
1008
+ js_GetToken(JSContext *cx, JSTokenStream *ts)
1009
+ {
1010
+ JSTokenType tt;
1011
+ int32 c, qc;
1012
+ JSToken *tp;
1013
+ JSAtom *atom;
1014
+ JSBool hadUnicodeEscape;
1015
+ const struct keyword *kw;
1016
+ #if JS_HAS_XML_SUPPORT
1017
+ JSBool inTarget;
1018
+ size_t targetLength;
1019
+ ptrdiff_t contentIndex;
1020
+ #endif
1021
+
1022
+ #define INIT_TOKENBUF() (ts->tokenbuf.ptr = ts->tokenbuf.base)
1023
+ #define TOKENBUF_LENGTH() PTRDIFF(ts->tokenbuf.ptr, ts->tokenbuf.base, jschar)
1024
+ #define TOKENBUF_OK() STRING_BUFFER_OK(&ts->tokenbuf)
1025
+ #define TOKENBUF_TO_ATOM() (TOKENBUF_OK() \
1026
+ ? js_AtomizeChars(cx, \
1027
+ TOKENBUF_BASE(), \
1028
+ TOKENBUF_LENGTH(), \
1029
+ 0) \
1030
+ : NULL)
1031
+ #define ADD_TO_TOKENBUF(c) FastAppendChar(&ts->tokenbuf, (jschar) (c))
1032
+
1033
+ /* The following 4 macros should only be used when TOKENBUF_OK() is true. */
1034
+ #define TOKENBUF_BASE() (ts->tokenbuf.base)
1035
+ #define TOKENBUF_END() (ts->tokenbuf.ptr)
1036
+ #define TOKENBUF_CHAR(i) (ts->tokenbuf.base[i])
1037
+ #define TRIM_TOKENBUF(i) (ts->tokenbuf.ptr = ts->tokenbuf.base + i)
1038
+ #define NUL_TERM_TOKENBUF() (*ts->tokenbuf.ptr = 0)
1039
+
1040
+ /* Check for a pushed-back token resulting from mismatching lookahead. */
1041
+ while (ts->lookahead != 0) {
1042
+ JS_ASSERT(!(ts->flags & TSF_XMLTEXTMODE));
1043
+ ts->lookahead--;
1044
+ ts->cursor = (ts->cursor + 1) & NTOKENS_MASK;
1045
+ tt = CURRENT_TOKEN(ts).type;
1046
+ if (tt != TOK_EOL || (ts->flags & TSF_NEWLINES))
1047
+ return tt;
1048
+ }
1049
+
1050
+ /* If there was a fatal error, keep returning TOK_ERROR. */
1051
+ if (ts->flags & TSF_ERROR)
1052
+ return TOK_ERROR;
1053
+
1054
+ #if JS_HAS_XML_SUPPORT
1055
+ if (ts->flags & TSF_XMLTEXTMODE) {
1056
+ tt = TOK_XMLSPACE; /* veto if non-space, return TOK_XMLTEXT */
1057
+ tp = NewToken(ts, 0);
1058
+ INIT_TOKENBUF();
1059
+ qc = (ts->flags & TSF_XMLONLYMODE) ? '<' : '{';
1060
+
1061
+ while ((c = GetChar(ts)) != qc && c != '<' && c != EOF) {
1062
+ if (c == '&' && qc == '<') {
1063
+ if (!GetXMLEntity(cx, ts))
1064
+ goto error;
1065
+ tt = TOK_XMLTEXT;
1066
+ continue;
1067
+ }
1068
+
1069
+ if (!JS_ISXMLSPACE(c))
1070
+ tt = TOK_XMLTEXT;
1071
+ ADD_TO_TOKENBUF(c);
1072
+ }
1073
+ UngetChar(ts, c);
1074
+
1075
+ if (TOKENBUF_LENGTH() == 0) {
1076
+ atom = NULL;
1077
+ } else {
1078
+ atom = TOKENBUF_TO_ATOM();
1079
+ if (!atom)
1080
+ goto error;
1081
+ }
1082
+ tp->pos.end.lineno = (uint16)ts->lineno;
1083
+ tp->t_op = JSOP_STRING;
1084
+ tp->t_atom = atom;
1085
+ goto out;
1086
+ }
1087
+
1088
+ if (ts->flags & TSF_XMLTAGMODE) {
1089
+ tp = NewToken(ts, 0);
1090
+ c = GetChar(ts);
1091
+ if (JS_ISXMLSPACE(c)) {
1092
+ do {
1093
+ c = GetChar(ts);
1094
+ } while (JS_ISXMLSPACE(c));
1095
+ UngetChar(ts, c);
1096
+ tt = TOK_XMLSPACE;
1097
+ goto out;
1098
+ }
1099
+
1100
+ if (c == EOF) {
1101
+ tt = TOK_EOF;
1102
+ goto out;
1103
+ }
1104
+
1105
+ INIT_TOKENBUF();
1106
+ if (JS_ISXMLNSSTART(c)) {
1107
+ JSBool sawColon = JS_FALSE;
1108
+
1109
+ ADD_TO_TOKENBUF(c);
1110
+ while ((c = GetChar(ts)) != EOF && JS_ISXMLNAME(c)) {
1111
+ if (c == ':') {
1112
+ int nextc;
1113
+
1114
+ if (sawColon ||
1115
+ (nextc = PeekChar(ts),
1116
+ ((ts->flags & TSF_XMLONLYMODE) || nextc != '{') &&
1117
+ !JS_ISXMLNAME(nextc))) {
1118
+ js_ReportCompileErrorNumber(cx, ts, NULL,
1119
+ JSREPORT_ERROR,
1120
+ JSMSG_BAD_XML_QNAME);
1121
+ goto error;
1122
+ }
1123
+ sawColon = JS_TRUE;
1124
+ }
1125
+
1126
+ ADD_TO_TOKENBUF(c);
1127
+ }
1128
+
1129
+ UngetChar(ts, c);
1130
+ atom = TOKENBUF_TO_ATOM();
1131
+ if (!atom)
1132
+ goto error;
1133
+ tp->t_op = JSOP_STRING;
1134
+ tp->t_atom = atom;
1135
+ tt = TOK_XMLNAME;
1136
+ goto out;
1137
+ }
1138
+
1139
+ switch (c) {
1140
+ case '{':
1141
+ if (ts->flags & TSF_XMLONLYMODE)
1142
+ goto bad_xml_char;
1143
+ tt = TOK_LC;
1144
+ goto out;
1145
+
1146
+ case '=':
1147
+ tt = TOK_ASSIGN;
1148
+ goto out;
1149
+
1150
+ case '"':
1151
+ case '\'':
1152
+ qc = c;
1153
+ while ((c = GetChar(ts)) != qc) {
1154
+ if (c == EOF) {
1155
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1156
+ JSMSG_UNTERMINATED_STRING);
1157
+ goto error;
1158
+ }
1159
+
1160
+ /*
1161
+ * XML attribute values are double-quoted when pretty-printed,
1162
+ * so escape " if it is expressed directly in a single-quoted
1163
+ * attribute value.
1164
+ */
1165
+ if (c == '"' && !(ts->flags & TSF_XMLONLYMODE)) {
1166
+ JS_ASSERT(qc == '\'');
1167
+ js_AppendCString(&ts->tokenbuf, js_quot_entity_str);
1168
+ continue;
1169
+ }
1170
+
1171
+ if (c == '&' && (ts->flags & TSF_XMLONLYMODE)) {
1172
+ if (!GetXMLEntity(cx, ts))
1173
+ goto error;
1174
+ continue;
1175
+ }
1176
+
1177
+ ADD_TO_TOKENBUF(c);
1178
+ }
1179
+ atom = TOKENBUF_TO_ATOM();
1180
+ if (!atom)
1181
+ goto error;
1182
+ tp->pos.end.lineno = (uint16)ts->lineno;
1183
+ tp->t_op = JSOP_STRING;
1184
+ tp->t_atom = atom;
1185
+ tt = TOK_XMLATTR;
1186
+ goto out;
1187
+
1188
+ case '>':
1189
+ tt = TOK_XMLTAGC;
1190
+ goto out;
1191
+
1192
+ case '/':
1193
+ if (MatchChar(ts, '>')) {
1194
+ tt = TOK_XMLPTAGC;
1195
+ goto out;
1196
+ }
1197
+ /* FALL THROUGH */
1198
+
1199
+ bad_xml_char:
1200
+ default:
1201
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1202
+ JSMSG_BAD_XML_CHARACTER);
1203
+ goto error;
1204
+ }
1205
+ /* NOTREACHED */
1206
+ }
1207
+ #endif /* JS_HAS_XML_SUPPORT */
1208
+
1209
+ retry:
1210
+ do {
1211
+ c = GetChar(ts);
1212
+ if (c == '\n') {
1213
+ ts->flags &= ~TSF_DIRTYLINE;
1214
+ if (ts->flags & TSF_NEWLINES)
1215
+ break;
1216
+ }
1217
+ } while (ScanAsSpace((jschar)c));
1218
+
1219
+ tp = NewToken(ts, -1);
1220
+ if (c == EOF) {
1221
+ tt = TOK_EOF;
1222
+ goto out;
1223
+ }
1224
+
1225
+ hadUnicodeEscape = JS_FALSE;
1226
+ if (JS_ISIDSTART(c) ||
1227
+ (c == '\\' &&
1228
+ (qc = GetUnicodeEscape(ts),
1229
+ hadUnicodeEscape = JS_ISIDSTART(qc)))) {
1230
+ if (hadUnicodeEscape)
1231
+ c = qc;
1232
+ INIT_TOKENBUF();
1233
+ for (;;) {
1234
+ ADD_TO_TOKENBUF(c);
1235
+ c = GetChar(ts);
1236
+ if (c == '\\') {
1237
+ qc = GetUnicodeEscape(ts);
1238
+ if (!JS_ISIDENT(qc))
1239
+ break;
1240
+ c = qc;
1241
+ hadUnicodeEscape = JS_TRUE;
1242
+ } else {
1243
+ if (!JS_ISIDENT(c))
1244
+ break;
1245
+ }
1246
+ }
1247
+ UngetChar(ts, c);
1248
+
1249
+ /*
1250
+ * Check for keywords unless we saw Unicode escape or parser asks
1251
+ * to ignore keywords.
1252
+ */
1253
+ if (!hadUnicodeEscape &&
1254
+ !(ts->flags & TSF_KEYWORD_IS_NAME) &&
1255
+ TOKENBUF_OK() &&
1256
+ (kw = FindKeyword(TOKENBUF_BASE(), TOKENBUF_LENGTH()))) {
1257
+ if (kw->tokentype == TOK_RESERVED) {
1258
+ if (!js_ReportCompileErrorNumber(cx, ts, NULL,
1259
+ JSREPORT_WARNING |
1260
+ JSREPORT_STRICT,
1261
+ JSMSG_RESERVED_ID,
1262
+ kw->chars)) {
1263
+ goto error;
1264
+ }
1265
+ } else if (kw->version <= JSVERSION_NUMBER(cx)) {
1266
+ tt = kw->tokentype;
1267
+ tp->t_op = (JSOp) kw->op;
1268
+ goto out;
1269
+ }
1270
+ }
1271
+
1272
+ atom = TOKENBUF_TO_ATOM();
1273
+ if (!atom)
1274
+ goto error;
1275
+ tp->t_op = JSOP_NAME;
1276
+ tp->t_atom = atom;
1277
+ tt = TOK_NAME;
1278
+ goto out;
1279
+ }
1280
+
1281
+ if (JS7_ISDEC(c) || (c == '.' && JS7_ISDEC(PeekChar(ts)))) {
1282
+ jsint radix;
1283
+ const jschar *endptr;
1284
+ jsdouble dval;
1285
+
1286
+ radix = 10;
1287
+ INIT_TOKENBUF();
1288
+
1289
+ if (c == '0') {
1290
+ ADD_TO_TOKENBUF(c);
1291
+ c = GetChar(ts);
1292
+ if (JS_TOLOWER(c) == 'x') {
1293
+ ADD_TO_TOKENBUF(c);
1294
+ c = GetChar(ts);
1295
+ radix = 16;
1296
+ } else if (JS7_ISDEC(c)) {
1297
+ radix = 8;
1298
+ }
1299
+ }
1300
+
1301
+ while (JS7_ISHEX(c)) {
1302
+ if (radix < 16) {
1303
+ if (JS7_ISLET(c))
1304
+ break;
1305
+
1306
+ /*
1307
+ * We permit 08 and 09 as decimal numbers, which makes our
1308
+ * behaviour a superset of the ECMA numeric grammar. We might
1309
+ * not always be so permissive, so we warn about it.
1310
+ */
1311
+ if (radix == 8 && c >= '8') {
1312
+ if (!js_ReportCompileErrorNumber(cx, ts, NULL,
1313
+ JSREPORT_WARNING,
1314
+ JSMSG_BAD_OCTAL,
1315
+ c == '8' ? "08" : "09")) {
1316
+ goto error;
1317
+ }
1318
+ radix = 10;
1319
+ }
1320
+ }
1321
+ ADD_TO_TOKENBUF(c);
1322
+ c = GetChar(ts);
1323
+ }
1324
+
1325
+ if (radix == 10 && (c == '.' || JS_TOLOWER(c) == 'e')) {
1326
+ if (c == '.') {
1327
+ do {
1328
+ ADD_TO_TOKENBUF(c);
1329
+ c = GetChar(ts);
1330
+ } while (JS7_ISDEC(c));
1331
+ }
1332
+ if (JS_TOLOWER(c) == 'e') {
1333
+ ADD_TO_TOKENBUF(c);
1334
+ c = GetChar(ts);
1335
+ if (c == '+' || c == '-') {
1336
+ ADD_TO_TOKENBUF(c);
1337
+ c = GetChar(ts);
1338
+ }
1339
+ if (!JS7_ISDEC(c)) {
1340
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1341
+ JSMSG_MISSING_EXPONENT);
1342
+ goto error;
1343
+ }
1344
+ do {
1345
+ ADD_TO_TOKENBUF(c);
1346
+ c = GetChar(ts);
1347
+ } while (JS7_ISDEC(c));
1348
+ }
1349
+ }
1350
+
1351
+ /* Put back the next char and NUL-terminate tokenbuf for js_strto*. */
1352
+ UngetChar(ts, c);
1353
+ ADD_TO_TOKENBUF(0);
1354
+
1355
+ if (!TOKENBUF_OK())
1356
+ goto error;
1357
+ if (radix == 10) {
1358
+ if (!js_strtod(cx, TOKENBUF_BASE(), TOKENBUF_END(),
1359
+ &endptr, &dval)) {
1360
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1361
+ JSMSG_OUT_OF_MEMORY);
1362
+ goto error;
1363
+ }
1364
+ } else {
1365
+ if (!js_strtointeger(cx, TOKENBUF_BASE(), TOKENBUF_END(),
1366
+ &endptr, radix, &dval)) {
1367
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1368
+ JSMSG_OUT_OF_MEMORY);
1369
+ goto error;
1370
+ }
1371
+ }
1372
+ tp->t_dval = dval;
1373
+ tt = TOK_NUMBER;
1374
+ goto out;
1375
+ }
1376
+
1377
+ if (c == '"' || c == '\'') {
1378
+ qc = c;
1379
+ INIT_TOKENBUF();
1380
+ while ((c = GetChar(ts)) != qc) {
1381
+ if (c == '\n' || c == EOF) {
1382
+ UngetChar(ts, c);
1383
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1384
+ JSMSG_UNTERMINATED_STRING);
1385
+ goto error;
1386
+ }
1387
+ if (c == '\\') {
1388
+ switch (c = GetChar(ts)) {
1389
+ case 'b': c = '\b'; break;
1390
+ case 'f': c = '\f'; break;
1391
+ case 'n': c = '\n'; break;
1392
+ case 'r': c = '\r'; break;
1393
+ case 't': c = '\t'; break;
1394
+ case 'v': c = '\v'; break;
1395
+
1396
+ default:
1397
+ if ('0' <= c && c < '8') {
1398
+ int32 val = JS7_UNDEC(c);
1399
+
1400
+ c = PeekChar(ts);
1401
+ if ('0' <= c && c < '8') {
1402
+ val = 8 * val + JS7_UNDEC(c);
1403
+ GetChar(ts);
1404
+ c = PeekChar(ts);
1405
+ if ('0' <= c && c < '8') {
1406
+ int32 save = val;
1407
+ val = 8 * val + JS7_UNDEC(c);
1408
+ if (val <= 0377)
1409
+ GetChar(ts);
1410
+ else
1411
+ val = save;
1412
+ }
1413
+ }
1414
+
1415
+ c = (jschar)val;
1416
+ } else if (c == 'u') {
1417
+ jschar cp[4];
1418
+ if (PeekChars(ts, 4, cp) &&
1419
+ JS7_ISHEX(cp[0]) && JS7_ISHEX(cp[1]) &&
1420
+ JS7_ISHEX(cp[2]) && JS7_ISHEX(cp[3])) {
1421
+ c = (((((JS7_UNHEX(cp[0]) << 4)
1422
+ + JS7_UNHEX(cp[1])) << 4)
1423
+ + JS7_UNHEX(cp[2])) << 4)
1424
+ + JS7_UNHEX(cp[3]);
1425
+ SkipChars(ts, 4);
1426
+ }
1427
+ } else if (c == 'x') {
1428
+ jschar cp[2];
1429
+ if (PeekChars(ts, 2, cp) &&
1430
+ JS7_ISHEX(cp[0]) && JS7_ISHEX(cp[1])) {
1431
+ c = (JS7_UNHEX(cp[0]) << 4) + JS7_UNHEX(cp[1]);
1432
+ SkipChars(ts, 2);
1433
+ }
1434
+ } else if (c == '\n') {
1435
+ /* ECMA follows C by removing escaped newlines. */
1436
+ continue;
1437
+ }
1438
+ break;
1439
+ }
1440
+ }
1441
+ ADD_TO_TOKENBUF(c);
1442
+ }
1443
+ atom = TOKENBUF_TO_ATOM();
1444
+ if (!atom)
1445
+ goto error;
1446
+ tp->pos.end.lineno = (uint16)ts->lineno;
1447
+ tp->t_op = JSOP_STRING;
1448
+ tp->t_atom = atom;
1449
+ tt = TOK_STRING;
1450
+ goto out;
1451
+ }
1452
+
1453
+ switch (c) {
1454
+ case '\n': tt = TOK_EOL; goto eol_out;
1455
+ case ';': tt = TOK_SEMI; break;
1456
+ case '[': tt = TOK_LB; break;
1457
+ case ']': tt = TOK_RB; break;
1458
+ case '{': tt = TOK_LC; break;
1459
+ case '}': tt = TOK_RC; break;
1460
+ case '(': tt = TOK_LP; break;
1461
+ case ')': tt = TOK_RP; break;
1462
+ case ',': tt = TOK_COMMA; break;
1463
+ case '?': tt = TOK_HOOK; break;
1464
+
1465
+ case '.':
1466
+ #if JS_HAS_XML_SUPPORT
1467
+ if (MatchChar(ts, c))
1468
+ tt = TOK_DBLDOT;
1469
+ else
1470
+ #endif
1471
+ tt = TOK_DOT;
1472
+ break;
1473
+
1474
+ case ':':
1475
+ #if JS_HAS_XML_SUPPORT
1476
+ if (MatchChar(ts, c)) {
1477
+ tt = TOK_DBLCOLON;
1478
+ break;
1479
+ }
1480
+ #endif
1481
+ /*
1482
+ * Default so compiler can modify to JSOP_GETTER if 'p getter: v' in an
1483
+ * object initializer, likewise for setter.
1484
+ */
1485
+ tp->t_op = JSOP_NOP;
1486
+ tt = TOK_COLON;
1487
+ break;
1488
+
1489
+ case '|':
1490
+ if (MatchChar(ts, c)) {
1491
+ tt = TOK_OR;
1492
+ } else if (MatchChar(ts, '=')) {
1493
+ tp->t_op = JSOP_BITOR;
1494
+ tt = TOK_ASSIGN;
1495
+ } else {
1496
+ tt = TOK_BITOR;
1497
+ }
1498
+ break;
1499
+
1500
+ case '^':
1501
+ if (MatchChar(ts, '=')) {
1502
+ tp->t_op = JSOP_BITXOR;
1503
+ tt = TOK_ASSIGN;
1504
+ } else {
1505
+ tt = TOK_BITXOR;
1506
+ }
1507
+ break;
1508
+
1509
+ case '&':
1510
+ if (MatchChar(ts, c)) {
1511
+ tt = TOK_AND;
1512
+ } else if (MatchChar(ts, '=')) {
1513
+ tp->t_op = JSOP_BITAND;
1514
+ tt = TOK_ASSIGN;
1515
+ } else {
1516
+ tt = TOK_BITAND;
1517
+ }
1518
+ break;
1519
+
1520
+ case '=':
1521
+ if (MatchChar(ts, c)) {
1522
+ tp->t_op = MatchChar(ts, c) ? JSOP_STRICTEQ : JSOP_EQ;
1523
+ tt = TOK_EQOP;
1524
+ } else {
1525
+ tp->t_op = JSOP_NOP;
1526
+ tt = TOK_ASSIGN;
1527
+ }
1528
+ break;
1529
+
1530
+ case '!':
1531
+ if (MatchChar(ts, '=')) {
1532
+ tp->t_op = MatchChar(ts, '=') ? JSOP_STRICTNE : JSOP_NE;
1533
+ tt = TOK_EQOP;
1534
+ } else {
1535
+ tp->t_op = JSOP_NOT;
1536
+ tt = TOK_UNARYOP;
1537
+ }
1538
+ break;
1539
+
1540
+ #if JS_HAS_XML_SUPPORT
1541
+ case '@':
1542
+ tt = TOK_AT;
1543
+ break;
1544
+ #endif
1545
+
1546
+ case '<':
1547
+ #if JS_HAS_XML_SUPPORT
1548
+ /*
1549
+ * After much testing, it's clear that Postel's advice to protocol
1550
+ * designers ("be liberal in what you accept, and conservative in what
1551
+ * you send") invites a natural-law repercussion for JS as "protocol":
1552
+ *
1553
+ * "If you are liberal in what you accept, others will utterly fail to
1554
+ * be conservative in what they send."
1555
+ *
1556
+ * Which means you will get <!-- comments to end of line in the middle
1557
+ * of .js files, and after if conditions whose then statements are on
1558
+ * the next line, and other wonders. See at least the following bugs:
1559
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=309242
1560
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=309712
1561
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=310993
1562
+ *
1563
+ * So without JSOPTION_XML, we never scan an XML comment or CDATA
1564
+ * literal. We always scan <! as the start of an HTML comment hack
1565
+ * to end of line, used since Netscape 2 to hide script tag content
1566
+ * from script-unaware browsers.
1567
+ */
1568
+ if ((ts->flags & TSF_OPERAND) &&
1569
+ (JS_HAS_XML_OPTION(cx) || PeekChar(ts) != '!')) {
1570
+ /* Check for XML comment or CDATA section. */
1571
+ if (MatchChar(ts, '!')) {
1572
+ INIT_TOKENBUF();
1573
+
1574
+ /* Scan XML comment. */
1575
+ if (MatchChar(ts, '-')) {
1576
+ if (!MatchChar(ts, '-'))
1577
+ goto bad_xml_markup;
1578
+ while ((c = GetChar(ts)) != '-' || !MatchChar(ts, '-')) {
1579
+ if (c == EOF)
1580
+ goto bad_xml_markup;
1581
+ ADD_TO_TOKENBUF(c);
1582
+ }
1583
+ tt = TOK_XMLCOMMENT;
1584
+ tp->t_op = JSOP_XMLCOMMENT;
1585
+ goto finish_xml_markup;
1586
+ }
1587
+
1588
+ /* Scan CDATA section. */
1589
+ if (MatchChar(ts, '[')) {
1590
+ jschar cp[6];
1591
+ if (PeekChars(ts, 6, cp) &&
1592
+ cp[0] == 'C' &&
1593
+ cp[1] == 'D' &&
1594
+ cp[2] == 'A' &&
1595
+ cp[3] == 'T' &&
1596
+ cp[4] == 'A' &&
1597
+ cp[5] == '[') {
1598
+ SkipChars(ts, 6);
1599
+ while ((c = GetChar(ts)) != ']' ||
1600
+ !PeekChars(ts, 2, cp) ||
1601
+ cp[0] != ']' ||
1602
+ cp[1] != '>') {
1603
+ if (c == EOF)
1604
+ goto bad_xml_markup;
1605
+ ADD_TO_TOKENBUF(c);
1606
+ }
1607
+ GetChar(ts); /* discard ] but not > */
1608
+ tt = TOK_XMLCDATA;
1609
+ tp->t_op = JSOP_XMLCDATA;
1610
+ goto finish_xml_markup;
1611
+ }
1612
+ goto bad_xml_markup;
1613
+ }
1614
+ }
1615
+
1616
+ /* Check for processing instruction. */
1617
+ if (MatchChar(ts, '?')) {
1618
+ inTarget = JS_TRUE;
1619
+ targetLength = 0;
1620
+ contentIndex = -1;
1621
+
1622
+ INIT_TOKENBUF();
1623
+ while ((c = GetChar(ts)) != '?' || PeekChar(ts) != '>') {
1624
+ if (c == EOF)
1625
+ goto bad_xml_markup;
1626
+ if (inTarget) {
1627
+ if (JS_ISXMLSPACE(c)) {
1628
+ if (TOKENBUF_LENGTH() == 0)
1629
+ goto bad_xml_markup;
1630
+ inTarget = JS_FALSE;
1631
+ } else {
1632
+ if (!((TOKENBUF_LENGTH() == 0)
1633
+ ? JS_ISXMLNSSTART(c)
1634
+ : JS_ISXMLNS(c))) {
1635
+ goto bad_xml_markup;
1636
+ }
1637
+ ++targetLength;
1638
+ }
1639
+ } else {
1640
+ if (contentIndex < 0 && !JS_ISXMLSPACE(c))
1641
+ contentIndex = TOKENBUF_LENGTH();
1642
+ }
1643
+ ADD_TO_TOKENBUF(c);
1644
+ }
1645
+ if (targetLength == 0)
1646
+ goto bad_xml_markup;
1647
+ if (!TOKENBUF_OK())
1648
+ goto error;
1649
+ if (contentIndex < 0) {
1650
+ atom = cx->runtime->atomState.emptyAtom;
1651
+ } else {
1652
+ atom = js_AtomizeChars(cx,
1653
+ &TOKENBUF_CHAR(contentIndex),
1654
+ TOKENBUF_LENGTH() - contentIndex,
1655
+ 0);
1656
+ if (!atom)
1657
+ goto error;
1658
+ }
1659
+ TRIM_TOKENBUF(targetLength);
1660
+ tp->t_atom2 = atom;
1661
+ tt = TOK_XMLPI;
1662
+
1663
+ finish_xml_markup:
1664
+ if (!MatchChar(ts, '>'))
1665
+ goto bad_xml_markup;
1666
+ atom = TOKENBUF_TO_ATOM();
1667
+ if (!atom)
1668
+ goto error;
1669
+ tp->t_atom = atom;
1670
+ tp->pos.end.lineno = (uint16)ts->lineno;
1671
+ goto out;
1672
+ }
1673
+
1674
+ /* An XML start-of-tag character. */
1675
+ tt = MatchChar(ts, '/') ? TOK_XMLETAGO : TOK_XMLSTAGO;
1676
+ goto out;
1677
+
1678
+ bad_xml_markup:
1679
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1680
+ JSMSG_BAD_XML_MARKUP);
1681
+ goto error;
1682
+ }
1683
+ #endif /* JS_HAS_XML_SUPPORT */
1684
+
1685
+ /* NB: treat HTML begin-comment as comment-till-end-of-line */
1686
+ if (MatchChar(ts, '!')) {
1687
+ if (MatchChar(ts, '-')) {
1688
+ if (MatchChar(ts, '-')) {
1689
+ ts->flags |= TSF_IN_HTML_COMMENT;
1690
+ goto skipline;
1691
+ }
1692
+ UngetChar(ts, '-');
1693
+ }
1694
+ UngetChar(ts, '!');
1695
+ }
1696
+ if (MatchChar(ts, c)) {
1697
+ tp->t_op = JSOP_LSH;
1698
+ tt = MatchChar(ts, '=') ? TOK_ASSIGN : TOK_SHOP;
1699
+ } else {
1700
+ tp->t_op = MatchChar(ts, '=') ? JSOP_LE : JSOP_LT;
1701
+ tt = TOK_RELOP;
1702
+ }
1703
+ break;
1704
+
1705
+ case '>':
1706
+ if (MatchChar(ts, c)) {
1707
+ tp->t_op = MatchChar(ts, c) ? JSOP_URSH : JSOP_RSH;
1708
+ tt = MatchChar(ts, '=') ? TOK_ASSIGN : TOK_SHOP;
1709
+ } else {
1710
+ tp->t_op = MatchChar(ts, '=') ? JSOP_GE : JSOP_GT;
1711
+ tt = TOK_RELOP;
1712
+ }
1713
+ break;
1714
+
1715
+ case '*':
1716
+ tp->t_op = JSOP_MUL;
1717
+ tt = MatchChar(ts, '=') ? TOK_ASSIGN : TOK_STAR;
1718
+ break;
1719
+
1720
+ case '/':
1721
+ if (MatchChar(ts, '/')) {
1722
+ /*
1723
+ * Hack for source filters such as the Mozilla XUL preprocessor:
1724
+ * "//@line 123\n" sets the number of the *next* line after the
1725
+ * comment to 123.
1726
+ */
1727
+ if (JS_HAS_ATLINE_OPTION(cx)) {
1728
+ jschar cp[5];
1729
+ uintN i, line, temp;
1730
+ char filename[1024];
1731
+
1732
+ if (PeekChars(ts, 5, cp) &&
1733
+ cp[0] == '@' &&
1734
+ cp[1] == 'l' &&
1735
+ cp[2] == 'i' &&
1736
+ cp[3] == 'n' &&
1737
+ cp[4] == 'e') {
1738
+ SkipChars(ts, 5);
1739
+ while ((c = GetChar(ts)) != '\n' && ScanAsSpace((jschar)c))
1740
+ continue;
1741
+ if (JS7_ISDEC(c)) {
1742
+ line = JS7_UNDEC(c);
1743
+ while ((c = GetChar(ts)) != EOF && JS7_ISDEC(c)) {
1744
+ temp = 10 * line + JS7_UNDEC(c);
1745
+ if (temp < line) {
1746
+ /* Ignore overlarge line numbers. */
1747
+ goto skipline;
1748
+ }
1749
+ line = temp;
1750
+ }
1751
+ while (c != '\n' && ScanAsSpace((jschar)c))
1752
+ c = GetChar(ts);
1753
+ i = 0;
1754
+ if (c == '"') {
1755
+ while ((c = GetChar(ts)) != EOF && c != '"') {
1756
+ if (c == '\n') {
1757
+ UngetChar(ts, c);
1758
+ goto skipline;
1759
+ }
1760
+ if ((c >> 8) != 0 || i >= sizeof filename - 1)
1761
+ goto skipline;
1762
+ filename[i++] = (char) c;
1763
+ }
1764
+ if (c == '"') {
1765
+ while ((c = GetChar(ts)) != '\n' &&
1766
+ ScanAsSpace((jschar)c)) {
1767
+ continue;
1768
+ }
1769
+ }
1770
+ }
1771
+ filename[i] = '\0';
1772
+ if (c == '\n') {
1773
+ if (i > 0) {
1774
+ if (ts->flags & TSF_OWNFILENAME)
1775
+ JS_free(cx, (void *) ts->filename);
1776
+ ts->filename = JS_strdup(cx, filename);
1777
+ if (!ts->filename)
1778
+ goto error;
1779
+ ts->flags |= TSF_OWNFILENAME;
1780
+ }
1781
+ ts->lineno = line;
1782
+ }
1783
+ }
1784
+ UngetChar(ts, c);
1785
+ }
1786
+ }
1787
+
1788
+ skipline:
1789
+ /* Optimize line skipping if we are not in an HTML comment. */
1790
+ if (ts->flags & TSF_IN_HTML_COMMENT) {
1791
+ while ((c = GetChar(ts)) != EOF && c != '\n') {
1792
+ if (c == '-' && MatchChar(ts, '-') && MatchChar(ts, '>'))
1793
+ ts->flags &= ~TSF_IN_HTML_COMMENT;
1794
+ }
1795
+ } else {
1796
+ while ((c = GetChar(ts)) != EOF && c != '\n')
1797
+ continue;
1798
+ }
1799
+ UngetChar(ts, c);
1800
+ ts->cursor = (ts->cursor - 1) & NTOKENS_MASK;
1801
+ goto retry;
1802
+ }
1803
+
1804
+ if (MatchChar(ts, '*')) {
1805
+ while ((c = GetChar(ts)) != EOF &&
1806
+ !(c == '*' && MatchChar(ts, '/'))) {
1807
+ /* Ignore all characters until comment close. */
1808
+ }
1809
+ if (c == EOF) {
1810
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1811
+ JSMSG_UNTERMINATED_COMMENT);
1812
+ goto error;
1813
+ }
1814
+ ts->cursor = (ts->cursor - 1) & NTOKENS_MASK;
1815
+ goto retry;
1816
+ }
1817
+
1818
+ if (ts->flags & TSF_OPERAND) {
1819
+ uintN flags;
1820
+ JSBool inCharClass = JS_FALSE;
1821
+
1822
+ INIT_TOKENBUF();
1823
+ for (;;) {
1824
+ c = GetChar(ts);
1825
+ if (c == '\n' || c == EOF) {
1826
+ UngetChar(ts, c);
1827
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1828
+ JSMSG_UNTERMINATED_REGEXP);
1829
+ goto error;
1830
+ }
1831
+ if (c == '\\') {
1832
+ ADD_TO_TOKENBUF(c);
1833
+ c = GetChar(ts);
1834
+ } else if (c == '[') {
1835
+ inCharClass = JS_TRUE;
1836
+ } else if (c == ']') {
1837
+ inCharClass = JS_FALSE;
1838
+ } else if (c == '/' && !inCharClass) {
1839
+ /* For compat with IE, allow unescaped / in char classes. */
1840
+ break;
1841
+ }
1842
+ ADD_TO_TOKENBUF(c);
1843
+ }
1844
+ for (flags = 0; ; ) {
1845
+ c = PeekChar(ts);
1846
+ if (c == 'g')
1847
+ flags |= JSREG_GLOB;
1848
+ else if (c == 'i')
1849
+ flags |= JSREG_FOLD;
1850
+ else if (c == 'm')
1851
+ flags |= JSREG_MULTILINE;
1852
+ else if (c == 'y')
1853
+ flags |= JSREG_STICKY;
1854
+ else
1855
+ break;
1856
+ GetChar(ts);
1857
+ }
1858
+ c = PeekChar(ts);
1859
+ if (JS7_ISLET(c)) {
1860
+ tp->ptr = ts->linebuf.ptr - 1;
1861
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1862
+ JSMSG_BAD_REGEXP_FLAG);
1863
+ (void) GetChar(ts);
1864
+ goto error;
1865
+ }
1866
+ /* XXXbe fix jsregexp.c so it doesn't depend on NUL termination */
1867
+ if (!TOKENBUF_OK())
1868
+ goto error;
1869
+ NUL_TERM_TOKENBUF();
1870
+ tp->t_reflags = flags;
1871
+ tt = TOK_REGEXP;
1872
+ break;
1873
+ }
1874
+
1875
+ tp->t_op = JSOP_DIV;
1876
+ tt = MatchChar(ts, '=') ? TOK_ASSIGN : TOK_DIVOP;
1877
+ break;
1878
+
1879
+ case '%':
1880
+ tp->t_op = JSOP_MOD;
1881
+ tt = MatchChar(ts, '=') ? TOK_ASSIGN : TOK_DIVOP;
1882
+ break;
1883
+
1884
+ case '~':
1885
+ tp->t_op = JSOP_BITNOT;
1886
+ tt = TOK_UNARYOP;
1887
+ break;
1888
+
1889
+ case '+':
1890
+ if (MatchChar(ts, '=')) {
1891
+ tp->t_op = JSOP_ADD;
1892
+ tt = TOK_ASSIGN;
1893
+ } else if (MatchChar(ts, c)) {
1894
+ tt = TOK_INC;
1895
+ } else {
1896
+ tp->t_op = JSOP_POS;
1897
+ tt = TOK_PLUS;
1898
+ }
1899
+ break;
1900
+
1901
+ case '-':
1902
+ if (MatchChar(ts, '=')) {
1903
+ tp->t_op = JSOP_SUB;
1904
+ tt = TOK_ASSIGN;
1905
+ } else if (MatchChar(ts, c)) {
1906
+ if (PeekChar(ts) == '>' && !(ts->flags & TSF_DIRTYLINE)) {
1907
+ ts->flags &= ~TSF_IN_HTML_COMMENT;
1908
+ goto skipline;
1909
+ }
1910
+ tt = TOK_DEC;
1911
+ } else {
1912
+ tp->t_op = JSOP_NEG;
1913
+ tt = TOK_MINUS;
1914
+ }
1915
+ break;
1916
+
1917
+ #if JS_HAS_SHARP_VARS
1918
+ case '#':
1919
+ {
1920
+ uint32 n;
1921
+
1922
+ c = GetChar(ts);
1923
+ if (!JS7_ISDEC(c)) {
1924
+ UngetChar(ts, c);
1925
+ goto badchar;
1926
+ }
1927
+ n = (uint32)JS7_UNDEC(c);
1928
+ for (;;) {
1929
+ c = GetChar(ts);
1930
+ if (!JS7_ISDEC(c))
1931
+ break;
1932
+ n = 10 * n + JS7_UNDEC(c);
1933
+ if (n >= UINT16_LIMIT) {
1934
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1935
+ JSMSG_SHARPVAR_TOO_BIG);
1936
+ goto error;
1937
+ }
1938
+ }
1939
+ tp->t_dval = (jsdouble) n;
1940
+ if (JS_HAS_STRICT_OPTION(cx) &&
1941
+ (c == '=' || c == '#')) {
1942
+ char buf[20];
1943
+ JS_snprintf(buf, sizeof buf, "#%u%c", n, c);
1944
+ if (!js_ReportCompileErrorNumber(cx, ts, NULL,
1945
+ JSREPORT_WARNING |
1946
+ JSREPORT_STRICT,
1947
+ JSMSG_DEPRECATED_USAGE,
1948
+ buf)) {
1949
+ goto error;
1950
+ }
1951
+ }
1952
+ if (c == '=')
1953
+ tt = TOK_DEFSHARP;
1954
+ else if (c == '#')
1955
+ tt = TOK_USESHARP;
1956
+ else
1957
+ goto badchar;
1958
+ break;
1959
+ }
1960
+ #endif /* JS_HAS_SHARP_VARS */
1961
+
1962
+ #if JS_HAS_SHARP_VARS || JS_HAS_XML_SUPPORT
1963
+ badchar:
1964
+ #endif
1965
+
1966
+ default:
1967
+ js_ReportCompileErrorNumber(cx, ts, NULL, JSREPORT_ERROR,
1968
+ JSMSG_ILLEGAL_CHARACTER);
1969
+ goto error;
1970
+ }
1971
+
1972
+ out:
1973
+ JS_ASSERT(tt != TOK_EOL);
1974
+ ts->flags |= TSF_DIRTYLINE;
1975
+
1976
+ eol_out:
1977
+ if (!STRING_BUFFER_OK(&ts->tokenbuf))
1978
+ tt = TOK_ERROR;
1979
+ JS_ASSERT(tt < TOK_LIMIT);
1980
+ tp->pos.end.index = ts->linepos +
1981
+ PTRDIFF(ts->linebuf.ptr, ts->linebuf.base, jschar) -
1982
+ ts->ungetpos;
1983
+ tp->type = tt;
1984
+ return tt;
1985
+
1986
+ error:
1987
+ tt = TOK_ERROR;
1988
+ ts->flags |= TSF_ERROR;
1989
+ goto out;
1990
+
1991
+ #undef INIT_TOKENBUF
1992
+ #undef TOKENBUF_LENGTH
1993
+ #undef TOKENBUF_OK
1994
+ #undef TOKENBUF_TO_ATOM
1995
+ #undef ADD_TO_TOKENBUF
1996
+ #undef TOKENBUF_BASE
1997
+ #undef TOKENBUF_CHAR
1998
+ #undef TRIM_TOKENBUF
1999
+ #undef NUL_TERM_TOKENBUF
2000
+ }
2001
+
2002
+ void
2003
+ js_UngetToken(JSTokenStream *ts)
2004
+ {
2005
+ JS_ASSERT(ts->lookahead < NTOKENS_MASK);
2006
+ ts->lookahead++;
2007
+ ts->cursor = (ts->cursor - 1) & NTOKENS_MASK;
2008
+ }
2009
+
2010
+ JSBool
2011
+ js_MatchToken(JSContext *cx, JSTokenStream *ts, JSTokenType tt)
2012
+ {
2013
+ if (js_GetToken(cx, ts) == tt)
2014
+ return JS_TRUE;
2015
+ js_UngetToken(ts);
2016
+ return JS_FALSE;
2017
+ }