therubyracer-heroku 0.8.1.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1966) hide show
  1. data/.gitignore +13 -0
  2. data/.gitmodules +3 -0
  3. data/.rspec +1 -0
  4. data/Changelog.md +165 -0
  5. data/Gemfile +1 -0
  6. data/README.md +155 -0
  7. data/Rakefile +34 -0
  8. data/bin/therubyracer +13 -0
  9. data/bin/v8 +8 -0
  10. data/ext/v8/extconf.rb +25 -0
  11. data/ext/v8/rr.cpp +175 -0
  12. data/ext/v8/rr.h +36 -0
  13. data/ext/v8/upstream/2.3.3/.gitignore +26 -0
  14. data/ext/v8/upstream/2.3.3/AUTHORS +31 -0
  15. data/ext/v8/upstream/2.3.3/ChangeLog +1916 -0
  16. data/ext/v8/upstream/2.3.3/LICENSE +55 -0
  17. data/ext/v8/upstream/2.3.3/SConstruct +1154 -0
  18. data/ext/v8/upstream/2.3.3/include/v8-debug.h +381 -0
  19. data/ext/v8/upstream/2.3.3/include/v8-profiler.h +353 -0
  20. data/ext/v8/upstream/2.3.3/include/v8.h +3616 -0
  21. data/ext/v8/upstream/2.3.3/src/SConscript +330 -0
  22. data/ext/v8/upstream/2.3.3/src/accessors.cc +661 -0
  23. data/ext/v8/upstream/2.3.3/src/accessors.h +114 -0
  24. data/ext/v8/upstream/2.3.3/src/allocation.cc +198 -0
  25. data/ext/v8/upstream/2.3.3/src/allocation.h +169 -0
  26. data/ext/v8/upstream/2.3.3/src/api.cc +4795 -0
  27. data/ext/v8/upstream/2.3.3/src/api.h +485 -0
  28. data/ext/v8/upstream/2.3.3/src/apinatives.js +110 -0
  29. data/ext/v8/upstream/2.3.3/src/apiutils.h +69 -0
  30. data/ext/v8/upstream/2.3.3/src/arguments.h +96 -0
  31. data/ext/v8/upstream/2.3.3/src/arm/assembler-arm-inl.h +305 -0
  32. data/ext/v8/upstream/2.3.3/src/arm/assembler-arm.cc +2580 -0
  33. data/ext/v8/upstream/2.3.3/src/arm/assembler-arm.h +1275 -0
  34. data/ext/v8/upstream/2.3.3/src/arm/builtins-arm.cc +1320 -0
  35. data/ext/v8/upstream/2.3.3/src/arm/codegen-arm-inl.h +48 -0
  36. data/ext/v8/upstream/2.3.3/src/arm/codegen-arm.cc +11398 -0
  37. data/ext/v8/upstream/2.3.3/src/arm/codegen-arm.h +1102 -0
  38. data/ext/v8/upstream/2.3.3/src/arm/constants-arm.cc +154 -0
  39. data/ext/v8/upstream/2.3.3/src/arm/constants-arm.h +388 -0
  40. data/ext/v8/upstream/2.3.3/src/arm/cpu-arm.cc +142 -0
  41. data/ext/v8/upstream/2.3.3/src/arm/debug-arm.cc +309 -0
  42. data/ext/v8/upstream/2.3.3/src/arm/disasm-arm.cc +1459 -0
  43. data/ext/v8/upstream/2.3.3/src/arm/fast-codegen-arm.cc +241 -0
  44. data/ext/v8/upstream/2.3.3/src/arm/frames-arm.cc +123 -0
  45. data/ext/v8/upstream/2.3.3/src/arm/frames-arm.h +162 -0
  46. data/ext/v8/upstream/2.3.3/src/arm/full-codegen-arm.cc +3178 -0
  47. data/ext/v8/upstream/2.3.3/src/arm/ic-arm.cc +2258 -0
  48. data/ext/v8/upstream/2.3.3/src/arm/jump-target-arm.cc +164 -0
  49. data/ext/v8/upstream/2.3.3/src/arm/macro-assembler-arm.cc +1892 -0
  50. data/ext/v8/upstream/2.3.3/src/arm/macro-assembler-arm.h +727 -0
  51. data/ext/v8/upstream/2.3.3/src/arm/regexp-macro-assembler-arm.cc +1261 -0
  52. data/ext/v8/upstream/2.3.3/src/arm/regexp-macro-assembler-arm.h +266 -0
  53. data/ext/v8/upstream/2.3.3/src/arm/register-allocator-arm-inl.h +100 -0
  54. data/ext/v8/upstream/2.3.3/src/arm/register-allocator-arm.cc +63 -0
  55. data/ext/v8/upstream/2.3.3/src/arm/register-allocator-arm.h +44 -0
  56. data/ext/v8/upstream/2.3.3/src/arm/simulator-arm.cc +2822 -0
  57. data/ext/v8/upstream/2.3.3/src/arm/simulator-arm.h +361 -0
  58. data/ext/v8/upstream/2.3.3/src/arm/stub-cache-arm.cc +2387 -0
  59. data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm-inl.h +59 -0
  60. data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm.cc +834 -0
  61. data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm.h +519 -0
  62. data/ext/v8/upstream/2.3.3/src/array.js +1127 -0
  63. data/ext/v8/upstream/2.3.3/src/assembler.cc +801 -0
  64. data/ext/v8/upstream/2.3.3/src/assembler.h +573 -0
  65. data/ext/v8/upstream/2.3.3/src/ast-inl.h +81 -0
  66. data/ext/v8/upstream/2.3.3/src/ast.cc +1152 -0
  67. data/ext/v8/upstream/2.3.3/src/ast.h +2106 -0
  68. data/ext/v8/upstream/2.3.3/src/bootstrapper.cc +1819 -0
  69. data/ext/v8/upstream/2.3.3/src/bootstrapper.h +118 -0
  70. data/ext/v8/upstream/2.3.3/src/builtins.cc +1529 -0
  71. data/ext/v8/upstream/2.3.3/src/builtins.h +263 -0
  72. data/ext/v8/upstream/2.3.3/src/bytecodes-irregexp.h +104 -0
  73. data/ext/v8/upstream/2.3.3/src/cached-powers.h +119 -0
  74. data/ext/v8/upstream/2.3.3/src/char-predicates-inl.h +86 -0
  75. data/ext/v8/upstream/2.3.3/src/char-predicates.h +65 -0
  76. data/ext/v8/upstream/2.3.3/src/checks.cc +100 -0
  77. data/ext/v8/upstream/2.3.3/src/checks.h +310 -0
  78. data/ext/v8/upstream/2.3.3/src/circular-queue-inl.h +53 -0
  79. data/ext/v8/upstream/2.3.3/src/circular-queue.cc +121 -0
  80. data/ext/v8/upstream/2.3.3/src/circular-queue.h +103 -0
  81. data/ext/v8/upstream/2.3.3/src/code-stubs.cc +177 -0
  82. data/ext/v8/upstream/2.3.3/src/code-stubs.h +177 -0
  83. data/ext/v8/upstream/2.3.3/src/code.h +68 -0
  84. data/ext/v8/upstream/2.3.3/src/codegen-inl.h +60 -0
  85. data/ext/v8/upstream/2.3.3/src/codegen.cc +516 -0
  86. data/ext/v8/upstream/2.3.3/src/codegen.h +897 -0
  87. data/ext/v8/upstream/2.3.3/src/compilation-cache.cc +562 -0
  88. data/ext/v8/upstream/2.3.3/src/compilation-cache.h +102 -0
  89. data/ext/v8/upstream/2.3.3/src/compiler.cc +654 -0
  90. data/ext/v8/upstream/2.3.3/src/compiler.h +299 -0
  91. data/ext/v8/upstream/2.3.3/src/contexts.cc +256 -0
  92. data/ext/v8/upstream/2.3.3/src/contexts.h +342 -0
  93. data/ext/v8/upstream/2.3.3/src/conversions-inl.h +110 -0
  94. data/ext/v8/upstream/2.3.3/src/conversions.cc +1119 -0
  95. data/ext/v8/upstream/2.3.3/src/conversions.h +123 -0
  96. data/ext/v8/upstream/2.3.3/src/counters.cc +78 -0
  97. data/ext/v8/upstream/2.3.3/src/counters.h +239 -0
  98. data/ext/v8/upstream/2.3.3/src/cpu-profiler-inl.h +100 -0
  99. data/ext/v8/upstream/2.3.3/src/cpu-profiler.cc +538 -0
  100. data/ext/v8/upstream/2.3.3/src/cpu-profiler.h +285 -0
  101. data/ext/v8/upstream/2.3.3/src/cpu.h +65 -0
  102. data/ext/v8/upstream/2.3.3/src/d8-debug.cc +356 -0
  103. data/ext/v8/upstream/2.3.3/src/d8-debug.h +155 -0
  104. data/ext/v8/upstream/2.3.3/src/d8-posix.cc +693 -0
  105. data/ext/v8/upstream/2.3.3/src/d8-readline.cc +128 -0
  106. data/ext/v8/upstream/2.3.3/src/d8-windows.cc +42 -0
  107. data/ext/v8/upstream/2.3.3/src/d8.cc +783 -0
  108. data/ext/v8/upstream/2.3.3/src/d8.h +227 -0
  109. data/ext/v8/upstream/2.3.3/src/d8.js +1683 -0
  110. data/ext/v8/upstream/2.3.3/src/data-flow.cc +758 -0
  111. data/ext/v8/upstream/2.3.3/src/data-flow.h +278 -0
  112. data/ext/v8/upstream/2.3.3/src/date.js +1059 -0
  113. data/ext/v8/upstream/2.3.3/src/dateparser-inl.h +123 -0
  114. data/ext/v8/upstream/2.3.3/src/dateparser.cc +178 -0
  115. data/ext/v8/upstream/2.3.3/src/dateparser.h +244 -0
  116. data/ext/v8/upstream/2.3.3/src/debug-agent.cc +427 -0
  117. data/ext/v8/upstream/2.3.3/src/debug-agent.h +129 -0
  118. data/ext/v8/upstream/2.3.3/src/debug-debugger.js +2227 -0
  119. data/ext/v8/upstream/2.3.3/src/debug.cc +3005 -0
  120. data/ext/v8/upstream/2.3.3/src/debug.h +993 -0
  121. data/ext/v8/upstream/2.3.3/src/disasm.h +77 -0
  122. data/ext/v8/upstream/2.3.3/src/disassembler.cc +312 -0
  123. data/ext/v8/upstream/2.3.3/src/disassembler.h +56 -0
  124. data/ext/v8/upstream/2.3.3/src/diy-fp.cc +58 -0
  125. data/ext/v8/upstream/2.3.3/src/diy-fp.h +117 -0
  126. data/ext/v8/upstream/2.3.3/src/double.h +169 -0
  127. data/ext/v8/upstream/2.3.3/src/dtoa-config.c +92 -0
  128. data/ext/v8/upstream/2.3.3/src/dtoa.cc +77 -0
  129. data/ext/v8/upstream/2.3.3/src/dtoa.h +81 -0
  130. data/ext/v8/upstream/2.3.3/src/execution.cc +809 -0
  131. data/ext/v8/upstream/2.3.3/src/execution.h +336 -0
  132. data/ext/v8/upstream/2.3.3/src/factory.cc +1003 -0
  133. data/ext/v8/upstream/2.3.3/src/factory.h +410 -0
  134. data/ext/v8/upstream/2.3.3/src/fast-codegen.cc +746 -0
  135. data/ext/v8/upstream/2.3.3/src/fast-codegen.h +161 -0
  136. data/ext/v8/upstream/2.3.3/src/fast-dtoa.cc +505 -0
  137. data/ext/v8/upstream/2.3.3/src/fast-dtoa.h +58 -0
  138. data/ext/v8/upstream/2.3.3/src/fixed-dtoa.cc +405 -0
  139. data/ext/v8/upstream/2.3.3/src/fixed-dtoa.h +55 -0
  140. data/ext/v8/upstream/2.3.3/src/flag-definitions.h +455 -0
  141. data/ext/v8/upstream/2.3.3/src/flags.cc +551 -0
  142. data/ext/v8/upstream/2.3.3/src/flags.h +81 -0
  143. data/ext/v8/upstream/2.3.3/src/flow-graph.cc +763 -0
  144. data/ext/v8/upstream/2.3.3/src/flow-graph.h +180 -0
  145. data/ext/v8/upstream/2.3.3/src/frame-element.cc +42 -0
  146. data/ext/v8/upstream/2.3.3/src/frame-element.h +273 -0
  147. data/ext/v8/upstream/2.3.3/src/frames-inl.h +217 -0
  148. data/ext/v8/upstream/2.3.3/src/frames.cc +826 -0
  149. data/ext/v8/upstream/2.3.3/src/frames.h +682 -0
  150. data/ext/v8/upstream/2.3.3/src/full-codegen.cc +1443 -0
  151. data/ext/v8/upstream/2.3.3/src/full-codegen.h +548 -0
  152. data/ext/v8/upstream/2.3.3/src/func-name-inferrer.cc +76 -0
  153. data/ext/v8/upstream/2.3.3/src/func-name-inferrer.h +135 -0
  154. data/ext/v8/upstream/2.3.3/src/global-handles.cc +520 -0
  155. data/ext/v8/upstream/2.3.3/src/global-handles.h +180 -0
  156. data/ext/v8/upstream/2.3.3/src/globals.h +669 -0
  157. data/ext/v8/upstream/2.3.3/src/handles-inl.h +76 -0
  158. data/ext/v8/upstream/2.3.3/src/handles.cc +825 -0
  159. data/ext/v8/upstream/2.3.3/src/handles.h +393 -0
  160. data/ext/v8/upstream/2.3.3/src/hashmap.cc +226 -0
  161. data/ext/v8/upstream/2.3.3/src/hashmap.h +120 -0
  162. data/ext/v8/upstream/2.3.3/src/heap-inl.h +493 -0
  163. data/ext/v8/upstream/2.3.3/src/heap-profiler.cc +779 -0
  164. data/ext/v8/upstream/2.3.3/src/heap-profiler.h +323 -0
  165. data/ext/v8/upstream/2.3.3/src/heap.cc +4994 -0
  166. data/ext/v8/upstream/2.3.3/src/heap.h +1984 -0
  167. data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32-inl.h +360 -0
  168. data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32.cc +2600 -0
  169. data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32.h +969 -0
  170. data/ext/v8/upstream/2.3.3/src/ia32/builtins-ia32.cc +1261 -0
  171. data/ext/v8/upstream/2.3.3/src/ia32/codegen-ia32-inl.h +46 -0
  172. data/ext/v8/upstream/2.3.3/src/ia32/codegen-ia32.cc +13968 -0
  173. data/ext/v8/upstream/2.3.3/src/ia32/codegen-ia32.h +1097 -0
  174. data/ext/v8/upstream/2.3.3/src/ia32/cpu-ia32.cc +83 -0
  175. data/ext/v8/upstream/2.3.3/src/ia32/debug-ia32.cc +309 -0
  176. data/ext/v8/upstream/2.3.3/src/ia32/disasm-ia32.cc +1471 -0
  177. data/ext/v8/upstream/2.3.3/src/ia32/fast-codegen-ia32.cc +954 -0
  178. data/ext/v8/upstream/2.3.3/src/ia32/fast-codegen-ia32.h +155 -0
  179. data/ext/v8/upstream/2.3.3/src/ia32/frames-ia32.cc +115 -0
  180. data/ext/v8/upstream/2.3.3/src/ia32/frames-ia32.h +135 -0
  181. data/ext/v8/upstream/2.3.3/src/ia32/full-codegen-ia32.cc +3281 -0
  182. data/ext/v8/upstream/2.3.3/src/ia32/ic-ia32.cc +1966 -0
  183. data/ext/v8/upstream/2.3.3/src/ia32/jump-target-ia32.cc +437 -0
  184. data/ext/v8/upstream/2.3.3/src/ia32/macro-assembler-ia32.cc +1610 -0
  185. data/ext/v8/upstream/2.3.3/src/ia32/macro-assembler-ia32.h +610 -0
  186. data/ext/v8/upstream/2.3.3/src/ia32/regexp-macro-assembler-ia32.cc +1247 -0
  187. data/ext/v8/upstream/2.3.3/src/ia32/regexp-macro-assembler-ia32.h +214 -0
  188. data/ext/v8/upstream/2.3.3/src/ia32/register-allocator-ia32-inl.h +82 -0
  189. data/ext/v8/upstream/2.3.3/src/ia32/register-allocator-ia32.cc +157 -0
  190. data/ext/v8/upstream/2.3.3/src/ia32/register-allocator-ia32.h +43 -0
  191. data/ext/v8/upstream/2.3.3/src/ia32/simulator-ia32.cc +30 -0
  192. data/ext/v8/upstream/2.3.3/src/ia32/simulator-ia32.h +62 -0
  193. data/ext/v8/upstream/2.3.3/src/ia32/stub-cache-ia32.cc +2750 -0
  194. data/ext/v8/upstream/2.3.3/src/ia32/virtual-frame-ia32.cc +1334 -0
  195. data/ext/v8/upstream/2.3.3/src/ia32/virtual-frame-ia32.h +627 -0
  196. data/ext/v8/upstream/2.3.3/src/ic-inl.h +120 -0
  197. data/ext/v8/upstream/2.3.3/src/ic.cc +1827 -0
  198. data/ext/v8/upstream/2.3.3/src/ic.h +515 -0
  199. data/ext/v8/upstream/2.3.3/src/interpreter-irregexp.cc +646 -0
  200. data/ext/v8/upstream/2.3.3/src/interpreter-irregexp.h +48 -0
  201. data/ext/v8/upstream/2.3.3/src/json.js +268 -0
  202. data/ext/v8/upstream/2.3.3/src/jsregexp.cc +5283 -0
  203. data/ext/v8/upstream/2.3.3/src/jsregexp.h +1463 -0
  204. data/ext/v8/upstream/2.3.3/src/jump-target-heavy-inl.h +51 -0
  205. data/ext/v8/upstream/2.3.3/src/jump-target-heavy.cc +429 -0
  206. data/ext/v8/upstream/2.3.3/src/jump-target-heavy.h +244 -0
  207. data/ext/v8/upstream/2.3.3/src/jump-target-inl.h +48 -0
  208. data/ext/v8/upstream/2.3.3/src/jump-target-light-inl.h +56 -0
  209. data/ext/v8/upstream/2.3.3/src/jump-target-light.cc +110 -0
  210. data/ext/v8/upstream/2.3.3/src/jump-target-light.h +192 -0
  211. data/ext/v8/upstream/2.3.3/src/jump-target.cc +91 -0
  212. data/ext/v8/upstream/2.3.3/src/jump-target.h +90 -0
  213. data/ext/v8/upstream/2.3.3/src/list-inl.h +166 -0
  214. data/ext/v8/upstream/2.3.3/src/list.h +159 -0
  215. data/ext/v8/upstream/2.3.3/src/liveedit-debugger.js +1057 -0
  216. data/ext/v8/upstream/2.3.3/src/liveedit.cc +1480 -0
  217. data/ext/v8/upstream/2.3.3/src/liveedit.h +170 -0
  218. data/ext/v8/upstream/2.3.3/src/log-inl.h +59 -0
  219. data/ext/v8/upstream/2.3.3/src/log-utils.cc +497 -0
  220. data/ext/v8/upstream/2.3.3/src/log-utils.h +289 -0
  221. data/ext/v8/upstream/2.3.3/src/log.cc +1561 -0
  222. data/ext/v8/upstream/2.3.3/src/log.h +384 -0
  223. data/ext/v8/upstream/2.3.3/src/macro-assembler.h +86 -0
  224. data/ext/v8/upstream/2.3.3/src/macros.py +177 -0
  225. data/ext/v8/upstream/2.3.3/src/mark-compact.cc +2330 -0
  226. data/ext/v8/upstream/2.3.3/src/mark-compact.h +451 -0
  227. data/ext/v8/upstream/2.3.3/src/math.js +264 -0
  228. data/ext/v8/upstream/2.3.3/src/memory.h +74 -0
  229. data/ext/v8/upstream/2.3.3/src/messages.cc +183 -0
  230. data/ext/v8/upstream/2.3.3/src/messages.h +113 -0
  231. data/ext/v8/upstream/2.3.3/src/messages.js +982 -0
  232. data/ext/v8/upstream/2.3.3/src/mips/assembler-mips-inl.h +215 -0
  233. data/ext/v8/upstream/2.3.3/src/mips/assembler-mips.cc +1219 -0
  234. data/ext/v8/upstream/2.3.3/src/mips/assembler-mips.h +668 -0
  235. data/ext/v8/upstream/2.3.3/src/mips/builtins-mips.cc +205 -0
  236. data/ext/v8/upstream/2.3.3/src/mips/codegen-mips-inl.h +70 -0
  237. data/ext/v8/upstream/2.3.3/src/mips/codegen-mips.cc +1437 -0
  238. data/ext/v8/upstream/2.3.3/src/mips/codegen-mips.h +434 -0
  239. data/ext/v8/upstream/2.3.3/src/mips/constants-mips.cc +328 -0
  240. data/ext/v8/upstream/2.3.3/src/mips/constants-mips.h +525 -0
  241. data/ext/v8/upstream/2.3.3/src/mips/cpu-mips.cc +73 -0
  242. data/ext/v8/upstream/2.3.3/src/mips/debug-mips.cc +131 -0
  243. data/ext/v8/upstream/2.3.3/src/mips/disasm-mips.cc +787 -0
  244. data/ext/v8/upstream/2.3.3/src/mips/fast-codegen-mips.cc +77 -0
  245. data/ext/v8/upstream/2.3.3/src/mips/frames-mips.cc +102 -0
  246. data/ext/v8/upstream/2.3.3/src/mips/frames-mips.h +164 -0
  247. data/ext/v8/upstream/2.3.3/src/mips/full-codegen-mips.cc +277 -0
  248. data/ext/v8/upstream/2.3.3/src/mips/ic-mips.cc +220 -0
  249. data/ext/v8/upstream/2.3.3/src/mips/jump-target-mips.cc +175 -0
  250. data/ext/v8/upstream/2.3.3/src/mips/macro-assembler-mips.cc +1326 -0
  251. data/ext/v8/upstream/2.3.3/src/mips/macro-assembler-mips.h +461 -0
  252. data/ext/v8/upstream/2.3.3/src/mips/register-allocator-mips-inl.h +137 -0
  253. data/ext/v8/upstream/2.3.3/src/mips/register-allocator-mips.cc +63 -0
  254. data/ext/v8/upstream/2.3.3/src/mips/register-allocator-mips.h +46 -0
  255. data/ext/v8/upstream/2.3.3/src/mips/simulator-mips.cc +1651 -0
  256. data/ext/v8/upstream/2.3.3/src/mips/simulator-mips.h +311 -0
  257. data/ext/v8/upstream/2.3.3/src/mips/stub-cache-mips.cc +403 -0
  258. data/ext/v8/upstream/2.3.3/src/mips/virtual-frame-mips.cc +319 -0
  259. data/ext/v8/upstream/2.3.3/src/mips/virtual-frame-mips.h +548 -0
  260. data/ext/v8/upstream/2.3.3/src/mirror-debugger.js +2380 -0
  261. data/ext/v8/upstream/2.3.3/src/mksnapshot.cc +256 -0
  262. data/ext/v8/upstream/2.3.3/src/natives.h +63 -0
  263. data/ext/v8/upstream/2.3.3/src/objects-debug.cc +1366 -0
  264. data/ext/v8/upstream/2.3.3/src/objects-inl.h +3333 -0
  265. data/ext/v8/upstream/2.3.3/src/objects.cc +8820 -0
  266. data/ext/v8/upstream/2.3.3/src/objects.h +5373 -0
  267. data/ext/v8/upstream/2.3.3/src/oprofile-agent.cc +108 -0
  268. data/ext/v8/upstream/2.3.3/src/oprofile-agent.h +77 -0
  269. data/ext/v8/upstream/2.3.3/src/parser.cc +5207 -0
  270. data/ext/v8/upstream/2.3.3/src/parser.h +197 -0
  271. data/ext/v8/upstream/2.3.3/src/platform-freebsd.cc +667 -0
  272. data/ext/v8/upstream/2.3.3/src/platform-linux.cc +862 -0
  273. data/ext/v8/upstream/2.3.3/src/platform-macos.cc +665 -0
  274. data/ext/v8/upstream/2.3.3/src/platform-nullos.cc +454 -0
  275. data/ext/v8/upstream/2.3.3/src/platform-openbsd.cc +622 -0
  276. data/ext/v8/upstream/2.3.3/src/platform-posix.cc +362 -0
  277. data/ext/v8/upstream/2.3.3/src/platform-solaris.cc +653 -0
  278. data/ext/v8/upstream/2.3.3/src/platform-win32.cc +1911 -0
  279. data/ext/v8/upstream/2.3.3/src/platform.h +577 -0
  280. data/ext/v8/upstream/2.3.3/src/powers-ten.h +2461 -0
  281. data/ext/v8/upstream/2.3.3/src/prettyprinter.cc +1531 -0
  282. data/ext/v8/upstream/2.3.3/src/prettyprinter.h +221 -0
  283. data/ext/v8/upstream/2.3.3/src/profile-generator-inl.h +148 -0
  284. data/ext/v8/upstream/2.3.3/src/profile-generator.cc +1830 -0
  285. data/ext/v8/upstream/2.3.3/src/profile-generator.h +853 -0
  286. data/ext/v8/upstream/2.3.3/src/property.cc +96 -0
  287. data/ext/v8/upstream/2.3.3/src/property.h +315 -0
  288. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-irregexp-inl.h +78 -0
  289. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-irregexp.cc +464 -0
  290. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-irregexp.h +141 -0
  291. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-tracer.cc +356 -0
  292. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-tracer.h +103 -0
  293. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler.cc +261 -0
  294. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler.h +228 -0
  295. data/ext/v8/upstream/2.3.3/src/regexp-stack.cc +103 -0
  296. data/ext/v8/upstream/2.3.3/src/regexp-stack.h +123 -0
  297. data/ext/v8/upstream/2.3.3/src/regexp.js +549 -0
  298. data/ext/v8/upstream/2.3.3/src/register-allocator-inl.h +141 -0
  299. data/ext/v8/upstream/2.3.3/src/register-allocator.cc +104 -0
  300. data/ext/v8/upstream/2.3.3/src/register-allocator.h +320 -0
  301. data/ext/v8/upstream/2.3.3/src/rewriter.cc +1038 -0
  302. data/ext/v8/upstream/2.3.3/src/rewriter.h +54 -0
  303. data/ext/v8/upstream/2.3.3/src/runtime.cc +10599 -0
  304. data/ext/v8/upstream/2.3.3/src/runtime.h +459 -0
  305. data/ext/v8/upstream/2.3.3/src/runtime.js +629 -0
  306. data/ext/v8/upstream/2.3.3/src/scanner.cc +1346 -0
  307. data/ext/v8/upstream/2.3.3/src/scanner.h +503 -0
  308. data/ext/v8/upstream/2.3.3/src/scopeinfo.cc +637 -0
  309. data/ext/v8/upstream/2.3.3/src/scopeinfo.h +233 -0
  310. data/ext/v8/upstream/2.3.3/src/scopes.cc +962 -0
  311. data/ext/v8/upstream/2.3.3/src/scopes.h +400 -0
  312. data/ext/v8/upstream/2.3.3/src/serialize.cc +1461 -0
  313. data/ext/v8/upstream/2.3.3/src/serialize.h +581 -0
  314. data/ext/v8/upstream/2.3.3/src/shell.h +55 -0
  315. data/ext/v8/upstream/2.3.3/src/simulator.h +43 -0
  316. data/ext/v8/upstream/2.3.3/src/smart-pointer.h +109 -0
  317. data/ext/v8/upstream/2.3.3/src/snapshot-common.cc +82 -0
  318. data/ext/v8/upstream/2.3.3/src/snapshot-empty.cc +50 -0
  319. data/ext/v8/upstream/2.3.3/src/snapshot.h +71 -0
  320. data/ext/v8/upstream/2.3.3/src/spaces-inl.h +483 -0
  321. data/ext/v8/upstream/2.3.3/src/spaces.cc +2901 -0
  322. data/ext/v8/upstream/2.3.3/src/spaces.h +2197 -0
  323. data/ext/v8/upstream/2.3.3/src/splay-tree-inl.h +310 -0
  324. data/ext/v8/upstream/2.3.3/src/splay-tree.h +203 -0
  325. data/ext/v8/upstream/2.3.3/src/string-stream.cc +584 -0
  326. data/ext/v8/upstream/2.3.3/src/string-stream.h +189 -0
  327. data/ext/v8/upstream/2.3.3/src/string.js +1006 -0
  328. data/ext/v8/upstream/2.3.3/src/stub-cache.cc +1379 -0
  329. data/ext/v8/upstream/2.3.3/src/stub-cache.h +756 -0
  330. data/ext/v8/upstream/2.3.3/src/third_party/dtoa/COPYING +15 -0
  331. data/ext/v8/upstream/2.3.3/src/third_party/dtoa/dtoa.c +3334 -0
  332. data/ext/v8/upstream/2.3.3/src/third_party/valgrind/valgrind.h +3925 -0
  333. data/ext/v8/upstream/2.3.3/src/token.cc +56 -0
  334. data/ext/v8/upstream/2.3.3/src/token.h +270 -0
  335. data/ext/v8/upstream/2.3.3/src/top.cc +1067 -0
  336. data/ext/v8/upstream/2.3.3/src/top.h +463 -0
  337. data/ext/v8/upstream/2.3.3/src/type-info.cc +53 -0
  338. data/ext/v8/upstream/2.3.3/src/type-info.h +244 -0
  339. data/ext/v8/upstream/2.3.3/src/unbound-queue-inl.h +95 -0
  340. data/ext/v8/upstream/2.3.3/src/unbound-queue.h +67 -0
  341. data/ext/v8/upstream/2.3.3/src/unicode-inl.h +238 -0
  342. data/ext/v8/upstream/2.3.3/src/unicode.cc +749 -0
  343. data/ext/v8/upstream/2.3.3/src/unicode.h +279 -0
  344. data/ext/v8/upstream/2.3.3/src/uri.js +415 -0
  345. data/ext/v8/upstream/2.3.3/src/utils.cc +285 -0
  346. data/ext/v8/upstream/2.3.3/src/utils.h +745 -0
  347. data/ext/v8/upstream/2.3.3/src/v8-counters.cc +55 -0
  348. data/ext/v8/upstream/2.3.3/src/v8-counters.h +250 -0
  349. data/ext/v8/upstream/2.3.3/src/v8.cc +228 -0
  350. data/ext/v8/upstream/2.3.3/src/v8.h +121 -0
  351. data/ext/v8/upstream/2.3.3/src/v8dll-main.cc +39 -0
  352. data/ext/v8/upstream/2.3.3/src/v8natives.js +1188 -0
  353. data/ext/v8/upstream/2.3.3/src/v8threads.cc +461 -0
  354. data/ext/v8/upstream/2.3.3/src/v8threads.h +159 -0
  355. data/ext/v8/upstream/2.3.3/src/variables.cc +119 -0
  356. data/ext/v8/upstream/2.3.3/src/variables.h +205 -0
  357. data/ext/v8/upstream/2.3.3/src/version.cc +88 -0
  358. data/ext/v8/upstream/2.3.3/src/version.h +64 -0
  359. data/ext/v8/upstream/2.3.3/src/virtual-frame-heavy-inl.h +192 -0
  360. data/ext/v8/upstream/2.3.3/src/virtual-frame-heavy.cc +312 -0
  361. data/ext/v8/upstream/2.3.3/src/virtual-frame-inl.h +39 -0
  362. data/ext/v8/upstream/2.3.3/src/virtual-frame-light-inl.h +170 -0
  363. data/ext/v8/upstream/2.3.3/src/virtual-frame-light.cc +52 -0
  364. data/ext/v8/upstream/2.3.3/src/virtual-frame.cc +49 -0
  365. data/ext/v8/upstream/2.3.3/src/virtual-frame.h +46 -0
  366. data/ext/v8/upstream/2.3.3/src/vm-state-inl.h +137 -0
  367. data/ext/v8/upstream/2.3.3/src/vm-state.cc +39 -0
  368. data/ext/v8/upstream/2.3.3/src/vm-state.h +77 -0
  369. data/ext/v8/upstream/2.3.3/src/x64/assembler-x64-inl.h +400 -0
  370. data/ext/v8/upstream/2.3.3/src/x64/assembler-x64.cc +2963 -0
  371. data/ext/v8/upstream/2.3.3/src/x64/assembler-x64.h +1438 -0
  372. data/ext/v8/upstream/2.3.3/src/x64/builtins-x64.cc +1296 -0
  373. data/ext/v8/upstream/2.3.3/src/x64/codegen-x64-inl.h +46 -0
  374. data/ext/v8/upstream/2.3.3/src/x64/codegen-x64.cc +12491 -0
  375. data/ext/v8/upstream/2.3.3/src/x64/codegen-x64.h +1090 -0
  376. data/ext/v8/upstream/2.3.3/src/x64/cpu-x64.cc +83 -0
  377. data/ext/v8/upstream/2.3.3/src/x64/debug-x64.cc +267 -0
  378. data/ext/v8/upstream/2.3.3/src/x64/disasm-x64.cc +1696 -0
  379. data/ext/v8/upstream/2.3.3/src/x64/fast-codegen-x64.cc +250 -0
  380. data/ext/v8/upstream/2.3.3/src/x64/frames-x64.cc +113 -0
  381. data/ext/v8/upstream/2.3.3/src/x64/frames-x64.h +125 -0
  382. data/ext/v8/upstream/2.3.3/src/x64/full-codegen-x64.cc +3270 -0
  383. data/ext/v8/upstream/2.3.3/src/x64/ic-x64.cc +1907 -0
  384. data/ext/v8/upstream/2.3.3/src/x64/jump-target-x64.cc +437 -0
  385. data/ext/v8/upstream/2.3.3/src/x64/macro-assembler-x64.cc +2793 -0
  386. data/ext/v8/upstream/2.3.3/src/x64/macro-assembler-x64.h +916 -0
  387. data/ext/v8/upstream/2.3.3/src/x64/regexp-macro-assembler-x64.cc +1374 -0
  388. data/ext/v8/upstream/2.3.3/src/x64/regexp-macro-assembler-x64.h +277 -0
  389. data/ext/v8/upstream/2.3.3/src/x64/register-allocator-x64-inl.h +87 -0
  390. data/ext/v8/upstream/2.3.3/src/x64/register-allocator-x64.cc +91 -0
  391. data/ext/v8/upstream/2.3.3/src/x64/register-allocator-x64.h +43 -0
  392. data/ext/v8/upstream/2.3.3/src/x64/simulator-x64.cc +27 -0
  393. data/ext/v8/upstream/2.3.3/src/x64/simulator-x64.h +63 -0
  394. data/ext/v8/upstream/2.3.3/src/x64/stub-cache-x64.cc +2560 -0
  395. data/ext/v8/upstream/2.3.3/src/x64/virtual-frame-x64.cc +1264 -0
  396. data/ext/v8/upstream/2.3.3/src/x64/virtual-frame-x64.h +590 -0
  397. data/ext/v8/upstream/2.3.3/src/zone-inl.h +82 -0
  398. data/ext/v8/upstream/2.3.3/src/zone.cc +194 -0
  399. data/ext/v8/upstream/2.3.3/src/zone.h +221 -0
  400. data/ext/v8/upstream/2.3.3/tools/codemap.js +270 -0
  401. data/ext/v8/upstream/2.3.3/tools/consarray.js +93 -0
  402. data/ext/v8/upstream/2.3.3/tools/csvparser.js +83 -0
  403. data/ext/v8/upstream/2.3.3/tools/gc-nvp-trace-processor.py +317 -0
  404. data/ext/v8/upstream/2.3.3/tools/generate-ten-powers.scm +286 -0
  405. data/ext/v8/upstream/2.3.3/tools/gyp/v8.gyp +749 -0
  406. data/ext/v8/upstream/2.3.3/tools/js2c.py +380 -0
  407. data/ext/v8/upstream/2.3.3/tools/jsmin.py +280 -0
  408. data/ext/v8/upstream/2.3.3/tools/linux-tick-processor +33 -0
  409. data/ext/v8/upstream/2.3.3/tools/linux-tick-processor.py +78 -0
  410. data/ext/v8/upstream/2.3.3/tools/logreader.js +338 -0
  411. data/ext/v8/upstream/2.3.3/tools/mac-nm +18 -0
  412. data/ext/v8/upstream/2.3.3/tools/mac-tick-processor +6 -0
  413. data/ext/v8/upstream/2.3.3/tools/oprofile/annotate +7 -0
  414. data/ext/v8/upstream/2.3.3/tools/oprofile/common +19 -0
  415. data/ext/v8/upstream/2.3.3/tools/oprofile/dump +7 -0
  416. data/ext/v8/upstream/2.3.3/tools/oprofile/report +7 -0
  417. data/ext/v8/upstream/2.3.3/tools/oprofile/reset +7 -0
  418. data/ext/v8/upstream/2.3.3/tools/oprofile/run +14 -0
  419. data/ext/v8/upstream/2.3.3/tools/oprofile/shutdown +7 -0
  420. data/ext/v8/upstream/2.3.3/tools/oprofile/start +7 -0
  421. data/ext/v8/upstream/2.3.3/tools/presubmit.py +299 -0
  422. data/ext/v8/upstream/2.3.3/tools/process-heap-prof.py +120 -0
  423. data/ext/v8/upstream/2.3.3/tools/profile.js +691 -0
  424. data/ext/v8/upstream/2.3.3/tools/profile_view.js +224 -0
  425. data/ext/v8/upstream/2.3.3/tools/run-valgrind.py +77 -0
  426. data/ext/v8/upstream/2.3.3/tools/splaytree.js +322 -0
  427. data/ext/v8/upstream/2.3.3/tools/splaytree.py +226 -0
  428. data/ext/v8/upstream/2.3.3/tools/stats-viewer.py +468 -0
  429. data/ext/v8/upstream/2.3.3/tools/tickprocessor-driver.js +59 -0
  430. data/ext/v8/upstream/2.3.3/tools/tickprocessor.js +862 -0
  431. data/ext/v8/upstream/2.3.3/tools/tickprocessor.py +571 -0
  432. data/ext/v8/upstream/2.3.3/tools/utils.py +88 -0
  433. data/ext/v8/upstream/2.3.3/tools/visual_studio/README.txt +71 -0
  434. data/ext/v8/upstream/2.3.3/tools/visual_studio/arm.vsprops +14 -0
  435. data/ext/v8/upstream/2.3.3/tools/visual_studio/common.vsprops +34 -0
  436. data/ext/v8/upstream/2.3.3/tools/visual_studio/d8.vcproj +193 -0
  437. data/ext/v8/upstream/2.3.3/tools/visual_studio/d8_arm.vcproj +193 -0
  438. data/ext/v8/upstream/2.3.3/tools/visual_studio/d8_x64.vcproj +209 -0
  439. data/ext/v8/upstream/2.3.3/tools/visual_studio/d8js2c.cmd +6 -0
  440. data/ext/v8/upstream/2.3.3/tools/visual_studio/debug.vsprops +17 -0
  441. data/ext/v8/upstream/2.3.3/tools/visual_studio/ia32.vsprops +17 -0
  442. data/ext/v8/upstream/2.3.3/tools/visual_studio/js2c.cmd +6 -0
  443. data/ext/v8/upstream/2.3.3/tools/visual_studio/release.vsprops +24 -0
  444. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8.sln +101 -0
  445. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8.vcproj +227 -0
  446. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_arm.sln +74 -0
  447. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_arm.vcproj +227 -0
  448. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base.vcproj +1143 -0
  449. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base_arm.vcproj +1115 -0
  450. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base_x64.vcproj +1096 -0
  451. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_cctest.vcproj +265 -0
  452. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_cctest_arm.vcproj +249 -0
  453. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_cctest_x64.vcproj +257 -0
  454. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_mksnapshot.vcproj +145 -0
  455. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_mksnapshot_x64.vcproj +145 -0
  456. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_process_sample.vcproj +145 -0
  457. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_process_sample_arm.vcproj +145 -0
  458. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_process_sample_x64.vcproj +161 -0
  459. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample.vcproj +145 -0
  460. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample_arm.vcproj +145 -0
  461. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample_x64.vcproj +161 -0
  462. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_snapshot.vcproj +142 -0
  463. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_snapshot_cc.vcproj +92 -0
  464. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_snapshot_cc_x64.vcproj +92 -0
  465. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_snapshot_x64.vcproj +142 -0
  466. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_x64.sln +101 -0
  467. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_x64.vcproj +227 -0
  468. data/ext/v8/upstream/2.3.3/tools/visual_studio/x64.vsprops +17 -0
  469. data/ext/v8/upstream/2.3.3/tools/windows-tick-processor.bat +29 -0
  470. data/ext/v8/upstream/2.3.3/tools/windows-tick-processor.py +137 -0
  471. data/ext/v8/upstream/Makefile +38 -0
  472. data/ext/v8/upstream/build/scons/CHANGES.txt +5183 -0
  473. data/ext/v8/upstream/build/scons/LICENSE.txt +20 -0
  474. data/ext/v8/upstream/build/scons/MANIFEST +202 -0
  475. data/ext/v8/upstream/build/scons/PKG-INFO +13 -0
  476. data/ext/v8/upstream/build/scons/README.txt +273 -0
  477. data/ext/v8/upstream/build/scons/RELEASE.txt +1040 -0
  478. data/ext/v8/upstream/build/scons/build/lib/SCons/Action.py +1256 -0
  479. data/ext/v8/upstream/build/scons/build/lib/SCons/Builder.py +868 -0
  480. data/ext/v8/upstream/build/scons/build/lib/SCons/CacheDir.py +217 -0
  481. data/ext/v8/upstream/build/scons/build/lib/SCons/Conftest.py +794 -0
  482. data/ext/v8/upstream/build/scons/build/lib/SCons/Debug.py +237 -0
  483. data/ext/v8/upstream/build/scons/build/lib/SCons/Defaults.py +485 -0
  484. data/ext/v8/upstream/build/scons/build/lib/SCons/Environment.py +2327 -0
  485. data/ext/v8/upstream/build/scons/build/lib/SCons/Errors.py +207 -0
  486. data/ext/v8/upstream/build/scons/build/lib/SCons/Executor.py +636 -0
  487. data/ext/v8/upstream/build/scons/build/lib/SCons/Job.py +435 -0
  488. data/ext/v8/upstream/build/scons/build/lib/SCons/Memoize.py +292 -0
  489. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/Alias.py +153 -0
  490. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/FS.py +3220 -0
  491. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/Python.py +128 -0
  492. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/__init__.py +1341 -0
  493. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/BoolOption.py +50 -0
  494. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/EnumOption.py +50 -0
  495. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/ListOption.py +50 -0
  496. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/PackageOption.py +50 -0
  497. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/PathOption.py +76 -0
  498. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/__init__.py +74 -0
  499. data/ext/v8/upstream/build/scons/build/lib/SCons/PathList.py +232 -0
  500. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/__init__.py +236 -0
  501. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/aix.py +70 -0
  502. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/cygwin.py +55 -0
  503. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/darwin.py +46 -0
  504. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/hpux.py +46 -0
  505. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/irix.py +44 -0
  506. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/os2.py +58 -0
  507. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/posix.py +264 -0
  508. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/sunos.py +50 -0
  509. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/win32.py +386 -0
  510. data/ext/v8/upstream/build/scons/build/lib/SCons/SConf.py +1038 -0
  511. data/ext/v8/upstream/build/scons/build/lib/SCons/SConsign.py +381 -0
  512. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/C.py +132 -0
  513. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/D.py +74 -0
  514. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/Dir.py +111 -0
  515. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/Fortran.py +320 -0
  516. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/IDL.py +48 -0
  517. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/LaTeX.py +378 -0
  518. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/Prog.py +103 -0
  519. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/RC.py +55 -0
  520. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/__init__.py +415 -0
  521. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/Interactive.py +386 -0
  522. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/Main.py +1360 -0
  523. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/SConsOptions.py +944 -0
  524. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/SConscript.py +642 -0
  525. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/__init__.py +414 -0
  526. data/ext/v8/upstream/build/scons/build/lib/SCons/Sig.py +63 -0
  527. data/ext/v8/upstream/build/scons/build/lib/SCons/Subst.py +911 -0
  528. data/ext/v8/upstream/build/scons/build/lib/SCons/Taskmaster.py +1030 -0
  529. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/386asm.py +61 -0
  530. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/BitKeeper.py +65 -0
  531. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/CVS.py +73 -0
  532. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/FortranCommon.py +247 -0
  533. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/JavaCommon.py +324 -0
  534. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/__init__.py +56 -0
  535. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/arch.py +61 -0
  536. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/common.py +210 -0
  537. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/netframework.py +84 -0
  538. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/sdk.py +321 -0
  539. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/vc.py +367 -0
  540. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/vs.py +497 -0
  541. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/Perforce.py +104 -0
  542. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/PharLapCommon.py +138 -0
  543. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/RCS.py +64 -0
  544. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/SCCS.py +64 -0
  545. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/Subversion.py +71 -0
  546. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/__init__.py +675 -0
  547. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixc++.py +82 -0
  548. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixcc.py +74 -0
  549. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixf77.py +80 -0
  550. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixlink.py +76 -0
  551. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/applelink.py +71 -0
  552. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ar.py +63 -0
  553. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/as.py +78 -0
  554. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/bcc32.py +82 -0
  555. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/c++.py +99 -0
  556. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/cc.py +114 -0
  557. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/cvf.py +58 -0
  558. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/default.py +50 -0
  559. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dmd.py +224 -0
  560. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dvi.py +64 -0
  561. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dvipdf.py +125 -0
  562. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dvips.py +94 -0
  563. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/f77.py +62 -0
  564. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/f90.py +62 -0
  565. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/f95.py +63 -0
  566. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/filesystem.py +98 -0
  567. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/fortran.py +63 -0
  568. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/g++.py +90 -0
  569. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/g77.py +73 -0
  570. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gas.py +53 -0
  571. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gcc.py +80 -0
  572. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gfortran.py +64 -0
  573. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gnulink.py +63 -0
  574. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gs.py +81 -0
  575. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/hpc++.py +85 -0
  576. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/hpcc.py +53 -0
  577. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/hplink.py +77 -0
  578. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/icc.py +59 -0
  579. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/icl.py +52 -0
  580. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ifl.py +72 -0
  581. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ifort.py +90 -0
  582. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ilink.py +59 -0
  583. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ilink32.py +60 -0
  584. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/install.py +229 -0
  585. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/intelc.py +490 -0
  586. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ipkg.py +71 -0
  587. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/jar.py +110 -0
  588. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/javac.py +234 -0
  589. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/javah.py +138 -0
  590. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/latex.py +79 -0
  591. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/lex.py +99 -0
  592. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/link.py +121 -0
  593. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/linkloc.py +112 -0
  594. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/m4.py +63 -0
  595. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/masm.py +77 -0
  596. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/midl.py +90 -0
  597. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mingw.py +159 -0
  598. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mslib.py +64 -0
  599. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mslink.py +266 -0
  600. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mssdk.py +50 -0
  601. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/msvc.py +269 -0
  602. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/msvs.py +1439 -0
  603. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mwcc.py +208 -0
  604. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mwld.py +107 -0
  605. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/nasm.py +72 -0
  606. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/__init__.py +314 -0
  607. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/ipk.py +185 -0
  608. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/msi.py +526 -0
  609. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/rpm.py +367 -0
  610. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/src_tarbz2.py +43 -0
  611. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/src_targz.py +43 -0
  612. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/src_zip.py +43 -0
  613. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/tarbz2.py +44 -0
  614. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/targz.py +44 -0
  615. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/zip.py +44 -0
  616. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/pdf.py +78 -0
  617. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/pdflatex.py +83 -0
  618. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/pdftex.py +108 -0
  619. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/qt.py +336 -0
  620. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/rmic.py +121 -0
  621. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/rpcgen.py +70 -0
  622. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/rpm.py +132 -0
  623. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgiar.py +68 -0
  624. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgic++.py +58 -0
  625. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgicc.py +53 -0
  626. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgilink.py +63 -0
  627. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunar.py +67 -0
  628. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunc++.py +142 -0
  629. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/suncc.py +58 -0
  630. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunf77.py +63 -0
  631. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunf90.py +64 -0
  632. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunf95.py +64 -0
  633. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunlink.py +77 -0
  634. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/swig.py +186 -0
  635. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/tar.py +73 -0
  636. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/tex.py +805 -0
  637. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/textfile.py +175 -0
  638. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/tlib.py +53 -0
  639. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/wix.py +100 -0
  640. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/yacc.py +131 -0
  641. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/zip.py +100 -0
  642. data/ext/v8/upstream/build/scons/build/lib/SCons/Util.py +1645 -0
  643. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/BoolVariable.py +91 -0
  644. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/EnumVariable.py +107 -0
  645. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/ListVariable.py +139 -0
  646. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/PackageVariable.py +109 -0
  647. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/PathVariable.py +147 -0
  648. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/__init__.py +317 -0
  649. data/ext/v8/upstream/build/scons/build/lib/SCons/Warnings.py +228 -0
  650. data/ext/v8/upstream/build/scons/build/lib/SCons/__init__.py +49 -0
  651. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/__init__.py +302 -0
  652. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_UserString.py +98 -0
  653. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_hashlib.py +91 -0
  654. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_itertools.py +124 -0
  655. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_optparse.py +1725 -0
  656. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_sets.py +583 -0
  657. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_sets15.py +176 -0
  658. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_shlex.py +325 -0
  659. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_subprocess.py +1296 -0
  660. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_textwrap.py +382 -0
  661. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/builtins.py +187 -0
  662. data/ext/v8/upstream/build/scons/build/lib/SCons/cpp.py +598 -0
  663. data/ext/v8/upstream/build/scons/build/lib/SCons/dblite.py +248 -0
  664. data/ext/v8/upstream/build/scons/build/lib/SCons/exitfuncs.py +77 -0
  665. data/ext/v8/upstream/build/scons/build/scripts/scons +184 -0
  666. data/ext/v8/upstream/build/scons/build/scripts/scons-time +1529 -0
  667. data/ext/v8/upstream/build/scons/build/scripts/scons.bat +31 -0
  668. data/ext/v8/upstream/build/scons/build/scripts/sconsign +508 -0
  669. data/ext/v8/upstream/build/scons/engine/SCons/Action.py +1256 -0
  670. data/ext/v8/upstream/build/scons/engine/SCons/Builder.py +868 -0
  671. data/ext/v8/upstream/build/scons/engine/SCons/CacheDir.py +217 -0
  672. data/ext/v8/upstream/build/scons/engine/SCons/Conftest.py +794 -0
  673. data/ext/v8/upstream/build/scons/engine/SCons/Debug.py +237 -0
  674. data/ext/v8/upstream/build/scons/engine/SCons/Defaults.py +485 -0
  675. data/ext/v8/upstream/build/scons/engine/SCons/Environment.py +2327 -0
  676. data/ext/v8/upstream/build/scons/engine/SCons/Errors.py +207 -0
  677. data/ext/v8/upstream/build/scons/engine/SCons/Executor.py +636 -0
  678. data/ext/v8/upstream/build/scons/engine/SCons/Job.py +435 -0
  679. data/ext/v8/upstream/build/scons/engine/SCons/Memoize.py +292 -0
  680. data/ext/v8/upstream/build/scons/engine/SCons/Node/Alias.py +153 -0
  681. data/ext/v8/upstream/build/scons/engine/SCons/Node/FS.py +3220 -0
  682. data/ext/v8/upstream/build/scons/engine/SCons/Node/Python.py +128 -0
  683. data/ext/v8/upstream/build/scons/engine/SCons/Node/__init__.py +1341 -0
  684. data/ext/v8/upstream/build/scons/engine/SCons/Options/BoolOption.py +50 -0
  685. data/ext/v8/upstream/build/scons/engine/SCons/Options/EnumOption.py +50 -0
  686. data/ext/v8/upstream/build/scons/engine/SCons/Options/ListOption.py +50 -0
  687. data/ext/v8/upstream/build/scons/engine/SCons/Options/PackageOption.py +50 -0
  688. data/ext/v8/upstream/build/scons/engine/SCons/Options/PathOption.py +76 -0
  689. data/ext/v8/upstream/build/scons/engine/SCons/Options/__init__.py +74 -0
  690. data/ext/v8/upstream/build/scons/engine/SCons/PathList.py +232 -0
  691. data/ext/v8/upstream/build/scons/engine/SCons/Platform/__init__.py +236 -0
  692. data/ext/v8/upstream/build/scons/engine/SCons/Platform/aix.py +70 -0
  693. data/ext/v8/upstream/build/scons/engine/SCons/Platform/cygwin.py +55 -0
  694. data/ext/v8/upstream/build/scons/engine/SCons/Platform/darwin.py +46 -0
  695. data/ext/v8/upstream/build/scons/engine/SCons/Platform/hpux.py +46 -0
  696. data/ext/v8/upstream/build/scons/engine/SCons/Platform/irix.py +44 -0
  697. data/ext/v8/upstream/build/scons/engine/SCons/Platform/os2.py +58 -0
  698. data/ext/v8/upstream/build/scons/engine/SCons/Platform/posix.py +264 -0
  699. data/ext/v8/upstream/build/scons/engine/SCons/Platform/sunos.py +50 -0
  700. data/ext/v8/upstream/build/scons/engine/SCons/Platform/win32.py +386 -0
  701. data/ext/v8/upstream/build/scons/engine/SCons/SConf.py +1038 -0
  702. data/ext/v8/upstream/build/scons/engine/SCons/SConsign.py +381 -0
  703. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/C.py +132 -0
  704. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/D.py +74 -0
  705. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/Dir.py +111 -0
  706. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/Fortran.py +320 -0
  707. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/IDL.py +48 -0
  708. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/LaTeX.py +378 -0
  709. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/Prog.py +103 -0
  710. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/RC.py +55 -0
  711. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/__init__.py +415 -0
  712. data/ext/v8/upstream/build/scons/engine/SCons/Script/Interactive.py +386 -0
  713. data/ext/v8/upstream/build/scons/engine/SCons/Script/Main.py +1360 -0
  714. data/ext/v8/upstream/build/scons/engine/SCons/Script/SConsOptions.py +944 -0
  715. data/ext/v8/upstream/build/scons/engine/SCons/Script/SConscript.py +642 -0
  716. data/ext/v8/upstream/build/scons/engine/SCons/Script/__init__.py +414 -0
  717. data/ext/v8/upstream/build/scons/engine/SCons/Sig.py +63 -0
  718. data/ext/v8/upstream/build/scons/engine/SCons/Subst.py +911 -0
  719. data/ext/v8/upstream/build/scons/engine/SCons/Taskmaster.py +1030 -0
  720. data/ext/v8/upstream/build/scons/engine/SCons/Tool/386asm.py +61 -0
  721. data/ext/v8/upstream/build/scons/engine/SCons/Tool/BitKeeper.py +65 -0
  722. data/ext/v8/upstream/build/scons/engine/SCons/Tool/CVS.py +73 -0
  723. data/ext/v8/upstream/build/scons/engine/SCons/Tool/FortranCommon.py +247 -0
  724. data/ext/v8/upstream/build/scons/engine/SCons/Tool/JavaCommon.py +324 -0
  725. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/__init__.py +56 -0
  726. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/arch.py +61 -0
  727. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/common.py +210 -0
  728. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/netframework.py +84 -0
  729. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/sdk.py +321 -0
  730. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/vc.py +367 -0
  731. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/vs.py +497 -0
  732. data/ext/v8/upstream/build/scons/engine/SCons/Tool/Perforce.py +104 -0
  733. data/ext/v8/upstream/build/scons/engine/SCons/Tool/PharLapCommon.py +138 -0
  734. data/ext/v8/upstream/build/scons/engine/SCons/Tool/RCS.py +64 -0
  735. data/ext/v8/upstream/build/scons/engine/SCons/Tool/SCCS.py +64 -0
  736. data/ext/v8/upstream/build/scons/engine/SCons/Tool/Subversion.py +71 -0
  737. data/ext/v8/upstream/build/scons/engine/SCons/Tool/__init__.py +675 -0
  738. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixc++.py +82 -0
  739. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixcc.py +74 -0
  740. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixf77.py +80 -0
  741. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixlink.py +76 -0
  742. data/ext/v8/upstream/build/scons/engine/SCons/Tool/applelink.py +71 -0
  743. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ar.py +63 -0
  744. data/ext/v8/upstream/build/scons/engine/SCons/Tool/as.py +78 -0
  745. data/ext/v8/upstream/build/scons/engine/SCons/Tool/bcc32.py +82 -0
  746. data/ext/v8/upstream/build/scons/engine/SCons/Tool/c++.py +99 -0
  747. data/ext/v8/upstream/build/scons/engine/SCons/Tool/cc.py +114 -0
  748. data/ext/v8/upstream/build/scons/engine/SCons/Tool/cvf.py +58 -0
  749. data/ext/v8/upstream/build/scons/engine/SCons/Tool/default.py +50 -0
  750. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dmd.py +224 -0
  751. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dvi.py +64 -0
  752. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dvipdf.py +125 -0
  753. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dvips.py +94 -0
  754. data/ext/v8/upstream/build/scons/engine/SCons/Tool/f77.py +62 -0
  755. data/ext/v8/upstream/build/scons/engine/SCons/Tool/f90.py +62 -0
  756. data/ext/v8/upstream/build/scons/engine/SCons/Tool/f95.py +63 -0
  757. data/ext/v8/upstream/build/scons/engine/SCons/Tool/filesystem.py +98 -0
  758. data/ext/v8/upstream/build/scons/engine/SCons/Tool/fortran.py +63 -0
  759. data/ext/v8/upstream/build/scons/engine/SCons/Tool/g++.py +90 -0
  760. data/ext/v8/upstream/build/scons/engine/SCons/Tool/g77.py +73 -0
  761. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gas.py +53 -0
  762. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gcc.py +80 -0
  763. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gfortran.py +64 -0
  764. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gnulink.py +63 -0
  765. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gs.py +81 -0
  766. data/ext/v8/upstream/build/scons/engine/SCons/Tool/hpc++.py +85 -0
  767. data/ext/v8/upstream/build/scons/engine/SCons/Tool/hpcc.py +53 -0
  768. data/ext/v8/upstream/build/scons/engine/SCons/Tool/hplink.py +77 -0
  769. data/ext/v8/upstream/build/scons/engine/SCons/Tool/icc.py +59 -0
  770. data/ext/v8/upstream/build/scons/engine/SCons/Tool/icl.py +52 -0
  771. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ifl.py +72 -0
  772. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ifort.py +90 -0
  773. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ilink.py +59 -0
  774. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ilink32.py +60 -0
  775. data/ext/v8/upstream/build/scons/engine/SCons/Tool/install.py +229 -0
  776. data/ext/v8/upstream/build/scons/engine/SCons/Tool/intelc.py +490 -0
  777. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ipkg.py +71 -0
  778. data/ext/v8/upstream/build/scons/engine/SCons/Tool/jar.py +110 -0
  779. data/ext/v8/upstream/build/scons/engine/SCons/Tool/javac.py +234 -0
  780. data/ext/v8/upstream/build/scons/engine/SCons/Tool/javah.py +138 -0
  781. data/ext/v8/upstream/build/scons/engine/SCons/Tool/latex.py +79 -0
  782. data/ext/v8/upstream/build/scons/engine/SCons/Tool/lex.py +99 -0
  783. data/ext/v8/upstream/build/scons/engine/SCons/Tool/link.py +121 -0
  784. data/ext/v8/upstream/build/scons/engine/SCons/Tool/linkloc.py +112 -0
  785. data/ext/v8/upstream/build/scons/engine/SCons/Tool/m4.py +63 -0
  786. data/ext/v8/upstream/build/scons/engine/SCons/Tool/masm.py +77 -0
  787. data/ext/v8/upstream/build/scons/engine/SCons/Tool/midl.py +90 -0
  788. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mingw.py +159 -0
  789. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mslib.py +64 -0
  790. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mslink.py +266 -0
  791. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mssdk.py +50 -0
  792. data/ext/v8/upstream/build/scons/engine/SCons/Tool/msvc.py +269 -0
  793. data/ext/v8/upstream/build/scons/engine/SCons/Tool/msvs.py +1439 -0
  794. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mwcc.py +208 -0
  795. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mwld.py +107 -0
  796. data/ext/v8/upstream/build/scons/engine/SCons/Tool/nasm.py +72 -0
  797. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/__init__.py +314 -0
  798. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/ipk.py +185 -0
  799. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/msi.py +526 -0
  800. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/rpm.py +367 -0
  801. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/src_tarbz2.py +43 -0
  802. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/src_targz.py +43 -0
  803. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/src_zip.py +43 -0
  804. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/tarbz2.py +44 -0
  805. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/targz.py +44 -0
  806. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/zip.py +44 -0
  807. data/ext/v8/upstream/build/scons/engine/SCons/Tool/pdf.py +78 -0
  808. data/ext/v8/upstream/build/scons/engine/SCons/Tool/pdflatex.py +83 -0
  809. data/ext/v8/upstream/build/scons/engine/SCons/Tool/pdftex.py +108 -0
  810. data/ext/v8/upstream/build/scons/engine/SCons/Tool/qt.py +336 -0
  811. data/ext/v8/upstream/build/scons/engine/SCons/Tool/rmic.py +121 -0
  812. data/ext/v8/upstream/build/scons/engine/SCons/Tool/rpcgen.py +70 -0
  813. data/ext/v8/upstream/build/scons/engine/SCons/Tool/rpm.py +132 -0
  814. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgiar.py +68 -0
  815. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgic++.py +58 -0
  816. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgicc.py +53 -0
  817. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgilink.py +63 -0
  818. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunar.py +67 -0
  819. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunc++.py +142 -0
  820. data/ext/v8/upstream/build/scons/engine/SCons/Tool/suncc.py +58 -0
  821. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunf77.py +63 -0
  822. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunf90.py +64 -0
  823. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunf95.py +64 -0
  824. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunlink.py +77 -0
  825. data/ext/v8/upstream/build/scons/engine/SCons/Tool/swig.py +186 -0
  826. data/ext/v8/upstream/build/scons/engine/SCons/Tool/tar.py +73 -0
  827. data/ext/v8/upstream/build/scons/engine/SCons/Tool/tex.py +805 -0
  828. data/ext/v8/upstream/build/scons/engine/SCons/Tool/textfile.py +175 -0
  829. data/ext/v8/upstream/build/scons/engine/SCons/Tool/tlib.py +53 -0
  830. data/ext/v8/upstream/build/scons/engine/SCons/Tool/wix.py +100 -0
  831. data/ext/v8/upstream/build/scons/engine/SCons/Tool/yacc.py +131 -0
  832. data/ext/v8/upstream/build/scons/engine/SCons/Tool/zip.py +100 -0
  833. data/ext/v8/upstream/build/scons/engine/SCons/Util.py +1645 -0
  834. data/ext/v8/upstream/build/scons/engine/SCons/Variables/BoolVariable.py +91 -0
  835. data/ext/v8/upstream/build/scons/engine/SCons/Variables/EnumVariable.py +107 -0
  836. data/ext/v8/upstream/build/scons/engine/SCons/Variables/ListVariable.py +139 -0
  837. data/ext/v8/upstream/build/scons/engine/SCons/Variables/PackageVariable.py +109 -0
  838. data/ext/v8/upstream/build/scons/engine/SCons/Variables/PathVariable.py +147 -0
  839. data/ext/v8/upstream/build/scons/engine/SCons/Variables/__init__.py +317 -0
  840. data/ext/v8/upstream/build/scons/engine/SCons/Warnings.py +228 -0
  841. data/ext/v8/upstream/build/scons/engine/SCons/__init__.py +49 -0
  842. data/ext/v8/upstream/build/scons/engine/SCons/compat/__init__.py +302 -0
  843. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_UserString.py +98 -0
  844. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_hashlib.py +91 -0
  845. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_itertools.py +124 -0
  846. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_optparse.py +1725 -0
  847. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_sets.py +583 -0
  848. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_sets15.py +176 -0
  849. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_shlex.py +325 -0
  850. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_subprocess.py +1296 -0
  851. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_textwrap.py +382 -0
  852. data/ext/v8/upstream/build/scons/engine/SCons/compat/builtins.py +187 -0
  853. data/ext/v8/upstream/build/scons/engine/SCons/cpp.py +598 -0
  854. data/ext/v8/upstream/build/scons/engine/SCons/dblite.py +248 -0
  855. data/ext/v8/upstream/build/scons/engine/SCons/exitfuncs.py +77 -0
  856. data/ext/v8/upstream/build/scons/install/bin/scons +184 -0
  857. data/ext/v8/upstream/build/scons/install/bin/scons-1.2.0.d20100117 +184 -0
  858. data/ext/v8/upstream/build/scons/install/bin/scons-time +1529 -0
  859. data/ext/v8/upstream/build/scons/install/bin/scons-time-1.2.0.d20100117 +1529 -0
  860. data/ext/v8/upstream/build/scons/install/bin/sconsign +508 -0
  861. data/ext/v8/upstream/build/scons/install/bin/sconsign-1.2.0.d20100117 +508 -0
  862. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Action.py +1256 -0
  863. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Action.pyc +0 -0
  864. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Builder.py +868 -0
  865. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Builder.pyc +0 -0
  866. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/CacheDir.py +217 -0
  867. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/CacheDir.pyc +0 -0
  868. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Conftest.py +794 -0
  869. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Conftest.pyc +0 -0
  870. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Debug.py +237 -0
  871. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Debug.pyc +0 -0
  872. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Defaults.py +485 -0
  873. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Defaults.pyc +0 -0
  874. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Environment.py +2327 -0
  875. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Environment.pyc +0 -0
  876. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Errors.py +207 -0
  877. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Errors.pyc +0 -0
  878. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Executor.py +636 -0
  879. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Executor.pyc +0 -0
  880. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Job.py +435 -0
  881. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Job.pyc +0 -0
  882. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Memoize.py +292 -0
  883. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Memoize.pyc +0 -0
  884. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Alias.py +153 -0
  885. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Alias.pyc +0 -0
  886. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/FS.py +3220 -0
  887. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/FS.pyc +0 -0
  888. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Python.py +128 -0
  889. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Python.pyc +0 -0
  890. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/__init__.py +1341 -0
  891. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/__init__.pyc +0 -0
  892. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/BoolOption.py +50 -0
  893. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/BoolOption.pyc +0 -0
  894. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/EnumOption.py +50 -0
  895. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/EnumOption.pyc +0 -0
  896. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/ListOption.py +50 -0
  897. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/ListOption.pyc +0 -0
  898. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PackageOption.py +50 -0
  899. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PackageOption.pyc +0 -0
  900. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PathOption.py +76 -0
  901. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PathOption.pyc +0 -0
  902. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/__init__.py +74 -0
  903. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/__init__.pyc +0 -0
  904. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/PathList.py +232 -0
  905. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/PathList.pyc +0 -0
  906. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/__init__.py +236 -0
  907. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/__init__.pyc +0 -0
  908. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/aix.py +70 -0
  909. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/aix.pyc +0 -0
  910. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/cygwin.py +55 -0
  911. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/cygwin.pyc +0 -0
  912. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/darwin.py +46 -0
  913. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/darwin.pyc +0 -0
  914. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/hpux.py +46 -0
  915. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/hpux.pyc +0 -0
  916. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/irix.py +44 -0
  917. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/irix.pyc +0 -0
  918. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/os2.py +58 -0
  919. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/os2.pyc +0 -0
  920. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/posix.py +264 -0
  921. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/posix.pyc +0 -0
  922. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/sunos.py +50 -0
  923. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/sunos.pyc +0 -0
  924. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/win32.py +386 -0
  925. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/win32.pyc +0 -0
  926. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConf.py +1038 -0
  927. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConf.pyc +0 -0
  928. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConsign.py +381 -0
  929. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConsign.pyc +0 -0
  930. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/C.py +132 -0
  931. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/C.pyc +0 -0
  932. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/D.py +74 -0
  933. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/D.pyc +0 -0
  934. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Dir.py +111 -0
  935. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Dir.pyc +0 -0
  936. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Fortran.py +320 -0
  937. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Fortran.pyc +0 -0
  938. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/IDL.py +48 -0
  939. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/IDL.pyc +0 -0
  940. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/LaTeX.py +378 -0
  941. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/LaTeX.pyc +0 -0
  942. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Prog.py +103 -0
  943. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Prog.pyc +0 -0
  944. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/RC.py +55 -0
  945. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/RC.pyc +0 -0
  946. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/__init__.py +415 -0
  947. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/__init__.pyc +0 -0
  948. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Interactive.py +386 -0
  949. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Interactive.pyc +0 -0
  950. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Main.py +1360 -0
  951. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Main.pyc +0 -0
  952. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConsOptions.py +944 -0
  953. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConsOptions.pyc +0 -0
  954. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConscript.py +642 -0
  955. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConscript.pyc +0 -0
  956. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/__init__.py +414 -0
  957. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/__init__.pyc +0 -0
  958. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Sig.py +63 -0
  959. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Sig.pyc +0 -0
  960. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Subst.py +911 -0
  961. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Subst.pyc +0 -0
  962. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Taskmaster.py +1030 -0
  963. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Taskmaster.pyc +0 -0
  964. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/386asm.py +61 -0
  965. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/386asm.pyc +0 -0
  966. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/BitKeeper.py +65 -0
  967. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/BitKeeper.pyc +0 -0
  968. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/CVS.py +73 -0
  969. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/CVS.pyc +0 -0
  970. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/FortranCommon.py +247 -0
  971. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/FortranCommon.pyc +0 -0
  972. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/JavaCommon.py +324 -0
  973. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/JavaCommon.pyc +0 -0
  974. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/__init__.py +56 -0
  975. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/__init__.pyc +0 -0
  976. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/arch.py +61 -0
  977. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/arch.pyc +0 -0
  978. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/common.py +210 -0
  979. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/common.pyc +0 -0
  980. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/netframework.py +84 -0
  981. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/netframework.pyc +0 -0
  982. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/sdk.py +321 -0
  983. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/sdk.pyc +0 -0
  984. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vc.py +367 -0
  985. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vc.pyc +0 -0
  986. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vs.py +497 -0
  987. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vs.pyc +0 -0
  988. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Perforce.py +104 -0
  989. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Perforce.pyc +0 -0
  990. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/PharLapCommon.py +138 -0
  991. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/PharLapCommon.pyc +0 -0
  992. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/RCS.py +64 -0
  993. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/RCS.pyc +0 -0
  994. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/SCCS.py +64 -0
  995. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/SCCS.pyc +0 -0
  996. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Subversion.py +71 -0
  997. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Subversion.pyc +0 -0
  998. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/__init__.py +675 -0
  999. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/__init__.pyc +0 -0
  1000. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixc++.py +82 -0
  1001. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixc++.pyc +0 -0
  1002. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixcc.py +74 -0
  1003. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixcc.pyc +0 -0
  1004. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixf77.py +80 -0
  1005. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixf77.pyc +0 -0
  1006. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixlink.py +76 -0
  1007. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixlink.pyc +0 -0
  1008. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/applelink.py +71 -0
  1009. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/applelink.pyc +0 -0
  1010. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ar.py +63 -0
  1011. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ar.pyc +0 -0
  1012. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/as.py +78 -0
  1013. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/as.pyc +0 -0
  1014. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/bcc32.py +82 -0
  1015. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/bcc32.pyc +0 -0
  1016. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/c++.py +99 -0
  1017. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/c++.pyc +0 -0
  1018. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cc.py +114 -0
  1019. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cc.pyc +0 -0
  1020. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cvf.py +58 -0
  1021. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cvf.pyc +0 -0
  1022. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/default.py +50 -0
  1023. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/default.pyc +0 -0
  1024. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dmd.py +224 -0
  1025. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dmd.pyc +0 -0
  1026. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvi.py +64 -0
  1027. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvi.pyc +0 -0
  1028. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvipdf.py +125 -0
  1029. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvipdf.pyc +0 -0
  1030. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvips.py +94 -0
  1031. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvips.pyc +0 -0
  1032. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f77.py +62 -0
  1033. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f77.pyc +0 -0
  1034. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f90.py +62 -0
  1035. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f90.pyc +0 -0
  1036. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f95.py +63 -0
  1037. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f95.pyc +0 -0
  1038. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/filesystem.py +98 -0
  1039. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/filesystem.pyc +0 -0
  1040. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/fortran.py +63 -0
  1041. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/fortran.pyc +0 -0
  1042. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g++.py +90 -0
  1043. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g++.pyc +0 -0
  1044. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g77.py +73 -0
  1045. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g77.pyc +0 -0
  1046. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gas.py +53 -0
  1047. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gas.pyc +0 -0
  1048. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gcc.py +80 -0
  1049. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gcc.pyc +0 -0
  1050. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gfortran.py +64 -0
  1051. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gfortran.pyc +0 -0
  1052. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gnulink.py +63 -0
  1053. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gnulink.pyc +0 -0
  1054. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gs.py +81 -0
  1055. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gs.pyc +0 -0
  1056. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpc++.py +85 -0
  1057. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpc++.pyc +0 -0
  1058. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpcc.py +53 -0
  1059. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpcc.pyc +0 -0
  1060. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hplink.py +77 -0
  1061. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hplink.pyc +0 -0
  1062. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icc.py +59 -0
  1063. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icc.pyc +0 -0
  1064. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icl.py +52 -0
  1065. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icl.pyc +0 -0
  1066. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifl.py +72 -0
  1067. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifl.pyc +0 -0
  1068. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifort.py +90 -0
  1069. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifort.pyc +0 -0
  1070. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink.py +59 -0
  1071. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink.pyc +0 -0
  1072. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink32.py +60 -0
  1073. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink32.pyc +0 -0
  1074. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/install.py +229 -0
  1075. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/install.pyc +0 -0
  1076. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/intelc.py +490 -0
  1077. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/intelc.pyc +0 -0
  1078. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ipkg.py +71 -0
  1079. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ipkg.pyc +0 -0
  1080. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/jar.py +110 -0
  1081. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/jar.pyc +0 -0
  1082. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javac.py +234 -0
  1083. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javac.pyc +0 -0
  1084. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javah.py +138 -0
  1085. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javah.pyc +0 -0
  1086. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/latex.py +79 -0
  1087. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/latex.pyc +0 -0
  1088. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/lex.py +99 -0
  1089. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/lex.pyc +0 -0
  1090. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/link.py +121 -0
  1091. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/link.pyc +0 -0
  1092. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/linkloc.py +112 -0
  1093. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/linkloc.pyc +0 -0
  1094. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/m4.py +63 -0
  1095. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/m4.pyc +0 -0
  1096. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/masm.py +77 -0
  1097. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/masm.pyc +0 -0
  1098. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/midl.py +90 -0
  1099. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/midl.pyc +0 -0
  1100. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mingw.py +159 -0
  1101. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mingw.pyc +0 -0
  1102. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslib.py +64 -0
  1103. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslib.pyc +0 -0
  1104. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslink.py +266 -0
  1105. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslink.pyc +0 -0
  1106. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mssdk.py +50 -0
  1107. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mssdk.pyc +0 -0
  1108. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvc.py +269 -0
  1109. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvc.pyc +0 -0
  1110. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvs.py +1439 -0
  1111. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvs.pyc +0 -0
  1112. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwcc.py +208 -0
  1113. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwcc.pyc +0 -0
  1114. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwld.py +107 -0
  1115. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwld.pyc +0 -0
  1116. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/nasm.py +72 -0
  1117. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/nasm.pyc +0 -0
  1118. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/__init__.py +314 -0
  1119. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/__init__.pyc +0 -0
  1120. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/ipk.py +185 -0
  1121. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/ipk.pyc +0 -0
  1122. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/msi.py +526 -0
  1123. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/msi.pyc +0 -0
  1124. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/rpm.py +367 -0
  1125. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/rpm.pyc +0 -0
  1126. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_tarbz2.py +43 -0
  1127. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_tarbz2.pyc +0 -0
  1128. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_targz.py +43 -0
  1129. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_targz.pyc +0 -0
  1130. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_zip.py +43 -0
  1131. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_zip.pyc +0 -0
  1132. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/tarbz2.py +44 -0
  1133. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/tarbz2.pyc +0 -0
  1134. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/targz.py +44 -0
  1135. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/targz.pyc +0 -0
  1136. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/zip.py +44 -0
  1137. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/zip.pyc +0 -0
  1138. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdf.py +78 -0
  1139. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdf.pyc +0 -0
  1140. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdflatex.py +83 -0
  1141. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdflatex.pyc +0 -0
  1142. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdftex.py +108 -0
  1143. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdftex.pyc +0 -0
  1144. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/qt.py +336 -0
  1145. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/qt.pyc +0 -0
  1146. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rmic.py +121 -0
  1147. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rmic.pyc +0 -0
  1148. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpcgen.py +70 -0
  1149. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpcgen.pyc +0 -0
  1150. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpm.py +132 -0
  1151. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpm.pyc +0 -0
  1152. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgiar.py +68 -0
  1153. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgiar.pyc +0 -0
  1154. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgic++.py +58 -0
  1155. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgic++.pyc +0 -0
  1156. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgicc.py +53 -0
  1157. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgicc.pyc +0 -0
  1158. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgilink.py +63 -0
  1159. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgilink.pyc +0 -0
  1160. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunar.py +67 -0
  1161. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunar.pyc +0 -0
  1162. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunc++.py +142 -0
  1163. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunc++.pyc +0 -0
  1164. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/suncc.py +58 -0
  1165. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/suncc.pyc +0 -0
  1166. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf77.py +63 -0
  1167. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf77.pyc +0 -0
  1168. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf90.py +64 -0
  1169. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf90.pyc +0 -0
  1170. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf95.py +64 -0
  1171. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf95.pyc +0 -0
  1172. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunlink.py +77 -0
  1173. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunlink.pyc +0 -0
  1174. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/swig.py +186 -0
  1175. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/swig.pyc +0 -0
  1176. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tar.py +73 -0
  1177. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tar.pyc +0 -0
  1178. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tex.py +805 -0
  1179. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tex.pyc +0 -0
  1180. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/textfile.py +175 -0
  1181. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/textfile.pyc +0 -0
  1182. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tlib.py +53 -0
  1183. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tlib.pyc +0 -0
  1184. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/wix.py +100 -0
  1185. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/wix.pyc +0 -0
  1186. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/yacc.py +131 -0
  1187. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/yacc.pyc +0 -0
  1188. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/zip.py +100 -0
  1189. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/zip.pyc +0 -0
  1190. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Util.py +1645 -0
  1191. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Util.pyc +0 -0
  1192. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/BoolVariable.py +91 -0
  1193. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/BoolVariable.pyc +0 -0
  1194. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/EnumVariable.py +107 -0
  1195. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/EnumVariable.pyc +0 -0
  1196. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/ListVariable.py +139 -0
  1197. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/ListVariable.pyc +0 -0
  1198. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PackageVariable.py +109 -0
  1199. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PackageVariable.pyc +0 -0
  1200. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PathVariable.py +147 -0
  1201. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PathVariable.pyc +0 -0
  1202. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/__init__.py +317 -0
  1203. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/__init__.pyc +0 -0
  1204. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Warnings.py +228 -0
  1205. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Warnings.pyc +0 -0
  1206. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/__init__.py +49 -0
  1207. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/__init__.pyc +0 -0
  1208. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/__init__.py +302 -0
  1209. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/__init__.pyc +0 -0
  1210. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_UserString.py +98 -0
  1211. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_UserString.pyc +0 -0
  1212. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_hashlib.py +91 -0
  1213. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_hashlib.pyc +0 -0
  1214. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_itertools.py +124 -0
  1215. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_itertools.pyc +0 -0
  1216. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_optparse.py +1725 -0
  1217. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_optparse.pyc +0 -0
  1218. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets.py +583 -0
  1219. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets.pyc +0 -0
  1220. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets15.py +176 -0
  1221. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets15.pyc +0 -0
  1222. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_shlex.py +325 -0
  1223. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_shlex.pyc +0 -0
  1224. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_subprocess.py +1296 -0
  1225. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_subprocess.pyc +0 -0
  1226. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_textwrap.py +382 -0
  1227. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_textwrap.pyc +0 -0
  1228. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/builtins.py +187 -0
  1229. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/builtins.pyc +0 -0
  1230. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/cpp.py +598 -0
  1231. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/cpp.pyc +0 -0
  1232. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/dblite.py +248 -0
  1233. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/dblite.pyc +0 -0
  1234. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/exitfuncs.py +77 -0
  1235. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/exitfuncs.pyc +0 -0
  1236. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/scons-1.2.0.d20100117.egg-info +13 -0
  1237. data/ext/v8/upstream/build/scons/install/man/man1/scons-time.1 +1017 -0
  1238. data/ext/v8/upstream/build/scons/install/man/man1/scons.1 +15179 -0
  1239. data/ext/v8/upstream/build/scons/install/man/man1/sconsign.1 +208 -0
  1240. data/ext/v8/upstream/build/scons/os_spawnv_fix.diff +83 -0
  1241. data/ext/v8/upstream/build/scons/scons-time.1 +1017 -0
  1242. data/ext/v8/upstream/build/scons/scons.1 +15179 -0
  1243. data/ext/v8/upstream/build/scons/sconsign.1 +208 -0
  1244. data/ext/v8/upstream/build/scons/script/scons +184 -0
  1245. data/ext/v8/upstream/build/scons/script/scons-time +1529 -0
  1246. data/ext/v8/upstream/build/scons/script/scons.bat +31 -0
  1247. data/ext/v8/upstream/build/scons/script/sconsign +508 -0
  1248. data/ext/v8/upstream/build/scons/setup.cfg +6 -0
  1249. data/ext/v8/upstream/build/scons/setup.py +427 -0
  1250. data/ext/v8/upstream/build/v8/.gitignore +26 -0
  1251. data/ext/v8/upstream/build/v8/AUTHORS +31 -0
  1252. data/ext/v8/upstream/build/v8/ChangeLog +1916 -0
  1253. data/ext/v8/upstream/build/v8/LICENSE +55 -0
  1254. data/ext/v8/upstream/build/v8/SConstruct +1158 -0
  1255. data/ext/v8/upstream/build/v8/SConstruct.orig +1154 -0
  1256. data/ext/v8/upstream/build/v8/include/v8-debug.h +381 -0
  1257. data/ext/v8/upstream/build/v8/include/v8-profiler.h +353 -0
  1258. data/ext/v8/upstream/build/v8/include/v8.h +3616 -0
  1259. data/ext/v8/upstream/build/v8/src/SConscript +330 -0
  1260. data/ext/v8/upstream/build/v8/src/accessors.cc +661 -0
  1261. data/ext/v8/upstream/build/v8/src/accessors.h +114 -0
  1262. data/ext/v8/upstream/build/v8/src/allocation.cc +198 -0
  1263. data/ext/v8/upstream/build/v8/src/allocation.h +169 -0
  1264. data/ext/v8/upstream/build/v8/src/api.cc +4795 -0
  1265. data/ext/v8/upstream/build/v8/src/api.h +485 -0
  1266. data/ext/v8/upstream/build/v8/src/apinatives.js +110 -0
  1267. data/ext/v8/upstream/build/v8/src/apiutils.h +69 -0
  1268. data/ext/v8/upstream/build/v8/src/arguments.h +96 -0
  1269. data/ext/v8/upstream/build/v8/src/arm/assembler-arm-inl.h +305 -0
  1270. data/ext/v8/upstream/build/v8/src/arm/assembler-arm.cc +2580 -0
  1271. data/ext/v8/upstream/build/v8/src/arm/assembler-arm.h +1275 -0
  1272. data/ext/v8/upstream/build/v8/src/arm/builtins-arm.cc +1320 -0
  1273. data/ext/v8/upstream/build/v8/src/arm/codegen-arm-inl.h +48 -0
  1274. data/ext/v8/upstream/build/v8/src/arm/codegen-arm.cc +11398 -0
  1275. data/ext/v8/upstream/build/v8/src/arm/codegen-arm.h +1102 -0
  1276. data/ext/v8/upstream/build/v8/src/arm/constants-arm.cc +154 -0
  1277. data/ext/v8/upstream/build/v8/src/arm/constants-arm.h +388 -0
  1278. data/ext/v8/upstream/build/v8/src/arm/cpu-arm.cc +142 -0
  1279. data/ext/v8/upstream/build/v8/src/arm/debug-arm.cc +309 -0
  1280. data/ext/v8/upstream/build/v8/src/arm/disasm-arm.cc +1459 -0
  1281. data/ext/v8/upstream/build/v8/src/arm/fast-codegen-arm.cc +241 -0
  1282. data/ext/v8/upstream/build/v8/src/arm/frames-arm.cc +123 -0
  1283. data/ext/v8/upstream/build/v8/src/arm/frames-arm.h +162 -0
  1284. data/ext/v8/upstream/build/v8/src/arm/full-codegen-arm.cc +3178 -0
  1285. data/ext/v8/upstream/build/v8/src/arm/ic-arm.cc +2258 -0
  1286. data/ext/v8/upstream/build/v8/src/arm/jump-target-arm.cc +164 -0
  1287. data/ext/v8/upstream/build/v8/src/arm/macro-assembler-arm.cc +1892 -0
  1288. data/ext/v8/upstream/build/v8/src/arm/macro-assembler-arm.h +727 -0
  1289. data/ext/v8/upstream/build/v8/src/arm/regexp-macro-assembler-arm.cc +1261 -0
  1290. data/ext/v8/upstream/build/v8/src/arm/regexp-macro-assembler-arm.h +266 -0
  1291. data/ext/v8/upstream/build/v8/src/arm/register-allocator-arm-inl.h +100 -0
  1292. data/ext/v8/upstream/build/v8/src/arm/register-allocator-arm.cc +63 -0
  1293. data/ext/v8/upstream/build/v8/src/arm/register-allocator-arm.h +44 -0
  1294. data/ext/v8/upstream/build/v8/src/arm/simulator-arm.cc +2822 -0
  1295. data/ext/v8/upstream/build/v8/src/arm/simulator-arm.h +361 -0
  1296. data/ext/v8/upstream/build/v8/src/arm/stub-cache-arm.cc +2387 -0
  1297. data/ext/v8/upstream/build/v8/src/arm/virtual-frame-arm-inl.h +59 -0
  1298. data/ext/v8/upstream/build/v8/src/arm/virtual-frame-arm.cc +834 -0
  1299. data/ext/v8/upstream/build/v8/src/arm/virtual-frame-arm.h +519 -0
  1300. data/ext/v8/upstream/build/v8/src/array.js +1127 -0
  1301. data/ext/v8/upstream/build/v8/src/assembler.cc +801 -0
  1302. data/ext/v8/upstream/build/v8/src/assembler.h +573 -0
  1303. data/ext/v8/upstream/build/v8/src/ast-inl.h +81 -0
  1304. data/ext/v8/upstream/build/v8/src/ast.cc +1152 -0
  1305. data/ext/v8/upstream/build/v8/src/ast.h +2106 -0
  1306. data/ext/v8/upstream/build/v8/src/bootstrapper.cc +1819 -0
  1307. data/ext/v8/upstream/build/v8/src/bootstrapper.h +118 -0
  1308. data/ext/v8/upstream/build/v8/src/builtins.cc +1529 -0
  1309. data/ext/v8/upstream/build/v8/src/builtins.h +263 -0
  1310. data/ext/v8/upstream/build/v8/src/bytecodes-irregexp.h +104 -0
  1311. data/ext/v8/upstream/build/v8/src/cached-powers.h +119 -0
  1312. data/ext/v8/upstream/build/v8/src/char-predicates-inl.h +86 -0
  1313. data/ext/v8/upstream/build/v8/src/char-predicates.h +65 -0
  1314. data/ext/v8/upstream/build/v8/src/checks.cc +100 -0
  1315. data/ext/v8/upstream/build/v8/src/checks.h +310 -0
  1316. data/ext/v8/upstream/build/v8/src/circular-queue-inl.h +53 -0
  1317. data/ext/v8/upstream/build/v8/src/circular-queue.cc +121 -0
  1318. data/ext/v8/upstream/build/v8/src/circular-queue.h +103 -0
  1319. data/ext/v8/upstream/build/v8/src/code-stubs.cc +177 -0
  1320. data/ext/v8/upstream/build/v8/src/code-stubs.h +177 -0
  1321. data/ext/v8/upstream/build/v8/src/code.h +68 -0
  1322. data/ext/v8/upstream/build/v8/src/codegen-inl.h +60 -0
  1323. data/ext/v8/upstream/build/v8/src/codegen.cc +516 -0
  1324. data/ext/v8/upstream/build/v8/src/codegen.h +897 -0
  1325. data/ext/v8/upstream/build/v8/src/compilation-cache.cc +562 -0
  1326. data/ext/v8/upstream/build/v8/src/compilation-cache.h +102 -0
  1327. data/ext/v8/upstream/build/v8/src/compiler.cc +654 -0
  1328. data/ext/v8/upstream/build/v8/src/compiler.h +299 -0
  1329. data/ext/v8/upstream/build/v8/src/contexts.cc +256 -0
  1330. data/ext/v8/upstream/build/v8/src/contexts.h +342 -0
  1331. data/ext/v8/upstream/build/v8/src/conversions-inl.h +110 -0
  1332. data/ext/v8/upstream/build/v8/src/conversions.cc +1119 -0
  1333. data/ext/v8/upstream/build/v8/src/conversions.h +123 -0
  1334. data/ext/v8/upstream/build/v8/src/counters.cc +78 -0
  1335. data/ext/v8/upstream/build/v8/src/counters.h +239 -0
  1336. data/ext/v8/upstream/build/v8/src/cpu-profiler-inl.h +100 -0
  1337. data/ext/v8/upstream/build/v8/src/cpu-profiler.cc +538 -0
  1338. data/ext/v8/upstream/build/v8/src/cpu-profiler.h +285 -0
  1339. data/ext/v8/upstream/build/v8/src/cpu.h +65 -0
  1340. data/ext/v8/upstream/build/v8/src/d8-debug.cc +356 -0
  1341. data/ext/v8/upstream/build/v8/src/d8-debug.h +155 -0
  1342. data/ext/v8/upstream/build/v8/src/d8-posix.cc +693 -0
  1343. data/ext/v8/upstream/build/v8/src/d8-readline.cc +128 -0
  1344. data/ext/v8/upstream/build/v8/src/d8-windows.cc +42 -0
  1345. data/ext/v8/upstream/build/v8/src/d8.cc +783 -0
  1346. data/ext/v8/upstream/build/v8/src/d8.h +227 -0
  1347. data/ext/v8/upstream/build/v8/src/d8.js +1683 -0
  1348. data/ext/v8/upstream/build/v8/src/data-flow.cc +758 -0
  1349. data/ext/v8/upstream/build/v8/src/data-flow.h +278 -0
  1350. data/ext/v8/upstream/build/v8/src/date.js +1059 -0
  1351. data/ext/v8/upstream/build/v8/src/dateparser-inl.h +123 -0
  1352. data/ext/v8/upstream/build/v8/src/dateparser.cc +178 -0
  1353. data/ext/v8/upstream/build/v8/src/dateparser.h +244 -0
  1354. data/ext/v8/upstream/build/v8/src/debug-agent.cc +427 -0
  1355. data/ext/v8/upstream/build/v8/src/debug-agent.h +129 -0
  1356. data/ext/v8/upstream/build/v8/src/debug-debugger.js +2227 -0
  1357. data/ext/v8/upstream/build/v8/src/debug.cc +3005 -0
  1358. data/ext/v8/upstream/build/v8/src/debug.h +993 -0
  1359. data/ext/v8/upstream/build/v8/src/disasm.h +77 -0
  1360. data/ext/v8/upstream/build/v8/src/disassembler.cc +312 -0
  1361. data/ext/v8/upstream/build/v8/src/disassembler.h +56 -0
  1362. data/ext/v8/upstream/build/v8/src/diy-fp.cc +58 -0
  1363. data/ext/v8/upstream/build/v8/src/diy-fp.h +117 -0
  1364. data/ext/v8/upstream/build/v8/src/double.h +169 -0
  1365. data/ext/v8/upstream/build/v8/src/dtoa-config.c +92 -0
  1366. data/ext/v8/upstream/build/v8/src/dtoa.cc +77 -0
  1367. data/ext/v8/upstream/build/v8/src/dtoa.h +81 -0
  1368. data/ext/v8/upstream/build/v8/src/execution.cc +809 -0
  1369. data/ext/v8/upstream/build/v8/src/execution.h +336 -0
  1370. data/ext/v8/upstream/build/v8/src/factory.cc +1003 -0
  1371. data/ext/v8/upstream/build/v8/src/factory.h +410 -0
  1372. data/ext/v8/upstream/build/v8/src/fast-codegen.cc +746 -0
  1373. data/ext/v8/upstream/build/v8/src/fast-codegen.h +161 -0
  1374. data/ext/v8/upstream/build/v8/src/fast-dtoa.cc +505 -0
  1375. data/ext/v8/upstream/build/v8/src/fast-dtoa.h +58 -0
  1376. data/ext/v8/upstream/build/v8/src/fixed-dtoa.cc +405 -0
  1377. data/ext/v8/upstream/build/v8/src/fixed-dtoa.h +55 -0
  1378. data/ext/v8/upstream/build/v8/src/flag-definitions.h +455 -0
  1379. data/ext/v8/upstream/build/v8/src/flags.cc +551 -0
  1380. data/ext/v8/upstream/build/v8/src/flags.h +81 -0
  1381. data/ext/v8/upstream/build/v8/src/flow-graph.cc +763 -0
  1382. data/ext/v8/upstream/build/v8/src/flow-graph.h +180 -0
  1383. data/ext/v8/upstream/build/v8/src/frame-element.cc +42 -0
  1384. data/ext/v8/upstream/build/v8/src/frame-element.h +273 -0
  1385. data/ext/v8/upstream/build/v8/src/frames-inl.h +217 -0
  1386. data/ext/v8/upstream/build/v8/src/frames.cc +826 -0
  1387. data/ext/v8/upstream/build/v8/src/frames.h +682 -0
  1388. data/ext/v8/upstream/build/v8/src/full-codegen.cc +1443 -0
  1389. data/ext/v8/upstream/build/v8/src/full-codegen.h +548 -0
  1390. data/ext/v8/upstream/build/v8/src/func-name-inferrer.cc +76 -0
  1391. data/ext/v8/upstream/build/v8/src/func-name-inferrer.h +135 -0
  1392. data/ext/v8/upstream/build/v8/src/global-handles.cc +520 -0
  1393. data/ext/v8/upstream/build/v8/src/global-handles.h +180 -0
  1394. data/ext/v8/upstream/build/v8/src/globals.h +669 -0
  1395. data/ext/v8/upstream/build/v8/src/handles-inl.h +76 -0
  1396. data/ext/v8/upstream/build/v8/src/handles.cc +825 -0
  1397. data/ext/v8/upstream/build/v8/src/handles.h +393 -0
  1398. data/ext/v8/upstream/build/v8/src/hashmap.cc +226 -0
  1399. data/ext/v8/upstream/build/v8/src/hashmap.h +120 -0
  1400. data/ext/v8/upstream/build/v8/src/heap-inl.h +493 -0
  1401. data/ext/v8/upstream/build/v8/src/heap-profiler.cc +779 -0
  1402. data/ext/v8/upstream/build/v8/src/heap-profiler.h +323 -0
  1403. data/ext/v8/upstream/build/v8/src/heap.cc +4994 -0
  1404. data/ext/v8/upstream/build/v8/src/heap.h +1984 -0
  1405. data/ext/v8/upstream/build/v8/src/ia32/assembler-ia32-inl.h +360 -0
  1406. data/ext/v8/upstream/build/v8/src/ia32/assembler-ia32.cc +2600 -0
  1407. data/ext/v8/upstream/build/v8/src/ia32/assembler-ia32.h +969 -0
  1408. data/ext/v8/upstream/build/v8/src/ia32/builtins-ia32.cc +1261 -0
  1409. data/ext/v8/upstream/build/v8/src/ia32/codegen-ia32-inl.h +46 -0
  1410. data/ext/v8/upstream/build/v8/src/ia32/codegen-ia32.cc +13968 -0
  1411. data/ext/v8/upstream/build/v8/src/ia32/codegen-ia32.h +1097 -0
  1412. data/ext/v8/upstream/build/v8/src/ia32/cpu-ia32.cc +83 -0
  1413. data/ext/v8/upstream/build/v8/src/ia32/debug-ia32.cc +309 -0
  1414. data/ext/v8/upstream/build/v8/src/ia32/disasm-ia32.cc +1471 -0
  1415. data/ext/v8/upstream/build/v8/src/ia32/fast-codegen-ia32.cc +954 -0
  1416. data/ext/v8/upstream/build/v8/src/ia32/fast-codegen-ia32.h +155 -0
  1417. data/ext/v8/upstream/build/v8/src/ia32/frames-ia32.cc +115 -0
  1418. data/ext/v8/upstream/build/v8/src/ia32/frames-ia32.h +135 -0
  1419. data/ext/v8/upstream/build/v8/src/ia32/full-codegen-ia32.cc +3281 -0
  1420. data/ext/v8/upstream/build/v8/src/ia32/ic-ia32.cc +1966 -0
  1421. data/ext/v8/upstream/build/v8/src/ia32/jump-target-ia32.cc +437 -0
  1422. data/ext/v8/upstream/build/v8/src/ia32/macro-assembler-ia32.cc +1610 -0
  1423. data/ext/v8/upstream/build/v8/src/ia32/macro-assembler-ia32.h +610 -0
  1424. data/ext/v8/upstream/build/v8/src/ia32/regexp-macro-assembler-ia32.cc +1247 -0
  1425. data/ext/v8/upstream/build/v8/src/ia32/regexp-macro-assembler-ia32.h +214 -0
  1426. data/ext/v8/upstream/build/v8/src/ia32/register-allocator-ia32-inl.h +82 -0
  1427. data/ext/v8/upstream/build/v8/src/ia32/register-allocator-ia32.cc +157 -0
  1428. data/ext/v8/upstream/build/v8/src/ia32/register-allocator-ia32.h +43 -0
  1429. data/ext/v8/upstream/build/v8/src/ia32/simulator-ia32.cc +30 -0
  1430. data/ext/v8/upstream/build/v8/src/ia32/simulator-ia32.h +62 -0
  1431. data/ext/v8/upstream/build/v8/src/ia32/stub-cache-ia32.cc +2750 -0
  1432. data/ext/v8/upstream/build/v8/src/ia32/virtual-frame-ia32.cc +1334 -0
  1433. data/ext/v8/upstream/build/v8/src/ia32/virtual-frame-ia32.h +627 -0
  1434. data/ext/v8/upstream/build/v8/src/ic-inl.h +120 -0
  1435. data/ext/v8/upstream/build/v8/src/ic.cc +1827 -0
  1436. data/ext/v8/upstream/build/v8/src/ic.h +515 -0
  1437. data/ext/v8/upstream/build/v8/src/interpreter-irregexp.cc +646 -0
  1438. data/ext/v8/upstream/build/v8/src/interpreter-irregexp.h +48 -0
  1439. data/ext/v8/upstream/build/v8/src/json.js +268 -0
  1440. data/ext/v8/upstream/build/v8/src/jsregexp.cc +5283 -0
  1441. data/ext/v8/upstream/build/v8/src/jsregexp.h +1463 -0
  1442. data/ext/v8/upstream/build/v8/src/jump-target-heavy-inl.h +51 -0
  1443. data/ext/v8/upstream/build/v8/src/jump-target-heavy.cc +429 -0
  1444. data/ext/v8/upstream/build/v8/src/jump-target-heavy.h +244 -0
  1445. data/ext/v8/upstream/build/v8/src/jump-target-inl.h +48 -0
  1446. data/ext/v8/upstream/build/v8/src/jump-target-light-inl.h +56 -0
  1447. data/ext/v8/upstream/build/v8/src/jump-target-light.cc +110 -0
  1448. data/ext/v8/upstream/build/v8/src/jump-target-light.h +192 -0
  1449. data/ext/v8/upstream/build/v8/src/jump-target.cc +91 -0
  1450. data/ext/v8/upstream/build/v8/src/jump-target.h +90 -0
  1451. data/ext/v8/upstream/build/v8/src/list-inl.h +166 -0
  1452. data/ext/v8/upstream/build/v8/src/list.h +159 -0
  1453. data/ext/v8/upstream/build/v8/src/liveedit-debugger.js +1057 -0
  1454. data/ext/v8/upstream/build/v8/src/liveedit.cc +1480 -0
  1455. data/ext/v8/upstream/build/v8/src/liveedit.h +170 -0
  1456. data/ext/v8/upstream/build/v8/src/log-inl.h +59 -0
  1457. data/ext/v8/upstream/build/v8/src/log-utils.cc +497 -0
  1458. data/ext/v8/upstream/build/v8/src/log-utils.h +289 -0
  1459. data/ext/v8/upstream/build/v8/src/log.cc +1561 -0
  1460. data/ext/v8/upstream/build/v8/src/log.h +384 -0
  1461. data/ext/v8/upstream/build/v8/src/macro-assembler.h +86 -0
  1462. data/ext/v8/upstream/build/v8/src/macros.py +177 -0
  1463. data/ext/v8/upstream/build/v8/src/mark-compact.cc +2330 -0
  1464. data/ext/v8/upstream/build/v8/src/mark-compact.h +451 -0
  1465. data/ext/v8/upstream/build/v8/src/math.js +264 -0
  1466. data/ext/v8/upstream/build/v8/src/memory.h +74 -0
  1467. data/ext/v8/upstream/build/v8/src/messages.cc +183 -0
  1468. data/ext/v8/upstream/build/v8/src/messages.h +113 -0
  1469. data/ext/v8/upstream/build/v8/src/messages.js +982 -0
  1470. data/ext/v8/upstream/build/v8/src/mips/assembler-mips-inl.h +215 -0
  1471. data/ext/v8/upstream/build/v8/src/mips/assembler-mips.cc +1219 -0
  1472. data/ext/v8/upstream/build/v8/src/mips/assembler-mips.h +668 -0
  1473. data/ext/v8/upstream/build/v8/src/mips/builtins-mips.cc +205 -0
  1474. data/ext/v8/upstream/build/v8/src/mips/codegen-mips-inl.h +70 -0
  1475. data/ext/v8/upstream/build/v8/src/mips/codegen-mips.cc +1437 -0
  1476. data/ext/v8/upstream/build/v8/src/mips/codegen-mips.h +434 -0
  1477. data/ext/v8/upstream/build/v8/src/mips/constants-mips.cc +328 -0
  1478. data/ext/v8/upstream/build/v8/src/mips/constants-mips.h +525 -0
  1479. data/ext/v8/upstream/build/v8/src/mips/cpu-mips.cc +73 -0
  1480. data/ext/v8/upstream/build/v8/src/mips/debug-mips.cc +131 -0
  1481. data/ext/v8/upstream/build/v8/src/mips/disasm-mips.cc +787 -0
  1482. data/ext/v8/upstream/build/v8/src/mips/fast-codegen-mips.cc +77 -0
  1483. data/ext/v8/upstream/build/v8/src/mips/frames-mips.cc +102 -0
  1484. data/ext/v8/upstream/build/v8/src/mips/frames-mips.h +164 -0
  1485. data/ext/v8/upstream/build/v8/src/mips/full-codegen-mips.cc +277 -0
  1486. data/ext/v8/upstream/build/v8/src/mips/ic-mips.cc +220 -0
  1487. data/ext/v8/upstream/build/v8/src/mips/jump-target-mips.cc +175 -0
  1488. data/ext/v8/upstream/build/v8/src/mips/macro-assembler-mips.cc +1326 -0
  1489. data/ext/v8/upstream/build/v8/src/mips/macro-assembler-mips.h +461 -0
  1490. data/ext/v8/upstream/build/v8/src/mips/register-allocator-mips-inl.h +137 -0
  1491. data/ext/v8/upstream/build/v8/src/mips/register-allocator-mips.cc +63 -0
  1492. data/ext/v8/upstream/build/v8/src/mips/register-allocator-mips.h +46 -0
  1493. data/ext/v8/upstream/build/v8/src/mips/simulator-mips.cc +1651 -0
  1494. data/ext/v8/upstream/build/v8/src/mips/simulator-mips.h +311 -0
  1495. data/ext/v8/upstream/build/v8/src/mips/stub-cache-mips.cc +403 -0
  1496. data/ext/v8/upstream/build/v8/src/mips/virtual-frame-mips.cc +319 -0
  1497. data/ext/v8/upstream/build/v8/src/mips/virtual-frame-mips.h +548 -0
  1498. data/ext/v8/upstream/build/v8/src/mirror-debugger.js +2380 -0
  1499. data/ext/v8/upstream/build/v8/src/mksnapshot.cc +256 -0
  1500. data/ext/v8/upstream/build/v8/src/natives.h +63 -0
  1501. data/ext/v8/upstream/build/v8/src/objects-debug.cc +1366 -0
  1502. data/ext/v8/upstream/build/v8/src/objects-inl.h +3333 -0
  1503. data/ext/v8/upstream/build/v8/src/objects.cc +8820 -0
  1504. data/ext/v8/upstream/build/v8/src/objects.h +5373 -0
  1505. data/ext/v8/upstream/build/v8/src/oprofile-agent.cc +108 -0
  1506. data/ext/v8/upstream/build/v8/src/oprofile-agent.h +77 -0
  1507. data/ext/v8/upstream/build/v8/src/parser.cc +5207 -0
  1508. data/ext/v8/upstream/build/v8/src/parser.h +197 -0
  1509. data/ext/v8/upstream/build/v8/src/platform-freebsd.cc +667 -0
  1510. data/ext/v8/upstream/build/v8/src/platform-linux.cc +862 -0
  1511. data/ext/v8/upstream/build/v8/src/platform-macos.cc +665 -0
  1512. data/ext/v8/upstream/build/v8/src/platform-nullos.cc +454 -0
  1513. data/ext/v8/upstream/build/v8/src/platform-openbsd.cc +622 -0
  1514. data/ext/v8/upstream/build/v8/src/platform-posix.cc +362 -0
  1515. data/ext/v8/upstream/build/v8/src/platform-solaris.cc +653 -0
  1516. data/ext/v8/upstream/build/v8/src/platform-win32.cc +1911 -0
  1517. data/ext/v8/upstream/build/v8/src/platform.h +577 -0
  1518. data/ext/v8/upstream/build/v8/src/powers-ten.h +2461 -0
  1519. data/ext/v8/upstream/build/v8/src/prettyprinter.cc +1531 -0
  1520. data/ext/v8/upstream/build/v8/src/prettyprinter.h +221 -0
  1521. data/ext/v8/upstream/build/v8/src/profile-generator-inl.h +148 -0
  1522. data/ext/v8/upstream/build/v8/src/profile-generator.cc +1830 -0
  1523. data/ext/v8/upstream/build/v8/src/profile-generator.h +853 -0
  1524. data/ext/v8/upstream/build/v8/src/property.cc +96 -0
  1525. data/ext/v8/upstream/build/v8/src/property.h +315 -0
  1526. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-irregexp-inl.h +78 -0
  1527. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-irregexp.cc +464 -0
  1528. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-irregexp.h +141 -0
  1529. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-tracer.cc +356 -0
  1530. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-tracer.h +103 -0
  1531. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler.cc +261 -0
  1532. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler.h +228 -0
  1533. data/ext/v8/upstream/build/v8/src/regexp-stack.cc +103 -0
  1534. data/ext/v8/upstream/build/v8/src/regexp-stack.h +123 -0
  1535. data/ext/v8/upstream/build/v8/src/regexp.js +549 -0
  1536. data/ext/v8/upstream/build/v8/src/register-allocator-inl.h +141 -0
  1537. data/ext/v8/upstream/build/v8/src/register-allocator.cc +104 -0
  1538. data/ext/v8/upstream/build/v8/src/register-allocator.h +320 -0
  1539. data/ext/v8/upstream/build/v8/src/rewriter.cc +1038 -0
  1540. data/ext/v8/upstream/build/v8/src/rewriter.h +54 -0
  1541. data/ext/v8/upstream/build/v8/src/runtime.cc +10599 -0
  1542. data/ext/v8/upstream/build/v8/src/runtime.h +459 -0
  1543. data/ext/v8/upstream/build/v8/src/runtime.js +629 -0
  1544. data/ext/v8/upstream/build/v8/src/scanner.cc +1346 -0
  1545. data/ext/v8/upstream/build/v8/src/scanner.h +503 -0
  1546. data/ext/v8/upstream/build/v8/src/scopeinfo.cc +637 -0
  1547. data/ext/v8/upstream/build/v8/src/scopeinfo.h +233 -0
  1548. data/ext/v8/upstream/build/v8/src/scopes.cc +962 -0
  1549. data/ext/v8/upstream/build/v8/src/scopes.h +400 -0
  1550. data/ext/v8/upstream/build/v8/src/serialize.cc +1461 -0
  1551. data/ext/v8/upstream/build/v8/src/serialize.h +581 -0
  1552. data/ext/v8/upstream/build/v8/src/shell.h +55 -0
  1553. data/ext/v8/upstream/build/v8/src/simulator.h +43 -0
  1554. data/ext/v8/upstream/build/v8/src/smart-pointer.h +109 -0
  1555. data/ext/v8/upstream/build/v8/src/snapshot-common.cc +82 -0
  1556. data/ext/v8/upstream/build/v8/src/snapshot-empty.cc +50 -0
  1557. data/ext/v8/upstream/build/v8/src/snapshot.h +71 -0
  1558. data/ext/v8/upstream/build/v8/src/spaces-inl.h +483 -0
  1559. data/ext/v8/upstream/build/v8/src/spaces.cc +2901 -0
  1560. data/ext/v8/upstream/build/v8/src/spaces.h +2197 -0
  1561. data/ext/v8/upstream/build/v8/src/splay-tree-inl.h +310 -0
  1562. data/ext/v8/upstream/build/v8/src/splay-tree.h +203 -0
  1563. data/ext/v8/upstream/build/v8/src/string-stream.cc +584 -0
  1564. data/ext/v8/upstream/build/v8/src/string-stream.h +189 -0
  1565. data/ext/v8/upstream/build/v8/src/string.js +1006 -0
  1566. data/ext/v8/upstream/build/v8/src/stub-cache.cc +1379 -0
  1567. data/ext/v8/upstream/build/v8/src/stub-cache.h +756 -0
  1568. data/ext/v8/upstream/build/v8/src/third_party/dtoa/COPYING +15 -0
  1569. data/ext/v8/upstream/build/v8/src/third_party/dtoa/dtoa.c +3334 -0
  1570. data/ext/v8/upstream/build/v8/src/third_party/valgrind/valgrind.h +3925 -0
  1571. data/ext/v8/upstream/build/v8/src/token.cc +56 -0
  1572. data/ext/v8/upstream/build/v8/src/token.h +270 -0
  1573. data/ext/v8/upstream/build/v8/src/top.cc +1067 -0
  1574. data/ext/v8/upstream/build/v8/src/top.h +463 -0
  1575. data/ext/v8/upstream/build/v8/src/type-info.cc +53 -0
  1576. data/ext/v8/upstream/build/v8/src/type-info.h +244 -0
  1577. data/ext/v8/upstream/build/v8/src/unbound-queue-inl.h +95 -0
  1578. data/ext/v8/upstream/build/v8/src/unbound-queue.h +67 -0
  1579. data/ext/v8/upstream/build/v8/src/unicode-inl.h +238 -0
  1580. data/ext/v8/upstream/build/v8/src/unicode.cc +749 -0
  1581. data/ext/v8/upstream/build/v8/src/unicode.h +279 -0
  1582. data/ext/v8/upstream/build/v8/src/uri.js +415 -0
  1583. data/ext/v8/upstream/build/v8/src/utils.cc +285 -0
  1584. data/ext/v8/upstream/build/v8/src/utils.h +745 -0
  1585. data/ext/v8/upstream/build/v8/src/v8-counters.cc +55 -0
  1586. data/ext/v8/upstream/build/v8/src/v8-counters.h +250 -0
  1587. data/ext/v8/upstream/build/v8/src/v8.cc +228 -0
  1588. data/ext/v8/upstream/build/v8/src/v8.h +121 -0
  1589. data/ext/v8/upstream/build/v8/src/v8dll-main.cc +39 -0
  1590. data/ext/v8/upstream/build/v8/src/v8natives.js +1188 -0
  1591. data/ext/v8/upstream/build/v8/src/v8threads.cc +461 -0
  1592. data/ext/v8/upstream/build/v8/src/v8threads.h +159 -0
  1593. data/ext/v8/upstream/build/v8/src/variables.cc +119 -0
  1594. data/ext/v8/upstream/build/v8/src/variables.h +205 -0
  1595. data/ext/v8/upstream/build/v8/src/version.cc +88 -0
  1596. data/ext/v8/upstream/build/v8/src/version.h +64 -0
  1597. data/ext/v8/upstream/build/v8/src/virtual-frame-heavy-inl.h +192 -0
  1598. data/ext/v8/upstream/build/v8/src/virtual-frame-heavy.cc +312 -0
  1599. data/ext/v8/upstream/build/v8/src/virtual-frame-inl.h +39 -0
  1600. data/ext/v8/upstream/build/v8/src/virtual-frame-light-inl.h +170 -0
  1601. data/ext/v8/upstream/build/v8/src/virtual-frame-light.cc +52 -0
  1602. data/ext/v8/upstream/build/v8/src/virtual-frame.cc +49 -0
  1603. data/ext/v8/upstream/build/v8/src/virtual-frame.h +46 -0
  1604. data/ext/v8/upstream/build/v8/src/vm-state-inl.h +137 -0
  1605. data/ext/v8/upstream/build/v8/src/vm-state.cc +39 -0
  1606. data/ext/v8/upstream/build/v8/src/vm-state.h +77 -0
  1607. data/ext/v8/upstream/build/v8/src/x64/assembler-x64-inl.h +400 -0
  1608. data/ext/v8/upstream/build/v8/src/x64/assembler-x64.cc +2963 -0
  1609. data/ext/v8/upstream/build/v8/src/x64/assembler-x64.h +1438 -0
  1610. data/ext/v8/upstream/build/v8/src/x64/builtins-x64.cc +1296 -0
  1611. data/ext/v8/upstream/build/v8/src/x64/codegen-x64-inl.h +46 -0
  1612. data/ext/v8/upstream/build/v8/src/x64/codegen-x64.cc +12491 -0
  1613. data/ext/v8/upstream/build/v8/src/x64/codegen-x64.h +1090 -0
  1614. data/ext/v8/upstream/build/v8/src/x64/cpu-x64.cc +83 -0
  1615. data/ext/v8/upstream/build/v8/src/x64/debug-x64.cc +267 -0
  1616. data/ext/v8/upstream/build/v8/src/x64/disasm-x64.cc +1696 -0
  1617. data/ext/v8/upstream/build/v8/src/x64/fast-codegen-x64.cc +250 -0
  1618. data/ext/v8/upstream/build/v8/src/x64/frames-x64.cc +113 -0
  1619. data/ext/v8/upstream/build/v8/src/x64/frames-x64.h +125 -0
  1620. data/ext/v8/upstream/build/v8/src/x64/full-codegen-x64.cc +3270 -0
  1621. data/ext/v8/upstream/build/v8/src/x64/ic-x64.cc +1907 -0
  1622. data/ext/v8/upstream/build/v8/src/x64/jump-target-x64.cc +437 -0
  1623. data/ext/v8/upstream/build/v8/src/x64/macro-assembler-x64.cc +2793 -0
  1624. data/ext/v8/upstream/build/v8/src/x64/macro-assembler-x64.h +916 -0
  1625. data/ext/v8/upstream/build/v8/src/x64/regexp-macro-assembler-x64.cc +1374 -0
  1626. data/ext/v8/upstream/build/v8/src/x64/regexp-macro-assembler-x64.h +277 -0
  1627. data/ext/v8/upstream/build/v8/src/x64/register-allocator-x64-inl.h +87 -0
  1628. data/ext/v8/upstream/build/v8/src/x64/register-allocator-x64.cc +91 -0
  1629. data/ext/v8/upstream/build/v8/src/x64/register-allocator-x64.h +43 -0
  1630. data/ext/v8/upstream/build/v8/src/x64/simulator-x64.cc +27 -0
  1631. data/ext/v8/upstream/build/v8/src/x64/simulator-x64.h +63 -0
  1632. data/ext/v8/upstream/build/v8/src/x64/stub-cache-x64.cc +2560 -0
  1633. data/ext/v8/upstream/build/v8/src/x64/virtual-frame-x64.cc +1264 -0
  1634. data/ext/v8/upstream/build/v8/src/x64/virtual-frame-x64.h +590 -0
  1635. data/ext/v8/upstream/build/v8/src/zone-inl.h +82 -0
  1636. data/ext/v8/upstream/build/v8/src/zone.cc +194 -0
  1637. data/ext/v8/upstream/build/v8/src/zone.h +221 -0
  1638. data/ext/v8/upstream/build/v8/tools/codemap.js +270 -0
  1639. data/ext/v8/upstream/build/v8/tools/consarray.js +93 -0
  1640. data/ext/v8/upstream/build/v8/tools/csvparser.js +83 -0
  1641. data/ext/v8/upstream/build/v8/tools/gc-nvp-trace-processor.py +317 -0
  1642. data/ext/v8/upstream/build/v8/tools/generate-ten-powers.scm +286 -0
  1643. data/ext/v8/upstream/build/v8/tools/gyp/v8.gyp +749 -0
  1644. data/ext/v8/upstream/build/v8/tools/js2c.py +380 -0
  1645. data/ext/v8/upstream/build/v8/tools/jsmin.py +280 -0
  1646. data/ext/v8/upstream/build/v8/tools/linux-tick-processor +33 -0
  1647. data/ext/v8/upstream/build/v8/tools/linux-tick-processor.py +78 -0
  1648. data/ext/v8/upstream/build/v8/tools/logreader.js +338 -0
  1649. data/ext/v8/upstream/build/v8/tools/mac-nm +18 -0
  1650. data/ext/v8/upstream/build/v8/tools/mac-tick-processor +6 -0
  1651. data/ext/v8/upstream/build/v8/tools/oprofile/annotate +7 -0
  1652. data/ext/v8/upstream/build/v8/tools/oprofile/common +19 -0
  1653. data/ext/v8/upstream/build/v8/tools/oprofile/dump +7 -0
  1654. data/ext/v8/upstream/build/v8/tools/oprofile/report +7 -0
  1655. data/ext/v8/upstream/build/v8/tools/oprofile/reset +7 -0
  1656. data/ext/v8/upstream/build/v8/tools/oprofile/run +14 -0
  1657. data/ext/v8/upstream/build/v8/tools/oprofile/shutdown +7 -0
  1658. data/ext/v8/upstream/build/v8/tools/oprofile/start +7 -0
  1659. data/ext/v8/upstream/build/v8/tools/presubmit.py +299 -0
  1660. data/ext/v8/upstream/build/v8/tools/process-heap-prof.py +120 -0
  1661. data/ext/v8/upstream/build/v8/tools/profile.js +691 -0
  1662. data/ext/v8/upstream/build/v8/tools/profile_view.js +224 -0
  1663. data/ext/v8/upstream/build/v8/tools/run-valgrind.py +77 -0
  1664. data/ext/v8/upstream/build/v8/tools/splaytree.js +322 -0
  1665. data/ext/v8/upstream/build/v8/tools/splaytree.py +226 -0
  1666. data/ext/v8/upstream/build/v8/tools/stats-viewer.py +468 -0
  1667. data/ext/v8/upstream/build/v8/tools/tickprocessor-driver.js +59 -0
  1668. data/ext/v8/upstream/build/v8/tools/tickprocessor.js +862 -0
  1669. data/ext/v8/upstream/build/v8/tools/tickprocessor.py +571 -0
  1670. data/ext/v8/upstream/build/v8/tools/utils.py +88 -0
  1671. data/ext/v8/upstream/build/v8/tools/visual_studio/README.txt +71 -0
  1672. data/ext/v8/upstream/build/v8/tools/visual_studio/arm.vsprops +14 -0
  1673. data/ext/v8/upstream/build/v8/tools/visual_studio/common.vsprops +34 -0
  1674. data/ext/v8/upstream/build/v8/tools/visual_studio/d8.vcproj +193 -0
  1675. data/ext/v8/upstream/build/v8/tools/visual_studio/d8_arm.vcproj +193 -0
  1676. data/ext/v8/upstream/build/v8/tools/visual_studio/d8_x64.vcproj +209 -0
  1677. data/ext/v8/upstream/build/v8/tools/visual_studio/d8js2c.cmd +6 -0
  1678. data/ext/v8/upstream/build/v8/tools/visual_studio/debug.vsprops +17 -0
  1679. data/ext/v8/upstream/build/v8/tools/visual_studio/ia32.vsprops +17 -0
  1680. data/ext/v8/upstream/build/v8/tools/visual_studio/js2c.cmd +6 -0
  1681. data/ext/v8/upstream/build/v8/tools/visual_studio/release.vsprops +24 -0
  1682. data/ext/v8/upstream/build/v8/tools/visual_studio/v8.sln +101 -0
  1683. data/ext/v8/upstream/build/v8/tools/visual_studio/v8.vcproj +227 -0
  1684. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_arm.sln +74 -0
  1685. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_arm.vcproj +227 -0
  1686. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_base.vcproj +1143 -0
  1687. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_base_arm.vcproj +1115 -0
  1688. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_base_x64.vcproj +1096 -0
  1689. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_cctest.vcproj +265 -0
  1690. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_cctest_arm.vcproj +249 -0
  1691. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_cctest_x64.vcproj +257 -0
  1692. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_mksnapshot.vcproj +145 -0
  1693. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_mksnapshot_x64.vcproj +145 -0
  1694. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_process_sample.vcproj +145 -0
  1695. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_process_sample_arm.vcproj +145 -0
  1696. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_process_sample_x64.vcproj +161 -0
  1697. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_shell_sample.vcproj +145 -0
  1698. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_shell_sample_arm.vcproj +145 -0
  1699. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_shell_sample_x64.vcproj +161 -0
  1700. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot.vcproj +142 -0
  1701. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot_cc.vcproj +92 -0
  1702. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot_cc_x64.vcproj +92 -0
  1703. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot_x64.vcproj +142 -0
  1704. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_x64.sln +101 -0
  1705. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_x64.vcproj +227 -0
  1706. data/ext/v8/upstream/build/v8/tools/visual_studio/x64.vsprops +17 -0
  1707. data/ext/v8/upstream/build/v8/tools/windows-tick-processor.bat +29 -0
  1708. data/ext/v8/upstream/build/v8/tools/windows-tick-processor.py +137 -0
  1709. data/ext/v8/upstream/detect_cpu.rb +27 -0
  1710. data/ext/v8/upstream/fpic-on-linux-amd64.patch +13 -0
  1711. data/ext/v8/upstream/scons/CHANGES.txt +5183 -0
  1712. data/ext/v8/upstream/scons/LICENSE.txt +20 -0
  1713. data/ext/v8/upstream/scons/MANIFEST +202 -0
  1714. data/ext/v8/upstream/scons/PKG-INFO +13 -0
  1715. data/ext/v8/upstream/scons/README.txt +273 -0
  1716. data/ext/v8/upstream/scons/RELEASE.txt +1040 -0
  1717. data/ext/v8/upstream/scons/engine/SCons/Action.py +1256 -0
  1718. data/ext/v8/upstream/scons/engine/SCons/Builder.py +868 -0
  1719. data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +217 -0
  1720. data/ext/v8/upstream/scons/engine/SCons/Conftest.py +794 -0
  1721. data/ext/v8/upstream/scons/engine/SCons/Debug.py +237 -0
  1722. data/ext/v8/upstream/scons/engine/SCons/Defaults.py +485 -0
  1723. data/ext/v8/upstream/scons/engine/SCons/Environment.py +2327 -0
  1724. data/ext/v8/upstream/scons/engine/SCons/Errors.py +207 -0
  1725. data/ext/v8/upstream/scons/engine/SCons/Executor.py +636 -0
  1726. data/ext/v8/upstream/scons/engine/SCons/Job.py +435 -0
  1727. data/ext/v8/upstream/scons/engine/SCons/Memoize.py +292 -0
  1728. data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +153 -0
  1729. data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +3220 -0
  1730. data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +128 -0
  1731. data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +1341 -0
  1732. data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +50 -0
  1733. data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +50 -0
  1734. data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +50 -0
  1735. data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +50 -0
  1736. data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +76 -0
  1737. data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +74 -0
  1738. data/ext/v8/upstream/scons/engine/SCons/PathList.py +232 -0
  1739. data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +236 -0
  1740. data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +70 -0
  1741. data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +55 -0
  1742. data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +46 -0
  1743. data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +46 -0
  1744. data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +44 -0
  1745. data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +58 -0
  1746. data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +264 -0
  1747. data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +50 -0
  1748. data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +386 -0
  1749. data/ext/v8/upstream/scons/engine/SCons/SConf.py +1038 -0
  1750. data/ext/v8/upstream/scons/engine/SCons/SConsign.py +381 -0
  1751. data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +132 -0
  1752. data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +74 -0
  1753. data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +111 -0
  1754. data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +320 -0
  1755. data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +48 -0
  1756. data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +378 -0
  1757. data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +103 -0
  1758. data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +55 -0
  1759. data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +415 -0
  1760. data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +386 -0
  1761. data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +1360 -0
  1762. data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +944 -0
  1763. data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +642 -0
  1764. data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +414 -0
  1765. data/ext/v8/upstream/scons/engine/SCons/Sig.py +63 -0
  1766. data/ext/v8/upstream/scons/engine/SCons/Subst.py +911 -0
  1767. data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +1030 -0
  1768. data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +61 -0
  1769. data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +65 -0
  1770. data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +73 -0
  1771. data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +247 -0
  1772. data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +324 -0
  1773. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +56 -0
  1774. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +61 -0
  1775. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +210 -0
  1776. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +84 -0
  1777. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +321 -0
  1778. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +367 -0
  1779. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +497 -0
  1780. data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +104 -0
  1781. data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +138 -0
  1782. data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +64 -0
  1783. data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +64 -0
  1784. data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +71 -0
  1785. data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +675 -0
  1786. data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +82 -0
  1787. data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +74 -0
  1788. data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +80 -0
  1789. data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +76 -0
  1790. data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +71 -0
  1791. data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +63 -0
  1792. data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +78 -0
  1793. data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +82 -0
  1794. data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +99 -0
  1795. data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +114 -0
  1796. data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +58 -0
  1797. data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +50 -0
  1798. data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +224 -0
  1799. data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +64 -0
  1800. data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +125 -0
  1801. data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +94 -0
  1802. data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +62 -0
  1803. data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +62 -0
  1804. data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +63 -0
  1805. data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +98 -0
  1806. data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +63 -0
  1807. data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +90 -0
  1808. data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +73 -0
  1809. data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +53 -0
  1810. data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +80 -0
  1811. data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +64 -0
  1812. data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +63 -0
  1813. data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +81 -0
  1814. data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +85 -0
  1815. data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +53 -0
  1816. data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +77 -0
  1817. data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +59 -0
  1818. data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +52 -0
  1819. data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +72 -0
  1820. data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +90 -0
  1821. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +59 -0
  1822. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +60 -0
  1823. data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +229 -0
  1824. data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +490 -0
  1825. data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +71 -0
  1826. data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +110 -0
  1827. data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +234 -0
  1828. data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +138 -0
  1829. data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +79 -0
  1830. data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +99 -0
  1831. data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +121 -0
  1832. data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +112 -0
  1833. data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +63 -0
  1834. data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +77 -0
  1835. data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +90 -0
  1836. data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +159 -0
  1837. data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +64 -0
  1838. data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +266 -0
  1839. data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +50 -0
  1840. data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +269 -0
  1841. data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +1439 -0
  1842. data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +208 -0
  1843. data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +107 -0
  1844. data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +72 -0
  1845. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +314 -0
  1846. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +185 -0
  1847. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +526 -0
  1848. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +367 -0
  1849. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +43 -0
  1850. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +43 -0
  1851. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +43 -0
  1852. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +44 -0
  1853. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +44 -0
  1854. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +44 -0
  1855. data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +78 -0
  1856. data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +83 -0
  1857. data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +108 -0
  1858. data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +336 -0
  1859. data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +121 -0
  1860. data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +70 -0
  1861. data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +132 -0
  1862. data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +68 -0
  1863. data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +58 -0
  1864. data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +53 -0
  1865. data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +63 -0
  1866. data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +67 -0
  1867. data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +142 -0
  1868. data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +58 -0
  1869. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +63 -0
  1870. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +64 -0
  1871. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +64 -0
  1872. data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +77 -0
  1873. data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +186 -0
  1874. data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +73 -0
  1875. data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +805 -0
  1876. data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +175 -0
  1877. data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +53 -0
  1878. data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +100 -0
  1879. data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +131 -0
  1880. data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +100 -0
  1881. data/ext/v8/upstream/scons/engine/SCons/Util.py +1645 -0
  1882. data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +91 -0
  1883. data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +107 -0
  1884. data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +139 -0
  1885. data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +109 -0
  1886. data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +147 -0
  1887. data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +317 -0
  1888. data/ext/v8/upstream/scons/engine/SCons/Warnings.py +228 -0
  1889. data/ext/v8/upstream/scons/engine/SCons/__init__.py +49 -0
  1890. data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +302 -0
  1891. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +98 -0
  1892. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +91 -0
  1893. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +124 -0
  1894. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +1725 -0
  1895. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +583 -0
  1896. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +176 -0
  1897. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +325 -0
  1898. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +1296 -0
  1899. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +382 -0
  1900. data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +187 -0
  1901. data/ext/v8/upstream/scons/engine/SCons/cpp.py +598 -0
  1902. data/ext/v8/upstream/scons/engine/SCons/dblite.py +248 -0
  1903. data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +77 -0
  1904. data/ext/v8/upstream/scons/os_spawnv_fix.diff +83 -0
  1905. data/ext/v8/upstream/scons/scons-time.1 +1017 -0
  1906. data/ext/v8/upstream/scons/scons.1 +15179 -0
  1907. data/ext/v8/upstream/scons/sconsign.1 +208 -0
  1908. data/ext/v8/upstream/scons/script/scons +184 -0
  1909. data/ext/v8/upstream/scons/script/scons-time +1529 -0
  1910. data/ext/v8/upstream/scons/script/scons.bat +31 -0
  1911. data/ext/v8/upstream/scons/script/sconsign +508 -0
  1912. data/ext/v8/upstream/scons/setup.cfg +6 -0
  1913. data/ext/v8/upstream/scons/setup.py +427 -0
  1914. data/ext/v8/v8.cpp +41 -0
  1915. data/ext/v8/v8_array.cpp +50 -0
  1916. data/ext/v8/v8_array.h +8 -0
  1917. data/ext/v8/v8_callbacks.cpp +121 -0
  1918. data/ext/v8/v8_callbacks.h +8 -0
  1919. data/ext/v8/v8_cxt.cpp +92 -0
  1920. data/ext/v8/v8_cxt.h +6 -0
  1921. data/ext/v8/v8_date.cpp +35 -0
  1922. data/ext/v8/v8_date.h +6 -0
  1923. data/ext/v8/v8_exception.cpp +128 -0
  1924. data/ext/v8/v8_exception.h +11 -0
  1925. data/ext/v8/v8_external.cpp +57 -0
  1926. data/ext/v8/v8_external.h +9 -0
  1927. data/ext/v8/v8_func.cpp +66 -0
  1928. data/ext/v8/v8_func.h +12 -0
  1929. data/ext/v8/v8_locker.cpp +41 -0
  1930. data/ext/v8/v8_locker.h +6 -0
  1931. data/ext/v8/v8_msg.cpp +68 -0
  1932. data/ext/v8/v8_msg.h +10 -0
  1933. data/ext/v8/v8_obj.cpp +96 -0
  1934. data/ext/v8/v8_obj.h +11 -0
  1935. data/ext/v8/v8_ref.cpp +37 -0
  1936. data/ext/v8/v8_ref.h +28 -0
  1937. data/ext/v8/v8_script.cpp +36 -0
  1938. data/ext/v8/v8_script.h +8 -0
  1939. data/ext/v8/v8_str.cpp +52 -0
  1940. data/ext/v8/v8_str.h +9 -0
  1941. data/ext/v8/v8_template.cpp +329 -0
  1942. data/ext/v8/v8_template.h +8 -0
  1943. data/ext/v8/v8_try_catch.cpp +99 -0
  1944. data/ext/v8/v8_try_catch.h +5 -0
  1945. data/ext/v8/v8_value.cpp +167 -0
  1946. data/ext/v8/v8_value.h +10 -0
  1947. data/lib/v8.rb +16 -0
  1948. data/lib/v8/access.rb +87 -0
  1949. data/lib/v8/array.rb +17 -0
  1950. data/lib/v8/cli.rb +131 -0
  1951. data/lib/v8/context.rb +88 -0
  1952. data/lib/v8/error.rb +129 -0
  1953. data/lib/v8/function.rb +28 -0
  1954. data/lib/v8/object.rb +69 -0
  1955. data/lib/v8/portal.rb +327 -0
  1956. data/lib/v8/portal/functions.rb +45 -0
  1957. data/lib/v8/tap.rb +9 -0
  1958. data/lib/v8/version.rb +3 -0
  1959. data/spec/ext/cxt_spec.rb +12 -0
  1960. data/spec/ext/func_spec.rb +49 -0
  1961. data/spec/ext/try_catch_spec.rb +32 -0
  1962. data/spec/redjs_helper.rb +3 -0
  1963. data/spec/spec_helper.rb +8 -0
  1964. data/spec/v8/error_spec.rb +131 -0
  1965. data/therubyracer-heroku.gemspec +24 -0
  1966. metadata +2061 -0
