coffeecake 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1336) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/README.markdown +28 -0
  4. data/Rakefile +2 -0
  5. data/bin/ck +16 -0
  6. data/coffeecake.gemspec +21 -0
  7. data/lib/coffeecake.rb +4 -0
  8. data/lib/coffeecake/generators.rb +12 -0
  9. data/lib/coffeecake/generators/new_generator.rb +55 -0
  10. data/lib/coffeecake/templates/.gitkeep +0 -0
  11. data/lib/coffeecake/templates/README.markdown +56 -0
  12. data/lib/coffeecake/templates/SpecHelper.tt +0 -0
  13. data/lib/coffeecake/templates/docs_readme +5 -0
  14. data/lib/coffeecake/templates/jasmine.tt +18 -0
  15. data/lib/coffeecake/templates/lib.tt +3 -0
  16. data/lib/coffeecake/templates/spec.tt +3 -0
  17. data/lib/coffeecake/version.rb +3 -0
  18. data/lib/thor_register_patch.rb +16 -0
  19. data/node_modules/.bin/cake +7 -0
  20. data/node_modules/.bin/coffee +7 -0
  21. data/node_modules/.bin/docco +8 -0
  22. data/node_modules/.bin/jasmine +26 -0
  23. data/node_modules/.bin/jasmine-node +7 -0
  24. data/node_modules/.bin/uglifycss +127 -0
  25. data/node_modules/.bin/uglifyjs +317 -0
  26. data/node_modules/coffee-script/.npmignore +11 -0
  27. data/node_modules/coffee-script/LICENSE +22 -0
  28. data/node_modules/coffee-script/README +51 -0
  29. data/node_modules/coffee-script/Rakefile +78 -0
  30. data/node_modules/coffee-script/bin/cake +7 -0
  31. data/node_modules/coffee-script/bin/coffee +7 -0
  32. data/node_modules/coffee-script/extras/jsl.conf +44 -0
  33. data/node_modules/coffee-script/lib/coffee-script/browser.js +74 -0
  34. data/node_modules/coffee-script/lib/coffee-script/cake.js +89 -0
  35. data/node_modules/coffee-script/lib/coffee-script/coffee-script.js +148 -0
  36. data/node_modules/coffee-script/lib/coffee-script/command.js +310 -0
  37. data/node_modules/coffee-script/lib/coffee-script/grammar.js +588 -0
  38. data/node_modules/coffee-script/lib/coffee-script/helpers.js +72 -0
  39. data/node_modules/coffee-script/lib/coffee-script/index.js +10 -0
  40. data/node_modules/coffee-script/lib/coffee-script/lexer.js +687 -0
  41. data/node_modules/coffee-script/lib/coffee-script/nodes.js +2481 -0
  42. data/node_modules/coffee-script/lib/coffee-script/optparse.js +122 -0
  43. data/node_modules/coffee-script/lib/coffee-script/parser.js +670 -0
  44. data/node_modules/coffee-script/lib/coffee-script/repl.js +149 -0
  45. data/node_modules/coffee-script/lib/coffee-script/rewriter.js +288 -0
  46. data/node_modules/coffee-script/lib/coffee-script/scope.js +124 -0
  47. data/node_modules/coffee-script/npm-install-45965.sh +282 -0
  48. data/node_modules/coffee-script/package.json +31 -0
  49. data/node_modules/docco/.gitignore +3 -0
  50. data/node_modules/docco/Cakefile +27 -0
  51. data/node_modules/docco/README +13 -0
  52. data/node_modules/docco/bin/docco +8 -0
  53. data/node_modules/docco/index.html +143 -0
  54. data/node_modules/docco/lib/docco.js +155 -0
  55. data/node_modules/docco/package.json +21 -0
  56. data/node_modules/docco/resources/docco.css +186 -0
  57. data/node_modules/docco/resources/docco.jst +58 -0
  58. data/node_modules/docco/src/docco.coffee +204 -0
  59. data/node_modules/docco/vendor/showdown.js +1298 -0
  60. data/node_modules/jasmine-jquery/.gitignore +3 -0
  61. data/node_modules/jasmine-jquery/MIT.LICENSE +20 -0
  62. data/node_modules/jasmine-jquery/README.markdown +174 -0
  63. data/node_modules/jasmine-jquery/SpecRunner.html +24 -0
  64. data/node_modules/jasmine-jquery/index.js +15 -0
  65. data/node_modules/jasmine-jquery/lib/jasmine-jquery.js +288 -0
  66. data/node_modules/jasmine-jquery/package.json +19 -0
  67. data/node_modules/jasmine-jquery/spec/fixtures/real_non_mocked_fixture.html +1 -0
  68. data/node_modules/jasmine-jquery/spec/suites/jasmine-jquery-spec.js +691 -0
  69. data/node_modules/jasmine-node/.gitignore +10 -0
  70. data/node_modules/jasmine-node/LICENSE +22 -0
  71. data/node_modules/jasmine-node/README.md +35 -0
  72. data/node_modules/jasmine-node/bin/jasmine-node +7 -0
  73. data/node_modules/jasmine-node/lib/jasmine-node/cli.js +110 -0
  74. data/node_modules/jasmine-node/lib/jasmine-node/index.js +171 -0
  75. data/node_modules/jasmine-node/lib/jasmine-node/jasmine-2.0.0.rc1.js +2479 -0
  76. data/node_modules/jasmine-node/lib/jasmine-node/reporter.js +177 -0
  77. data/node_modules/jasmine-node/package.json +22 -0
  78. data/node_modules/jasmine-node/spec/CoffeeSpec.coffee +4 -0
  79. data/node_modules/jasmine-node/spec/SampleSpecs.js +15 -0
  80. data/node_modules/jasmine-node/spec/TestSpec.js +5 -0
  81. data/node_modules/jasmine-node/spec/helper_spec.js +7 -0
  82. data/node_modules/jasmine-node/spec/include/include_spec.js +7 -0
  83. data/node_modules/jasmine-node/spec/include/lib/test.js +3 -0
  84. data/node_modules/jasmine-node/spec/nested.js/NestedSpec.js +5 -0
  85. data/node_modules/jasmine-node/spec/nested/NestedSpec.js +5 -0
  86. data/node_modules/jasmine-node/spec/nested/uber-nested/UberNestedSpec.js +11 -0
  87. data/node_modules/jasmine-node/spec/sample_helper.js +19 -0
  88. data/node_modules/jasmine-node/specs.sh +2 -0
  89. data/node_modules/jasmine-reporters/.gitignore +1 -0
  90. data/node_modules/jasmine-reporters/.gitmodules +3 -0
  91. data/node_modules/jasmine-reporters/LICENSE +21 -0
  92. data/node_modules/jasmine-reporters/README.markdown +52 -0
  93. data/node_modules/jasmine-reporters/ext/env.rhino.1.2.js +13989 -0
  94. data/node_modules/jasmine-reporters/ext/jasmine-html.js +182 -0
  95. data/node_modules/jasmine-reporters/ext/jasmine.css +166 -0
  96. data/node_modules/jasmine-reporters/ext/jasmine.js +2421 -0
  97. data/node_modules/jasmine-reporters/ext/jline.jar +0 -0
  98. data/node_modules/jasmine-reporters/ext/js.jar +0 -0
  99. data/node_modules/jasmine-reporters/ext/phantomjs/.gitignore +10 -0
  100. data/node_modules/jasmine-reporters/ext/phantomjs/ChangeLog +57 -0
  101. data/node_modules/jasmine-reporters/ext/phantomjs/LICENSE.BSD +22 -0
  102. data/node_modules/jasmine-reporters/ext/phantomjs/README.md +28 -0
  103. data/node_modules/jasmine-reporters/ext/phantomjs/examples/arguments.coffee +6 -0
  104. data/node_modules/jasmine-reporters/ext/phantomjs/examples/arguments.js +8 -0
  105. data/node_modules/jasmine-reporters/ext/phantomjs/examples/colorwheel.coffee +45 -0
  106. data/node_modules/jasmine-reporters/ext/phantomjs/examples/colorwheel.js +52 -0
  107. data/node_modules/jasmine-reporters/ext/phantomjs/examples/countdown.coffee +8 -0
  108. data/node_modules/jasmine-reporters/ext/phantomjs/examples/countdown.js +8 -0
  109. data/node_modules/jasmine-reporters/ext/phantomjs/examples/cycle_multiple_urls.js +64 -0
  110. data/node_modules/jasmine-reporters/ext/phantomjs/examples/direction.coffee +28 -0
  111. data/node_modules/jasmine-reporters/ext/phantomjs/examples/direction.js +34 -0
  112. data/node_modules/jasmine-reporters/ext/phantomjs/examples/extract-text.coffee +81 -0
  113. data/node_modules/jasmine-reporters/ext/phantomjs/examples/extract-text.js +121 -0
  114. data/node_modules/jasmine-reporters/ext/phantomjs/examples/fibo.coffee +8 -0
  115. data/node_modules/jasmine-reporters/ext/phantomjs/examples/fibo.js +9 -0
  116. data/node_modules/jasmine-reporters/ext/phantomjs/examples/follow.coffee +36 -0
  117. data/node_modules/jasmine-reporters/ext/phantomjs/examples/follow.js +37 -0
  118. data/node_modules/jasmine-reporters/ext/phantomjs/examples/hello.coffee +2 -0
  119. data/node_modules/jasmine-reporters/ext/phantomjs/examples/hello.js +2 -0
  120. data/node_modules/jasmine-reporters/ext/phantomjs/examples/ipgeocode.coffee +13 -0
  121. data/node_modules/jasmine-reporters/ext/phantomjs/examples/ipgeocode.js +14 -0
  122. data/node_modules/jasmine-reporters/ext/phantomjs/examples/loadspeed.coffee +17 -0
  123. data/node_modules/jasmine-reporters/ext/phantomjs/examples/loadspeed.js +20 -0
  124. data/node_modules/jasmine-reporters/ext/phantomjs/examples/movies.coffee +13 -0
  125. data/node_modules/jasmine-reporters/ext/phantomjs/examples/movies.js +14 -0
  126. data/node_modules/jasmine-reporters/ext/phantomjs/examples/pizza.coffee +10 -0
  127. data/node_modules/jasmine-reporters/ext/phantomjs/examples/pizza.js +12 -0
  128. data/node_modules/jasmine-reporters/ext/phantomjs/examples/rasterize.coffee +21 -0
  129. data/node_modules/jasmine-reporters/ext/phantomjs/examples/rasterize.js +22 -0
  130. data/node_modules/jasmine-reporters/ext/phantomjs/examples/run-jasmine.js +26 -0
  131. data/node_modules/jasmine-reporters/ext/phantomjs/examples/run-qunit.js +24 -0
  132. data/node_modules/jasmine-reporters/ext/phantomjs/examples/seasonfood.coffee +17 -0
  133. data/node_modules/jasmine-reporters/ext/phantomjs/examples/seasonfood.js +19 -0
  134. data/node_modules/jasmine-reporters/ext/phantomjs/examples/technews.coffee +13 -0
  135. data/node_modules/jasmine-reporters/ext/phantomjs/examples/technews.js +14 -0
  136. data/node_modules/jasmine-reporters/ext/phantomjs/examples/tweets.coffee +8 -0
  137. data/node_modules/jasmine-reporters/ext/phantomjs/examples/tweets.js +12 -0
  138. data/node_modules/jasmine-reporters/ext/phantomjs/examples/useragent.coffee +7 -0
  139. data/node_modules/jasmine-reporters/ext/phantomjs/examples/useragent.js +8 -0
  140. data/node_modules/jasmine-reporters/ext/phantomjs/examples/version.coffee +5 -0
  141. data/node_modules/jasmine-reporters/ext/phantomjs/examples/version.js +5 -0
  142. data/node_modules/jasmine-reporters/ext/phantomjs/examples/waitfor.coffee +40 -0
  143. data/node_modules/jasmine-reporters/ext/phantomjs/examples/waitfor.js +43 -0
  144. data/node_modules/jasmine-reporters/ext/phantomjs/examples/weather.coffee +35 -0
  145. data/node_modules/jasmine-reporters/ext/phantomjs/examples/weather.js +42 -0
  146. data/node_modules/jasmine-reporters/ext/phantomjs/phantomjs.pro +3 -0
  147. data/node_modules/jasmine-reporters/ext/phantomjs/python/INSTALL +20 -0
  148. data/node_modules/jasmine-reporters/ext/phantomjs/python/LICENSE +674 -0
  149. data/node_modules/jasmine-reporters/ext/phantomjs/python/README +56 -0
  150. data/node_modules/jasmine-reporters/ext/phantomjs/python/csconverter.py +41 -0
  151. data/node_modules/jasmine-reporters/ext/phantomjs/python/networkaccessmanager.py +84 -0
  152. data/node_modules/jasmine-reporters/ext/phantomjs/python/phantom.py +384 -0
  153. data/node_modules/jasmine-reporters/ext/phantomjs/python/plugincontroller.py +98 -0
  154. data/node_modules/jasmine-reporters/ext/phantomjs/python/plugins/__init__.py +1 -0
  155. data/node_modules/jasmine-reporters/ext/phantomjs/python/pyphantomjs.py +154 -0
  156. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources.py +4160 -0
  157. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources.qrc +6 -0
  158. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources/coffee-script.js +8 -0
  159. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources/pyphantomjs-icon.ico +0 -0
  160. data/node_modules/jasmine-reporters/ext/phantomjs/python/resources/pyphantomjs-icon.png +0 -0
  161. data/node_modules/jasmine-reporters/ext/phantomjs/python/tools/build_resources.sh +14 -0
  162. data/node_modules/jasmine-reporters/ext/phantomjs/python/tools/setup.py +52 -0
  163. data/node_modules/jasmine-reporters/ext/phantomjs/python/utils.py +126 -0
  164. data/node_modules/jasmine-reporters/ext/phantomjs/python/webpage.py +67 -0
  165. data/node_modules/jasmine-reporters/ext/phantomjs/src/coffee-script.js +8 -0
  166. data/node_modules/jasmine-reporters/ext/phantomjs/src/consts.h +39 -0
  167. data/node_modules/jasmine-reporters/ext/phantomjs/src/csconverter.cpp +61 -0
  168. data/node_modules/jasmine-reporters/ext/phantomjs/src/csconverter.h +47 -0
  169. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/config.h +1 -0
  170. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/egif_lib.c +1111 -0
  171. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif.pri +20 -0
  172. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_err.c +120 -0
  173. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_hash.c +160 -0
  174. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_hash.h +59 -0
  175. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_lib.h +336 -0
  176. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gif_lib_private.h +59 -0
  177. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gifalloc.c +443 -0
  178. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gifwriter.cpp +126 -0
  179. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/gifwriter.h +38 -0
  180. data/node_modules/jasmine-reporters/ext/phantomjs/src/gif/quantize.c +330 -0
  181. data/node_modules/jasmine-reporters/ext/phantomjs/src/main.cpp +64 -0
  182. data/node_modules/jasmine-reporters/ext/phantomjs/src/networkaccessmanager.cpp +119 -0
  183. data/node_modules/jasmine-reporters/ext/phantomjs/src/networkaccessmanager.h +53 -0
  184. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantom.cpp +494 -0
  185. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantom.h +117 -0
  186. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs-icon.png +0 -0
  187. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs.pro +32 -0
  188. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs.qrc +7 -0
  189. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_os2.ico +0 -0
  190. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_os2.rc +1 -0
  191. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_win.ico +0 -0
  192. data/node_modules/jasmine-reporters/ext/phantomjs/src/phantomjs_win.rc +1 -0
  193. data/node_modules/jasmine-reporters/ext/phantomjs/src/usage.txt +11 -0
  194. data/node_modules/jasmine-reporters/ext/phantomjs/src/utils.cpp +74 -0
  195. data/node_modules/jasmine-reporters/ext/phantomjs/src/utils.h +50 -0
  196. data/node_modules/jasmine-reporters/ext/phantomjs/src/webpage.cpp +87 -0
  197. data/node_modules/jasmine-reporters/ext/phantomjs/src/webpage.h +61 -0
  198. data/node_modules/jasmine-reporters/package.json +15 -0
  199. data/node_modules/jasmine-reporters/src/jasmine.console_reporter.js +132 -0
  200. data/node_modules/jasmine-reporters/src/jasmine.junit_reporter.js +199 -0
  201. data/node_modules/jasmine-reporters/src/load_reporters.js +2 -0
  202. data/node_modules/jasmine-reporters/test/JUnitXmlReporterSpec.js +214 -0
  203. data/node_modules/jasmine-reporters/test/console_reporter.html +36 -0
  204. data/node_modules/jasmine-reporters/test/envjs.bootstrap.js +14 -0
  205. data/node_modules/jasmine-reporters/test/envjs.runner.sh +7 -0
  206. data/node_modules/jasmine-reporters/test/junit_xml_reporter.html +23 -0
  207. data/node_modules/jasmine-reporters/test/phantomjs-testrunner.js +39 -0
  208. data/node_modules/jasmine-reporters/test/phantomjs.runner.sh +30 -0
  209. data/node_modules/jasmine-reporters/test/pyphantomjs-plugins/saveToFile/__init__.py +1 -0
  210. data/node_modules/jasmine-reporters/test/pyphantomjs-plugins/saveToFile/saveToFile.py +46 -0
  211. data/node_modules/jasmine-runner/README.md +42 -0
  212. data/node_modules/jasmine-runner/TODO.md +16 -0
  213. data/node_modules/jasmine-runner/bin/jasmine +26 -0
  214. data/node_modules/jasmine-runner/lib/ServerRoutes.js +70 -0
  215. data/node_modules/jasmine-runner/lib/TestRunner.js +29 -0
  216. data/node_modules/jasmine-runner/lib/browser.js +14 -0
  217. data/node_modules/jasmine-runner/lib/config.js +21 -0
  218. data/node_modules/jasmine-runner/lib/jasmine-runner.js +83 -0
  219. data/node_modules/jasmine-runner/lib/monitor.js +34 -0
  220. data/node_modules/jasmine-runner/lib/notify.js +48 -0
  221. data/node_modules/jasmine-runner/lib/public/control-frame.js +57 -0
  222. data/node_modules/jasmine-runner/lib/public/jasmine-html.js +188 -0
  223. data/node_modules/jasmine-runner/lib/public/jasmine.css +166 -0
  224. data/node_modules/jasmine-runner/lib/public/jasmine.js +2421 -0
  225. data/node_modules/jasmine-runner/lib/public/jquery-1.4.3.js +166 -0
  226. data/node_modules/jasmine-runner/lib/public/json2.js +482 -0
  227. data/node_modules/jasmine-runner/lib/public/run.js +6 -0
  228. data/node_modules/jasmine-runner/lib/reporters.js +31 -0
  229. data/node_modules/jasmine-runner/lib/server-worker.js +18 -0
  230. data/node_modules/jasmine-runner/lib/server.js +27 -0
  231. data/node_modules/jasmine-runner/lib/template/jasmine.json +18 -0
  232. data/node_modules/jasmine-runner/lib/template/public/javascript/Player.js +22 -0
  233. data/node_modules/jasmine-runner/lib/template/public/javascript/Song.js +7 -0
  234. data/node_modules/jasmine-runner/lib/template/spec/PlayerSpec.coffee +45 -0
  235. data/node_modules/jasmine-runner/lib/template/spec/PlayerSpec.js +58 -0
  236. data/node_modules/jasmine-runner/lib/template/spec/SpecHelper.js +9 -0
  237. data/node_modules/jasmine-runner/lib/testserver.js +26 -0
  238. data/node_modules/jasmine-runner/lib/views/control-frame.jade +7 -0
  239. data/node_modules/jasmine-runner/lib/views/index.jade +18 -0
  240. data/node_modules/jasmine-runner/node_modules/.bin/cake +7 -0
  241. data/node_modules/jasmine-runner/node_modules/.bin/coffee +7 -0
  242. data/node_modules/jasmine-runner/node_modules/.bin/express +451 -0
  243. data/node_modules/jasmine-runner/node_modules/.bin/jade +92 -0
  244. data/node_modules/jasmine-runner/node_modules/.bin/vows +421 -0
  245. data/node_modules/jasmine-runner/node_modules/coffee-script/.npmignore +11 -0
  246. data/node_modules/jasmine-runner/node_modules/coffee-script/LICENSE +22 -0
  247. data/node_modules/jasmine-runner/node_modules/coffee-script/README +47 -0
  248. data/node_modules/jasmine-runner/node_modules/coffee-script/Rakefile +78 -0
  249. data/node_modules/jasmine-runner/node_modules/coffee-script/bin/cake +7 -0
  250. data/node_modules/jasmine-runner/node_modules/coffee-script/bin/coffee +7 -0
  251. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/browser.js +52 -0
  252. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/cake.js +76 -0
  253. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/coffee-script.js +82 -0
  254. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/command.js +269 -0
  255. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/grammar.js +586 -0
  256. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/helpers.js +66 -0
  257. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/index.js +8 -0
  258. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/lexer.js +638 -0
  259. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/nodes.js +2181 -0
  260. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/optparse.js +111 -0
  261. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/parser.js +656 -0
  262. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/repl.js +47 -0
  263. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/rewriter.js +353 -0
  264. data/node_modules/jasmine-runner/node_modules/coffee-script/lib/scope.js +120 -0
  265. data/node_modules/jasmine-runner/node_modules/coffee-script/package.json +22 -0
  266. data/node_modules/jasmine-runner/node_modules/colors/MIT-LICENSE.txt +20 -0
  267. data/node_modules/jasmine-runner/node_modules/colors/ReadMe.md +30 -0
  268. data/node_modules/jasmine-runner/node_modules/colors/colors.js +75 -0
  269. data/node_modules/jasmine-runner/node_modules/colors/example.js +6 -0
  270. data/node_modules/jasmine-runner/node_modules/colors/package.json +14 -0
  271. data/node_modules/jasmine-runner/node_modules/express/.npmignore +7 -0
  272. data/node_modules/jasmine-runner/node_modules/express/History.md +630 -0
  273. data/node_modules/jasmine-runner/node_modules/express/LICENSE +22 -0
  274. data/node_modules/jasmine-runner/node_modules/express/Makefile +39 -0
  275. data/node_modules/jasmine-runner/node_modules/express/Readme.md +102 -0
  276. data/node_modules/jasmine-runner/node_modules/express/bin/express +451 -0
  277. data/node_modules/jasmine-runner/node_modules/express/index.js +2 -0
  278. data/node_modules/jasmine-runner/node_modules/express/lib/express.js +78 -0
  279. data/node_modules/jasmine-runner/node_modules/express/lib/http.js +503 -0
  280. data/node_modules/jasmine-runner/node_modules/express/lib/https.js +52 -0
  281. data/node_modules/jasmine-runner/node_modules/express/lib/request.js +289 -0
  282. data/node_modules/jasmine-runner/node_modules/express/lib/response.js +423 -0
  283. data/node_modules/jasmine-runner/node_modules/express/lib/router/index.js +329 -0
  284. data/node_modules/jasmine-runner/node_modules/express/lib/router/methods.js +70 -0
  285. data/node_modules/jasmine-runner/node_modules/express/lib/router/route.js +71 -0
  286. data/node_modules/jasmine-runner/node_modules/express/lib/utils.js +122 -0
  287. data/node_modules/jasmine-runner/node_modules/express/lib/view.js +413 -0
  288. data/node_modules/jasmine-runner/node_modules/express/lib/view/partial.js +40 -0
  289. data/node_modules/jasmine-runner/node_modules/express/lib/view/view.js +206 -0
  290. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/.npmignore +11 -0
  291. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/LICENSE +24 -0
  292. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/index.js +2 -0
  293. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/cache.js +81 -0
  294. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/connect.js +106 -0
  295. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/http.js +215 -0
  296. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/https.js +47 -0
  297. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/index.js +46 -0
  298. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/basicAuth.js +93 -0
  299. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +92 -0
  300. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/compiler.js +163 -0
  301. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js +46 -0
  302. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/csrf.js +105 -0
  303. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/directory.js +222 -0
  304. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/errorHandler.js +100 -0
  305. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/favicon.js +76 -0
  306. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/limit.js +82 -0
  307. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/logger.js +299 -0
  308. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js +38 -0
  309. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/profiler.js +100 -0
  310. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/query.js +40 -0
  311. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/responseTime.js +34 -0
  312. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/router.js +379 -0
  313. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session.js +346 -0
  314. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/cookie.js +126 -0
  315. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/memory.js +131 -0
  316. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/session.js +137 -0
  317. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/session/store.js +87 -0
  318. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/static.js +225 -0
  319. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +175 -0
  320. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/vhost.js +44 -0
  321. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/patch.js +79 -0
  322. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/directory.html +75 -0
  323. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/error.html +13 -0
  324. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/favicon.ico +0 -0
  325. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page.png +0 -0
  326. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_add.png +0 -0
  327. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_attach.png +0 -0
  328. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_code.png +0 -0
  329. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_copy.png +0 -0
  330. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_delete.png +0 -0
  331. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_edit.png +0 -0
  332. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_error.png +0 -0
  333. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_excel.png +0 -0
  334. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_find.png +0 -0
  335. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_gear.png +0 -0
  336. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_go.png +0 -0
  337. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_green.png +0 -0
  338. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_key.png +0 -0
  339. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_lightning.png +0 -0
  340. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_link.png +0 -0
  341. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_paintbrush.png +0 -0
  342. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_paste.png +0 -0
  343. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_red.png +0 -0
  344. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_refresh.png +0 -0
  345. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_save.png +0 -0
  346. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white.png +0 -0
  347. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_acrobat.png +0 -0
  348. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_actionscript.png +0 -0
  349. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_add.png +0 -0
  350. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_c.png +0 -0
  351. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_camera.png +0 -0
  352. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_cd.png +0 -0
  353. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_code.png +0 -0
  354. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_code_red.png +0 -0
  355. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_coldfusion.png +0 -0
  356. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_compressed.png +0 -0
  357. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_copy.png +0 -0
  358. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_cplusplus.png +0 -0
  359. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_csharp.png +0 -0
  360. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_cup.png +0 -0
  361. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_database.png +0 -0
  362. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_delete.png +0 -0
  363. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_dvd.png +0 -0
  364. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_edit.png +0 -0
  365. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_error.png +0 -0
  366. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_excel.png +0 -0
  367. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_find.png +0 -0
  368. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_flash.png +0 -0
  369. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_freehand.png +0 -0
  370. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_gear.png +0 -0
  371. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_get.png +0 -0
  372. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_go.png +0 -0
  373. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_h.png +0 -0
  374. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_horizontal.png +0 -0
  375. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_key.png +0 -0
  376. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_lightning.png +0 -0
  377. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_link.png +0 -0
  378. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_magnify.png +0 -0
  379. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_medal.png +0 -0
  380. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_office.png +0 -0
  381. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_paint.png +0 -0
  382. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_paintbrush.png +0 -0
  383. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_paste.png +0 -0
  384. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_php.png +0 -0
  385. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_picture.png +0 -0
  386. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_powerpoint.png +0 -0
  387. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_put.png +0 -0
  388. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_ruby.png +0 -0
  389. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_stack.png +0 -0
  390. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_star.png +0 -0
  391. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_swoosh.png +0 -0
  392. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_text.png +0 -0
  393. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_text_width.png +0 -0
  394. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_tux.png +0 -0
  395. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_vector.png +0 -0
  396. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_visualstudio.png +0 -0
  397. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_width.png +0 -0
  398. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_word.png +0 -0
  399. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_world.png +0 -0
  400. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_wrench.png +0 -0
  401. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_white_zip.png +0 -0
  402. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_word.png +0 -0
  403. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/icons/page_world.png +0 -0
  404. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/public/style.css +141 -0
  405. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/utils.js +451 -0
  406. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/package.json +24 -0
  407. data/node_modules/jasmine-runner/node_modules/express/node_modules/connect/test.js +11 -0
  408. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/LICENSE +19 -0
  409. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/README.md +50 -0
  410. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/mime.js +92 -0
  411. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/package.json +22 -0
  412. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/test.js +79 -0
  413. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/types/mime.types +1479 -0
  414. data/node_modules/jasmine-runner/node_modules/express/node_modules/mime/types/node.types +43 -0
  415. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/.gitignore +1 -0
  416. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/.gitmodules +6 -0
  417. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/History.md +57 -0
  418. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/Makefile +7 -0
  419. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/Readme.md +49 -0
  420. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/benchmark.js +17 -0
  421. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/examples.js +48 -0
  422. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/index.js +2 -0
  423. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/lib/querystring.js +236 -0
  424. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/package.json +16 -0
  425. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/test/parse.test.js +156 -0
  426. data/node_modules/jasmine-runner/node_modules/express/node_modules/qs/test/stringify.test.js +95 -0
  427. data/node_modules/jasmine-runner/node_modules/express/package.json +22 -0
  428. data/node_modules/jasmine-runner/node_modules/growl/History.md +10 -0
  429. data/node_modules/jasmine-runner/node_modules/growl/Readme.md +74 -0
  430. data/node_modules/jasmine-runner/node_modules/growl/lib/growl.js +80 -0
  431. data/node_modules/jasmine-runner/node_modules/growl/package.json +6 -0
  432. data/node_modules/jasmine-runner/node_modules/growl/seed.yml +4 -0
  433. data/node_modules/jasmine-runner/node_modules/growl/test.js +17 -0
  434. data/node_modules/jasmine-runner/node_modules/jade/.gitignore +3 -0
  435. data/node_modules/jasmine-runner/node_modules/jade/.gitmodules +21 -0
  436. data/node_modules/jasmine-runner/node_modules/jade/.npmignore +4 -0
  437. data/node_modules/jasmine-runner/node_modules/jade/CNAME +1 -0
  438. data/node_modules/jasmine-runner/node_modules/jade/History.md +163 -0
  439. data/node_modules/jasmine-runner/node_modules/jade/LICENSE +22 -0
  440. data/node_modules/jasmine-runner/node_modules/jade/Makefile +25 -0
  441. data/node_modules/jasmine-runner/node_modules/jade/Readme.md +408 -0
  442. data/node_modules/jasmine-runner/node_modules/jade/api.html +850 -0
  443. data/node_modules/jasmine-runner/node_modules/jade/bin/jade +92 -0
  444. data/node_modules/jasmine-runner/node_modules/jade/index.js +2 -0
  445. data/node_modules/jasmine-runner/node_modules/jade/lib/compiler.js +273 -0
  446. data/node_modules/jasmine-runner/node_modules/jade/lib/doctypes.js +18 -0
  447. data/node_modules/jasmine-runner/node_modules/jade/lib/filters.js +70 -0
  448. data/node_modules/jasmine-runner/node_modules/jade/lib/index.js +314 -0
  449. data/node_modules/jasmine-runner/node_modules/jade/lib/jade.js +314 -0
  450. data/node_modules/jasmine-runner/node_modules/jade/lib/lexer.js +359 -0
  451. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/block.js +29 -0
  452. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/code.js +35 -0
  453. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/comment.js +32 -0
  454. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/doctype.js +29 -0
  455. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/each.js +35 -0
  456. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/filter.js +33 -0
  457. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/index.js +16 -0
  458. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/node.js +20 -0
  459. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/tag.js +80 -0
  460. data/node_modules/jasmine-runner/node_modules/jade/lib/nodes/text.js +29 -0
  461. data/node_modules/jasmine-runner/node_modules/jade/lib/parser.js +358 -0
  462. data/node_modules/jasmine-runner/node_modules/jade/lib/self-closing.js +17 -0
  463. data/node_modules/jasmine-runner/node_modules/jade/lib/utils.js +49 -0
  464. data/node_modules/jasmine-runner/node_modules/jade/package.json +9 -0
  465. data/node_modules/jasmine-runner/node_modules/libnotify/.gitignore +2 -0
  466. data/node_modules/jasmine-runner/node_modules/libnotify/README.md +59 -0
  467. data/node_modules/jasmine-runner/node_modules/libnotify/lib/libnotify.js +72 -0
  468. data/node_modules/jasmine-runner/node_modules/libnotify/package.json +11 -0
  469. data/node_modules/jasmine-runner/node_modules/libnotify/seed.yml +5 -0
  470. data/node_modules/jasmine-runner/node_modules/libnotify/test.js +5 -0
  471. data/node_modules/jasmine-runner/node_modules/socket.io/.gitignore +8 -0
  472. data/node_modules/jasmine-runner/node_modules/socket.io/Makefile +10 -0
  473. data/node_modules/jasmine-runner/node_modules/socket.io/README.md +218 -0
  474. data/node_modules/jasmine-runner/node_modules/socket.io/example/chat.html +61 -0
  475. data/node_modules/jasmine-runner/node_modules/socket.io/example/json.js +18 -0
  476. data/node_modules/jasmine-runner/node_modules/socket.io/example/server.js +58 -0
  477. data/node_modules/jasmine-runner/node_modules/socket.io/index.js +1 -0
  478. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/client.js +191 -0
  479. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/index.js +4 -0
  480. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/listener.js +166 -0
  481. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/flashsocket.js +44 -0
  482. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/htmlfile.js +45 -0
  483. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/jsonp-polling.js +32 -0
  484. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/websocket.js +137 -0
  485. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/xhr-multipart.js +63 -0
  486. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/transports/xhr-polling.js +75 -0
  487. data/node_modules/jasmine-runner/node_modules/socket.io/lib/socket.io/utils.js +52 -0
  488. data/node_modules/jasmine-runner/node_modules/socket.io/package.json +17 -0
  489. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/.gitignore +3 -0
  490. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/.gitmodules +3 -0
  491. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/History.md +97 -0
  492. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/Makefile +53 -0
  493. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/Readme.md +39 -0
  494. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/bin/expresso +837 -0
  495. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/COPYING +339 -0
  496. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/Makefile.am +81 -0
  497. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/Makefile.in +884 -0
  498. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/Readme.md +8 -0
  499. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/aclocal.m4 +872 -0
  500. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.guess +1526 -0
  501. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.h.in +92 -0
  502. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.rpath +666 -0
  503. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/config.sub +1658 -0
  504. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/configure +7971 -0
  505. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/configure.ac +88 -0
  506. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/depcomp +589 -0
  507. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/encoding.c +315 -0
  508. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/encoding.h +33 -0
  509. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/generate-resources.c +58 -0
  510. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/global.h +29 -0
  511. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/highlight.c +478 -0
  512. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/highlight.h +37 -0
  513. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-connection.c +192 -0
  514. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-exchange.c +494 -0
  515. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-host.c +95 -0
  516. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-message.c +900 -0
  517. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-server.c +236 -0
  518. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-server.h +208 -0
  519. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/http-url.c +156 -0
  520. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/install-sh +519 -0
  521. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument-js.cpp +1873 -0
  522. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument-js.h +81 -0
  523. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument.c +226 -0
  524. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/instrument.h +31 -0
  525. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/GNUmakefile +15 -0
  526. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/Makefile.ref +483 -0
  527. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/README.html +54 -0
  528. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/SpiderMonkey.rsp +11 -0
  529. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/aclocal.m4 +9 -0
  530. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/bench.sh +5 -0
  531. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/builtins.tbl +98 -0
  532. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config.mk +206 -0
  533. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/Makefile.in +106 -0
  534. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/Moz/Milestone.pm +232 -0
  535. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/autoconf.mk.in +349 -0
  536. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/check-sync-dirs.py +108 -0
  537. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/check-sync-exceptions +6 -0
  538. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/config.mk +884 -0
  539. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/fastcwd.pl +66 -0
  540. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/gcc_hidden.h +2 -0
  541. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/insure.mk +53 -0
  542. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/make-system-wrappers.pl +59 -0
  543. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/milestone.pl +112 -0
  544. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/milestone.txt +13 -0
  545. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/Makefile.in +84 -0
  546. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/cppsetup.c +233 -0
  547. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/def.h +184 -0
  548. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/ifparser.c +549 -0
  549. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/ifparser.h +83 -0
  550. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/imakemdep.h +733 -0
  551. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/include.c +337 -0
  552. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/main.c +860 -0
  553. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/mkdepend.man +382 -0
  554. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/parse.c +686 -0
  555. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/mkdepend/pr.c +124 -0
  556. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/nfspwd.pl +50 -0
  557. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/nsinstall.c +481 -0
  558. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/nsinstall.py +139 -0
  559. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/pathsub.c +247 -0
  560. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/pathsub.h +74 -0
  561. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/preprocessor.pl +671 -0
  562. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/revdepth-nt.pl +48 -0
  563. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/revdepth.pl +51 -0
  564. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/rules.mk +2269 -0
  565. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/system-headers +1038 -0
  566. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/version.mk +85 -0
  567. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/config/version_win.pl +423 -0
  568. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/dtoa.c +3321 -0
  569. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/Makefile.ref +143 -0
  570. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/README +83 -0
  571. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/editline.3 +175 -0
  572. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/editline.c +1368 -0
  573. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/editline.h +135 -0
  574. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/sysunix.c +182 -0
  575. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/editline/unix.h +82 -0
  576. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/javascript-trace.d +73 -0
  577. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jitstats.tbl +52 -0
  578. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js-config.h.in +55 -0
  579. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js-config.in +111 -0
  580. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js.cpp +4050 -0
  581. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js.mdp +0 -0
  582. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js.msg +309 -0
  583. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/js3240.rc +79 -0
  584. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsOS240.def +654 -0
  585. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsapi.cpp +6060 -0
  586. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsapi.h +2699 -0
  587. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarena.cpp +450 -0
  588. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarena.h +318 -0
  589. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarray.cpp +3426 -0
  590. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsarray.h +191 -0
  591. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsatom.cpp +1064 -0
  592. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsatom.h +458 -0
  593. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbit.h +253 -0
  594. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbool.cpp +182 -0
  595. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbool.h +75 -0
  596. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbuiltins.cpp +497 -0
  597. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsbuiltins.h +374 -0
  598. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsclist.h +139 -0
  599. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscntxt.cpp +1394 -0
  600. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscntxt.h +1247 -0
  601. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscompat.h +57 -0
  602. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsconfig.mk +181 -0
  603. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscpucfg.cpp +388 -0
  604. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jscpucfg.h +212 -0
  605. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdate.cpp +2475 -0
  606. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdate.h +124 -0
  607. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdbgapi.cpp +1954 -0
  608. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdbgapi.h +500 -0
  609. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdhash.cpp +876 -0
  610. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdhash.h +588 -0
  611. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtoa.cpp +572 -0
  612. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtoa.h +131 -0
  613. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtracef.c +318 -0
  614. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsdtracef.h +81 -0
  615. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsemit.cpp +6857 -0
  616. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsemit.h +777 -0
  617. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsexn.cpp +1376 -0
  618. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsexn.h +96 -0
  619. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfile.cpp +2736 -0
  620. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfile.h +56 -0
  621. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfile.msg +90 -0
  622. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfun.cpp +2706 -0
  623. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsfun.h +296 -0
  624. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsgc.cpp +3763 -0
  625. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsgc.h +427 -0
  626. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jshash.cpp +476 -0
  627. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jshash.h +151 -0
  628. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsify.pl +483 -0
  629. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsinterp.cpp +7225 -0
  630. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsinterp.h +591 -0
  631. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsinvoke.cpp +42 -0
  632. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsiter.cpp +1050 -0
  633. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsiter.h +140 -0
  634. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jskeyword.tbl +124 -0
  635. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jskwgen.cpp +460 -0
  636. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslibmath.h +69 -0
  637. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslock.cpp +1417 -0
  638. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslock.h +311 -0
  639. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslocko.asm +60 -0
  640. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslog2.cpp +94 -0
  641. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslong.cpp +264 -0
  642. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jslong.h +412 -0
  643. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsmath.cpp +721 -0
  644. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsmath.h +63 -0
  645. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsnum.cpp +1338 -0
  646. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsnum.h +287 -0
  647. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsobj.cpp +5563 -0
  648. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsobj.h +735 -0
  649. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/json.cpp +954 -0
  650. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/json.h +107 -0
  651. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsopcode.cpp +5304 -0
  652. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsopcode.h +404 -0
  653. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsopcode.tbl +557 -0
  654. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsoplengen.cpp +121 -0
  655. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsotypes.h +202 -0
  656. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsparse.cpp +6822 -0
  657. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsparse.h +508 -0
  658. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsprf.cpp +1262 -0
  659. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsprf.h +150 -0
  660. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsproto.tbl +129 -0
  661. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsprvtd.h +263 -0
  662. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jspubtd.h +727 -0
  663. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsregexp.cpp +4772 -0
  664. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsregexp.h +192 -0
  665. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsreops.tbl +145 -0
  666. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscan.cpp +2017 -0
  667. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscan.h +389 -0
  668. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscope.cpp +1955 -0
  669. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscope.h +419 -0
  670. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscript.cpp +1891 -0
  671. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsscript.h +330 -0
  672. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsshell.msg +51 -0
  673. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstaticcheck.h +57 -0
  674. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstddef.h +87 -0
  675. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstr.cpp +5347 -0
  676. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsstr.h +662 -0
  677. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jstracer.cpp +8276 -0
  678. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jstracer.h +552 -0
  679. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jstypes.h +490 -0
  680. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsutil.cpp +345 -0
  681. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsutil.h +168 -0
  682. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsversion.h +243 -0
  683. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxdrapi.cpp +800 -0
  684. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxdrapi.h +220 -0
  685. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxml.cpp +8343 -0
  686. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/jsxml.h +298 -0
  687. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/lock_SunOS.s +119 -0
  688. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/plify_jsdhash.sed +35 -0
  689. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/prmjtime.cpp +846 -0
  690. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/prmjtime.h +103 -0
  691. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/AIX4.1.mk +65 -0
  692. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/AIX4.2.mk +64 -0
  693. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/AIX4.3.mk +65 -0
  694. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Cygwin.mk +14 -0
  695. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin.mk +85 -0
  696. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin1.3.mk +81 -0
  697. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin1.4.mk +41 -0
  698. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin5.2.mk +81 -0
  699. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin5.3.mk +81 -0
  700. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Darwin64.mk +72 -0
  701. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/HP-UXB.10.10.mk +77 -0
  702. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/HP-UXB.10.20.mk +77 -0
  703. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/HP-UXB.11.00.mk +80 -0
  704. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX.mk +87 -0
  705. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX5.3.mk +44 -0
  706. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.1.mk +44 -0
  707. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.2.mk +44 -0
  708. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.3.mk +44 -0
  709. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/IRIX6.5.mk +44 -0
  710. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Linux_All.mk +105 -0
  711. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/MSYS.mk +7 -0
  712. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/Mac_OS10.0.mk +82 -0
  713. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/OSF1V4.0.mk +72 -0
  714. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/OSF1V5.0.mk +69 -0
  715. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS4.1.4.mk +101 -0
  716. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.10.mk +50 -0
  717. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.3.mk +91 -0
  718. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.4.mk +92 -0
  719. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.5.1.mk +44 -0
  720. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.5.mk +87 -0
  721. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.6.mk +89 -0
  722. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.7.mk +44 -0
  723. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.8.mk +44 -0
  724. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/SunOS5.9.mk +44 -0
  725. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT4.0.mk +118 -0
  726. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT5.0.mk +118 -0
  727. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT5.1.mk +118 -0
  728. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT5.2.mk +118 -0
  729. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/WINNT6.0.mk +118 -0
  730. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/ref-config/dgux.mk +64 -0
  731. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/resource.h +15 -0
  732. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/rules.mk +206 -0
  733. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/time.sh +13 -0
  734. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/js/win32.order +384 -0
  735. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-help.txt +12 -0
  736. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-highlight.css +38 -0
  737. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-ie.css +89 -0
  738. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-overlay.js +211 -0
  739. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-server-help.txt +17 -0
  740. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-server.1 +79 -0
  741. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-server.c +1307 -0
  742. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage-throbber.gif +0 -0
  743. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.1 +52 -0
  744. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.c +142 -0
  745. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.css +328 -0
  746. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.html +125 -0
  747. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.js +1024 -0
  748. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.jsm +22 -0
  749. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.manifest +2 -0
  750. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/jscoverage.xul +36 -0
  751. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/iconv.m4 +180 -0
  752. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/lib-ld.m4 +110 -0
  753. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/lib-link.m4 +709 -0
  754. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/m4/lib-prefix.m4 +185 -0
  755. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/make-bin-dist.sh.in +24 -0
  756. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/make-dist.sh.in +43 -0
  757. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/missing +367 -0
  758. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/report.js +76 -0
  759. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/resource-manager.c +59 -0
  760. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/resource-manager.h +46 -0
  761. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/stream.c +129 -0
  762. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/stream.h +57 -0
  763. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/Makefile.am +130 -0
  764. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/Makefile.in +846 -0
  765. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/asprintf.c +42 -0
  766. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/asprintf.sh +19 -0
  767. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/charset.sh +110 -0
  768. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/chunked.sh +74 -0
  769. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/common.sh +7 -0
  770. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/destination-is-existing-directory.expected.err +2 -0
  771. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/destination-is-file.expected.err +2 -0
  772. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/encoding-requires-argument.expected.err +2 -0
  773. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/encodings.c +223 -0
  774. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/encodings.sh +19 -0
  775. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/exclude-requires-argument.expected.err +2 -0
  776. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/fatal.sh +110 -0
  777. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/gethostbyname.c +53 -0
  778. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/gethostbyname.sh +25 -0
  779. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/help.sh +35 -0
  780. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-client-bad-body.c +98 -0
  781. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-client-bad-url.c +77 -0
  782. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-client-close-after-request.c +57 -0
  783. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-bad-body.c +97 -0
  784. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-bad-headers.c +97 -0
  785. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-charset.c +144 -0
  786. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-chunked.c +196 -0
  787. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/http-server-close-immediately.c +60 -0
  788. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/invalid-option.expected.err +2 -0
  789. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/invalid-option.sh +29 -0
  790. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-ignore.expected/ignore.js +106 -0
  791. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-ignore.sh +28 -0
  792. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-ignore/ignore.js +44 -0
  793. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-invalid.expected.err +2 -0
  794. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-invalid/javascript-invalid.js +1 -0
  795. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-setter.expected.err +1 -0
  796. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-setter/javascript-setter.js +3 -0
  797. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-utf-8.expected/javascript-utf-8.js +15 -0
  798. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-utf-8.sh +43 -0
  799. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-utf-8/javascript-utf-8.js +2 -0
  800. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-xml.expected.err +1 -0
  801. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript-xml/javascript-xml.js +8 -0
  802. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-array-comprehension.js +32 -0
  803. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-assign.js +51 -0
  804. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-colon.js +24 -0
  805. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-comma.js +12 -0
  806. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-cr.js +12 -0
  807. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-crlf.js +12 -0
  808. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-debugger.js +21 -0
  809. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-dec.js +15 -0
  810. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-delete.js +12 -0
  811. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-destructuring.js +96 -0
  812. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-do.js +28 -0
  813. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-dot.js +30 -0
  814. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-empty.js +9 -0
  815. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-for.js +51 -0
  816. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-foreach.js +16 -0
  817. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-function.js +79 -0
  818. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-generator-expression.js +45 -0
  819. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-generator.js +32 -0
  820. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-getter-setter.js +31 -0
  821. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-hook.js +15 -0
  822. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-if.js +71 -0
  823. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-in.js +19 -0
  824. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-inc.js +15 -0
  825. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-iso-8859-1.js +15 -0
  826. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-lambda.js +14 -0
  827. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-let.js +148 -0
  828. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-lf.js +12 -0
  829. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-new.js +22 -0
  830. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-number.js +57 -0
  831. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-object.js +15 -0
  832. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-op.js +108 -0
  833. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-primary.js +21 -0
  834. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-rb.js +24 -0
  835. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-rc.js +15 -0
  836. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-rp.js +12 -0
  837. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-special-characters.js +30 -0
  838. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-string.js +36 -0
  839. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-switch.js +55 -0
  840. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-throw.js +21 -0
  841. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-try.js +66 -0
  842. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-unaryop.js +27 -0
  843. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-var.js +15 -0
  844. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-while.js +79 -0
  845. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.expected/javascript-with.js +30 -0
  846. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript.sh +53 -0
  847. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-array-comprehension.js +14 -0
  848. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-assign.js +14 -0
  849. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-colon.js +7 -0
  850. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-comma.js +1 -0
  851. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-cr.js +1 -0
  852. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-crlf.js +4 -0
  853. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-debugger.js +6 -0
  854. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-dec.js +2 -0
  855. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-delete.js +1 -0
  856. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-destructuring.js +42 -0
  857. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-do.js +10 -0
  858. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-dot.js +8 -0
  859. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-empty.js +0 -0
  860. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-for.js +22 -0
  861. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-foreach.js +8 -0
  862. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-function.js +38 -0
  863. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-generator-expression.js +18 -0
  864. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-generator.js +11 -0
  865. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-getter-setter.js +19 -0
  866. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-hook.js +2 -0
  867. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-if.js +30 -0
  868. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-in.js +4 -0
  869. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-inc.js +2 -0
  870. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-iso-8859-1.js +2 -0
  871. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-lambda.js +3 -0
  872. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-let.js +79 -0
  873. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-lf.js +4 -0
  874. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-new.js +4 -0
  875. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-number.js +19 -0
  876. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-object.js +2 -0
  877. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-op.js +55 -0
  878. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-primary.js +4 -0
  879. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-rb.js +5 -0
  880. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-rc.js +7 -0
  881. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-rp.js +1 -0
  882. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-special-characters.js +11 -0
  883. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-string.js +11 -0
  884. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-switch.js +21 -0
  885. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-throw.js +6 -0
  886. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-try.js +32 -0
  887. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-unaryop.js +6 -0
  888. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-var.js +2 -0
  889. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-while.js +35 -0
  890. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/javascript/javascript-with.js +9 -0
  891. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/json-cmp.js +65 -0
  892. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/json.c +48 -0
  893. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/json.sh +19 -0
  894. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/mkdirs.c +42 -0
  895. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/mkdirs.sh +19 -0
  896. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/netcat.pl +35 -0
  897. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/no-arguments.expected.err +2 -0
  898. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/no-arguments.sh +29 -0
  899. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/no-instrument-requires-argument.expected.err +2 -0
  900. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-request-body.sh +58 -0
  901. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-body-javascript.sh +53 -0
  902. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-body.expected.err +1 -0
  903. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-body.sh +54 -0
  904. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-bad-response-headers.sh +53 -0
  905. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-no-server.sh +49 -0
  906. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy-url.sh +67 -0
  907. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/proxy.sh +143 -0
  908. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-crlf.sh +59 -0
  909. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-dir-list.c +93 -0
  910. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-dir-list.sh +19 -0
  911. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-exclude.sh +41 -0
  912. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-fatal.sh +40 -0
  913. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive-no-instrument.sh +41 -0
  914. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/1.css +3 -0
  915. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/1.html +12 -0
  916. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/1.js +12 -0
  917. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/2/2.css +3 -0
  918. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/2/2.html +11 -0
  919. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/1/2/2.js +12 -0
  920. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/image.png +0 -0
  921. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/index.html +12 -0
  922. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/script.js +19 -0
  923. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/style.css +3 -0
  924. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/unix.txt +3 -0
  925. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/windows.txt +3 -0
  926. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.expected/x +1 -0
  927. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive.sh +55 -0
  928. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/1.css +3 -0
  929. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/1.html +12 -0
  930. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/1.js +1 -0
  931. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/2/2.css +3 -0
  932. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/2/2.html +11 -0
  933. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/1/2/2.js +1 -0
  934. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/image.png +0 -0
  935. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/index.html +12 -0
  936. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/script.js +6 -0
  937. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/style.css +3 -0
  938. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/unix.txt +3 -0
  939. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/windows.txt +3 -0
  940. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/recursive/x +1 -0
  941. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/same-directory.expected.err +1 -0
  942. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/same-directory.sh +30 -0
  943. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-bad-requests.sh +104 -0
  944. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-close-after-request.sh +47 -0
  945. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-content-types.sh +68 -0
  946. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-directory-listing.expected +4 -0
  947. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-directory-listing.sh +57 -0
  948. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-directory-redirect.sh +50 -0
  949. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-encoded-url.sh +57 -0
  950. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-error.sh +61 -0
  951. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-help.sh +26 -0
  952. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-ip-address.sh +68 -0
  953. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-shutdown-bad-method.sh +49 -0
  954. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-shutdown.expected.err +1 -0
  955. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-shutdown.sh +42 -0
  956. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-special-file.sh +62 -0
  957. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-unreadable-directory.sh +61 -0
  958. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-unreadable-file.sh +62 -0
  959. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-verbose.expected.err +4 -0
  960. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-verbose.sh +54 -0
  961. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server-version.sh +25 -0
  962. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server.pl +61 -0
  963. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/server.sh +216 -0
  964. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/source-does-not-exist.expected.err +2 -0
  965. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/source-is-file.expected.err +2 -0
  966. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-json.sh +50 -0
  967. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-request-body.sh +48 -0
  968. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-response-headers.sh +56 -0
  969. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-source-urls.expected.err +3 -0
  970. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-bad-source-urls.expected.json +14 -0
  971. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.expected.json +6 -0
  972. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.js +11 -0
  973. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.json +3 -0
  974. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-escaped-characters.sh +52 -0
  975. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-server-bad-body.sh +59 -0
  976. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-server-closes-immediately.sh +58 -0
  977. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.expected.err +1 -0
  978. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.expected.json +6 -0
  979. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.json +3 -0
  980. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-not-found.sh +50 -0
  981. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-urls.expected.err +3 -0
  982. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-source-urls.expected.json +14 -0
  983. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unreachable-source-urls.expected.err +3 -0
  984. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unreachable-source-urls.expected.json +14 -0
  985. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unreadable-json.sh +66 -0
  986. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store-unwritable-json.sh +58 -0
  987. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store.expected.json +14 -0
  988. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store.json +5 -0
  989. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/store.sh +137 -0
  990. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/streams.c +107 -0
  991. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/streams.sh +19 -0
  992. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/too-many-arguments.expected.err +2 -0
  993. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/valgrind.sh +7 -0
  994. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/tests/version.sh +29 -0
  995. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/util.c +570 -0
  996. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/deps/jscoverage/util.h +133 -0
  997. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/api.html +1048 -0
  998. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/index.html +373 -0
  999. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/index.md +290 -0
  1000. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/layout/foot.html +3 -0
  1001. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/docs/layout/head.html +42 -0
  1002. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/lib/bar.js +4 -0
  1003. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/lib/foo.js +16 -0
  1004. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/package.json +12 -0
  1005. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/assert.test.js +84 -0
  1006. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/async.test.js +6 -0
  1007. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/bar.test.js +12 -0
  1008. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/foo.test.js +13 -0
  1009. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/http.test.js +82 -0
  1010. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/serial/async.test.js +38 -0
  1011. data/node_modules/jasmine-runner/node_modules/socket.io/support/expresso/test/serial/http.test.js +47 -0
  1012. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/LICENSE +27 -0
  1013. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/Makefile +8 -0
  1014. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/README.md +41 -0
  1015. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/examples/client-unix.js +12 -0
  1016. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/examples/client.js +10 -0
  1017. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/examples/server-unix.js +13 -0
  1018. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/lib/websocket.js +562 -0
  1019. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/package.json +22 -0
  1020. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-basic.js +63 -0
  1021. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-readonly-attrs.js +44 -0
  1022. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-ready-state.js +23 -0
  1023. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-unix-send-fd.js +63 -0
  1024. data/node_modules/jasmine-runner/node_modules/socket.io/support/node-websocket-client/test/test-unix-sockets.js +46 -0
  1025. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/.gitignore +1 -0
  1026. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/.gitmodules +3 -0
  1027. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/Makefile +2 -0
  1028. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/README.md +213 -0
  1029. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/io.js +24 -0
  1030. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/socket.js +157 -0
  1031. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transport.js +141 -0
  1032. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/flashsocket.js +53 -0
  1033. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/htmlfile.js +73 -0
  1034. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/jsonp-polling.js +116 -0
  1035. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/websocket.js +60 -0
  1036. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/xhr-multipart.js +36 -0
  1037. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/xhr-polling.js +68 -0
  1038. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/transports/xhr.js +131 -0
  1039. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/util.js +60 -0
  1040. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/.gitignore +1 -0
  1041. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/FABridge.js +604 -0
  1042. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/README.txt +109 -0
  1043. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/WebSocketMain.swf +0 -0
  1044. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/WebSocketMainInsecure.zip +0 -0
  1045. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocket.as +461 -0
  1046. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMain.as +94 -0
  1047. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as +19 -0
  1048. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/WebSocketStateEvent.as +32 -0
  1049. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/bridge/FABridge.as +943 -0
  1050. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/build.sh +10 -0
  1051. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as +204 -0
  1052. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as +375 -0
  1053. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as +287 -0
  1054. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as +3235 -0
  1055. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as +218 -0
  1056. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as +57 -0
  1057. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as +82 -0
  1058. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as +27 -0
  1059. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as +21 -0
  1060. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as +137 -0
  1061. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as +124 -0
  1062. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as +204 -0
  1063. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as +106 -0
  1064. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as +28 -0
  1065. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as +115 -0
  1066. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as +71 -0
  1067. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as +90 -0
  1068. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as +20 -0
  1069. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as +119 -0
  1070. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as +142 -0
  1071. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as +339 -0
  1072. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as +2797 -0
  1073. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as +375 -0
  1074. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as +55 -0
  1075. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as +61 -0
  1076. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as +64 -0
  1077. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as +58 -0
  1078. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as +365 -0
  1079. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as +86 -0
  1080. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as +21 -0
  1081. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as +15 -0
  1082. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as +32 -0
  1083. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as +21 -0
  1084. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as +35 -0
  1085. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as +110 -0
  1086. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as +34 -0
  1087. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as +52 -0
  1088. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as +44 -0
  1089. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as +44 -0
  1090. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as +60 -0
  1091. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as +42 -0
  1092. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as +88 -0
  1093. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as +94 -0
  1094. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl +29 -0
  1095. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt +2304 -0
  1096. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as +1220 -0
  1097. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as +58 -0
  1098. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as +39 -0
  1099. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as +148 -0
  1100. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as +160 -0
  1101. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as +71 -0
  1102. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as +98 -0
  1103. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as +109 -0
  1104. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as +112 -0
  1105. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as +151 -0
  1106. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as +184 -0
  1107. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as +20 -0
  1108. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as +56 -0
  1109. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as +58 -0
  1110. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as +101 -0
  1111. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as +92 -0
  1112. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as +198 -0
  1113. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as +58 -0
  1114. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as +60 -0
  1115. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as +51 -0
  1116. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as +42 -0
  1117. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as +59 -0
  1118. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as +66 -0
  1119. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as +102 -0
  1120. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as +117 -0
  1121. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as +14 -0
  1122. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as +29 -0
  1123. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as +24 -0
  1124. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as +38 -0
  1125. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as +171 -0
  1126. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as +26 -0
  1127. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as +340 -0
  1128. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as +70 -0
  1129. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as +151 -0
  1130. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as +895 -0
  1131. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as +39 -0
  1132. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as +27 -0
  1133. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as +197 -0
  1134. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as +370 -0
  1135. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as +26 -0
  1136. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as +180 -0
  1137. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as +90 -0
  1138. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as +1543 -0
  1139. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as +35 -0
  1140. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as +11 -0
  1141. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as +85 -0
  1142. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as +34 -0
  1143. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as +11 -0
  1144. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as +25 -0
  1145. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as +189 -0
  1146. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as +66 -0
  1147. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as +28 -0
  1148. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as +43 -0
  1149. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as +210 -0
  1150. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as +21 -0
  1151. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as +44 -0
  1152. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as +35 -0
  1153. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as +112 -0
  1154. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as +118 -0
  1155. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as +49 -0
  1156. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as +90 -0
  1157. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as +27 -0
  1158. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as +94 -0
  1159. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as +60 -0
  1160. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/sample.html +76 -0
  1161. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/swfobject.js +4 -0
  1162. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/lib/vendor/web-socket-js/web_socket.js +388 -0
  1163. data/node_modules/jasmine-runner/node_modules/socket.io/support/socket.io-client/socket.io.js +1918 -0
  1164. data/node_modules/jasmine-runner/node_modules/socket.io/tests/index.js +17 -0
  1165. data/node_modules/jasmine-runner/node_modules/socket.io/tests/listener.js +152 -0
  1166. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.flashsocket.js +48 -0
  1167. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.htmlfile.js +214 -0
  1168. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.jsonp-polling.js +148 -0
  1169. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.websocket.js +245 -0
  1170. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.xhr-multipart.js +215 -0
  1171. data/node_modules/jasmine-runner/node_modules/socket.io/tests/transports.xhr-polling.js +138 -0
  1172. data/node_modules/jasmine-runner/node_modules/socket.io/tests/utils.js +25 -0
  1173. data/node_modules/jasmine-runner/node_modules/vows/LICENSE +20 -0
  1174. data/node_modules/jasmine-runner/node_modules/vows/Makefile +7 -0
  1175. data/node_modules/jasmine-runner/node_modules/vows/README.md +39 -0
  1176. data/node_modules/jasmine-runner/node_modules/vows/bin/vows +421 -0
  1177. data/node_modules/jasmine-runner/node_modules/vows/lib/assert/error.js +27 -0
  1178. data/node_modules/jasmine-runner/node_modules/vows/lib/assert/macros.js +180 -0
  1179. data/node_modules/jasmine-runner/node_modules/vows/lib/vows.js +195 -0
  1180. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/console.js +93 -0
  1181. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/context.js +55 -0
  1182. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/extras.js +28 -0
  1183. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/dot-matrix.js +69 -0
  1184. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/json.js +10 -0
  1185. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/silent.js +8 -0
  1186. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/spec.js +74 -0
  1187. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/watch.js +38 -0
  1188. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/reporters/xunit.js +90 -0
  1189. data/node_modules/jasmine-runner/node_modules/vows/lib/vows/suite.js +321 -0
  1190. data/node_modules/jasmine-runner/node_modules/vows/package.json +14 -0
  1191. data/node_modules/jasmine-runner/node_modules/vows/test/assert-test.js +101 -0
  1192. data/node_modules/jasmine-runner/node_modules/vows/test/vows-test.js +373 -0
  1193. data/node_modules/jasmine-runner/node_modules/webworker/.gitignore +2 -0
  1194. data/node_modules/jasmine-runner/node_modules/webworker/LICENSE +27 -0
  1195. data/node_modules/jasmine-runner/node_modules/webworker/Makefile +15 -0
  1196. data/node_modules/jasmine-runner/node_modules/webworker/README.md +74 -0
  1197. data/node_modules/jasmine-runner/node_modules/webworker/docs/design.md +103 -0
  1198. data/node_modules/jasmine-runner/node_modules/webworker/examples/prefork/README.md +1 -0
  1199. data/node_modules/jasmine-runner/node_modules/webworker/examples/prefork/master.js +12 -0
  1200. data/node_modules/jasmine-runner/node_modules/webworker/examples/prefork/worker.js +20 -0
  1201. data/node_modules/jasmine-runner/node_modules/webworker/lib/webworker-child.js +173 -0
  1202. data/node_modules/jasmine-runner/node_modules/webworker/lib/webworker-util.js +185 -0
  1203. data/node_modules/jasmine-runner/node_modules/webworker/lib/webworker.js +304 -0
  1204. data/node_modules/jasmine-runner/node_modules/webworker/lib/ws.js +118 -0
  1205. data/node_modules/jasmine-runner/node_modules/webworker/lib/ws/connection.js +408 -0
  1206. data/node_modules/jasmine-runner/node_modules/webworker/lib/ws/manager.js +98 -0
  1207. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/LICENSE +27 -0
  1208. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/Makefile +8 -0
  1209. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/README.md +41 -0
  1210. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/examples/client-unix.js +12 -0
  1211. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/examples/client.js +10 -0
  1212. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/examples/server-unix.js +13 -0
  1213. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/lib/websocket.js +516 -0
  1214. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/package.json +22 -0
  1215. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-basic.js +63 -0
  1216. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-readonly-attrs.js +44 -0
  1217. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-ready-state.js +23 -0
  1218. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-unix-send-fd.js +63 -0
  1219. data/node_modules/jasmine-runner/node_modules/webworker/node_modules/websocket-client/test/test-unix-sockets.js +46 -0
  1220. data/node_modules/jasmine-runner/node_modules/webworker/package.json +25 -0
  1221. data/node_modules/jasmine-runner/node_modules/webworker/test/test-error.js +24 -0
  1222. data/node_modules/jasmine-runner/node_modules/webworker/test/test-fd.js +32 -0
  1223. data/node_modules/jasmine-runner/node_modules/webworker/test/test-simple.js +36 -0
  1224. data/node_modules/jasmine-runner/node_modules/webworker/test/workers/error.js +6 -0
  1225. data/node_modules/jasmine-runner/node_modules/webworker/test/workers/fd.js +17 -0
  1226. data/node_modules/jasmine-runner/node_modules/webworker/test/workers/simple.js +15 -0
  1227. data/node_modules/jasmine-runner/package.json +22 -0
  1228. data/node_modules/jasmine-runner/spec/ConsoleLoggerSpec.js +1 -0
  1229. data/node_modules/jasmine-runner/spec/ServerSpec.js +42 -0
  1230. data/node_modules/jasmine-runner/spec/TestRunner.js +72 -0
  1231. data/node_modules/jasmine-runner/spec/file.worker +8 -0
  1232. data/node_modules/jasmine-runner/spec/temp/spec/foo.spec.js +0 -0
  1233. data/node_modules/jasmine-runner/spec/temp/src/foo.hs +1 -0
  1234. data/node_modules/uglify-js/.gitignore +4 -0
  1235. data/node_modules/uglify-js/README.html +1026 -0
  1236. data/node_modules/uglify-js/README.org +571 -0
  1237. data/node_modules/uglify-js/bin/uglifyjs +317 -0
  1238. data/node_modules/uglify-js/docstyle.css +75 -0
  1239. data/node_modules/uglify-js/lib/object-ast.js +75 -0
  1240. data/node_modules/uglify-js/lib/parse-js.js +1339 -0
  1241. data/node_modules/uglify-js/lib/process.js +2001 -0
  1242. data/node_modules/uglify-js/lib/squeeze-more.js +51 -0
  1243. data/node_modules/uglify-js/package.json +24 -0
  1244. data/node_modules/uglify-js/package.json~ +24 -0
  1245. data/node_modules/uglify-js/test/beautify.js +28 -0
  1246. data/node_modules/uglify-js/test/testparser.js +403 -0
  1247. data/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  1248. data/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  1249. data/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  1250. data/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  1251. data/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  1252. data/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  1253. data/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  1254. data/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  1255. data/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  1256. data/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  1257. data/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  1258. data/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  1259. data/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  1260. data/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  1261. data/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  1262. data/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  1263. data/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  1264. data/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  1265. data/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  1266. data/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  1267. data/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  1268. data/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  1269. data/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  1270. data/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  1271. data/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  1272. data/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  1273. data/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  1274. data/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  1275. data/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  1276. data/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  1277. data/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  1278. data/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  1279. data/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  1280. data/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  1281. data/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  1282. data/node_modules/uglify-js/test/unit/compress/expected/null_string.js +1 -0
  1283. data/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  1284. data/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  1285. data/node_modules/uglify-js/test/unit/compress/expected/whitespace.js +1 -0
  1286. data/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  1287. data/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  1288. data/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  1289. data/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  1290. data/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  1291. data/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  1292. data/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  1293. data/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  1294. data/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  1295. data/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  1296. data/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  1297. data/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  1298. data/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  1299. data/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  1300. data/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  1301. data/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  1302. data/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  1303. data/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  1304. data/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  1305. data/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  1306. data/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  1307. data/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  1308. data/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  1309. data/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  1310. data/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  1311. data/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  1312. data/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  1313. data/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  1314. data/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  1315. data/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  1316. data/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  1317. data/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  1318. data/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  1319. data/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  1320. data/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  1321. data/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  1322. data/node_modules/uglify-js/test/unit/compress/test/null_string.js +1 -0
  1323. data/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  1324. data/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  1325. data/node_modules/uglify-js/test/unit/compress/test/whitespace.js +21 -0
  1326. data/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  1327. data/node_modules/uglify-js/test/unit/scripts.js +55 -0
  1328. data/node_modules/uglify-js/uglify-js.js +17 -0
  1329. data/node_modules/uglifycss/README.md +21 -0
  1330. data/node_modules/uglifycss/index.js +26 -0
  1331. data/node_modules/uglifycss/package.json +15 -0
  1332. data/node_modules/uglifycss/test.js +43 -0
  1333. data/node_modules/uglifycss/tests.yui.js +42 -0
  1334. data/node_modules/uglifycss/uglifycss +127 -0
  1335. data/node_modules/uglifycss/uglifycss-lib.js +461 -0
  1336. metadata +1383 -0
