coffeecake 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+ }