@@ -0,0 +1,15 @@
1
+ The author of this software is David M. Gay.
2
+
3
+ Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
4
+
5
+ Permission to use, copy, modify, and distribute this software for any
6
+ purpose without fee is hereby granted, provided that this entire
7
+ notice is included in all copies of any software which is or includes
8
+ a copy or modification of this software and in all copies of the
9
+ supporting documentation for such software.
10
+
11
+ THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
12
+ IMPLIED WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES
13
+ ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
14
+ MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
15
+ PURPOSE.
@@ -0,0 +1,3334 @@
1
+ /****************************************************************
2
+ *
3
+ * The author of this software is David M. Gay.
4
+ *
5
+ * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
6
+ *
7
+ * Permission to use, copy, modify, and distribute this software for any
8
+ * purpose without fee is hereby granted, provided that this entire notice
9
+ * is included in all copies of any software which is or includes a copy
10
+ * or modification of this software and in all copies of the supporting
11
+ * documentation for such software.
12
+ *
13
+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
14
+ * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
15
+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
16
+ * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
17
+ *
18
+ ***************************************************************/
19
+
20
+ /* Please send bug reports to David M. Gay (dmg at acm dot org,
21
+ * with " at " changed at "@" and " dot " changed to "."). */
22
+
23
+ /* On a machine with IEEE extended-precision registers, it is
24
+ * necessary to specify double-precision (53-bit) rounding precision
25
+ * before invoking strtod or dtoa. If the machine uses (the equivalent
26
+ * of) Intel 80x87 arithmetic, the call
27
+ * _control87(PC_53, MCW_PC);
28
+ * does this with many compilers. Whether this or another call is
29
+ * appropriate depends on the compiler; for this to work, it may be
30
+ * necessary to #include "float.h" or another system-dependent header
31
+ * file.
32
+ */
33
+
34
+ /* strtod for IEEE-, VAX-, and IBM-arithmetic machines.
35
+ *
36
+ * This strtod returns a nearest machine number to the input decimal
37
+ * string (or sets errno to ERANGE). With IEEE arithmetic, ties are
38
+ * broken by the IEEE round-even rule. Otherwise ties are broken by
39
+ * biased rounding (add half and chop).
40
+ *
41
+ * Inspired loosely by William D. Clinger's paper "How to Read Floating
42
+ * Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101].
43
+ *
44
+ * Modifications:
45
+ *
46
+ * 1. We only require IEEE, IBM, or VAX double-precision
47
+ * arithmetic (not IEEE double-extended).
48
+ * 2. We get by with floating-point arithmetic in a case that
49
+ * Clinger missed -- when we're computing d * 10^n
50
+ * for a small integer d and the integer n is not too
51
+ * much larger than 22 (the maximum integer k for which
52
+ * we can represent 10^k exactly), we may be able to
53
+ * compute (d*10^k) * 10^(e-k) with just one roundoff.
54
+ * 3. Rather than a bit-at-a-time adjustment of the binary
55
+ * result in the hard case, we use floating-point
56
+ * arithmetic to determine the adjustment to within
57
+ * one bit; only in really hard cases do we need to
58
+ * compute a second residual.
59
+ * 4. Because of 3., we don't need a large table of powers of 10
60
+ * for ten-to-e (just some small tables, e.g. of 10^k
61
+ * for 0 <= k <= 22).
62
+ */
63
+
64
+ /*
65
+ * #define IEEE_8087 for IEEE-arithmetic machines where the least
66
+ * significant byte has the lowest address.
67
+ * #define IEEE_MC68k for IEEE-arithmetic machines where the most
68
+ * significant byte has the lowest address.
69
+ * #define Long int on machines with 32-bit ints and 64-bit longs.
70
+ * #define IBM for IBM mainframe-style floating-point arithmetic.
71
+ * #define VAX for VAX-style floating-point arithmetic (D_floating).
72
+ * #define No_leftright to omit left-right logic in fast floating-point
73
+ * computation of dtoa.
74
+ * #define Honor_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3
75
+ * and strtod and dtoa should round accordingly.
76
+ * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3
77
+ * and Honor_FLT_ROUNDS is not #defined.
78
+ * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines
79
+ * that use extended-precision instructions to compute rounded
80
+ * products and quotients) with IBM.
81
+ * #define ROUND_BIASED for IEEE-format with biased rounding.
82
+ * #define Inaccurate_Divide for IEEE-format with correctly rounded
83
+ * products but inaccurate quotients, e.g., for Intel i860.
84
+ * #define NO_LONG_LONG on machines that do not have a "long long"
85
+ * integer type (of >= 64 bits). On such machines, you can
86
+ * #define Just_16 to store 16 bits per 32-bit Long when doing
87
+ * high-precision integer arithmetic. Whether this speeds things
88
+ * up or slows things down depends on the machine and the number
89
+ * being converted. If long long is available and the name is
90
+ * something other than "long long", #define Llong to be the name,
91
+ * and if "unsigned Llong" does not work as an unsigned version of
92
+ * Llong, #define #ULLong to be the corresponding unsigned type.
93
+ * #define KR_headers for old-style C function headers.
94
+ * #define Bad_float_h if your system lacks a float.h or if it does not
95
+ * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,
96
+ * FLT_RADIX, FLT_ROUNDS, and DBL_MAX.
97
+ * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)
98
+ * if memory is available and otherwise does something you deem
99
+ * appropriate. If MALLOC is undefined, malloc will be invoked
100
+ * directly -- and assumed always to succeed.
101
+ * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making
102
+ * memory allocations from a private pool of memory when possible.
103
+ * When used, the private pool is PRIVATE_MEM bytes long: 2304 bytes,
104
+ * unless #defined to be a different length. This default length
105
+ * suffices to get rid of MALLOC calls except for unusual cases,
106
+ * such as decimal-to-binary conversion of a very long string of
107
+ * digits. The longest string dtoa can return is about 751 bytes
108
+ * long. For conversions by strtod of strings of 800 digits and
109
+ * all dtoa conversions in single-threaded executions with 8-byte
110
+ * pointers, PRIVATE_MEM >= 7400 appears to suffice; with 4-byte
111
+ * pointers, PRIVATE_MEM >= 7112 appears adequate.
112
+ * #define INFNAN_CHECK on IEEE systems to cause strtod to check for
113
+ * Infinity and NaN (case insensitively). On some systems (e.g.,
114
+ * some HP systems), it may be necessary to #define NAN_WORD0
115
+ * appropriately -- to the most significant word of a quiet NaN.
116
+ * (On HP Series 700/800 machines, -DNAN_WORD0=0x7ff40000 works.)
117
+ * When INFNAN_CHECK is #defined and No_Hex_NaN is not #defined,
118
+ * strtod also accepts (case insensitively) strings of the form
119
+ * NaN(x), where x is a string of hexadecimal digits and spaces;
120
+ * if there is only one string of hexadecimal digits, it is taken
121
+ * for the 52 fraction bits of the resulting NaN; if there are two
122
+ * or more strings of hex digits, the first is for the high 20 bits,
123
+ * the second and subsequent for the low 32 bits, with intervening
124
+ * white space ignored; but if this results in none of the 52
125
+ * fraction bits being on (an IEEE Infinity symbol), then NAN_WORD0
126
+ * and NAN_WORD1 are used instead.
127
+ * #define MULTIPLE_THREADS if the system offers preemptively scheduled
128
+ * multiple threads. In this case, you must provide (or suitably
129
+ * #define) two locks, acquired by ACQUIRE_DTOA_LOCK(n) and freed
130
+ * by FREE_DTOA_LOCK(n) for n = 0 or 1. (The second lock, accessed
131
+ * in pow5mult, ensures lazy evaluation of only one copy of high
132
+ * powers of 5; omitting this lock would introduce a small
133
+ * probability of wasting memory, but would otherwise be harmless.)
134
+ * You must also invoke freedtoa(s) to free the value s returned by
135
+ * dtoa. You may do so whether or not MULTIPLE_THREADS is #defined.
136
+ * #define NO_IEEE_Scale to disable new (Feb. 1997) logic in strtod that
137
+ * avoids underflows on inputs whose result does not underflow.
138
+ * If you #define NO_IEEE_Scale on a machine that uses IEEE-format
139
+ * floating-point numbers and flushes underflows to zero rather
140
+ * than implementing gradual underflow, then you must also #define
141
+ * Sudden_Underflow.
142
+ * #define YES_ALIAS to permit aliasing certain double values with
143
+ * arrays of ULongs. This leads to slightly better code with
144
+ * some compilers and was always used prior to 19990916, but it
145
+ * is not strictly legal and can cause trouble with aggressively
146
+ * optimizing compilers (e.g., gcc 2.95.1 under -O2).
147
+ * #define USE_LOCALE to use the current locale's decimal_point value.
148
+ * #define SET_INEXACT if IEEE arithmetic is being used and extra
149
+ * computation should be done to set the inexact flag when the
150
+ * result is inexact and avoid setting inexact when the result
151
+ * is exact. In this case, dtoa.c must be compiled in
152
+ * an environment, perhaps provided by #include "dtoa.c" in a
153
+ * suitable wrapper, that defines two functions,
154
+ * int get_inexact(void);
155
+ * void clear_inexact(void);
156
+ * such that get_inexact() returns a nonzero value if the
157
+ * inexact bit is already set, and clear_inexact() sets the
158
+ * inexact bit to 0. When SET_INEXACT is #defined, strtod
159
+ * also does extra computations to set the underflow and overflow
160
+ * flags when appropriate (i.e., when the result is tiny and
161
+ * inexact or when it is a numeric value rounded to +-infinity).
162
+ * #define NO_ERRNO if strtod should not assign errno = ERANGE when
163
+ * the result overflows to +-Infinity or underflows to 0.
164
+ */
165
+
166
+ #ifndef Long
167
+ #if __LP64__
168
+ #define Long int
169
+ #else
170
+ #define Long long
171
+ #endif
172
+ #endif
173
+ #ifndef ULong
174
+ typedef unsigned Long ULong;
175
+ #endif
176
+
177
+ #ifdef DEBUG
178
+ #include "stdio.h"
179
+ #define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);}
180
+ #endif
181
+
182
+ #include "stdlib.h"
183
+ #include "string.h"
184
+
185
+ #ifdef USE_LOCALE
186
+ #include "locale.h"
187
+ #endif
188
+
189
+ #ifdef MALLOC
190
+ #ifdef KR_headers
191
+ extern char *MALLOC();
192
+ #else
193
+ extern void *MALLOC(size_t);
194
+ #endif
195
+ #else
196
+ #define MALLOC malloc
197
+ #endif
198
+
199
+ #ifndef Omit_Private_Memory
200
+ #ifndef PRIVATE_MEM
201
+ #define PRIVATE_MEM 2304
202
+ #endif
203
+ #define PRIVATE_mem ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double))
204
+ static double private_mem[PRIVATE_mem], *pmem_next = private_mem;
205
+ #endif
206
+
207
+ #undef IEEE_Arith
208
+ #undef Avoid_Underflow
209
+ #ifdef IEEE_MC68k
210
+ #define IEEE_Arith
211
+ #endif
212
+ #ifdef IEEE_8087
213
+ #define IEEE_Arith
214
+ #endif
215
+
216
+ #include "errno.h"
217
+
218
+ #ifdef Bad_float_h
219
+
220
+ #ifdef IEEE_Arith
221
+ #define DBL_DIG 15
222
+ #define DBL_MAX_10_EXP 308
223
+ #define DBL_MAX_EXP 1024
224
+ #define FLT_RADIX 2
225
+ #endif /*IEEE_Arith*/
226
+
227
+ #ifdef IBM
228
+ #define DBL_DIG 16
229
+ #define DBL_MAX_10_EXP 75
230
+ #define DBL_MAX_EXP 63
231
+ #define FLT_RADIX 16
232
+ #define DBL_MAX 7.2370055773322621e+75
233
+ #endif
234
+
235
+ #ifdef VAX
236
+ #define DBL_DIG 16
237
+ #define DBL_MAX_10_EXP 38
238
+ #define DBL_MAX_EXP 127
239
+ #define FLT_RADIX 2
240
+ #define DBL_MAX 1.7014118346046923e+38
241
+ #endif
242
+
243
+ #ifndef LONG_MAX
244
+ #define LONG_MAX 2147483647
245
+ #endif
246
+
247
+ #else /* ifndef Bad_float_h */
248
+ #include "float.h"
249
+ #endif /* Bad_float_h */
250
+
251
+ #ifndef __MATH_H__
252
+ #include "math.h"
253
+ #endif
254
+
255
+ #ifdef __cplusplus
256
+ extern "C" {
257
+ #endif
258
+
259
+ #ifndef CONST
260
+ #ifdef KR_headers
261
+ #define CONST /* blank */
262
+ #else
263
+ #define CONST const
264
+ #endif
265
+ #endif
266
+
267
+ #if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1
268
+ Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined.
269
+ #endif
270
+
271
+ typedef union { double d; ULong L[2]; } U;
272
+
273
+ #ifdef YES_ALIAS
274
+ #define dval(x) x
275
+ #ifdef IEEE_8087
276
+ #define word0(x) ((ULong *)&x)[1]
277
+ #define word1(x) ((ULong *)&x)[0]
278
+ #else
279
+ #define word0(x) ((ULong *)&x)[0]
280
+ #define word1(x) ((ULong *)&x)[1]
281
+ #endif
282
+ #else
283
+ #ifdef IEEE_8087
284
+ #define word0(x) ((U*)&x)->L[1]
285
+ #define word1(x) ((U*)&x)->L[0]
286
+ #else
287
+ #define word0(x) ((U*)&x)->L[0]
288
+ #define word1(x) ((U*)&x)->L[1]
289
+ #endif
290
+ #define dval(x) ((U*)&x)->d
291
+ #endif
292
+
293
+ /* The following definition of Storeinc is appropriate for MIPS processors.
294
+ * An alternative that might be better on some machines is
295
+ * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff)
296
+ */
297
+ #if defined(IEEE_8087) + defined(VAX)
298
+ #define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \
299
+ ((unsigned short *)a)[0] = (unsigned short)c, a++)
300
+ #else
301
+ #define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \
302
+ ((unsigned short *)a)[1] = (unsigned short)c, a++)
303
+ #endif
304
+
305
+ /* #define P DBL_MANT_DIG */
306
+ /* Ten_pmax = floor(P*log(2)/log(5)) */
307
+ /* Bletch = (highest power of 2 < DBL_MAX_10_EXP) / 16 */
308
+ /* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */
309
+ /* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */
310
+
311
+ #ifdef IEEE_Arith
312
+ #define Exp_shift 20
313
+ #define Exp_shift1 20
314
+ #define Exp_msk1 0x100000
315
+ #define Exp_msk11 0x100000
316
+ #define Exp_mask 0x7ff00000
317
+ #define P 53
318
+ #define Bias 1023
319
+ #define Emin (-1022)
320
+ #define Exp_1 0x3ff00000
321
+ #define Exp_11 0x3ff00000
322
+ #define Ebits 11
323
+ #define Frac_mask 0xfffff
324
+ #define Frac_mask1 0xfffff
325
+ #define Ten_pmax 22
326
+ #define Bletch 0x10
327
+ #define Bndry_mask 0xfffff
328
+ #define Bndry_mask1 0xfffff
329
+ #define LSB 1
330
+ #define Sign_bit 0x80000000
331
+ #define Log2P 1
332
+ #define Tiny0 0
333
+ #define Tiny1 1
334
+ #define Quick_max 14
335
+ #define Int_max 14
336
+ #ifndef NO_IEEE_Scale
337
+ #define Avoid_Underflow
338
+ #ifdef Flush_Denorm /* debugging option */
339
+ #undef Sudden_Underflow
340
+ #endif
341
+ #endif
342
+
343
+ #ifndef Flt_Rounds
344
+ #ifdef FLT_ROUNDS
345
+ #define Flt_Rounds FLT_ROUNDS
346
+ #else
347
+ #define Flt_Rounds 1
348
+ #endif
349
+ #endif /*Flt_Rounds*/
350
+
351
+ #ifdef Honor_FLT_ROUNDS
352
+ #define Rounding rounding
353
+ #undef Check_FLT_ROUNDS
354
+ #define Check_FLT_ROUNDS
355
+ #else
356
+ #define Rounding Flt_Rounds
357
+ #endif
358
+
359
+ #else /* ifndef IEEE_Arith */
360
+ #undef Check_FLT_ROUNDS
361
+ #undef Honor_FLT_ROUNDS
362
+ #undef SET_INEXACT
363
+ #undef Sudden_Underflow
364
+ #define Sudden_Underflow
365
+ #ifdef IBM
366
+ #undef Flt_Rounds
367
+ #define Flt_Rounds 0
368
+ #define Exp_shift 24
369
+ #define Exp_shift1 24
370
+ #define Exp_msk1 0x1000000
371
+ #define Exp_msk11 0x1000000
372
+ #define Exp_mask 0x7f000000
373
+ #define P 14
374
+ #define Bias 65
375
+ #define Exp_1 0x41000000
376
+ #define Exp_11 0x41000000
377
+ #define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */
378
+ #define Frac_mask 0xffffff
379
+ #define Frac_mask1 0xffffff
380
+ #define Bletch 4
381
+ #define Ten_pmax 22
382
+ #define Bndry_mask 0xefffff
383
+ #define Bndry_mask1 0xffffff
384
+ #define LSB 1
385
+ #define Sign_bit 0x80000000
386
+ #define Log2P 4
387
+ #define Tiny0 0x100000
388
+ #define Tiny1 0
389
+ #define Quick_max 14
390
+ #define Int_max 15
391
+ #else /* VAX */
392
+ #undef Flt_Rounds
393
+ #define Flt_Rounds 1
394
+ #define Exp_shift 23
395
+ #define Exp_shift1 7
396
+ #define Exp_msk1 0x80
397
+ #define Exp_msk11 0x800000
398
+ #define Exp_mask 0x7f80
399
+ #define P 56
400
+ #define Bias 129
401
+ #define Exp_1 0x40800000
402
+ #define Exp_11 0x4080
403
+ #define Ebits 8
404
+ #define Frac_mask 0x7fffff
405
+ #define Frac_mask1 0xffff007f
406
+ #define Ten_pmax 24
407
+ #define Bletch 2
408
+ #define Bndry_mask 0xffff007f
409
+ #define Bndry_mask1 0xffff007f
410
+ #define LSB 0x10000
411
+ #define Sign_bit 0x8000
412
+ #define Log2P 1
413
+ #define Tiny0 0x80
414
+ #define Tiny1 0
415
+ #define Quick_max 15
416
+ #define Int_max 15
417
+ #endif /* IBM, VAX */
418
+ #endif /* IEEE_Arith */
419
+
420
+ #ifndef IEEE_Arith
421
+ #define ROUND_BIASED
422
+ #endif
423
+
424
+ #ifdef RND_PRODQUOT
425
+ #define rounded_product(a,b) a = rnd_prod(a, b)
426
+ #define rounded_quotient(a,b) a = rnd_quot(a, b)
427
+ #ifdef KR_headers
428
+ extern double rnd_prod(), rnd_quot();
429
+ #else
430
+ extern double rnd_prod(double, double), rnd_quot(double, double);
431
+ #endif
432
+ #else
433
+ #define rounded_product(a,b) a *= b
434
+ #define rounded_quotient(a,b) a /= b
435
+ #endif
436
+
437
+ #define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))
438
+ #define Big1 0xffffffff
439
+
440
+ #ifndef Pack_32
441
+ #define Pack_32
442
+ #endif
443
+
444
+ #ifdef KR_headers
445
+ #define FFFFFFFF ((((unsigned long)0xffff)<<16)|(unsigned long)0xffff)
446
+ #else
447
+ #define FFFFFFFF 0xffffffffUL
448
+ #endif
449
+
450
+ #ifdef NO_LONG_LONG
451
+ #undef ULLong
452
+ #ifdef Just_16
453
+ #undef Pack_32
454
+ /* When Pack_32 is not defined, we store 16 bits per 32-bit Long.
455
+ * This makes some inner loops simpler and sometimes saves work
456
+ * during multiplications, but it often seems to make things slightly
457
+ * slower. Hence the default is now to store 32 bits per Long.
458
+ */
459
+ #endif
460
+ #else /* long long available */
461
+ #ifndef Llong
462
+ #define Llong long long
463
+ #endif
464
+ #ifndef ULLong
465
+ #define ULLong unsigned Llong
466
+ #endif
467
+ #endif /* NO_LONG_LONG */
468
+
469
+ #ifndef MULTIPLE_THREADS
470
+ #define ACQUIRE_DTOA_LOCK(n) /*nothing*/
471
+ #define FREE_DTOA_LOCK(n) /*nothing*/
472
+ #endif
473
+
474
+ #define Kmax 15
475
+
476
+ #ifdef __cplusplus
477
+ extern "C" double strtod(const char *s00, char **se);
478
+ extern "C" char *dtoa(double d, int mode, int ndigits,
479
+ int *decpt, int *sign, char **rve);
480
+ #endif
481
+
482
+ struct
483
+ Bigint {
484
+ struct Bigint *next;
485
+ int k, maxwds, sign, wds;
486
+ ULong x[1];
487
+ };
488
+
489
+ typedef struct Bigint Bigint;
490
+
491
+ static Bigint *freelist[Kmax+1];
492
+
493
+ static Bigint *
494
+ Balloc
495
+ #ifdef KR_headers
496
+ (k) int k;
497
+ #else
498
+ (int k)
499
+ #endif
500
+ {
501
+ int x;
502
+ Bigint *rv;
503
+ #ifndef Omit_Private_Memory
504
+ unsigned int len;
505
+ #endif
506
+
507
+ ACQUIRE_DTOA_LOCK(0);
508
+ /* The k > Kmax case does not need ACQUIRE_DTOA_LOCK(0). */
509
+ /* but this case seems very unlikely. */
510
+ if (k <= Kmax && (rv = freelist[k])) {
511
+ freelist[k] = rv->next;
512
+ }
513
+ else {
514
+ x = 1 << k;
515
+ #ifdef Omit_Private_Memory
516
+ rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
517
+ #else
518
+ len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
519
+ /sizeof(double);
520
+ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
521
+ rv = (Bigint*)pmem_next;
522
+ pmem_next += len;
523
+ }
524
+ else
525
+ rv = (Bigint*)MALLOC(len*sizeof(double));
526
+ #endif
527
+ rv->k = k;
528
+ rv->maxwds = x;
529
+ }
530
+ FREE_DTOA_LOCK(0);
531
+ rv->sign = rv->wds = 0;
532
+ return rv;
533
+ }
534
+
535
+ static void
536
+ Bfree
537
+ #ifdef KR_headers
538
+ (v) Bigint *v;
539
+ #else
540
+ (Bigint *v)
541
+ #endif
542
+ {
543
+ if (v) {
544
+ if (v->k > Kmax)
545
+ free((void*)v);
546
+ else {
547
+ ACQUIRE_DTOA_LOCK(0);
548
+ v->next = freelist[v->k];
549
+ freelist[v->k] = v;
550
+ FREE_DTOA_LOCK(0);
551
+ }
552
+ }
553
+ }
554
+
555
+ #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
556
+ y->wds*sizeof(Long) + 2*sizeof(int))
557
+
558
+ static Bigint *
559
+ multadd
560
+ #ifdef KR_headers
561
+ (b, m, a) Bigint *b; int m, a;
562
+ #else
563
+ (Bigint *b, int m, int a) /* multiply by m and add a */
564
+ #endif
565
+ {
566
+ int i, wds;
567
+ #ifdef ULLong
568
+ ULong *x;
569
+ ULLong carry, y;
570
+ #else
571
+ ULong carry, *x, y;
572
+ #ifdef Pack_32
573
+ ULong xi, z;
574
+ #endif
575
+ #endif
576
+ Bigint *b1;
577
+
578
+ wds = b->wds;
579
+ x = b->x;
580
+ i = 0;
581
+ carry = a;
582
+ do {
583
+ #ifdef ULLong
584
+ y = *x * (ULLong)m + carry;
585
+ carry = y >> 32;
586
+ *x++ = y & FFFFFFFF;
587
+ #else
588
+ #ifdef Pack_32
589
+ xi = *x;
590
+ y = (xi & 0xffff) * m + carry;
591
+ z = (xi >> 16) * m + (y >> 16);
592
+ carry = z >> 16;
593
+ *x++ = (z << 16) + (y & 0xffff);
594
+ #else
595
+ y = *x * m + carry;
596
+ carry = y >> 16;
597
+ *x++ = y & 0xffff;
598
+ #endif
599
+ #endif
600
+ }
601
+ while(++i < wds);
602
+ if (carry) {
603
+ if (wds >= b->maxwds) {
604
+ b1 = Balloc(b->k+1);
605
+ Bcopy(b1, b);
606
+ Bfree(b);
607
+ b = b1;
608
+ }
609
+ b->x[wds++] = carry;
610
+ b->wds = wds;
611
+ }
612
+ return b;
613
+ }
614
+
615
+ static Bigint *
616
+ s2b
617
+ #ifdef KR_headers
618
+ (s, nd0, nd, y9) CONST char *s; int nd0, nd; ULong y9;
619
+ #else
620
+ (CONST char *s, int nd0, int nd, ULong y9)
621
+ #endif
622
+ {
623
+ Bigint *b;
624
+ int i, k;
625
+ Long x, y;
626
+
627
+ x = (nd + 8) / 9;
628
+ for(k = 0, y = 1; x > y; y <<= 1, k++) ;
629
+ #ifdef Pack_32
630
+ b = Balloc(k);
631
+ b->x[0] = y9;
632
+ b->wds = 1;
633
+ #else
634
+ b = Balloc(k+1);
635
+ b->x[0] = y9 & 0xffff;
636
+ b->wds = (b->x[1] = y9 >> 16) ? 2 : 1;
637
+ #endif
638
+
639
+ i = 9;
640
+ if (9 < nd0) {
641
+ s += 9;
642
+ do b = multadd(b, 10, *s++ - '0');
643
+ while(++i < nd0);
644
+ s++;
645
+ }
646
+ else
647
+ s += 10;
648
+ for(; i < nd; i++)
649
+ b = multadd(b, 10, *s++ - '0');
650
+ return b;
651
+ }
652
+
653
+ static int
654
+ hi0bits
655
+ #ifdef KR_headers
656
+ (x) register ULong x;
657
+ #else
658
+ (register ULong x)
659
+ #endif
660
+ {
661
+ register int k = 0;
662
+
663
+ if (!(x & 0xffff0000)) {
664
+ k = 16;
665
+ x <<= 16;
666
+ }
667
+ if (!(x & 0xff000000)) {
668
+ k += 8;
669
+ x <<= 8;
670
+ }
671
+ if (!(x & 0xf0000000)) {
672
+ k += 4;
673
+ x <<= 4;
674
+ }
675
+ if (!(x & 0xc0000000)) {
676
+ k += 2;
677
+ x <<= 2;
678
+ }
679
+ if (!(x & 0x80000000)) {
680
+ k++;
681
+ if (!(x & 0x40000000))
682
+ return 32;
683
+ }
684
+ return k;
685
+ }
686
+
687
+ static int
688
+ lo0bits
689
+ #ifdef KR_headers
690
+ (y) ULong *y;
691
+ #else
692
+ (ULong *y)
693
+ #endif
694
+ {
695
+ register int k;
696
+ register ULong x = *y;
697
+
698
+ if (x & 7) {
699
+ if (x & 1)
700
+ return 0;
701
+ if (x & 2) {
702
+ *y = x >> 1;
703
+ return 1;
704
+ }
705
+ *y = x >> 2;
706
+ return 2;
707
+ }
708
+ k = 0;
709
+ if (!(x & 0xffff)) {
710
+ k = 16;
711
+ x >>= 16;
712
+ }
713
+ if (!(x & 0xff)) {
714
+ k += 8;
715
+ x >>= 8;
716
+ }
717
+ if (!(x & 0xf)) {
718
+ k += 4;
719
+ x >>= 4;
720
+ }
721
+ if (!(x & 0x3)) {
722
+ k += 2;
723
+ x >>= 2;
724
+ }
725
+ if (!(x & 1)) {
726
+ k++;
727
+ x >>= 1;
728
+ if (!x)
729
+ return 32;
730
+ }
731
+ *y = x;
732
+ return k;
733
+ }
734
+
735
+ static Bigint *
736
+ i2b
737
+ #ifdef KR_headers
738
+ (i) int i;
739
+ #else
740
+ (int i)
741
+ #endif
742
+ {
743
+ Bigint *b;
744
+
745
+ b = Balloc(1);
746
+ b->x[0] = i;
747
+ b->wds = 1;
748
+ return b;
749
+ }
750
+
751
+ static Bigint *
752
+ mult
753
+ #ifdef KR_headers
754
+ (a, b) Bigint *a, *b;
755
+ #else
756
+ (Bigint *a, Bigint *b)
757
+ #endif
758
+ {
759
+ Bigint *c;
760
+ int k, wa, wb, wc;
761
+ ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0;
762
+ ULong y;
763
+ #ifdef ULLong
764
+ ULLong carry, z;
765
+ #else
766
+ ULong carry, z;
767
+ #ifdef Pack_32
768
+ ULong z2;
769
+ #endif
770
+ #endif
771
+
772
+ if (a->wds < b->wds) {
773
+ c = a;
774
+ a = b;
775
+ b = c;
776
+ }
777
+ k = a->k;
778
+ wa = a->wds;
779
+ wb = b->wds;
780
+ wc = wa + wb;
781
+ if (wc > a->maxwds)
782
+ k++;
783
+ c = Balloc(k);
784
+ for(x = c->x, xa = x + wc; x < xa; x++)
785
+ *x = 0;
786
+ xa = a->x;
787
+ xae = xa + wa;
788
+ xb = b->x;
789
+ xbe = xb + wb;
790
+ xc0 = c->x;
791
+ #ifdef ULLong
792
+ for(; xb < xbe; xc0++) {
793
+ if ((y = *xb++)) {
794
+ x = xa;
795
+ xc = xc0;
796
+ carry = 0;
797
+ do {
798
+ z = *x++ * (ULLong)y + *xc + carry;
799
+ carry = z >> 32;
800
+ *xc++ = z & FFFFFFFF;
801
+ }
802
+ while(x < xae);
803
+ *xc = carry;
804
+ }
805
+ }
806
+ #else
807
+ #ifdef Pack_32
808
+ for(; xb < xbe; xb++, xc0++) {
809
+ if (y = *xb & 0xffff) {
810
+ x = xa;
811
+ xc = xc0;
812
+ carry = 0;
813
+ do {
814
+ z = (*x & 0xffff) * y + (*xc & 0xffff) + carry;
815
+ carry = z >> 16;
816
+ z2 = (*x++ >> 16) * y + (*xc >> 16) + carry;
817
+ carry = z2 >> 16;
818
+ Storeinc(xc, z2, z);
819
+ }
820
+ while(x < xae);
821
+ *xc = carry;
822
+ }
823
+ if (y = *xb >> 16) {
824
+ x = xa;
825
+ xc = xc0;
826
+ carry = 0;
827
+ z2 = *xc;
828
+ do {
829
+ z = (*x & 0xffff) * y + (*xc >> 16) + carry;
830
+ carry = z >> 16;
831
+ Storeinc(xc, z, z2);
832
+ z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry;
833
+ carry = z2 >> 16;
834
+ }
835
+ while(x < xae);
836
+ *xc = z2;
837
+ }
838
+ }
839
+ #else
840
+ for(; xb < xbe; xc0++) {
841
+ if (y = *xb++) {
842
+ x = xa;
843
+ xc = xc0;
844
+ carry = 0;
845
+ do {
846
+ z = *x++ * y + *xc + carry;
847
+ carry = z >> 16;
848
+ *xc++ = z & 0xffff;
849
+ }
850
+ while(x < xae);
851
+ *xc = carry;
852
+ }
853
+ }
854
+ #endif
855
+ #endif
856
+ for(xc0 = c->x, xc = xc0 + wc; wc > 0 && !*--xc; --wc) ;
857
+ c->wds = wc;
858
+ return c;
859
+ }
860
+
861
+ static Bigint *p5s;
862
+
863
+ static Bigint *
864
+ pow5mult
865
+ #ifdef KR_headers
866
+ (b, k) Bigint *b; int k;
867
+ #else
868
+ (Bigint *b, int k)
869
+ #endif
870
+ {
871
+ Bigint *b1, *p5, *p51;
872
+ int i;
873
+ static int p05[3] = { 5, 25, 125 };
874
+
875
+ if ((i = k & 3))
876
+ b = multadd(b, p05[i-1], 0);
877
+
878
+ if (!(k >>= 2))
879
+ return b;
880
+ if (!(p5 = p5s)) {
881
+ /* first time */
882
+ #ifdef MULTIPLE_THREADS
883
+ ACQUIRE_DTOA_LOCK(1);
884
+ if (!(p5 = p5s)) {
885
+ p5 = p5s = i2b(625);
886
+ p5->next = 0;
887
+ }
888
+ FREE_DTOA_LOCK(1);
889
+ #else
890
+ p5 = p5s = i2b(625);
891
+ p5->next = 0;
892
+ #endif
893
+ }
894
+ for(;;) {
895
+ if (k & 1) {
896
+ b1 = mult(b, p5);
897
+ Bfree(b);
898
+ b = b1;
899
+ }
900
+ if (!(k >>= 1))
901
+ break;
902
+ if (!(p51 = p5->next)) {
903
+ #ifdef MULTIPLE_THREADS
904
+ ACQUIRE_DTOA_LOCK(1);
905
+ if (!(p51 = p5->next)) {
906
+ p51 = p5->next = mult(p5,p5);
907
+ p51->next = 0;
908
+ }
909
+ FREE_DTOA_LOCK(1);
910
+ #else
911
+ p51 = p5->next = mult(p5,p5);
912
+ p51->next = 0;
913
+ #endif
914
+ }
915
+ p5 = p51;
916
+ }
917
+ return b;
918
+ }
919
+
920
+ static Bigint *
921
+ lshift
922
+ #ifdef KR_headers
923
+ (b, k) Bigint *b; int k;
924
+ #else
925
+ (Bigint *b, int k)
926
+ #endif
927
+ {
928
+ int i, k1, n, n1;
929
+ Bigint *b1;
930
+ ULong *x, *x1, *xe, z;
931
+
932
+ #ifdef Pack_32
933
+ n = k >> 5;
934
+ #else
935
+ n = k >> 4;
936
+ #endif
937
+ k1 = b->k;
938
+ n1 = n + b->wds + 1;
939
+ for(i = b->maxwds; n1 > i; i <<= 1)
940
+ k1++;
941
+ b1 = Balloc(k1);
942
+ x1 = b1->x;
943
+ for(i = 0; i < n; i++)
944
+ *x1++ = 0;
945
+ x = b->x;
946
+ xe = x + b->wds;
947
+ #ifdef Pack_32
948
+ if (k &= 0x1f) {
949
+ k1 = 32 - k;
950
+ z = 0;
951
+ do {
952
+ *x1++ = *x << k | z;
953
+ z = *x++ >> k1;
954
+ }
955
+ while(x < xe);
956
+ if ((*x1 = z))
957
+ ++n1;
958
+ }
959
+ #else
960
+ if (k &= 0xf) {
961
+ k1 = 16 - k;
962
+ z = 0;
963
+ do {
964
+ *x1++ = *x << k & 0xffff | z;
965
+ z = *x++ >> k1;
966
+ }
967
+ while(x < xe);
968
+ if (*x1 = z)
969
+ ++n1;
970
+ }
971
+ #endif
972
+ else do
973
+ *x1++ = *x++;
974
+ while(x < xe);
975
+ b1->wds = n1 - 1;
976
+ Bfree(b);
977
+ return b1;
978
+ }
979
+
980
+ static int
981
+ cmp
982
+ #ifdef KR_headers
983
+ (a, b) Bigint *a, *b;
984
+ #else
985
+ (Bigint *a, Bigint *b)
986
+ #endif
987
+ {
988
+ ULong *xa, *xa0, *xb, *xb0;
989
+ int i, j;
990
+
991
+ i = a->wds;
992
+ j = b->wds;
993
+ #ifdef DEBUG
994
+ if (i > 1 && !a->x[i-1])
995
+ Bug("cmp called with a->x[a->wds-1] == 0");
996
+ if (j > 1 && !b->x[j-1])
997
+ Bug("cmp called with b->x[b->wds-1] == 0");
998
+ #endif
999
+ if (i -= j)
1000
+ return i;
1001
+ xa0 = a->x;
1002
+ xa = xa0 + j;
1003
+ xb0 = b->x;
1004
+ xb = xb0 + j;
1005
+ for(;;) {
1006
+ if (*--xa != *--xb)
1007
+ return *xa < *xb ? -1 : 1;
1008
+ if (xa <= xa0)
1009
+ break;
1010
+ }
1011
+ return 0;
1012
+ }
1013
+
1014
+ static Bigint *
1015
+ diff
1016
+ #ifdef KR_headers
1017
+ (a, b) Bigint *a, *b;
1018
+ #else
1019
+ (Bigint *a, Bigint *b)
1020
+ #endif
1021
+ {
1022
+ Bigint *c;
1023
+ int i, wa, wb;
1024
+ ULong *xa, *xae, *xb, *xbe, *xc;
1025
+ #ifdef ULLong
1026
+ ULLong borrow, y;
1027
+ #else
1028
+ ULong borrow, y;
1029
+ #ifdef Pack_32
1030
+ ULong z;
1031
+ #endif
1032
+ #endif
1033
+
1034
+ i = cmp(a,b);
1035
+ if (!i) {
1036
+ c = Balloc(0);
1037
+ c->wds = 1;
1038
+ c->x[0] = 0;
1039
+ return c;
1040
+ }
1041
+ if (i < 0) {
1042
+ c = a;
1043
+ a = b;
1044
+ b = c;
1045
+ i = 1;
1046
+ }
1047
+ else
1048
+ i = 0;
1049
+ c = Balloc(a->k);
1050
+ c->sign = i;
1051
+ wa = a->wds;
1052
+ xa = a->x;
1053
+ xae = xa + wa;
1054
+ wb = b->wds;
1055
+ xb = b->x;
1056
+ xbe = xb + wb;
1057
+ xc = c->x;
1058
+ borrow = 0;
1059
+ #ifdef ULLong
1060
+ do {
1061
+ y = (ULLong)*xa++ - *xb++ - borrow;
1062
+ borrow = y >> 32 & (ULong)1;
1063
+ *xc++ = y & FFFFFFFF;
1064
+ }
1065
+ while(xb < xbe);
1066
+ while(xa < xae) {
1067
+ y = *xa++ - borrow;
1068
+ borrow = y >> 32 & (ULong)1;
1069
+ *xc++ = y & FFFFFFFF;
1070
+ }
1071
+ #else
1072
+ #ifdef Pack_32
1073
+ do {
1074
+ y = (*xa & 0xffff) - (*xb & 0xffff) - borrow;
1075
+ borrow = (y & 0x10000) >> 16;
1076
+ z = (*xa++ >> 16) - (*xb++ >> 16) - borrow;
1077
+ borrow = (z & 0x10000) >> 16;
1078
+ Storeinc(xc, z, y);
1079
+ }
1080
+ while(xb < xbe);
1081
+ while(xa < xae) {
1082
+ y = (*xa & 0xffff) - borrow;
1083
+ borrow = (y & 0x10000) >> 16;
1084
+ z = (*xa++ >> 16) - borrow;
1085
+ borrow = (z & 0x10000) >> 16;
1086
+ Storeinc(xc, z, y);
1087
+ }
1088
+ #else
1089
+ do {
1090
+ y = *xa++ - *xb++ - borrow;
1091
+ borrow = (y & 0x10000) >> 16;
1092
+ *xc++ = y & 0xffff;
1093
+ }
1094
+ while(xb < xbe);
1095
+ while(xa < xae) {
1096
+ y = *xa++ - borrow;
1097
+ borrow = (y & 0x10000) >> 16;
1098
+ *xc++ = y & 0xffff;
1099
+ }
1100
+ #endif
1101
+ #endif
1102
+ while(!*--xc)
1103
+ wa--;
1104
+ c->wds = wa;
1105
+ return c;
1106
+ }
1107
+
1108
+ static double
1109
+ ulp
1110
+ #ifdef KR_headers
1111
+ (x) double x;
1112
+ #else
1113
+ (double x)
1114
+ #endif
1115
+ {
1116
+ register Long L;
1117
+ double a;
1118
+
1119
+ L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1;
1120
+ #ifndef Avoid_Underflow
1121
+ #ifndef Sudden_Underflow
1122
+ if (L > 0) {
1123
+ #endif
1124
+ #endif
1125
+ #ifdef IBM
1126
+ L |= Exp_msk1 >> 4;
1127
+ #endif
1128
+ word0(a) = L;
1129
+ word1(a) = 0;
1130
+ #ifndef Avoid_Underflow
1131
+ #ifndef Sudden_Underflow
1132
+ }
1133
+ else {
1134
+ L = -L >> Exp_shift;
1135
+ if (L < Exp_shift) {
1136
+ word0(a) = 0x80000 >> L;
1137
+ word1(a) = 0;
1138
+ }
1139
+ else {
1140
+ word0(a) = 0;
1141
+ L -= Exp_shift;
1142
+ word1(a) = L >= 31 ? 1 : 1 << 31 - L;
1143
+ }
1144
+ }
1145
+ #endif
1146
+ #endif
1147
+ return dval(a);
1148
+ }
1149
+
1150
+ static double
1151
+ b2d
1152
+ #ifdef KR_headers
1153
+ (a, e) Bigint *a; int *e;
1154
+ #else
1155
+ (Bigint *a, int *e)
1156
+ #endif
1157
+ {
1158
+ ULong *xa, *xa0, w, y, z;
1159
+ int k;
1160
+ double d;
1161
+ #ifdef VAX
1162
+ ULong d0, d1;
1163
+ #else
1164
+ #define d0 word0(d)
1165
+ #define d1 word1(d)
1166
+ #endif
1167
+
1168
+ xa0 = a->x;
1169
+ xa = xa0 + a->wds;
1170
+ y = *--xa;
1171
+ #ifdef DEBUG
1172
+ if (!y) Bug("zero y in b2d");
1173
+ #endif
1174
+ k = hi0bits(y);
1175
+ *e = 32 - k;
1176
+ #ifdef Pack_32
1177
+ if (k < Ebits) {
1178
+ d0 = Exp_1 | (y >> (Ebits - k));
1179
+ w = xa > xa0 ? *--xa : 0;
1180
+ d1 = (y << ((32-Ebits) + k)) | (w >> (Ebits - k));
1181
+ goto ret_d;
1182
+ }
1183
+ z = xa > xa0 ? *--xa : 0;
1184
+ if (k -= Ebits) {
1185
+ d0 = Exp_1 | (y << k) | (z >> (32 - k));
1186
+ y = xa > xa0 ? *--xa : 0;
1187
+ d1 = (z << k) | (y >> (32 - k));
1188
+ }
1189
+ else {
1190
+ d0 = Exp_1 | y;
1191
+ d1 = z;
1192
+ }
1193
+ #else
1194
+ if (k < Ebits + 16) {
1195
+ z = xa > xa0 ? *--xa : 0;
1196
+ d0 = Exp_1 | (y << (k - Ebits)) | (z >> (Ebits + 16 - k));
1197
+ w = xa > xa0 ? *--xa : 0;
1198
+ y = xa > xa0 ? *--xa : 0;
1199
+ d1 = (z << (k + 16 - Ebits)) | (w << (k - Ebits)) | (y >> (16 + Ebits - k));
1200
+ goto ret_d;
1201
+ }
1202
+ z = xa > xa0 ? *--xa : 0;
1203
+ w = xa > xa0 ? *--xa : 0;
1204
+ k -= Ebits + 16;
1205
+ d0 = Exp_1 | y << k + 16 | z << k | w >> 16 - k;
1206
+ y = xa > xa0 ? *--xa : 0;
1207
+ d1 = w << k + 16 | y << k;
1208
+ #endif
1209
+ ret_d:
1210
+ #ifdef VAX
1211
+ word0(d) = d0 >> 16 | d0 << 16;
1212
+ word1(d) = d1 >> 16 | d1 << 16;
1213
+ #else
1214
+ #undef d0
1215
+ #undef d1
1216
+ #endif
1217
+ return dval(d);
1218
+ }
1219
+
1220
+ static Bigint *
1221
+ d2b
1222
+ #ifdef KR_headers
1223
+ (d, e, bits) double d; int *e, *bits;
1224
+ #else
1225
+ (double d, int *e, int *bits)
1226
+ #endif
1227
+ {
1228
+ Bigint *b;
1229
+ int de, k;
1230
+ ULong *x, y, z;
1231
+ #ifndef Sudden_Underflow
1232
+ int i;
1233
+ #endif
1234
+ #ifdef VAX
1235
+ ULong d0, d1;
1236
+ d0 = word0(d) >> 16 | word0(d) << 16;
1237
+ d1 = word1(d) >> 16 | word1(d) << 16;
1238
+ #else
1239
+ #define d0 word0(d)
1240
+ #define d1 word1(d)
1241
+ #endif
1242
+
1243
+ #ifdef Pack_32
1244
+ b = Balloc(1);
1245
+ #else
1246
+ b = Balloc(2);
1247
+ #endif
1248
+ x = b->x;
1249
+
1250
+ z = d0 & Frac_mask;
1251
+ d0 &= 0x7fffffff; /* clear sign bit, which we ignore */
1252
+ #ifdef Sudden_Underflow
1253
+ de = (int)(d0 >> Exp_shift);
1254
+ #ifndef IBM
1255
+ z |= Exp_msk11;
1256
+ #endif
1257
+ #else
1258
+ if ((de = (int)(d0 >> Exp_shift)))
1259
+ z |= Exp_msk1;
1260
+ #endif
1261
+ #ifdef Pack_32
1262
+ if ((y = d1)) {
1263
+ if ((k = lo0bits(&y))) {
1264
+ x[0] = y | (z << (32 - k));
1265
+ z >>= k;
1266
+ }
1267
+ else
1268
+ x[0] = y;
1269
+ #ifndef Sudden_Underflow
1270
+ i =
1271
+ #endif
1272
+ b->wds = (x[1] = z) ? 2 : 1;
1273
+ }
1274
+ else {
1275
+ /* This assertion fails for "1e-500" and other very
1276
+ * small numbers. It provides the right result (0)
1277
+ * though. This assert has also been removed from KJS's
1278
+ * version of dtoa.c.
1279
+ *
1280
+ * #ifdef DEBUG
1281
+ * if (!z) Bug("zero z in b2d");
1282
+ * #endif
1283
+ */
1284
+ k = lo0bits(&z);
1285
+ x[0] = z;
1286
+ #ifndef Sudden_Underflow
1287
+ i =
1288
+ #endif
1289
+ b->wds = 1;
1290
+ k += 32;
1291
+ }
1292
+ #else
1293
+ if (y = d1) {
1294
+ if (k = lo0bits(&y))
1295
+ if (k >= 16) {
1296
+ x[0] = y | z << 32 - k & 0xffff;
1297
+ x[1] = z >> k - 16 & 0xffff;
1298
+ x[2] = z >> k;
1299
+ i = 2;
1300
+ }
1301
+ else {
1302
+ x[0] = y & 0xffff;
1303
+ x[1] = y >> 16 | z << 16 - k & 0xffff;
1304
+ x[2] = z >> k & 0xffff;
1305
+ x[3] = z >> k+16;
1306
+ i = 3;
1307
+ }
1308
+ else {
1309
+ x[0] = y & 0xffff;
1310
+ x[1] = y >> 16;
1311
+ x[2] = z & 0xffff;
1312
+ x[3] = z >> 16;
1313
+ i = 3;
1314
+ }
1315
+ }
1316
+ else {
1317
+ #ifdef DEBUG
1318
+ if (!z)
1319
+ Bug("Zero passed to d2b");
1320
+ #endif
1321
+ k = lo0bits(&z);
1322
+ if (k >= 16) {
1323
+ x[0] = z;
1324
+ i = 0;
1325
+ }
1326
+ else {
1327
+ x[0] = z & 0xffff;
1328
+ x[1] = z >> 16;
1329
+ i = 1;
1330
+ }
1331
+ k += 32;
1332
+ }
1333
+ while(!x[i])
1334
+ --i;
1335
+ b->wds = i + 1;
1336
+ #endif
1337
+ #ifndef Sudden_Underflow
1338
+ if (de) {
1339
+ #endif
1340
+ #ifdef IBM
1341
+ *e = (de - Bias - (P-1) << 2) + k;
1342
+ *bits = 4*P + 8 - k - hi0bits(word0(d) & Frac_mask);
1343
+ #else
1344
+ *e = de - Bias - (P-1) + k;
1345
+ *bits = P - k;
1346
+ #endif
1347
+ #ifndef Sudden_Underflow
1348
+ }
1349
+ else {
1350
+ *e = de - Bias - (P-1) + 1 + k;
1351
+ #ifdef Pack_32
1352
+ *bits = 32*i - hi0bits(x[i-1]);
1353
+ #else
1354
+ *bits = (i+2)*16 - hi0bits(x[i]);
1355
+ #endif
1356
+ }
1357
+ #endif
1358
+ return b;
1359
+ }
1360
+ #undef d0
1361
+ #undef d1
1362
+
1363
+ static double
1364
+ ratio
1365
+ #ifdef KR_headers
1366
+ (a, b) Bigint *a, *b;
1367
+ #else
1368
+ (Bigint *a, Bigint *b)
1369
+ #endif
1370
+ {
1371
+ double da, db;
1372
+ int k, ka, kb;
1373
+
1374
+ dval(da) = b2d(a, &ka);
1375
+ dval(db) = b2d(b, &kb);
1376
+ #ifdef Pack_32
1377
+ k = ka - kb + 32*(a->wds - b->wds);
1378
+ #else
1379
+ k = ka - kb + 16*(a->wds - b->wds);
1380
+ #endif
1381
+ #ifdef IBM
1382
+ if (k > 0) {
1383
+ word0(da) += (k >> 2)*Exp_msk1;
1384
+ if (k &= 3)
1385
+ dval(da) *= 1 << k;
1386
+ }
1387
+ else {
1388
+ k = -k;
1389
+ word0(db) += (k >> 2)*Exp_msk1;
1390
+ if (k &= 3)
1391
+ dval(db) *= 1 << k;
1392
+ }
1393
+ #else
1394
+ if (k > 0)
1395
+ word0(da) += k*Exp_msk1;
1396
+ else {
1397
+ k = -k;
1398
+ word0(db) += k*Exp_msk1;
1399
+ }
1400
+ #endif
1401
+ return dval(da) / dval(db);
1402
+ }
1403
+
1404
+ static CONST double
1405
+ tens[] = {
1406
+ 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
1407
+ 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
1408
+ 1e20, 1e21, 1e22
1409
+ #ifdef VAX
1410
+ , 1e23, 1e24
1411
+ #endif
1412
+ };
1413
+
1414
+ static CONST double
1415
+ #ifdef IEEE_Arith
1416
+ bigtens[] = { 1e16, 1e32, 1e64, 1e128, 1e256 };
1417
+ static CONST double tinytens[] = { 1e-16, 1e-32, 1e-64, 1e-128,
1418
+ #ifdef Avoid_Underflow
1419
+ 9007199254740992.*9007199254740992.e-256
1420
+ /* = 2^106 * 1e-53 */
1421
+ #else
1422
+ 1e-256
1423
+ #endif
1424
+ };
1425
+ /* The factor of 2^53 in tinytens[4] helps us avoid setting the underflow */
1426
+ /* flag unnecessarily. It leads to a song and dance at the end of strtod. */
1427
+ #define Scale_Bit 0x10
1428
+ #define n_bigtens 5
1429
+ #else
1430
+ #ifdef IBM
1431
+ bigtens[] = { 1e16, 1e32, 1e64 };
1432
+ static CONST double tinytens[] = { 1e-16, 1e-32, 1e-64 };
1433
+ #define n_bigtens 3
1434
+ #else
1435
+ bigtens[] = { 1e16, 1e32 };
1436
+ static CONST double tinytens[] = { 1e-16, 1e-32 };
1437
+ #define n_bigtens 2
1438
+ #endif
1439
+ #endif
1440
+
1441
+ #ifndef IEEE_Arith
1442
+ #undef INFNAN_CHECK
1443
+ #endif
1444
+
1445
+ #ifdef INFNAN_CHECK
1446
+
1447
+ #ifndef NAN_WORD0
1448
+ #define NAN_WORD0 0x7ff80000
1449
+ #endif
1450
+
1451
+ #ifndef NAN_WORD1
1452
+ #define NAN_WORD1 0
1453
+ #endif
1454
+
1455
+ static int
1456
+ match
1457
+ #ifdef KR_headers
1458
+ (sp, t) char **sp, *t;
1459
+ #else
1460
+ (CONST char **sp, char *t)
1461
+ #endif
1462
+ {
1463
+ int c, d;
1464
+ CONST char *s = *sp;
1465
+
1466
+ while(d = *t++) {
1467
+ if ((c = *++s) >= 'A' && c <= 'Z')
1468
+ c += 'a' - 'A';
1469
+ if (c != d)
1470
+ return 0;
1471
+ }
1472
+ *sp = s + 1;
1473
+ return 1;
1474
+ }
1475
+
1476
+ #ifndef No_Hex_NaN
1477
+ static void
1478
+ hexnan
1479
+ #ifdef KR_headers
1480
+ (rvp, sp) double *rvp; CONST char **sp;
1481
+ #else
1482
+ (double *rvp, CONST char **sp)
1483
+ #endif
1484
+ {
1485
+ ULong c, x[2];
1486
+ CONST char *s;
1487
+ int havedig, udx0, xshift;
1488
+
1489
+ x[0] = x[1] = 0;
1490
+ havedig = xshift = 0;
1491
+ udx0 = 1;
1492
+ s = *sp;
1493
+ while(c = *(CONST unsigned char*)++s) {
1494
+ if (c >= '0' && c <= '9')
1495
+ c -= '0';
1496
+ else if (c >= 'a' && c <= 'f')
1497
+ c += 10 - 'a';
1498
+ else if (c >= 'A' && c <= 'F')
1499
+ c += 10 - 'A';
1500
+ else if (c <= ' ') {
1501
+ if (udx0 && havedig) {
1502
+ udx0 = 0;
1503
+ xshift = 1;
1504
+ }
1505
+ continue;
1506
+ }
1507
+ else if (/*(*/ c == ')' && havedig) {
1508
+ *sp = s + 1;
1509
+ break;
1510
+ }
1511
+ else
1512
+ return; /* invalid form: don't change *sp */
1513
+ havedig = 1;
1514
+ if (xshift) {
1515
+ xshift = 0;
1516
+ x[0] = x[1];
1517
+ x[1] = 0;
1518
+ }
1519
+ if (udx0)
1520
+ x[0] = (x[0] << 4) | (x[1] >> 28);
1521
+ x[1] = (x[1] << 4) | c;
1522
+ }
1523
+ if ((x[0] &= 0xfffff) || x[1]) {
1524
+ word0(*rvp) = Exp_mask | x[0];
1525
+ word1(*rvp) = x[1];
1526
+ }
1527
+ }
1528
+ #endif /*No_Hex_NaN*/
1529
+ #endif /* INFNAN_CHECK */
1530
+
1531
+ double
1532
+ strtod
1533
+ #ifdef KR_headers
1534
+ (s00, se) CONST char *s00; char **se;
1535
+ #else
1536
+ (CONST char *s00, char **se)
1537
+ #endif
1538
+ {
1539
+ #ifdef Avoid_Underflow
1540
+ int scale;
1541
+ #endif
1542
+ int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign,
1543
+ e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;
1544
+ CONST char *s, *s0, *s1;
1545
+ double aadj, aadj1, adj, rv, rv0;
1546
+ Long L;
1547
+ ULong y, z;
1548
+ Bigint *bb = NULL, *bb1, *bd = NULL, *bd0, *bs = NULL, *delta = NULL;
1549
+ #ifdef SET_INEXACT
1550
+ int inexact, oldinexact;
1551
+ #endif
1552
+ #ifdef Honor_FLT_ROUNDS
1553
+ int rounding;
1554
+ #endif
1555
+ #ifdef USE_LOCALE
1556
+ CONST char *s2;
1557
+ #endif
1558
+
1559
+ sign = nz0 = nz = 0;
1560
+ dval(rv) = 0.;
1561
+ for(s = s00;;s++) switch(*s) {
1562
+ case '-':
1563
+ sign = 1;
1564
+ /* no break */
1565
+ case '+':
1566
+ if (*++s)
1567
+ goto break2;
1568
+ /* no break */
1569
+ case 0:
1570
+ goto ret0;
1571
+ case '\t':
1572
+ case '\n':
1573
+ case '\v':
1574
+ case '\f':
1575
+ case '\r':
1576
+ case ' ':
1577
+ continue;
1578
+ default:
1579
+ goto break2;
1580
+ }
1581
+ break2:
1582
+ if (*s == '0') {
1583
+ nz0 = 1;
1584
+ while(*++s == '0') ;
1585
+ if (!*s)
1586
+ goto ret;
1587
+ }
1588
+ s0 = s;
1589
+ y = z = 0;
1590
+ for(nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++)
1591
+ if (nd < 9)
1592
+ y = 10*y + c - '0';
1593
+ else if (nd < 16)
1594
+ z = 10*z + c - '0';
1595
+ nd0 = nd;
1596
+ #ifdef USE_LOCALE
1597
+ s1 = localeconv()->decimal_point;
1598
+ if (c == *s1) {
1599
+ c = '.';
1600
+ if (*++s1) {
1601
+ s2 = s;
1602
+ for(;;) {
1603
+ if (*++s2 != *s1) {
1604
+ c = 0;
1605
+ break;
1606
+ }
1607
+ if (!*++s1) {
1608
+ s = s2;
1609
+ break;
1610
+ }
1611
+ }
1612
+ }
1613
+ }
1614
+ #endif
1615
+ if (c == '.') {
1616
+ c = *++s;
1617
+ if (!nd) {
1618
+ for(; c == '0'; c = *++s)
1619
+ nz++;
1620
+ if (c > '0' && c <= '9') {
1621
+ s0 = s;
1622
+ nf += nz;
1623
+ nz = 0;
1624
+ goto have_dig;
1625
+ }
1626
+ goto dig_done;
1627
+ }
1628
+ for(; c >= '0' && c <= '9'; c = *++s) {
1629
+ have_dig:
1630
+ nz++;
1631
+ if (c -= '0') {
1632
+ nf += nz;
1633
+ for(i = 1; i < nz; i++)
1634
+ if (nd++ < 9)
1635
+ y *= 10;
1636
+ else if (nd <= DBL_DIG + 1)
1637
+ z *= 10;
1638
+ if (nd++ < 9)
1639
+ y = 10*y + c;
1640
+ else if (nd <= DBL_DIG + 1)
1641
+ z = 10*z + c;
1642
+ nz = 0;
1643
+ }
1644
+ }
1645
+ }
1646
+ dig_done:
1647
+ e = 0;
1648
+ if (c == 'e' || c == 'E') {
1649
+ if (!nd && !nz && !nz0) {
1650
+ goto ret0;
1651
+ }
1652
+ s00 = s;
1653
+ esign = 0;
1654
+ switch(c = *++s) {
1655
+ case '-':
1656
+ esign = 1;
1657
+ case '+':
1658
+ c = *++s;
1659
+ }
1660
+ if (c >= '0' && c <= '9') {
1661
+ while(c == '0')
1662
+ c = *++s;
1663
+ if (c > '0' && c <= '9') {
1664
+ L = c - '0';
1665
+ s1 = s;
1666
+ while((c = *++s) >= '0' && c <= '9')
1667
+ L = 10*L + c - '0';
1668
+ if (s - s1 > 8 || L > 19999)
1669
+ /* Avoid confusion from exponents
1670
+ * so large that e might overflow.
1671
+ */
1672
+ e = 19999; /* safe for 16 bit ints */
1673
+ else
1674
+ e = (int)L;
1675
+ if (esign)
1676
+ e = -e;
1677
+ }
1678
+ else
1679
+ e = 0;
1680
+ }
1681
+ else
1682
+ s = s00;
1683
+ }
1684
+ if (!nd) {
1685
+ if (!nz && !nz0) {
1686
+ #ifdef INFNAN_CHECK
1687
+ /* Check for Nan and Infinity */
1688
+ switch(c) {
1689
+ case 'i':
1690
+ case 'I':
1691
+ if (match(&s,"nf")) {
1692
+ --s;
1693
+ if (!match(&s,"inity"))
1694
+ ++s;
1695
+ word0(rv) = 0x7ff00000;
1696
+ word1(rv) = 0;
1697
+ goto ret;
1698
+ }
1699
+ break;
1700
+ case 'n':
1701
+ case 'N':
1702
+ if (match(&s, "an")) {
1703
+ word0(rv) = NAN_WORD0;
1704
+ word1(rv) = NAN_WORD1;
1705
+ #ifndef No_Hex_NaN
1706
+ if (*s == '(') /*)*/
1707
+ hexnan(&rv, &s);
1708
+ #endif
1709
+ goto ret;
1710
+ }
1711
+ }
1712
+ #endif /* INFNAN_CHECK */
1713
+ ret0:
1714
+ s = s00;
1715
+ sign = 0;
1716
+ }
1717
+ goto ret;
1718
+ }
1719
+ e1 = e -= nf;
1720
+
1721
+ /* Now we have nd0 digits, starting at s0, followed by a
1722
+ * decimal point, followed by nd-nd0 digits. The number we're
1723
+ * after is the integer represented by those digits times
1724
+ * 10**e */
1725
+
1726
+ if (!nd0)
1727
+ nd0 = nd;
1728
+ k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1;
1729
+ dval(rv) = y;
1730
+ if (k > 9) {
1731
+ #ifdef SET_INEXACT
1732
+ if (k > DBL_DIG)
1733
+ oldinexact = get_inexact();
1734
+ #endif
1735
+ dval(rv) = tens[k - 9] * dval(rv) + z;
1736
+ }
1737
+ bd0 = 0;
1738
+ if (nd <= DBL_DIG
1739
+ #ifndef RND_PRODQUOT
1740
+ #ifndef Honor_FLT_ROUNDS
1741
+ && Flt_Rounds == 1
1742
+ #endif
1743
+ #endif
1744
+ ) {
1745
+ if (!e)
1746
+ goto ret;
1747
+ if (e > 0) {
1748
+ if (e <= Ten_pmax) {
1749
+ #ifdef VAX
1750
+ goto vax_ovfl_check;
1751
+ #else
1752
+ #ifdef Honor_FLT_ROUNDS
1753
+ /* round correctly FLT_ROUNDS = 2 or 3 */
1754
+ if (sign) {
1755
+ rv = -rv;
1756
+ sign = 0;
1757
+ }
1758
+ #endif
1759
+ /* rv = */ rounded_product(dval(rv), tens[e]);
1760
+ goto ret;
1761
+ #endif
1762
+ }
1763
+ i = DBL_DIG - nd;
1764
+ if (e <= Ten_pmax + i) {
1765
+ /* A fancier test would sometimes let us do
1766
+ * this for larger i values.
1767
+ */
1768
+ #ifdef Honor_FLT_ROUNDS
1769
+ /* round correctly FLT_ROUNDS = 2 or 3 */
1770
+ if (sign) {
1771
+ rv = -rv;
1772
+ sign = 0;
1773
+ }
1774
+ #endif
1775
+ e -= i;
1776
+ dval(rv) *= tens[i];
1777
+ #ifdef VAX
1778
+ /* VAX exponent range is so narrow we must
1779
+ * worry about overflow here...
1780
+ */
1781
+ vax_ovfl_check:
1782
+ word0(rv) -= P*Exp_msk1;
1783
+ /* rv = */ rounded_product(dval(rv), tens[e]);
1784
+ if ((word0(rv) & Exp_mask)
1785
+ > Exp_msk1*(DBL_MAX_EXP+Bias-1-P))
1786
+ goto ovfl;
1787
+ word0(rv) += P*Exp_msk1;
1788
+ #else
1789
+ /* rv = */ rounded_product(dval(rv), tens[e]);
1790
+ #endif
1791
+ goto ret;
1792
+ }
1793
+ }
1794
+ #ifndef Inaccurate_Divide
1795
+ else if (e >= -Ten_pmax) {
1796
+ #ifdef Honor_FLT_ROUNDS
1797
+ /* round correctly FLT_ROUNDS = 2 or 3 */
1798
+ if (sign) {
1799
+ rv = -rv;
1800
+ sign = 0;
1801
+ }
1802
+ #endif
1803
+ /* rv = */ rounded_quotient(dval(rv), tens[-e]);
1804
+ goto ret;
1805
+ }
1806
+ #endif
1807
+ }
1808
+ e1 += nd - k;
1809
+
1810
+ #ifdef IEEE_Arith
1811
+ #ifdef SET_INEXACT
1812
+ inexact = 1;
1813
+ if (k <= DBL_DIG)
1814
+ oldinexact = get_inexact();
1815
+ #endif
1816
+ #ifdef Avoid_Underflow
1817
+ scale = 0;
1818
+ #endif
1819
+ #ifdef Honor_FLT_ROUNDS
1820
+ if ((rounding = Flt_Rounds) >= 2) {
1821
+ if (sign)
1822
+ rounding = rounding == 2 ? 0 : 2;
1823
+ else
1824
+ if (rounding != 2)
1825
+ rounding = 0;
1826
+ }
1827
+ #endif
1828
+ #endif /*IEEE_Arith*/
1829
+
1830
+ /* Get starting approximation = rv * 10**e1 */
1831
+
1832
+ if (e1 > 0) {
1833
+ if ((i = e1 & 15))
1834
+ dval(rv) *= tens[i];
1835
+ if (e1 &= ~15) {
1836
+ if (e1 > DBL_MAX_10_EXP) {
1837
+ ovfl:
1838
+ #ifndef NO_ERRNO
1839
+ errno = ERANGE;
1840
+ #endif
1841
+ /* Can't trust HUGE_VAL */
1842
+ #ifdef IEEE_Arith
1843
+ #ifdef Honor_FLT_ROUNDS
1844
+ switch(rounding) {
1845
+ case 0: /* toward 0 */
1846
+ case 3: /* toward -infinity */
1847
+ word0(rv) = Big0;
1848
+ word1(rv) = Big1;
1849
+ break;
1850
+ default:
1851
+ word0(rv) = Exp_mask;
1852
+ word1(rv) = 0;
1853
+ }
1854
+ #else /*Honor_FLT_ROUNDS*/
1855
+ word0(rv) = Exp_mask;
1856
+ word1(rv) = 0;
1857
+ #endif /*Honor_FLT_ROUNDS*/
1858
+ #ifdef SET_INEXACT
1859
+ /* set overflow bit */
1860
+ dval(rv0) = 1e300;
1861
+ dval(rv0) *= dval(rv0);
1862
+ #endif
1863
+ #else /*IEEE_Arith*/
1864
+ word0(rv) = Big0;
1865
+ word1(rv) = Big1;
1866
+ #endif /*IEEE_Arith*/
1867
+ if (bd0)
1868
+ goto retfree;
1869
+ goto ret;
1870
+ }
1871
+ e1 >>= 4;
1872
+ for(j = 0; e1 > 1; j++, e1 >>= 1)
1873
+ if (e1 & 1)
1874
+ dval(rv) *= bigtens[j];
1875
+ /* The last multiplication could overflow. */
1876
+ word0(rv) -= P*Exp_msk1;
1877
+ dval(rv) *= bigtens[j];
1878
+ if ((z = word0(rv) & Exp_mask)
1879
+ > Exp_msk1*(DBL_MAX_EXP+Bias-P))
1880
+ goto ovfl;
1881
+ if (z > Exp_msk1*(DBL_MAX_EXP+Bias-1-P)) {
1882
+ /* set to largest number */
1883
+ /* (Can't trust DBL_MAX) */
1884
+ word0(rv) = Big0;
1885
+ word1(rv) = Big1;
1886
+ }
1887
+ else
1888
+ word0(rv) += P*Exp_msk1;
1889
+ }
1890
+ }
1891
+ else if (e1 < 0) {
1892
+ e1 = -e1;
1893
+ if ((i = e1 & 15))
1894
+ dval(rv) /= tens[i];
1895
+ if (e1 >>= 4) {
1896
+ if (e1 >= 1 << n_bigtens)
1897
+ goto undfl;
1898
+ #ifdef Avoid_Underflow
1899
+ if (e1 & Scale_Bit)
1900
+ scale = 2*P;
1901
+ for(j = 0; e1 > 0; j++, e1 >>= 1)
1902
+ if (e1 & 1)
1903
+ dval(rv) *= tinytens[j];
1904
+ if (scale && (j = 2*P + 1 - ((word0(rv) & Exp_mask)
1905
+ >> Exp_shift)) > 0) {
1906
+ /* scaled rv is denormal; zap j low bits */
1907
+ if (j >= 32) {
1908
+ word1(rv) = 0;
1909
+ if (j >= 53)
1910
+ word0(rv) = (P+2)*Exp_msk1;
1911
+ else
1912
+ word0(rv) &= 0xffffffff << (j-32);
1913
+ }
1914
+ else
1915
+ word1(rv) &= 0xffffffff << j;
1916
+ }
1917
+ #else
1918
+ for(j = 0; e1 > 1; j++, e1 >>= 1)
1919
+ if (e1 & 1)
1920
+ dval(rv) *= tinytens[j];
1921
+ /* The last multiplication could underflow. */
1922
+ dval(rv0) = dval(rv);
1923
+ dval(rv) *= tinytens[j];
1924
+ if (!dval(rv)) {
1925
+ dval(rv) = 2.*dval(rv0);
1926
+ dval(rv) *= tinytens[j];
1927
+ #endif
1928
+ if (!dval(rv)) {
1929
+ undfl:
1930
+ dval(rv) = 0.;
1931
+ #ifndef NO_ERRNO
1932
+ errno = ERANGE;
1933
+ #endif
1934
+ if (bd0)
1935
+ goto retfree;
1936
+ goto ret;
1937
+ }
1938
+ #ifndef Avoid_Underflow
1939
+ word0(rv) = Tiny0;
1940
+ word1(rv) = Tiny1;
1941
+ /* The refinement below will clean
1942
+ * this approximation up.
1943
+ */
1944
+ }
1945
+ #endif
1946
+ }
1947
+ }
1948
+
1949
+ /* Now the hard part -- adjusting rv to the correct value.*/
1950
+
1951
+ /* Put digits into bd: true value = bd * 10^e */
1952
+
1953
+ bd0 = s2b(s0, nd0, nd, y);
1954
+
1955
+ for(;;) {
1956
+ bd = Balloc(bd0->k);
1957
+ Bcopy(bd, bd0);
1958
+ bb = d2b(dval(rv), &bbe, &bbbits); /* rv = bb * 2^bbe */
1959
+ bs = i2b(1);
1960
+
1961
+ if (e >= 0) {
1962
+ bb2 = bb5 = 0;
1963
+ bd2 = bd5 = e;
1964
+ }
1965
+ else {
1966
+ bb2 = bb5 = -e;
1967
+ bd2 = bd5 = 0;
1968
+ }
1969
+ if (bbe >= 0)
1970
+ bb2 += bbe;
1971
+ else
1972
+ bd2 -= bbe;
1973
+ bs2 = bb2;
1974
+ #ifdef Honor_FLT_ROUNDS
1975
+ if (rounding != 1)
1976
+ bs2++;
1977
+ #endif
1978
+ #ifdef Avoid_Underflow
1979
+ j = bbe - scale;
1980
+ i = j + bbbits - 1; /* logb(rv) */
1981
+ if (i < Emin) /* denormal */
1982
+ j += P - Emin;
1983
+ else
1984
+ j = P + 1 - bbbits;
1985
+ #else /*Avoid_Underflow*/
1986
+ #ifdef Sudden_Underflow
1987
+ #ifdef IBM
1988
+ j = 1 + 4*P - 3 - bbbits + ((bbe + bbbits - 1) & 3);
1989
+ #else
1990
+ j = P + 1 - bbbits;
1991
+ #endif
1992
+ #else /*Sudden_Underflow*/
1993
+ j = bbe;
1994
+ i = j + bbbits - 1; /* logb(rv) */
1995
+ if (i < Emin) /* denormal */
1996
+ j += P - Emin;
1997
+ else
1998
+ j = P + 1 - bbbits;
1999
+ #endif /*Sudden_Underflow*/
2000
+ #endif /*Avoid_Underflow*/
2001
+ bb2 += j;
2002
+ bd2 += j;
2003
+ #ifdef Avoid_Underflow
2004
+ bd2 += scale;
2005
+ #endif
2006
+ i = bb2 < bd2 ? bb2 : bd2;
2007
+ if (i > bs2)
2008
+ i = bs2;
2009
+ if (i > 0) {
2010
+ bb2 -= i;
2011
+ bd2 -= i;
2012
+ bs2 -= i;
2013
+ }
2014
+ if (bb5 > 0) {
2015
+ bs = pow5mult(bs, bb5);
2016
+ bb1 = mult(bs, bb);
2017
+ Bfree(bb);
2018
+ bb = bb1;
2019
+ }
2020
+ if (bb2 > 0)
2021
+ bb = lshift(bb, bb2);
2022
+ if (bd5 > 0)
2023
+ bd = pow5mult(bd, bd5);
2024
+ if (bd2 > 0)
2025
+ bd = lshift(bd, bd2);
2026
+ if (bs2 > 0)
2027
+ bs = lshift(bs, bs2);
2028
+ delta = diff(bb, bd);
2029
+ dsign = delta->sign;
2030
+ delta->sign = 0;
2031
+ i = cmp(delta, bs);
2032
+ #ifdef Honor_FLT_ROUNDS
2033
+ if (rounding != 1) {
2034
+ if (i < 0) {
2035
+ /* Error is less than an ulp */
2036
+ if (!delta->x[0] && delta->wds <= 1) {
2037
+ /* exact */
2038
+ #ifdef SET_INEXACT
2039
+ inexact = 0;
2040
+ #endif
2041
+ break;
2042
+ }
2043
+ if (rounding) {
2044
+ if (dsign) {
2045
+ adj = 1.;
2046
+ goto apply_adj;
2047
+ }
2048
+ }
2049
+ else if (!dsign) {
2050
+ adj = -1.;
2051
+ if (!word1(rv)
2052
+ && !(word0(rv) & Frac_mask)) {
2053
+ y = word0(rv) & Exp_mask;
2054
+ #ifdef Avoid_Underflow
2055
+ if (!scale || y > 2*P*Exp_msk1)
2056
+ #else
2057
+ if (y)
2058
+ #endif
2059
+ {
2060
+ delta = lshift(delta,Log2P);
2061
+ if (cmp(delta, bs) <= 0)
2062
+ adj = -0.5;
2063
+ }
2064
+ }
2065
+ apply_adj:
2066
+ #ifdef Avoid_Underflow
2067
+ if (scale && (y = word0(rv) & Exp_mask)
2068
+ <= 2*P*Exp_msk1)
2069
+ word0(adj) += (2*P+1)*Exp_msk1 - y;
2070
+ #else
2071
+ #ifdef Sudden_Underflow
2072
+ if ((word0(rv) & Exp_mask) <=
2073
+ P*Exp_msk1) {
2074
+ word0(rv) += P*Exp_msk1;
2075
+ dval(rv) += adj*ulp(dval(rv));
2076
+ word0(rv) -= P*Exp_msk1;
2077
+ }
2078
+ else
2079
+ #endif /*Sudden_Underflow*/
2080
+ #endif /*Avoid_Underflow*/
2081
+ dval(rv) += adj*ulp(dval(rv));
2082
+ }
2083
+ break;
2084
+ }
2085
+ adj = ratio(delta, bs);
2086
+ if (adj < 1.)
2087
+ adj = 1.;
2088
+ if (adj <= 0x7ffffffe) {
2089
+ /* adj = rounding ? ceil(adj) : floor(adj); */
2090
+ y = adj;
2091
+ if (y != adj) {
2092
+ if (!((rounding>>1) ^ dsign))
2093
+ y++;
2094
+ adj = y;
2095
+ }
2096
+ }
2097
+ #ifdef Avoid_Underflow
2098
+ if (scale && (y = word0(rv) & Exp_mask) <= 2*P*Exp_msk1)
2099
+ word0(adj) += (2*P+1)*Exp_msk1 - y;
2100
+ #else
2101
+ #ifdef Sudden_Underflow
2102
+ if ((word0(rv) & Exp_mask) <= P*Exp_msk1) {
2103
+ word0(rv) += P*Exp_msk1;
2104
+ adj *= ulp(dval(rv));
2105
+ if (dsign)
2106
+ dval(rv) += adj;
2107
+ else
2108
+ dval(rv) -= adj;
2109
+ word0(rv) -= P*Exp_msk1;
2110
+ goto cont;
2111
+ }
2112
+ #endif /*Sudden_Underflow*/
2113
+ #endif /*Avoid_Underflow*/
2114
+ adj *= ulp(dval(rv));
2115
+ if (dsign)
2116
+ dval(rv) += adj;
2117
+ else
2118
+ dval(rv) -= adj;
2119
+ goto cont;
2120
+ }
2121
+ #endif /*Honor_FLT_ROUNDS*/
2122
+
2123
+ if (i < 0) {
2124
+ /* Error is less than half an ulp -- check for
2125
+ * special case of mantissa a power of two.
2126
+ */
2127
+ if (dsign || word1(rv) || word0(rv) & Bndry_mask
2128
+ #ifdef IEEE_Arith
2129
+ #ifdef Avoid_Underflow
2130
+ || (word0(rv) & Exp_mask) <= (2*P+1)*Exp_msk1
2131
+ #else
2132
+ || (word0(rv) & Exp_mask) <= Exp_msk1
2133
+ #endif
2134
+ #endif
2135
+ ) {
2136
+ #ifdef SET_INEXACT
2137
+ if (!delta->x[0] && delta->wds <= 1)
2138
+ inexact = 0;
2139
+ #endif
2140
+ break;
2141
+ }
2142
+ if (!delta->x[0] && delta->wds <= 1) {
2143
+ /* exact result */
2144
+ #ifdef SET_INEXACT
2145
+ inexact = 0;
2146
+ #endif
2147
+ break;
2148
+ }
2149
+ delta = lshift(delta,Log2P);
2150
+ if (cmp(delta, bs) > 0)
2151
+ goto drop_down;
2152
+ break;
2153
+ }
2154
+ if (i == 0) {
2155
+ /* exactly half-way between */
2156
+ if (dsign) {
2157
+ if ((word0(rv) & Bndry_mask1) == Bndry_mask1
2158
+ && word1(rv) == (
2159
+ #ifdef Avoid_Underflow
2160
+ (scale && (y = word0(rv) & Exp_mask) <= 2*P*Exp_msk1)
2161
+ ? (0xffffffff & (0xffffffff << (2*P+1-(y>>Exp_shift)))) :
2162
+ #endif
2163
+ 0xffffffff)) {
2164
+ /*boundary case -- increment exponent*/
2165
+ word0(rv) = (word0(rv) & Exp_mask)
2166
+ + Exp_msk1
2167
+ #ifdef IBM
2168
+ | Exp_msk1 >> 4
2169
+ #endif
2170
+ ;
2171
+ word1(rv) = 0;
2172
+ #ifdef Avoid_Underflow
2173
+ dsign = 0;
2174
+ #endif
2175
+ break;
2176
+ }
2177
+ }
2178
+ else if (!(word0(rv) & Bndry_mask) && !word1(rv)) {
2179
+ drop_down:
2180
+ /* boundary case -- decrement exponent */
2181
+ #ifdef Sudden_Underflow /*{{*/
2182
+ L = word0(rv) & Exp_mask;
2183
+ #ifdef IBM
2184
+ if (L < Exp_msk1)
2185
+ #else
2186
+ #ifdef Avoid_Underflow
2187
+ if (L <= (scale ? (2*P+1)*Exp_msk1 : Exp_msk1))
2188
+ #else
2189
+ if (L <= Exp_msk1)
2190
+ #endif /*Avoid_Underflow*/
2191
+ #endif /*IBM*/
2192
+ goto undfl;
2193
+ L -= Exp_msk1;
2194
+ #else /*Sudden_Underflow}{*/
2195
+ #ifdef Avoid_Underflow
2196
+ if (scale) {
2197
+ L = word0(rv) & Exp_mask;
2198
+ if (L <= (2*P+1)*Exp_msk1) {
2199
+ if (L > (P+2)*Exp_msk1)
2200
+ /* round even ==> */
2201
+ /* accept rv */
2202
+ break;
2203
+ /* rv = smallest denormal */
2204
+ goto undfl;
2205
+ }
2206
+ }
2207
+ #endif /*Avoid_Underflow*/
2208
+ L = (word0(rv) & Exp_mask) - Exp_msk1;
2209
+ #endif /*Sudden_Underflow}}*/
2210
+ word0(rv) = L | Bndry_mask1;
2211
+ word1(rv) = 0xffffffff;
2212
+ #ifdef IBM
2213
+ goto cont;
2214
+ #else
2215
+ break;
2216
+ #endif
2217
+ }
2218
+ #ifndef ROUND_BIASED
2219
+ if (!(word1(rv) & LSB))
2220
+ break;
2221
+ #endif
2222
+ if (dsign)
2223
+ dval(rv) += ulp(dval(rv));
2224
+ #ifndef ROUND_BIASED
2225
+ else {
2226
+ dval(rv) -= ulp(dval(rv));
2227
+ #ifndef Sudden_Underflow
2228
+ if (!dval(rv))
2229
+ goto undfl;
2230
+ #endif
2231
+ }
2232
+ #ifdef Avoid_Underflow
2233
+ dsign = 1 - dsign;
2234
+ #endif
2235
+ #endif
2236
+ break;
2237
+ }
2238
+ if ((aadj = ratio(delta, bs)) <= 2.) {
2239
+ if (dsign)
2240
+ aadj = aadj1 = 1.;
2241
+ else if (word1(rv) || word0(rv) & Bndry_mask) {
2242
+ #ifndef Sudden_Underflow
2243
+ if (word1(rv) == Tiny1 && !word0(rv))
2244
+ goto undfl;
2245
+ #endif
2246
+ aadj = 1.;
2247
+ aadj1 = -1.;
2248
+ }
2249
+ else {
2250
+ /* special case -- power of FLT_RADIX to be */
2251
+ /* rounded down... */
2252
+
2253
+ if (aadj < 2./FLT_RADIX)
2254
+ aadj = 1./FLT_RADIX;
2255
+ else
2256
+ aadj *= 0.5;
2257
+ aadj1 = -aadj;
2258
+ }
2259
+ }
2260
+ else {
2261
+ aadj *= 0.5;
2262
+ aadj1 = dsign ? aadj : -aadj;
2263
+ #ifdef Check_FLT_ROUNDS
2264
+ switch(Rounding) {
2265
+ case 2: /* towards +infinity */
2266
+ aadj1 -= 0.5;
2267
+ break;
2268
+ case 0: /* towards 0 */
2269
+ case 3: /* towards -infinity */
2270
+ aadj1 += 0.5;
2271
+ }
2272
+ #else
2273
+ if (Flt_Rounds == 0)
2274
+ aadj1 += 0.5;
2275
+ #endif /*Check_FLT_ROUNDS*/
2276
+ }
2277
+ y = word0(rv) & Exp_mask;
2278
+
2279
+ /* Check for overflow */
2280
+
2281
+ if (y == Exp_msk1*(DBL_MAX_EXP+Bias-1)) {
2282
+ dval(rv0) = dval(rv);
2283
+ word0(rv) -= P*Exp_msk1;
2284
+ adj = aadj1 * ulp(dval(rv));
2285
+ dval(rv) += adj;
2286
+ if ((word0(rv) & Exp_mask) >=
2287
+ Exp_msk1*(DBL_MAX_EXP+Bias-P)) {
2288
+ if (word0(rv0) == Big0 && word1(rv0) == Big1)
2289
+ goto ovfl;
2290
+ word0(rv) = Big0;
2291
+ word1(rv) = Big1;
2292
+ goto cont;
2293
+ }
2294
+ else
2295
+ word0(rv) += P*Exp_msk1;
2296
+ }
2297
+ else {
2298
+ #ifdef Avoid_Underflow
2299
+ if (scale && y <= 2*P*Exp_msk1) {
2300
+ if (aadj <= 0x7fffffff) {
2301
+ if ((z = aadj) <= 0)
2302
+ z = 1;
2303
+ aadj = z;
2304
+ aadj1 = dsign ? aadj : -aadj;
2305
+ }
2306
+ word0(aadj1) += (2*P+1)*Exp_msk1 - y;
2307
+ }
2308
+ adj = aadj1 * ulp(dval(rv));
2309
+ dval(rv) += adj;
2310
+ #else
2311
+ #ifdef Sudden_Underflow
2312
+ if ((word0(rv) & Exp_mask) <= P*Exp_msk1) {
2313
+ dval(rv0) = dval(rv);
2314
+ word0(rv) += P*Exp_msk1;
2315
+ adj = aadj1 * ulp(dval(rv));
2316
+ dval(rv) += adj;
2317
+ #ifdef IBM
2318
+ if ((word0(rv) & Exp_mask) < P*Exp_msk1)
2319
+ #else
2320
+ if ((word0(rv) & Exp_mask) <= P*Exp_msk1)
2321
+ #endif
2322
+ {
2323
+ if (word0(rv0) == Tiny0
2324
+ && word1(rv0) == Tiny1)
2325
+ goto undfl;
2326
+ word0(rv) = Tiny0;
2327
+ word1(rv) = Tiny1;
2328
+ goto cont;
2329
+ }
2330
+ else
2331
+ word0(rv) -= P*Exp_msk1;
2332
+ }
2333
+ else {
2334
+ adj = aadj1 * ulp(dval(rv));
2335
+ dval(rv) += adj;
2336
+ }
2337
+ #else /*Sudden_Underflow*/
2338
+ /* Compute adj so that the IEEE rounding rules will
2339
+ * correctly round rv + adj in some half-way cases.
2340
+ * If rv * ulp(rv) is denormalized (i.e.,
2341
+ * y <= (P-1)*Exp_msk1), we must adjust aadj to avoid
2342
+ * trouble from bits lost to denormalization;
2343
+ * example: 1.2e-307 .
2344
+ */
2345
+ if (y <= (P-1)*Exp_msk1 && aadj > 1.) {
2346
+ aadj1 = (double)(int)(aadj + 0.5);
2347
+ if (!dsign)
2348
+ aadj1 = -aadj1;
2349
+ }
2350
+ adj = aadj1 * ulp(dval(rv));
2351
+ dval(rv) += adj;
2352
+ #endif /*Sudden_Underflow*/
2353
+ #endif /*Avoid_Underflow*/
2354
+ }
2355
+ z = word0(rv) & Exp_mask;
2356
+ #ifndef SET_INEXACT
2357
+ #ifdef Avoid_Underflow
2358
+ if (!scale)
2359
+ #endif
2360
+ if (y == z) {
2361
+ /* Can we stop now? */
2362
+ L = (Long)aadj;
2363
+ aadj -= L;
2364
+ /* The tolerances below are conservative. */
2365
+ if (dsign || word1(rv) || word0(rv) & Bndry_mask) {
2366
+ if (aadj < .4999999 || aadj > .5000001)
2367
+ break;
2368
+ }
2369
+ else if (aadj < .4999999/FLT_RADIX)
2370
+ break;
2371
+ }
2372
+ #endif
2373
+ cont:
2374
+ Bfree(bb);
2375
+ Bfree(bd);
2376
+ Bfree(bs);
2377
+ Bfree(delta);
2378
+ }
2379
+ #ifdef SET_INEXACT
2380
+ if (inexact) {
2381
+ if (!oldinexact) {
2382
+ word0(rv0) = Exp_1 + (70 << Exp_shift);
2383
+ word1(rv0) = 0;
2384
+ dval(rv0) += 1.;
2385
+ }
2386
+ }
2387
+ else if (!oldinexact)
2388
+ clear_inexact();
2389
+ #endif
2390
+ #ifdef Avoid_Underflow
2391
+ if (scale) {
2392
+ word0(rv0) = Exp_1 - 2*P*Exp_msk1;
2393
+ word1(rv0) = 0;
2394
+ dval(rv) *= dval(rv0);
2395
+ #ifndef NO_ERRNO
2396
+ /* try to avoid the bug of testing an 8087 register value */
2397
+ if (word0(rv) == 0 && word1(rv) == 0)
2398
+ errno = ERANGE;
2399
+ #endif
2400
+ }
2401
+ #endif /* Avoid_Underflow */
2402
+ #ifdef SET_INEXACT
2403
+ if (inexact && !(word0(rv) & Exp_mask)) {
2404
+ /* set underflow bit */
2405
+ dval(rv0) = 1e-300;
2406
+ dval(rv0) *= dval(rv0);
2407
+ }
2408
+ #endif
2409
+ retfree:
2410
+ Bfree(bb);
2411
+ Bfree(bd);
2412
+ Bfree(bs);
2413
+ Bfree(bd0);
2414
+ Bfree(delta);
2415
+ ret:
2416
+ if (se)
2417
+ *se = (char *)s;
2418
+ return sign ? -dval(rv) : dval(rv);
2419
+ }
2420
+
2421
+ static int
2422
+ quorem
2423
+ #ifdef KR_headers
2424
+ (b, S) Bigint *b, *S;
2425
+ #else
2426
+ (Bigint *b, Bigint *S)
2427
+ #endif
2428
+ {
2429
+ int n;
2430
+ ULong *bx, *bxe, q, *sx, *sxe;
2431
+ #ifdef ULLong
2432
+ ULLong borrow, carry, y, ys;
2433
+ #else
2434
+ ULong borrow, carry, y, ys;
2435
+ #ifdef Pack_32
2436
+ ULong si, z, zs;
2437
+ #endif
2438
+ #endif
2439
+
2440
+ n = S->wds;
2441
+ #ifdef DEBUG
2442
+ /*debug*/ if (b->wds > n)
2443
+ /*debug*/ Bug("oversize b in quorem");
2444
+ #endif
2445
+ if (b->wds < n)
2446
+ return 0;
2447
+ sx = S->x;
2448
+ sxe = sx + --n;
2449
+ bx = b->x;
2450
+ bxe = bx + n;
2451
+ q = *bxe / (*sxe + 1); /* ensure q <= true quotient */
2452
+ #ifdef DEBUG
2453
+ /*debug*/ if (q > 9)
2454
+ /*debug*/ Bug("oversized quotient in quorem");
2455
+ #endif
2456
+ if (q) {
2457
+ borrow = 0;
2458
+ carry = 0;
2459
+ do {
2460
+ #ifdef ULLong
2461
+ ys = *sx++ * (ULLong)q + carry;
2462
+ carry = ys >> 32;
2463
+ y = *bx - (ys & FFFFFFFF) - borrow;
2464
+ borrow = y >> 32 & (ULong)1;
2465
+ *bx++ = y & FFFFFFFF;
2466
+ #else
2467
+ #ifdef Pack_32
2468
+ si = *sx++;
2469
+ ys = (si & 0xffff) * q + carry;
2470
+ zs = (si >> 16) * q + (ys >> 16);
2471
+ carry = zs >> 16;
2472
+ y = (*bx & 0xffff) - (ys & 0xffff) - borrow;
2473
+ borrow = (y & 0x10000) >> 16;
2474
+ z = (*bx >> 16) - (zs & 0xffff) - borrow;
2475
+ borrow = (z & 0x10000) >> 16;
2476
+ Storeinc(bx, z, y);
2477
+ #else
2478
+ ys = *sx++ * q + carry;
2479
+ carry = ys >> 16;
2480
+ y = *bx - (ys & 0xffff) - borrow;
2481
+ borrow = (y & 0x10000) >> 16;
2482
+ *bx++ = y & 0xffff;
2483
+ #endif
2484
+ #endif
2485
+ }
2486
+ while(sx <= sxe);
2487
+ if (!*bxe) {
2488
+ bx = b->x;
2489
+ while(--bxe > bx && !*bxe)
2490
+ --n;
2491
+ b->wds = n;
2492
+ }
2493
+ }
2494
+ if (cmp(b, S) >= 0) {
2495
+ q++;
2496
+ borrow = 0;
2497
+ carry = 0;
2498
+ bx = b->x;
2499
+ sx = S->x;
2500
+ do {
2501
+ #ifdef ULLong
2502
+ ys = *sx++ + carry;
2503
+ carry = ys >> 32;
2504
+ y = *bx - (ys & FFFFFFFF) - borrow;
2505
+ borrow = y >> 32 & (ULong)1;
2506
+ *bx++ = y & FFFFFFFF;
2507
+ #else
2508
+ #ifdef Pack_32
2509
+ si = *sx++;
2510
+ ys = (si & 0xffff) + carry;
2511
+ zs = (si >> 16) + (ys >> 16);
2512
+ carry = zs >> 16;
2513
+ y = (*bx & 0xffff) - (ys & 0xffff) - borrow;
2514
+ borrow = (y & 0x10000) >> 16;
2515
+ z = (*bx >> 16) - (zs & 0xffff) - borrow;
2516
+ borrow = (z & 0x10000) >> 16;
2517
+ Storeinc(bx, z, y);
2518
+ #else
2519
+ ys = *sx++ + carry;
2520
+ carry = ys >> 16;
2521
+ y = *bx - (ys & 0xffff) - borrow;
2522
+ borrow = (y & 0x10000) >> 16;
2523
+ *bx++ = y & 0xffff;
2524
+ #endif
2525
+ #endif
2526
+ }
2527
+ while(sx <= sxe);
2528
+ bx = b->x;
2529
+ bxe = bx + n;
2530
+ if (!*bxe) {
2531
+ while(--bxe > bx && !*bxe)
2532
+ --n;
2533
+ b->wds = n;
2534
+ }
2535
+ }
2536
+ return q;
2537
+ }
2538
+
2539
+ #ifndef MULTIPLE_THREADS
2540
+ static char *dtoa_result;
2541
+ #endif
2542
+
2543
+ static char *
2544
+ #ifdef KR_headers
2545
+ rv_alloc(i) int i;
2546
+ #else
2547
+ rv_alloc(int i)
2548
+ #endif
2549
+ {
2550
+ int j, k, *r;
2551
+
2552
+ j = sizeof(ULong);
2553
+ for(k = 0;
2554
+ sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= i;
2555
+ j <<= 1)
2556
+ k++;
2557
+ r = (int*)Balloc(k);
2558
+ *r = k;
2559
+ return
2560
+ #ifndef MULTIPLE_THREADS
2561
+ dtoa_result =
2562
+ #endif
2563
+ (char *)(r+1);
2564
+ }
2565
+
2566
+ static char *
2567
+ #ifdef KR_headers
2568
+ nrv_alloc(s, rve, n) char *s, **rve; int n;
2569
+ #else
2570
+ nrv_alloc(const char *s, char **rve, int n)
2571
+ #endif
2572
+ {
2573
+ char *rv, *t;
2574
+
2575
+ t = rv = rv_alloc(n);
2576
+ while ((*t = *s++)) t++;
2577
+ if (rve)
2578
+ *rve = t;
2579
+ return rv;
2580
+ }
2581
+
2582
+ /* freedtoa(s) must be used to free values s returned by dtoa
2583
+ * when MULTIPLE_THREADS is #defined. It should be used in all cases,
2584
+ * but for consistency with earlier versions of dtoa, it is optional
2585
+ * when MULTIPLE_THREADS is not defined.
2586
+ */
2587
+
2588
+ void
2589
+ #ifdef KR_headers
2590
+ freedtoa(s) char *s;
2591
+ #else
2592
+ freedtoa(char *s)
2593
+ #endif
2594
+ {
2595
+ Bigint *b = (Bigint *)((int *)s - 1);
2596
+ b->maxwds = 1 << (b->k = *(int*)b);
2597
+ Bfree(b);
2598
+ #ifndef MULTIPLE_THREADS
2599
+ if (s == dtoa_result)
2600
+ dtoa_result = 0;
2601
+ #endif
2602
+ }
2603
+
2604
+ /* dtoa for IEEE arithmetic (dmg): convert double to ASCII string.
2605
+ *
2606
+ * Inspired by "How to Print Floating-Point Numbers Accurately" by
2607
+ * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 112-126].
2608
+ *
2609
+ * Modifications:
2610
+ * 1. Rather than iterating, we use a simple numeric overestimate
2611
+ * to determine k = floor(log10(d)). We scale relevant
2612
+ * quantities using O(log2(k)) rather than O(k) multiplications.
2613
+ * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't
2614
+ * try to generate digits strictly left to right. Instead, we
2615
+ * compute with fewer bits and propagate the carry if necessary
2616
+ * when rounding the final digit up. This is often faster.
2617
+ * 3. Under the assumption that input will be rounded nearest,
2618
+ * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22.
2619
+ * That is, we allow equality in stopping tests when the
2620
+ * round-nearest rule will give the same floating-point value
2621
+ * as would satisfaction of the stopping test with strict
2622
+ * inequality.
2623
+ * 4. We remove common factors of powers of 2 from relevant
2624
+ * quantities.
2625
+ * 5. When converting floating-point integers less than 1e16,
2626
+ * we use floating-point arithmetic rather than resorting
2627
+ * to multiple-precision integers.
2628
+ * 6. When asked to produce fewer than 15 digits, we first try
2629
+ * to get by with floating-point arithmetic; we resort to
2630
+ * multiple-precision integer arithmetic only if we cannot
2631
+ * guarantee that the floating-point calculation has given
2632
+ * the correctly rounded result. For k requested digits and
2633
+ * "uniformly" distributed input, the probability is
2634
+ * something like 10^(k-15) that we must resort to the Long
2635
+ * calculation.
2636
+ */
2637
+
2638
+ char *
2639
+ dtoa
2640
+ #ifdef KR_headers
2641
+ (d, mode, ndigits, decpt, sign, rve)
2642
+ double d; int mode, ndigits, *decpt, *sign; char **rve;
2643
+ #else
2644
+ (double d, int mode, int ndigits, int *decpt, int *sign, char **rve)
2645
+ #endif
2646
+ {
2647
+ /* Arguments ndigits, decpt, sign are similar to those
2648
+ of ecvt and fcvt; trailing zeros are suppressed from
2649
+ the returned string. If not null, *rve is set to point
2650
+ to the end of the return value. If d is +-Infinity or NaN,
2651
+ then *decpt is set to 9999.
2652
+
2653
+ mode:
2654
+ 0 ==> shortest string that yields d when read in
2655
+ and rounded to nearest.
2656
+ 1 ==> like 0, but with Steele & White stopping rule;
2657
+ e.g. with IEEE P754 arithmetic , mode 0 gives
2658
+ 1e23 whereas mode 1 gives 9.999999999999999e22.
2659
+ 2 ==> max(1,ndigits) significant digits. This gives a
2660
+ return value similar to that of ecvt, except
2661
+ that trailing zeros are suppressed.
2662
+ 3 ==> through ndigits past the decimal point. This
2663
+ gives a return value similar to that from fcvt,
2664
+ except that trailing zeros are suppressed, and
2665
+ ndigits can be negative.
2666
+ 4,5 ==> similar to 2 and 3, respectively, but (in
2667
+ round-nearest mode) with the tests of mode 0 to
2668
+ possibly return a shorter string that rounds to d.
2669
+ With IEEE arithmetic and compilation with
2670
+ -DHonor_FLT_ROUNDS, modes 4 and 5 behave the same
2671
+ as modes 2 and 3 when FLT_ROUNDS != 1.
2672
+ 6-9 ==> Debugging modes similar to mode - 4: don't try
2673
+ fast floating-point estimate (if applicable).
2674
+
2675
+ Values of mode other than 0-9 are treated as mode 0.
2676
+
2677
+ Sufficient space is allocated to the return value
2678
+ to hold the suppressed trailing zeros.
2679
+ */
2680
+
2681
+ int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1,
2682
+ j, j1, k, k0, k_check, leftright, m2, m5, s2, s5,
2683
+ spec_case, try_quick, bias_round_up;
2684
+ Long L;
2685
+ #ifndef Sudden_Underflow
2686
+ int denorm;
2687
+ ULong x;
2688
+ #endif
2689
+ Bigint *b, *b1, *delta, *mlo, *mhi, *S;
2690
+ double d2, ds, eps;
2691
+ char *s, *s0;
2692
+ #ifdef Honor_FLT_ROUNDS
2693
+ int rounding;
2694
+ #endif
2695
+ #ifdef SET_INEXACT
2696
+ int inexact, oldinexact;
2697
+ #endif
2698
+
2699
+ /* In mode 2 and 3 we bias rounding up when there are ties. */
2700
+ bias_round_up = mode == 2 || mode == 3;
2701
+
2702
+ ilim = ilim1 = 0; /* to avoid Google3 compiler warnings */
2703
+
2704
+ #ifndef MULTIPLE_THREADS
2705
+ if (dtoa_result) {
2706
+ freedtoa(dtoa_result);
2707
+ dtoa_result = 0;
2708
+ }
2709
+ #endif
2710
+
2711
+ if (word0(d) & Sign_bit) {
2712
+ /* set sign for everything, including 0's and NaNs */
2713
+ *sign = 1;
2714
+ word0(d) &= ~Sign_bit; /* clear sign bit */
2715
+ }
2716
+ else
2717
+ *sign = 0;
2718
+
2719
+ #if defined(IEEE_Arith) + defined(VAX)
2720
+ #ifdef IEEE_Arith
2721
+ if ((word0(d) & Exp_mask) == Exp_mask)
2722
+ #else
2723
+ if (word0(d) == 0x8000)
2724
+ #endif
2725
+ {
2726
+ /* Infinity or NaN */
2727
+ *decpt = 9999;
2728
+ #ifdef IEEE_Arith
2729
+ if (!word1(d) && !(word0(d) & 0xfffff))
2730
+ return nrv_alloc("Infinity", rve, 8);
2731
+ #endif
2732
+ return nrv_alloc("NaN", rve, 3);
2733
+ }
2734
+ #endif
2735
+ #ifdef IBM
2736
+ dval(d) += 0; /* normalize */
2737
+ #endif
2738
+ if (!dval(d)) {
2739
+ *decpt = 1;
2740
+ return nrv_alloc("0", rve, 1);
2741
+ }
2742
+
2743
+ #ifdef SET_INEXACT
2744
+ try_quick = oldinexact = get_inexact();
2745
+ inexact = 1;
2746
+ #endif
2747
+ #ifdef Honor_FLT_ROUNDS
2748
+ if ((rounding = Flt_Rounds) >= 2) {
2749
+ if (*sign)
2750
+ rounding = rounding == 2 ? 0 : 2;
2751
+ else
2752
+ if (rounding != 2)
2753
+ rounding = 0;
2754
+ }
2755
+ #endif
2756
+
2757
+ b = d2b(dval(d), &be, &bbits);
2758
+ #ifdef Sudden_Underflow
2759
+ i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
2760
+ #else
2761
+ if ((i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) {
2762
+ #endif
2763
+ dval(d2) = dval(d);
2764
+ word0(d2) &= Frac_mask1;
2765
+ word0(d2) |= Exp_11;
2766
+ #ifdef IBM
2767
+ if (j = 11 - hi0bits(word0(d2) & Frac_mask))
2768
+ dval(d2) /= 1 << j;
2769
+ #endif
2770
+
2771
+ /* log(x) ~=~ log(1.5) + (x-1.5)/1.5
2772
+ * log10(x) = log(x) / log(10)
2773
+ * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10))
2774
+ * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2)
2775
+ *
2776
+ * This suggests computing an approximation k to log10(d) by
2777
+ *
2778
+ * k = (i - Bias)*0.301029995663981
2779
+ * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 );
2780
+ *
2781
+ * We want k to be too large rather than too small.
2782
+ * The error in the first-order Taylor series approximation
2783
+ * is in our favor, so we just round up the constant enough
2784
+ * to compensate for any error in the multiplication of
2785
+ * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077,
2786
+ * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14,
2787
+ * adding 1e-13 to the constant term more than suffices.
2788
+ * Hence we adjust the constant term to 0.1760912590558.
2789
+ * (We could get a more accurate k by invoking log10,
2790
+ * but this is probably not worthwhile.)
2791
+ */
2792
+
2793
+ i -= Bias;
2794
+ #ifdef IBM
2795
+ i <<= 2;
2796
+ i += j;
2797
+ #endif
2798
+ #ifndef Sudden_Underflow
2799
+ denorm = 0;
2800
+ }
2801
+ else {
2802
+ /* d is denormalized */
2803
+
2804
+ i = bbits + be + (Bias + (P-1) - 1);
2805
+ x = i > 32 ? (word0(d) << (64 - i)) | (word1(d) >> (i - 32))
2806
+ : word1(d) << (32 - i);
2807
+ dval(d2) = x;
2808
+ word0(d2) -= 31*Exp_msk1; /* adjust exponent */
2809
+ i -= (Bias + (P-1) - 1) + 1;
2810
+ denorm = 1;
2811
+ }
2812
+ #endif
2813
+ ds = (dval(d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;
2814
+ k = (int)ds;
2815
+ if (ds < 0. && ds != k)
2816
+ k--; /* want k = floor(ds) */
2817
+ k_check = 1;
2818
+ if (k >= 0 && k <= Ten_pmax) {
2819
+ if (dval(d) < tens[k])
2820
+ k--;
2821
+ k_check = 0;
2822
+ }
2823
+ j = bbits - i - 1;
2824
+ if (j >= 0) {
2825
+ b2 = 0;
2826
+ s2 = j;
2827
+ }
2828
+ else {
2829
+ b2 = -j;
2830
+ s2 = 0;
2831
+ }
2832
+ if (k >= 0) {
2833
+ b5 = 0;
2834
+ s5 = k;
2835
+ s2 += k;
2836
+ }
2837
+ else {
2838
+ b2 -= k;
2839
+ b5 = -k;
2840
+ s5 = 0;
2841
+ }
2842
+ if (mode < 0 || mode > 9)
2843
+ mode = 0;
2844
+
2845
+ #ifndef SET_INEXACT
2846
+ #ifdef Check_FLT_ROUNDS
2847
+ try_quick = Rounding == 1;
2848
+ #else
2849
+ try_quick = 1;
2850
+ #endif
2851
+ #endif /*SET_INEXACT*/
2852
+
2853
+ if (mode > 5) {
2854
+ mode -= 4;
2855
+ try_quick = 0;
2856
+ }
2857
+ leftright = 1;
2858
+ switch(mode) {
2859
+ case 0:
2860
+ case 1:
2861
+ ilim = ilim1 = -1;
2862
+ i = 18;
2863
+ ndigits = 0;
2864
+ break;
2865
+ case 2:
2866
+ leftright = 0;
2867
+ /* no break */
2868
+ case 4:
2869
+ if (ndigits <= 0)
2870
+ ndigits = 1;
2871
+ ilim = ilim1 = i = ndigits;
2872
+ break;
2873
+ case 3:
2874
+ leftright = 0;
2875
+ /* no break */
2876
+ case 5:
2877
+ i = ndigits + k + 1;
2878
+ ilim = i;
2879
+ ilim1 = i - 1;
2880
+ if (i <= 0)
2881
+ i = 1;
2882
+ }
2883
+ s = s0 = rv_alloc(i);
2884
+
2885
+ #ifdef Honor_FLT_ROUNDS
2886
+ if (mode > 1 && rounding != 1)
2887
+ leftright = 0;
2888
+ #endif
2889
+
2890
+ if (ilim >= 0 && ilim <= Quick_max && try_quick) {
2891
+
2892
+ /* Try to get by with floating-point arithmetic. */
2893
+
2894
+ i = 0;
2895
+ dval(d2) = dval(d);
2896
+ k0 = k;
2897
+ ilim0 = ilim;
2898
+ ieps = 2; /* conservative */
2899
+ if (k > 0) {
2900
+ ds = tens[k&0xf];
2901
+ j = k >> 4;
2902
+ if (j & Bletch) {
2903
+ /* prevent overflows */
2904
+ j &= Bletch - 1;
2905
+ dval(d) /= bigtens[n_bigtens-1];
2906
+ ieps++;
2907
+ }
2908
+ for(; j; j >>= 1, i++)
2909
+ if (j & 1) {
2910
+ ieps++;
2911
+ ds *= bigtens[i];
2912
+ }
2913
+ dval(d) /= ds;
2914
+ }
2915
+ else if ((j1 = -k)) {
2916
+ dval(d) *= tens[j1 & 0xf];
2917
+ for(j = j1 >> 4; j; j >>= 1, i++)
2918
+ if (j & 1) {
2919
+ ieps++;
2920
+ dval(d) *= bigtens[i];
2921
+ }
2922
+ }
2923
+ if (k_check && dval(d) < 1. && ilim > 0) {
2924
+ if (ilim1 <= 0)
2925
+ goto fast_failed;
2926
+ ilim = ilim1;
2927
+ k--;
2928
+ dval(d) *= 10.;
2929
+ ieps++;
2930
+ }
2931
+ dval(eps) = ieps*dval(d) + 7.;
2932
+ word0(eps) -= (P-1)*Exp_msk1;
2933
+ if (ilim == 0) {
2934
+ S = mhi = 0;
2935
+ dval(d) -= 5.;
2936
+ if (dval(d) > dval(eps))
2937
+ goto one_digit;
2938
+ if (dval(d) < -dval(eps))
2939
+ goto no_digits;
2940
+ goto fast_failed;
2941
+ }
2942
+ #ifndef No_leftright
2943
+ if (leftright) {
2944
+ /* Use Steele & White method of only
2945
+ * generating digits needed.
2946
+ */
2947
+ dval(eps) = 0.5/tens[ilim-1] - dval(eps);
2948
+ for(i = 0;;) {
2949
+ L = dval(d);
2950
+ dval(d) -= L;
2951
+ *s++ = '0' + (int)L;
2952
+ if (dval(d) < dval(eps))
2953
+ goto ret1;
2954
+ if (1. - dval(d) < dval(eps))
2955
+ goto bump_up;
2956
+ if (++i >= ilim)
2957
+ break;
2958
+ dval(eps) *= 10.;
2959
+ dval(d) *= 10.;
2960
+ }
2961
+ }
2962
+ else {
2963
+ #endif
2964
+ /* Generate ilim digits, then fix them up. */
2965
+ dval(eps) *= tens[ilim-1];
2966
+ for(i = 1;; i++, dval(d) *= 10.) {
2967
+ L = (Long)(dval(d));
2968
+ if (!(dval(d) -= L))
2969
+ ilim = i;
2970
+ *s++ = '0' + (int)L;
2971
+ if (i == ilim) {
2972
+ if (dval(d) > 0.5 + dval(eps))
2973
+ goto bump_up;
2974
+ else if (dval(d) < 0.5 - dval(eps)) {
2975
+ while(*--s == '0');
2976
+ s++;
2977
+ goto ret1;
2978
+ }
2979
+ break;
2980
+ }
2981
+ }
2982
+ #ifndef No_leftright
2983
+ }
2984
+ #endif
2985
+ fast_failed:
2986
+ s = s0;
2987
+ dval(d) = dval(d2);
2988
+ k = k0;
2989
+ ilim = ilim0;
2990
+ }
2991
+
2992
+ /* Do we have a "small" integer? */
2993
+
2994
+ if (be >= 0 && k <= Int_max) {
2995
+ /* Yes. */
2996
+ ds = tens[k];
2997
+ if (ndigits < 0 && ilim <= 0) {
2998
+ S = mhi = 0;
2999
+ if (ilim < 0 || dval(d) < 5*ds || ((dval(d) == 5*ds) && !bias_round_up))
3000
+ goto no_digits;
3001
+ goto one_digit;
3002
+ }
3003
+
3004
+ /* Limit looping by the number of digits to produce.
3005
+ * Firefox had a crash bug because some plugins reduce
3006
+ * the precision of double arithmetic. With reduced
3007
+ * precision "dval(d) -= L*ds" might be imprecise and
3008
+ * d might not become zero and the loop might not
3009
+ * terminate.
3010
+ *
3011
+ * See https://bugzilla.mozilla.org/show_bug.cgi?id=358569
3012
+ */
3013
+ for(i = 1; i <= k+1; i++, dval(d) *= 10.) {
3014
+ L = (Long)(dval(d) / ds);
3015
+ dval(d) -= L*ds;
3016
+ #ifdef Check_FLT_ROUNDS
3017
+ /* If FLT_ROUNDS == 2, L will usually be high by 1 */
3018
+ if (dval(d) < 0) {
3019
+ L--;
3020
+ dval(d) += ds;
3021
+ }
3022
+ #endif
3023
+ *s++ = '0' + (int)L;
3024
+ if (!dval(d)) {
3025
+ #ifdef SET_INEXACT
3026
+ inexact = 0;
3027
+ #endif
3028
+ break;
3029
+ }
3030
+ if (i == ilim) {
3031
+ #ifdef Honor_FLT_ROUNDS
3032
+ if (mode > 1)
3033
+ switch(rounding) {
3034
+ case 0: goto ret1;
3035
+ case 2: goto bump_up;
3036
+ }
3037
+ #endif
3038
+ dval(d) += dval(d);
3039
+ if (dval(d) > ds || (dval(d) == ds && ((L & 1) || bias_round_up))) {
3040
+ bump_up:
3041
+ while(*--s == '9')
3042
+ if (s == s0) {
3043
+ k++;
3044
+ *s = '0';
3045
+ break;
3046
+ }
3047
+ ++*s++;
3048
+ }
3049
+ break;
3050
+ }
3051
+ }
3052
+ goto ret1;
3053
+ }
3054
+
3055
+ m2 = b2;
3056
+ m5 = b5;
3057
+ mhi = mlo = 0;
3058
+ if (leftright) {
3059
+ i =
3060
+ #ifndef Sudden_Underflow
3061
+ denorm ? be + (Bias + (P-1) - 1 + 1) :
3062
+ #endif
3063
+ #ifdef IBM
3064
+ 1 + 4*P - 3 - bbits + ((bbits + be - 1) & 3);
3065
+ #else
3066
+ 1 + P - bbits;
3067
+ #endif
3068
+ b2 += i;
3069
+ s2 += i;
3070
+ mhi = i2b(1);
3071
+ }
3072
+ if (m2 > 0 && s2 > 0) {
3073
+ i = m2 < s2 ? m2 : s2;
3074
+ b2 -= i;
3075
+ m2 -= i;
3076
+ s2 -= i;
3077
+ }
3078
+ if (b5 > 0) {
3079
+ if (leftright) {
3080
+ if (m5 > 0) {
3081
+ mhi = pow5mult(mhi, m5);
3082
+ b1 = mult(mhi, b);
3083
+ Bfree(b);
3084
+ b = b1;
3085
+ }
3086
+ if ((j = b5 - m5))
3087
+ b = pow5mult(b, j);
3088
+ }
3089
+ else
3090
+ b = pow5mult(b, b5);
3091
+ }
3092
+ S = i2b(1);
3093
+ if (s5 > 0)
3094
+ S = pow5mult(S, s5);
3095
+
3096
+ /* Check for special case that d is a normalized power of 2. */
3097
+
3098
+ spec_case = 0;
3099
+ if ((mode < 2 || leftright)
3100
+ #ifdef Honor_FLT_ROUNDS
3101
+ && rounding == 1
3102
+ #endif
3103
+ ) {
3104
+ if (!word1(d) && !(word0(d) & Bndry_mask)
3105
+ #ifndef Sudden_Underflow
3106
+ && word0(d) & (Exp_mask & ~Exp_msk1)
3107
+ #endif
3108
+ ) {
3109
+ /* The special case */
3110
+ b2 += Log2P;
3111
+ s2 += Log2P;
3112
+ spec_case = 1;
3113
+ }
3114
+ }
3115
+
3116
+ /* Arrange for convenient computation of quotients:
3117
+ * shift left if necessary so divisor has 4 leading 0 bits.
3118
+ *
3119
+ * Perhaps we should just compute leading 28 bits of S once
3120
+ * and for all and pass them and a shift to quorem, so it
3121
+ * can do shifts and ors to compute the numerator for q.
3122
+ */
3123
+ #ifdef Pack_32
3124
+ if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f))
3125
+ i = 32 - i;
3126
+ #else
3127
+ if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0xf))
3128
+ i = 16 - i;
3129
+ #endif
3130
+ if (i > 4) {
3131
+ i -= 4;
3132
+ b2 += i;
3133
+ m2 += i;
3134
+ s2 += i;
3135
+ }
3136
+ else if (i < 4) {
3137
+ i += 28;
3138
+ b2 += i;
3139
+ m2 += i;
3140
+ s2 += i;
3141
+ }
3142
+ if (b2 > 0)
3143
+ b = lshift(b, b2);
3144
+ if (s2 > 0)
3145
+ S = lshift(S, s2);
3146
+ if (k_check) {
3147
+ if (cmp(b,S) < 0) {
3148
+ k--;
3149
+ b = multadd(b, 10, 0); /* we botched the k estimate */
3150
+ if (leftright)
3151
+ mhi = multadd(mhi, 10, 0);
3152
+ ilim = ilim1;
3153
+ }
3154
+ }
3155
+ if (ilim <= 0 && (mode == 3 || mode == 5)) {
3156
+ S = multadd(S, 5, 0);
3157
+ if (ilim < 0 || cmp(b, S) < 0 || ((cmp(b, S) == 0) && !bias_round_up)) {
3158
+ /* no digits, fcvt style */
3159
+ no_digits:
3160
+ k = -1 - ndigits;
3161
+ goto ret;
3162
+ }
3163
+ one_digit:
3164
+ *s++ = '1';
3165
+ k++;
3166
+ goto ret;
3167
+ }
3168
+ if (leftright) {
3169
+ if (m2 > 0)
3170
+ mhi = lshift(mhi, m2);
3171
+
3172
+ /* Compute mlo -- check for special case
3173
+ * that d is a normalized power of 2.
3174
+ */
3175
+
3176
+ mlo = mhi;
3177
+ if (spec_case) {
3178
+ mhi = Balloc(mhi->k);
3179
+ Bcopy(mhi, mlo);
3180
+ mhi = lshift(mhi, Log2P);
3181
+ }
3182
+
3183
+ for(i = 1;;i++) {
3184
+ dig = quorem(b,S) + '0';
3185
+ /* Do we yet have the shortest decimal string
3186
+ * that will round to d?
3187
+ */
3188
+ j = cmp(b, mlo);
3189
+ delta = diff(S, mhi);
3190
+ j1 = delta->sign ? 1 : cmp(b, delta);
3191
+ Bfree(delta);
3192
+ #ifndef ROUND_BIASED
3193
+ if (j1 == 0 && mode != 1 && !(word1(d) & 1)
3194
+ #ifdef Honor_FLT_ROUNDS
3195
+ && rounding >= 1
3196
+ #endif
3197
+ ) {
3198
+ if (dig == '9')
3199
+ goto round_9_up;
3200
+ if (j > 0)
3201
+ dig++;
3202
+ #ifdef SET_INEXACT
3203
+ else if (!b->x[0] && b->wds <= 1)
3204
+ inexact = 0;
3205
+ #endif
3206
+ *s++ = dig;
3207
+ goto ret;
3208
+ }
3209
+ #endif
3210
+ if (j < 0 || (j == 0 && mode != 1
3211
+ #ifndef ROUND_BIASED
3212
+ && !(word1(d) & 1)
3213
+ #endif
3214
+ )) {
3215
+ if (!b->x[0] && b->wds <= 1) {
3216
+ #ifdef SET_INEXACT
3217
+ inexact = 0;
3218
+ #endif
3219
+ goto accept_dig;
3220
+ }
3221
+ #ifdef Honor_FLT_ROUNDS
3222
+ if (mode > 1)
3223
+ switch(rounding) {
3224
+ case 0: goto accept_dig;
3225
+ case 2: goto keep_dig;
3226
+ }
3227
+ #endif /*Honor_FLT_ROUNDS*/
3228
+ if (j1 > 0) {
3229
+ b = lshift(b, 1);
3230
+ j1 = cmp(b, S);
3231
+ if ((j1 > 0 || (j1 == 0 && ((dig & 1) || bias_round_up)))
3232
+ && dig++ == '9')
3233
+ goto round_9_up;
3234
+ }
3235
+ accept_dig:
3236
+ *s++ = dig;
3237
+ goto ret;
3238
+ }
3239
+ if (j1 > 0) {
3240
+ #ifdef Honor_FLT_ROUNDS
3241
+ if (!rounding)
3242
+ goto accept_dig;
3243
+ #endif
3244
+ if (dig == '9') { /* possible if i == 1 */
3245
+ round_9_up:
3246
+ *s++ = '9';
3247
+ goto roundoff;
3248
+ }
3249
+ *s++ = dig + 1;
3250
+ goto ret;
3251
+ }
3252
+ #ifdef Honor_FLT_ROUNDS
3253
+ keep_dig:
3254
+ #endif
3255
+ *s++ = dig;
3256
+ if (i == ilim)
3257
+ break;
3258
+ b = multadd(b, 10, 0);
3259
+ if (mlo == mhi)
3260
+ mlo = mhi = multadd(mhi, 10, 0);
3261
+ else {
3262
+ mlo = multadd(mlo, 10, 0);
3263
+ mhi = multadd(mhi, 10, 0);
3264
+ }
3265
+ }
3266
+ }
3267
+ else
3268
+ for(i = 1;; i++) {
3269
+ *s++ = dig = quorem(b,S) + '0';
3270
+ if (!b->x[0] && b->wds <= 1) {
3271
+ #ifdef SET_INEXACT
3272
+ inexact = 0;
3273
+ #endif
3274
+ goto ret;
3275
+ }
3276
+ if (i >= ilim)
3277
+ break;
3278
+ b = multadd(b, 10, 0);
3279
+ }
3280
+
3281
+ /* Round off last digit */
3282
+
3283
+ #ifdef Honor_FLT_ROUNDS
3284
+ switch(rounding) {
3285
+ case 0: goto trimzeros;
3286
+ case 2: goto roundoff;
3287
+ }
3288
+ #endif
3289
+ b = lshift(b, 1);
3290
+ j = cmp(b, S);
3291
+ if (j > 0 || (j == 0 && ((dig & 1) || bias_round_up))) {
3292
+ roundoff:
3293
+ while(*--s == '9')
3294
+ if (s == s0) {
3295
+ k++;
3296
+ *s++ = '1';
3297
+ goto ret;
3298
+ }
3299
+ ++*s++;
3300
+ }
3301
+ else {
3302
+ /* trimzeros: (never used) */
3303
+ while(*--s == '0');
3304
+ s++;
3305
+ }
3306
+ ret:
3307
+ Bfree(S);
3308
+ if (mhi) {
3309
+ if (mlo && mlo != mhi)
3310
+ Bfree(mlo);
3311
+ Bfree(mhi);
3312
+ }
3313
+ ret1:
3314
+ #ifdef SET_INEXACT
3315
+ if (inexact) {
3316
+ if (!oldinexact) {
3317
+ word0(d) = Exp_1 + (70 << Exp_shift);
3318
+ word1(d) = 0;
3319
+ dval(d) += 1.;
3320
+ }
3321
+ }
3322
+ else if (!oldinexact)
3323
+ clear_inexact();
3324
+ #endif
3325
+ Bfree(b);
3326
+ *s = 0;
3327
+ *decpt = k + 1;
3328
+ if (rve)
3329
+ *rve = s;
3330
+ return s0;
3331
+ }
3332
+ #ifdef __cplusplus
3333
+ }
3334
+ #endif