@@ -0,0 +1,3321 @@
1
+ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
+ /****************************************************************
3
+ *
4
+ * The author of this software is David M. Gay.
5
+ *
6
+ * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
7
+ *
8
+ * Permission to use, copy, modify, and distribute this software for any
9
+ * purpose without fee is hereby granted, provided that this entire notice
10
+ * is included in all copies of any software which is or includes a copy
11
+ * or modification of this software and in all copies of the supporting
12
+ * documentation for such software.
13
+ *
14
+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
15
+ * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
16
+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
17
+ * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
18
+ *
19
+ ***************************************************************/
20
+
21
+ /* Please send bug reports to David M. Gay (dmg at acm dot org,
22
+ * with " at " changed at "@" and " dot " changed to "."). */
23
+
24
+ /* On a machine with IEEE extended-precision registers, it is
25
+ * necessary to specify double-precision (53-bit) rounding precision
26
+ * before invoking strtod or dtoa. If the machine uses (the equivalent
27
+ * of) Intel 80x87 arithmetic, the call
28
+ * _control87(PC_53, MCW_PC);
29
+ * does this with many compilers. Whether this or another call is
30
+ * appropriate depends on the compiler; for this to work, it may be
31
+ * necessary to #include "float.h" or another system-dependent header
32
+ * file.
33
+ */
34
+
35
+ /* strtod for IEEE-, VAX-, and IBM-arithmetic machines.
36
+ *
37
+ * This strtod returns a nearest machine number to the input decimal
38
+ * string (or sets errno to ERANGE). With IEEE arithmetic, ties are
39
+ * broken by the IEEE round-even rule. Otherwise ties are broken by
40
+ * biased rounding (add half and chop).
41
+ *
42
+ * Inspired loosely by William D. Clinger's paper "How to Read Floating
43
+ * Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101].
44
+ *
45
+ * Modifications:
46
+ *
47
+ * 1. We only require IEEE, IBM, or VAX double-precision
48
+ * arithmetic (not IEEE double-extended).
49
+ * 2. We get by with floating-point arithmetic in a case that
50
+ * Clinger missed -- when we're computing d * 10^n
51
+ * for a small integer d and the integer n is not too
52
+ * much larger than 22 (the maximum integer k for which
53
+ * we can represent 10^k exactly), we may be able to
54
+ * compute (d*10^k) * 10^(e-k) with just one roundoff.
55
+ * 3. Rather than a bit-at-a-time adjustment of the binary
56
+ * result in the hard case, we use floating-point
57
+ * arithmetic to determine the adjustment to within
58
+ * one bit; only in really hard cases do we need to
59
+ * compute a second residual.
60
+ * 4. Because of 3., we don't need a large table of powers of 10
61
+ * for ten-to-e (just some small tables, e.g. of 10^k
62
+ * for 0 <= k <= 22).
63
+ */
64
+
65
+ /*
66
+ * #define IEEE_8087 for IEEE-arithmetic machines where the least
67
+ * significant byte has the lowest address.
68
+ * #define IEEE_MC68k for IEEE-arithmetic machines where the most
69
+ * significant byte has the lowest address.
70
+ * #define Long int on machines with 32-bit ints and 64-bit longs.
71
+ * #define IBM for IBM mainframe-style floating-point arithmetic.
72
+ * #define VAX for VAX-style floating-point arithmetic (D_floating).
73
+ * #define No_leftright to omit left-right logic in fast floating-point
74
+ * computation of dtoa.
75
+ * #define Honor_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3
76
+ * and strtod and dtoa should round accordingly.
77
+ * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3
78
+ * and Honor_FLT_ROUNDS is not #defined.
79
+ * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines
80
+ * that use extended-precision instructions to compute rounded
81
+ * products and quotients) with IBM.
82
+ * #define ROUND_BIASED for IEEE-format with biased rounding.
83
+ * #define Inaccurate_Divide for IEEE-format with correctly rounded
84
+ * products but inaccurate quotients, e.g., for Intel i860.
85
+ * #define NO_LONG_LONG on machines that do not have a "long long"
86
+ * integer type (of >= 64 bits). On such machines, you can
87
+ * #define Just_16 to store 16 bits per 32-bit Long when doing
88
+ * high-precision integer arithmetic. Whether this speeds things
89
+ * up or slows things down depends on the machine and the number
90
+ * being converted. If long long is available and the name is
91
+ * something other than "long long", #define Llong to be the name,
92
+ * and if "unsigned Llong" does not work as an unsigned version of
93
+ * Llong, #define #ULLong to be the corresponding unsigned type.
94
+ * #define KR_headers for old-style C function headers.
95
+ * #define Bad_float_h if your system lacks a float.h or if it does not
96
+ * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,
97
+ * FLT_RADIX, FLT_ROUNDS, and DBL_MAX.
98
+ * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)
99
+ * if memory is available and otherwise does something you deem
100
+ * appropriate. If MALLOC is undefined, malloc will be invoked
101
+ * directly -- and assumed always to succeed.
102
+ * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making
103
+ * memory allocations from a private pool of memory when possible.
104
+ * When used, the private pool is PRIVATE_MEM bytes long: 2304 bytes,
105
+ * unless #defined to be a different length. This default length
106
+ * suffices to get rid of MALLOC calls except for unusual cases,
107
+ * such as decimal-to-binary conversion of a very long string of
108
+ * digits. The longest string dtoa can return is about 751 bytes
109
+ * long. For conversions by strtod of strings of 800 digits and
110
+ * all dtoa conversions in single-threaded executions with 8-byte
111
+ * pointers, PRIVATE_MEM >= 7400 appears to suffice; with 4-byte
112
+ * pointers, PRIVATE_MEM >= 7112 appears adequate.
113
+ * #define NO_INFNAN_CHECK if you do not wish to have INFNAN_CHECK
114
+ * #defined automatically on IEEE systems. On such systems,
115
+ * when INFNAN_CHECK is #defined, strtod checks
116
+ * for Infinity and NaN (case insensitively). On some systems
117
+ * (e.g., some HP systems), it may be necessary to #define NAN_WORD0
118
+ * appropriately -- to the most significant word of a quiet NaN.
119
+ * (On HP Series 700/800 machines, -DNAN_WORD0=0x7ff40000 works.)
120
+ * When INFNAN_CHECK is #defined and No_Hex_NaN is not #defined,
121
+ * strtod also accepts (case insensitively) strings of the form
122
+ * NaN(x), where x is a string of hexadecimal digits and spaces;
123
+ * if there is only one string of hexadecimal digits, it is taken
124
+ * for the 52 fraction bits of the resulting NaN; if there are two
125
+ * or more strings of hex digits, the first is for the high 20 bits,
126
+ * the second and subsequent for the low 32 bits, with intervening
127
+ * white space ignored; but if this results in none of the 52
128
+ * fraction bits being on (an IEEE Infinity symbol), then NAN_WORD0
129
+ * and NAN_WORD1 are used instead.
130
+ * #define MULTIPLE_THREADS if the system offers preemptively scheduled
131
+ * multiple threads. In this case, you must provide (or suitably
132
+ * #define) two locks, acquired by ACQUIRE_DTOA_LOCK(n) and freed
133
+ * by FREE_DTOA_LOCK(n) for n = 0 or 1. (The second lock, accessed
134
+ * in pow5mult, ensures lazy evaluation of only one copy of high
135
+ * powers of 5; omitting this lock would introduce a small
136
+ * probability of wasting memory, but would otherwise be harmless.)
137
+ * You must also invoke freedtoa(s) to free the value s returned by
138
+ * dtoa. You may do so whether or not MULTIPLE_THREADS is #defined.
139
+ * #define NO_IEEE_Scale to disable new (Feb. 1997) logic in strtod that
140
+ * avoids underflows on inputs whose result does not underflow.
141
+ * If you #define NO_IEEE_Scale on a machine that uses IEEE-format
142
+ * floating-point numbers and flushes underflows to zero rather
143
+ * than implementing gradual underflow, then you must also #define
144
+ * Sudden_Underflow.
145
+ * #define USE_LOCALE to use the current locale's decimal_point value.
146
+ * #define SET_INEXACT if IEEE arithmetic is being used and extra
147
+ * computation should be done to set the inexact flag when the
148
+ * result is inexact and avoid setting inexact when the result
149
+ * is exact. In this case, dtoa.c must be compiled in
150
+ * an environment, perhaps provided by #include "dtoa.c" in a
151
+ * suitable wrapper, that defines two functions,
152
+ * int get_inexact(void);
153
+ * void clear_inexact(void);
154
+ * such that get_inexact() returns a nonzero value if the
155
+ * inexact bit is already set, and clear_inexact() sets the
156
+ * inexact bit to 0. When SET_INEXACT is #defined, strtod
157
+ * also does extra computations to set the underflow and overflow
158
+ * flags when appropriate (i.e., when the result is tiny and
159
+ * inexact or when it is a numeric value rounded to +-infinity).
160
+ * #define NO_ERRNO if strtod should not assign errno = ERANGE when
161
+ * the result overflows to +-Infinity or underflows to 0.
162
+ */
163
+
164
+ #ifndef Long
165
+ #define Long long
166
+ #endif
167
+ #ifndef ULong
168
+ typedef unsigned Long ULong;
169
+ #endif
170
+
171
+ #ifdef DEBUG
172
+ #include "stdio.h"
173
+ #define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);}
174
+ #endif
175
+
176
+ #include "stdlib.h"
177
+ #include "string.h"
178
+
179
+ #ifdef USE_LOCALE
180
+ #include "locale.h"
181
+ #endif
182
+
183
+ #ifdef MALLOC
184
+ #ifdef KR_headers
185
+ extern char *MALLOC();
186
+ #else
187
+ extern void *MALLOC(size_t);
188
+ #endif
189
+ #else
190
+ #define MALLOC malloc
191
+ #endif
192
+
193
+ #ifndef Omit_Private_Memory
194
+ #ifndef PRIVATE_MEM
195
+ #define PRIVATE_MEM 2304
196
+ #endif
197
+ #define PRIVATE_mem ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double))
198
+ static double private_mem[PRIVATE_mem], *pmem_next = private_mem;
199
+ #endif
200
+
201
+ #undef IEEE_Arith
202
+ #undef Avoid_Underflow
203
+ #ifdef IEEE_MC68k
204
+ #define IEEE_Arith
205
+ #endif
206
+ #ifdef IEEE_8087
207
+ #define IEEE_Arith
208
+ #endif
209
+
210
+ #ifdef IEEE_Arith
211
+ #ifndef NO_INFNAN_CHECK
212
+ #undef INFNAN_CHECK
213
+ #define INFNAN_CHECK
214
+ #endif
215
+ #else
216
+ #undef INFNAN_CHECK
217
+ #endif
218
+
219
+ #include "errno.h"
220
+
221
+ #ifdef Bad_float_h
222
+
223
+ #ifdef IEEE_Arith
224
+ #define DBL_DIG 15
225
+ #define DBL_MAX_10_EXP 308
226
+ #define DBL_MAX_EXP 1024
227
+ #define FLT_RADIX 2
228
+ #endif /*IEEE_Arith*/
229
+
230
+ #ifdef IBM
231
+ #define DBL_DIG 16
232
+ #define DBL_MAX_10_EXP 75
233
+ #define DBL_MAX_EXP 63
234
+ #define FLT_RADIX 16
235
+ #define DBL_MAX 7.2370055773322621e+75
236
+ #endif
237
+
238
+ #ifdef VAX
239
+ #define DBL_DIG 16
240
+ #define DBL_MAX_10_EXP 38
241
+ #define DBL_MAX_EXP 127
242
+ #define FLT_RADIX 2
243
+ #define DBL_MAX 1.7014118346046923e+38
244
+ #endif
245
+
246
+ #ifndef LONG_MAX
247
+ #define LONG_MAX 2147483647
248
+ #endif
249
+
250
+ #else /* ifndef Bad_float_h */
251
+ #include "float.h"
252
+ #endif /* Bad_float_h */
253
+
254
+ #ifndef __MATH_H__
255
+ #include "math.h"
256
+ #endif
257
+
258
+ #ifdef __cplusplus
259
+ extern "C" {
260
+ #endif
261
+
262
+ #ifndef CONST
263
+ #ifdef KR_headers
264
+ #define CONST /* blank */
265
+ #else
266
+ #define CONST const
267
+ #endif
268
+ #endif
269
+
270
+ #if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1
271
+ Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined.
272
+ #endif
273
+
274
+ typedef union { double d; ULong L[2]; } U;
275
+
276
+ #define dval(x) ((x).d)
277
+ #ifdef IEEE_8087
278
+ #define word0(x) ((x).L[1])
279
+ #define word1(x) ((x).L[0])
280
+ #else
281
+ #define word0(x) ((x).L[0])
282
+ #define word1(x) ((x).L[1])
283
+ #endif
284
+
285
+ /* The following definition of Storeinc is appropriate for MIPS processors.
286
+ * An alternative that might be better on some machines is
287
+ * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
288
+ */
289
+ #if defined(IEEE_8087) + defined(VAX)
290
+ #define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \
291
+ ((unsigned short *)a)[0] = (unsigned short)c, a++)
292
+ #else
293
+ #define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \
294
+ ((unsigned short *)a)[1] = (unsigned short)c, a++)
295
+ #endif
296
+
297
+ /* #define P DBL_MANT_DIG */
298
+ /* Ten_pmax = floor(P*log(2)/log(5)) */
299
+ /* Bletch = (highest power of 2 < DBL_MAX_10_EXP) / 16 */
300
+ /* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */
301
+ /* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */
302
+
303
+ #ifdef IEEE_Arith
304
+ #define Exp_shift 20
305
+ #define Exp_shift1 20
306
+ #define Exp_msk1 0x100000
307
+ #define Exp_msk11 0x100000
308
+ #define Exp_mask 0x7ff00000
309
+ #define P 53
310
+ #define Bias 1023
311
+ #define Emin (-1022)
312
+ #define Exp_1 0x3ff00000
313
+ #define Exp_11 0x3ff00000
314
+ #define Ebits 11
315
+ #define Frac_mask 0xfffff
316
+ #define Frac_mask1 0xfffff
317
+ #define Ten_pmax 22
318
+ #define Bletch 0x10
319
+ #define Bndry_mask 0xfffff
320
+ #define Bndry_mask1 0xfffff
321
+ #define LSB 1
322
+ #define Sign_bit 0x80000000
323
+ #define Log2P 1
324
+ #define Tiny0 0
325
+ #define Tiny1 1
326
+ #define Quick_max 14
327
+ #define Int_max 14
328
+ #ifndef NO_IEEE_Scale
329
+ #define Avoid_Underflow
330
+ #ifdef Flush_Denorm /* debugging option */
331
+ #undef Sudden_Underflow
332
+ #endif
333
+ #endif
334
+
335
+ #ifndef Flt_Rounds
336
+ #ifdef FLT_ROUNDS
337
+ #define Flt_Rounds FLT_ROUNDS
338
+ #else
339
+ #define Flt_Rounds 1
340
+ #endif
341
+ #endif /*Flt_Rounds*/
342
+
343
+ #ifdef Honor_FLT_ROUNDS
344
+ #define Rounding rounding
345
+ #undef Check_FLT_ROUNDS
346
+ #define Check_FLT_ROUNDS
347
+ #else
348
+ #define Rounding Flt_Rounds
349
+ #endif
350
+
351
+ #else /* ifndef IEEE_Arith */
352
+ #undef Check_FLT_ROUNDS
353
+ #undef Honor_FLT_ROUNDS
354
+ #undef SET_INEXACT
355
+ #undef Sudden_Underflow
356
+ #define Sudden_Underflow
357
+ #ifdef IBM
358
+ #undef Flt_Rounds
359
+ #define Flt_Rounds 0
360
+ #define Exp_shift 24
361
+ #define Exp_shift1 24
362
+ #define Exp_msk1 0x1000000
363
+ #define Exp_msk11 0x1000000
364
+ #define Exp_mask 0x7f000000
365
+ #define P 14
366
+ #define Bias 65
367
+ #define Exp_1 0x41000000
368
+ #define Exp_11 0x41000000
369
+ #define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */
370
+ #define Frac_mask 0xffffff
371
+ #define Frac_mask1 0xffffff
372
+ #define Bletch 4
373
+ #define Ten_pmax 22
374
+ #define Bndry_mask 0xefffff
375
+ #define Bndry_mask1 0xffffff
376
+ #define LSB 1
377
+ #define Sign_bit 0x80000000
378
+ #define Log2P 4
379
+ #define Tiny0 0x100000
380
+ #define Tiny1 0
381
+ #define Quick_max 14
382
+ #define Int_max 15
383
+ #else /* VAX */
384
+ #undef Flt_Rounds
385
+ #define Flt_Rounds 1
386
+ #define Exp_shift 23
387
+ #define Exp_shift1 7
388
+ #define Exp_msk1 0x80
389
+ #define Exp_msk11 0x800000
390
+ #define Exp_mask 0x7f80
391
+ #define P 56
392
+ #define Bias 129
393
+ #define Exp_1 0x40800000
394
+ #define Exp_11 0x4080
395
+ #define Ebits 8
396
+ #define Frac_mask 0x7fffff
397
+ #define Frac_mask1 0xffff007f
398
+ #define Ten_pmax 24
399
+ #define Bletch 2
400
+ #define Bndry_mask 0xffff007f
401
+ #define Bndry_mask1 0xffff007f
402
+ #define LSB 0x10000
403
+ #define Sign_bit 0x8000
404
+ #define Log2P 1
405
+ #define Tiny0 0x80
406
+ #define Tiny1 0
407
+ #define Quick_max 15
408
+ #define Int_max 15
409
+ #endif /* IBM, VAX */
410
+ #endif /* IEEE_Arith */
411
+
412
+ #ifndef IEEE_Arith
413
+ #define ROUND_BIASED
414
+ #endif
415
+
416
+ #ifdef RND_PRODQUOT
417
+ #define rounded_product(a,b) a = rnd_prod(a, b)
418
+ #define rounded_quotient(a,b) a = rnd_quot(a, b)
419
+ #ifdef KR_headers
420
+ extern double rnd_prod(), rnd_quot();
421
+ #else
422
+ extern double rnd_prod(double, double), rnd_quot(double, double);
423
+ #endif
424
+ #else
425
+ #define rounded_product(a,b) a *= b
426
+ #define rounded_quotient(a,b) a /= b
427
+ #endif
428
+
429
+ #define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))
430
+ #define Big1 0xffffffff
431
+
432
+ #ifndef Pack_32
433
+ #define Pack_32
434
+ #endif
435
+
436
+ #ifdef KR_headers
437
+ #define FFFFFFFF ((((unsigned long)0xffff)<<16)|(unsigned long)0xffff)
438
+ #else
439
+ #define FFFFFFFF 0xffffffffUL
440
+ #endif
441
+
442
+ #ifdef NO_LONG_LONG
443
+ #undef ULLong
444
+ #ifdef Just_16
445
+ #undef Pack_32
446
+ /* When Pack_32 is not defined, we store 16 bits per 32-bit Long.
447
+ * This makes some inner loops simpler and sometimes saves work
448
+ * during multiplications, but it often seems to make things slightly
449
+ * slower. Hence the default is now to store 32 bits per Long.
450
+ */
451
+ #endif
452
+ #else /* long long available */
453
+ #ifndef Llong
454
+ #define Llong long long
455
+ #endif
456
+ #ifndef ULLong
457
+ #define ULLong unsigned Llong
458
+ #endif
459
+ #endif /* NO_LONG_LONG */
460
+
461
+ #ifndef MULTIPLE_THREADS
462
+ #define ACQUIRE_DTOA_LOCK(n) /*nothing*/
463
+ #define FREE_DTOA_LOCK(n) /*nothing*/
464
+ #endif
465
+
466
+ #define Kmax 15
467
+
468
+ struct
469
+ Bigint {
470
+ struct Bigint *next;
471
+ int k, maxwds, sign, wds;
472
+ ULong x[1];
473
+ };
474
+
475
+ typedef struct Bigint Bigint;
476
+
477
+ static Bigint *freelist[Kmax+1];
478
+
479
+ static Bigint *
480
+ Balloc
481
+ #ifdef KR_headers
482
+ (k) int k;
483
+ #else
484
+ (int k)
485
+ #endif
486
+ {
487
+ int x;
488
+ Bigint *rv;
489
+ #ifndef Omit_Private_Memory
490
+ size_t len;
491
+ #endif
492
+
493
+ ACQUIRE_DTOA_LOCK(0);
494
+ if ((rv = freelist[k])) {
495
+ freelist[k] = rv->next;
496
+ }
497
+ else {
498
+ x = 1 << k;
499
+ #ifdef Omit_Private_Memory
500
+ rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
501
+ #else
502
+ len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
503
+ /sizeof(double);
504
+ if (pmem_next - private_mem + len <= PRIVATE_mem) {
505
+ rv = (Bigint*)pmem_next;
506
+ pmem_next += len;
507
+ }
508
+ else
509
+ rv = (Bigint*)MALLOC(len*sizeof(double));
510
+ #endif
511
+ rv->k = k;
512
+ rv->maxwds = x;
513
+ }
514
+ FREE_DTOA_LOCK(0);
515
+ rv->sign = rv->wds = 0;
516
+ return rv;
517
+ }
518
+
519
+ static void
520
+ Bfree
521
+ #ifdef KR_headers
522
+ (v) Bigint *v;
523
+ #else
524
+ (Bigint *v)
525
+ #endif
526
+ {
527
+ if (v) {
528
+ ACQUIRE_DTOA_LOCK(0);
529
+ v->next = freelist[v->k];
530
+ freelist[v->k] = v;
531
+ FREE_DTOA_LOCK(0);
532
+ }
533
+ }
534
+
535
+ #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
536
+ y->wds*sizeof(Long) + 2*sizeof(int))
537
+
538
+ static Bigint *
539
+ multadd
540
+ #ifdef KR_headers
541
+ (b, m, a) Bigint *b; int m, a;
542
+ #else
543
+ (Bigint *b, int m, int a) /* multiply by m and add a */
544
+ #endif
545
+ {
546
+ int i, wds;
547
+ #ifdef ULLong
548
+ ULong *x;
549
+ ULLong carry, y;
550
+ #else
551
+ ULong carry, *x, y;
552
+ #ifdef Pack_32
553
+ ULong xi, z;
554
+ #endif
555
+ #endif
556
+ Bigint *b1;
557
+
558
+ wds = b->wds;
559
+ x = b->x;
560
+ i = 0;
561
+ carry = a;
562
+ do {
563
+ #ifdef ULLong
564
+ y = *x * (ULLong)m + carry;
565
+ carry = y >> 32;
566
+ *x++ = (ULong) y & FFFFFFFF;
567
+ #else
568
+ #ifdef Pack_32
569
+ xi = *x;
570
+ y = (xi & 0xffff) * m + carry;
571
+ z = (xi >> 16) * m + (y >> 16);
572
+ carry = z >> 16;
573
+ *x++ = (z << 16) + (y & 0xffff);
574
+ #else
575
+ y = *x * m + carry;
576
+ carry = y >> 16;
577
+ *x++ = y & 0xffff;
578
+ #endif
579
+ #endif
580
+ }
581
+ while(++i < wds);
582
+ if (carry) {
583
+ if (wds >= b->maxwds) {
584
+ b1 = Balloc(b->k+1);
585
+ Bcopy(b1, b);
586
+ Bfree(b);
587
+ b = b1;
588
+ }
589
+ b->x[wds++] = (ULong) carry;
590
+ b->wds = wds;
591
+ }
592
+ return b;
593
+ }
594
+
595
+ static Bigint *
596
+ s2b
597
+ #ifdef KR_headers
598
+ (s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9;
599
+ #else
600
+ (CONST char *s, int nd0, int nd, ULong y9)
601
+ #endif
602
+ {
603
+ Bigint *b;
604
+ int i, k;
605
+ Long x, y;
606
+
607
+ x = (nd + 8) / 9;
608
+ for(k = 0, y = 1; x > y; y <<= 1, k++) ;
609
+ #ifdef Pack_32
610
+ b = Balloc(k);
611
+ b->x[0] = y9;
612
+ b->wds = 1;
613
+ #else
614
+ b = Balloc(k+1);
615
+ b->x[0] = y9 & 0xffff;
616
+ b->wds = (b->x[1] = y9 >> 16) ? 2 : 1;
617
+ #endif
618
+
619
+ i = 9;
620
+ if (9 < nd0) {
621
+ s += 9;
622
+ do b = multadd(b, 10, *s++ - '0');
623
+ while(++i < nd0);
624
+ s++;
625
+ }
626
+ else
627
+ s += 10;
628
+ for(; i < nd; i++)
629
+ b = multadd(b, 10, *s++ - '0');
630
+ return b;
631
+ }
632
+
633
+ static int
634
+ hi0bits
635
+ #ifdef KR_headers
636
+ (x) register ULong x;
637
+ #else
638
+ (register ULong x)
639
+ #endif
640
+ {
641
+ register int k = 0;
642
+
643
+ if (!(x & 0xffff0000)) {
644
+ k = 16;
645
+ x <<= 16;
646
+ }
647
+ if (!(x & 0xff000000)) {
648
+ k += 8;
649
+ x <<= 8;
650
+ }
651
+ if (!(x & 0xf0000000)) {
652
+ k += 4;
653
+ x <<= 4;
654
+ }
655
+ if (!(x & 0xc0000000)) {
656
+ k += 2;
657
+ x <<= 2;
658
+ }
659
+ if (!(x & 0x80000000)) {
660
+ k++;
661
+ if (!(x & 0x40000000))
662
+ return 32;
663
+ }
664
+ return k;
665
+ }
666
+
667
+ static int
668
+ lo0bits
669
+ #ifdef KR_headers
670
+ (y) ULong *y;
671
+ #else
672
+ (ULong *y)
673
+ #endif
674
+ {
675
+ register int k;
676
+ register ULong x = *y;
677
+
678
+ if (x & 7) {
679
+ if (x & 1)
680
+ return 0;
681
+ if (x & 2) {
682
+ *y = x >> 1;
683
+ return 1;
684
+ }
685
+ *y = x >> 2;
686
+ return 2;
687
+ }
688
+ k = 0;
689
+ if (!(x & 0xffff)) {
690
+ k = 16;
691
+ x >>= 16;
692
+ }
693
+ if (!(x & 0xff)) {
694
+ k += 8;
695
+ x >>= 8;
696
+ }
697
+ if (!(x & 0xf)) {
698
+ k += 4;
699
+ x >>= 4;
700
+ }
701
+ if (!(x & 0x3)) {
702
+ k += 2;
703
+ x >>= 2;
704
+ }
705
+ if (!(x & 1)) {
706
+ k++;
707
+ x >>= 1;
708
+ if (!x)
709
+ return 32;
710
+ }
711
+ *y = x;
712
+ return k;
713
+ }
714
+
715
+ static Bigint *
716
+ i2b
717
+ #ifdef KR_headers
718
+ (i) int i;
719
+ #else
720
+ (int i)
721
+ #endif
722
+ {
723
+ Bigint *b;
724
+
725
+ b = Balloc(1);
726
+ b->x[0] = i;
727
+ b->wds = 1;
728
+ return b;
729
+ }
730
+
731
+ static Bigint *
732
+ mult
733
+ #ifdef KR_headers
734
+ (a, b) Bigint *a, *b;
735
+ #else
736
+ (Bigint *a, Bigint *b)
737
+ #endif
738
+ {
739
+ Bigint *c;
740
+ int k, wa, wb, wc;
741
+ ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0;
742
+ ULong y;
743
+ #ifdef ULLong
744
+ ULLong carry, z;
745
+ #else
746
+ ULong carry, z;
747
+ #ifdef Pack_32
748
+ ULong z2;
749
+ #endif
750
+ #endif
751
+
752
+ if (a->wds < b->wds) {
753
+ c = a;
754
+ a = b;
755
+ b = c;
756
+ }
757
+ k = a->k;
758
+ wa = a->wds;
759
+ wb = b->wds;
760
+ wc = wa + wb;
761
+ if (wc > a->maxwds)
762
+ k++;
763
+ c = Balloc(k);
764
+ for(x = c->x, xa = x + wc; x < xa; x++)
765
+ *x = 0;
766
+ xa = a->x;
767
+ xae = xa + wa;
768
+ xb = b->x;
769
+ xbe = xb + wb;
770
+ xc0 = c->x;
771
+ #ifdef ULLong
772
+ for(; xb < xbe; xc0++) {
773
+ if ((y = *xb++)) {
774
+ x = xa;
775
+ xc = xc0;
776
+ carry = 0;
777
+ do {
778
+ z = *x++ * (ULLong)y + *xc + carry;
779
+ carry = z >> 32;
780
+ *xc++ = (ULong) z & FFFFFFFF;
781
+ }
782
+ while(x < xae);
783
+ *xc = (ULong) carry;
784
+ }
785
+ }
786
+ #else
787
+ #ifdef Pack_32
788
+ for(; xb < xbe; xb++, xc0++) {
789
+ if (y = *xb & 0xffff) {
790
+ x = xa;
791
+ xc = xc0;
792
+ carry = 0;
793
+ do {
794
+ z = (*x & 0xffff) * y + (*xc & 0xffff) + carry;
795
+ carry = z >> 16;
796
+ z2 = (*x++ >> 16) * y + (*xc >> 16) + carry;
797
+ carry = z2 >> 16;
798
+ Storeinc(xc, z2, z);
799
+ }
800
+ while(x < xae);
801
+ *xc = carry;
802
+ }
803
+ if (y = *xb >> 16) {
804
+ x = xa;
805
+ xc = xc0;
806
+ carry = 0;
807
+ z2 = *xc;
808
+ do {
809
+ z = (*x & 0xffff) * y + (*xc >> 16) + carry;
810
+ carry = z >> 16;
811
+ Storeinc(xc, z, z2);
812
+ z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry;
813
+ carry = z2 >> 16;
814
+ }
815
+ while(x < xae);
816
+ *xc = z2;
817
+ }
818
+ }
819
+ #else
820
+ for(; xb < xbe; xc0++) {
821
+ if (y = *xb++) {
822
+ x = xa;
823
+ xc = xc0;
824
+ carry = 0;
825
+ do {
826
+ z = *x++ * y + *xc + carry;
827
+ carry = z >> 16;
828
+ *xc++ = z & 0xffff;
829
+ }
830
+ while(x < xae);
831
+ *xc = carry;
832
+ }
833
+ }
834
+ #endif
835
+ #endif
836
+ for(xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) ;
837
+ c->wds = wc;
838
+ return c;
839
+ }
840
+
841
+ static Bigint *p5s;
842
+
843
+ static Bigint *
844
+ pow5mult
845
+ #ifdef KR_headers
846
+ (b, k) Bigint *b; int k;
847
+ #else
848
+ (Bigint *b, int k)
849
+ #endif
850
+ {
851
+ Bigint *b1, *p5, *p51;
852
+ int i;
853
+ static int p05[3] = { 5, 25, 125 };
854
+
855
+ if ((i = k & 3))
856
+ b = multadd(b, p05[i-1], 0);
857
+
858
+ if (!(k >>= 2))
859
+ return b;
860
+ if (!(p5 = p5s)) {
861
+ /* first time */
862
+ #ifdef MULTIPLE_THREADS
863
+ ACQUIRE_DTOA_LOCK(1);
864
+ if (!(p5 = p5s)) {
865
+ p5 = p5s = i2b(625);
866
+ p5->next = 0;
867
+ }
868
+ FREE_DTOA_LOCK(1);
869
+ #else
870
+ p5 = p5s = i2b(625);
871
+ p5->next = 0;
872
+ #endif
873
+ }
874
+ for(;;) {
875
+ if (k & 1) {
876
+ b1 = mult(b, p5);
877
+ Bfree(b);
878
+ b = b1;
879
+ }
880
+ if (!(k >>= 1))
881
+ break;
882
+ if (!(p51 = p5->next)) {
883
+ #ifdef MULTIPLE_THREADS
884
+ ACQUIRE_DTOA_LOCK(1);
885
+ if (!(p51 = p5->next)) {
886
+ p51 = p5->next = mult(p5,p5);
887
+ p51->next = 0;
888
+ }
889
+ FREE_DTOA_LOCK(1);
890
+ #else
891
+ p51 = p5->next = mult(p5,p5);
892
+ p51->next = 0;
893
+ #endif
894
+ }
895
+ p5 = p51;
896
+ }
897
+ return b;
898
+ }
899
+
900
+ static Bigint *
901
+ lshift
902
+ #ifdef KR_headers
903
+ (b, k) Bigint *b; int k;
904
+ #else
905
+ (Bigint *b, int k)
906
+ #endif
907
+ {
908
+ int i, k1, n, n1;
909
+ Bigint *b1;
910
+ ULong *x, *x1, *xe, z;
911
+
912
+ #ifdef Pack_32
913
+ n = k >> 5;
914
+ #else
915
+ n = k >> 4;
916
+ #endif
917
+ k1 = b->k;
918
+ n1 = n + b->wds + 1;
919
+ for(i = b->maxwds; n1 > i; i <<= 1)
920
+ k1++;
921
+ b1 = Balloc(k1);
922
+ x1 = b1->x;
923
+ for(i = 0; i < n; i++)
924
+ *x1++ = 0;
925
+ x = b->x;
926
+ xe = x + b->wds;
927
+ #ifdef Pack_32
928
+ if (k &= 0x1f) {
929
+ k1 = 32 - k;
930
+ z = 0;
931
+ do {
932
+ *x1++ = *x << k | z;
933
+ z = *x++ >> k1;
934
+ }
935
+ while(x < xe);
936
+ if ((*x1 = z))
937
+ ++n1;
938
+ }
939
+ #else
940
+ if (k &= 0xf) {
941
+ k1 = 16 - k;
942
+ z = 0;
943
+ do {
944
+ *x1++ = *x << k & 0xffff | z;
945
+ z = *x++ >> k1;
946
+ }
947
+ while(x < xe);
948
+ if (*x1 = z)
949
+ ++n1;
950
+ }
951
+ #endif
952
+ else do
953
+ *x1++ = *x++;
954
+ while(x < xe);
955
+ b1->wds = n1 - 1;
956
+ Bfree(b);
957
+ return b1;
958
+ }
959
+
960
+ static int
961
+ cmp
962
+ #ifdef KR_headers
963
+ (a, b) Bigint *a, *b;
964
+ #else
965
+ (Bigint *a, Bigint *b)
966
+ #endif
967
+ {
968
+ ULong *xa, *xa0, *xb, *xb0;
969
+ int i, j;
970
+
971
+ i = a->wds;
972
+ j = b->wds;
973
+ #ifdef DEBUG
974
+ if (i > 1 && !a->x[i-1])
975
+ Bug("cmp called with a->x[a->wds-1] == 0");
976
+ if (j > 1 && !b->x[j-1])
977
+ Bug("cmp called with b->x[b->wds-1] == 0");
978
+ #endif
979
+ if (i -= j)
980
+ return i;
981
+ xa0 = a->x;
982
+ xa = xa0 + j;
983
+ xb0 = b->x;
984
+ xb = xb0 + j;
985
+ for(;;) {
986
+ if (*--xa != *--xb)
987
+ return *xa < *xb ? -1 : 1;
988
+ if (xa <= xa0)
989
+ break;
990
+ }
991
+ return 0;
992
+ }
993
+
994
+ static Bigint *
995
+ diff
996
+ #ifdef KR_headers
997
+ (a, b) Bigint *a, *b;
998
+ #else
999
+ (Bigint *a, Bigint *b)
1000
+ #endif
1001
+ {
1002
+ Bigint *c;
1003
+ int i, wa, wb;
1004
+ ULong *xa, *xae, *xb, *xbe, *xc;
1005
+ #ifdef ULLong
1006
+ ULLong borrow, y;
1007
+ #else
1008
+ ULong borrow, y;
1009
+ #ifdef Pack_32
1010
+ ULong z;
1011
+ #endif
1012
+ #endif
1013
+
1014
+ i = cmp(a,b);
1015
+ if (!i) {
1016
+ c = Balloc(0);
1017
+ c->wds = 1;
1018
+ c->x[0] = 0;
1019
+ return c;
1020
+ }
1021
+ if (i < 0) {
1022
+ c = a;
1023
+ a = b;
1024
+ b = c;
1025
+ i = 1;
1026
+ }
1027
+ else
1028
+ i = 0;
1029
+ c = Balloc(a->k);
1030
+ c->sign = i;
1031
+ wa = a->wds;
1032
+ xa = a->x;
1033
+ xae = xa + wa;
1034
+ wb = b->wds;
1035
+ xb = b->x;
1036
+ xbe = xb + wb;
1037
+ xc = c->x;
1038
+ borrow = 0;
1039
+ #ifdef ULLong
1040
+ do {
1041
+ y = (ULLong)*xa++ - *xb++ - borrow;
1042
+ borrow = y >> 32 & (ULong)1;
1043
+ *xc++ = (ULong) y & FFFFFFFF;
1044
+ }
1045
+ while(xb < xbe);
1046
+ while(xa < xae) {
1047
+ y = *xa++ - borrow;
1048
+ borrow = y >> 32 & (ULong)1;
1049
+ *xc++ = (ULong) y & FFFFFFFF;
1050
+ }
1051
+ #else
1052
+ #ifdef Pack_32
1053
+ do {
1054
+ y = (*xa & 0xffff) - (*xb & 0xffff) - borrow;
1055
+ borrow = (y & 0x10000) >> 16;
1056
+ z = (*xa++ >> 16) - (*xb++ >> 16) - borrow;
1057
+ borrow = (z & 0x10000) >> 16;
1058
+ Storeinc(xc, z, y);
1059
+ }
1060
+ while(xb < xbe);
1061
+ while(xa < xae) {
1062
+ y = (*xa & 0xffff) - borrow;
1063
+ borrow = (y & 0x10000) >> 16;
1064
+ z = (*xa++ >> 16) - borrow;
1065
+ borrow = (z & 0x10000) >> 16;
1066
+ Storeinc(xc, z, y);
1067
+ }
1068
+ #else
1069
+ do {
1070
+ y = *xa++ - *xb++ - borrow;
1071
+ borrow = (y & 0x10000) >> 16;
1072
+ *xc++ = y & 0xffff;
1073
+ }
1074
+ while(xb < xbe);
1075
+ while(xa < xae) {
1076
+ y = *xa++ - borrow;
1077
+ borrow = (y & 0x10000) >> 16;
1078
+ *xc++ = y & 0xffff;
1079
+ }
1080
+ #endif
1081
+ #endif
1082
+ while(!*--xc)
1083
+ wa--;
1084
+ c->wds = wa;
1085
+ return c;
1086
+ }
1087
+
1088
+ static double
1089
+ ulp
1090
+ #ifdef KR_headers
1091
+ (x) U x;
1092
+ #else
1093
+ (U x)
1094
+ #endif
1095
+ {
1096
+ register Long L;
1097
+ U a;
1098
+
1099
+ L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1;
1100
+ #ifndef Avoid_Underflow
1101
+ #ifndef Sudden_Underflow
1102
+ if (L > 0) {
1103
+ #endif
1104
+ #endif
1105
+ #ifdef IBM
1106
+ L |= Exp_msk1 >> 4;
1107
+ #endif
1108
+ word0(a) = L;
1109
+ word1(a) = 0;
1110
+ #ifndef Avoid_Underflow
1111
+ #ifndef Sudden_Underflow
1112
+ }
1113
+ else {
1114
+ L = -L >> Exp_shift;
1115
+ if (L < Exp_shift) {
1116
+ word0(a) = 0x80000 >> L;
1117
+ word1(a) = 0;
1118
+ }
1119
+ else {
1120
+ word0(a) = 0;
1121
+ L -= Exp_shift;
1122
+ word1(a) = L >= 31 ? 1 : 1 << 31 - L;
1123
+ }
1124
+ }
1125
+ #endif
1126
+ #endif
1127
+ return dval(a);
1128
+ }
1129
+
1130
+ static double
1131
+ b2d
1132
+ #ifdef KR_headers
1133
+ (a, e) Bigint *a; int *e;
1134
+ #else
1135
+ (Bigint *a, int *e)
1136
+ #endif
1137
+ {
1138
+ ULong *xa, *xa0, w, y, z;
1139
+ int k;
1140
+ U d;
1141
+ #ifdef VAX
1142
+ ULong d0, d1;
1143
+ #else
1144
+ #define d0 word0(d)
1145
+ #define d1 word1(d)
1146
+ #endif
1147
+
1148
+ xa0 = a->x;
1149
+ xa = xa0 + a->wds;
1150
+ y = *--xa;
1151
+ #ifdef DEBUG
1152
+ if (!y) Bug("zero y in b2d");
1153
+ #endif
1154
+ k = hi0bits(y);
1155
+ *e = 32 - k;
1156
+ #ifdef Pack_32
1157
+ if (k < Ebits) {
1158
+ d0 = Exp_1 | y >> (Ebits - k);
1159
+ w = xa > xa0 ? *--xa : 0;
1160
+ d1 = y << ((32-Ebits) + k) | w >> (Ebits - k);
1161
+ goto ret_d;
1162
+ }
1163
+ z = xa > xa0 ? *--xa : 0;
1164
+ if (k -= Ebits) {
1165
+ d0 = Exp_1 | y << k | z >> (32 - k);
1166
+ y = xa > xa0 ? *--xa : 0;
1167
+ d1 = z << k | y >> (32 - k);
1168
+ }
1169
+ else {
1170
+ d0 = Exp_1 | y;
1171
+ d1 = z;
1172
+ }
1173
+ #else
1174
+ if (k < Ebits + 16) {
1175
+ z = xa > xa0 ? *--xa : 0;
1176
+ d0 = Exp_1 | y << k - Ebits | z >> Ebits + 16 - k;
1177
+ w = xa > xa0 ? *--xa : 0;
1178
+ y = xa > xa0 ? *--xa : 0;
1179
+ d1 = z << k + 16 - Ebits | w << k - Ebits | y >> 16 + Ebits - k;
1180
+ goto ret_d;
1181
+ }
1182
+ z = xa > xa0 ? *--xa : 0;
1183
+ w = xa > xa0 ? *--xa : 0;
1184
+ k -= Ebits + 16;
1185
+ d0 = Exp_1 | y << k + 16 | z << k | w >> 16 - k;
1186
+ y = xa > xa0 ? *--xa : 0;
1187
+ d1 = w << k + 16 | y << k;
1188
+ #endif
1189
+ ret_d:
1190
+ #ifdef VAX
1191
+ word0(d) = d0 >> 16 | d0 << 16;
1192
+ word1(d) = d1 >> 16 | d1 << 16;
1193
+ #else
1194
+ #undef d0
1195
+ #undef d1
1196
+ #endif
1197
+ return dval(d);
1198
+ }
1199
+
1200
+ static Bigint *
1201
+ d2b
1202
+ #ifdef KR_headers
1203
+ (d, e, bits) U d; int *e, *bits;
1204
+ #else
1205
+ (U d, int *e, int *bits)
1206
+ #endif
1207
+ {
1208
+ Bigint *b;
1209
+ int de, k;
1210
+ ULong *x, y, z;
1211
+ #ifndef Sudden_Underflow
1212
+ int i;
1213
+ #endif
1214
+ #ifdef VAX
1215
+ ULong d0, d1;
1216
+ d0 = word0(d) >> 16 | word0(d) << 16;
1217
+ d1 = word1(d) >> 16 | word1(d) << 16;
1218
+ #else
1219
+ #define d0 word0(d)
1220
+ #define d1 word1(d)
1221
+ #endif
1222
+
1223
+ #ifdef Pack_32
1224
+ b = Balloc(1);
1225
+ #else
1226
+ b = Balloc(2);
1227
+ #endif
1228
+ x = b->x;
1229
+
1230
+ z = d0 & Frac_mask;
1231
+ d0 &= 0x7fffffff; /* clear sign bit, which we ignore */
1232
+ #ifdef Sudden_Underflow
1233
+ de = (int)(d0 >> Exp_shift);
1234
+ #ifndef IBM
1235
+ z |= Exp_msk11;
1236
+ #endif
1237
+ #else
1238
+ if ((de = (int)(d0 >> Exp_shift)))
1239
+ z |= Exp_msk1;
1240
+ #endif
1241
+ #ifdef Pack_32
1242
+ if ((y = d1)) {
1243
+ if ((k = lo0bits(&y))) {
1244
+ x[0] = y | z << (32 - k);
1245
+ z >>= k;
1246
+ }
1247
+ else
1248
+ x[0] = y;
1249
+ #ifndef Sudden_Underflow
1250
+ i =
1251
+ #endif
1252
+ b->wds = (x[1] = z) ? 2 : 1;
1253
+ }
1254
+ else {
1255
+ #ifdef DEBUG
1256
+ if (!z)
1257
+ Bug("Zero passed to d2b");
1258
+ #endif
1259
+ k = lo0bits(&z);
1260
+ x[0] = z;
1261
+ #ifndef Sudden_Underflow
1262
+ i =
1263
+ #endif
1264
+ b->wds = 1;
1265
+ k += 32;
1266
+ }
1267
+ #else
1268
+ if (y = d1) {
1269
+ if (k = lo0bits(&y))
1270
+ if (k >= 16) {
1271
+ x[0] = y | z << 32 - k & 0xffff;
1272
+ x[1] = z >> k - 16 & 0xffff;
1273
+ x[2] = z >> k;
1274
+ i = 2;
1275
+ }
1276
+ else {
1277
+ x[0] = y & 0xffff;
1278
+ x[1] = y >> 16 | z << 16 - k & 0xffff;
1279
+ x[2] = z >> k & 0xffff;
1280
+ x[3] = z >> k+16;
1281
+ i = 3;
1282
+ }
1283
+ else {
1284
+ x[0] = y & 0xffff;
1285
+ x[1] = y >> 16;
1286
+ x[2] = z & 0xffff;
1287
+ x[3] = z >> 16;
1288
+ i = 3;
1289
+ }
1290
+ }
1291
+ else {
1292
+ #ifdef DEBUG
1293
+ if (!z)
1294
+ Bug("Zero passed to d2b");
1295
+ #endif
1296
+ k = lo0bits(&z);
1297
+ if (k >= 16) {
1298
+ x[0] = z;
1299
+ i = 0;
1300
+ }
1301
+ else {
1302
+ x[0] = z & 0xffff;
1303
+ x[1] = z >> 16;
1304
+ i = 1;
1305
+ }
1306
+ k += 32;
1307
+ }
1308
+ while(!x[i])
1309
+ --i;
1310
+ b->wds = i + 1;
1311
+ #endif
1312
+ #ifndef Sudden_Underflow
1313
+ if (de) {
1314
+ #endif
1315
+ #ifdef IBM
1316
+ *e = (de - Bias - (P-1) << 2) + k;
1317
+ *bits = 4*P + 8 - k - hi0bits(word0(d) & Frac_mask);
1318
+ #else
1319
+ *e = de - Bias - (P-1) + k;
1320
+ *bits = P - k;
1321
+ #endif
1322
+ #ifndef Sudden_Underflow
1323
+ }
1324
+ else {
1325
+ *e = de - Bias - (P-1) + 1 + k;
1326
+ #ifdef Pack_32
1327
+ *bits = 32*i - hi0bits(x[i-1]);
1328
+ #else
1329
+ *bits = (i+2)*16 - hi0bits(x[i]);
1330
+ #endif
1331
+ }
1332
+ #endif
1333
+ return b;
1334
+ }
1335
+ #undef d0
1336
+ #undef d1
1337
+
1338
+ static double
1339
+ ratio
1340
+ #ifdef KR_headers
1341
+ (a, b) Bigint *a, *b;
1342
+ #else
1343
+ (Bigint *a, Bigint *b)
1344
+ #endif
1345
+ {
1346
+ U da, db;
1347
+ int k, ka, kb;
1348
+
1349
+ dval(da) = b2d(a, &ka);
1350
+ dval(db) = b2d(b, &kb);
1351
+ #ifdef Pack_32
1352
+ k = ka - kb + 32*(a->wds - b->wds);
1353
+ #else
1354
+ k = ka - kb + 16*(a->wds - b->wds);
1355
+ #endif
1356
+ #ifdef IBM
1357
+ if (k > 0) {
1358
+ word0(da) += (k >> 2)*Exp_msk1;
1359
+ if (k &= 3)
1360
+ dval(da) *= 1 << k;
1361
+ }
1362
+ else {
1363
+ k = -k;
1364
+ word0(db) += (k >> 2)*Exp_msk1;
1365
+ if (k &= 3)
1366
+ dval(db) *= 1 << k;
1367
+ }
1368
+ #else
1369
+ if (k > 0)
1370
+ word0(da) += k*Exp_msk1;
1371
+ else {
1372
+ k = -k;
1373
+ word0(db) += k*Exp_msk1;
1374
+ }
1375
+ #endif
1376
+ return dval(da) / dval(db);
1377
+ }
1378
+
1379
+ static CONST double
1380
+ tens[] = {
1381
+ 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
1382
+ 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
1383
+ 1e20, 1e21, 1e22
1384
+ #ifdef VAX
1385
+ , 1e23, 1e24
1386
+ #endif
1387
+ };
1388
+
1389
+ static CONST double
1390
+ #ifdef IEEE_Arith
1391
+ bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 };
1392
+ static CONST double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128,
1393
+ #ifdef Avoid_Underflow
1394
+ 9007199254740992.*9007199254740992.e-256
1395
+ /* = 2^106 * 1e-53 */
1396
+ #else
1397
+ 1e-256
1398
+ #endif
1399
+ };
1400
+ /* The factor of 2^53 in tinytens[4] helps us avoid setting the underflow */
1401
+ /* flag unnecessarily. It leads to a song and dance at the end of strtod. */
1402
+ #define Scale_Bit 0x10
1403
+ #define n_bigtens 5
1404
+ #else
1405
+ #ifdef IBM
1406
+ bigtens[] = { 1e16, 1e32, 1e64 };
1407
+ static CONST double tinytens[] = { 1e-16, 1e-32, 1e-64 };
1408
+ #define n_bigtens 3
1409
+ #else
1410
+ bigtens[] = { 1e16, 1e32 };
1411
+ static CONST double tinytens[] = { 1e-16, 1e-32 };
1412
+ #define n_bigtens 2
1413
+ #endif
1414
+ #endif
1415
+
1416
+ #ifdef INFNAN_CHECK
1417
+
1418
+ #ifndef NAN_WORD0
1419
+ #define NAN_WORD0 0x7ff80000
1420
+ #endif
1421
+
1422
+ #ifndef NAN_WORD1
1423
+ #define NAN_WORD1 0
1424
+ #endif
1425
+
1426
+ static int
1427
+ match
1428
+ #ifdef KR_headers
1429
+ (sp, t) char **sp, *t;
1430
+ #else
1431
+ (CONST char **sp, CONST char *t)
1432
+ #endif
1433
+ {
1434
+ int c, d;
1435
+ CONST char *s = *sp;
1436
+
1437
+ while((d = *t++)) {
1438
+ if ((c = *++s) >= 'A' && c <= 'Z')
1439
+ c += 'a' - 'A';
1440
+ if (c != d)
1441
+ return 0;
1442
+ }
1443
+ *sp = s + 1;
1444
+ return 1;
1445
+ }
1446
+
1447
+ #ifndef No_Hex_NaN
1448
+ static void
1449
+ hexnan
1450
+ #ifdef KR_headers
1451
+ (rvp, sp) U *rvp; CONST char **sp;
1452
+ #else
1453
+ (U *rvp, CONST char **sp)
1454
+ #endif
1455
+ {
1456
+ ULong c, x[2];
1457
+ CONST char *s;
1458
+ int havedig, udx0, xshift;
1459
+
1460
+ x[0] = x[1] = 0;
1461
+ havedig = xshift = 0;
1462
+ udx0 = 1;
1463
+ s = *sp;
1464
+ /* allow optional initial 0x or 0X */
1465
+ while((c = *(CONST unsigned char*)(s+1)) && c <= ' ')
1466
+ ++s;
1467
+ if (s[1] == '0' && (s[2] == 'x' || s[2] == 'X'))
1468
+ s += 2;
1469
+ while((c = *(CONST unsigned char*)++s)) {
1470
+ if (c >= '0' && c <= '9')
1471
+ c -= '0';
1472
+ else if (c >= 'a' && c <= 'f')
1473
+ c += 10 - 'a';
1474
+ else if (c >= 'A' && c <= 'F')
1475
+ c += 10 - 'A';
1476
+ else if (c <= ' ') {
1477
+ if (udx0 && havedig) {
1478
+ udx0 = 0;
1479
+ xshift = 1;
1480
+ }
1481
+ continue;
1482
+ }
1483
+ #ifdef GDTOA_NON_PEDANTIC_NANCHECK
1484
+ else if (/*(*/ c == ')' && havedig) {
1485
+ *sp = s + 1;
1486
+ break;
1487
+ }
1488
+ else
1489
+ return; /* invalid form: don't change *sp */
1490
+ #else
1491
+ else {
1492
+ do {
1493
+ if (/*(*/ c == ')') {
1494
+ *sp = s + 1;
1495
+ break;
1496
+ }
1497
+ } while((c = *++s));
1498
+ break;
1499
+ }
1500
+ #endif
1501
+ havedig = 1;
1502
+ if (xshift) {
1503
+ xshift = 0;
1504
+ x[0] = x[1];
1505
+ x[1] = 0;
1506
+ }
1507
+ if (udx0)
1508
+ x[0] = (x[0] << 4) | (x[1] >> 28);
1509
+ x[1] = (x[1] << 4) | c;
1510
+ }
1511
+ if ((x[0] &= 0xfffff) || x[1]) {
1512
+ word0(*rvp) = Exp_mask | x[0];
1513
+ word1(*rvp) = x[1];
1514
+ }
1515
+ }
1516
+ #endif /*No_Hex_NaN*/
1517
+ #endif /* INFNAN_CHECK */
1518
+
1519
+ static double
1520
+ _strtod
1521
+ #ifdef KR_headers
1522
+ (s00, se) CONST char *s00; char **se;
1523
+ #else
1524
+ (CONST char *s00, char **se)
1525
+ #endif
1526
+ {
1527
+ #ifdef Avoid_Underflow
1528
+ int scale;
1529
+ #endif
1530
+ int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign,
1531
+ e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;
1532
+ CONST char *s, *s0, *s1;
1533
+ double aadj, adj;
1534
+ U aadj1, rv, rv0;
1535
+ Long L;
1536
+ ULong y, z;
1537
+ Bigint *bb, *bb1, *bd, *bd0, *bs, *delta;
1538
+ #ifdef SET_INEXACT
1539
+ int inexact, oldinexact;
1540
+ #endif
1541
+ #ifdef Honor_FLT_ROUNDS
1542
+ int rounding;
1543
+ #endif
1544
+ #ifdef USE_LOCALE
1545
+ CONST char *s2;
1546
+ #endif
1547
+
1548
+ #ifdef __GNUC__
1549
+ delta = bb = bd = bs = 0;
1550
+ #endif
1551
+
1552
+ sign = nz0 = nz = 0;
1553
+ dval(rv) = 0.;
1554
+ for(s = s00;;s++) switch(*s) {
1555
+ case '-':
1556
+ sign = 1;
1557
+ /* no break */
1558
+ case '+':
1559
+ if (*++s)
1560
+ goto break2;
1561
+ /* no break */
1562
+ case 0:
1563
+ goto ret0;
1564
+ case '\t':
1565
+ case '\n':
1566
+ case '\v':
1567
+ case '\f':
1568
+ case '\r':
1569
+ case ' ':
1570
+ continue;
1571
+ default:
1572
+ goto break2;
1573
+ }
1574
+ break2:
1575
+ if (*s == '0') {
1576
+ nz0 = 1;
1577
+ while(*++s == '0') ;
1578
+ if (!*s)
1579
+ goto ret;
1580
+ }
1581
+ s0 = s;
1582
+ y = z = 0;
1583
+ for(nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++)
1584
+ if (nd < 9)
1585
+ y = 10*y + c - '0';
1586
+ else if (nd < 16)
1587
+ z = 10*z + c - '0';
1588
+ nd0 = nd;
1589
+ #ifdef USE_LOCALE
1590
+ s1 = localeconv()->decimal_point;
1591
+ if (c == *s1) {
1592
+ c = '.';
1593
+ if (*++s1) {
1594
+ s2 = s;
1595
+ for(;;) {
1596
+ if (*++s2 != *s1) {
1597
+ c = 0;
1598
+ break;
1599
+ }
1600
+ if (!*++s1) {
1601
+ s = s2;
1602
+ break;
1603
+ }
1604
+ }
1605
+ }
1606
+ }
1607
+ #endif
1608
+ if (c == '.') {
1609
+ c = *++s;
1610
+ if (!nd) {
1611
+ for(; c == '0'; c = *++s)
1612
+ nz++;
1613
+ if (c > '0' && c <= '9') {
1614
+ s0 = s;
1615
+ nf += nz;
1616
+ nz = 0;
1617
+ goto have_dig;
1618
+ }
1619
+ goto dig_done;
1620
+ }
1621
+ for(; c >= '0' && c <= '9'; c = *++s) {
1622
+ have_dig:
1623
+ nz++;
1624
+ if (c -= '0') {
1625
+ nf += nz;
1626
+ for(i = 1; i < nz; i++)
1627
+ if (nd++ < 9)
1628
+ y *= 10;
1629
+ else if (nd <= DBL_DIG + 1)
1630
+ z *= 10;
1631
+ if (nd++ < 9)
1632
+ y = 10*y + c;
1633
+ else if (nd <= DBL_DIG + 1)
1634
+ z = 10*z + c;
1635
+ nz = 0;
1636
+ }
1637
+ }
1638
+ }
1639
+ dig_done:
1640
+ e = 0;
1641
+ if (c == 'e' || c == 'E') {
1642
+ if (!nd && !nz && !nz0) {
1643
+ goto ret0;
1644
+ }
1645
+ s00 = s;
1646
+ esign = 0;
1647
+ switch(c = *++s) {
1648
+ case '-':
1649
+ esign = 1;
1650
+ case '+':
1651
+ c = *++s;
1652
+ }
1653
+ if (c >= '0' && c <= '9') {
1654
+ while(c == '0')
1655
+ c = *++s;
1656
+ if (c > '0' && c <= '9') {
1657
+ L = c - '0';
1658
+ s1 = s;
1659
+ while((c = *++s) >= '0' && c <= '9')
1660
+ L = 10*L + c - '0';
1661
+ if (s - s1 > 8 || L > 19999)
1662
+ /* Avoid confusion from exponents
1663
+ * so large that e might overflow.
1664
+ */
1665
+ e = 19999; /* safe for 16 bit ints */
1666
+ else
1667
+ e = (int)L;
1668
+ if (esign)
1669
+ e = -e;
1670
+ }
1671
+ else
1672
+ e = 0;
1673
+ }
1674
+ else
1675
+ s = s00;
1676
+ }
1677
+ if (!nd) {
1678
+ if (!nz && !nz0) {
1679
+ #ifdef INFNAN_CHECK
1680
+ /* Check for Nan and Infinity */
1681
+ switch(c) {
1682
+ case 'i':
1683
+ case 'I':
1684
+ if (match(&s,"nf")) {
1685
+ --s;
1686
+ if (!match(&s,"inity"))
1687
+ ++s;
1688
+ word0(rv) = 0x7ff00000;
1689
+ word1(rv) = 0;
1690
+ goto ret;
1691
+ }
1692
+ break;
1693
+ case 'n':
1694
+ case 'N':
1695
+ if (match(&s, "an")) {
1696
+ word0(rv) = NAN_WORD0;
1697
+ word1(rv) = NAN_WORD1;
1698
+ #ifndef No_Hex_NaN
1699
+ if (*s == '(') /*)*/
1700
+ hexnan(&rv, &s);
1701
+ #endif
1702
+ goto ret;
1703
+ }
1704
+ }
1705
+ #endif /* INFNAN_CHECK */
1706
+ ret0:
1707
+ s = s00;
1708
+ sign = 0;
1709
+ }
1710
+ goto ret;
1711
+ }
1712
+ e1 = e -= nf;
1713
+
1714
+ /* Now we have nd0 digits, starting at s0, followed by a
1715
+ * decimal point, followed by nd-nd0 digits. The number we're
1716
+ * after is the integer represented by those digits times
1717
+ * 10**e */
1718
+
1719
+ if (!nd0)
1720
+ nd0 = nd;
1721
+ k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1;
1722
+ dval(rv) = y;
1723
+ if (k > 9) {
1724
+ #ifdef SET_INEXACT
1725
+ if (k > DBL_DIG)
1726
+ oldinexact = get_inexact();
1727
+ #endif
1728
+ dval(rv) = tens[k - 9] * dval(rv) + z;
1729
+ }
1730
+ bd0 = 0;
1731
+ if (nd <= DBL_DIG
1732
+ #ifndef RND_PRODQUOT
1733
+ #ifndef Honor_FLT_ROUNDS
1734
+ && Flt_Rounds == 1
1735
+ #endif
1736
+ #endif
1737
+ ) {
1738
+ if (!e)
1739
+ goto ret;
1740
+ if (e > 0) {
1741
+ if (e <= Ten_pmax) {
1742
+ #ifdef VAX
1743
+ goto vax_ovfl_check;
1744
+ #else
1745
+ #ifdef Honor_FLT_ROUNDS
1746
+ /* round correctly FLT_ROUNDS = 2 or 3 */
1747
+ if (sign) {
1748
+ rv = -rv;
1749
+ sign = 0;
1750
+ }
1751
+ #endif
1752
+ /* rv = */ rounded_product(dval(rv), tens[e]);
1753
+ goto ret;
1754
+ #endif
1755
+ }
1756
+ i = DBL_DIG - nd;
1757
+ if (e <= Ten_pmax + i) {
1758
+ /* A fancier test would sometimes let us do
1759
+ * this for larger i values.
1760
+ */
1761
+ #ifdef Honor_FLT_ROUNDS
1762
+ /* round correctly FLT_ROUNDS = 2 or 3 */
1763
+ if (sign) {
1764
+ rv = -rv;
1765
+ sign = 0;
1766
+ }
1767
+ #endif
1768
+ e -= i;
1769
+ dval(rv) *= tens[i];
1770
+ #ifdef VAX
1771
+ /* VAX exponent range is so narrow we must
1772
+ * worry about overflow here...
1773
+ */
1774
+ vax_ovfl_check:
1775
+ word0(rv) -= P*Exp_msk1;
1776
+ /* rv = */ rounded_product(dval(rv), tens[e]);
1777
+ if ((word0(rv) & Exp_mask)
1778
+ > Exp_msk1*(DBL_MAX_EXP+Bias-1-P))
1779
+ goto ovfl;
1780
+ word0(rv) += P*Exp_msk1;
1781
+ #else
1782
+ /* rv = */ rounded_product(dval(rv), tens[e]);
1783
+ #endif
1784
+ goto ret;
1785
+ }
1786
+ }
1787
+ #ifndef Inaccurate_Divide
1788
+ else if (e >= -Ten_pmax) {
1789
+ #ifdef Honor_FLT_ROUNDS
1790
+ /* round correctly FLT_ROUNDS = 2 or 3 */
1791
+ if (sign) {
1792
+ rv = -rv;
1793
+ sign = 0;
1794
+ }
1795
+ #endif
1796
+ /* rv = */ rounded_quotient(dval(rv), tens[-e]);
1797
+ goto ret;
1798
+ }
1799
+ #endif
1800
+ }
1801
+ e1 += nd - k;
1802
+
1803
+ #ifdef IEEE_Arith
1804
+ #ifdef SET_INEXACT
1805
+ inexact = 1;
1806
+ if (k <= DBL_DIG)
1807
+ oldinexact = get_inexact();
1808
+ #endif
1809
+ #ifdef Avoid_Underflow
1810
+ scale = 0;
1811
+ #endif
1812
+ #ifdef Honor_FLT_ROUNDS
1813
+ if ((rounding = Flt_Rounds) >= 2) {
1814
+ if (sign)
1815
+ rounding = rounding == 2 ? 0 : 2;
1816
+ else
1817
+ if (rounding != 2)
1818
+ rounding = 0;
1819
+ }
1820
+ #endif
1821
+ #endif /*IEEE_Arith*/
1822
+
1823
+ /* Get starting approximation = rv * 10**e1 */
1824
+
1825
+ if (e1 > 0) {
1826
+ if ((i = e1 & 15))
1827
+ dval(rv) *= tens[i];
1828
+ if (e1 &= ~15) {
1829
+ if (e1 > DBL_MAX_10_EXP) {
1830
+ ovfl:
1831
+ #ifndef NO_ERRNO
1832
+ errno = ERANGE;
1833
+ #endif
1834
+ /* Can't trust HUGE_VAL */
1835
+ #ifdef IEEE_Arith
1836
+ #ifdef Honor_FLT_ROUNDS
1837
+ switch(rounding) {
1838
+ case 0: /* toward 0 */
1839
+ case 3: /* toward -infinity */
1840
+ word0(rv) = Big0;
1841
+ word1(rv) = Big1;
1842
+ break;
1843
+ default:
1844
+ word0(rv) = Exp_mask;
1845
+ word1(rv) = 0;
1846
+ }
1847
+ #else /*Honor_FLT_ROUNDS*/
1848
+ word0(rv) = Exp_mask;
1849
+ word1(rv) = 0;
1850
+ #endif /*Honor_FLT_ROUNDS*/
1851
+ #ifdef SET_INEXACT
1852
+ /* set overflow bit */
1853
+ dval(rv0) = 1e300;
1854
+ dval(rv0) *= dval(rv0);
1855
+ #endif
1856
+ #else /*IEEE_Arith*/
1857
+ word0(rv) = Big0;
1858
+ word1(rv) = Big1;
1859
+ #endif /*IEEE_Arith*/
1860
+ if (bd0)
1861
+ goto retfree;
1862
+ goto ret;
1863
+ }
1864
+ e1 >>= 4;
1865
+ for(j = 0; e1 > 1; j++, e1 >>= 1)
1866
+ if (e1 & 1)
1867
+ dval(rv) *= bigtens[j];
1868
+ /* The last multiplication could overflow. */
1869
+ word0(rv) -= P*Exp_msk1;
1870
+ dval(rv) *= bigtens[j];
1871
+ if ((z = word0(rv) & Exp_mask)
1872
+ > Exp_msk1*(DBL_MAX_EXP+Bias-P))
1873
+ goto ovfl;
1874
+ if (z > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) {
1875
+ /* set to largest number */
1876
+ /* (Can't trust DBL_MAX) */
1877
+ word0(rv) = Big0;
1878
+ word1(rv) = Big1;
1879
+ }
1880
+ else
1881
+ word0(rv) += P*Exp_msk1;
1882
+ }
1883
+ }
1884
+ else if (e1 < 0) {
1885
+ e1 = -e1;
1886
+ if ((i = e1 & 15))
1887
+ dval(rv) /= tens[i];
1888
+ if (e1 >>= 4) {
1889
+ if (e1 >= 1 << n_bigtens)
1890
+ goto undfl;
1891
+ #ifdef Avoid_Underflow
1892
+ if (e1 & Scale_Bit)
1893
+ scale = 2*P;
1894
+ for(j = 0; e1 > 0; j++, e1 >>= 1)
1895
+ if (e1 & 1)
1896
+ dval(rv) *= tinytens[j];
1897
+ if (scale && (j = 2*P + 1 - ((word0(rv) & Exp_mask)
1898
+ >> Exp_shift)) > 0) {
1899
+ /* scaled rv is denormal; zap j low bits */
1900
+ if (j >= 32) {
1901
+ word1(rv) = 0;
1902
+ if (j >= 53)
1903
+ word0(rv) = (P+2)*Exp_msk1;
1904
+ else
1905
+ word0(rv) &= 0xffffffff << (j-32);
1906
+ }
1907
+ else
1908
+ word1(rv) &= 0xffffffff << j;
1909
+ }
1910
+ #else
1911
+ for(j = 0; e1 > 1; j++, e1 >>= 1)
1912
+ if (e1 & 1)
1913
+ dval(rv) *= tinytens[j];
1914
+ /* The last multiplication could underflow. */
1915
+ dval(rv0) = dval(rv);
1916
+ dval(rv) *= tinytens[j];
1917
+ if (!dval(rv)) {
1918
+ dval(rv) = 2.*dval(rv0);
1919
+ dval(rv) *= tinytens[j];
1920
+ #endif
1921
+ if (!dval(rv)) {
1922
+ undfl:
1923
+ dval(rv) = 0.;
1924
+ #ifndef NO_ERRNO
1925
+ errno = ERANGE;
1926
+ #endif
1927
+ if (bd0)
1928
+ goto retfree;
1929
+ goto ret;
1930
+ }
1931
+ #ifndef Avoid_Underflow
1932
+ word0(rv) = Tiny0;
1933
+ word1(rv) = Tiny1;
1934
+ /* The refinement below will clean
1935
+ * this approximation up.
1936
+ */
1937
+ }
1938
+ #endif
1939
+ }
1940
+ }
1941
+
1942
+ /* Now the hard part -- adjusting rv to the correct value.*/
1943
+
1944
+ /* Put digits into bd: true value = bd * 10^e */
1945
+
1946
+ bd0 = s2b(s0, nd0, nd, y);
1947
+
1948
+ for(;;) {
1949
+ bd = Balloc(bd0->k);
1950
+ Bcopy(bd, bd0);
1951
+ bb = d2b(rv, &bbe, &bbbits); /* rv = bb * 2^bbe */
1952
+ bs = i2b(1);
1953
+
1954
+ if (e >= 0) {
1955
+ bb2 = bb5 = 0;
1956
+ bd2 = bd5 = e;
1957
+ }
1958
+ else {
1959
+ bb2 = bb5 = -e;
1960
+ bd2 = bd5 = 0;
1961
+ }
1962
+ if (bbe >= 0)
1963
+ bb2 += bbe;
1964
+ else
1965
+ bd2 -= bbe;
1966
+ bs2 = bb2;
1967
+ #ifdef Honor_FLT_ROUNDS
1968
+ if (rounding != 1)
1969
+ bs2++;
1970
+ #endif
1971
+ #ifdef Avoid_Underflow
1972
+ j = bbe - scale;
1973
+ i = j + bbbits - 1; /* logb(rv) */
1974
+ if (i < Emin) /* denormal */
1975
+ j += P - Emin;
1976
+ else
1977
+ j = P + 1 - bbbits;
1978
+ #else /*Avoid_Underflow*/
1979
+ #ifdef Sudden_Underflow
1980
+ #ifdef IBM
1981
+ j = 1 + 4*P - 3 - bbbits + ((bbe + bbbits - 1) & 3);
1982
+ #else
1983
+ j = P + 1 - bbbits;
1984
+ #endif
1985
+ #else /*Sudden_Underflow*/
1986
+ j = bbe;
1987
+ i = j + bbbits - 1; /* logb(rv) */
1988
+ if (i < Emin) /* denormal */
1989
+ j += P - Emin;
1990
+ else
1991
+ j = P + 1 - bbbits;
1992
+ #endif /*Sudden_Underflow*/
1993
+ #endif /*Avoid_Underflow*/
1994
+ bb2 += j;
1995
+ bd2 += j;
1996
+ #ifdef Avoid_Underflow
1997
+ bd2 += scale;
1998
+ #endif
1999
+ i = bb2 < bd2 ? bb2 : bd2;
2000
+ if (i > bs2)
2001
+ i = bs2;
2002
+ if (i > 0) {
2003
+ bb2 -= i;
2004
+ bd2 -= i;
2005
+ bs2 -= i;
2006
+ }
2007
+ if (bb5 > 0) {
2008
+ bs = pow5mult(bs, bb5);
2009
+ bb1 = mult(bs, bb);
2010
+ Bfree(bb);
2011
+ bb = bb1;
2012
+ }
2013
+ if (bb2 > 0)
2014
+ bb = lshift(bb, bb2);
2015
+ if (bd5 > 0)
2016
+ bd = pow5mult(bd, bd5);
2017
+ if (bd2 > 0)
2018
+ bd = lshift(bd, bd2);
2019
+ if (bs2 > 0)
2020
+ bs = lshift(bs, bs2);
2021
+ delta = diff(bb, bd);
2022
+ dsign = delta->sign;
2023
+ delta->sign = 0;
2024
+ i = cmp(delta, bs);
2025
+ #ifdef Honor_FLT_ROUNDS
2026
+ if (rounding != 1) {
2027
+ if (i < 0) {
2028
+ /* Error is less than an ulp */
2029
+ if (!delta->x[0] && delta->wds <= 1) {
2030
+ /* exact */
2031
+ #ifdef SET_INEXACT
2032
+ inexact = 0;
2033
+ #endif
2034
+ break;
2035
+ }
2036
+ if (rounding) {
2037
+ if (dsign) {
2038
+ adj = 1.;
2039
+ goto apply_adj;
2040
+ }
2041
+ }
2042
+ else if (!dsign) {
2043
+ adj = -1.;
2044
+ if (!word1(rv)
2045
+ && !(word0(rv) & Frac_mask)) {
2046
+ y = word0(rv) & Exp_mask;
2047
+ #ifdef Avoid_Underflow
2048
+ if (!scale || y > 2*P*Exp_msk1)
2049
+ #else
2050
+ if (y)
2051
+ #endif
2052
+ {
2053
+ delta = lshift(delta,Log2P);
2054
+ if (cmp(delta, bs) <= 0)
2055
+ adj = -0.5;
2056
+ }
2057
+ }
2058
+ apply_adj:
2059
+ #ifdef Avoid_Underflow
2060
+ if (scale && (y = word0(rv) & Exp_mask)
2061
+ <= 2*P*Exp_msk1)
2062
+ word0(adj) += (2*P+1)*Exp_msk1 - y;
2063
+ #else
2064
+ #ifdef Sudden_Underflow
2065
+ if ((word0(rv) & Exp_mask) <=
2066
+ P*Exp_msk1) {
2067
+ word0(rv) += P*Exp_msk1;
2068
+ dval(rv) += adj*ulp(rv);
2069
+ word0(rv) -= P*Exp_msk1;
2070
+ }
2071
+ else
2072
+ #endif /*Sudden_Underflow*/
2073
+ #endif /*Avoid_Underflow*/
2074
+ dval(rv) += adj*ulp(rv);
2075
+ }
2076
+ break;
2077
+ }
2078
+ adj = ratio(delta, bs);
2079
+ if (adj < 1.)
2080
+ adj = 1.;
2081
+ if (adj <= 0x7ffffffe) {
2082
+ /* adj = rounding ? ceil(adj) : floor(adj); */
2083
+ y = adj;
2084
+ if (y != adj) {
2085
+ if (!((rounding>>1) ^ dsign))
2086
+ y++;
2087
+ adj = y;
2088
+ }
2089
+ }
2090
+ #ifdef Avoid_Underflow
2091
+ if (scale && (y = word0(rv) & Exp_mask) <= 2*P*Exp_msk1)
2092
+ word0(adj) += (2*P+1)*Exp_msk1 - y;
2093
+ #else
2094
+ #ifdef Sudden_Underflow
2095
+ if ((word0(rv) & Exp_mask) <= P*Exp_msk1) {
2096
+ word0(rv) += P*Exp_msk1;
2097
+ adj *= ulp(rv);
2098
+ if (dsign)
2099
+ dval(rv) += adj;
2100
+ else
2101
+ dval(rv) -= adj;
2102
+ word0(rv) -= P*Exp_msk1;
2103
+ goto cont;
2104
+ }
2105
+ #endif /*Sudden_Underflow*/
2106
+ #endif /*Avoid_Underflow*/
2107
+ adj *= ulp(rv);
2108
+ if (dsign)
2109
+ dval(rv) += adj;
2110
+ else
2111
+ dval(rv) -= adj;
2112
+ goto cont;
2113
+ }
2114
+ #endif /*Honor_FLT_ROUNDS*/
2115
+
2116
+ if (i < 0) {
2117
+ /* Error is less than half an ulp -- check for
2118
+ * special case of mantissa a power of two.
2119
+ */
2120
+ if (dsign || word1(rv) || word0(rv) & Bndry_mask
2121
+ #ifdef IEEE_Arith
2122
+ #ifdef Avoid_Underflow
2123
+ || (word0(rv) & Exp_mask) <= (2*P+1)*Exp_msk1
2124
+ #else
2125
+ || (word0(rv) & Exp_mask) <= Exp_msk1
2126
+ #endif
2127
+ #endif
2128
+ ) {
2129
+ #ifdef SET_INEXACT
2130
+ if (!delta->x[0] && delta->wds <= 1)
2131
+ inexact = 0;
2132
+ #endif
2133
+ break;
2134
+ }
2135
+ if (!delta->x[0] && delta->wds <= 1) {
2136
+ /* exact result */
2137
+ #ifdef SET_INEXACT
2138
+ inexact = 0;
2139
+ #endif
2140
+ break;
2141
+ }
2142
+ delta = lshift(delta,Log2P);
2143
+ if (cmp(delta, bs) > 0)
2144
+ goto drop_down;
2145
+ break;
2146
+ }
2147
+ if (i == 0) {
2148
+ /* exactly half-way between */
2149
+ if (dsign) {
2150
+ if ((word0(rv) & Bndry_mask1) == Bndry_mask1
2151
+ && word1(rv) == (
2152
+ #ifdef Avoid_Underflow
2153
+ (scale && (y = word0(rv) & Exp_mask) <= 2*P*Exp_msk1)
2154
+ ? (0xffffffff & (0xffffffff << (2*P+1-(y>>Exp_shift)))) :
2155
+ #endif
2156
+ 0xffffffff)) {
2157
+ /*boundary case -- increment exponent*/
2158
+ word0(rv) = (word0(rv) & Exp_mask)
2159
+ + Exp_msk1
2160
+ #ifdef IBM
2161
+ | Exp_msk1 >> 4
2162
+ #endif
2163
+ ;
2164
+ word1(rv) = 0;
2165
+ #ifdef Avoid_Underflow
2166
+ dsign = 0;
2167
+ #endif
2168
+ break;
2169
+ }
2170
+ }
2171
+ else if (!(word0(rv) & Bndry_mask) && !word1(rv)) {
2172
+ drop_down:
2173
+ /* boundary case -- decrement exponent */
2174
+ #ifdef Sudden_Underflow /*{{*/
2175
+ L = word0(rv) & Exp_mask;
2176
+ #ifdef IBM
2177
+ if (L < Exp_msk1)
2178
+ #else
2179
+ #ifdef Avoid_Underflow
2180
+ if (L <= (scale ? (2*P+1)*Exp_msk1 : Exp_msk1))
2181
+ #else
2182
+ if (L <= Exp_msk1)
2183
+ #endif /*Avoid_Underflow*/
2184
+ #endif /*IBM*/
2185
+ goto undfl;
2186
+ L -= Exp_msk1;
2187
+ #else /*Sudden_Underflow}{*/
2188
+ #ifdef Avoid_Underflow
2189
+ if (scale) {
2190
+ L = word0(rv) & Exp_mask;
2191
+ if (L <= (2*P+1)*Exp_msk1) {
2192
+ if (L > (P+2)*Exp_msk1)
2193
+ /* round even ==> */
2194
+ /* accept rv */
2195
+ break;
2196
+ /* rv = smallest denormal */
2197
+ goto undfl;
2198
+ }
2199
+ }
2200
+ #endif /*Avoid_Underflow*/
2201
+ L = (word0(rv) & Exp_mask) - Exp_msk1;
2202
+ #endif /*Sudden_Underflow}}*/
2203
+ word0(rv) = L | Bndry_mask1;
2204
+ word1(rv) = 0xffffffff;
2205
+ #ifdef IBM
2206
+ goto cont;
2207
+ #else
2208
+ break;
2209
+ #endif
2210
+ }
2211
+ #ifndef ROUND_BIASED
2212
+ if (!(word1(rv) & LSB))
2213
+ break;
2214
+ #endif
2215
+ if (dsign)
2216
+ dval(rv) += ulp(rv);
2217
+ #ifndef ROUND_BIASED
2218
+ else {
2219
+ dval(rv) -= ulp(rv);
2220
+ #ifndef Sudden_Underflow
2221
+ if (!dval(rv))
2222
+ goto undfl;
2223
+ #endif
2224
+ }
2225
+ #ifdef Avoid_Underflow
2226
+ dsign = 1 - dsign;
2227
+ #endif
2228
+ #endif
2229
+ break;
2230
+ }
2231
+ if ((aadj = ratio(delta, bs)) <= 2.) {
2232
+ if (dsign)
2233
+ aadj = dval(aadj1) = 1.;
2234
+ else if (word1(rv) || word0(rv) & Bndry_mask) {
2235
+ #ifndef Sudden_Underflow
2236
+ if (word1(rv) == Tiny1 && !word0(rv))
2237
+ goto undfl;
2238
+ #endif
2239
+ aadj = 1.;
2240
+ dval(aadj1) = -1.;
2241
+ }
2242
+ else {
2243
+ /* special case -- power of FLT_RADIX to be */
2244
+ /* rounded down... */
2245
+
2246
+ if (aadj < 2./FLT_RADIX)
2247
+ aadj = 1./FLT_RADIX;
2248
+ else
2249
+ aadj *= 0.5;
2250
+ dval(aadj1) = -aadj;
2251
+ }
2252
+ }
2253
+ else {
2254
+ aadj *= 0.5;
2255
+ dval(aadj1) = dsign ? aadj : -aadj;
2256
+ #ifdef Check_FLT_ROUNDS
2257
+ switch(Rounding) {
2258
+ case 2: /* towards +infinity */
2259
+ dval(aadj1) -= 0.5;
2260
+ break;
2261
+ case 0: /* towards 0 */
2262
+ case 3: /* towards -infinity */
2263
+ dval(aadj1) += 0.5;
2264
+ }
2265
+ #else
2266
+ if (Flt_Rounds == 0)
2267
+ dval(aadj1) += 0.5;
2268
+ #endif /*Check_FLT_ROUNDS*/
2269
+ }
2270
+ y = word0(rv) & Exp_mask;
2271
+
2272
+ /* Check for overflow */
2273
+
2274
+ if (y == Exp_msk1*(DBL_MAX_EXP+Bias-1)) {
2275
+ dval(rv0) = dval(rv);
2276
+ word0(rv) -= P*Exp_msk1;
2277
+ adj = dval(aadj1) * ulp(rv);
2278
+ dval(rv) += adj;
2279
+ if ((word0(rv) & Exp_mask) >=
2280
+ Exp_msk1*(DBL_MAX_EXP+Bias-P)) {
2281
+ if (word0(rv0) == Big0 && word1(rv0) == Big1)
2282
+ goto ovfl;
2283
+ word0(rv) = Big0;
2284
+ word1(rv) = Big1;
2285
+ goto cont;
2286
+ }
2287
+ else
2288
+ word0(rv) += P*Exp_msk1;
2289
+ }
2290
+ else {
2291
+ #ifdef Avoid_Underflow
2292
+ if (scale && y <= 2*P*Exp_msk1) {
2293
+ if (aadj <= 0x7fffffff) {
2294
+ if ((z = (ULong) aadj) <= 0)
2295
+ z = 1;
2296
+ aadj = z;
2297
+ dval(aadj1) = dsign ? aadj : -aadj;
2298
+ }
2299
+ word0(aadj1) += (2*P+1)*Exp_msk1 - y;
2300
+ }
2301
+ adj = dval(aadj1) * ulp(rv);
2302
+ dval(rv) += adj;
2303
+ #else
2304
+ #ifdef Sudden_Underflow
2305
+ if ((word0(rv) & Exp_mask) <= P*Exp_msk1) {
2306
+ dval(rv0) = dval(rv);
2307
+ word0(rv) += P*Exp_msk1;
2308
+ adj = dval(aadj1) * ulp(rv);
2309
+ dval(rv) += adj;
2310
+ #ifdef IBM
2311
+ if ((word0(rv) & Exp_mask) < P*Exp_msk1)
2312
+ #else
2313
+ if ((word0(rv) & Exp_mask) <= P*Exp_msk1)
2314
+ #endif
2315
+ {
2316
+ if (word0(rv0) == Tiny0
2317
+ && word1(rv0) == Tiny1)
2318
+ goto undfl;
2319
+ word0(rv) = Tiny0;
2320
+ word1(rv) = Tiny1;
2321
+ goto cont;
2322
+ }
2323
+ else
2324
+ word0(rv) -= P*Exp_msk1;
2325
+ }
2326
+ else {
2327
+ adj = dval(aadj1) * ulp(rv);
2328
+ dval(rv) += adj;
2329
+ }
2330
+ #else /*Sudden_Underflow*/
2331
+ /* Compute adj so that the IEEE rounding rules will
2332
+ * correctly round rv + adj in some half-way cases.
2333
+ * If rv * ulp(rv) is denormalized (i.e.,
2334
+ * y <= (P-1)*Exp_msk1), we must adjust aadj to avoid
2335
+ * trouble from bits lost to denormalization;
2336
+ * example: 1.2e-307 .
2337
+ */
2338
+ if (y <= (P-1)*Exp_msk1 && aadj > 1.) {
2339
+ dval(aadj1) = (double)(int)(aadj + 0.5);
2340
+ if (!dsign)
2341
+ dval(aadj1) = -dval(aadj1);
2342
+ }
2343
+ adj = dval(aadj1) * ulp(rv);
2344
+ dval(rv) += adj;
2345
+ #endif /*Sudden_Underflow*/
2346
+ #endif /*Avoid_Underflow*/
2347
+ }
2348
+ z = word0(rv) & Exp_mask;
2349
+ #ifndef SET_INEXACT
2350
+ #ifdef Avoid_Underflow
2351
+ if (!scale)
2352
+ #endif
2353
+ if (y == z) {
2354
+ /* Can we stop now? */
2355
+ L = (Long)aadj;
2356
+ aadj -= L;
2357
+ /* The tolerances below are conservative. */
2358
+ if (dsign || word1(rv) || word0(rv) & Bndry_mask) {
2359
+ if (aadj < .4999999 || aadj > .5000001)
2360
+ break;
2361
+ }
2362
+ else if (aadj < .4999999/FLT_RADIX)
2363
+ break;
2364
+ }
2365
+ #endif
2366
+ cont:
2367
+ Bfree(bb);
2368
+ Bfree(bd);
2369
+ Bfree(bs);
2370
+ Bfree(delta);
2371
+ }
2372
+ #ifdef SET_INEXACT
2373
+ if (inexact) {
2374
+ if (!oldinexact) {
2375
+ word0(rv0) = Exp_1 + (70 << Exp_shift);
2376
+ word1(rv0) = 0;
2377
+ dval(rv0) += 1.;
2378
+ }
2379
+ }
2380
+ else if (!oldinexact)
2381
+ clear_inexact();
2382
+ #endif
2383
+ #ifdef Avoid_Underflow
2384
+ if (scale) {
2385
+ word0(rv0) = Exp_1 - 2*P*Exp_msk1;
2386
+ word1(rv0) = 0;
2387
+ dval(rv) *= dval(rv0);
2388
+ #ifndef NO_ERRNO
2389
+ /* try to avoid the bug of testing an 8087 register value */
2390
+ if (word0(rv) == 0 && word1(rv) == 0)
2391
+ errno = ERANGE;
2392
+ #endif
2393
+ }
2394
+ #endif /* Avoid_Underflow */
2395
+ #ifdef SET_INEXACT
2396
+ if (inexact && !(word0(rv) & Exp_mask)) {
2397
+ /* set underflow bit */
2398
+ dval(rv0) = 1e-300;
2399
+ dval(rv0) *= dval(rv0);
2400
+ }
2401
+ #endif
2402
+ retfree:
2403
+ Bfree(bb);
2404
+ Bfree(bd);
2405
+ Bfree(bs);
2406
+ Bfree(bd0);
2407
+ Bfree(delta);
2408
+ ret:
2409
+ if (se)
2410
+ *se = (char *)s;
2411
+ return sign ? -dval(rv) : dval(rv);
2412
+ }
2413
+
2414
+ static int
2415
+ quorem
2416
+ #ifdef KR_headers
2417
+ (b, S) Bigint *b, *S;
2418
+ #else
2419
+ (Bigint *b, Bigint *S)
2420
+ #endif
2421
+ {
2422
+ int n;
2423
+ ULong *bx, *bxe, q, *sx, *sxe;
2424
+ #ifdef ULLong
2425
+ ULLong borrow, carry, y, ys;
2426
+ #else
2427
+ ULong borrow, carry, y, ys;
2428
+ #ifdef Pack_32
2429
+ ULong si, z, zs;
2430
+ #endif
2431
+ #endif
2432
+
2433
+ n = S->wds;
2434
+ #ifdef DEBUG
2435
+ /*debug*/ if (b->wds > n)
2436
+ /*debug*/ Bug("oversize b in quorem");
2437
+ #endif
2438
+ if (b->wds < n)
2439
+ return 0;
2440
+ sx = S->x;
2441
+ sxe = sx + --n;
2442
+ bx = b->x;
2443
+ bxe = bx + n;
2444
+ q = *bxe / (*sxe + 1); /* ensure q <= true quotient */
2445
+ #ifdef DEBUG
2446
+ /*debug*/ if (q > 9)
2447
+ /*debug*/ Bug("oversized quotient in quorem");
2448
+ #endif
2449
+ if (q) {
2450
+ borrow = 0;
2451
+ carry = 0;
2452
+ do {
2453
+ #ifdef ULLong
2454
+ ys = *sx++ * (ULLong)q + carry;
2455
+ carry = ys >> 32;
2456
+ y = *bx - (ys & FFFFFFFF) - borrow;
2457
+ borrow = y >> 32 & (ULong)1;
2458
+ *bx++ = (ULong) y & FFFFFFFF;
2459
+ #else
2460
+ #ifdef Pack_32
2461
+ si = *sx++;
2462
+ ys = (si & 0xffff) * q + carry;
2463
+ zs = (si >> 16) * q + (ys >> 16);
2464
+ carry = zs >> 16;
2465
+ y = (*bx & 0xffff) - (ys & 0xffff) - borrow;
2466
+ borrow = (y & 0x10000) >> 16;
2467
+ z = (*bx >> 16) - (zs & 0xffff) - borrow;
2468
+ borrow = (z & 0x10000) >> 16;
2469
+ Storeinc(bx, z, y);
2470
+ #else
2471
+ ys = *sx++ * q + carry;
2472
+ carry = ys >> 16;
2473
+ y = *bx - (ys & 0xffff) - borrow;
2474
+ borrow = (y & 0x10000) >> 16;
2475
+ *bx++ = y & 0xffff;
2476
+ #endif
2477
+ #endif
2478
+ }
2479
+ while(sx <= sxe);
2480
+ if (!*bxe) {
2481
+ bx = b->x;
2482
+ while(--bxe > bx && !*bxe)
2483
+ --n;
2484
+ b->wds = n;
2485
+ }
2486
+ }
2487
+ if (cmp(b, S) >= 0) {
2488
+ q++;
2489
+ borrow = 0;
2490
+ carry = 0;
2491
+ bx = b->x;
2492
+ sx = S->x;
2493
+ do {
2494
+ #ifdef ULLong
2495
+ ys = *sx++ + carry;
2496
+ carry = ys >> 32;
2497
+ y = *bx - (ys & FFFFFFFF) - borrow;
2498
+ borrow = y >> 32 & (ULong)1;
2499
+ *bx++ = (ULong) y & FFFFFFFF;
2500
+ #else
2501
+ #ifdef Pack_32
2502
+ si = *sx++;
2503
+ ys = (si & 0xffff) + carry;
2504
+ zs = (si >> 16) + (ys >> 16);
2505
+ carry = zs >> 16;
2506
+ y = (*bx & 0xffff) - (ys & 0xffff) - borrow;
2507
+ borrow = (y & 0x10000) >> 16;
2508
+ z = (*bx >> 16) - (zs & 0xffff) - borrow;
2509
+ borrow = (z & 0x10000) >> 16;
2510
+ Storeinc(bx, z, y);
2511
+ #else
2512
+ ys = *sx++ + carry;
2513
+ carry = ys >> 16;
2514
+ y = *bx - (ys & 0xffff) - borrow;
2515
+ borrow = (y & 0x10000) >> 16;
2516
+ *bx++ = y & 0xffff;
2517
+ #endif
2518
+ #endif
2519
+ }
2520
+ while(sx <= sxe);
2521
+ bx = b->x;
2522
+ bxe = bx + n;
2523
+ if (!*bxe) {
2524
+ while(--bxe > bx && !*bxe)
2525
+ --n;
2526
+ b->wds = n;
2527
+ }
2528
+ }
2529
+ return q;
2530
+ }
2531
+
2532
+ #ifndef MULTIPLE_THREADS
2533
+ static char *dtoa_result;
2534
+ #endif
2535
+
2536
+ static char *
2537
+ #ifdef KR_headers
2538
+ rv_alloc(i) int i;
2539
+ #else
2540
+ rv_alloc(int i)
2541
+ #endif
2542
+ {
2543
+ int j, k, *r;
2544
+
2545
+ j = sizeof(ULong);
2546
+ for(k = 0;
2547
+ sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= (unsigned) i;
2548
+ j <<= 1)
2549
+ k++;
2550
+ r = (int*)Balloc(k);
2551
+ *r = k;
2552
+ return
2553
+ #ifndef MULTIPLE_THREADS
2554
+ dtoa_result =
2555
+ #endif
2556
+ (char *)(r+1);
2557
+ }
2558
+
2559
+ static char *
2560
+ #ifdef KR_headers
2561
+ nrv_alloc(s, rve, n) char *s, **rve; int n;
2562
+ #else
2563
+ nrv_alloc(CONST char *s, char **rve, int n)
2564
+ #endif
2565
+ {
2566
+ char *rv, *t;
2567
+
2568
+ t = rv = rv_alloc(n);
2569
+ while((*t = *s++)) t++;
2570
+ if (rve)
2571
+ *rve = t;
2572
+ return rv;
2573
+ }
2574
+
2575
+ /* freedtoa(s) must be used to free values s returned by dtoa
2576
+ * when MULTIPLE_THREADS is #defined. It should be used in all cases,
2577
+ * but for consistency with earlier versions of dtoa, it is optional
2578
+ * when MULTIPLE_THREADS is not defined.
2579
+ */
2580
+
2581
+ void
2582
+ #ifdef KR_headers
2583
+ freedtoa(s) char *s;
2584
+ #else
2585
+ freedtoa(char *s)
2586
+ #endif
2587
+ {
2588
+ Bigint *b = (Bigint *)((int *)s - 1);
2589
+ b->maxwds = 1 << (b->k = *(int*)b);
2590
+ Bfree(b);
2591
+ #ifndef MULTIPLE_THREADS
2592
+ if (s == dtoa_result)
2593
+ dtoa_result = 0;
2594
+ #endif
2595
+ }
2596
+
2597
+ /* dtoa for IEEE arithmetic (dmg): convert double to ASCII string.
2598
+ *
2599
+ * Inspired by "How to Print Floating-Point Numbers Accurately" by
2600
+ * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 112-126].
2601
+ *
2602
+ * Modifications:
2603
+ * 1. Rather than iterating, we use a simple numeric overestimate
2604
+ * to determine k = floor(log10(d)). We scale relevant
2605
+ * quantities using O(log2(k)) rather than O(k) multiplications.
2606
+ * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't
2607
+ * try to generate digits strictly left to right. Instead, we
2608
+ * compute with fewer bits and propagate the carry if necessary
2609
+ * when rounding the final digit up. This is often faster.
2610
+ * 3. Under the assumption that input will be rounded nearest,
2611
+ * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22.
2612
+ * That is, we allow equality in stopping tests when the
2613
+ * round-nearest rule will give the same floating-point value
2614
+ * as would satisfaction of the stopping test with strict
2615
+ * inequality.
2616
+ * 4. We remove common factors of powers of 2 from relevant
2617
+ * quantities.
2618
+ * 5. When converting floating-point integers less than 1e16,
2619
+ * we use floating-point arithmetic rather than resorting
2620
+ * to multiple-precision integers.
2621
+ * 6. When asked to produce fewer than 15 digits, we first try
2622
+ * to get by with floating-point arithmetic; we resort to
2623
+ * multiple-precision integer arithmetic only if we cannot
2624
+ * guarantee that the floating-point calculation has given
2625
+ * the correctly rounded result. For k requested digits and
2626
+ * "uniformly" distributed input, the probability is
2627
+ * something like 10^(k-15) that we must resort to the Long
2628
+ * calculation.
2629
+ */
2630
+
2631
+ static char *
2632
+ dtoa
2633
+ #ifdef KR_headers
2634
+ (d, mode, ndigits, decpt, sign, rve)
2635
+ U d; int mode, ndigits, *decpt, *sign; char **rve;
2636
+ #else
2637
+ (U d, int mode, int ndigits, int *decpt, int *sign, char **rve)
2638
+ #endif
2639
+ {
2640
+ /* Arguments ndigits, decpt, sign are similar to those
2641
+ of ecvt and fcvt; trailing zeros are suppressed from
2642
+ the returned string. If not null, *rve is set to point
2643
+ to the end of the return value. If d is +-Infinity or NaN,
2644
+ then *decpt is set to 9999.
2645
+
2646
+ mode:
2647
+ 0 ==> shortest string that yields d when read in
2648
+ and rounded to nearest.
2649
+ 1 ==> like 0, but with Steele & White stopping rule;
2650
+ e.g. with IEEE P754 arithmetic , mode 0 gives
2651
+ 1e23 whereas mode 1 gives 9.999999999999999e22.
2652
+ 2 ==> max(1,ndigits) significant digits. This gives a
2653
+ return value similar to that of ecvt, except
2654
+ that trailing zeros are suppressed.
2655
+ 3 ==> through ndigits past the decimal point. This
2656
+ gives a return value similar to that from fcvt,
2657
+ except that trailing zeros are suppressed, and
2658
+ ndigits can be negative.
2659
+ 4,5 ==> similar to 2 and 3, respectively, but (in
2660
+ round-nearest mode) with the tests of mode 0 to
2661
+ possibly return a shorter string that rounds to d.
2662
+ With IEEE arithmetic and compilation with
2663
+ -DHonor_FLT_ROUNDS, modes 4 and 5 behave the same
2664
+ as modes 2 and 3 when FLT_ROUNDS != 1.
2665
+ 6-9 ==> Debugging modes similar to mode - 4: don't try
2666
+ fast floating-point estimate (if applicable).
2667
+
2668
+ Values of mode other than 0-9 are treated as mode 0.
2669
+
2670
+ Sufficient space is allocated to the return value
2671
+ to hold the suppressed trailing zeros.
2672
+ */
2673
+
2674
+ int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1,
2675
+ j, j1, k, k0, k_check, leftright, m2, m5, s2, s5,
2676
+ spec_case, try_quick;
2677
+ Long L;
2678
+ #ifndef Sudden_Underflow
2679
+ int denorm;
2680
+ ULong x;
2681
+ #endif
2682
+ Bigint *b, *b1, *delta, *mlo, *mhi, *S;
2683
+ U d2, eps;
2684
+ double ds;
2685
+ char *s, *s0;
2686
+ #ifdef Honor_FLT_ROUNDS
2687
+ int rounding;
2688
+ #endif
2689
+ #ifdef SET_INEXACT
2690
+ int inexact, oldinexact;
2691
+ #endif
2692
+
2693
+ #ifdef __GNUC__
2694
+ ilim = ilim1 = 0;
2695
+ mlo = NULL;
2696
+ #endif
2697
+
2698
+ #ifndef MULTIPLE_THREADS
2699
+ if (dtoa_result) {
2700
+ freedtoa(dtoa_result);
2701
+ dtoa_result = 0;
2702
+ }
2703
+ #endif
2704
+
2705
+ if (word0(d) & Sign_bit) {
2706
+ /* set sign for everything, including 0's and NaNs */
2707
+ *sign = 1;
2708
+ word0(d) &= ~Sign_bit; /* clear sign bit */
2709
+ }
2710
+ else
2711
+ *sign = 0;
2712
+
2713
+ #if defined(IEEE_Arith) + defined(VAX)
2714
+ #ifdef IEEE_Arith
2715
+ if ((word0(d) & Exp_mask) == Exp_mask)
2716
+ #else
2717
+ if (word0(d) == 0x8000)
2718
+ #endif
2719
+ {
2720
+ /* Infinity or NaN */
2721
+ *decpt = 9999;
2722
+ #ifdef IEEE_Arith
2723
+ if (!word1(d) && !(word0(d) & 0xfffff))
2724
+ return nrv_alloc("Infinity", rve, 8);
2725
+ #endif
2726
+ return nrv_alloc("NaN", rve, 3);
2727
+ }
2728
+ #endif
2729
+ #ifdef IBM
2730
+ dval(d) += 0; /* normalize */
2731
+ #endif
2732
+ if (!dval(d)) {
2733
+ *decpt = 1;
2734
+ return nrv_alloc("0", rve, 1);
2735
+ }
2736
+
2737
+ #ifdef SET_INEXACT
2738
+ try_quick = oldinexact = get_inexact();
2739
+ inexact = 1;
2740
+ #endif
2741
+ #ifdef Honor_FLT_ROUNDS
2742
+ if ((rounding = Flt_Rounds) >= 2) {
2743
+ if (*sign)
2744
+ rounding = rounding == 2 ? 0 : 2;
2745
+ else
2746
+ if (rounding != 2)
2747
+ rounding = 0;
2748
+ }
2749
+ #endif
2750
+
2751
+ b = d2b(d, &be, &bbits);
2752
+ #ifdef Sudden_Underflow
2753
+ i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
2754
+ #else
2755
+ if ((i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) {
2756
+ #endif
2757
+ dval(d2) = dval(d);
2758
+ word0(d2) &= Frac_mask1;
2759
+ word0(d2) |= Exp_11;
2760
+ #ifdef IBM
2761
+ if (j = 11 - hi0bits(word0(d2) & Frac_mask))
2762
+ dval(d2) /= 1 << j;
2763
+ #endif
2764
+
2765
+ /* log(x) ~=~ log(1.5) + (x-1.5)/1.5
2766
+ * log10(x) = log(x) / log(10)
2767
+ * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10))
2768
+ * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2)
2769
+ *
2770
+ * This suggests computing an approximation k to log10(d) by
2771
+ *
2772
+ * k = (i - Bias)*0.301029995663981
2773
+ * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 );
2774
+ *
2775
+ * We want k to be too large rather than too small.
2776
+ * The error in the first-order Taylor series approximation
2777
+ * is in our favor, so we just round up the constant enough
2778
+ * to compensate for any error in the multiplication of
2779
+ * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077,
2780
+ * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14,
2781
+ * adding 1e-13 to the constant term more than suffices.
2782
+ * Hence we adjust the constant term to 0.1760912590558.
2783
+ * (We could get a more accurate k by invoking log10,
2784
+ * but this is probably not worthwhile.)
2785
+ */
2786
+
2787
+ i -= Bias;
2788
+ #ifdef IBM
2789
+ i <<= 2;
2790
+ i += j;
2791
+ #endif
2792
+ #ifndef Sudden_Underflow
2793
+ denorm = 0;
2794
+ }
2795
+ else {
2796
+ /* d is denormalized */
2797
+
2798
+ i = bbits + be + (Bias + (P-1) - 1);
2799
+ x = i > 32 ? word0(d) << (64 - i) | word1(d) >> (i - 32)
2800
+ : word1(d) << (32 - i);
2801
+ dval(d2) = x;
2802
+ word0(d2) -= 31*Exp_msk1; /* adjust exponent */
2803
+ i -= (Bias + (P-1) - 1) + 1;
2804
+ denorm = 1;
2805
+ }
2806
+ #endif
2807
+ ds = (dval(d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;
2808
+ k = (int)ds;
2809
+ if (ds < 0. && ds != k)
2810
+ k--; /* want k = floor(ds) */
2811
+ k_check = 1;
2812
+ if (k >= 0 && k <= Ten_pmax) {
2813
+ if (dval(d) < tens[k])
2814
+ k--;
2815
+ k_check = 0;
2816
+ }
2817
+ j = bbits - i - 1;
2818
+ if (j >= 0) {
2819
+ b2 = 0;
2820
+ s2 = j;
2821
+ }
2822
+ else {
2823
+ b2 = -j;
2824
+ s2 = 0;
2825
+ }
2826
+ if (k >= 0) {
2827
+ b5 = 0;
2828
+ s5 = k;
2829
+ s2 += k;
2830
+ }
2831
+ else {
2832
+ b2 -= k;
2833
+ b5 = -k;
2834
+ s5 = 0;
2835
+ }
2836
+ if (mode < 0 || mode > 9)
2837
+ mode = 0;
2838
+
2839
+ #ifndef SET_INEXACT
2840
+ #ifdef Check_FLT_ROUNDS
2841
+ try_quick = Rounding == 1;
2842
+ #else
2843
+ try_quick = 1;
2844
+ #endif
2845
+ #endif /*SET_INEXACT*/
2846
+
2847
+ if (mode > 5) {
2848
+ mode -= 4;
2849
+ try_quick = 0;
2850
+ }
2851
+ leftright = 1;
2852
+ switch(mode) {
2853
+ case 0:
2854
+ case 1:
2855
+ ilim = ilim1 = -1;
2856
+ i = 18;
2857
+ ndigits = 0;
2858
+ break;
2859
+ case 2:
2860
+ leftright = 0;
2861
+ /* no break */
2862
+ case 4:
2863
+ if (ndigits <= 0)
2864
+ ndigits = 1;
2865
+ ilim = ilim1 = i = ndigits;
2866
+ break;
2867
+ case 3:
2868
+ leftright = 0;
2869
+ /* no break */
2870
+ case 5:
2871
+ i = ndigits + k + 1;
2872
+ ilim = i;
2873
+ ilim1 = i - 1;
2874
+ if (i <= 0)
2875
+ i = 1;
2876
+ }
2877
+ s = s0 = rv_alloc(i);
2878
+
2879
+ #ifdef Honor_FLT_ROUNDS
2880
+ if (mode > 1 && rounding != 1)
2881
+ leftright = 0;
2882
+ #endif
2883
+
2884
+ if (ilim >= 0 && ilim <= Quick_max && try_quick) {
2885
+
2886
+ /* Try to get by with floating-point arithmetic. */
2887
+
2888
+ i = 0;
2889
+ dval(d2) = dval(d);
2890
+ k0 = k;
2891
+ ilim0 = ilim;
2892
+ ieps = 2; /* conservative */
2893
+ if (k > 0) {
2894
+ ds = tens[k&0xf];
2895
+ j = k >> 4;
2896
+ if (j & Bletch) {
2897
+ /* prevent overflows */
2898
+ j &= Bletch - 1;
2899
+ dval(d) /= bigtens[n_bigtens-1];
2900
+ ieps++;
2901
+ }
2902
+ for(; j; j >>= 1, i++)
2903
+ if (j & 1) {
2904
+ ieps++;
2905
+ ds *= bigtens[i];
2906
+ }
2907
+ dval(d) /= ds;
2908
+ }
2909
+ else if ((j1 = -k)) {
2910
+ dval(d) *= tens[j1 & 0xf];
2911
+ for(j = j1 >> 4; j; j >>= 1, i++)
2912
+ if (j & 1) {
2913
+ ieps++;
2914
+ dval(d) *= bigtens[i];
2915
+ }
2916
+ }
2917
+ if (k_check && dval(d) < 1. && ilim > 0) {
2918
+ if (ilim1 <= 0)
2919
+ goto fast_failed;
2920
+ ilim = ilim1;
2921
+ k--;
2922
+ dval(d) *= 10.;
2923
+ ieps++;
2924
+ }
2925
+ dval(eps) = ieps*dval(d) + 7.;
2926
+ word0(eps) -= (P-1)*Exp_msk1;
2927
+ if (ilim == 0) {
2928
+ S = mhi = 0;
2929
+ dval(d) -= 5.;
2930
+ if (dval(d) > dval(eps))
2931
+ goto one_digit;
2932
+ if (dval(d) < -dval(eps))
2933
+ goto no_digits;
2934
+ goto fast_failed;
2935
+ }
2936
+ #ifndef No_leftright
2937
+ if (leftright) {
2938
+ /* Use Steele & White method of only
2939
+ * generating digits needed.
2940
+ */
2941
+ dval(eps) = 0.5/tens[ilim-1] - dval(eps);
2942
+ for(i = 0;;) {
2943
+ L = (ULong) dval(d);
2944
+ dval(d) -= L;
2945
+ *s++ = '0' + (int)L;
2946
+ if (dval(d) < dval(eps))
2947
+ goto ret1;
2948
+ if (1. - dval(d) < dval(eps))
2949
+ goto bump_up;
2950
+ if (++i >= ilim)
2951
+ break;
2952
+ dval(eps) *= 10.;
2953
+ dval(d) *= 10.;
2954
+ }
2955
+ }
2956
+ else {
2957
+ #endif
2958
+ /* Generate ilim digits, then fix them up. */
2959
+ dval(eps) *= tens[ilim-1];
2960
+ for(i = 1;; i++, dval(d) *= 10.) {
2961
+ L = (Long)(dval(d));
2962
+ if (!(dval(d) -= L))
2963
+ ilim = i;
2964
+ *s++ = '0' + (int)L;
2965
+ if (i == ilim) {
2966
+ if (dval(d) > 0.5 + dval(eps))
2967
+ goto bump_up;
2968
+ else if (dval(d) < 0.5 - dval(eps)) {
2969
+ while(*--s == '0');
2970
+ s++;
2971
+ goto ret1;
2972
+ }
2973
+ break;
2974
+ }
2975
+ }
2976
+ #ifndef No_leftright
2977
+ }
2978
+ #endif
2979
+ fast_failed:
2980
+ s = s0;
2981
+ dval(d) = dval(d2);
2982
+ k = k0;
2983
+ ilim = ilim0;
2984
+ }
2985
+
2986
+ /* Do we have a "small" integer? */
2987
+
2988
+ if (be >= 0 && k <= Int_max) {
2989
+ /* Yes. */
2990
+ ds = tens[k];
2991
+ if (ndigits < 0 && ilim <= 0) {
2992
+ S = mhi = 0;
2993
+ if (ilim < 0 || dval(d) <= 5*ds)
2994
+ goto no_digits;
2995
+ goto one_digit;
2996
+ }
2997
+ for(i = 1;; i++, dval(d) *= 10.) {
2998
+ L = (Long)(dval(d) / ds);
2999
+ dval(d) -= L*ds;
3000
+ #ifdef Check_FLT_ROUNDS
3001
+ /* If FLT_ROUNDS == 2, L will usually be high by 1 */
3002
+ if (dval(d) < 0) {
3003
+ L--;
3004
+ dval(d) += ds;
3005
+ }
3006
+ #endif
3007
+ *s++ = '0' + (int)L;
3008
+ if (!dval(d)) {
3009
+ #ifdef SET_INEXACT
3010
+ inexact = 0;
3011
+ #endif
3012
+ break;
3013
+ }
3014
+ if (i == ilim) {
3015
+ #ifdef Honor_FLT_ROUNDS
3016
+ if (mode > 1)
3017
+ switch(rounding) {
3018
+ case 0: goto ret1;
3019
+ case 2: goto bump_up;
3020
+ }
3021
+ #endif
3022
+ dval(d) += dval(d);
3023
+ if (dval(d) > ds || (dval(d) == ds && L & 1)) {
3024
+ bump_up:
3025
+ while(*--s == '9')
3026
+ if (s == s0) {
3027
+ k++;
3028
+ *s = '0';
3029
+ break;
3030
+ }
3031
+ ++*s++;
3032
+ }
3033
+ break;
3034
+ }
3035
+ }
3036
+ goto ret1;
3037
+ }
3038
+
3039
+ m2 = b2;
3040
+ m5 = b5;
3041
+ mhi = mlo = 0;
3042
+ if (leftright) {
3043
+ i =
3044
+ #ifndef Sudden_Underflow
3045
+ denorm ? be + (Bias + (P-1) - 1 + 1) :
3046
+ #endif
3047
+ #ifdef IBM
3048
+ 1 + 4*P - 3 - bbits + ((bbits + be - 1) & 3);
3049
+ #else
3050
+ 1 + P - bbits;
3051
+ #endif
3052
+ b2 += i;
3053
+ s2 += i;
3054
+ mhi = i2b(1);
3055
+ }
3056
+ if (m2 > 0 && s2 > 0) {
3057
+ i = m2 < s2 ? m2 : s2;
3058
+ b2 -= i;
3059
+ m2 -= i;
3060
+ s2 -= i;
3061
+ }
3062
+ if (b5 > 0) {
3063
+ if (leftright) {
3064
+ if (m5 > 0) {
3065
+ mhi = pow5mult(mhi, m5);
3066
+ b1 = mult(mhi, b);
3067
+ Bfree(b);
3068
+ b = b1;
3069
+ }
3070
+ if ((j = b5 - m5))
3071
+ b = pow5mult(b, j);
3072
+ }
3073
+ else
3074
+ b = pow5mult(b, b5);
3075
+ }
3076
+ S = i2b(1);
3077
+ if (s5 > 0)
3078
+ S = pow5mult(S, s5);
3079
+
3080
+ /* Check for special case that d is a normalized power of 2. */
3081
+
3082
+ spec_case = 0;
3083
+ if ((mode < 2 || leftright)
3084
+ #ifdef Honor_FLT_ROUNDS
3085
+ && rounding == 1
3086
+ #endif
3087
+ ) {
3088
+ if (!word1(d) && !(word0(d) & Bndry_mask)
3089
+ #ifndef Sudden_Underflow
3090
+ && word0(d) & (Exp_mask & ~Exp_msk1)
3091
+ #endif
3092
+ ) {
3093
+ /* The special case */
3094
+ b2 += Log2P;
3095
+ s2 += Log2P;
3096
+ spec_case = 1;
3097
+ }
3098
+ }
3099
+
3100
+ /* Arrange for convenient computation of quotients:
3101
+ * shift left if necessary so divisor has 4 leading 0 bits.
3102
+ *
3103
+ * Perhaps we should just compute leading 28 bits of S once
3104
+ * and for all and pass them and a shift to quorem, so it
3105
+ * can do shifts and ors to compute the numerator for q.
3106
+ */
3107
+ #ifdef Pack_32
3108
+ if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f))
3109
+ i = 32 - i;
3110
+ #else
3111
+ if (i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0xf)
3112
+ i = 16 - i;
3113
+ #endif
3114
+ if (i > 4) {
3115
+ i -= 4;
3116
+ b2 += i;
3117
+ m2 += i;
3118
+ s2 += i;
3119
+ }
3120
+ else if (i < 4) {
3121
+ i += 28;
3122
+ b2 += i;
3123
+ m2 += i;
3124
+ s2 += i;
3125
+ }
3126
+ if (b2 > 0)
3127
+ b = lshift(b, b2);
3128
+ if (s2 > 0)
3129
+ S = lshift(S, s2);
3130
+ if (k_check) {
3131
+ if (cmp(b,S) < 0) {
3132
+ k--;
3133
+ b = multadd(b, 10, 0); /* we botched the k estimate */
3134
+ if (leftright)
3135
+ mhi = multadd(mhi, 10, 0);
3136
+ ilim = ilim1;
3137
+ }
3138
+ }
3139
+ if (ilim <= 0 && (mode == 3 || mode == 5)) {
3140
+ if (ilim < 0 || cmp(b,S = multadd(S,5,0)) <= 0) {
3141
+ /* no digits, fcvt style */
3142
+ no_digits:
3143
+ /* MOZILLA CHANGE: Always return a non-empty string. */
3144
+ *s++ = '0';
3145
+ k = 0;
3146
+ goto ret;
3147
+ }
3148
+ one_digit:
3149
+ *s++ = '1';
3150
+ k++;
3151
+ goto ret;
3152
+ }
3153
+ if (leftright) {
3154
+ if (m2 > 0)
3155
+ mhi = lshift(mhi, m2);
3156
+
3157
+ /* Compute mlo -- check for special case
3158
+ * that d is a normalized power of 2.
3159
+ */
3160
+
3161
+ mlo = mhi;
3162
+ if (spec_case) {
3163
+ mhi = Balloc(mhi->k);
3164
+ Bcopy(mhi, mlo);
3165
+ mhi = lshift(mhi, Log2P);
3166
+ }
3167
+
3168
+ for(i = 1;;i++) {
3169
+ dig = quorem(b,S) + '0';
3170
+ /* Do we yet have the shortest decimal string
3171
+ * that will round to d?
3172
+ */
3173
+ j = cmp(b, mlo);
3174
+ delta = diff(S, mhi);
3175
+ j1 = delta->sign ? 1 : cmp(b, delta);
3176
+ Bfree(delta);
3177
+ #ifndef ROUND_BIASED
3178
+ if (j1 == 0 && mode != 1 && !(word1(d) & 1)
3179
+ #ifdef Honor_FLT_ROUNDS
3180
+ && rounding >= 1
3181
+ #endif
3182
+ ) {
3183
+ if (dig == '9')
3184
+ goto round_9_up;
3185
+ if (j > 0)
3186
+ dig++;
3187
+ #ifdef SET_INEXACT
3188
+ else if (!b->x[0] && b->wds <= 1)
3189
+ inexact = 0;
3190
+ #endif
3191
+ *s++ = dig;
3192
+ goto ret;
3193
+ }
3194
+ #endif
3195
+ if (j < 0 || (j == 0 && mode != 1
3196
+ #ifndef ROUND_BIASED
3197
+ && !(word1(d) & 1)
3198
+ #endif
3199
+ )) {
3200
+ if (!b->x[0] && b->wds <= 1) {
3201
+ #ifdef SET_INEXACT
3202
+ inexact = 0;
3203
+ #endif
3204
+ goto accept_dig;
3205
+ }
3206
+ #ifdef Honor_FLT_ROUNDS
3207
+ if (mode > 1)
3208
+ switch(rounding) {
3209
+ case 0: goto accept_dig;
3210
+ case 2: goto keep_dig;
3211
+ }
3212
+ #endif /*Honor_FLT_ROUNDS*/
3213
+ if (j1 > 0) {
3214
+ b = lshift(b, 1);
3215
+ j1 = cmp(b, S);
3216
+ if ((j1 > 0 || (j1 == 0 && dig & 1))
3217
+ && dig++ == '9')
3218
+ goto round_9_up;
3219
+ }
3220
+ accept_dig:
3221
+ *s++ = dig;
3222
+ goto ret;
3223
+ }
3224
+ if (j1 > 0) {
3225
+ #ifdef Honor_FLT_ROUNDS
3226
+ if (!rounding)
3227
+ goto accept_dig;
3228
+ #endif
3229
+ if (dig == '9') { /* possible if i == 1 */
3230
+ round_9_up:
3231
+ *s++ = '9';
3232
+ goto roundoff;
3233
+ }
3234
+ *s++ = dig + 1;
3235
+ goto ret;
3236
+ }
3237
+ #ifdef Honor_FLT_ROUNDS
3238
+ keep_dig:
3239
+ #endif
3240
+ *s++ = dig;
3241
+ if (i == ilim)
3242
+ break;
3243
+ b = multadd(b, 10, 0);
3244
+ if (mlo == mhi)
3245
+ mlo = mhi = multadd(mhi, 10, 0);
3246
+ else {
3247
+ mlo = multadd(mlo, 10, 0);
3248
+ mhi = multadd(mhi, 10, 0);
3249
+ }
3250
+ }
3251
+ }
3252
+ else
3253
+ for(i = 1;; i++) {
3254
+ *s++ = dig = quorem(b,S) + '0';
3255
+ if (!b->x[0] && b->wds <= 1) {
3256
+ #ifdef SET_INEXACT
3257
+ inexact = 0;
3258
+ #endif
3259
+ goto ret;
3260
+ }
3261
+ if (i >= ilim)
3262
+ break;
3263
+ b = multadd(b, 10, 0);
3264
+ }
3265
+
3266
+ /* Round off last digit */
3267
+
3268
+ #ifdef Honor_FLT_ROUNDS
3269
+ switch(rounding) {
3270
+ case 0: goto trimzeros;
3271
+ case 2: goto roundoff;
3272
+ }
3273
+ #endif
3274
+ b = lshift(b, 1);
3275
+ j = cmp(b, S);
3276
+ if (j > 0 || (j == 0 && dig & 1)) {
3277
+ roundoff:
3278
+ while(*--s == '9')
3279
+ if (s == s0) {
3280
+ k++;
3281
+ *s++ = '1';
3282
+ goto ret;
3283
+ }
3284
+ ++*s++;
3285
+ }
3286
+ else {
3287
+ #ifdef Honor_FLT_ROUNDS
3288
+ trimzeros:
3289
+ #endif
3290
+ while(*--s == '0');
3291
+ s++;
3292
+ }
3293
+ ret:
3294
+ Bfree(S);
3295
+ if (mhi) {
3296
+ if (mlo && mlo != mhi)
3297
+ Bfree(mlo);
3298
+ Bfree(mhi);
3299
+ }
3300
+ ret1:
3301
+ #ifdef SET_INEXACT
3302
+ if (inexact) {
3303
+ if (!oldinexact) {
3304
+ word0(d) = Exp_1 + (70 << Exp_shift);
3305
+ word1(d) = 0;
3306
+ dval(d) += 1.;
3307
+ }
3308
+ }
3309
+ else if (!oldinexact)
3310
+ clear_inexact();
3311
+ #endif
3312
+ Bfree(b);
3313
+ *s = 0;
3314
+ *decpt = k + 1;
3315
+ if (rve)
3316
+ *rve = s;
3317
+ return s0;
3318
+ }
3319
+ #ifdef __cplusplus
3320
+ }
3321
+ #endif