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,212 @@
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 js_cpucfg___
41
+ #define js_cpucfg___
42
+
43
+ #define JS_HAVE_LONG_LONG
44
+
45
+ #if defined(XP_WIN) || defined(XP_OS2) || defined(WINCE)
46
+
47
+ #if defined(_WIN64)
48
+
49
+ #if defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_)
50
+ #define IS_LITTLE_ENDIAN 1
51
+ #undef IS_BIG_ENDIAN
52
+
53
+ #define JS_BYTES_PER_BYTE 1L
54
+ #define JS_BYTES_PER_SHORT 2L
55
+ #define JS_BYTES_PER_INT 4L
56
+ #define JS_BYTES_PER_INT64 8L
57
+ #define JS_BYTES_PER_LONG 4L
58
+ #define JS_BYTES_PER_FLOAT 4L
59
+ #define JS_BYTES_PER_DOUBLE 8L
60
+ #define JS_BYTES_PER_WORD 8L
61
+ #define JS_BYTES_PER_DWORD 8L
62
+
63
+ #define JS_BITS_PER_BYTE 8L
64
+ #define JS_BITS_PER_SHORT 16L
65
+ #define JS_BITS_PER_INT 32L
66
+ #define JS_BITS_PER_INT64 64L
67
+ #define JS_BITS_PER_LONG 32L
68
+ #define JS_BITS_PER_FLOAT 32L
69
+ #define JS_BITS_PER_DOUBLE 64L
70
+ #define JS_BITS_PER_WORD 64L
71
+
72
+ #define JS_BITS_PER_BYTE_LOG2 3L
73
+ #define JS_BITS_PER_SHORT_LOG2 4L
74
+ #define JS_BITS_PER_INT_LOG2 5L
75
+ #define JS_BITS_PER_INT64_LOG2 6L
76
+ #define JS_BITS_PER_LONG_LOG2 5L
77
+ #define JS_BITS_PER_FLOAT_LOG2 5L
78
+ #define JS_BITS_PER_DOUBLE_LOG2 6L
79
+ #define JS_BITS_PER_WORD_LOG2 6L
80
+
81
+ #define JS_ALIGN_OF_SHORT 2L
82
+ #define JS_ALIGN_OF_INT 4L
83
+ #define JS_ALIGN_OF_LONG 4L
84
+ #define JS_ALIGN_OF_INT64 8L
85
+ #define JS_ALIGN_OF_FLOAT 4L
86
+ #define JS_ALIGN_OF_DOUBLE 8L
87
+ #define JS_ALIGN_OF_POINTER 8L
88
+ #define JS_ALIGN_OF_WORD 8L
89
+
90
+ #define JS_BYTES_PER_WORD_LOG2 3L
91
+ #define JS_BYTES_PER_DWORD_LOG2 3L
92
+ #define PR_WORDS_PER_DWORD_LOG2 0L
93
+ #else /* !(defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_)) */
94
+ #error "CPU type is unknown"
95
+ #endif /* !(defined(_M_X64) || defined(_M_AMD64) || defined(_AMD64_)) */
96
+
97
+ #elif defined(_WIN32) || defined(XP_OS2) || defined(WINCE)
98
+
99
+ #ifdef __WATCOMC__
100
+ #define HAVE_VA_LIST_AS_ARRAY 1
101
+ #endif
102
+
103
+ #define IS_LITTLE_ENDIAN 1
104
+ #undef IS_BIG_ENDIAN
105
+
106
+ #define JS_BYTES_PER_BYTE 1L
107
+ #define JS_BYTES_PER_SHORT 2L
108
+ #define JS_BYTES_PER_INT 4L
109
+ #define JS_BYTES_PER_INT64 8L
110
+ #define JS_BYTES_PER_LONG 4L
111
+ #define JS_BYTES_PER_FLOAT 4L
112
+ #define JS_BYTES_PER_DOUBLE 8L
113
+ #define JS_BYTES_PER_WORD 4L
114
+ #define JS_BYTES_PER_DWORD 8L
115
+
116
+ #define JS_BITS_PER_BYTE 8L
117
+ #define JS_BITS_PER_SHORT 16L
118
+ #define JS_BITS_PER_INT 32L
119
+ #define JS_BITS_PER_INT64 64L
120
+ #define JS_BITS_PER_LONG 32L
121
+ #define JS_BITS_PER_FLOAT 32L
122
+ #define JS_BITS_PER_DOUBLE 64L
123
+ #define JS_BITS_PER_WORD 32L
124
+
125
+ #define JS_BITS_PER_BYTE_LOG2 3L
126
+ #define JS_BITS_PER_SHORT_LOG2 4L
127
+ #define JS_BITS_PER_INT_LOG2 5L
128
+ #define JS_BITS_PER_INT64_LOG2 6L
129
+ #define JS_BITS_PER_LONG_LOG2 5L
130
+ #define JS_BITS_PER_FLOAT_LOG2 5L
131
+ #define JS_BITS_PER_DOUBLE_LOG2 6L
132
+ #define JS_BITS_PER_WORD_LOG2 5L
133
+
134
+ #define JS_ALIGN_OF_SHORT 2L
135
+ #define JS_ALIGN_OF_INT 4L
136
+ #define JS_ALIGN_OF_LONG 4L
137
+ #define JS_ALIGN_OF_INT64 8L
138
+ #define JS_ALIGN_OF_FLOAT 4L
139
+ #define JS_ALIGN_OF_DOUBLE 4L
140
+ #define JS_ALIGN_OF_POINTER 4L
141
+ #define JS_ALIGN_OF_WORD 4L
142
+
143
+ #define JS_BYTES_PER_WORD_LOG2 2L
144
+ #define JS_BYTES_PER_DWORD_LOG2 3L
145
+ #define PR_WORDS_PER_DWORD_LOG2 1L
146
+ #endif /* _WIN32 || XP_OS2 || WINCE*/
147
+
148
+ #if defined(_WINDOWS) && !defined(_WIN32) /* WIN16 */
149
+
150
+ #define IS_LITTLE_ENDIAN 1
151
+ #undef IS_BIG_ENDIAN
152
+
153
+ #define JS_BYTES_PER_BYTE 1L
154
+ #define JS_BYTES_PER_SHORT 2L
155
+ #define JS_BYTES_PER_INT 2L
156
+ #define JS_BYTES_PER_INT64 8L
157
+ #define JS_BYTES_PER_LONG 4L
158
+ #define JS_BYTES_PER_FLOAT 4L
159
+ #define JS_BYTES_PER_DOUBLE 8L
160
+ #define JS_BYTES_PER_WORD 4L
161
+ #define JS_BYTES_PER_DWORD 8L
162
+
163
+ #define JS_BITS_PER_BYTE 8L
164
+ #define JS_BITS_PER_SHORT 16L
165
+ #define JS_BITS_PER_INT 16L
166
+ #define JS_BITS_PER_INT64 64L
167
+ #define JS_BITS_PER_LONG 32L
168
+ #define JS_BITS_PER_FLOAT 32L
169
+ #define JS_BITS_PER_DOUBLE 64L
170
+ #define JS_BITS_PER_WORD 32L
171
+
172
+ #define JS_BITS_PER_BYTE_LOG2 3L
173
+ #define JS_BITS_PER_SHORT_LOG2 4L
174
+ #define JS_BITS_PER_INT_LOG2 4L
175
+ #define JS_BITS_PER_INT64_LOG2 6L
176
+ #define JS_BITS_PER_LONG_LOG2 5L
177
+ #define JS_BITS_PER_FLOAT_LOG2 5L
178
+ #define JS_BITS_PER_DOUBLE_LOG2 6L
179
+ #define JS_BITS_PER_WORD_LOG2 5L
180
+
181
+ #define JS_ALIGN_OF_SHORT 2L
182
+ #define JS_ALIGN_OF_INT 2L
183
+ #define JS_ALIGN_OF_LONG 2L
184
+ #define JS_ALIGN_OF_INT64 2L
185
+ #define JS_ALIGN_OF_FLOAT 2L
186
+ #define JS_ALIGN_OF_DOUBLE 2L
187
+ #define JS_ALIGN_OF_POINTER 2L
188
+ #define JS_ALIGN_OF_WORD 2L
189
+
190
+ #define JS_BYTES_PER_WORD_LOG2 2L
191
+ #define JS_BYTES_PER_DWORD_LOG2 3L
192
+ #define PR_WORDS_PER_DWORD_LOG2 1L
193
+
194
+ #endif /* defined(_WINDOWS) && !defined(_WIN32) */
195
+
196
+ #elif defined(XP_UNIX) || defined(XP_BEOS)
197
+
198
+ #error "This file is supposed to be auto-generated on UNIX platforms, but the"
199
+ #error "static version for Mac and Windows platforms is being used."
200
+ #error "Something's probably wrong with paths/headers/dependencies/Makefiles."
201
+
202
+ #else
203
+
204
+ #error "Must define one of XP_BEOS, XP_OS2, XP_WIN, or XP_UNIX"
205
+
206
+ #endif
207
+
208
+ #ifndef JS_STACK_GROWTH_DIRECTION
209
+ #define JS_STACK_GROWTH_DIRECTION (-1)
210
+ #endif
211
+
212
+ #endif /* js_cpucfg___ */
@@ -0,0 +1,2475 @@
1
+ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2
+ * vim: set ts=8 sw=4 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 date methods.
43
+ */
44
+
45
+ /*
46
+ * "For example, OS/360 devotes 26 bytes of the permanently
47
+ * resident date-turnover routine to the proper handling of
48
+ * December 31 on leap years (when it is Day 366). That
49
+ * might have been left to the operator."
50
+ *
51
+ * Frederick Brooks, 'The Second-System Effect'.
52
+ */
53
+
54
+ #include "jsstddef.h"
55
+ #include <ctype.h>
56
+ #include <locale.h>
57
+ #include <math.h>
58
+ #include <stdlib.h>
59
+ #include <string.h>
60
+ #include "jstypes.h"
61
+ #include "jsprf.h"
62
+ #include "prmjtime.h"
63
+ #include "jsutil.h" /* Added by JSIFY */
64
+ #include "jsapi.h"
65
+ #include "jsversion.h"
66
+ #include "jsbuiltins.h"
67
+ #include "jscntxt.h"
68
+ #include "jsdate.h"
69
+ #include "jsinterp.h"
70
+ #include "jsnum.h"
71
+ #include "jsobj.h"
72
+ #include "jsstr.h"
73
+
74
+ /*
75
+ * The JS 'Date' object is patterned after the Java 'Date' object.
76
+ * Here is an script:
77
+ *
78
+ * today = new Date();
79
+ *
80
+ * print(today.toLocaleString());
81
+ *
82
+ * weekDay = today.getDay();
83
+ *
84
+ *
85
+ * These Java (and ECMA-262) methods are supported:
86
+ *
87
+ * UTC
88
+ * getDate (getUTCDate)
89
+ * getDay (getUTCDay)
90
+ * getHours (getUTCHours)
91
+ * getMinutes (getUTCMinutes)
92
+ * getMonth (getUTCMonth)
93
+ * getSeconds (getUTCSeconds)
94
+ * getMilliseconds (getUTCMilliseconds)
95
+ * getTime
96
+ * getTimezoneOffset
97
+ * getYear
98
+ * getFullYear (getUTCFullYear)
99
+ * parse
100
+ * setDate (setUTCDate)
101
+ * setHours (setUTCHours)
102
+ * setMinutes (setUTCMinutes)
103
+ * setMonth (setUTCMonth)
104
+ * setSeconds (setUTCSeconds)
105
+ * setMilliseconds (setUTCMilliseconds)
106
+ * setTime
107
+ * setYear (setFullYear, setUTCFullYear)
108
+ * toGMTString (toUTCString)
109
+ * toLocaleString
110
+ * toString
111
+ *
112
+ *
113
+ * These Java methods are not supported
114
+ *
115
+ * setDay
116
+ * before
117
+ * after
118
+ * equals
119
+ * hashCode
120
+ */
121
+
122
+ /*
123
+ * 11/97 - jsdate.c has been rewritten to conform to the ECMA-262 language
124
+ * definition and reduce dependence on NSPR. NSPR is used to get the current
125
+ * time in milliseconds, the time zone offset, and the daylight savings time
126
+ * offset for a given time. NSPR is also used for Date.toLocaleString(), for
127
+ * locale-specific formatting, and to get a string representing the timezone.
128
+ * (Which turns out to be platform-dependent.)
129
+ *
130
+ * To do:
131
+ * (I did some performance tests by timing how long it took to run what
132
+ * I had of the js ECMA conformance tests.)
133
+ *
134
+ * - look at saving results across multiple calls to supporting
135
+ * functions; the toString functions compute some of the same values
136
+ * multiple times. Although - I took a quick stab at this, and I lost
137
+ * rather than gained. (Fractionally.) Hard to tell what compilers/processors
138
+ * are doing these days.
139
+ *
140
+ * - look at tweaking function return types to return double instead
141
+ * of int; this seems to make things run slightly faster sometimes.
142
+ * (though it could be architecture-dependent.) It'd be good to see
143
+ * how this does on win32. (Tried it on irix.) Types could use a
144
+ * general going-over.
145
+ */
146
+
147
+ /*
148
+ * Supporting functions - ECMA 15.9.1.*
149
+ */
150
+
151
+ #define HalfTimeDomain 8.64e15
152
+ #define HoursPerDay 24.0
153
+ #define MinutesPerDay (HoursPerDay * MinutesPerHour)
154
+ #define MinutesPerHour 60.0
155
+ #define SecondsPerDay (MinutesPerDay * SecondsPerMinute)
156
+ #define SecondsPerHour (MinutesPerHour * SecondsPerMinute)
157
+ #define SecondsPerMinute 60.0
158
+
159
+ #if defined(XP_WIN) || defined(XP_OS2)
160
+ /* Work around msvc double optimization bug by making these runtime values; if
161
+ * they're available at compile time, msvc optimizes division by them by
162
+ * computing the reciprocal and multiplying instead of dividing - this loses
163
+ * when the reciprocal isn't representable in a double.
164
+ */
165
+ static jsdouble msPerSecond = 1000.0;
166
+ static jsdouble msPerDay = SecondsPerDay * 1000.0;
167
+ static jsdouble msPerHour = SecondsPerHour * 1000.0;
168
+ static jsdouble msPerMinute = SecondsPerMinute * 1000.0;
169
+ #else
170
+ #define msPerDay (SecondsPerDay * msPerSecond)
171
+ #define msPerHour (SecondsPerHour * msPerSecond)
172
+ #define msPerMinute (SecondsPerMinute * msPerSecond)
173
+ #define msPerSecond 1000.0
174
+ #endif
175
+
176
+ #define Day(t) floor((t) / msPerDay)
177
+
178
+ static jsdouble
179
+ TimeWithinDay(jsdouble t)
180
+ {
181
+ jsdouble result;
182
+ result = fmod(t, msPerDay);
183
+ if (result < 0)
184
+ result += msPerDay;
185
+ return result;
186
+ }
187
+
188
+ #define DaysInYear(y) ((y) % 4 == 0 && ((y) % 100 || ((y) % 400 == 0)) \
189
+ ? 366 : 365)
190
+
191
+ /* math here has to be f.p, because we need
192
+ * floor((1968 - 1969) / 4) == -1
193
+ */
194
+ #define DayFromYear(y) (365 * ((y)-1970) + floor(((y)-1969)/4.0) \
195
+ - floor(((y)-1901)/100.0) + floor(((y)-1601)/400.0))
196
+ #define TimeFromYear(y) (DayFromYear(y) * msPerDay)
197
+
198
+ static jsint
199
+ YearFromTime(jsdouble t)
200
+ {
201
+ jsint y = (jsint) floor(t /(msPerDay*365.2425)) + 1970;
202
+ jsdouble t2 = (jsdouble) TimeFromYear(y);
203
+
204
+ if (t2 > t) {
205
+ y--;
206
+ } else {
207
+ if (t2 + msPerDay * DaysInYear(y) <= t)
208
+ y++;
209
+ }
210
+ return y;
211
+ }
212
+
213
+ #define InLeapYear(t) (JSBool) (DaysInYear(YearFromTime(t)) == 366)
214
+
215
+ #define DayWithinYear(t, year) ((intN) (Day(t) - DayFromYear(year)))
216
+
217
+ /*
218
+ * The following array contains the day of year for the first day of
219
+ * each month, where index 0 is January, and day 0 is January 1.
220
+ */
221
+ static jsdouble firstDayOfMonth[2][12] = {
222
+ {0.0, 31.0, 59.0, 90.0, 120.0, 151.0, 181.0, 212.0, 243.0, 273.0, 304.0, 334.0},
223
+ {0.0, 31.0, 60.0, 91.0, 121.0, 152.0, 182.0, 213.0, 244.0, 274.0, 305.0, 335.0}
224
+ };
225
+
226
+ #define DayFromMonth(m, leap) firstDayOfMonth[leap][(intN)m];
227
+
228
+ static intN
229
+ MonthFromTime(jsdouble t)
230
+ {
231
+ intN d, step;
232
+ jsint year = YearFromTime(t);
233
+ d = DayWithinYear(t, year);
234
+
235
+ if (d < (step = 31))
236
+ return 0;
237
+ step += (InLeapYear(t) ? 29 : 28);
238
+ if (d < step)
239
+ return 1;
240
+ if (d < (step += 31))
241
+ return 2;
242
+ if (d < (step += 30))
243
+ return 3;
244
+ if (d < (step += 31))
245
+ return 4;
246
+ if (d < (step += 30))
247
+ return 5;
248
+ if (d < (step += 31))
249
+ return 6;
250
+ if (d < (step += 31))
251
+ return 7;
252
+ if (d < (step += 30))
253
+ return 8;
254
+ if (d < (step += 31))
255
+ return 9;
256
+ if (d < (step += 30))
257
+ return 10;
258
+ return 11;
259
+ }
260
+
261
+ static intN
262
+ DateFromTime(jsdouble t)
263
+ {
264
+ intN d, step, next;
265
+ jsint year = YearFromTime(t);
266
+ d = DayWithinYear(t, year);
267
+
268
+ if (d <= (next = 30))
269
+ return d + 1;
270
+ step = next;
271
+ next += (InLeapYear(t) ? 29 : 28);
272
+ if (d <= next)
273
+ return d - step;
274
+ step = next;
275
+ if (d <= (next += 31))
276
+ return d - step;
277
+ step = next;
278
+ if (d <= (next += 30))
279
+ return d - step;
280
+ step = next;
281
+ if (d <= (next += 31))
282
+ return d - step;
283
+ step = next;
284
+ if (d <= (next += 30))
285
+ return d - step;
286
+ step = next;
287
+ if (d <= (next += 31))
288
+ return d - step;
289
+ step = next;
290
+ if (d <= (next += 31))
291
+ return d - step;
292
+ step = next;
293
+ if (d <= (next += 30))
294
+ return d - step;
295
+ step = next;
296
+ if (d <= (next += 31))
297
+ return d - step;
298
+ step = next;
299
+ if (d <= (next += 30))
300
+ return d - step;
301
+ step = next;
302
+ return d - step;
303
+ }
304
+
305
+ static intN
306
+ WeekDay(jsdouble t)
307
+ {
308
+ jsint result;
309
+ result = (jsint) Day(t) + 4;
310
+ result = result % 7;
311
+ if (result < 0)
312
+ result += 7;
313
+ return (intN) result;
314
+ }
315
+
316
+ #define MakeTime(hour, min, sec, ms) \
317
+ ((((hour) * MinutesPerHour + (min)) * SecondsPerMinute + (sec)) * msPerSecond + (ms))
318
+
319
+ static jsdouble
320
+ MakeDay(jsdouble year, jsdouble month, jsdouble date)
321
+ {
322
+ JSBool leap;
323
+ jsdouble yearday;
324
+ jsdouble monthday;
325
+
326
+ year += floor(month / 12);
327
+
328
+ month = fmod(month, 12.0);
329
+ if (month < 0)
330
+ month += 12;
331
+
332
+ leap = (DaysInYear((jsint) year) == 366);
333
+
334
+ yearday = floor(TimeFromYear(year) / msPerDay);
335
+ monthday = DayFromMonth(month, leap);
336
+
337
+ return yearday + monthday + date - 1;
338
+ }
339
+
340
+ #define MakeDate(day, time) ((day) * msPerDay + (time))
341
+
342
+ /*
343
+ * Years and leap years on which Jan 1 is a Sunday, Monday, etc.
344
+ *
345
+ * yearStartingWith[0][i] is an example non-leap year where
346
+ * Jan 1 appears on Sunday (i == 0), Monday (i == 1), etc.
347
+ *
348
+ * yearStartingWith[1][i] is an example leap year where
349
+ * Jan 1 appears on Sunday (i == 0), Monday (i == 1), etc.
350
+ */
351
+ static jsint yearStartingWith[2][7] = {
352
+ {1978, 1973, 1974, 1975, 1981, 1971, 1977},
353
+ {1984, 1996, 1980, 1992, 1976, 1988, 1972}
354
+ };
355
+
356
+ /*
357
+ * Find a year for which any given date will fall on the same weekday.
358
+ *
359
+ * This function should be used with caution when used other than
360
+ * for determining DST; it hasn't been proven not to produce an
361
+ * incorrect year for times near year boundaries.
362
+ */
363
+ static jsint
364
+ EquivalentYearForDST(jsint year)
365
+ {
366
+ jsint day;
367
+ JSBool isLeapYear;
368
+
369
+ day = (jsint) DayFromYear(year) + 4;
370
+ day = day % 7;
371
+ if (day < 0)
372
+ day += 7;
373
+
374
+ isLeapYear = (DaysInYear(year) == 366);
375
+
376
+ return yearStartingWith[isLeapYear][day];
377
+ }
378
+
379
+ /* LocalTZA gets set by js_InitDateClass() */
380
+ static jsdouble LocalTZA;
381
+
382
+ static jsdouble
383
+ DaylightSavingTA(jsdouble t)
384
+ {
385
+ volatile int64 PR_t;
386
+ int64 ms2us;
387
+ int64 offset;
388
+ jsdouble result;
389
+
390
+ /* abort if NaN */
391
+ if (JSDOUBLE_IS_NaN(t))
392
+ return t;
393
+
394
+ /*
395
+ * If earlier than 1970 or after 2038, potentially beyond the ken of
396
+ * many OSes, map it to an equivalent year before asking.
397
+ */
398
+ if (t < 0.0 || t > 2145916800000.0) {
399
+ jsint year;
400
+ jsdouble day;
401
+
402
+ year = EquivalentYearForDST(YearFromTime(t));
403
+ day = MakeDay(year, MonthFromTime(t), DateFromTime(t));
404
+ t = MakeDate(day, TimeWithinDay(t));
405
+ }
406
+
407
+ /* put our t in an LL, and map it to usec for prtime */
408
+ JSLL_D2L(PR_t, t);
409
+ JSLL_I2L(ms2us, PRMJ_USEC_PER_MSEC);
410
+ JSLL_MUL(PR_t, PR_t, ms2us);
411
+
412
+ offset = PRMJ_DSTOffset(PR_t);
413
+
414
+ JSLL_DIV(offset, offset, ms2us);
415
+ JSLL_L2D(result, offset);
416
+ return result;
417
+ }
418
+
419
+
420
+ #define AdjustTime(t) fmod(LocalTZA + DaylightSavingTA(t), msPerDay)
421
+
422
+ #define LocalTime(t) ((t) + AdjustTime(t))
423
+
424
+ static jsdouble
425
+ UTC(jsdouble t)
426
+ {
427
+ return t - AdjustTime(t - LocalTZA);
428
+ }
429
+
430
+ static intN
431
+ HourFromTime(jsdouble t)
432
+ {
433
+ intN result = (intN) fmod(floor(t/msPerHour), HoursPerDay);
434
+ if (result < 0)
435
+ result += (intN)HoursPerDay;
436
+ return result;
437
+ }
438
+
439
+ static intN
440
+ MinFromTime(jsdouble t)
441
+ {
442
+ intN result = (intN) fmod(floor(t / msPerMinute), MinutesPerHour);
443
+ if (result < 0)
444
+ result += (intN)MinutesPerHour;
445
+ return result;
446
+ }
447
+
448
+ static intN
449
+ SecFromTime(jsdouble t)
450
+ {
451
+ intN result = (intN) fmod(floor(t / msPerSecond), SecondsPerMinute);
452
+ if (result < 0)
453
+ result += (intN)SecondsPerMinute;
454
+ return result;
455
+ }
456
+
457
+ static intN
458
+ msFromTime(jsdouble t)
459
+ {
460
+ intN result = (intN) fmod(t, msPerSecond);
461
+ if (result < 0)
462
+ result += (intN)msPerSecond;
463
+ return result;
464
+ }
465
+
466
+ #define TIMECLIP(d) ((JSDOUBLE_IS_FINITE(d) \
467
+ && !((d < 0 ? -d : d) > HalfTimeDomain)) \
468
+ ? js_DoubleToInteger(d + (+0.)) : *cx->runtime->jsNaN)
469
+
470
+ /**
471
+ * end of ECMA 'support' functions
472
+ */
473
+
474
+ /*
475
+ * Other Support routines and definitions
476
+ */
477
+
478
+ /*
479
+ * We use the first reseved slot to store UTC time, and the second for caching
480
+ * the local time. The initial value of the cache entry is NaN.
481
+ */
482
+ const uint32 JSSLOT_UTC_TIME = JSSLOT_PRIVATE;
483
+ const uint32 JSSLOT_LOCAL_TIME = JSSLOT_PRIVATE + 1;
484
+
485
+ const uint32 DATE_RESERVED_SLOTS = 2;
486
+
487
+ JSClass js_DateClass = {
488
+ js_Date_str,
489
+ JSCLASS_HAS_RESERVED_SLOTS(DATE_RESERVED_SLOTS) |
490
+ JSCLASS_HAS_CACHED_PROTO(JSProto_Date),
491
+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
492
+ JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub,
493
+ JSCLASS_NO_OPTIONAL_MEMBERS
494
+ };
495
+
496
+ /* for use by date_parse */
497
+
498
+ static const char* wtb[] = {
499
+ "am", "pm",
500
+ "monday", "tuesday", "wednesday", "thursday", "friday",
501
+ "saturday", "sunday",
502
+ "january", "february", "march", "april", "may", "june",
503
+ "july", "august", "september", "october", "november", "december",
504
+ "gmt", "ut", "utc",
505
+ "est", "edt",
506
+ "cst", "cdt",
507
+ "mst", "mdt",
508
+ "pst", "pdt"
509
+ /* time zone table needs to be expanded */
510
+ };
511
+
512
+ static int ttb[] = {
513
+ -1, -2, 0, 0, 0, 0, 0, 0, 0, /* AM/PM */
514
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
515
+ 10000 + 0, 10000 + 0, 10000 + 0, /* GMT/UT/UTC */
516
+ 10000 + 5 * 60, 10000 + 4 * 60, /* EST/EDT */
517
+ 10000 + 6 * 60, 10000 + 5 * 60, /* CST/CDT */
518
+ 10000 + 7 * 60, 10000 + 6 * 60, /* MST/MDT */
519
+ 10000 + 8 * 60, 10000 + 7 * 60 /* PST/PDT */
520
+ };
521
+
522
+ /* helper for date_parse */
523
+ static JSBool
524
+ date_regionMatches(const char* s1, int s1off, const jschar* s2, int s2off,
525
+ int count, int ignoreCase)
526
+ {
527
+ JSBool result = JS_FALSE;
528
+ /* return true if matches, otherwise, false */
529
+
530
+ while (count > 0 && s1[s1off] && s2[s2off]) {
531
+ if (ignoreCase) {
532
+ if (JS_TOLOWER((jschar)s1[s1off]) != JS_TOLOWER(s2[s2off])) {
533
+ break;
534
+ }
535
+ } else {
536
+ if ((jschar)s1[s1off] != s2[s2off]) {
537
+ break;
538
+ }
539
+ }
540
+ s1off++;
541
+ s2off++;
542
+ count--;
543
+ }
544
+
545
+ if (count == 0) {
546
+ result = JS_TRUE;
547
+ }
548
+
549
+ return result;
550
+ }
551
+
552
+ /* find UTC time from given date... no 1900 correction! */
553
+ static jsdouble
554
+ date_msecFromDate(jsdouble year, jsdouble mon, jsdouble mday, jsdouble hour,
555
+ jsdouble min, jsdouble sec, jsdouble msec)
556
+ {
557
+ jsdouble day;
558
+ jsdouble msec_time;
559
+ jsdouble result;
560
+
561
+ day = MakeDay(year, mon, mday);
562
+ msec_time = MakeTime(hour, min, sec, msec);
563
+ result = MakeDate(day, msec_time);
564
+ return result;
565
+ }
566
+
567
+ /* compute the time in msec (unclipped) from the given args */
568
+ #define MAXARGS 7
569
+
570
+ static JSBool
571
+ date_msecFromArgs(JSContext *cx, uintN argc, jsval *argv, jsdouble *rval)
572
+ {
573
+ uintN loop;
574
+ jsdouble array[MAXARGS];
575
+ jsdouble d;
576
+ jsdouble msec_time;
577
+
578
+ for (loop = 0; loop < MAXARGS; loop++) {
579
+ if (loop < argc) {
580
+ d = js_ValueToNumber(cx, &argv[loop]);
581
+ if (JSVAL_IS_NULL(argv[loop]))
582
+ return JS_FALSE;
583
+ /* return NaN if any arg is not finite */
584
+ if (!JSDOUBLE_IS_FINITE(d)) {
585
+ *rval = *cx->runtime->jsNaN;
586
+ return JS_TRUE;
587
+ }
588
+ array[loop] = js_DoubleToInteger(d);
589
+ } else {
590
+ if (loop == 2) {
591
+ array[loop] = 1; /* Default the date argument to 1. */
592
+ } else {
593
+ array[loop] = 0;
594
+ }
595
+ }
596
+ }
597
+
598
+ /* adjust 2-digit years into the 20th century */
599
+ if (array[0] >= 0 && array[0] <= 99)
600
+ array[0] += 1900;
601
+
602
+ msec_time = date_msecFromDate(array[0], array[1], array[2],
603
+ array[3], array[4], array[5], array[6]);
604
+ *rval = msec_time;
605
+ return JS_TRUE;
606
+ }
607
+
608
+ /*
609
+ * See ECMA 15.9.4.[3-10];
610
+ */
611
+ static JSBool
612
+ date_UTC(JSContext *cx, uintN argc, jsval *vp)
613
+ {
614
+ jsdouble msec_time;
615
+
616
+ if (!date_msecFromArgs(cx, argc, vp + 2, &msec_time))
617
+ return JS_FALSE;
618
+
619
+ msec_time = TIMECLIP(msec_time);
620
+
621
+ return js_NewNumberInRootedValue(cx, msec_time, vp);
622
+ }
623
+
624
+ static JSBool
625
+ date_parseString(JSString *str, jsdouble *result)
626
+ {
627
+ jsdouble msec;
628
+
629
+ const jschar *s;
630
+ size_t limit;
631
+ size_t i = 0;
632
+ int year = -1;
633
+ int mon = -1;
634
+ int mday = -1;
635
+ int hour = -1;
636
+ int min = -1;
637
+ int sec = -1;
638
+ int c = -1;
639
+ int n = -1;
640
+ int tzoffset = -1;
641
+ int prevc = 0;
642
+ JSBool seenplusminus = JS_FALSE;
643
+ int temp;
644
+ JSBool seenmonthname = JS_FALSE;
645
+
646
+ JSSTRING_CHARS_AND_LENGTH(str, s, limit);
647
+ if (limit == 0)
648
+ goto syntax;
649
+ while (i < limit) {
650
+ c = s[i];
651
+ i++;
652
+ if (c <= ' ' || c == ',' || c == '-') {
653
+ if (c == '-' && '0' <= s[i] && s[i] <= '9') {
654
+ prevc = c;
655
+ }
656
+ continue;
657
+ }
658
+ if (c == '(') { /* comments) */
659
+ int depth = 1;
660
+ while (i < limit) {
661
+ c = s[i];
662
+ i++;
663
+ if (c == '(') depth++;
664
+ else if (c == ')')
665
+ if (--depth <= 0)
666
+ break;
667
+ }
668
+ continue;
669
+ }
670
+ if ('0' <= c && c <= '9') {
671
+ n = c - '0';
672
+ while (i < limit && '0' <= (c = s[i]) && c <= '9') {
673
+ n = n * 10 + c - '0';
674
+ i++;
675
+ }
676
+
677
+ /* allow TZA before the year, so
678
+ * 'Wed Nov 05 21:49:11 GMT-0800 1997'
679
+ * works */
680
+
681
+ /* uses of seenplusminus allow : in TZA, so Java
682
+ * no-timezone style of GMT+4:30 works
683
+ */
684
+
685
+ if ((prevc == '+' || prevc == '-')/* && year>=0 */) {
686
+ /* make ':' case below change tzoffset */
687
+ seenplusminus = JS_TRUE;
688
+
689
+ /* offset */
690
+ if (n < 24)
691
+ n = n * 60; /* EG. "GMT-3" */
692
+ else
693
+ n = n % 100 + n / 100 * 60; /* eg "GMT-0430" */
694
+ if (prevc == '+') /* plus means east of GMT */
695
+ n = -n;
696
+ if (tzoffset != 0 && tzoffset != -1)
697
+ goto syntax;
698
+ tzoffset = n;
699
+ } else if (prevc == '/' && mon >= 0 && mday >= 0 && year < 0) {
700
+ if (c <= ' ' || c == ',' || c == '/' || i >= limit)
701
+ year = n;
702
+ else
703
+ goto syntax;
704
+ } else if (c == ':') {
705
+ if (hour < 0)
706
+ hour = /*byte*/ n;
707
+ else if (min < 0)
708
+ min = /*byte*/ n;
709
+ else
710
+ goto syntax;
711
+ } else if (c == '/') {
712
+ /* until it is determined that mon is the actual
713
+ month, keep it as 1-based rather than 0-based */
714
+ if (mon < 0)
715
+ mon = /*byte*/ n;
716
+ else if (mday < 0)
717
+ mday = /*byte*/ n;
718
+ else
719
+ goto syntax;
720
+ } else if (i < limit && c != ',' && c > ' ' && c != '-' && c != '(') {
721
+ goto syntax;
722
+ } else if (seenplusminus && n < 60) { /* handle GMT-3:30 */
723
+ if (tzoffset < 0)
724
+ tzoffset -= n;
725
+ else
726
+ tzoffset += n;
727
+ } else if (hour >= 0 && min < 0) {
728
+ min = /*byte*/ n;
729
+ } else if (prevc == ':' && min >= 0 && sec < 0) {
730
+ sec = /*byte*/ n;
731
+ } else if (mon < 0) {
732
+ mon = /*byte*/n;
733
+ } else if (mon >= 0 && mday < 0) {
734
+ mday = /*byte*/ n;
735
+ } else if (mon >= 0 && mday >= 0 && year < 0) {
736
+ year = n;
737
+ } else {
738
+ goto syntax;
739
+ }
740
+ prevc = 0;
741
+ } else if (c == '/' || c == ':' || c == '+' || c == '-') {
742
+ prevc = c;
743
+ } else {
744
+ size_t st = i - 1;
745
+ int k;
746
+ while (i < limit) {
747
+ c = s[i];
748
+ if (!(('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')))
749
+ break;
750
+ i++;
751
+ }
752
+ if (i <= st + 1)
753
+ goto syntax;
754
+ for (k = JS_ARRAY_LENGTH(wtb); --k >= 0;)
755
+ if (date_regionMatches(wtb[k], 0, s, st, i-st, 1)) {
756
+ int action = ttb[k];
757
+ if (action != 0) {
758
+ if (action < 0) {
759
+ /*
760
+ * AM/PM. Count 12:30 AM as 00:30, 12:30 PM as
761
+ * 12:30, instead of blindly adding 12 if PM.
762
+ */
763
+ JS_ASSERT(action == -1 || action == -2);
764
+ if (hour > 12 || hour < 0) {
765
+ goto syntax;
766
+ } else {
767
+ if (action == -1 && hour == 12) { /* am */
768
+ hour = 0;
769
+ } else if (action == -2 && hour != 12) { /* pm */
770
+ hour += 12;
771
+ }
772
+ }
773
+ } else if (action <= 13) { /* month! */
774
+ /* Adjust mon to be 1-based until the final values
775
+ for mon, mday and year are adjusted below */
776
+ if (seenmonthname) {
777
+ goto syntax;
778
+ }
779
+ seenmonthname = JS_TRUE;
780
+ temp = /*byte*/ (action - 2) + 1;
781
+
782
+ if (mon < 0) {
783
+ mon = temp;
784
+ } else if (mday < 0) {
785
+ mday = mon;
786
+ mon = temp;
787
+ } else if (year < 0) {
788
+ year = mon;
789
+ mon = temp;
790
+ } else {
791
+ goto syntax;
792
+ }
793
+ } else {
794
+ tzoffset = action - 10000;
795
+ }
796
+ }
797
+ break;
798
+ }
799
+ if (k < 0)
800
+ goto syntax;
801
+ prevc = 0;
802
+ }
803
+ }
804
+ if (year < 0 || mon < 0 || mday < 0)
805
+ goto syntax;
806
+ /*
807
+ Case 1. The input string contains an English month name.
808
+ The form of the string can be month f l, or f month l, or
809
+ f l month which each evaluate to the same date.
810
+ If f and l are both greater than or equal to 70, or
811
+ both less than 70, the date is invalid.
812
+ The year is taken to be the greater of the values f, l.
813
+ If the year is greater than or equal to 70 and less than 100,
814
+ it is considered to be the number of years after 1900.
815
+ Case 2. The input string is of the form "f/m/l" where f, m and l are
816
+ integers, e.g. 7/16/45.
817
+ Adjust the mon, mday and year values to achieve 100% MSIE
818
+ compatibility.
819
+ a. If 0 <= f < 70, f/m/l is interpreted as month/day/year.
820
+ i. If year < 100, it is the number of years after 1900
821
+ ii. If year >= 100, it is the number of years after 0.
822
+ b. If 70 <= f < 100
823
+ i. If m < 70, f/m/l is interpreted as
824
+ year/month/day where year is the number of years after
825
+ 1900.
826
+ ii. If m >= 70, the date is invalid.
827
+ c. If f >= 100
828
+ i. If m < 70, f/m/l is interpreted as
829
+ year/month/day where year is the number of years after 0.
830
+ ii. If m >= 70, the date is invalid.
831
+ */
832
+ if (seenmonthname) {
833
+ if ((mday >= 70 && year >= 70) || (mday < 70 && year < 70)) {
834
+ goto syntax;
835
+ }
836
+ if (mday > year) {
837
+ temp = year;
838
+ year = mday;
839
+ mday = temp;
840
+ }
841
+ if (year >= 70 && year < 100) {
842
+ year += 1900;
843
+ }
844
+ } else if (mon < 70) { /* (a) month/day/year */
845
+ if (year < 100) {
846
+ year += 1900;
847
+ }
848
+ } else if (mon < 100) { /* (b) year/month/day */
849
+ if (mday < 70) {
850
+ temp = year;
851
+ year = mon + 1900;
852
+ mon = mday;
853
+ mday = temp;
854
+ } else {
855
+ goto syntax;
856
+ }
857
+ } else { /* (c) year/month/day */
858
+ if (mday < 70) {
859
+ temp = year;
860
+ year = mon;
861
+ mon = mday;
862
+ mday = temp;
863
+ } else {
864
+ goto syntax;
865
+ }
866
+ }
867
+ mon -= 1; /* convert month to 0-based */
868
+ if (sec < 0)
869
+ sec = 0;
870
+ if (min < 0)
871
+ min = 0;
872
+ if (hour < 0)
873
+ hour = 0;
874
+ if (tzoffset == -1) { /* no time zone specified, have to use local */
875
+ jsdouble msec_time;
876
+ msec_time = date_msecFromDate(year, mon, mday, hour, min, sec, 0);
877
+
878
+ *result = UTC(msec_time);
879
+ return JS_TRUE;
880
+ }
881
+
882
+ msec = date_msecFromDate(year, mon, mday, hour, min, sec, 0);
883
+ msec += tzoffset * msPerMinute;
884
+ *result = msec;
885
+ return JS_TRUE;
886
+
887
+ syntax:
888
+ /* syntax error */
889
+ *result = 0;
890
+ return JS_FALSE;
891
+ }
892
+
893
+ static JSBool
894
+ date_parse(JSContext *cx, uintN argc, jsval *vp)
895
+ {
896
+ JSString *str;
897
+ jsdouble result;
898
+
899
+ if (argc == 0) {
900
+ *vp = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
901
+ return JS_TRUE;
902
+ }
903
+ str = js_ValueToString(cx, vp[2]);
904
+ if (!str)
905
+ return JS_FALSE;
906
+ vp[2] = STRING_TO_JSVAL(str);
907
+ if (!date_parseString(str, &result)) {
908
+ *vp = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
909
+ return JS_TRUE;
910
+ }
911
+
912
+ result = TIMECLIP(result);
913
+ return js_NewNumberInRootedValue(cx, result, vp);
914
+ }
915
+
916
+ static JSBool
917
+ date_now(JSContext *cx, uintN argc, jsval *vp)
918
+ {
919
+ return js_NewDoubleInRootedValue(cx, PRMJ_Now() / PRMJ_USEC_PER_MSEC, vp);
920
+ }
921
+
922
+ #ifdef JS_TRACER
923
+ static jsdouble FASTCALL
924
+ date_now_tn(JSContext*)
925
+ {
926
+ return PRMJ_Now() / PRMJ_USEC_PER_MSEC;
927
+ }
928
+ #endif
929
+
930
+ /*
931
+ * Get UTC time from the date object. Returns false if the object is not
932
+ * Date type.
933
+ */
934
+ static JSBool
935
+ GetUTCTime(JSContext *cx, JSObject *obj, jsval *vp, jsdouble *dp)
936
+ {
937
+ if (!JS_InstanceOf(cx, obj, &js_DateClass, vp ? vp + 2 : NULL))
938
+ return JS_FALSE;
939
+ *dp = *JSVAL_TO_DOUBLE(obj->fslots[JSSLOT_UTC_TIME]);
940
+ return JS_TRUE;
941
+ }
942
+
943
+ /*
944
+ * Set UTC time slot with a pointer pointing to a jsdouble. This function is
945
+ * used only for setting UTC time to some predefined values, such as NaN.
946
+ *
947
+ * It also invalidates cached local time.
948
+ */
949
+ static JSBool
950
+ SetUTCTimePtr(JSContext *cx, JSObject *obj, jsval *vp, jsdouble *dp)
951
+ {
952
+ if (vp && !JS_InstanceOf(cx, obj, &js_DateClass, vp + 2))
953
+ return JS_FALSE;
954
+ JS_ASSERT_IF(!vp, STOBJ_GET_CLASS(obj) == &js_DateClass);
955
+
956
+ /* Invalidate local time cache. */
957
+ obj->fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
958
+ obj->fslots[JSSLOT_UTC_TIME] = DOUBLE_TO_JSVAL(dp);
959
+ return JS_TRUE;
960
+ }
961
+
962
+ /*
963
+ * Set UTC time to a given time.
964
+ */
965
+ static JSBool
966
+ SetUTCTime(JSContext *cx, JSObject *obj, jsval *vp, jsdouble t)
967
+ {
968
+ jsdouble *dp = js_NewWeaklyRootedDouble(cx, t);
969
+ if (!dp)
970
+ return JS_FALSE;
971
+ return SetUTCTimePtr(cx, obj, vp, dp);
972
+ }
973
+
974
+ /*
975
+ * Get the local time, cache it if necessary. If UTC time is not finite
976
+ * (e.g., NaN), the local time slot is set to the UTC time without conversion.
977
+ */
978
+ static JSBool
979
+ GetAndCacheLocalTime(JSContext *cx, JSObject *obj, jsval *vp, jsdouble *dp)
980
+ {
981
+ jsval v;
982
+ jsdouble result;
983
+ jsdouble *cached;
984
+
985
+ if (!obj || !JS_InstanceOf(cx, obj, &js_DateClass, vp ? vp + 2 : NULL))
986
+ return JS_FALSE;
987
+ v = obj->fslots[JSSLOT_LOCAL_TIME];
988
+
989
+ result = *JSVAL_TO_DOUBLE(v);
990
+
991
+ if (JSDOUBLE_IS_NaN(result)) {
992
+ if (!GetUTCTime(cx, obj, vp, &result))
993
+ return JS_FALSE;
994
+
995
+ /* if result is NaN, it couldn't be finite. */
996
+ if (JSDOUBLE_IS_FINITE(result))
997
+ result = LocalTime(result);
998
+
999
+ cached = js_NewWeaklyRootedDouble(cx, result);
1000
+ if (!cached)
1001
+ return JS_FALSE;
1002
+
1003
+ obj->fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cached);
1004
+ }
1005
+
1006
+ *dp = result;
1007
+ return JS_TRUE;
1008
+ }
1009
+
1010
+ /*
1011
+ * See ECMA 15.9.5.4 thru 15.9.5.23
1012
+ */
1013
+ static JSBool
1014
+ date_getTime(JSContext *cx, uintN argc, jsval *vp)
1015
+ {
1016
+ jsdouble result;
1017
+
1018
+ return GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result) &&
1019
+ js_NewNumberInRootedValue(cx, result, vp);
1020
+ }
1021
+
1022
+ static JSBool
1023
+ GetYear(JSContext *cx, JSBool fullyear, jsval *vp)
1024
+ {
1025
+ jsdouble result;
1026
+
1027
+ if (!GetAndCacheLocalTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1028
+ return JS_FALSE;
1029
+
1030
+ if (JSDOUBLE_IS_FINITE(result)) {
1031
+ result = YearFromTime(result);
1032
+
1033
+ /* Follow ECMA-262 to the letter, contrary to IE JScript. */
1034
+ if (!fullyear)
1035
+ result -= 1900;
1036
+ }
1037
+
1038
+ return js_NewNumberInRootedValue(cx, result, vp);
1039
+ }
1040
+
1041
+ static JSBool
1042
+ date_getYear(JSContext *cx, uintN argc, jsval *vp)
1043
+ {
1044
+ return GetYear(cx, JS_FALSE, vp);
1045
+ }
1046
+
1047
+ static JSBool
1048
+ date_getFullYear(JSContext *cx, uintN argc, jsval *vp)
1049
+ {
1050
+ return GetYear(cx, JS_TRUE, vp);
1051
+ }
1052
+
1053
+ static JSBool
1054
+ date_getUTCFullYear(JSContext *cx, uintN argc, jsval *vp)
1055
+ {
1056
+ jsdouble result;
1057
+
1058
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1059
+ return JS_FALSE;
1060
+
1061
+ if (JSDOUBLE_IS_FINITE(result))
1062
+ result = YearFromTime(result);
1063
+
1064
+ return js_NewNumberInRootedValue(cx, result, vp);
1065
+ }
1066
+
1067
+ static JSBool
1068
+ date_getMonth(JSContext *cx, uintN argc, jsval *vp)
1069
+ {
1070
+ jsdouble result;
1071
+
1072
+ if (!GetAndCacheLocalTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1073
+ return JS_FALSE;
1074
+
1075
+ if (JSDOUBLE_IS_FINITE(result))
1076
+ result = MonthFromTime(result);
1077
+
1078
+ return js_NewNumberInRootedValue(cx, result, vp);
1079
+ }
1080
+
1081
+ static JSBool
1082
+ date_getUTCMonth(JSContext *cx, uintN argc, jsval *vp)
1083
+ {
1084
+ jsdouble result;
1085
+
1086
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1087
+ return JS_FALSE;
1088
+
1089
+ if (JSDOUBLE_IS_FINITE(result))
1090
+ result = MonthFromTime(result);
1091
+
1092
+ return js_NewNumberInRootedValue(cx, result, vp);
1093
+ }
1094
+
1095
+ static JSBool
1096
+ date_getDate(JSContext *cx, uintN argc, jsval *vp)
1097
+ {
1098
+ jsdouble result;
1099
+
1100
+ if (!GetAndCacheLocalTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1101
+ return JS_FALSE;
1102
+
1103
+ if (JSDOUBLE_IS_FINITE(result))
1104
+ result = DateFromTime(result);
1105
+
1106
+ return js_NewNumberInRootedValue(cx, result, vp);
1107
+ }
1108
+
1109
+ static JSBool
1110
+ date_getUTCDate(JSContext *cx, uintN argc, jsval *vp)
1111
+ {
1112
+ jsdouble result;
1113
+
1114
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1115
+ return JS_FALSE;
1116
+
1117
+ if (JSDOUBLE_IS_FINITE(result))
1118
+ result = DateFromTime(result);
1119
+
1120
+ return js_NewNumberInRootedValue(cx, result, vp);
1121
+ }
1122
+
1123
+ static JSBool
1124
+ date_getDay(JSContext *cx, uintN argc, jsval *vp)
1125
+ {
1126
+ jsdouble result;
1127
+
1128
+ if (!GetAndCacheLocalTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1129
+ return JS_FALSE;
1130
+
1131
+ if (JSDOUBLE_IS_FINITE(result))
1132
+ result = WeekDay(result);
1133
+
1134
+ return js_NewNumberInRootedValue(cx, result, vp);
1135
+ }
1136
+
1137
+ static JSBool
1138
+ date_getUTCDay(JSContext *cx, uintN argc, jsval *vp)
1139
+ {
1140
+ jsdouble result;
1141
+
1142
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1143
+ return JS_FALSE;
1144
+
1145
+ if (JSDOUBLE_IS_FINITE(result))
1146
+ result = WeekDay(result);
1147
+
1148
+ return js_NewNumberInRootedValue(cx, result, vp);
1149
+ }
1150
+
1151
+ static JSBool
1152
+ date_getHours(JSContext *cx, uintN argc, jsval *vp)
1153
+ {
1154
+ jsdouble result;
1155
+
1156
+ if (!GetAndCacheLocalTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1157
+ return JS_FALSE;
1158
+
1159
+ if (JSDOUBLE_IS_FINITE(result))
1160
+ result = HourFromTime(result);
1161
+
1162
+ return js_NewNumberInRootedValue(cx, result, vp);
1163
+ }
1164
+
1165
+ static JSBool
1166
+ date_getUTCHours(JSContext *cx, uintN argc, jsval *vp)
1167
+ {
1168
+ jsdouble result;
1169
+
1170
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1171
+ return JS_FALSE;
1172
+
1173
+ if (JSDOUBLE_IS_FINITE(result))
1174
+ result = HourFromTime(result);
1175
+
1176
+ return js_NewNumberInRootedValue(cx, result, vp);
1177
+ }
1178
+
1179
+ static JSBool
1180
+ date_getMinutes(JSContext *cx, uintN argc, jsval *vp)
1181
+ {
1182
+ jsdouble result;
1183
+
1184
+ if (!GetAndCacheLocalTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1185
+ return JS_FALSE;
1186
+
1187
+ if (JSDOUBLE_IS_FINITE(result))
1188
+ result = MinFromTime(result);
1189
+
1190
+ return js_NewNumberInRootedValue(cx, result, vp);
1191
+ }
1192
+
1193
+ static JSBool
1194
+ date_getUTCMinutes(JSContext *cx, uintN argc, jsval *vp)
1195
+ {
1196
+ jsdouble result;
1197
+
1198
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1199
+ return JS_FALSE;
1200
+
1201
+ if (JSDOUBLE_IS_FINITE(result))
1202
+ result = MinFromTime(result);
1203
+
1204
+ return js_NewNumberInRootedValue(cx, result, vp);
1205
+ }
1206
+
1207
+ /* Date.getSeconds is mapped to getUTCSeconds */
1208
+
1209
+ static JSBool
1210
+ date_getUTCSeconds(JSContext *cx, uintN argc, jsval *vp)
1211
+ {
1212
+ jsdouble result;
1213
+
1214
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1215
+ return JS_FALSE;
1216
+
1217
+ if (JSDOUBLE_IS_FINITE(result))
1218
+ result = SecFromTime(result);
1219
+
1220
+ return js_NewNumberInRootedValue(cx, result, vp);
1221
+ }
1222
+
1223
+ /* Date.getMilliseconds is mapped to getUTCMilliseconds */
1224
+
1225
+ static JSBool
1226
+ date_getUTCMilliseconds(JSContext *cx, uintN argc, jsval *vp)
1227
+ {
1228
+ jsdouble result;
1229
+
1230
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &result))
1231
+ return JS_FALSE;
1232
+
1233
+ if (JSDOUBLE_IS_FINITE(result))
1234
+ result = msFromTime(result);
1235
+
1236
+ return js_NewNumberInRootedValue(cx, result, vp);
1237
+ }
1238
+
1239
+ static JSBool
1240
+ date_getTimezoneOffset(JSContext *cx, uintN argc, jsval *vp)
1241
+ {
1242
+ JSObject *obj;
1243
+ jsdouble utctime, localtime, result;
1244
+
1245
+ obj = JS_THIS_OBJECT(cx, vp);
1246
+ if (!GetUTCTime(cx, obj, vp, &utctime))
1247
+ return JS_FALSE;
1248
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &localtime))
1249
+ return JS_FALSE;
1250
+
1251
+ /*
1252
+ * Return the time zone offset in minutes for the current locale that is
1253
+ * appropriate for this time. This value would be a constant except for
1254
+ * daylight savings time.
1255
+ */
1256
+ result = (utctime - localtime) / msPerMinute;
1257
+ return js_NewNumberInRootedValue(cx, result, vp);
1258
+ }
1259
+
1260
+ static JSBool
1261
+ SetDateToNaN(JSContext *cx, jsval *vp)
1262
+ {
1263
+ JSObject *obj;
1264
+
1265
+ obj = JS_THIS_OBJECT(cx, vp);
1266
+ if (!SetUTCTimePtr(cx, obj, NULL, cx->runtime->jsNaN))
1267
+ return JS_FALSE;
1268
+ *vp = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
1269
+ return JS_TRUE;
1270
+ }
1271
+
1272
+ static JSBool
1273
+ date_setTime(JSContext *cx, uintN argc, jsval *vp)
1274
+ {
1275
+ jsdouble result;
1276
+
1277
+ if (argc == 0)
1278
+ return SetDateToNaN(cx, vp);
1279
+ result = js_ValueToNumber(cx, &vp[2]);
1280
+ if (JSVAL_IS_NULL(vp[2]))
1281
+ return JS_FALSE;
1282
+
1283
+ result = TIMECLIP(result);
1284
+
1285
+ if (!SetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, result))
1286
+ return JS_FALSE;
1287
+
1288
+ return js_NewNumberInRootedValue(cx, result, vp);
1289
+ }
1290
+
1291
+ static JSBool
1292
+ date_makeTime(JSContext *cx, uintN maxargs, JSBool local, uintN argc, jsval *vp)
1293
+ {
1294
+ JSObject *obj;
1295
+ jsval *argv;
1296
+ uintN i;
1297
+ jsdouble args[4], *argp, *stop;
1298
+ jsdouble hour, min, sec, msec;
1299
+ jsdouble lorutime; /* Local or UTC version of *date */
1300
+
1301
+ jsdouble msec_time;
1302
+ jsdouble result;
1303
+
1304
+ obj = JS_THIS_OBJECT(cx, vp);
1305
+ if (!GetUTCTime(cx, obj, vp, &result))
1306
+ return JS_FALSE;
1307
+
1308
+ /* just return NaN if the date is already NaN */
1309
+ if (!JSDOUBLE_IS_FINITE(result))
1310
+ return js_NewNumberInRootedValue(cx, result, vp);
1311
+
1312
+ /*
1313
+ * Satisfy the ECMA rule that if a function is called with
1314
+ * fewer arguments than the specified formal arguments, the
1315
+ * remaining arguments are set to undefined. Seems like all
1316
+ * the Date.setWhatever functions in ECMA are only varargs
1317
+ * beyond the first argument; this should be set to undefined
1318
+ * if it's not given. This means that "d = new Date();
1319
+ * d.setMilliseconds()" returns NaN. Blech.
1320
+ */
1321
+ if (argc == 0)
1322
+ return SetDateToNaN(cx, vp);
1323
+ if (argc > maxargs)
1324
+ argc = maxargs; /* clamp argc */
1325
+ JS_ASSERT(argc <= 4);
1326
+
1327
+ argv = vp + 2;
1328
+ for (i = 0; i < argc; i++) {
1329
+ args[i] = js_ValueToNumber(cx, &argv[i]);
1330
+ if (JSVAL_IS_NULL(argv[i]))
1331
+ return JS_FALSE;
1332
+ if (!JSDOUBLE_IS_FINITE(args[i]))
1333
+ return SetDateToNaN(cx, vp);
1334
+ args[i] = js_DoubleToInteger(args[i]);
1335
+ }
1336
+
1337
+ if (local)
1338
+ lorutime = LocalTime(result);
1339
+ else
1340
+ lorutime = result;
1341
+
1342
+ argp = args;
1343
+ stop = argp + argc;
1344
+ if (maxargs >= 4 && argp < stop)
1345
+ hour = *argp++;
1346
+ else
1347
+ hour = HourFromTime(lorutime);
1348
+
1349
+ if (maxargs >= 3 && argp < stop)
1350
+ min = *argp++;
1351
+ else
1352
+ min = MinFromTime(lorutime);
1353
+
1354
+ if (maxargs >= 2 && argp < stop)
1355
+ sec = *argp++;
1356
+ else
1357
+ sec = SecFromTime(lorutime);
1358
+
1359
+ if (maxargs >= 1 && argp < stop)
1360
+ msec = *argp;
1361
+ else
1362
+ msec = msFromTime(lorutime);
1363
+
1364
+ msec_time = MakeTime(hour, min, sec, msec);
1365
+ result = MakeDate(Day(lorutime), msec_time);
1366
+
1367
+ /* fprintf(stderr, "%f\n", result); */
1368
+
1369
+ if (local)
1370
+ result = UTC(result);
1371
+
1372
+ /* fprintf(stderr, "%f\n", result); */
1373
+
1374
+ result = TIMECLIP(result);
1375
+ if (!SetUTCTime(cx, obj, NULL, result))
1376
+ return JS_FALSE;
1377
+
1378
+ return js_NewNumberInRootedValue(cx, result, vp);
1379
+ }
1380
+
1381
+ static JSBool
1382
+ date_setMilliseconds(JSContext *cx, uintN argc, jsval *vp)
1383
+ {
1384
+ return date_makeTime(cx, 1, JS_TRUE, argc, vp);
1385
+ }
1386
+
1387
+ static JSBool
1388
+ date_setUTCMilliseconds(JSContext *cx, uintN argc, jsval *vp)
1389
+ {
1390
+ return date_makeTime(cx, 1, JS_FALSE, argc, vp);
1391
+ }
1392
+
1393
+ static JSBool
1394
+ date_setSeconds(JSContext *cx, uintN argc, jsval *vp)
1395
+ {
1396
+ return date_makeTime(cx, 2, JS_TRUE, argc, vp);
1397
+ }
1398
+
1399
+ static JSBool
1400
+ date_setUTCSeconds(JSContext *cx, uintN argc, jsval *vp)
1401
+ {
1402
+ return date_makeTime(cx, 2, JS_FALSE, argc, vp);
1403
+ }
1404
+
1405
+ static JSBool
1406
+ date_setMinutes(JSContext *cx, uintN argc, jsval *vp)
1407
+ {
1408
+ return date_makeTime(cx, 3, JS_TRUE, argc, vp);
1409
+ }
1410
+
1411
+ static JSBool
1412
+ date_setUTCMinutes(JSContext *cx, uintN argc, jsval *vp)
1413
+ {
1414
+ return date_makeTime(cx, 3, JS_FALSE, argc, vp);
1415
+ }
1416
+
1417
+ static JSBool
1418
+ date_setHours(JSContext *cx, uintN argc, jsval *vp)
1419
+ {
1420
+ return date_makeTime(cx, 4, JS_TRUE, argc, vp);
1421
+ }
1422
+
1423
+ static JSBool
1424
+ date_setUTCHours(JSContext *cx, uintN argc, jsval *vp)
1425
+ {
1426
+ return date_makeTime(cx, 4, JS_FALSE, argc, vp);
1427
+ }
1428
+
1429
+ static JSBool
1430
+ date_makeDate(JSContext *cx, uintN maxargs, JSBool local, uintN argc, jsval *vp)
1431
+ {
1432
+ JSObject *obj;
1433
+ jsval *argv;
1434
+ uintN i;
1435
+ jsdouble lorutime; /* local or UTC version of *date */
1436
+ jsdouble args[3], *argp, *stop;
1437
+ jsdouble year, month, day;
1438
+ jsdouble result;
1439
+
1440
+ obj = JS_THIS_OBJECT(cx, vp);
1441
+ if (!GetUTCTime(cx, obj, vp, &result))
1442
+ return JS_FALSE;
1443
+
1444
+ /* see complaint about ECMA in date_MakeTime */
1445
+ if (argc == 0)
1446
+ return SetDateToNaN(cx, vp);
1447
+ if (argc > maxargs)
1448
+ argc = maxargs; /* clamp argc */
1449
+ JS_ASSERT(1 <= argc && argc <= 3);
1450
+
1451
+ argv = vp + 2;
1452
+ for (i = 0; i < argc; i++) {
1453
+ args[i] = js_ValueToNumber(cx, &argv[i]);
1454
+ if (JSVAL_IS_NULL(argv[i]))
1455
+ return JS_FALSE;
1456
+ if (!JSDOUBLE_IS_FINITE(args[i]))
1457
+ return SetDateToNaN(cx, vp);
1458
+ args[i] = js_DoubleToInteger(args[i]);
1459
+ }
1460
+
1461
+ /* return NaN if date is NaN and we're not setting the year,
1462
+ * If we are, use 0 as the time. */
1463
+ if (!(JSDOUBLE_IS_FINITE(result))) {
1464
+ if (maxargs < 3)
1465
+ return js_NewNumberInRootedValue(cx, result, vp);
1466
+ lorutime = +0.;
1467
+ } else {
1468
+ lorutime = local ? LocalTime(result) : result;
1469
+ }
1470
+
1471
+ argp = args;
1472
+ stop = argp + argc;
1473
+ if (maxargs >= 3 && argp < stop)
1474
+ year = *argp++;
1475
+ else
1476
+ year = YearFromTime(lorutime);
1477
+
1478
+ if (maxargs >= 2 && argp < stop)
1479
+ month = *argp++;
1480
+ else
1481
+ month = MonthFromTime(lorutime);
1482
+
1483
+ if (maxargs >= 1 && argp < stop)
1484
+ day = *argp++;
1485
+ else
1486
+ day = DateFromTime(lorutime);
1487
+
1488
+ day = MakeDay(year, month, day); /* day within year */
1489
+ result = MakeDate(day, TimeWithinDay(lorutime));
1490
+
1491
+ if (local)
1492
+ result = UTC(result);
1493
+
1494
+ result = TIMECLIP(result);
1495
+ if (!SetUTCTime(cx, obj, NULL, result))
1496
+ return JS_FALSE;
1497
+
1498
+ return js_NewNumberInRootedValue(cx, result, vp);
1499
+ }
1500
+
1501
+ static JSBool
1502
+ date_setDate(JSContext *cx, uintN argc, jsval *vp)
1503
+ {
1504
+ return date_makeDate(cx, 1, JS_TRUE, argc, vp);
1505
+ }
1506
+
1507
+ static JSBool
1508
+ date_setUTCDate(JSContext *cx, uintN argc, jsval *vp)
1509
+ {
1510
+ return date_makeDate(cx, 1, JS_FALSE, argc, vp);
1511
+ }
1512
+
1513
+ static JSBool
1514
+ date_setMonth(JSContext *cx, uintN argc, jsval *vp)
1515
+ {
1516
+ return date_makeDate(cx, 2, JS_TRUE, argc, vp);
1517
+ }
1518
+
1519
+ static JSBool
1520
+ date_setUTCMonth(JSContext *cx, uintN argc, jsval *vp)
1521
+ {
1522
+ return date_makeDate(cx, 2, JS_FALSE, argc, vp);
1523
+ }
1524
+
1525
+ static JSBool
1526
+ date_setFullYear(JSContext *cx, uintN argc, jsval *vp)
1527
+ {
1528
+ return date_makeDate(cx, 3, JS_TRUE, argc, vp);
1529
+ }
1530
+
1531
+ static JSBool
1532
+ date_setUTCFullYear(JSContext *cx, uintN argc, jsval *vp)
1533
+ {
1534
+ return date_makeDate(cx, 3, JS_FALSE, argc, vp);
1535
+ }
1536
+
1537
+ static JSBool
1538
+ date_setYear(JSContext *cx, uintN argc, jsval *vp)
1539
+ {
1540
+ JSObject *obj;
1541
+ jsdouble t;
1542
+ jsdouble year;
1543
+ jsdouble day;
1544
+ jsdouble result;
1545
+
1546
+ obj = JS_THIS_OBJECT(cx, vp);
1547
+ if (!GetUTCTime(cx, obj, vp, &result))
1548
+ return JS_FALSE;
1549
+
1550
+ if (argc == 0)
1551
+ return SetDateToNaN(cx, vp);
1552
+ year = js_ValueToNumber(cx, &vp[2]);
1553
+ if (JSVAL_IS_NULL(vp[2]))
1554
+ return JS_FALSE;
1555
+ if (!JSDOUBLE_IS_FINITE(year))
1556
+ return SetDateToNaN(cx, vp);
1557
+
1558
+ year = js_DoubleToInteger(year);
1559
+
1560
+ if (!JSDOUBLE_IS_FINITE(result)) {
1561
+ t = +0.0;
1562
+ } else {
1563
+ t = LocalTime(result);
1564
+ }
1565
+
1566
+ if (year >= 0 && year <= 99)
1567
+ year += 1900;
1568
+
1569
+ day = MakeDay(year, MonthFromTime(t), DateFromTime(t));
1570
+ result = MakeDate(day, TimeWithinDay(t));
1571
+ result = UTC(result);
1572
+
1573
+ result = TIMECLIP(result);
1574
+ if (!SetUTCTime(cx, obj, NULL, result))
1575
+ return JS_FALSE;
1576
+
1577
+ return js_NewNumberInRootedValue(cx, result, vp);
1578
+ }
1579
+
1580
+ /* constants for toString, toUTCString */
1581
+ static char js_NaN_date_str[] = "Invalid Date";
1582
+ static const char* days[] =
1583
+ {
1584
+ "Sun","Mon","Tue","Wed","Thu","Fri","Sat"
1585
+ };
1586
+ static const char* months[] =
1587
+ {
1588
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
1589
+ };
1590
+
1591
+
1592
+ // Avoid dependence on PRMJ_FormatTimeUSEnglish, because it
1593
+ // requires a PRMJTime... which only has 16-bit years. Sub-ECMA.
1594
+ static void
1595
+ print_gmt_string(char* buf, size_t size, jsdouble utctime)
1596
+ {
1597
+ JS_snprintf(buf, size, "%s, %.2d %s %.4d %.2d:%.2d:%.2d GMT",
1598
+ days[WeekDay(utctime)],
1599
+ DateFromTime(utctime),
1600
+ months[MonthFromTime(utctime)],
1601
+ YearFromTime(utctime),
1602
+ HourFromTime(utctime),
1603
+ MinFromTime(utctime),
1604
+ SecFromTime(utctime));
1605
+ }
1606
+
1607
+ static void
1608
+ print_iso_string(char* buf, size_t size, jsdouble utctime)
1609
+ {
1610
+ JS_snprintf(buf, size, "%.4d-%.2d-%.2dT%.2d:%.2d:%.2d.%.3dZ",
1611
+ YearFromTime(utctime),
1612
+ MonthFromTime(utctime) + 1,
1613
+ DateFromTime(utctime),
1614
+ HourFromTime(utctime),
1615
+ MinFromTime(utctime),
1616
+ SecFromTime(utctime),
1617
+ msFromTime(utctime));
1618
+ }
1619
+
1620
+ static JSBool
1621
+ date_utc_format(JSContext *cx, jsval *vp,
1622
+ void (*printFunc)(char*, size_t, jsdouble))
1623
+ {
1624
+ char buf[100];
1625
+ JSString *str;
1626
+ jsdouble utctime;
1627
+
1628
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &utctime))
1629
+ return JS_FALSE;
1630
+
1631
+ if (!JSDOUBLE_IS_FINITE(utctime)) {
1632
+ JS_snprintf(buf, sizeof buf, js_NaN_date_str);
1633
+ } else {
1634
+ (*printFunc)(buf, sizeof buf, utctime);
1635
+ }
1636
+ str = JS_NewStringCopyZ(cx, buf);
1637
+ if (!str)
1638
+ return JS_FALSE;
1639
+ *vp = STRING_TO_JSVAL(str);
1640
+ return JS_TRUE;
1641
+ }
1642
+
1643
+ static JSBool
1644
+ date_toGMTString(JSContext *cx, uintN argc, jsval *vp)
1645
+ {
1646
+ return date_utc_format(cx, vp, print_gmt_string);
1647
+ }
1648
+
1649
+ static JSBool
1650
+ date_toISOString(JSContext *cx, uintN argc, jsval *vp)
1651
+ {
1652
+ return date_utc_format(cx, vp, print_iso_string);
1653
+ }
1654
+
1655
+ /* for Date.toLocaleString; interface to PRMJTime date struct.
1656
+ */
1657
+ static void
1658
+ new_explode(jsdouble timeval, PRMJTime *split)
1659
+ {
1660
+ jsint year = YearFromTime(timeval);
1661
+
1662
+ split->tm_usec = (int32) msFromTime(timeval) * 1000;
1663
+ split->tm_sec = (int8) SecFromTime(timeval);
1664
+ split->tm_min = (int8) MinFromTime(timeval);
1665
+ split->tm_hour = (int8) HourFromTime(timeval);
1666
+ split->tm_mday = (int8) DateFromTime(timeval);
1667
+ split->tm_mon = (int8) MonthFromTime(timeval);
1668
+ split->tm_wday = (int8) WeekDay(timeval);
1669
+ split->tm_year = year;
1670
+ split->tm_yday = (int16) DayWithinYear(timeval, year);
1671
+
1672
+ /* not sure how this affects things, but it doesn't seem
1673
+ to matter. */
1674
+ split->tm_isdst = (DaylightSavingTA(timeval) != 0);
1675
+ }
1676
+
1677
+ typedef enum formatspec {
1678
+ FORMATSPEC_FULL, FORMATSPEC_DATE, FORMATSPEC_TIME
1679
+ } formatspec;
1680
+
1681
+ /* helper function */
1682
+ static JSBool
1683
+ date_format(JSContext *cx, jsdouble date, formatspec format, jsval *rval)
1684
+ {
1685
+ char buf[100];
1686
+ JSString *str;
1687
+ char tzbuf[100];
1688
+ JSBool usetz;
1689
+ size_t i, tzlen;
1690
+ PRMJTime split;
1691
+
1692
+ if (!JSDOUBLE_IS_FINITE(date)) {
1693
+ JS_snprintf(buf, sizeof buf, js_NaN_date_str);
1694
+ } else {
1695
+ jsdouble local = LocalTime(date);
1696
+
1697
+ /* offset from GMT in minutes. The offset includes daylight savings,
1698
+ if it applies. */
1699
+ jsint minutes = (jsint) floor(AdjustTime(date) / msPerMinute);
1700
+
1701
+ /* map 510 minutes to 0830 hours */
1702
+ intN offset = (minutes / 60) * 100 + minutes % 60;
1703
+
1704
+ /* print as "Wed Nov 05 19:38:03 GMT-0800 (PST) 1997" The TZA is
1705
+ * printed as 'GMT-0800' rather than as 'PST' to avoid
1706
+ * operating-system dependence on strftime (which
1707
+ * PRMJ_FormatTimeUSEnglish calls, for %Z only.) win32 prints
1708
+ * PST as 'Pacific Standard Time.' This way we always know
1709
+ * what we're getting, and can parse it if we produce it.
1710
+ * The OS TZA string is included as a comment.
1711
+ */
1712
+
1713
+ /* get a timezone string from the OS to include as a
1714
+ comment. */
1715
+ new_explode(date, &split);
1716
+ if (PRMJ_FormatTime(tzbuf, sizeof tzbuf, "(%Z)", &split) != 0) {
1717
+
1718
+ /* Decide whether to use the resulting timezone string.
1719
+ *
1720
+ * Reject it if it contains any non-ASCII, non-alphanumeric
1721
+ * characters. It's then likely in some other character
1722
+ * encoding, and we probably won't display it correctly.
1723
+ */
1724
+ usetz = JS_TRUE;
1725
+ tzlen = strlen(tzbuf);
1726
+ if (tzlen > 100) {
1727
+ usetz = JS_FALSE;
1728
+ } else {
1729
+ for (i = 0; i < tzlen; i++) {
1730
+ jschar c = tzbuf[i];
1731
+ if (c > 127 ||
1732
+ !(isalpha(c) || isdigit(c) ||
1733
+ c == ' ' || c == '(' || c == ')')) {
1734
+ usetz = JS_FALSE;
1735
+ }
1736
+ }
1737
+ }
1738
+
1739
+ /* Also reject it if it's not parenthesized or if it's '()'. */
1740
+ if (tzbuf[0] != '(' || tzbuf[1] == ')')
1741
+ usetz = JS_FALSE;
1742
+ } else
1743
+ usetz = JS_FALSE;
1744
+
1745
+ switch (format) {
1746
+ case FORMATSPEC_FULL:
1747
+ /*
1748
+ * Avoid dependence on PRMJ_FormatTimeUSEnglish, because it
1749
+ * requires a PRMJTime... which only has 16-bit years. Sub-ECMA.
1750
+ */
1751
+ /* Tue Oct 31 2000 09:41:40 GMT-0800 (PST) */
1752
+ JS_snprintf(buf, sizeof buf,
1753
+ "%s %s %.2d %.4d %.2d:%.2d:%.2d GMT%+.4d%s%s",
1754
+ days[WeekDay(local)],
1755
+ months[MonthFromTime(local)],
1756
+ DateFromTime(local),
1757
+ YearFromTime(local),
1758
+ HourFromTime(local),
1759
+ MinFromTime(local),
1760
+ SecFromTime(local),
1761
+ offset,
1762
+ usetz ? " " : "",
1763
+ usetz ? tzbuf : "");
1764
+ break;
1765
+ case FORMATSPEC_DATE:
1766
+ /* Tue Oct 31 2000 */
1767
+ JS_snprintf(buf, sizeof buf,
1768
+ "%s %s %.2d %.4d",
1769
+ days[WeekDay(local)],
1770
+ months[MonthFromTime(local)],
1771
+ DateFromTime(local),
1772
+ YearFromTime(local));
1773
+ break;
1774
+ case FORMATSPEC_TIME:
1775
+ /* 09:41:40 GMT-0800 (PST) */
1776
+ JS_snprintf(buf, sizeof buf,
1777
+ "%.2d:%.2d:%.2d GMT%+.4d%s%s",
1778
+ HourFromTime(local),
1779
+ MinFromTime(local),
1780
+ SecFromTime(local),
1781
+ offset,
1782
+ usetz ? " " : "",
1783
+ usetz ? tzbuf : "");
1784
+ break;
1785
+ }
1786
+ }
1787
+
1788
+ str = JS_NewStringCopyZ(cx, buf);
1789
+ if (!str)
1790
+ return JS_FALSE;
1791
+ *rval = STRING_TO_JSVAL(str);
1792
+ return JS_TRUE;
1793
+ }
1794
+
1795
+ static JSBool
1796
+ date_toLocaleHelper(JSContext *cx, const char *format, jsval *vp)
1797
+ {
1798
+ JSObject *obj;
1799
+ char buf[100];
1800
+ JSString *str;
1801
+ PRMJTime split;
1802
+ jsdouble utctime;
1803
+
1804
+ obj = JS_THIS_OBJECT(cx, vp);
1805
+ if (!GetUTCTime(cx, obj, vp, &utctime))
1806
+ return JS_FALSE;
1807
+
1808
+ if (!JSDOUBLE_IS_FINITE(utctime)) {
1809
+ JS_snprintf(buf, sizeof buf, js_NaN_date_str);
1810
+ } else {
1811
+ intN result_len;
1812
+ jsdouble local = LocalTime(utctime);
1813
+ new_explode(local, &split);
1814
+
1815
+ /* let PRMJTime format it. */
1816
+ result_len = PRMJ_FormatTime(buf, sizeof buf, format, &split);
1817
+
1818
+ /* If it failed, default to toString. */
1819
+ if (result_len == 0)
1820
+ return date_format(cx, utctime, FORMATSPEC_FULL, vp);
1821
+
1822
+ /* Hacked check against undesired 2-digit year 00/00/00 form. */
1823
+ if (strcmp(format, "%x") == 0 && result_len >= 6 &&
1824
+ /* Format %x means use OS settings, which may have 2-digit yr, so
1825
+ hack end of 3/11/22 or 11.03.22 or 11Mar22 to use 4-digit yr...*/
1826
+ !isdigit(buf[result_len - 3]) &&
1827
+ isdigit(buf[result_len - 2]) && isdigit(buf[result_len - 1]) &&
1828
+ /* ...but not if starts with 4-digit year, like 2022/3/11. */
1829
+ !(isdigit(buf[0]) && isdigit(buf[1]) &&
1830
+ isdigit(buf[2]) && isdigit(buf[3]))) {
1831
+ JS_snprintf(buf + (result_len - 2), (sizeof buf) - (result_len - 2),
1832
+ "%d", js_DateGetYear(cx, obj));
1833
+ }
1834
+
1835
+ }
1836
+
1837
+ if (cx->localeCallbacks && cx->localeCallbacks->localeToUnicode)
1838
+ return cx->localeCallbacks->localeToUnicode(cx, buf, vp);
1839
+
1840
+ str = JS_NewStringCopyZ(cx, buf);
1841
+ if (!str)
1842
+ return JS_FALSE;
1843
+ *vp = STRING_TO_JSVAL(str);
1844
+ return JS_TRUE;
1845
+ }
1846
+
1847
+ static JSBool
1848
+ date_toLocaleString(JSContext *cx, uintN argc, jsval *vp)
1849
+ {
1850
+ /* Use '%#c' for windows, because '%c' is
1851
+ * backward-compatible and non-y2k with msvc; '%#c' requests that a
1852
+ * full year be used in the result string.
1853
+ */
1854
+ return date_toLocaleHelper(cx,
1855
+ #if defined(_WIN32) && !defined(__MWERKS__)
1856
+ "%#c"
1857
+ #else
1858
+ "%c"
1859
+ #endif
1860
+ , vp);
1861
+ }
1862
+
1863
+ static JSBool
1864
+ date_toLocaleDateString(JSContext *cx, uintN argc, jsval *vp)
1865
+ {
1866
+ /* Use '%#x' for windows, because '%x' is
1867
+ * backward-compatible and non-y2k with msvc; '%#x' requests that a
1868
+ * full year be used in the result string.
1869
+ */
1870
+ return date_toLocaleHelper(cx,
1871
+ #if defined(_WIN32) && !defined(__MWERKS__)
1872
+ "%#x"
1873
+ #else
1874
+ "%x"
1875
+ #endif
1876
+ , vp);
1877
+ }
1878
+
1879
+ static JSBool
1880
+ date_toLocaleTimeString(JSContext *cx, uintN argc, jsval *vp)
1881
+ {
1882
+ return date_toLocaleHelper(cx, "%X", vp);
1883
+ }
1884
+
1885
+ static JSBool
1886
+ date_toLocaleFormat(JSContext *cx, uintN argc, jsval *vp)
1887
+ {
1888
+ JSString *fmt;
1889
+ const char *fmtbytes;
1890
+
1891
+ if (argc == 0)
1892
+ return date_toLocaleString(cx, argc, vp);
1893
+
1894
+ fmt = js_ValueToString(cx, vp[2]);
1895
+ if (!fmt)
1896
+ return JS_FALSE;
1897
+ vp[2] = STRING_TO_JSVAL(fmt);
1898
+ fmtbytes = js_GetStringBytes(cx, fmt);
1899
+ if (!fmtbytes)
1900
+ return JS_FALSE;
1901
+
1902
+ return date_toLocaleHelper(cx, fmtbytes, vp);
1903
+ }
1904
+
1905
+ static JSBool
1906
+ date_toTimeString(JSContext *cx, uintN argc, jsval *vp)
1907
+ {
1908
+ jsdouble utctime;
1909
+
1910
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &utctime))
1911
+ return JS_FALSE;
1912
+ return date_format(cx, utctime, FORMATSPEC_TIME, vp);
1913
+ }
1914
+
1915
+ static JSBool
1916
+ date_toDateString(JSContext *cx, uintN argc, jsval *vp)
1917
+ {
1918
+ jsdouble utctime;
1919
+
1920
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &utctime))
1921
+ return JS_FALSE;
1922
+ return date_format(cx, utctime, FORMATSPEC_DATE, vp);
1923
+ }
1924
+
1925
+ #if JS_HAS_TOSOURCE
1926
+ #include <string.h>
1927
+ #include "jsdtoa.h"
1928
+
1929
+ static JSBool
1930
+ date_toSource(JSContext *cx, uintN argc, jsval *vp)
1931
+ {
1932
+ jsdouble utctime;
1933
+ char buf[DTOSTR_STANDARD_BUFFER_SIZE], *numStr, *bytes;
1934
+ JSString *str;
1935
+
1936
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &utctime))
1937
+ return JS_FALSE;
1938
+
1939
+ numStr = JS_dtostr(buf, sizeof buf, DTOSTR_STANDARD, 0, utctime);
1940
+ if (!numStr) {
1941
+ JS_ReportOutOfMemory(cx);
1942
+ return JS_FALSE;
1943
+ }
1944
+
1945
+ bytes = JS_smprintf("(new %s(%s))", js_Date_str, numStr);
1946
+ if (!bytes) {
1947
+ JS_ReportOutOfMemory(cx);
1948
+ return JS_FALSE;
1949
+ }
1950
+
1951
+ str = JS_NewString(cx, bytes, strlen(bytes));
1952
+ if (!str) {
1953
+ free(bytes);
1954
+ return JS_FALSE;
1955
+ }
1956
+ *vp = STRING_TO_JSVAL(str);
1957
+ return JS_TRUE;
1958
+ }
1959
+ #endif
1960
+
1961
+ static JSBool
1962
+ date_toString(JSContext *cx, uintN argc, jsval *vp)
1963
+ {
1964
+ jsdouble utctime;
1965
+
1966
+ if (!GetUTCTime(cx, JS_THIS_OBJECT(cx, vp), vp, &utctime))
1967
+ return JS_FALSE;
1968
+ return date_format(cx, utctime, FORMATSPEC_FULL, vp);
1969
+ }
1970
+
1971
+ #ifdef JS_TRACER
1972
+ static jsval FASTCALL
1973
+ date_valueOf_tn(JSContext* cx, JSObject* obj, JSString* str)
1974
+ {
1975
+ JS_ASSERT(JS_InstanceOf(cx, obj, &js_DateClass, NULL));
1976
+ jsdouble t = *JSVAL_TO_DOUBLE(obj->fslots[JSSLOT_UTC_TIME]);
1977
+
1978
+ JSString* number_str = ATOM_TO_STRING(cx->runtime->atomState.typeAtoms[JSTYPE_NUMBER]);
1979
+ jsval v;
1980
+ if (js_EqualStrings(str, number_str)) {
1981
+ if (!js_NewNumberInRootedValue(cx, t, &v))
1982
+ return JSVAL_ERROR_COOKIE;
1983
+ } else {
1984
+ if (!date_format(cx, t, FORMATSPEC_FULL, &v))
1985
+ return JSVAL_ERROR_COOKIE;
1986
+ }
1987
+ return v;
1988
+ }
1989
+ #endif
1990
+
1991
+ static JSBool
1992
+ date_valueOf(JSContext *cx, uintN argc, jsval *vp)
1993
+ {
1994
+ JSString *str, *number_str;
1995
+
1996
+ /* It is an error to call date_valueOf on a non-date object, but we don't
1997
+ * need to check for that explicitly here because every path calls
1998
+ * GetUTCTime, which does the check.
1999
+ */
2000
+
2001
+ /* If called directly with no arguments, convert to a time number. */
2002
+ if (argc == 0)
2003
+ return date_getTime(cx, argc, vp);
2004
+
2005
+ /* Convert to number only if the hint was given, otherwise favor string. */
2006
+ str = js_ValueToString(cx, vp[2]);
2007
+ if (!str)
2008
+ return JS_FALSE;
2009
+ number_str = ATOM_TO_STRING(cx->runtime->atomState.typeAtoms[JSTYPE_NUMBER]);
2010
+ if (js_EqualStrings(str, number_str))
2011
+ return date_getTime(cx, argc, vp);
2012
+ return date_toString(cx, argc, vp);
2013
+ }
2014
+
2015
+ JS_DEFINE_CALLINFO_2(extern, OBJECT, js_FastNewDate, CONTEXT, OBJECT, 0, 0)
2016
+
2017
+ // Don't really need an argument here, but we don't support arg-less builtins
2018
+ JS_DEFINE_TRCINFO_1(date_now,
2019
+ (1, (static, DOUBLE, date_now_tn, CONTEXT, 0, 0)))
2020
+
2021
+ static JSFunctionSpec date_static_methods[] = {
2022
+ JS_FN("UTC", date_UTC, MAXARGS,0),
2023
+ JS_FN("parse", date_parse, 1,0),
2024
+ JS_TN("now", date_now, 0,0, date_now_trcinfo),
2025
+ JS_FS_END
2026
+ };
2027
+
2028
+ JS_DEFINE_TRCINFO_1(date_valueOf,
2029
+ (3, (static, JSVAL_FAIL, date_valueOf_tn, CONTEXT, THIS, STRING, 0, 0)))
2030
+
2031
+ static JSFunctionSpec date_methods[] = {
2032
+ JS_FN("getTime", date_getTime, 0,0),
2033
+ JS_FN("getTimezoneOffset", date_getTimezoneOffset, 0,0),
2034
+ JS_FN("getYear", date_getYear, 0,0),
2035
+ JS_FN("getFullYear", date_getFullYear, 0,0),
2036
+ JS_FN("getUTCFullYear", date_getUTCFullYear, 0,0),
2037
+ JS_FN("getMonth", date_getMonth, 0,0),
2038
+ JS_FN("getUTCMonth", date_getUTCMonth, 0,0),
2039
+ JS_FN("getDate", date_getDate, 0,0),
2040
+ JS_FN("getUTCDate", date_getUTCDate, 0,0),
2041
+ JS_FN("getDay", date_getDay, 0,0),
2042
+ JS_FN("getUTCDay", date_getUTCDay, 0,0),
2043
+ JS_FN("getHours", date_getHours, 0,0),
2044
+ JS_FN("getUTCHours", date_getUTCHours, 0,0),
2045
+ JS_FN("getMinutes", date_getMinutes, 0,0),
2046
+ JS_FN("getUTCMinutes", date_getUTCMinutes, 0,0),
2047
+ JS_FN("getSeconds", date_getUTCSeconds, 0,0),
2048
+ JS_FN("getUTCSeconds", date_getUTCSeconds, 0,0),
2049
+ JS_FN("getMilliseconds", date_getUTCMilliseconds, 0,0),
2050
+ JS_FN("getUTCMilliseconds", date_getUTCMilliseconds, 0,0),
2051
+ JS_FN("setTime", date_setTime, 1,0),
2052
+ JS_FN("setYear", date_setYear, 1,0),
2053
+ JS_FN("setFullYear", date_setFullYear, 3,0),
2054
+ JS_FN("setUTCFullYear", date_setUTCFullYear, 3,0),
2055
+ JS_FN("setMonth", date_setMonth, 2,0),
2056
+ JS_FN("setUTCMonth", date_setUTCMonth, 2,0),
2057
+ JS_FN("setDate", date_setDate, 1,0),
2058
+ JS_FN("setUTCDate", date_setUTCDate, 1,0),
2059
+ JS_FN("setHours", date_setHours, 4,0),
2060
+ JS_FN("setUTCHours", date_setUTCHours, 4,0),
2061
+ JS_FN("setMinutes", date_setMinutes, 3,0),
2062
+ JS_FN("setUTCMinutes", date_setUTCMinutes, 3,0),
2063
+ JS_FN("setSeconds", date_setSeconds, 2,0),
2064
+ JS_FN("setUTCSeconds", date_setUTCSeconds, 2,0),
2065
+ JS_FN("setMilliseconds", date_setMilliseconds, 1,0),
2066
+ JS_FN("setUTCMilliseconds", date_setUTCMilliseconds, 1,0),
2067
+ JS_FN("toUTCString", date_toGMTString, 0,0),
2068
+ JS_FN(js_toLocaleString_str, date_toLocaleString, 0,0),
2069
+ JS_FN("toLocaleDateString", date_toLocaleDateString, 0,0),
2070
+ JS_FN("toLocaleTimeString", date_toLocaleTimeString, 0,0),
2071
+ JS_FN("toLocaleFormat", date_toLocaleFormat, 0,0),
2072
+ JS_FN("toDateString", date_toDateString, 0,0),
2073
+ JS_FN("toTimeString", date_toTimeString, 0,0),
2074
+ JS_FN("toISOString", date_toISOString, 0,0),
2075
+ JS_FN(js_toJSON_str, date_toISOString, 0,0),
2076
+
2077
+ #if JS_HAS_TOSOURCE
2078
+ JS_FN(js_toSource_str, date_toSource, 0,0),
2079
+ #endif
2080
+ JS_FN(js_toString_str, date_toString, 0,0),
2081
+ JS_TN(js_valueOf_str, date_valueOf, 0,0, date_valueOf_trcinfo),
2082
+ JS_FS_END
2083
+ };
2084
+
2085
+ static jsdouble *
2086
+ date_constructor(JSContext *cx, JSObject* obj)
2087
+ {
2088
+ jsdouble *date;
2089
+
2090
+ date = js_NewWeaklyRootedDouble(cx, 0.0);
2091
+ if (!date)
2092
+ return NULL;
2093
+
2094
+ obj->fslots[JSSLOT_UTC_TIME] = DOUBLE_TO_JSVAL(date);
2095
+ obj->fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
2096
+ return date;
2097
+ }
2098
+
2099
+ JSBool
2100
+ js_Date(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
2101
+ {
2102
+ jsdouble *date;
2103
+ JSString *str;
2104
+ jsdouble d;
2105
+
2106
+ /* Date called as function. */
2107
+ if (!(cx->fp->flags & JSFRAME_CONSTRUCTING)) {
2108
+ return date_format(cx, PRMJ_Now() / PRMJ_USEC_PER_MSEC,
2109
+ FORMATSPEC_FULL, rval);
2110
+ }
2111
+
2112
+ /* Date called as constructor. */
2113
+ if (argc == 0) {
2114
+ date = date_constructor(cx, obj);
2115
+ if (!date)
2116
+ return JS_FALSE;
2117
+ *date = PRMJ_Now() / PRMJ_USEC_PER_MSEC;
2118
+ } else if (argc == 1) {
2119
+ if (!JSVAL_IS_STRING(argv[0])) {
2120
+ /* the argument is a millisecond number */
2121
+ d = js_ValueToNumber(cx, &argv[0]);
2122
+ if (JSVAL_IS_NULL(argv[0]))
2123
+ return JS_FALSE;
2124
+ date = date_constructor(cx, obj);
2125
+ if (!date)
2126
+ return JS_FALSE;
2127
+ *date = TIMECLIP(d);
2128
+ } else {
2129
+ /* the argument is a string; parse it. */
2130
+ date = date_constructor(cx, obj);
2131
+ if (!date)
2132
+ return JS_FALSE;
2133
+
2134
+ str = js_ValueToString(cx, argv[0]);
2135
+ if (!str)
2136
+ return JS_FALSE;
2137
+
2138
+ if (!date_parseString(str, date))
2139
+ *date = *cx->runtime->jsNaN;
2140
+ *date = TIMECLIP(*date);
2141
+ }
2142
+ } else {
2143
+ jsdouble *date;
2144
+ jsdouble msec_time;
2145
+
2146
+ if (!date_msecFromArgs(cx, argc, argv, &msec_time))
2147
+ return JS_FALSE;
2148
+
2149
+ date = date_constructor(cx, obj);
2150
+ if (!date)
2151
+ return JS_FALSE;
2152
+
2153
+ if (JSDOUBLE_IS_FINITE(msec_time)) {
2154
+ msec_time = UTC(msec_time);
2155
+ msec_time = TIMECLIP(msec_time);
2156
+ }
2157
+
2158
+ *date = msec_time;
2159
+ }
2160
+ return JS_TRUE;
2161
+ }
2162
+
2163
+ JS_STATIC_ASSERT(JSSLOT_PRIVATE == JSSLOT_UTC_TIME);
2164
+ JS_STATIC_ASSERT(JSSLOT_UTC_TIME + 1 == JSSLOT_LOCAL_TIME);
2165
+
2166
+ #ifdef JS_TRACER
2167
+ JSObject* FASTCALL
2168
+ js_FastNewDate(JSContext* cx, JSObject* proto)
2169
+ {
2170
+ JS_ASSERT(JS_ON_TRACE(cx));
2171
+ JSObject* obj = (JSObject*) js_NewGCThing(cx, GCX_OBJECT, sizeof(JSObject));
2172
+ if (!obj)
2173
+ return NULL;
2174
+
2175
+ JSClass* clasp = &js_DateClass;
2176
+ obj->classword = jsuword(clasp);
2177
+
2178
+ obj->fslots[JSSLOT_PROTO] = OBJECT_TO_JSVAL(proto);
2179
+ obj->fslots[JSSLOT_PARENT] = proto->fslots[JSSLOT_PARENT];
2180
+
2181
+ jsdouble* date = js_NewWeaklyRootedDouble(cx, 0.0);
2182
+ if (!date)
2183
+ return NULL;
2184
+ *date = date_now_tn(cx);
2185
+ obj->fslots[JSSLOT_UTC_TIME] = DOUBLE_TO_JSVAL(date);
2186
+ obj->fslots[JSSLOT_LOCAL_TIME] = DOUBLE_TO_JSVAL(cx->runtime->jsNaN);
2187
+ for (unsigned i = JSSLOT_LOCAL_TIME + 1; i != JS_INITIAL_NSLOTS; ++i)
2188
+ obj->fslots[i] = JSVAL_VOID;
2189
+
2190
+ JS_ASSERT(!clasp->getObjectOps);
2191
+ JS_ASSERT(proto->map->ops == &js_ObjectOps);
2192
+ obj->map = js_HoldObjectMap(cx, proto->map);
2193
+ obj->dslots = NULL;
2194
+ return obj;
2195
+ }
2196
+ #endif
2197
+
2198
+ JSObject *
2199
+ js_InitDateClass(JSContext *cx, JSObject *obj)
2200
+ {
2201
+ JSObject *proto;
2202
+ jsdouble *proto_date;
2203
+
2204
+ /* set static LocalTZA */
2205
+ LocalTZA = -(PRMJ_LocalGMTDifference() * msPerSecond);
2206
+ proto = JS_InitClass(cx, obj, NULL, &js_DateClass, js_Date, MAXARGS,
2207
+ NULL, date_methods, NULL, date_static_methods);
2208
+ if (!proto)
2209
+ return NULL;
2210
+
2211
+ /* Alias toUTCString with toGMTString. (ECMA B.2.6) */
2212
+ if (!JS_AliasProperty(cx, proto, "toUTCString", "toGMTString"))
2213
+ return NULL;
2214
+
2215
+ /* Set the value of the Date.prototype date to NaN */
2216
+ proto_date = date_constructor(cx, proto);
2217
+ if (!proto_date)
2218
+ return NULL;
2219
+ *proto_date = *cx->runtime->jsNaN;
2220
+
2221
+ return proto;
2222
+ }
2223
+
2224
+ JS_FRIEND_API(JSObject *)
2225
+ js_NewDateObjectMsec(JSContext *cx, jsdouble msec_time)
2226
+ {
2227
+ JSObject *obj;
2228
+ jsdouble *date;
2229
+
2230
+ obj = js_NewObject(cx, &js_DateClass, NULL, NULL, 0);
2231
+ if (!obj)
2232
+ return NULL;
2233
+
2234
+ date = date_constructor(cx, obj);
2235
+ if (!date)
2236
+ return NULL;
2237
+
2238
+ *date = msec_time;
2239
+ return obj;
2240
+ }
2241
+
2242
+ JS_FRIEND_API(JSObject *)
2243
+ js_NewDateObject(JSContext* cx, int year, int mon, int mday,
2244
+ int hour, int min, int sec)
2245
+ {
2246
+ JSObject *obj;
2247
+ jsdouble msec_time;
2248
+
2249
+ JS_ASSERT(mon < 12);
2250
+ msec_time = date_msecFromDate(year, mon, mday, hour, min, sec, 0);
2251
+ obj = js_NewDateObjectMsec(cx, UTC(msec_time));
2252
+ return obj;
2253
+ }
2254
+
2255
+ JS_FRIEND_API(JSBool)
2256
+ js_DateIsValid(JSContext *cx, JSObject* obj)
2257
+ {
2258
+ jsdouble utctime;
2259
+ return GetUTCTime(cx, obj, NULL, &utctime) && !JSDOUBLE_IS_NaN(utctime);
2260
+ }
2261
+
2262
+ JS_FRIEND_API(int)
2263
+ js_DateGetYear(JSContext *cx, JSObject* obj)
2264
+ {
2265
+ jsdouble localtime;
2266
+
2267
+ /* Preserve legacy API behavior of returning 0 for invalid dates. */
2268
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &localtime) ||
2269
+ JSDOUBLE_IS_NaN(localtime)) {
2270
+ return 0;
2271
+ }
2272
+
2273
+ return (int) YearFromTime(localtime);
2274
+ }
2275
+
2276
+ JS_FRIEND_API(int)
2277
+ js_DateGetMonth(JSContext *cx, JSObject* obj)
2278
+ {
2279
+ jsdouble localtime;
2280
+
2281
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &localtime) ||
2282
+ JSDOUBLE_IS_NaN(localtime)) {
2283
+ return 0;
2284
+ }
2285
+
2286
+ return (int) MonthFromTime(localtime);
2287
+ }
2288
+
2289
+ JS_FRIEND_API(int)
2290
+ js_DateGetDate(JSContext *cx, JSObject* obj)
2291
+ {
2292
+ jsdouble localtime;
2293
+
2294
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &localtime) ||
2295
+ JSDOUBLE_IS_NaN(localtime)) {
2296
+ return 0;
2297
+ }
2298
+
2299
+ return (int) DateFromTime(localtime);
2300
+ }
2301
+
2302
+ JS_FRIEND_API(int)
2303
+ js_DateGetHours(JSContext *cx, JSObject* obj)
2304
+ {
2305
+ jsdouble localtime;
2306
+
2307
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &localtime) ||
2308
+ JSDOUBLE_IS_NaN(localtime)) {
2309
+ return 0;
2310
+ }
2311
+
2312
+ return (int) HourFromTime(localtime);
2313
+ }
2314
+
2315
+ JS_FRIEND_API(int)
2316
+ js_DateGetMinutes(JSContext *cx, JSObject* obj)
2317
+ {
2318
+ jsdouble localtime;
2319
+
2320
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &localtime) ||
2321
+ JSDOUBLE_IS_NaN(localtime)) {
2322
+ return 0;
2323
+ }
2324
+
2325
+ return (int) MinFromTime(localtime);
2326
+ }
2327
+
2328
+ JS_FRIEND_API(int)
2329
+ js_DateGetSeconds(JSContext *cx, JSObject* obj)
2330
+ {
2331
+ jsdouble utctime;
2332
+
2333
+ if (!GetUTCTime(cx, obj, NULL, &utctime) || JSDOUBLE_IS_NaN(utctime))
2334
+ return 0;
2335
+
2336
+ return (int) SecFromTime(utctime);
2337
+ }
2338
+
2339
+ JS_FRIEND_API(void)
2340
+ js_DateSetYear(JSContext *cx, JSObject *obj, int year)
2341
+ {
2342
+ jsdouble local;
2343
+
2344
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &local))
2345
+ return;
2346
+
2347
+ /* reset date if it was NaN */
2348
+ if (JSDOUBLE_IS_NaN(local))
2349
+ local = 0;
2350
+
2351
+ local = date_msecFromDate(year,
2352
+ MonthFromTime(local),
2353
+ DateFromTime(local),
2354
+ HourFromTime(local),
2355
+ MinFromTime(local),
2356
+ SecFromTime(local),
2357
+ msFromTime(local));
2358
+
2359
+ /* SetUTCTime also invalidates local time cache. */
2360
+ SetUTCTime(cx, obj, NULL, UTC(local));
2361
+ }
2362
+
2363
+ JS_FRIEND_API(void)
2364
+ js_DateSetMonth(JSContext *cx, JSObject *obj, int month)
2365
+ {
2366
+ jsdouble local;
2367
+
2368
+ JS_ASSERT(month < 12);
2369
+
2370
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &local))
2371
+ return;
2372
+
2373
+ /* bail if date was NaN */
2374
+ if (JSDOUBLE_IS_NaN(local))
2375
+ return;
2376
+
2377
+ local = date_msecFromDate(YearFromTime(local),
2378
+ month,
2379
+ DateFromTime(local),
2380
+ HourFromTime(local),
2381
+ MinFromTime(local),
2382
+ SecFromTime(local),
2383
+ msFromTime(local));
2384
+ SetUTCTime(cx, obj, NULL, UTC(local));
2385
+ }
2386
+
2387
+ JS_FRIEND_API(void)
2388
+ js_DateSetDate(JSContext *cx, JSObject *obj, int date)
2389
+ {
2390
+ jsdouble local;
2391
+
2392
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &local))
2393
+ return;
2394
+
2395
+ if (JSDOUBLE_IS_NaN(local))
2396
+ return;
2397
+
2398
+ local = date_msecFromDate(YearFromTime(local),
2399
+ MonthFromTime(local),
2400
+ date,
2401
+ HourFromTime(local),
2402
+ MinFromTime(local),
2403
+ SecFromTime(local),
2404
+ msFromTime(local));
2405
+ SetUTCTime(cx, obj, NULL, UTC(local));
2406
+ }
2407
+
2408
+ JS_FRIEND_API(void)
2409
+ js_DateSetHours(JSContext *cx, JSObject *obj, int hours)
2410
+ {
2411
+ jsdouble local;
2412
+
2413
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &local))
2414
+ return;
2415
+
2416
+ if (JSDOUBLE_IS_NaN(local))
2417
+ return;
2418
+ local = date_msecFromDate(YearFromTime(local),
2419
+ MonthFromTime(local),
2420
+ DateFromTime(local),
2421
+ hours,
2422
+ MinFromTime(local),
2423
+ SecFromTime(local),
2424
+ msFromTime(local));
2425
+ SetUTCTime(cx, obj, NULL, UTC(local));
2426
+ }
2427
+
2428
+ JS_FRIEND_API(void)
2429
+ js_DateSetMinutes(JSContext *cx, JSObject *obj, int minutes)
2430
+ {
2431
+ jsdouble local;
2432
+
2433
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &local))
2434
+ return;
2435
+
2436
+ if (JSDOUBLE_IS_NaN(local))
2437
+ return;
2438
+ local = date_msecFromDate(YearFromTime(local),
2439
+ MonthFromTime(local),
2440
+ DateFromTime(local),
2441
+ HourFromTime(local),
2442
+ minutes,
2443
+ SecFromTime(local),
2444
+ msFromTime(local));
2445
+ SetUTCTime(cx, obj, NULL, UTC(local));
2446
+ }
2447
+
2448
+ JS_FRIEND_API(void)
2449
+ js_DateSetSeconds(JSContext *cx, JSObject *obj, int seconds)
2450
+ {
2451
+ jsdouble local;
2452
+
2453
+ if (!GetAndCacheLocalTime(cx, obj, NULL, &local))
2454
+ return;
2455
+
2456
+ if (JSDOUBLE_IS_NaN(local))
2457
+ return;
2458
+ local = date_msecFromDate(YearFromTime(local),
2459
+ MonthFromTime(local),
2460
+ DateFromTime(local),
2461
+ HourFromTime(local),
2462
+ MinFromTime(local),
2463
+ seconds,
2464
+ msFromTime(local));
2465
+ SetUTCTime(cx, obj, NULL, UTC(local));
2466
+ }
2467
+
2468
+ JS_FRIEND_API(jsdouble)
2469
+ js_DateGetMsecSinceEpoch(JSContext *cx, JSObject *obj)
2470
+ {
2471
+ jsdouble utctime;
2472
+ if (!GetUTCTime(cx, obj, NULL, &utctime))
2473
+ return 0;
2474
+ return utctime;
2475
+ }