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,3616 @@
1
+ // Copyright 2007-2009 the V8 project authors. All rights reserved.
2
+ // Redistribution and use in source and binary forms, with or without
3
+ // modification, are permitted provided that the following conditions are
4
+ // met:
5
+ //
6
+ // * Redistributions of source code must retain the above copyright
7
+ // notice, this list of conditions and the following disclaimer.
8
+ // * Redistributions in binary form must reproduce the above
9
+ // copyright notice, this list of conditions and the following
10
+ // disclaimer in the documentation and/or other materials provided
11
+ // with the distribution.
12
+ // * Neither the name of Google Inc. nor the names of its
13
+ // contributors may be used to endorse or promote products derived
14
+ // from this software without specific prior written permission.
15
+ //
16
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+
28
+ /** \mainpage V8 API Reference Guide
29
+ *
30
+ * V8 is Google's open source JavaScript engine.
31
+ *
32
+ * This set of documents provides reference material generated from the
33
+ * V8 header file, include/v8.h.
34
+ *
35
+ * For other documentation see http://code.google.com/apis/v8/
36
+ */
37
+
38
+ #ifndef V8_H_
39
+ #define V8_H_
40
+
41
+ #include <stdio.h>
42
+
43
+ #ifdef _WIN32
44
+ // When compiling on MinGW stdint.h is available.
45
+ #ifdef __MINGW32__
46
+ #include <stdint.h>
47
+ #else // __MINGW32__
48
+ typedef signed char int8_t;
49
+ typedef unsigned char uint8_t;
50
+ typedef short int16_t; // NOLINT
51
+ typedef unsigned short uint16_t; // NOLINT
52
+ typedef int int32_t;
53
+ typedef unsigned int uint32_t;
54
+ typedef __int64 int64_t;
55
+ typedef unsigned __int64 uint64_t;
56
+ // intptr_t and friends are defined in crtdefs.h through stdio.h.
57
+ #endif // __MINGW32__
58
+
59
+ // Setup for Windows DLL export/import. When building the V8 DLL the
60
+ // BUILDING_V8_SHARED needs to be defined. When building a program which uses
61
+ // the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8
62
+ // static library or building a program which uses the V8 static library neither
63
+ // BUILDING_V8_SHARED nor USING_V8_SHARED should be defined.
64
+ #if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
65
+ #error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\
66
+ build configuration to ensure that at most one of these is set
67
+ #endif
68
+
69
+ #ifdef BUILDING_V8_SHARED
70
+ #define V8EXPORT __declspec(dllexport)
71
+ #elif USING_V8_SHARED
72
+ #define V8EXPORT __declspec(dllimport)
73
+ #else
74
+ #define V8EXPORT
75
+ #endif // BUILDING_V8_SHARED
76
+
77
+ #else // _WIN32
78
+
79
+ #include <stdint.h>
80
+
81
+ // Setup for Linux shared library export. There is no need to distinguish
82
+ // between building or using the V8 shared library, but we should not
83
+ // export symbols when we are building a static library.
84
+ #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(V8_SHARED)
85
+ #define V8EXPORT __attribute__ ((visibility("default")))
86
+ #else // defined(__GNUC__) && (__GNUC__ >= 4)
87
+ #define V8EXPORT
88
+ #endif // defined(__GNUC__) && (__GNUC__ >= 4)
89
+
90
+ #endif // _WIN32
91
+
92
+ /**
93
+ * The v8 JavaScript engine.
94
+ */
95
+ namespace v8 {
96
+
97
+ class Context;
98
+ class String;
99
+ class Value;
100
+ class Utils;
101
+ class Number;
102
+ class Object;
103
+ class Array;
104
+ class Int32;
105
+ class Uint32;
106
+ class External;
107
+ class Primitive;
108
+ class Boolean;
109
+ class Integer;
110
+ class Function;
111
+ class Date;
112
+ class ImplementationUtilities;
113
+ class Signature;
114
+ template <class T> class Handle;
115
+ template <class T> class Local;
116
+ template <class T> class Persistent;
117
+ class FunctionTemplate;
118
+ class ObjectTemplate;
119
+ class Data;
120
+ class AccessorInfo;
121
+ class StackTrace;
122
+ class StackFrame;
123
+
124
+ namespace internal {
125
+
126
+ class Arguments;
127
+ class Object;
128
+ class Heap;
129
+ class Top;
130
+
131
+ }
132
+
133
+
134
+ // --- W e a k H a n d l e s
135
+
136
+
137
+ /**
138
+ * A weak reference callback function.
139
+ *
140
+ * This callback should either explicitly invoke Dispose on |object| if
141
+ * V8 wrapper is not needed anymore, or 'revive' it by invocation of MakeWeak.
142
+ *
143
+ * \param object the weak global object to be reclaimed by the garbage collector
144
+ * \param parameter the value passed in when making the weak global object
145
+ */
146
+ typedef void (*WeakReferenceCallback)(Persistent<Value> object,
147
+ void* parameter);
148
+
149
+
150
+ // --- H a n d l e s ---
151
+
152
+ #define TYPE_CHECK(T, S) \
153
+ while (false) { \
154
+ *(static_cast<T* volatile*>(0)) = static_cast<S*>(0); \
155
+ }
156
+
157
+ /**
158
+ * An object reference managed by the v8 garbage collector.
159
+ *
160
+ * All objects returned from v8 have to be tracked by the garbage
161
+ * collector so that it knows that the objects are still alive. Also,
162
+ * because the garbage collector may move objects, it is unsafe to
163
+ * point directly to an object. Instead, all objects are stored in
164
+ * handles which are known by the garbage collector and updated
165
+ * whenever an object moves. Handles should always be passed by value
166
+ * (except in cases like out-parameters) and they should never be
167
+ * allocated on the heap.
168
+ *
169
+ * There are two types of handles: local and persistent handles.
170
+ * Local handles are light-weight and transient and typically used in
171
+ * local operations. They are managed by HandleScopes. Persistent
172
+ * handles can be used when storing objects across several independent
173
+ * operations and have to be explicitly deallocated when they're no
174
+ * longer used.
175
+ *
176
+ * It is safe to extract the object stored in the handle by
177
+ * dereferencing the handle (for instance, to extract the Object* from
178
+ * an Handle<Object>); the value will still be governed by a handle
179
+ * behind the scenes and the same rules apply to these values as to
180
+ * their handles.
181
+ */
182
+ template <class T> class Handle {
183
+ public:
184
+
185
+ /**
186
+ * Creates an empty handle.
187
+ */
188
+ inline Handle();
189
+
190
+ /**
191
+ * Creates a new handle for the specified value.
192
+ */
193
+ inline explicit Handle(T* val) : val_(val) { }
194
+
195
+ /**
196
+ * Creates a handle for the contents of the specified handle. This
197
+ * constructor allows you to pass handles as arguments by value and
198
+ * to assign between handles. However, if you try to assign between
199
+ * incompatible handles, for instance from a Handle<String> to a
200
+ * Handle<Number> it will cause a compiletime error. Assigning
201
+ * between compatible handles, for instance assigning a
202
+ * Handle<String> to a variable declared as Handle<Value>, is legal
203
+ * because String is a subclass of Value.
204
+ */
205
+ template <class S> inline Handle(Handle<S> that)
206
+ : val_(reinterpret_cast<T*>(*that)) {
207
+ /**
208
+ * This check fails when trying to convert between incompatible
209
+ * handles. For example, converting from a Handle<String> to a
210
+ * Handle<Number>.
211
+ */
212
+ TYPE_CHECK(T, S);
213
+ }
214
+
215
+ /**
216
+ * Returns true if the handle is empty.
217
+ */
218
+ inline bool IsEmpty() const { return val_ == 0; }
219
+
220
+ inline T* operator->() const { return val_; }
221
+
222
+ inline T* operator*() const { return val_; }
223
+
224
+ /**
225
+ * Sets the handle to be empty. IsEmpty() will then return true.
226
+ */
227
+ inline void Clear() { this->val_ = 0; }
228
+
229
+ /**
230
+ * Checks whether two handles are the same.
231
+ * Returns true if both are empty, or if the objects
232
+ * to which they refer are identical.
233
+ * The handles' references are not checked.
234
+ */
235
+ template <class S> inline bool operator==(Handle<S> that) const {
236
+ internal::Object** a = reinterpret_cast<internal::Object**>(**this);
237
+ internal::Object** b = reinterpret_cast<internal::Object**>(*that);
238
+ if (a == 0) return b == 0;
239
+ if (b == 0) return false;
240
+ return *a == *b;
241
+ }
242
+
243
+ /**
244
+ * Checks whether two handles are different.
245
+ * Returns true if only one of the handles is empty, or if
246
+ * the objects to which they refer are different.
247
+ * The handles' references are not checked.
248
+ */
249
+ template <class S> inline bool operator!=(Handle<S> that) const {
250
+ return !operator==(that);
251
+ }
252
+
253
+ template <class S> static inline Handle<T> Cast(Handle<S> that) {
254
+ #ifdef V8_ENABLE_CHECKS
255
+ // If we're going to perform the type check then we have to check
256
+ // that the handle isn't empty before doing the checked cast.
257
+ if (that.IsEmpty()) return Handle<T>();
258
+ #endif
259
+ return Handle<T>(T::Cast(*that));
260
+ }
261
+
262
+ template <class S> inline Handle<S> As() {
263
+ return Handle<S>::Cast(*this);
264
+ }
265
+
266
+ private:
267
+ T* val_;
268
+ };
269
+
270
+
271
+ /**
272
+ * A light-weight stack-allocated object handle. All operations
273
+ * that return objects from within v8 return them in local handles. They
274
+ * are created within HandleScopes, and all local handles allocated within a
275
+ * handle scope are destroyed when the handle scope is destroyed. Hence it
276
+ * is not necessary to explicitly deallocate local handles.
277
+ */
278
+ template <class T> class Local : public Handle<T> {
279
+ public:
280
+ inline Local();
281
+ template <class S> inline Local(Local<S> that)
282
+ : Handle<T>(reinterpret_cast<T*>(*that)) {
283
+ /**
284
+ * This check fails when trying to convert between incompatible
285
+ * handles. For example, converting from a Handle<String> to a
286
+ * Handle<Number>.
287
+ */
288
+ TYPE_CHECK(T, S);
289
+ }
290
+ template <class S> inline Local(S* that) : Handle<T>(that) { }
291
+ template <class S> static inline Local<T> Cast(Local<S> that) {
292
+ #ifdef V8_ENABLE_CHECKS
293
+ // If we're going to perform the type check then we have to check
294
+ // that the handle isn't empty before doing the checked cast.
295
+ if (that.IsEmpty()) return Local<T>();
296
+ #endif
297
+ return Local<T>(T::Cast(*that));
298
+ }
299
+
300
+ template <class S> inline Local<S> As() {
301
+ return Local<S>::Cast(*this);
302
+ }
303
+
304
+ /** Create a local handle for the content of another handle.
305
+ * The referee is kept alive by the local handle even when
306
+ * the original handle is destroyed/disposed.
307
+ */
308
+ inline static Local<T> New(Handle<T> that);
309
+ };
310
+
311
+
312
+ /**
313
+ * An object reference that is independent of any handle scope. Where
314
+ * a Local handle only lives as long as the HandleScope in which it was
315
+ * allocated, a Persistent handle remains valid until it is explicitly
316
+ * disposed.
317
+ *
318
+ * A persistent handle contains a reference to a storage cell within
319
+ * the v8 engine which holds an object value and which is updated by
320
+ * the garbage collector whenever the object is moved. A new storage
321
+ * cell can be created using Persistent::New and existing handles can
322
+ * be disposed using Persistent::Dispose. Since persistent handles
323
+ * are passed by value you may have many persistent handle objects
324
+ * that point to the same storage cell. For instance, if you pass a
325
+ * persistent handle as an argument to a function you will not get two
326
+ * different storage cells but rather two references to the same
327
+ * storage cell.
328
+ */
329
+ template <class T> class Persistent : public Handle<T> {
330
+ public:
331
+
332
+ /**
333
+ * Creates an empty persistent handle that doesn't point to any
334
+ * storage cell.
335
+ */
336
+ inline Persistent();
337
+
338
+ /**
339
+ * Creates a persistent handle for the same storage cell as the
340
+ * specified handle. This constructor allows you to pass persistent
341
+ * handles as arguments by value and to assign between persistent
342
+ * handles. However, attempting to assign between incompatible
343
+ * persistent handles, for instance from a Persistent<String> to a
344
+ * Persistent<Number> will cause a compiletime error. Assigning
345
+ * between compatible persistent handles, for instance assigning a
346
+ * Persistent<String> to a variable declared as Persistent<Value>,
347
+ * is allowed as String is a subclass of Value.
348
+ */
349
+ template <class S> inline Persistent(Persistent<S> that)
350
+ : Handle<T>(reinterpret_cast<T*>(*that)) {
351
+ /**
352
+ * This check fails when trying to convert between incompatible
353
+ * handles. For example, converting from a Handle<String> to a
354
+ * Handle<Number>.
355
+ */
356
+ TYPE_CHECK(T, S);
357
+ }
358
+
359
+ template <class S> inline Persistent(S* that) : Handle<T>(that) { }
360
+
361
+ /**
362
+ * "Casts" a plain handle which is known to be a persistent handle
363
+ * to a persistent handle.
364
+ */
365
+ template <class S> explicit inline Persistent(Handle<S> that)
366
+ : Handle<T>(*that) { }
367
+
368
+ template <class S> static inline Persistent<T> Cast(Persistent<S> that) {
369
+ #ifdef V8_ENABLE_CHECKS
370
+ // If we're going to perform the type check then we have to check
371
+ // that the handle isn't empty before doing the checked cast.
372
+ if (that.IsEmpty()) return Persistent<T>();
373
+ #endif
374
+ return Persistent<T>(T::Cast(*that));
375
+ }
376
+
377
+ template <class S> inline Persistent<S> As() {
378
+ return Persistent<S>::Cast(*this);
379
+ }
380
+
381
+ /**
382
+ * Creates a new persistent handle for an existing local or
383
+ * persistent handle.
384
+ */
385
+ inline static Persistent<T> New(Handle<T> that);
386
+
387
+ /**
388
+ * Releases the storage cell referenced by this persistent handle.
389
+ * Does not remove the reference to the cell from any handles.
390
+ * This handle's reference, and any any other references to the storage
391
+ * cell remain and IsEmpty will still return false.
392
+ */
393
+ inline void Dispose();
394
+
395
+ /**
396
+ * Make the reference to this object weak. When only weak handles
397
+ * refer to the object, the garbage collector will perform a
398
+ * callback to the given V8::WeakReferenceCallback function, passing
399
+ * it the object reference and the given parameters.
400
+ */
401
+ inline void MakeWeak(void* parameters, WeakReferenceCallback callback);
402
+
403
+ /** Clears the weak reference to this object.*/
404
+ inline void ClearWeak();
405
+
406
+ /**
407
+ *Checks if the handle holds the only reference to an object.
408
+ */
409
+ inline bool IsNearDeath() const;
410
+
411
+ /**
412
+ * Returns true if the handle's reference is weak.
413
+ */
414
+ inline bool IsWeak() const;
415
+
416
+ private:
417
+ friend class ImplementationUtilities;
418
+ friend class ObjectTemplate;
419
+ };
420
+
421
+
422
+ /**
423
+ * A stack-allocated class that governs a number of local handles.
424
+ * After a handle scope has been created, all local handles will be
425
+ * allocated within that handle scope until either the handle scope is
426
+ * deleted or another handle scope is created. If there is already a
427
+ * handle scope and a new one is created, all allocations will take
428
+ * place in the new handle scope until it is deleted. After that,
429
+ * new handles will again be allocated in the original handle scope.
430
+ *
431
+ * After the handle scope of a local handle has been deleted the
432
+ * garbage collector will no longer track the object stored in the
433
+ * handle and may deallocate it. The behavior of accessing a handle
434
+ * for which the handle scope has been deleted is undefined.
435
+ */
436
+ class V8EXPORT HandleScope {
437
+ public:
438
+ HandleScope();
439
+
440
+ ~HandleScope();
441
+
442
+ /**
443
+ * Closes the handle scope and returns the value as a handle in the
444
+ * previous scope, which is the new current scope after the call.
445
+ */
446
+ template <class T> Local<T> Close(Handle<T> value);
447
+
448
+ /**
449
+ * Counts the number of allocated handles.
450
+ */
451
+ static int NumberOfHandles();
452
+
453
+ /**
454
+ * Creates a new handle with the given value.
455
+ */
456
+ static internal::Object** CreateHandle(internal::Object* value);
457
+
458
+ private:
459
+ // Make it impossible to create heap-allocated or illegal handle
460
+ // scopes by disallowing certain operations.
461
+ HandleScope(const HandleScope&);
462
+ void operator=(const HandleScope&);
463
+ void* operator new(size_t size);
464
+ void operator delete(void*, size_t);
465
+
466
+ // This Data class is accessible internally as HandleScopeData through a
467
+ // typedef in the ImplementationUtilities class.
468
+ class V8EXPORT Data {
469
+ public:
470
+ int extensions;
471
+ internal::Object** next;
472
+ internal::Object** limit;
473
+ inline void Initialize() {
474
+ extensions = -1;
475
+ next = limit = NULL;
476
+ }
477
+ };
478
+
479
+ Data previous_;
480
+
481
+ // Allow for the active closing of HandleScopes which allows to pass a handle
482
+ // from the HandleScope being closed to the next top most HandleScope.
483
+ bool is_closed_;
484
+ internal::Object** RawClose(internal::Object** value);
485
+
486
+ friend class ImplementationUtilities;
487
+ };
488
+
489
+
490
+ // --- S p e c i a l o b j e c t s ---
491
+
492
+
493
+ /**
494
+ * The superclass of values and API object templates.
495
+ */
496
+ class V8EXPORT Data {
497
+ private:
498
+ Data();
499
+ };
500
+
501
+
502
+ /**
503
+ * Pre-compilation data that can be associated with a script. This
504
+ * data can be calculated for a script in advance of actually
505
+ * compiling it, and can be stored between compilations. When script
506
+ * data is given to the compile method compilation will be faster.
507
+ */
508
+ class V8EXPORT ScriptData { // NOLINT
509
+ public:
510
+ virtual ~ScriptData() { }
511
+
512
+ /**
513
+ * Pre-compiles the specified script (context-independent).
514
+ *
515
+ * \param input Pointer to UTF-8 script source code.
516
+ * \param length Length of UTF-8 script source code.
517
+ */
518
+ static ScriptData* PreCompile(const char* input, int length);
519
+
520
+ /**
521
+ * Pre-compiles the specified script (context-independent).
522
+ *
523
+ * NOTE: Pre-compilation using this method cannot happen on another thread
524
+ * without using Lockers.
525
+ *
526
+ * \param source Script source code.
527
+ */
528
+ static ScriptData* PreCompile(Handle<String> source);
529
+
530
+ /**
531
+ * Load previous pre-compilation data.
532
+ *
533
+ * \param data Pointer to data returned by a call to Data() of a previous
534
+ * ScriptData. Ownership is not transferred.
535
+ * \param length Length of data.
536
+ */
537
+ static ScriptData* New(const char* data, int length);
538
+
539
+ /**
540
+ * Returns the length of Data().
541
+ */
542
+ virtual int Length() = 0;
543
+
544
+ /**
545
+ * Returns a serialized representation of this ScriptData that can later be
546
+ * passed to New(). NOTE: Serialized data is platform-dependent.
547
+ */
548
+ virtual const char* Data() = 0;
549
+
550
+ /**
551
+ * Returns true if the source code could not be parsed.
552
+ */
553
+ virtual bool HasError() = 0;
554
+ };
555
+
556
+
557
+ /**
558
+ * The origin, within a file, of a script.
559
+ */
560
+ class ScriptOrigin {
561
+ public:
562
+ inline ScriptOrigin(
563
+ Handle<Value> resource_name,
564
+ Handle<Integer> resource_line_offset = Handle<Integer>(),
565
+ Handle<Integer> resource_column_offset = Handle<Integer>())
566
+ : resource_name_(resource_name),
567
+ resource_line_offset_(resource_line_offset),
568
+ resource_column_offset_(resource_column_offset) { }
569
+ inline Handle<Value> ResourceName() const;
570
+ inline Handle<Integer> ResourceLineOffset() const;
571
+ inline Handle<Integer> ResourceColumnOffset() const;
572
+ private:
573
+ Handle<Value> resource_name_;
574
+ Handle<Integer> resource_line_offset_;
575
+ Handle<Integer> resource_column_offset_;
576
+ };
577
+
578
+
579
+ /**
580
+ * A compiled JavaScript script.
581
+ */
582
+ class V8EXPORT Script {
583
+ public:
584
+
585
+ /**
586
+ * Compiles the specified script (context-independent).
587
+ *
588
+ * \param source Script source code.
589
+ * \param origin Script origin, owned by caller, no references are kept
590
+ * when New() returns
591
+ * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile()
592
+ * using pre_data speeds compilation if it's done multiple times.
593
+ * Owned by caller, no references are kept when New() returns.
594
+ * \param script_data Arbitrary data associated with script. Using
595
+ * this has same effect as calling SetData(), but allows data to be
596
+ * available to compile event handlers.
597
+ * \return Compiled script object (context independent; when run it
598
+ * will use the currently entered context).
599
+ */
600
+ static Local<Script> New(Handle<String> source,
601
+ ScriptOrigin* origin = NULL,
602
+ ScriptData* pre_data = NULL,
603
+ Handle<String> script_data = Handle<String>());
604
+
605
+ /**
606
+ * Compiles the specified script using the specified file name
607
+ * object (typically a string) as the script's origin.
608
+ *
609
+ * \param source Script source code.
610
+ * \param file_name file name object (typically a string) to be used
611
+ * as the script's origin.
612
+ * \return Compiled script object (context independent; when run it
613
+ * will use the currently entered context).
614
+ */
615
+ static Local<Script> New(Handle<String> source,
616
+ Handle<Value> file_name);
617
+
618
+ /**
619
+ * Compiles the specified script (bound to current context).
620
+ *
621
+ * \param source Script source code.
622
+ * \param origin Script origin, owned by caller, no references are kept
623
+ * when Compile() returns
624
+ * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile()
625
+ * using pre_data speeds compilation if it's done multiple times.
626
+ * Owned by caller, no references are kept when Compile() returns.
627
+ * \param script_data Arbitrary data associated with script. Using
628
+ * this has same effect as calling SetData(), but makes data available
629
+ * earlier (i.e. to compile event handlers).
630
+ * \return Compiled script object, bound to the context that was active
631
+ * when this function was called. When run it will always use this
632
+ * context.
633
+ */
634
+ static Local<Script> Compile(Handle<String> source,
635
+ ScriptOrigin* origin = NULL,
636
+ ScriptData* pre_data = NULL,
637
+ Handle<String> script_data = Handle<String>());
638
+
639
+ /**
640
+ * Compiles the specified script using the specified file name
641
+ * object (typically a string) as the script's origin.
642
+ *
643
+ * \param source Script source code.
644
+ * \param file_name File name to use as script's origin
645
+ * \param script_data Arbitrary data associated with script. Using
646
+ * this has same effect as calling SetData(), but makes data available
647
+ * earlier (i.e. to compile event handlers).
648
+ * \return Compiled script object, bound to the context that was active
649
+ * when this function was called. When run it will always use this
650
+ * context.
651
+ */
652
+ static Local<Script> Compile(Handle<String> source,
653
+ Handle<Value> file_name,
654
+ Handle<String> script_data = Handle<String>());
655
+
656
+ /**
657
+ * Runs the script returning the resulting value. If the script is
658
+ * context independent (created using ::New) it will be run in the
659
+ * currently entered context. If it is context specific (created
660
+ * using ::Compile) it will be run in the context in which it was
661
+ * compiled.
662
+ */
663
+ Local<Value> Run();
664
+
665
+ /**
666
+ * Returns the script id value.
667
+ */
668
+ Local<Value> Id();
669
+
670
+ /**
671
+ * Associate an additional data object with the script. This is mainly used
672
+ * with the debugger as this data object is only available through the
673
+ * debugger API.
674
+ */
675
+ void SetData(Handle<String> data);
676
+ };
677
+
678
+
679
+ /**
680
+ * An error message.
681
+ */
682
+ class V8EXPORT Message {
683
+ public:
684
+ Local<String> Get() const;
685
+ Local<String> GetSourceLine() const;
686
+
687
+ /**
688
+ * Returns the resource name for the script from where the function causing
689
+ * the error originates.
690
+ */
691
+ Handle<Value> GetScriptResourceName() const;
692
+
693
+ /**
694
+ * Returns the resource data for the script from where the function causing
695
+ * the error originates.
696
+ */
697
+ Handle<Value> GetScriptData() const;
698
+
699
+ /**
700
+ * Exception stack trace. By default stack traces are not captured for
701
+ * uncaught exceptions. SetCaptureStackTraceForUncaughtExceptions allows
702
+ * to change this option.
703
+ */
704
+ Handle<StackTrace> GetStackTrace() const;
705
+
706
+ /**
707
+ * Returns the number, 1-based, of the line where the error occurred.
708
+ */
709
+ int GetLineNumber() const;
710
+
711
+ /**
712
+ * Returns the index within the script of the first character where
713
+ * the error occurred.
714
+ */
715
+ int GetStartPosition() const;
716
+
717
+ /**
718
+ * Returns the index within the script of the last character where
719
+ * the error occurred.
720
+ */
721
+ int GetEndPosition() const;
722
+
723
+ /**
724
+ * Returns the index within the line of the first character where
725
+ * the error occurred.
726
+ */
727
+ int GetStartColumn() const;
728
+
729
+ /**
730
+ * Returns the index within the line of the last character where
731
+ * the error occurred.
732
+ */
733
+ int GetEndColumn() const;
734
+
735
+ // TODO(1245381): Print to a string instead of on a FILE.
736
+ static void PrintCurrentStackTrace(FILE* out);
737
+
738
+ static const int kNoLineNumberInfo = 0;
739
+ static const int kNoColumnInfo = 0;
740
+ };
741
+
742
+
743
+ /**
744
+ * Representation of a JavaScript stack trace. The information collected is a
745
+ * snapshot of the execution stack and the information remains valid after
746
+ * execution continues.
747
+ */
748
+ class V8EXPORT StackTrace {
749
+ public:
750
+ /**
751
+ * Flags that determine what information is placed captured for each
752
+ * StackFrame when grabbing the current stack trace.
753
+ */
754
+ enum StackTraceOptions {
755
+ kLineNumber = 1,
756
+ kColumnOffset = 1 << 1 | kLineNumber,
757
+ kScriptName = 1 << 2,
758
+ kFunctionName = 1 << 3,
759
+ kIsEval = 1 << 4,
760
+ kIsConstructor = 1 << 5,
761
+ kOverview = kLineNumber | kColumnOffset | kScriptName | kFunctionName,
762
+ kDetailed = kOverview | kIsEval | kIsConstructor
763
+ };
764
+
765
+ /**
766
+ * Returns a StackFrame at a particular index.
767
+ */
768
+ Local<StackFrame> GetFrame(uint32_t index) const;
769
+
770
+ /**
771
+ * Returns the number of StackFrames.
772
+ */
773
+ int GetFrameCount() const;
774
+
775
+ /**
776
+ * Returns StackTrace as a v8::Array that contains StackFrame objects.
777
+ */
778
+ Local<Array> AsArray();
779
+
780
+ /**
781
+ * Grab a snapshot of the the current JavaScript execution stack.
782
+ *
783
+ * \param frame_limit The maximum number of stack frames we want to capture.
784
+ * \param options Enumerates the set of things we will capture for each
785
+ * StackFrame.
786
+ */
787
+ static Local<StackTrace> CurrentStackTrace(
788
+ int frame_limit,
789
+ StackTraceOptions options = kOverview);
790
+ };
791
+
792
+
793
+ /**
794
+ * A single JavaScript stack frame.
795
+ */
796
+ class V8EXPORT StackFrame {
797
+ public:
798
+ /**
799
+ * Returns the number, 1-based, of the line for the associate function call.
800
+ * This method will return Message::kNoLineNumberInfo if it is unable to
801
+ * retrieve the line number, or if kLineNumber was not passed as an option
802
+ * when capturing the StackTrace.
803
+ */
804
+ int GetLineNumber() const;
805
+
806
+ /**
807
+ * Returns the 1-based column offset on the line for the associated function
808
+ * call.
809
+ * This method will return Message::kNoColumnInfo if it is unable to retrieve
810
+ * the column number, or if kColumnOffset was not passed as an option when
811
+ * capturing the StackTrace.
812
+ */
813
+ int GetColumn() const;
814
+
815
+ /**
816
+ * Returns the name of the resource that contains the script for the
817
+ * function for this StackFrame.
818
+ */
819
+ Local<String> GetScriptName() const;
820
+
821
+ /**
822
+ * Returns the name of the function associated with this stack frame.
823
+ */
824
+ Local<String> GetFunctionName() const;
825
+
826
+ /**
827
+ * Returns whether or not the associated function is compiled via a call to
828
+ * eval().
829
+ */
830
+ bool IsEval() const;
831
+
832
+ /**
833
+ * Returns whther or not the associated function is called as a
834
+ * constructor via "new".
835
+ */
836
+ bool IsConstructor() const;
837
+ };
838
+
839
+
840
+ // --- V a l u e ---
841
+
842
+
843
+ /**
844
+ * The superclass of all JavaScript values and objects.
845
+ */
846
+ class Value : public Data {
847
+ public:
848
+
849
+ /**
850
+ * Returns true if this value is the undefined value. See ECMA-262
851
+ * 4.3.10.
852
+ */
853
+ V8EXPORT bool IsUndefined() const;
854
+
855
+ /**
856
+ * Returns true if this value is the null value. See ECMA-262
857
+ * 4.3.11.
858
+ */
859
+ V8EXPORT bool IsNull() const;
860
+
861
+ /**
862
+ * Returns true if this value is true.
863
+ */
864
+ V8EXPORT bool IsTrue() const;
865
+
866
+ /**
867
+ * Returns true if this value is false.
868
+ */
869
+ V8EXPORT bool IsFalse() const;
870
+
871
+ /**
872
+ * Returns true if this value is an instance of the String type.
873
+ * See ECMA-262 8.4.
874
+ */
875
+ inline bool IsString() const;
876
+
877
+ /**
878
+ * Returns true if this value is a function.
879
+ */
880
+ V8EXPORT bool IsFunction() const;
881
+
882
+ /**
883
+ * Returns true if this value is an array.
884
+ */
885
+ V8EXPORT bool IsArray() const;
886
+
887
+ /**
888
+ * Returns true if this value is an object.
889
+ */
890
+ V8EXPORT bool IsObject() const;
891
+
892
+ /**
893
+ * Returns true if this value is boolean.
894
+ */
895
+ V8EXPORT bool IsBoolean() const;
896
+
897
+ /**
898
+ * Returns true if this value is a number.
899
+ */
900
+ V8EXPORT bool IsNumber() const;
901
+
902
+ /**
903
+ * Returns true if this value is external.
904
+ */
905
+ V8EXPORT bool IsExternal() const;
906
+
907
+ /**
908
+ * Returns true if this value is a 32-bit signed integer.
909
+ */
910
+ V8EXPORT bool IsInt32() const;
911
+
912
+ /**
913
+ * Returns true if this value is a 32-bit unsigned integer.
914
+ */
915
+ V8EXPORT bool IsUint32() const;
916
+
917
+ /**
918
+ * Returns true if this value is a Date.
919
+ */
920
+ V8EXPORT bool IsDate() const;
921
+
922
+ V8EXPORT Local<Boolean> ToBoolean() const;
923
+ V8EXPORT Local<Number> ToNumber() const;
924
+ V8EXPORT Local<String> ToString() const;
925
+ V8EXPORT Local<String> ToDetailString() const;
926
+ V8EXPORT Local<Object> ToObject() const;
927
+ V8EXPORT Local<Integer> ToInteger() const;
928
+ V8EXPORT Local<Uint32> ToUint32() const;
929
+ V8EXPORT Local<Int32> ToInt32() const;
930
+
931
+ /**
932
+ * Attempts to convert a string to an array index.
933
+ * Returns an empty handle if the conversion fails.
934
+ */
935
+ V8EXPORT Local<Uint32> ToArrayIndex() const;
936
+
937
+ V8EXPORT bool BooleanValue() const;
938
+ V8EXPORT double NumberValue() const;
939
+ V8EXPORT int64_t IntegerValue() const;
940
+ V8EXPORT uint32_t Uint32Value() const;
941
+ V8EXPORT int32_t Int32Value() const;
942
+
943
+ /** JS == */
944
+ V8EXPORT bool Equals(Handle<Value> that) const;
945
+ V8EXPORT bool StrictEquals(Handle<Value> that) const;
946
+
947
+ private:
948
+ inline bool QuickIsString() const;
949
+ V8EXPORT bool FullIsString() const;
950
+ };
951
+
952
+
953
+ /**
954
+ * The superclass of primitive values. See ECMA-262 4.3.2.
955
+ */
956
+ class Primitive : public Value { };
957
+
958
+
959
+ /**
960
+ * A primitive boolean value (ECMA-262, 4.3.14). Either the true
961
+ * or false value.
962
+ */
963
+ class Boolean : public Primitive {
964
+ public:
965
+ V8EXPORT bool Value() const;
966
+ static inline Handle<Boolean> New(bool value);
967
+ };
968
+
969
+
970
+ /**
971
+ * A JavaScript string value (ECMA-262, 4.3.17).
972
+ */
973
+ class String : public Primitive {
974
+ public:
975
+
976
+ /**
977
+ * Returns the number of characters in this string.
978
+ */
979
+ V8EXPORT int Length() const;
980
+
981
+ /**
982
+ * Returns the number of bytes in the UTF-8 encoded
983
+ * representation of this string.
984
+ */
985
+ V8EXPORT int Utf8Length() const;
986
+
987
+ /**
988
+ * Write the contents of the string to an external buffer.
989
+ * If no arguments are given, expects the buffer to be large
990
+ * enough to hold the entire string and NULL terminator. Copies
991
+ * the contents of the string and the NULL terminator into the
992
+ * buffer.
993
+ *
994
+ * Copies up to length characters into the output buffer.
995
+ * Only null-terminates if there is enough space in the buffer.
996
+ *
997
+ * \param buffer The buffer into which the string will be copied.
998
+ * \param start The starting position within the string at which
999
+ * copying begins.
1000
+ * \param length The number of bytes to copy from the string.
1001
+ * \param nchars_ref The number of characters written, can be NULL.
1002
+ * \param hints Various hints that might affect performance of this or
1003
+ * subsequent operations.
1004
+ * \return The number of bytes copied to the buffer
1005
+ * excluding the NULL terminator.
1006
+ */
1007
+ enum WriteHints {
1008
+ NO_HINTS = 0,
1009
+ HINT_MANY_WRITES_EXPECTED = 1
1010
+ };
1011
+
1012
+ V8EXPORT int Write(uint16_t* buffer,
1013
+ int start = 0,
1014
+ int length = -1,
1015
+ WriteHints hints = NO_HINTS) const; // UTF-16
1016
+ V8EXPORT int WriteAscii(char* buffer,
1017
+ int start = 0,
1018
+ int length = -1,
1019
+ WriteHints hints = NO_HINTS) const; // ASCII
1020
+ V8EXPORT int WriteUtf8(char* buffer,
1021
+ int length = -1,
1022
+ int* nchars_ref = NULL,
1023
+ WriteHints hints = NO_HINTS) const; // UTF-8
1024
+
1025
+ /**
1026
+ * A zero length string.
1027
+ */
1028
+ V8EXPORT static v8::Local<v8::String> Empty();
1029
+
1030
+ /**
1031
+ * Returns true if the string is external
1032
+ */
1033
+ V8EXPORT bool IsExternal() const;
1034
+
1035
+ /**
1036
+ * Returns true if the string is both external and ascii
1037
+ */
1038
+ V8EXPORT bool IsExternalAscii() const;
1039
+
1040
+ class V8EXPORT ExternalStringResourceBase {
1041
+ public:
1042
+ virtual ~ExternalStringResourceBase() {}
1043
+
1044
+ protected:
1045
+ ExternalStringResourceBase() {}
1046
+
1047
+ /**
1048
+ * Internally V8 will call this Dispose method when the external string
1049
+ * resource is no longer needed. The default implementation will use the
1050
+ * delete operator. This method can be overridden in subclasses to
1051
+ * control how allocated external string resources are disposed.
1052
+ */
1053
+ virtual void Dispose() { delete this; }
1054
+
1055
+ private:
1056
+ // Disallow copying and assigning.
1057
+ ExternalStringResourceBase(const ExternalStringResourceBase&);
1058
+ void operator=(const ExternalStringResourceBase&);
1059
+
1060
+ friend class v8::internal::Heap;
1061
+ };
1062
+
1063
+ /**
1064
+ * An ExternalStringResource is a wrapper around a two-byte string
1065
+ * buffer that resides outside V8's heap. Implement an
1066
+ * ExternalStringResource to manage the life cycle of the underlying
1067
+ * buffer. Note that the string data must be immutable.
1068
+ */
1069
+ class V8EXPORT ExternalStringResource
1070
+ : public ExternalStringResourceBase {
1071
+ public:
1072
+ /**
1073
+ * Override the destructor to manage the life cycle of the underlying
1074
+ * buffer.
1075
+ */
1076
+ virtual ~ExternalStringResource() {}
1077
+
1078
+ /**
1079
+ * The string data from the underlying buffer.
1080
+ */
1081
+ virtual const uint16_t* data() const = 0;
1082
+
1083
+ /**
1084
+ * The length of the string. That is, the number of two-byte characters.
1085
+ */
1086
+ virtual size_t length() const = 0;
1087
+
1088
+ protected:
1089
+ ExternalStringResource() {}
1090
+ };
1091
+
1092
+ /**
1093
+ * An ExternalAsciiStringResource is a wrapper around an ascii
1094
+ * string buffer that resides outside V8's heap. Implement an
1095
+ * ExternalAsciiStringResource to manage the life cycle of the
1096
+ * underlying buffer. Note that the string data must be immutable
1097
+ * and that the data must be strict 7-bit ASCII, not Latin1 or
1098
+ * UTF-8, which would require special treatment internally in the
1099
+ * engine and, in the case of UTF-8, do not allow efficient indexing.
1100
+ * Use String::New or convert to 16 bit data for non-ASCII.
1101
+ */
1102
+
1103
+ class V8EXPORT ExternalAsciiStringResource
1104
+ : public ExternalStringResourceBase {
1105
+ public:
1106
+ /**
1107
+ * Override the destructor to manage the life cycle of the underlying
1108
+ * buffer.
1109
+ */
1110
+ virtual ~ExternalAsciiStringResource() {}
1111
+ /** The string data from the underlying buffer.*/
1112
+ virtual const char* data() const = 0;
1113
+ /** The number of ascii characters in the string.*/
1114
+ virtual size_t length() const = 0;
1115
+ protected:
1116
+ ExternalAsciiStringResource() {}
1117
+ };
1118
+
1119
+ /**
1120
+ * Get the ExternalStringResource for an external string. Returns
1121
+ * NULL if IsExternal() doesn't return true.
1122
+ */
1123
+ inline ExternalStringResource* GetExternalStringResource() const;
1124
+
1125
+ /**
1126
+ * Get the ExternalAsciiStringResource for an external ascii string.
1127
+ * Returns NULL if IsExternalAscii() doesn't return true.
1128
+ */
1129
+ V8EXPORT ExternalAsciiStringResource* GetExternalAsciiStringResource() const;
1130
+
1131
+ static inline String* Cast(v8::Value* obj);
1132
+
1133
+ /**
1134
+ * Allocates a new string from either utf-8 encoded or ascii data.
1135
+ * The second parameter 'length' gives the buffer length.
1136
+ * If the data is utf-8 encoded, the caller must
1137
+ * be careful to supply the length parameter.
1138
+ * If it is not given, the function calls
1139
+ * 'strlen' to determine the buffer length, it might be
1140
+ * wrong if 'data' contains a null character.
1141
+ */
1142
+ V8EXPORT static Local<String> New(const char* data, int length = -1);
1143
+
1144
+ /** Allocates a new string from utf16 data.*/
1145
+ V8EXPORT static Local<String> New(const uint16_t* data, int length = -1);
1146
+
1147
+ /** Creates a symbol. Returns one if it exists already.*/
1148
+ V8EXPORT static Local<String> NewSymbol(const char* data, int length = -1);
1149
+
1150
+ /**
1151
+ * Creates a new string by concatenating the left and the right strings
1152
+ * passed in as parameters.
1153
+ */
1154
+ V8EXPORT static Local<String> Concat(Handle<String> left,
1155
+ Handle<String>right);
1156
+
1157
+ /**
1158
+ * Creates a new external string using the data defined in the given
1159
+ * resource. When the external string is no longer live on V8's heap the
1160
+ * resource will be disposed by calling its Dispose method. The caller of
1161
+ * this function should not otherwise delete or modify the resource. Neither
1162
+ * should the underlying buffer be deallocated or modified except through the
1163
+ * destructor of the external string resource.
1164
+ */
1165
+ V8EXPORT static Local<String> NewExternal(ExternalStringResource* resource);
1166
+
1167
+ /**
1168
+ * Associate an external string resource with this string by transforming it
1169
+ * in place so that existing references to this string in the JavaScript heap
1170
+ * will use the external string resource. The external string resource's
1171
+ * character contents needs to be equivalent to this string.
1172
+ * Returns true if the string has been changed to be an external string.
1173
+ * The string is not modified if the operation fails. See NewExternal for
1174
+ * information on the lifetime of the resource.
1175
+ */
1176
+ V8EXPORT bool MakeExternal(ExternalStringResource* resource);
1177
+
1178
+ /**
1179
+ * Creates a new external string using the ascii data defined in the given
1180
+ * resource. When the external string is no longer live on V8's heap the
1181
+ * resource will be disposed by calling its Dispose method. The caller of
1182
+ * this function should not otherwise delete or modify the resource. Neither
1183
+ * should the underlying buffer be deallocated or modified except through the
1184
+ * destructor of the external string resource.
1185
+ */
1186
+ V8EXPORT static Local<String> NewExternal(
1187
+ ExternalAsciiStringResource* resource);
1188
+
1189
+ /**
1190
+ * Associate an external string resource with this string by transforming it
1191
+ * in place so that existing references to this string in the JavaScript heap
1192
+ * will use the external string resource. The external string resource's
1193
+ * character contents needs to be equivalent to this string.
1194
+ * Returns true if the string has been changed to be an external string.
1195
+ * The string is not modified if the operation fails. See NewExternal for
1196
+ * information on the lifetime of the resource.
1197
+ */
1198
+ V8EXPORT bool MakeExternal(ExternalAsciiStringResource* resource);
1199
+
1200
+ /**
1201
+ * Returns true if this string can be made external.
1202
+ */
1203
+ V8EXPORT bool CanMakeExternal();
1204
+
1205
+ /** Creates an undetectable string from the supplied ascii or utf-8 data.*/
1206
+ V8EXPORT static Local<String> NewUndetectable(const char* data,
1207
+ int length = -1);
1208
+
1209
+ /** Creates an undetectable string from the supplied utf-16 data.*/
1210
+ V8EXPORT static Local<String> NewUndetectable(const uint16_t* data,
1211
+ int length = -1);
1212
+
1213
+ /**
1214
+ * Converts an object to a utf8-encoded character array. Useful if
1215
+ * you want to print the object. If conversion to a string fails
1216
+ * (eg. due to an exception in the toString() method of the object)
1217
+ * then the length() method returns 0 and the * operator returns
1218
+ * NULL.
1219
+ */
1220
+ class V8EXPORT Utf8Value {
1221
+ public:
1222
+ explicit Utf8Value(Handle<v8::Value> obj);
1223
+ ~Utf8Value();
1224
+ char* operator*() { return str_; }
1225
+ const char* operator*() const { return str_; }
1226
+ int length() const { return length_; }
1227
+ private:
1228
+ char* str_;
1229
+ int length_;
1230
+
1231
+ // Disallow copying and assigning.
1232
+ Utf8Value(const Utf8Value&);
1233
+ void operator=(const Utf8Value&);
1234
+ };
1235
+
1236
+ /**
1237
+ * Converts an object to an ascii string.
1238
+ * Useful if you want to print the object.
1239
+ * If conversion to a string fails (eg. due to an exception in the toString()
1240
+ * method of the object) then the length() method returns 0 and the * operator
1241
+ * returns NULL.
1242
+ */
1243
+ class V8EXPORT AsciiValue {
1244
+ public:
1245
+ explicit AsciiValue(Handle<v8::Value> obj);
1246
+ ~AsciiValue();
1247
+ char* operator*() { return str_; }
1248
+ const char* operator*() const { return str_; }
1249
+ int length() const { return length_; }
1250
+ private:
1251
+ char* str_;
1252
+ int length_;
1253
+
1254
+ // Disallow copying and assigning.
1255
+ AsciiValue(const AsciiValue&);
1256
+ void operator=(const AsciiValue&);
1257
+ };
1258
+
1259
+ /**
1260
+ * Converts an object to a two-byte string.
1261
+ * If conversion to a string fails (eg. due to an exception in the toString()
1262
+ * method of the object) then the length() method returns 0 and the * operator
1263
+ * returns NULL.
1264
+ */
1265
+ class V8EXPORT Value {
1266
+ public:
1267
+ explicit Value(Handle<v8::Value> obj);
1268
+ ~Value();
1269
+ uint16_t* operator*() { return str_; }
1270
+ const uint16_t* operator*() const { return str_; }
1271
+ int length() const { return length_; }
1272
+ private:
1273
+ uint16_t* str_;
1274
+ int length_;
1275
+
1276
+ // Disallow copying and assigning.
1277
+ Value(const Value&);
1278
+ void operator=(const Value&);
1279
+ };
1280
+
1281
+ private:
1282
+ V8EXPORT void VerifyExternalStringResource(ExternalStringResource* val) const;
1283
+ V8EXPORT static void CheckCast(v8::Value* obj);
1284
+ };
1285
+
1286
+
1287
+ /**
1288
+ * A JavaScript number value (ECMA-262, 4.3.20)
1289
+ */
1290
+ class Number : public Primitive {
1291
+ public:
1292
+ V8EXPORT double Value() const;
1293
+ V8EXPORT static Local<Number> New(double value);
1294
+ static inline Number* Cast(v8::Value* obj);
1295
+ private:
1296
+ V8EXPORT Number();
1297
+ static void CheckCast(v8::Value* obj);
1298
+ };
1299
+
1300
+
1301
+ /**
1302
+ * A JavaScript value representing a signed integer.
1303
+ */
1304
+ class Integer : public Number {
1305
+ public:
1306
+ V8EXPORT static Local<Integer> New(int32_t value);
1307
+ V8EXPORT static Local<Integer> NewFromUnsigned(uint32_t value);
1308
+ V8EXPORT int64_t Value() const;
1309
+ static inline Integer* Cast(v8::Value* obj);
1310
+ private:
1311
+ V8EXPORT Integer();
1312
+ V8EXPORT static void CheckCast(v8::Value* obj);
1313
+ };
1314
+
1315
+
1316
+ /**
1317
+ * A JavaScript value representing a 32-bit signed integer.
1318
+ */
1319
+ class Int32 : public Integer {
1320
+ public:
1321
+ V8EXPORT int32_t Value() const;
1322
+ private:
1323
+ V8EXPORT Int32();
1324
+ };
1325
+
1326
+
1327
+ /**
1328
+ * A JavaScript value representing a 32-bit unsigned integer.
1329
+ */
1330
+ class Uint32 : public Integer {
1331
+ public:
1332
+ V8EXPORT uint32_t Value() const;
1333
+ private:
1334
+ V8EXPORT Uint32();
1335
+ };
1336
+
1337
+
1338
+ /**
1339
+ * An instance of the built-in Date constructor (ECMA-262, 15.9).
1340
+ */
1341
+ class Date : public Value {
1342
+ public:
1343
+ V8EXPORT static Local<Value> New(double time);
1344
+
1345
+ /**
1346
+ * A specialization of Value::NumberValue that is more efficient
1347
+ * because we know the structure of this object.
1348
+ */
1349
+ V8EXPORT double NumberValue() const;
1350
+
1351
+ static inline Date* Cast(v8::Value* obj);
1352
+ private:
1353
+ V8EXPORT static void CheckCast(v8::Value* obj);
1354
+ };
1355
+
1356
+
1357
+ enum PropertyAttribute {
1358
+ None = 0,
1359
+ ReadOnly = 1 << 0,
1360
+ DontEnum = 1 << 1,
1361
+ DontDelete = 1 << 2
1362
+ };
1363
+
1364
+ enum ExternalArrayType {
1365
+ kExternalByteArray = 1,
1366
+ kExternalUnsignedByteArray,
1367
+ kExternalShortArray,
1368
+ kExternalUnsignedShortArray,
1369
+ kExternalIntArray,
1370
+ kExternalUnsignedIntArray,
1371
+ kExternalFloatArray
1372
+ };
1373
+
1374
+ /**
1375
+ * Accessor[Getter|Setter] are used as callback functions when
1376
+ * setting|getting a particular property. See Object and ObjectTemplate's
1377
+ * method SetAccessor.
1378
+ */
1379
+ typedef Handle<Value> (*AccessorGetter)(Local<String> property,
1380
+ const AccessorInfo& info);
1381
+
1382
+
1383
+ typedef void (*AccessorSetter)(Local<String> property,
1384
+ Local<Value> value,
1385
+ const AccessorInfo& info);
1386
+
1387
+
1388
+ /**
1389
+ * Access control specifications.
1390
+ *
1391
+ * Some accessors should be accessible across contexts. These
1392
+ * accessors have an explicit access control parameter which specifies
1393
+ * the kind of cross-context access that should be allowed.
1394
+ *
1395
+ * Additionally, for security, accessors can prohibit overwriting by
1396
+ * accessors defined in JavaScript. For objects that have such
1397
+ * accessors either locally or in their prototype chain it is not
1398
+ * possible to overwrite the accessor by using __defineGetter__ or
1399
+ * __defineSetter__ from JavaScript code.
1400
+ */
1401
+ enum AccessControl {
1402
+ DEFAULT = 0,
1403
+ ALL_CAN_READ = 1,
1404
+ ALL_CAN_WRITE = 1 << 1,
1405
+ PROHIBITS_OVERWRITING = 1 << 2
1406
+ };
1407
+
1408
+
1409
+ /**
1410
+ * A JavaScript object (ECMA-262, 4.3.3)
1411
+ */
1412
+ class Object : public Value {
1413
+ public:
1414
+ V8EXPORT bool Set(Handle<Value> key,
1415
+ Handle<Value> value,
1416
+ PropertyAttribute attribs = None);
1417
+
1418
+ V8EXPORT bool Set(uint32_t index,
1419
+ Handle<Value> value);
1420
+
1421
+ // Sets a local property on this object bypassing interceptors and
1422
+ // overriding accessors or read-only properties.
1423
+ //
1424
+ // Note that if the object has an interceptor the property will be set
1425
+ // locally, but since the interceptor takes precedence the local property
1426
+ // will only be returned if the interceptor doesn't return a value.
1427
+ //
1428
+ // Note also that this only works for named properties.
1429
+ V8EXPORT bool ForceSet(Handle<Value> key,
1430
+ Handle<Value> value,
1431
+ PropertyAttribute attribs = None);
1432
+
1433
+ V8EXPORT Local<Value> Get(Handle<Value> key);
1434
+
1435
+ V8EXPORT Local<Value> Get(uint32_t index);
1436
+
1437
+ // TODO(1245389): Replace the type-specific versions of these
1438
+ // functions with generic ones that accept a Handle<Value> key.
1439
+ V8EXPORT bool Has(Handle<String> key);
1440
+
1441
+ V8EXPORT bool Delete(Handle<String> key);
1442
+
1443
+ // Delete a property on this object bypassing interceptors and
1444
+ // ignoring dont-delete attributes.
1445
+ V8EXPORT bool ForceDelete(Handle<Value> key);
1446
+
1447
+ V8EXPORT bool Has(uint32_t index);
1448
+
1449
+ V8EXPORT bool Delete(uint32_t index);
1450
+
1451
+ V8EXPORT bool SetAccessor(Handle<String> name,
1452
+ AccessorGetter getter,
1453
+ AccessorSetter setter = 0,
1454
+ Handle<Value> data = Handle<Value>(),
1455
+ AccessControl settings = DEFAULT,
1456
+ PropertyAttribute attribute = None);
1457
+
1458
+ /**
1459
+ * Returns an array containing the names of the enumerable properties
1460
+ * of this object, including properties from prototype objects. The
1461
+ * array returned by this method contains the same values as would
1462
+ * be enumerated by a for-in statement over this object.
1463
+ */
1464
+ V8EXPORT Local<Array> GetPropertyNames();
1465
+
1466
+ /**
1467
+ * Get the prototype object. This does not skip objects marked to
1468
+ * be skipped by __proto__ and it does not consult the security
1469
+ * handler.
1470
+ */
1471
+ V8EXPORT Local<Value> GetPrototype();
1472
+
1473
+ /**
1474
+ * Set the prototype object. This does not skip objects marked to
1475
+ * be skipped by __proto__ and it does not consult the security
1476
+ * handler.
1477
+ */
1478
+ V8EXPORT bool SetPrototype(Handle<Value> prototype);
1479
+
1480
+ /**
1481
+ * Finds an instance of the given function template in the prototype
1482
+ * chain.
1483
+ */
1484
+ V8EXPORT Local<Object> FindInstanceInPrototypeChain(
1485
+ Handle<FunctionTemplate> tmpl);
1486
+
1487
+ /**
1488
+ * Call builtin Object.prototype.toString on this object.
1489
+ * This is different from Value::ToString() that may call
1490
+ * user-defined toString function. This one does not.
1491
+ */
1492
+ V8EXPORT Local<String> ObjectProtoToString();
1493
+
1494
+ /** Gets the number of internal fields for this Object. */
1495
+ V8EXPORT int InternalFieldCount();
1496
+ /** Gets the value in an internal field. */
1497
+ inline Local<Value> GetInternalField(int index);
1498
+ /** Sets the value in an internal field. */
1499
+ V8EXPORT void SetInternalField(int index, Handle<Value> value);
1500
+
1501
+ /** Gets a native pointer from an internal field. */
1502
+ inline void* GetPointerFromInternalField(int index);
1503
+
1504
+ /** Sets a native pointer in an internal field. */
1505
+ V8EXPORT void SetPointerInInternalField(int index, void* value);
1506
+
1507
+ // Testers for local properties.
1508
+ V8EXPORT bool HasRealNamedProperty(Handle<String> key);
1509
+ V8EXPORT bool HasRealIndexedProperty(uint32_t index);
1510
+ V8EXPORT bool HasRealNamedCallbackProperty(Handle<String> key);
1511
+
1512
+ /**
1513
+ * If result.IsEmpty() no real property was located in the prototype chain.
1514
+ * This means interceptors in the prototype chain are not called.
1515
+ */
1516
+ V8EXPORT Local<Value> GetRealNamedPropertyInPrototypeChain(
1517
+ Handle<String> key);
1518
+
1519
+ /**
1520
+ * If result.IsEmpty() no real property was located on the object or
1521
+ * in the prototype chain.
1522
+ * This means interceptors in the prototype chain are not called.
1523
+ */
1524
+ V8EXPORT Local<Value> GetRealNamedProperty(Handle<String> key);
1525
+
1526
+ /** Tests for a named lookup interceptor.*/
1527
+ V8EXPORT bool HasNamedLookupInterceptor();
1528
+
1529
+ /** Tests for an index lookup interceptor.*/
1530
+ V8EXPORT bool HasIndexedLookupInterceptor();
1531
+
1532
+ /**
1533
+ * Turns on access check on the object if the object is an instance of
1534
+ * a template that has access check callbacks. If an object has no
1535
+ * access check info, the object cannot be accessed by anyone.
1536
+ */
1537
+ V8EXPORT void TurnOnAccessCheck();
1538
+
1539
+ /**
1540
+ * Returns the identity hash for this object. The current implemenation uses
1541
+ * a hidden property on the object to store the identity hash.
1542
+ *
1543
+ * The return value will never be 0. Also, it is not guaranteed to be
1544
+ * unique.
1545
+ */
1546
+ V8EXPORT int GetIdentityHash();
1547
+
1548
+ /**
1549
+ * Access hidden properties on JavaScript objects. These properties are
1550
+ * hidden from the executing JavaScript and only accessible through the V8
1551
+ * C++ API. Hidden properties introduced by V8 internally (for example the
1552
+ * identity hash) are prefixed with "v8::".
1553
+ */
1554
+ V8EXPORT bool SetHiddenValue(Handle<String> key, Handle<Value> value);
1555
+ V8EXPORT Local<Value> GetHiddenValue(Handle<String> key);
1556
+ V8EXPORT bool DeleteHiddenValue(Handle<String> key);
1557
+
1558
+ /**
1559
+ * Returns true if this is an instance of an api function (one
1560
+ * created from a function created from a function template) and has
1561
+ * been modified since it was created. Note that this method is
1562
+ * conservative and may return true for objects that haven't actually
1563
+ * been modified.
1564
+ */
1565
+ V8EXPORT bool IsDirty();
1566
+
1567
+ /**
1568
+ * Clone this object with a fast but shallow copy. Values will point
1569
+ * to the same values as the original object.
1570
+ */
1571
+ V8EXPORT Local<Object> Clone();
1572
+
1573
+ /**
1574
+ * Set the backing store of the indexed properties to be managed by the
1575
+ * embedding layer. Access to the indexed properties will follow the rules
1576
+ * spelled out in CanvasPixelArray.
1577
+ * Note: The embedding program still owns the data and needs to ensure that
1578
+ * the backing store is preserved while V8 has a reference.
1579
+ */
1580
+ V8EXPORT void SetIndexedPropertiesToPixelData(uint8_t* data, int length);
1581
+ bool HasIndexedPropertiesInPixelData();
1582
+ uint8_t* GetIndexedPropertiesPixelData();
1583
+ int GetIndexedPropertiesPixelDataLength();
1584
+
1585
+ /**
1586
+ * Set the backing store of the indexed properties to be managed by the
1587
+ * embedding layer. Access to the indexed properties will follow the rules
1588
+ * spelled out for the CanvasArray subtypes in the WebGL specification.
1589
+ * Note: The embedding program still owns the data and needs to ensure that
1590
+ * the backing store is preserved while V8 has a reference.
1591
+ */
1592
+ V8EXPORT void SetIndexedPropertiesToExternalArrayData(
1593
+ void* data,
1594
+ ExternalArrayType array_type,
1595
+ int number_of_elements);
1596
+ bool HasIndexedPropertiesInExternalArrayData();
1597
+ void* GetIndexedPropertiesExternalArrayData();
1598
+ ExternalArrayType GetIndexedPropertiesExternalArrayDataType();
1599
+ int GetIndexedPropertiesExternalArrayDataLength();
1600
+
1601
+ V8EXPORT static Local<Object> New();
1602
+ static inline Object* Cast(Value* obj);
1603
+ private:
1604
+ V8EXPORT Object();
1605
+ V8EXPORT static void CheckCast(Value* obj);
1606
+ V8EXPORT Local<Value> CheckedGetInternalField(int index);
1607
+ V8EXPORT void* SlowGetPointerFromInternalField(int index);
1608
+
1609
+ /**
1610
+ * If quick access to the internal field is possible this method
1611
+ * returns the value. Otherwise an empty handle is returned.
1612
+ */
1613
+ inline Local<Value> UncheckedGetInternalField(int index);
1614
+ };
1615
+
1616
+
1617
+ /**
1618
+ * An instance of the built-in array constructor (ECMA-262, 15.4.2).
1619
+ */
1620
+ class Array : public Object {
1621
+ public:
1622
+ V8EXPORT uint32_t Length() const;
1623
+
1624
+ /**
1625
+ * Clones an element at index |index|. Returns an empty
1626
+ * handle if cloning fails (for any reason).
1627
+ */
1628
+ V8EXPORT Local<Object> CloneElementAt(uint32_t index);
1629
+
1630
+ V8EXPORT static Local<Array> New(int length = 0);
1631
+ static inline Array* Cast(Value* obj);
1632
+ private:
1633
+ V8EXPORT Array();
1634
+ static void CheckCast(Value* obj);
1635
+ };
1636
+
1637
+
1638
+ /**
1639
+ * A JavaScript function object (ECMA-262, 15.3).
1640
+ */
1641
+ class Function : public Object {
1642
+ public:
1643
+ V8EXPORT Local<Object> NewInstance() const;
1644
+ V8EXPORT Local<Object> NewInstance(int argc, Handle<Value> argv[]) const;
1645
+ V8EXPORT Local<Value> Call(Handle<Object> recv,
1646
+ int argc,
1647
+ Handle<Value> argv[]);
1648
+ V8EXPORT void SetName(Handle<String> name);
1649
+ V8EXPORT Handle<Value> GetName() const;
1650
+
1651
+ /**
1652
+ * Returns zero based line number of function body and
1653
+ * kLineOffsetNotFound if no information available.
1654
+ */
1655
+ V8EXPORT int GetScriptLineNumber() const;
1656
+ V8EXPORT ScriptOrigin GetScriptOrigin() const;
1657
+ static inline Function* Cast(Value* obj);
1658
+ V8EXPORT static const int kLineOffsetNotFound;
1659
+ private:
1660
+ V8EXPORT Function();
1661
+ V8EXPORT static void CheckCast(Value* obj);
1662
+ };
1663
+
1664
+
1665
+ /**
1666
+ * A JavaScript value that wraps a C++ void*. This type of value is
1667
+ * mainly used to associate C++ data structures with JavaScript
1668
+ * objects.
1669
+ *
1670
+ * The Wrap function V8 will return the most optimal Value object wrapping the
1671
+ * C++ void*. The type of the value is not guaranteed to be an External object
1672
+ * and no assumptions about its type should be made. To access the wrapped
1673
+ * value Unwrap should be used, all other operations on that object will lead
1674
+ * to unpredictable results.
1675
+ */
1676
+ class External : public Value {
1677
+ public:
1678
+ V8EXPORT static Local<Value> Wrap(void* data);
1679
+ static inline void* Unwrap(Handle<Value> obj);
1680
+
1681
+ V8EXPORT static Local<External> New(void* value);
1682
+ static inline External* Cast(Value* obj);
1683
+ V8EXPORT void* Value() const;
1684
+ private:
1685
+ V8EXPORT External();
1686
+ V8EXPORT static void CheckCast(v8::Value* obj);
1687
+ static inline void* QuickUnwrap(Handle<v8::Value> obj);
1688
+ V8EXPORT static void* FullUnwrap(Handle<v8::Value> obj);
1689
+ };
1690
+
1691
+
1692
+ // --- T e m p l a t e s ---
1693
+
1694
+
1695
+ /**
1696
+ * The superclass of object and function templates.
1697
+ */
1698
+ class V8EXPORT Template : public Data {
1699
+ public:
1700
+ /** Adds a property to each instance created by this template.*/
1701
+ void Set(Handle<String> name, Handle<Data> value,
1702
+ PropertyAttribute attributes = None);
1703
+ inline void Set(const char* name, Handle<Data> value);
1704
+ private:
1705
+ Template();
1706
+
1707
+ friend class ObjectTemplate;
1708
+ friend class FunctionTemplate;
1709
+ };
1710
+
1711
+
1712
+ /**
1713
+ * The argument information given to function call callbacks. This
1714
+ * class provides access to information about the context of the call,
1715
+ * including the receiver, the number and values of arguments, and
1716
+ * the holder of the function.
1717
+ */
1718
+ class Arguments {
1719
+ public:
1720
+ inline int Length() const;
1721
+ inline Local<Value> operator[](int i) const;
1722
+ inline Local<Function> Callee() const;
1723
+ inline Local<Object> This() const;
1724
+ inline Local<Object> Holder() const;
1725
+ inline bool IsConstructCall() const;
1726
+ inline Local<Value> Data() const;
1727
+ private:
1728
+ friend class ImplementationUtilities;
1729
+ inline Arguments(Local<Value> data,
1730
+ Local<Object> holder,
1731
+ Local<Function> callee,
1732
+ bool is_construct_call,
1733
+ void** values, int length);
1734
+ Local<Value> data_;
1735
+ Local<Object> holder_;
1736
+ Local<Function> callee_;
1737
+ bool is_construct_call_;
1738
+ void** values_;
1739
+ int length_;
1740
+ };
1741
+
1742
+
1743
+ /**
1744
+ * The information passed to an accessor callback about the context
1745
+ * of the property access.
1746
+ */
1747
+ class V8EXPORT AccessorInfo {
1748
+ public:
1749
+ inline AccessorInfo(internal::Object** args)
1750
+ : args_(args) { }
1751
+ inline Local<Value> Data() const;
1752
+ inline Local<Object> This() const;
1753
+ inline Local<Object> Holder() const;
1754
+ private:
1755
+ internal::Object** args_;
1756
+ };
1757
+
1758
+
1759
+ typedef Handle<Value> (*InvocationCallback)(const Arguments& args);
1760
+
1761
+ typedef int (*LookupCallback)(Local<Object> self, Local<String> name);
1762
+
1763
+ /**
1764
+ * NamedProperty[Getter|Setter] are used as interceptors on object.
1765
+ * See ObjectTemplate::SetNamedPropertyHandler.
1766
+ */
1767
+ typedef Handle<Value> (*NamedPropertyGetter)(Local<String> property,
1768
+ const AccessorInfo& info);
1769
+
1770
+
1771
+ /**
1772
+ * Returns the value if the setter intercepts the request.
1773
+ * Otherwise, returns an empty handle.
1774
+ */
1775
+ typedef Handle<Value> (*NamedPropertySetter)(Local<String> property,
1776
+ Local<Value> value,
1777
+ const AccessorInfo& info);
1778
+
1779
+ /**
1780
+ * Returns a non-empty handle if the interceptor intercepts the request.
1781
+ * The result is an integer encoding property attributes (like v8::None,
1782
+ * v8::DontEnum, etc.)
1783
+ */
1784
+ typedef Handle<Integer> (*NamedPropertyQuery)(Local<String> property,
1785
+ const AccessorInfo& info);
1786
+
1787
+
1788
+ /**
1789
+ * Returns a non-empty handle if the deleter intercepts the request.
1790
+ * The return value is true if the property could be deleted and false
1791
+ * otherwise.
1792
+ */
1793
+ typedef Handle<Boolean> (*NamedPropertyDeleter)(Local<String> property,
1794
+ const AccessorInfo& info);
1795
+
1796
+ /**
1797
+ * Returns an array containing the names of the properties the named
1798
+ * property getter intercepts.
1799
+ */
1800
+ typedef Handle<Array> (*NamedPropertyEnumerator)(const AccessorInfo& info);
1801
+
1802
+
1803
+ /**
1804
+ * Returns the value of the property if the getter intercepts the
1805
+ * request. Otherwise, returns an empty handle.
1806
+ */
1807
+ typedef Handle<Value> (*IndexedPropertyGetter)(uint32_t index,
1808
+ const AccessorInfo& info);
1809
+
1810
+
1811
+ /**
1812
+ * Returns the value if the setter intercepts the request.
1813
+ * Otherwise, returns an empty handle.
1814
+ */
1815
+ typedef Handle<Value> (*IndexedPropertySetter)(uint32_t index,
1816
+ Local<Value> value,
1817
+ const AccessorInfo& info);
1818
+
1819
+
1820
+ /**
1821
+ * Returns a non-empty handle if the interceptor intercepts the request.
1822
+ * The result is true if the property exists and false otherwise.
1823
+ */
1824
+ typedef Handle<Boolean> (*IndexedPropertyQuery)(uint32_t index,
1825
+ const AccessorInfo& info);
1826
+
1827
+ /**
1828
+ * Returns a non-empty handle if the deleter intercepts the request.
1829
+ * The return value is true if the property could be deleted and false
1830
+ * otherwise.
1831
+ */
1832
+ typedef Handle<Boolean> (*IndexedPropertyDeleter)(uint32_t index,
1833
+ const AccessorInfo& info);
1834
+
1835
+ /**
1836
+ * Returns an array containing the indices of the properties the
1837
+ * indexed property getter intercepts.
1838
+ */
1839
+ typedef Handle<Array> (*IndexedPropertyEnumerator)(const AccessorInfo& info);
1840
+
1841
+
1842
+ /**
1843
+ * Access type specification.
1844
+ */
1845
+ enum AccessType {
1846
+ ACCESS_GET,
1847
+ ACCESS_SET,
1848
+ ACCESS_HAS,
1849
+ ACCESS_DELETE,
1850
+ ACCESS_KEYS
1851
+ };
1852
+
1853
+
1854
+ /**
1855
+ * Returns true if cross-context access should be allowed to the named
1856
+ * property with the given key on the host object.
1857
+ */
1858
+ typedef bool (*NamedSecurityCallback)(Local<Object> host,
1859
+ Local<Value> key,
1860
+ AccessType type,
1861
+ Local<Value> data);
1862
+
1863
+
1864
+ /**
1865
+ * Returns true if cross-context access should be allowed to the indexed
1866
+ * property with the given index on the host object.
1867
+ */
1868
+ typedef bool (*IndexedSecurityCallback)(Local<Object> host,
1869
+ uint32_t index,
1870
+ AccessType type,
1871
+ Local<Value> data);
1872
+
1873
+
1874
+ /**
1875
+ * A FunctionTemplate is used to create functions at runtime. There
1876
+ * can only be one function created from a FunctionTemplate in a
1877
+ * context. The lifetime of the created function is equal to the
1878
+ * lifetime of the context. So in case the embedder needs to create
1879
+ * temporary functions that can be collected using Scripts is
1880
+ * preferred.
1881
+ *
1882
+ * A FunctionTemplate can have properties, these properties are added to the
1883
+ * function object when it is created.
1884
+ *
1885
+ * A FunctionTemplate has a corresponding instance template which is
1886
+ * used to create object instances when the function is used as a
1887
+ * constructor. Properties added to the instance template are added to
1888
+ * each object instance.
1889
+ *
1890
+ * A FunctionTemplate can have a prototype template. The prototype template
1891
+ * is used to create the prototype object of the function.
1892
+ *
1893
+ * The following example shows how to use a FunctionTemplate:
1894
+ *
1895
+ * \code
1896
+ * v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New();
1897
+ * t->Set("func_property", v8::Number::New(1));
1898
+ *
1899
+ * v8::Local<v8::Template> proto_t = t->PrototypeTemplate();
1900
+ * proto_t->Set("proto_method", v8::FunctionTemplate::New(InvokeCallback));
1901
+ * proto_t->Set("proto_const", v8::Number::New(2));
1902
+ *
1903
+ * v8::Local<v8::ObjectTemplate> instance_t = t->InstanceTemplate();
1904
+ * instance_t->SetAccessor("instance_accessor", InstanceAccessorCallback);
1905
+ * instance_t->SetNamedPropertyHandler(PropertyHandlerCallback, ...);
1906
+ * instance_t->Set("instance_property", Number::New(3));
1907
+ *
1908
+ * v8::Local<v8::Function> function = t->GetFunction();
1909
+ * v8::Local<v8::Object> instance = function->NewInstance();
1910
+ * \endcode
1911
+ *
1912
+ * Let's use "function" as the JS variable name of the function object
1913
+ * and "instance" for the instance object created above. The function
1914
+ * and the instance will have the following properties:
1915
+ *
1916
+ * \code
1917
+ * func_property in function == true;
1918
+ * function.func_property == 1;
1919
+ *
1920
+ * function.prototype.proto_method() invokes 'InvokeCallback'
1921
+ * function.prototype.proto_const == 2;
1922
+ *
1923
+ * instance instanceof function == true;
1924
+ * instance.instance_accessor calls 'InstanceAccessorCallback'
1925
+ * instance.instance_property == 3;
1926
+ * \endcode
1927
+ *
1928
+ * A FunctionTemplate can inherit from another one by calling the
1929
+ * FunctionTemplate::Inherit method. The following graph illustrates
1930
+ * the semantics of inheritance:
1931
+ *
1932
+ * \code
1933
+ * FunctionTemplate Parent -> Parent() . prototype -> { }
1934
+ * ^ ^
1935
+ * | Inherit(Parent) | .__proto__
1936
+ * | |
1937
+ * FunctionTemplate Child -> Child() . prototype -> { }
1938
+ * \endcode
1939
+ *
1940
+ * A FunctionTemplate 'Child' inherits from 'Parent', the prototype
1941
+ * object of the Child() function has __proto__ pointing to the
1942
+ * Parent() function's prototype object. An instance of the Child
1943
+ * function has all properties on Parent's instance templates.
1944
+ *
1945
+ * Let Parent be the FunctionTemplate initialized in the previous
1946
+ * section and create a Child FunctionTemplate by:
1947
+ *
1948
+ * \code
1949
+ * Local<FunctionTemplate> parent = t;
1950
+ * Local<FunctionTemplate> child = FunctionTemplate::New();
1951
+ * child->Inherit(parent);
1952
+ *
1953
+ * Local<Function> child_function = child->GetFunction();
1954
+ * Local<Object> child_instance = child_function->NewInstance();
1955
+ * \endcode
1956
+ *
1957
+ * The Child function and Child instance will have the following
1958
+ * properties:
1959
+ *
1960
+ * \code
1961
+ * child_func.prototype.__proto__ == function.prototype;
1962
+ * child_instance.instance_accessor calls 'InstanceAccessorCallback'
1963
+ * child_instance.instance_property == 3;
1964
+ * \endcode
1965
+ */
1966
+ class V8EXPORT FunctionTemplate : public Template {
1967
+ public:
1968
+ /** Creates a function template.*/
1969
+ static Local<FunctionTemplate> New(
1970
+ InvocationCallback callback = 0,
1971
+ Handle<Value> data = Handle<Value>(),
1972
+ Handle<Signature> signature = Handle<Signature>());
1973
+ /** Returns the unique function instance in the current execution context.*/
1974
+ Local<Function> GetFunction();
1975
+
1976
+ /**
1977
+ * Set the call-handler callback for a FunctionTemplate. This
1978
+ * callback is called whenever the function created from this
1979
+ * FunctionTemplate is called.
1980
+ */
1981
+ void SetCallHandler(InvocationCallback callback,
1982
+ Handle<Value> data = Handle<Value>());
1983
+
1984
+ /** Get the InstanceTemplate. */
1985
+ Local<ObjectTemplate> InstanceTemplate();
1986
+
1987
+ /** Causes the function template to inherit from a parent function template.*/
1988
+ void Inherit(Handle<FunctionTemplate> parent);
1989
+
1990
+ /**
1991
+ * A PrototypeTemplate is the template used to create the prototype object
1992
+ * of the function created by this template.
1993
+ */
1994
+ Local<ObjectTemplate> PrototypeTemplate();
1995
+
1996
+
1997
+ /**
1998
+ * Set the class name of the FunctionTemplate. This is used for
1999
+ * printing objects created with the function created from the
2000
+ * FunctionTemplate as its constructor.
2001
+ */
2002
+ void SetClassName(Handle<String> name);
2003
+
2004
+ /**
2005
+ * Determines whether the __proto__ accessor ignores instances of
2006
+ * the function template. If instances of the function template are
2007
+ * ignored, __proto__ skips all instances and instead returns the
2008
+ * next object in the prototype chain.
2009
+ *
2010
+ * Call with a value of true to make the __proto__ accessor ignore
2011
+ * instances of the function template. Call with a value of false
2012
+ * to make the __proto__ accessor not ignore instances of the
2013
+ * function template. By default, instances of a function template
2014
+ * are not ignored.
2015
+ */
2016
+ void SetHiddenPrototype(bool value);
2017
+
2018
+ /**
2019
+ * Returns true if the given object is an instance of this function
2020
+ * template.
2021
+ */
2022
+ bool HasInstance(Handle<Value> object);
2023
+
2024
+ private:
2025
+ FunctionTemplate();
2026
+ void AddInstancePropertyAccessor(Handle<String> name,
2027
+ AccessorGetter getter,
2028
+ AccessorSetter setter,
2029
+ Handle<Value> data,
2030
+ AccessControl settings,
2031
+ PropertyAttribute attributes);
2032
+ void SetNamedInstancePropertyHandler(NamedPropertyGetter getter,
2033
+ NamedPropertySetter setter,
2034
+ NamedPropertyQuery query,
2035
+ NamedPropertyDeleter remover,
2036
+ NamedPropertyEnumerator enumerator,
2037
+ Handle<Value> data);
2038
+ void SetIndexedInstancePropertyHandler(IndexedPropertyGetter getter,
2039
+ IndexedPropertySetter setter,
2040
+ IndexedPropertyQuery query,
2041
+ IndexedPropertyDeleter remover,
2042
+ IndexedPropertyEnumerator enumerator,
2043
+ Handle<Value> data);
2044
+ void SetInstanceCallAsFunctionHandler(InvocationCallback callback,
2045
+ Handle<Value> data);
2046
+
2047
+ friend class Context;
2048
+ friend class ObjectTemplate;
2049
+ };
2050
+
2051
+
2052
+ /**
2053
+ * An ObjectTemplate is used to create objects at runtime.
2054
+ *
2055
+ * Properties added to an ObjectTemplate are added to each object
2056
+ * created from the ObjectTemplate.
2057
+ */
2058
+ class V8EXPORT ObjectTemplate : public Template {
2059
+ public:
2060
+ /** Creates an ObjectTemplate. */
2061
+ static Local<ObjectTemplate> New();
2062
+
2063
+ /** Creates a new instance of this template.*/
2064
+ Local<Object> NewInstance();
2065
+
2066
+ /**
2067
+ * Sets an accessor on the object template.
2068
+ *
2069
+ * Whenever the property with the given name is accessed on objects
2070
+ * created from this ObjectTemplate the getter and setter callbacks
2071
+ * are called instead of getting and setting the property directly
2072
+ * on the JavaScript object.
2073
+ *
2074
+ * \param name The name of the property for which an accessor is added.
2075
+ * \param getter The callback to invoke when getting the property.
2076
+ * \param setter The callback to invoke when setting the property.
2077
+ * \param data A piece of data that will be passed to the getter and setter
2078
+ * callbacks whenever they are invoked.
2079
+ * \param settings Access control settings for the accessor. This is a bit
2080
+ * field consisting of one of more of
2081
+ * DEFAULT = 0, ALL_CAN_READ = 1, or ALL_CAN_WRITE = 2.
2082
+ * The default is to not allow cross-context access.
2083
+ * ALL_CAN_READ means that all cross-context reads are allowed.
2084
+ * ALL_CAN_WRITE means that all cross-context writes are allowed.
2085
+ * The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all
2086
+ * cross-context access.
2087
+ * \param attribute The attributes of the property for which an accessor
2088
+ * is added.
2089
+ */
2090
+ void SetAccessor(Handle<String> name,
2091
+ AccessorGetter getter,
2092
+ AccessorSetter setter = 0,
2093
+ Handle<Value> data = Handle<Value>(),
2094
+ AccessControl settings = DEFAULT,
2095
+ PropertyAttribute attribute = None);
2096
+
2097
+ /**
2098
+ * Sets a named property handler on the object template.
2099
+ *
2100
+ * Whenever a named property is accessed on objects created from
2101
+ * this object template, the provided callback is invoked instead of
2102
+ * accessing the property directly on the JavaScript object.
2103
+ *
2104
+ * \param getter The callback to invoke when getting a property.
2105
+ * \param setter The callback to invoke when setting a property.
2106
+ * \param query The callback to invoke to check if a property is present,
2107
+ * and if present, get its attributes.
2108
+ * \param deleter The callback to invoke when deleting a property.
2109
+ * \param enumerator The callback to invoke to enumerate all the named
2110
+ * properties of an object.
2111
+ * \param data A piece of data that will be passed to the callbacks
2112
+ * whenever they are invoked.
2113
+ */
2114
+ void SetNamedPropertyHandler(NamedPropertyGetter getter,
2115
+ NamedPropertySetter setter = 0,
2116
+ NamedPropertyQuery query = 0,
2117
+ NamedPropertyDeleter deleter = 0,
2118
+ NamedPropertyEnumerator enumerator = 0,
2119
+ Handle<Value> data = Handle<Value>());
2120
+
2121
+ /**
2122
+ * Sets an indexed property handler on the object template.
2123
+ *
2124
+ * Whenever an indexed property is accessed on objects created from
2125
+ * this object template, the provided callback is invoked instead of
2126
+ * accessing the property directly on the JavaScript object.
2127
+ *
2128
+ * \param getter The callback to invoke when getting a property.
2129
+ * \param setter The callback to invoke when setting a property.
2130
+ * \param query The callback to invoke to check is an object has a property.
2131
+ * \param deleter The callback to invoke when deleting a property.
2132
+ * \param enumerator The callback to invoke to enumerate all the indexed
2133
+ * properties of an object.
2134
+ * \param data A piece of data that will be passed to the callbacks
2135
+ * whenever they are invoked.
2136
+ */
2137
+ void SetIndexedPropertyHandler(IndexedPropertyGetter getter,
2138
+ IndexedPropertySetter setter = 0,
2139
+ IndexedPropertyQuery query = 0,
2140
+ IndexedPropertyDeleter deleter = 0,
2141
+ IndexedPropertyEnumerator enumerator = 0,
2142
+ Handle<Value> data = Handle<Value>());
2143
+ /**
2144
+ * Sets the callback to be used when calling instances created from
2145
+ * this template as a function. If no callback is set, instances
2146
+ * behave like normal JavaScript objects that cannot be called as a
2147
+ * function.
2148
+ */
2149
+ void SetCallAsFunctionHandler(InvocationCallback callback,
2150
+ Handle<Value> data = Handle<Value>());
2151
+
2152
+ /**
2153
+ * Mark object instances of the template as undetectable.
2154
+ *
2155
+ * In many ways, undetectable objects behave as though they are not
2156
+ * there. They behave like 'undefined' in conditionals and when
2157
+ * printed. However, properties can be accessed and called as on
2158
+ * normal objects.
2159
+ */
2160
+ void MarkAsUndetectable();
2161
+
2162
+ /**
2163
+ * Sets access check callbacks on the object template.
2164
+ *
2165
+ * When accessing properties on instances of this object template,
2166
+ * the access check callback will be called to determine whether or
2167
+ * not to allow cross-context access to the properties.
2168
+ * The last parameter specifies whether access checks are turned
2169
+ * on by default on instances. If access checks are off by default,
2170
+ * they can be turned on on individual instances by calling
2171
+ * Object::TurnOnAccessCheck().
2172
+ */
2173
+ void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,
2174
+ IndexedSecurityCallback indexed_handler,
2175
+ Handle<Value> data = Handle<Value>(),
2176
+ bool turned_on_by_default = true);
2177
+
2178
+ /**
2179
+ * Gets the number of internal fields for objects generated from
2180
+ * this template.
2181
+ */
2182
+ int InternalFieldCount();
2183
+
2184
+ /**
2185
+ * Sets the number of internal fields for objects generated from
2186
+ * this template.
2187
+ */
2188
+ void SetInternalFieldCount(int value);
2189
+
2190
+ private:
2191
+ ObjectTemplate();
2192
+ static Local<ObjectTemplate> New(Handle<FunctionTemplate> constructor);
2193
+ friend class FunctionTemplate;
2194
+ };
2195
+
2196
+
2197
+ /**
2198
+ * A Signature specifies which receivers and arguments a function can
2199
+ * legally be called with.
2200
+ */
2201
+ class V8EXPORT Signature : public Data {
2202
+ public:
2203
+ static Local<Signature> New(Handle<FunctionTemplate> receiver =
2204
+ Handle<FunctionTemplate>(),
2205
+ int argc = 0,
2206
+ Handle<FunctionTemplate> argv[] = 0);
2207
+ private:
2208
+ Signature();
2209
+ };
2210
+
2211
+
2212
+ /**
2213
+ * A utility for determining the type of objects based on the template
2214
+ * they were constructed from.
2215
+ */
2216
+ class V8EXPORT TypeSwitch : public Data {
2217
+ public:
2218
+ static Local<TypeSwitch> New(Handle<FunctionTemplate> type);
2219
+ static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]);
2220
+ int match(Handle<Value> value);
2221
+ private:
2222
+ TypeSwitch();
2223
+ };
2224
+
2225
+
2226
+ // --- E x t e n s i o n s ---
2227
+
2228
+
2229
+ /**
2230
+ * Ignore
2231
+ */
2232
+ class V8EXPORT Extension { // NOLINT
2233
+ public:
2234
+ Extension(const char* name,
2235
+ const char* source = 0,
2236
+ int dep_count = 0,
2237
+ const char** deps = 0);
2238
+ virtual ~Extension() { }
2239
+ virtual v8::Handle<v8::FunctionTemplate>
2240
+ GetNativeFunction(v8::Handle<v8::String> name) {
2241
+ return v8::Handle<v8::FunctionTemplate>();
2242
+ }
2243
+
2244
+ const char* name() { return name_; }
2245
+ const char* source() { return source_; }
2246
+ int dependency_count() { return dep_count_; }
2247
+ const char** dependencies() { return deps_; }
2248
+ void set_auto_enable(bool value) { auto_enable_ = value; }
2249
+ bool auto_enable() { return auto_enable_; }
2250
+
2251
+ private:
2252
+ const char* name_;
2253
+ const char* source_;
2254
+ int dep_count_;
2255
+ const char** deps_;
2256
+ bool auto_enable_;
2257
+
2258
+ // Disallow copying and assigning.
2259
+ Extension(const Extension&);
2260
+ void operator=(const Extension&);
2261
+ };
2262
+
2263
+
2264
+ void V8EXPORT RegisterExtension(Extension* extension);
2265
+
2266
+
2267
+ /**
2268
+ * Ignore
2269
+ */
2270
+ class V8EXPORT DeclareExtension {
2271
+ public:
2272
+ inline DeclareExtension(Extension* extension) {
2273
+ RegisterExtension(extension);
2274
+ }
2275
+ };
2276
+
2277
+
2278
+ // --- S t a t i c s ---
2279
+
2280
+
2281
+ Handle<Primitive> V8EXPORT Undefined();
2282
+ Handle<Primitive> V8EXPORT Null();
2283
+ Handle<Boolean> V8EXPORT True();
2284
+ Handle<Boolean> V8EXPORT False();
2285
+
2286
+
2287
+ /**
2288
+ * A set of constraints that specifies the limits of the runtime's memory use.
2289
+ * You must set the heap size before initializing the VM - the size cannot be
2290
+ * adjusted after the VM is initialized.
2291
+ *
2292
+ * If you are using threads then you should hold the V8::Locker lock while
2293
+ * setting the stack limit and you must set a non-default stack limit separately
2294
+ * for each thread.
2295
+ */
2296
+ class V8EXPORT ResourceConstraints {
2297
+ public:
2298
+ ResourceConstraints();
2299
+ int max_young_space_size() const { return max_young_space_size_; }
2300
+ void set_max_young_space_size(int value) { max_young_space_size_ = value; }
2301
+ int max_old_space_size() const { return max_old_space_size_; }
2302
+ void set_max_old_space_size(int value) { max_old_space_size_ = value; }
2303
+ uint32_t* stack_limit() const { return stack_limit_; }
2304
+ // Sets an address beyond which the VM's stack may not grow.
2305
+ void set_stack_limit(uint32_t* value) { stack_limit_ = value; }
2306
+ private:
2307
+ int max_young_space_size_;
2308
+ int max_old_space_size_;
2309
+ uint32_t* stack_limit_;
2310
+ };
2311
+
2312
+
2313
+ bool V8EXPORT SetResourceConstraints(ResourceConstraints* constraints);
2314
+
2315
+
2316
+ // --- E x c e p t i o n s ---
2317
+
2318
+
2319
+ typedef void (*FatalErrorCallback)(const char* location, const char* message);
2320
+
2321
+
2322
+ typedef void (*MessageCallback)(Handle<Message> message, Handle<Value> data);
2323
+
2324
+
2325
+ /**
2326
+ * Schedules an exception to be thrown when returning to JavaScript. When an
2327
+ * exception has been scheduled it is illegal to invoke any JavaScript
2328
+ * operation; the caller must return immediately and only after the exception
2329
+ * has been handled does it become legal to invoke JavaScript operations.
2330
+ */
2331
+ Handle<Value> V8EXPORT ThrowException(Handle<Value> exception);
2332
+
2333
+ /**
2334
+ * Create new error objects by calling the corresponding error object
2335
+ * constructor with the message.
2336
+ */
2337
+ class V8EXPORT Exception {
2338
+ public:
2339
+ static Local<Value> RangeError(Handle<String> message);
2340
+ static Local<Value> ReferenceError(Handle<String> message);
2341
+ static Local<Value> SyntaxError(Handle<String> message);
2342
+ static Local<Value> TypeError(Handle<String> message);
2343
+ static Local<Value> Error(Handle<String> message);
2344
+ };
2345
+
2346
+
2347
+ // --- C o u n t e r s C a l l b a c k s ---
2348
+
2349
+ typedef int* (*CounterLookupCallback)(const char* name);
2350
+
2351
+ typedef void* (*CreateHistogramCallback)(const char* name,
2352
+ int min,
2353
+ int max,
2354
+ size_t buckets);
2355
+
2356
+ typedef void (*AddHistogramSampleCallback)(void* histogram, int sample);
2357
+
2358
+ // --- F a i l e d A c c e s s C h e c k C a l l b a c k ---
2359
+ typedef void (*FailedAccessCheckCallback)(Local<Object> target,
2360
+ AccessType type,
2361
+ Local<Value> data);
2362
+
2363
+ // --- G a r b a g e C o l l e c t i o n C a l l b a c k s
2364
+
2365
+ /**
2366
+ * Applications can register callback functions which will be called
2367
+ * before and after a garbage collection. Allocations are not
2368
+ * allowed in the callback functions, you therefore cannot manipulate
2369
+ * objects (set or delete properties for example) since it is possible
2370
+ * such operations will result in the allocation of objects.
2371
+ */
2372
+ enum GCType {
2373
+ kGCTypeScavenge = 1 << 0,
2374
+ kGCTypeMarkSweepCompact = 1 << 1,
2375
+ kGCTypeAll = kGCTypeScavenge | kGCTypeMarkSweepCompact
2376
+ };
2377
+
2378
+ enum GCCallbackFlags {
2379
+ kNoGCCallbackFlags = 0,
2380
+ kGCCallbackFlagCompacted = 1 << 0
2381
+ };
2382
+
2383
+ typedef void (*GCPrologueCallback)(GCType type, GCCallbackFlags flags);
2384
+ typedef void (*GCEpilogueCallback)(GCType type, GCCallbackFlags flags);
2385
+
2386
+ typedef void (*GCCallback)();
2387
+
2388
+
2389
+ /**
2390
+ * Profiler modules.
2391
+ *
2392
+ * In V8, profiler consists of several modules: CPU profiler, and different
2393
+ * kinds of heap profiling. Each can be turned on / off independently.
2394
+ * When PROFILER_MODULE_HEAP_SNAPSHOT flag is passed to ResumeProfilerEx,
2395
+ * modules are enabled only temporarily for making a snapshot of the heap.
2396
+ */
2397
+ enum ProfilerModules {
2398
+ PROFILER_MODULE_NONE = 0,
2399
+ PROFILER_MODULE_CPU = 1,
2400
+ PROFILER_MODULE_HEAP_STATS = 1 << 1,
2401
+ PROFILER_MODULE_JS_CONSTRUCTORS = 1 << 2,
2402
+ PROFILER_MODULE_HEAP_SNAPSHOT = 1 << 16
2403
+ };
2404
+
2405
+
2406
+ /**
2407
+ * Collection of V8 heap information.
2408
+ *
2409
+ * Instances of this class can be passed to v8::V8::HeapStatistics to
2410
+ * get heap statistics from V8.
2411
+ */
2412
+ class V8EXPORT HeapStatistics {
2413
+ public:
2414
+ HeapStatistics();
2415
+ size_t total_heap_size() { return total_heap_size_; }
2416
+ size_t used_heap_size() { return used_heap_size_; }
2417
+
2418
+ private:
2419
+ void set_total_heap_size(size_t size) { total_heap_size_ = size; }
2420
+ void set_used_heap_size(size_t size) { used_heap_size_ = size; }
2421
+
2422
+ size_t total_heap_size_;
2423
+ size_t used_heap_size_;
2424
+
2425
+ friend class V8;
2426
+ };
2427
+
2428
+
2429
+ /**
2430
+ * Container class for static utility functions.
2431
+ */
2432
+ class V8EXPORT V8 {
2433
+ public:
2434
+ /** Set the callback to invoke in case of fatal errors. */
2435
+ static void SetFatalErrorHandler(FatalErrorCallback that);
2436
+
2437
+ /**
2438
+ * Ignore out-of-memory exceptions.
2439
+ *
2440
+ * V8 running out of memory is treated as a fatal error by default.
2441
+ * This means that the fatal error handler is called and that V8 is
2442
+ * terminated.
2443
+ *
2444
+ * IgnoreOutOfMemoryException can be used to not treat a
2445
+ * out-of-memory situation as a fatal error. This way, the contexts
2446
+ * that did not cause the out of memory problem might be able to
2447
+ * continue execution.
2448
+ */
2449
+ static void IgnoreOutOfMemoryException();
2450
+
2451
+ /**
2452
+ * Check if V8 is dead and therefore unusable. This is the case after
2453
+ * fatal errors such as out-of-memory situations.
2454
+ */
2455
+ static bool IsDead();
2456
+
2457
+ /**
2458
+ * Adds a message listener.
2459
+ *
2460
+ * The same message listener can be added more than once and it that
2461
+ * case it will be called more than once for each message.
2462
+ */
2463
+ static bool AddMessageListener(MessageCallback that,
2464
+ Handle<Value> data = Handle<Value>());
2465
+
2466
+ /**
2467
+ * Remove all message listeners from the specified callback function.
2468
+ */
2469
+ static void RemoveMessageListeners(MessageCallback that);
2470
+
2471
+ /**
2472
+ * Tells V8 to capture current stack trace when uncaught exception occurs
2473
+ * and report it to the message listeners. The option is off by default.
2474
+ */
2475
+ static void SetCaptureStackTraceForUncaughtExceptions(
2476
+ bool capture,
2477
+ int frame_limit = 10,
2478
+ StackTrace::StackTraceOptions options = StackTrace::kOverview);
2479
+
2480
+ /**
2481
+ * Sets V8 flags from a string.
2482
+ */
2483
+ static void SetFlagsFromString(const char* str, int length);
2484
+
2485
+ /**
2486
+ * Sets V8 flags from the command line.
2487
+ */
2488
+ static void SetFlagsFromCommandLine(int* argc,
2489
+ char** argv,
2490
+ bool remove_flags);
2491
+
2492
+ /** Get the version string. */
2493
+ static const char* GetVersion();
2494
+
2495
+ /**
2496
+ * Enables the host application to provide a mechanism for recording
2497
+ * statistics counters.
2498
+ */
2499
+ static void SetCounterFunction(CounterLookupCallback);
2500
+
2501
+ /**
2502
+ * Enables the host application to provide a mechanism for recording
2503
+ * histograms. The CreateHistogram function returns a
2504
+ * histogram which will later be passed to the AddHistogramSample
2505
+ * function.
2506
+ */
2507
+ static void SetCreateHistogramFunction(CreateHistogramCallback);
2508
+ static void SetAddHistogramSampleFunction(AddHistogramSampleCallback);
2509
+
2510
+ /**
2511
+ * Enables the computation of a sliding window of states. The sliding
2512
+ * window information is recorded in statistics counters.
2513
+ */
2514
+ static void EnableSlidingStateWindow();
2515
+
2516
+ /** Callback function for reporting failed access checks.*/
2517
+ static void SetFailedAccessCheckCallbackFunction(FailedAccessCheckCallback);
2518
+
2519
+ /**
2520
+ * Enables the host application to receive a notification before a
2521
+ * garbage collection. Allocations are not allowed in the
2522
+ * callback function, you therefore cannot manipulate objects (set
2523
+ * or delete properties for example) since it is possible such
2524
+ * operations will result in the allocation of objects. It is possible
2525
+ * to specify the GCType filter for your callback. But it is not possible to
2526
+ * register the same callback function two times with different
2527
+ * GCType filters.
2528
+ */
2529
+ static void AddGCPrologueCallback(
2530
+ GCPrologueCallback callback, GCType gc_type_filter = kGCTypeAll);
2531
+
2532
+ /**
2533
+ * This function removes callback which was installed by
2534
+ * AddGCPrologueCallback function.
2535
+ */
2536
+ static void RemoveGCPrologueCallback(GCPrologueCallback callback);
2537
+
2538
+ /**
2539
+ * The function is deprecated. Please use AddGCPrologueCallback instead.
2540
+ * Enables the host application to receive a notification before a
2541
+ * garbage collection. Allocations are not allowed in the
2542
+ * callback function, you therefore cannot manipulate objects (set
2543
+ * or delete properties for example) since it is possible such
2544
+ * operations will result in the allocation of objects.
2545
+ */
2546
+ static void SetGlobalGCPrologueCallback(GCCallback);
2547
+
2548
+ /**
2549
+ * Enables the host application to receive a notification after a
2550
+ * garbage collection. Allocations are not allowed in the
2551
+ * callback function, you therefore cannot manipulate objects (set
2552
+ * or delete properties for example) since it is possible such
2553
+ * operations will result in the allocation of objects. It is possible
2554
+ * to specify the GCType filter for your callback. But it is not possible to
2555
+ * register the same callback function two times with different
2556
+ * GCType filters.
2557
+ */
2558
+ static void AddGCEpilogueCallback(
2559
+ GCEpilogueCallback callback, GCType gc_type_filter = kGCTypeAll);
2560
+
2561
+ /**
2562
+ * This function removes callback which was installed by
2563
+ * AddGCEpilogueCallback function.
2564
+ */
2565
+ static void RemoveGCEpilogueCallback(GCEpilogueCallback callback);
2566
+
2567
+ /**
2568
+ * The function is deprecated. Please use AddGCEpilogueCallback instead.
2569
+ * Enables the host application to receive a notification after a
2570
+ * major garbage collection. Allocations are not allowed in the
2571
+ * callback function, you therefore cannot manipulate objects (set
2572
+ * or delete properties for example) since it is possible such
2573
+ * operations will result in the allocation of objects.
2574
+ */
2575
+ static void SetGlobalGCEpilogueCallback(GCCallback);
2576
+
2577
+ /**
2578
+ * Allows the host application to group objects together. If one
2579
+ * object in the group is alive, all objects in the group are alive.
2580
+ * After each garbage collection, object groups are removed. It is
2581
+ * intended to be used in the before-garbage-collection callback
2582
+ * function, for instance to simulate DOM tree connections among JS
2583
+ * wrapper objects.
2584
+ */
2585
+ static void AddObjectGroup(Persistent<Value>* objects, size_t length);
2586
+
2587
+ /**
2588
+ * Initializes from snapshot if possible. Otherwise, attempts to
2589
+ * initialize from scratch. This function is called implicitly if
2590
+ * you use the API without calling it first.
2591
+ */
2592
+ static bool Initialize();
2593
+
2594
+ /**
2595
+ * Adjusts the amount of registered external memory. Used to give
2596
+ * V8 an indication of the amount of externally allocated memory
2597
+ * that is kept alive by JavaScript objects. V8 uses this to decide
2598
+ * when to perform global garbage collections. Registering
2599
+ * externally allocated memory will trigger global garbage
2600
+ * collections more often than otherwise in an attempt to garbage
2601
+ * collect the JavaScript objects keeping the externally allocated
2602
+ * memory alive.
2603
+ *
2604
+ * \param change_in_bytes the change in externally allocated memory
2605
+ * that is kept alive by JavaScript objects.
2606
+ * \returns the adjusted value.
2607
+ */
2608
+ static int AdjustAmountOfExternalAllocatedMemory(int change_in_bytes);
2609
+
2610
+ /**
2611
+ * Suspends recording of tick samples in the profiler.
2612
+ * When the V8 profiling mode is enabled (usually via command line
2613
+ * switches) this function suspends recording of tick samples.
2614
+ * Profiling ticks are discarded until ResumeProfiler() is called.
2615
+ *
2616
+ * See also the --prof and --prof_auto command line switches to
2617
+ * enable V8 profiling.
2618
+ */
2619
+ static void PauseProfiler();
2620
+
2621
+ /**
2622
+ * Resumes recording of tick samples in the profiler.
2623
+ * See also PauseProfiler().
2624
+ */
2625
+ static void ResumeProfiler();
2626
+
2627
+ /**
2628
+ * Return whether profiler is currently paused.
2629
+ */
2630
+ static bool IsProfilerPaused();
2631
+
2632
+ /**
2633
+ * Resumes specified profiler modules. Can be called several times to
2634
+ * mark the opening of a profiler events block with the given tag.
2635
+ *
2636
+ * "ResumeProfiler" is equivalent to "ResumeProfilerEx(PROFILER_MODULE_CPU)".
2637
+ * See ProfilerModules enum.
2638
+ *
2639
+ * \param flags Flags specifying profiler modules.
2640
+ * \param tag Profile tag.
2641
+ */
2642
+ static void ResumeProfilerEx(int flags, int tag = 0);
2643
+
2644
+ /**
2645
+ * Pauses specified profiler modules. Each call to "PauseProfilerEx" closes
2646
+ * a block of profiler events opened by a call to "ResumeProfilerEx" with the
2647
+ * same tag value. There is no need for blocks to be properly nested.
2648
+ * The profiler is paused when the last opened block is closed.
2649
+ *
2650
+ * "PauseProfiler" is equivalent to "PauseProfilerEx(PROFILER_MODULE_CPU)".
2651
+ * See ProfilerModules enum.
2652
+ *
2653
+ * \param flags Flags specifying profiler modules.
2654
+ * \param tag Profile tag.
2655
+ */
2656
+ static void PauseProfilerEx(int flags, int tag = 0);
2657
+
2658
+ /**
2659
+ * Returns active (resumed) profiler modules.
2660
+ * See ProfilerModules enum.
2661
+ *
2662
+ * \returns active profiler modules.
2663
+ */
2664
+ static int GetActiveProfilerModules();
2665
+
2666
+ /**
2667
+ * If logging is performed into a memory buffer (via --logfile=*), allows to
2668
+ * retrieve previously written messages. This can be used for retrieving
2669
+ * profiler log data in the application. This function is thread-safe.
2670
+ *
2671
+ * Caller provides a destination buffer that must exist during GetLogLines
2672
+ * call. Only whole log lines are copied into the buffer.
2673
+ *
2674
+ * \param from_pos specified a point in a buffer to read from, 0 is the
2675
+ * beginning of a buffer. It is assumed that caller updates its current
2676
+ * position using returned size value from the previous call.
2677
+ * \param dest_buf destination buffer for log data.
2678
+ * \param max_size size of the destination buffer.
2679
+ * \returns actual size of log data copied into buffer.
2680
+ */
2681
+ static int GetLogLines(int from_pos, char* dest_buf, int max_size);
2682
+
2683
+ /**
2684
+ * The minimum allowed size for a log lines buffer. If the size of
2685
+ * the buffer given will not be enough to hold a line of the maximum
2686
+ * length, an attempt to find a log line end in GetLogLines will
2687
+ * fail, and an empty result will be returned.
2688
+ */
2689
+ static const int kMinimumSizeForLogLinesBuffer = 2048;
2690
+
2691
+ /**
2692
+ * Retrieve the V8 thread id of the calling thread.
2693
+ *
2694
+ * The thread id for a thread should only be retrieved after the V8
2695
+ * lock has been acquired with a Locker object with that thread.
2696
+ */
2697
+ static int GetCurrentThreadId();
2698
+
2699
+ /**
2700
+ * Forcefully terminate execution of a JavaScript thread. This can
2701
+ * be used to terminate long-running scripts.
2702
+ *
2703
+ * TerminateExecution should only be called when then V8 lock has
2704
+ * been acquired with a Locker object. Therefore, in order to be
2705
+ * able to terminate long-running threads, preemption must be
2706
+ * enabled to allow the user of TerminateExecution to acquire the
2707
+ * lock.
2708
+ *
2709
+ * The termination is achieved by throwing an exception that is
2710
+ * uncatchable by JavaScript exception handlers. Termination
2711
+ * exceptions act as if they were caught by a C++ TryCatch exception
2712
+ * handlers. If forceful termination is used, any C++ TryCatch
2713
+ * exception handler that catches an exception should check if that
2714
+ * exception is a termination exception and immediately return if
2715
+ * that is the case. Returning immediately in that case will
2716
+ * continue the propagation of the termination exception if needed.
2717
+ *
2718
+ * The thread id passed to TerminateExecution must have been
2719
+ * obtained by calling GetCurrentThreadId on the thread in question.
2720
+ *
2721
+ * \param thread_id The thread id of the thread to terminate.
2722
+ */
2723
+ static void TerminateExecution(int thread_id);
2724
+
2725
+ /**
2726
+ * Forcefully terminate the current thread of JavaScript execution.
2727
+ *
2728
+ * This method can be used by any thread even if that thread has not
2729
+ * acquired the V8 lock with a Locker object.
2730
+ */
2731
+ static void TerminateExecution();
2732
+
2733
+ /**
2734
+ * Is V8 terminating JavaScript execution.
2735
+ *
2736
+ * Returns true if JavaScript execution is currently terminating
2737
+ * because of a call to TerminateExecution. In that case there are
2738
+ * still JavaScript frames on the stack and the termination
2739
+ * exception is still active.
2740
+ */
2741
+ static bool IsExecutionTerminating();
2742
+
2743
+ /**
2744
+ * Releases any resources used by v8 and stops any utility threads
2745
+ * that may be running. Note that disposing v8 is permanent, it
2746
+ * cannot be reinitialized.
2747
+ *
2748
+ * It should generally not be necessary to dispose v8 before exiting
2749
+ * a process, this should happen automatically. It is only necessary
2750
+ * to use if the process needs the resources taken up by v8.
2751
+ */
2752
+ static bool Dispose();
2753
+
2754
+ /**
2755
+ * Get statistics about the heap memory usage.
2756
+ */
2757
+ static void GetHeapStatistics(HeapStatistics* heap_statistics);
2758
+
2759
+ /**
2760
+ * Optional notification that the embedder is idle.
2761
+ * V8 uses the notification to reduce memory footprint.
2762
+ * This call can be used repeatedly if the embedder remains idle.
2763
+ * Returns true if the embedder should stop calling IdleNotification
2764
+ * until real work has been done. This indicates that V8 has done
2765
+ * as much cleanup as it will be able to do.
2766
+ */
2767
+ static bool IdleNotification();
2768
+
2769
+ /**
2770
+ * Optional notification that the system is running low on memory.
2771
+ * V8 uses these notifications to attempt to free memory.
2772
+ */
2773
+ static void LowMemoryNotification();
2774
+
2775
+ /**
2776
+ * Optional notification that a context has been disposed. V8 uses
2777
+ * these notifications to guide the GC heuristic. Returns the number
2778
+ * of context disposals - including this one - since the last time
2779
+ * V8 had a chance to clean up.
2780
+ */
2781
+ static int ContextDisposedNotification();
2782
+
2783
+ private:
2784
+ V8();
2785
+
2786
+ static internal::Object** GlobalizeReference(internal::Object** handle);
2787
+ static void DisposeGlobal(internal::Object** global_handle);
2788
+ static void MakeWeak(internal::Object** global_handle,
2789
+ void* data,
2790
+ WeakReferenceCallback);
2791
+ static void ClearWeak(internal::Object** global_handle);
2792
+ static bool IsGlobalNearDeath(internal::Object** global_handle);
2793
+ static bool IsGlobalWeak(internal::Object** global_handle);
2794
+
2795
+ template <class T> friend class Handle;
2796
+ template <class T> friend class Local;
2797
+ template <class T> friend class Persistent;
2798
+ friend class Context;
2799
+ };
2800
+
2801
+
2802
+ /**
2803
+ * An external exception handler.
2804
+ */
2805
+ class V8EXPORT TryCatch {
2806
+ public:
2807
+
2808
+ /**
2809
+ * Creates a new try/catch block and registers it with v8.
2810
+ */
2811
+ TryCatch();
2812
+
2813
+ /**
2814
+ * Unregisters and deletes this try/catch block.
2815
+ */
2816
+ ~TryCatch();
2817
+
2818
+ /**
2819
+ * Returns true if an exception has been caught by this try/catch block.
2820
+ */
2821
+ bool HasCaught() const;
2822
+
2823
+ /**
2824
+ * For certain types of exceptions, it makes no sense to continue
2825
+ * execution.
2826
+ *
2827
+ * Currently, the only type of exception that can be caught by a
2828
+ * TryCatch handler and for which it does not make sense to continue
2829
+ * is termination exception. Such exceptions are thrown when the
2830
+ * TerminateExecution methods are called to terminate a long-running
2831
+ * script.
2832
+ *
2833
+ * If CanContinue returns false, the correct action is to perform
2834
+ * any C++ cleanup needed and then return.
2835
+ */
2836
+ bool CanContinue() const;
2837
+
2838
+ /**
2839
+ * Throws the exception caught by this TryCatch in a way that avoids
2840
+ * it being caught again by this same TryCatch. As with ThrowException
2841
+ * it is illegal to execute any JavaScript operations after calling
2842
+ * ReThrow; the caller must return immediately to where the exception
2843
+ * is caught.
2844
+ */
2845
+ Handle<Value> ReThrow();
2846
+
2847
+ /**
2848
+ * Returns the exception caught by this try/catch block. If no exception has
2849
+ * been caught an empty handle is returned.
2850
+ *
2851
+ * The returned handle is valid until this TryCatch block has been destroyed.
2852
+ */
2853
+ Local<Value> Exception() const;
2854
+
2855
+ /**
2856
+ * Returns the .stack property of the thrown object. If no .stack
2857
+ * property is present an empty handle is returned.
2858
+ */
2859
+ Local<Value> StackTrace() const;
2860
+
2861
+ /**
2862
+ * Returns the message associated with this exception. If there is
2863
+ * no message associated an empty handle is returned.
2864
+ *
2865
+ * The returned handle is valid until this TryCatch block has been
2866
+ * destroyed.
2867
+ */
2868
+ Local<v8::Message> Message() const;
2869
+
2870
+ /**
2871
+ * Clears any exceptions that may have been caught by this try/catch block.
2872
+ * After this method has been called, HasCaught() will return false.
2873
+ *
2874
+ * It is not necessary to clear a try/catch block before using it again; if
2875
+ * another exception is thrown the previously caught exception will just be
2876
+ * overwritten. However, it is often a good idea since it makes it easier
2877
+ * to determine which operation threw a given exception.
2878
+ */
2879
+ void Reset();
2880
+
2881
+ /**
2882
+ * Set verbosity of the external exception handler.
2883
+ *
2884
+ * By default, exceptions that are caught by an external exception
2885
+ * handler are not reported. Call SetVerbose with true on an
2886
+ * external exception handler to have exceptions caught by the
2887
+ * handler reported as if they were not caught.
2888
+ */
2889
+ void SetVerbose(bool value);
2890
+
2891
+ /**
2892
+ * Set whether or not this TryCatch should capture a Message object
2893
+ * which holds source information about where the exception
2894
+ * occurred. True by default.
2895
+ */
2896
+ void SetCaptureMessage(bool value);
2897
+
2898
+ private:
2899
+ void* next_;
2900
+ void* exception_;
2901
+ void* message_;
2902
+ bool is_verbose_ : 1;
2903
+ bool can_continue_ : 1;
2904
+ bool capture_message_ : 1;
2905
+ bool rethrow_ : 1;
2906
+
2907
+ friend class v8::internal::Top;
2908
+ };
2909
+
2910
+
2911
+ // --- C o n t e x t ---
2912
+
2913
+
2914
+ /**
2915
+ * Ignore
2916
+ */
2917
+ class V8EXPORT ExtensionConfiguration {
2918
+ public:
2919
+ ExtensionConfiguration(int name_count, const char* names[])
2920
+ : name_count_(name_count), names_(names) { }
2921
+ private:
2922
+ friend class ImplementationUtilities;
2923
+ int name_count_;
2924
+ const char** names_;
2925
+ };
2926
+
2927
+
2928
+ /**
2929
+ * A sandboxed execution context with its own set of built-in objects
2930
+ * and functions.
2931
+ */
2932
+ class V8EXPORT Context {
2933
+ public:
2934
+ /** Returns the global object of the context. */
2935
+ Local<Object> Global();
2936
+
2937
+ /**
2938
+ * Detaches the global object from its context before
2939
+ * the global object can be reused to create a new context.
2940
+ */
2941
+ void DetachGlobal();
2942
+
2943
+ /**
2944
+ * Reattaches a global object to a context. This can be used to
2945
+ * restore the connection between a global object and a context
2946
+ * after DetachGlobal has been called.
2947
+ *
2948
+ * \param global_object The global object to reattach to the
2949
+ * context. For this to work, the global object must be the global
2950
+ * object that was associated with this context before a call to
2951
+ * DetachGlobal.
2952
+ */
2953
+ void ReattachGlobal(Handle<Object> global_object);
2954
+
2955
+ /** Creates a new context.
2956
+ *
2957
+ * Returns a persistent handle to the newly allocated context. This
2958
+ * persistent handle has to be disposed when the context is no
2959
+ * longer used so the context can be garbage collected.
2960
+ */
2961
+ static Persistent<Context> New(
2962
+ ExtensionConfiguration* extensions = NULL,
2963
+ Handle<ObjectTemplate> global_template = Handle<ObjectTemplate>(),
2964
+ Handle<Value> global_object = Handle<Value>());
2965
+
2966
+ /** Returns the last entered context. */
2967
+ static Local<Context> GetEntered();
2968
+
2969
+ /** Returns the context that is on the top of the stack. */
2970
+ static Local<Context> GetCurrent();
2971
+
2972
+ /**
2973
+ * Returns the context of the calling JavaScript code. That is the
2974
+ * context of the top-most JavaScript frame. If there are no
2975
+ * JavaScript frames an empty handle is returned.
2976
+ */
2977
+ static Local<Context> GetCalling();
2978
+
2979
+ /**
2980
+ * Sets the security token for the context. To access an object in
2981
+ * another context, the security tokens must match.
2982
+ */
2983
+ void SetSecurityToken(Handle<Value> token);
2984
+
2985
+ /** Restores the security token to the default value. */
2986
+ void UseDefaultSecurityToken();
2987
+
2988
+ /** Returns the security token of this context.*/
2989
+ Handle<Value> GetSecurityToken();
2990
+
2991
+ /**
2992
+ * Enter this context. After entering a context, all code compiled
2993
+ * and run is compiled and run in this context. If another context
2994
+ * is already entered, this old context is saved so it can be
2995
+ * restored when the new context is exited.
2996
+ */
2997
+ void Enter();
2998
+
2999
+ /**
3000
+ * Exit this context. Exiting the current context restores the
3001
+ * context that was in place when entering the current context.
3002
+ */
3003
+ void Exit();
3004
+
3005
+ /** Returns true if the context has experienced an out of memory situation. */
3006
+ bool HasOutOfMemoryException();
3007
+
3008
+ /** Returns true if V8 has a current context. */
3009
+ static bool InContext();
3010
+
3011
+ /**
3012
+ * Associate an additional data object with the context. This is mainly used
3013
+ * with the debugger to provide additional information on the context through
3014
+ * the debugger API.
3015
+ */
3016
+ void SetData(Handle<String> data);
3017
+ Local<Value> GetData();
3018
+
3019
+ /**
3020
+ * Stack-allocated class which sets the execution context for all
3021
+ * operations executed within a local scope.
3022
+ */
3023
+ class Scope {
3024
+ public:
3025
+ inline Scope(Handle<Context> context) : context_(context) {
3026
+ context_->Enter();
3027
+ }
3028
+ inline ~Scope() { context_->Exit(); }
3029
+ private:
3030
+ Handle<Context> context_;
3031
+ };
3032
+
3033
+ private:
3034
+ friend class Value;
3035
+ friend class Script;
3036
+ friend class Object;
3037
+ friend class Function;
3038
+ };
3039
+
3040
+
3041
+ /**
3042
+ * Multiple threads in V8 are allowed, but only one thread at a time
3043
+ * is allowed to use V8. The definition of 'using V8' includes
3044
+ * accessing handles or holding onto object pointers obtained from V8
3045
+ * handles. It is up to the user of V8 to ensure (perhaps with
3046
+ * locking) that this constraint is not violated.
3047
+ *
3048
+ * If you wish to start using V8 in a thread you can do this by constructing
3049
+ * a v8::Locker object. After the code using V8 has completed for the
3050
+ * current thread you can call the destructor. This can be combined
3051
+ * with C++ scope-based construction as follows:
3052
+ *
3053
+ * \code
3054
+ * ...
3055
+ * {
3056
+ * v8::Locker locker;
3057
+ * ...
3058
+ * // Code using V8 goes here.
3059
+ * ...
3060
+ * } // Destructor called here
3061
+ * \endcode
3062
+ *
3063
+ * If you wish to stop using V8 in a thread A you can do this by either
3064
+ * by destroying the v8::Locker object as above or by constructing a
3065
+ * v8::Unlocker object:
3066
+ *
3067
+ * \code
3068
+ * {
3069
+ * v8::Unlocker unlocker;
3070
+ * ...
3071
+ * // Code not using V8 goes here while V8 can run in another thread.
3072
+ * ...
3073
+ * } // Destructor called here.
3074
+ * \endcode
3075
+ *
3076
+ * The Unlocker object is intended for use in a long-running callback
3077
+ * from V8, where you want to release the V8 lock for other threads to
3078
+ * use.
3079
+ *
3080
+ * The v8::Locker is a recursive lock. That is, you can lock more than
3081
+ * once in a given thread. This can be useful if you have code that can
3082
+ * be called either from code that holds the lock or from code that does
3083
+ * not. The Unlocker is not recursive so you can not have several
3084
+ * Unlockers on the stack at once, and you can not use an Unlocker in a
3085
+ * thread that is not inside a Locker's scope.
3086
+ *
3087
+ * An unlocker will unlock several lockers if it has to and reinstate
3088
+ * the correct depth of locking on its destruction. eg.:
3089
+ *
3090
+ * \code
3091
+ * // V8 not locked.
3092
+ * {
3093
+ * v8::Locker locker;
3094
+ * // V8 locked.
3095
+ * {
3096
+ * v8::Locker another_locker;
3097
+ * // V8 still locked (2 levels).
3098
+ * {
3099
+ * v8::Unlocker unlocker;
3100
+ * // V8 not locked.
3101
+ * }
3102
+ * // V8 locked again (2 levels).
3103
+ * }
3104
+ * // V8 still locked (1 level).
3105
+ * }
3106
+ * // V8 Now no longer locked.
3107
+ * \endcode
3108
+ */
3109
+ class V8EXPORT Unlocker {
3110
+ public:
3111
+ Unlocker();
3112
+ ~Unlocker();
3113
+ };
3114
+
3115
+
3116
+ class V8EXPORT Locker {
3117
+ public:
3118
+ Locker();
3119
+ ~Locker();
3120
+
3121
+ /**
3122
+ * Start preemption.
3123
+ *
3124
+ * When preemption is started, a timer is fired every n milli seconds
3125
+ * that will switch between multiple threads that are in contention
3126
+ * for the V8 lock.
3127
+ */
3128
+ static void StartPreemption(int every_n_ms);
3129
+
3130
+ /**
3131
+ * Stop preemption.
3132
+ */
3133
+ static void StopPreemption();
3134
+
3135
+ /**
3136
+ * Returns whether or not the locker is locked by the current thread.
3137
+ */
3138
+ static bool IsLocked();
3139
+
3140
+ /**
3141
+ * Returns whether v8::Locker is being used by this V8 instance.
3142
+ */
3143
+ static bool IsActive() { return active_; }
3144
+
3145
+ private:
3146
+ bool has_lock_;
3147
+ bool top_level_;
3148
+
3149
+ static bool active_;
3150
+
3151
+ // Disallow copying and assigning.
3152
+ Locker(const Locker&);
3153
+ void operator=(const Locker&);
3154
+ };
3155
+
3156
+
3157
+
3158
+ // --- I m p l e m e n t a t i o n ---
3159
+
3160
+
3161
+ namespace internal {
3162
+
3163
+
3164
+ // Tag information for HeapObject.
3165
+ const int kHeapObjectTag = 1;
3166
+ const int kHeapObjectTagSize = 2;
3167
+ const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1;
3168
+
3169
+ // Tag information for Smi.
3170
+ const int kSmiTag = 0;
3171
+ const int kSmiTagSize = 1;
3172
+ const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1;
3173
+
3174
+ template <size_t ptr_size> struct SmiConstants;
3175
+
3176
+ // Smi constants for 32-bit systems.
3177
+ template <> struct SmiConstants<4> {
3178
+ static const int kSmiShiftSize = 0;
3179
+ static const int kSmiValueSize = 31;
3180
+ static inline int SmiToInt(internal::Object* value) {
3181
+ int shift_bits = kSmiTagSize + kSmiShiftSize;
3182
+ // Throw away top 32 bits and shift down (requires >> to be sign extending).
3183
+ return static_cast<int>(reinterpret_cast<intptr_t>(value)) >> shift_bits;
3184
+ }
3185
+ };
3186
+
3187
+ // Smi constants for 64-bit systems.
3188
+ template <> struct SmiConstants<8> {
3189
+ static const int kSmiShiftSize = 31;
3190
+ static const int kSmiValueSize = 32;
3191
+ static inline int SmiToInt(internal::Object* value) {
3192
+ int shift_bits = kSmiTagSize + kSmiShiftSize;
3193
+ // Shift down and throw away top 32 bits.
3194
+ return static_cast<int>(reinterpret_cast<intptr_t>(value) >> shift_bits);
3195
+ }
3196
+ };
3197
+
3198
+ const int kSmiShiftSize = SmiConstants<sizeof(void*)>::kSmiShiftSize;
3199
+ const int kSmiValueSize = SmiConstants<sizeof(void*)>::kSmiValueSize;
3200
+
3201
+ template <size_t ptr_size> struct InternalConstants;
3202
+
3203
+ // Internal constants for 32-bit systems.
3204
+ template <> struct InternalConstants<4> {
3205
+ static const int kStringResourceOffset = 3 * sizeof(void*);
3206
+ };
3207
+
3208
+ // Internal constants for 64-bit systems.
3209
+ template <> struct InternalConstants<8> {
3210
+ static const int kStringResourceOffset = 3 * sizeof(void*);
3211
+ };
3212
+
3213
+ /**
3214
+ * This class exports constants and functionality from within v8 that
3215
+ * is necessary to implement inline functions in the v8 api. Don't
3216
+ * depend on functions and constants defined here.
3217
+ */
3218
+ class Internals {
3219
+ public:
3220
+
3221
+ // These values match non-compiler-dependent values defined within
3222
+ // the implementation of v8.
3223
+ static const int kHeapObjectMapOffset = 0;
3224
+ static const int kMapInstanceTypeOffset = sizeof(void*) + sizeof(int);
3225
+ static const int kStringResourceOffset =
3226
+ InternalConstants<sizeof(void*)>::kStringResourceOffset;
3227
+
3228
+ static const int kProxyProxyOffset = sizeof(void*);
3229
+ static const int kJSObjectHeaderSize = 3 * sizeof(void*);
3230
+ static const int kFullStringRepresentationMask = 0x07;
3231
+ static const int kExternalTwoByteRepresentationTag = 0x02;
3232
+
3233
+ static const int kJSObjectType = 0x9f;
3234
+ static const int kFirstNonstringType = 0x80;
3235
+ static const int kProxyType = 0x85;
3236
+
3237
+ static inline bool HasHeapObjectTag(internal::Object* value) {
3238
+ return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) ==
3239
+ kHeapObjectTag);
3240
+ }
3241
+
3242
+ static inline bool HasSmiTag(internal::Object* value) {
3243
+ return ((reinterpret_cast<intptr_t>(value) & kSmiTagMask) == kSmiTag);
3244
+ }
3245
+
3246
+ static inline int SmiValue(internal::Object* value) {
3247
+ return SmiConstants<sizeof(void*)>::SmiToInt(value);
3248
+ }
3249
+
3250
+ static inline int GetInstanceType(internal::Object* obj) {
3251
+ typedef internal::Object O;
3252
+ O* map = ReadField<O*>(obj, kHeapObjectMapOffset);
3253
+ return ReadField<uint8_t>(map, kMapInstanceTypeOffset);
3254
+ }
3255
+
3256
+ static inline void* GetExternalPointer(internal::Object* obj) {
3257
+ if (HasSmiTag(obj)) {
3258
+ return obj;
3259
+ } else if (GetInstanceType(obj) == kProxyType) {
3260
+ return ReadField<void*>(obj, kProxyProxyOffset);
3261
+ } else {
3262
+ return NULL;
3263
+ }
3264
+ }
3265
+
3266
+ static inline bool IsExternalTwoByteString(int instance_type) {
3267
+ int representation = (instance_type & kFullStringRepresentationMask);
3268
+ return representation == kExternalTwoByteRepresentationTag;
3269
+ }
3270
+
3271
+ template <typename T>
3272
+ static inline T ReadField(Object* ptr, int offset) {
3273
+ uint8_t* addr = reinterpret_cast<uint8_t*>(ptr) + offset - kHeapObjectTag;
3274
+ return *reinterpret_cast<T*>(addr);
3275
+ }
3276
+
3277
+ };
3278
+
3279
+ }
3280
+
3281
+
3282
+ template <class T>
3283
+ Handle<T>::Handle() : val_(0) { }
3284
+
3285
+
3286
+ template <class T>
3287
+ Local<T>::Local() : Handle<T>() { }
3288
+
3289
+
3290
+ template <class T>
3291
+ Local<T> Local<T>::New(Handle<T> that) {
3292
+ if (that.IsEmpty()) return Local<T>();
3293
+ internal::Object** p = reinterpret_cast<internal::Object**>(*that);
3294
+ return Local<T>(reinterpret_cast<T*>(HandleScope::CreateHandle(*p)));
3295
+ }
3296
+
3297
+
3298
+ template <class T>
3299
+ Persistent<T> Persistent<T>::New(Handle<T> that) {
3300
+ if (that.IsEmpty()) return Persistent<T>();
3301
+ internal::Object** p = reinterpret_cast<internal::Object**>(*that);
3302
+ return Persistent<T>(reinterpret_cast<T*>(V8::GlobalizeReference(p)));
3303
+ }
3304
+
3305
+
3306
+ template <class T>
3307
+ bool Persistent<T>::IsNearDeath() const {
3308
+ if (this->IsEmpty()) return false;
3309
+ return V8::IsGlobalNearDeath(reinterpret_cast<internal::Object**>(**this));
3310
+ }
3311
+
3312
+
3313
+ template <class T>
3314
+ bool Persistent<T>::IsWeak() const {
3315
+ if (this->IsEmpty()) return false;
3316
+ return V8::IsGlobalWeak(reinterpret_cast<internal::Object**>(**this));
3317
+ }
3318
+
3319
+
3320
+ template <class T>
3321
+ void Persistent<T>::Dispose() {
3322
+ if (this->IsEmpty()) return;
3323
+ V8::DisposeGlobal(reinterpret_cast<internal::Object**>(**this));
3324
+ }
3325
+
3326
+
3327
+ template <class T>
3328
+ Persistent<T>::Persistent() : Handle<T>() { }
3329
+
3330
+ template <class T>
3331
+ void Persistent<T>::MakeWeak(void* parameters, WeakReferenceCallback callback) {
3332
+ V8::MakeWeak(reinterpret_cast<internal::Object**>(**this),
3333
+ parameters,
3334
+ callback);
3335
+ }
3336
+
3337
+ template <class T>
3338
+ void Persistent<T>::ClearWeak() {
3339
+ V8::ClearWeak(reinterpret_cast<internal::Object**>(**this));
3340
+ }
3341
+
3342
+
3343
+ Arguments::Arguments(v8::Local<v8::Value> data,
3344
+ v8::Local<v8::Object> holder,
3345
+ v8::Local<v8::Function> callee,
3346
+ bool is_construct_call,
3347
+ void** values, int length)
3348
+ : data_(data), holder_(holder), callee_(callee),
3349
+ is_construct_call_(is_construct_call),
3350
+ values_(values), length_(length) { }
3351
+
3352
+
3353
+ Local<Value> Arguments::operator[](int i) const {
3354
+ if (i < 0 || length_ <= i) return Local<Value>(*Undefined());
3355
+ return Local<Value>(reinterpret_cast<Value*>(values_ - i));
3356
+ }
3357
+
3358
+
3359
+ Local<Function> Arguments::Callee() const {
3360
+ return callee_;
3361
+ }
3362
+
3363
+
3364
+ Local<Object> Arguments::This() const {
3365
+ return Local<Object>(reinterpret_cast<Object*>(values_ + 1));
3366
+ }
3367
+
3368
+
3369
+ Local<Object> Arguments::Holder() const {
3370
+ return holder_;
3371
+ }
3372
+
3373
+
3374
+ Local<Value> Arguments::Data() const {
3375
+ return data_;
3376
+ }
3377
+
3378
+
3379
+ bool Arguments::IsConstructCall() const {
3380
+ return is_construct_call_;
3381
+ }
3382
+
3383
+
3384
+ int Arguments::Length() const {
3385
+ return length_;
3386
+ }
3387
+
3388
+
3389
+ template <class T>
3390
+ Local<T> HandleScope::Close(Handle<T> value) {
3391
+ internal::Object** before = reinterpret_cast<internal::Object**>(*value);
3392
+ internal::Object** after = RawClose(before);
3393
+ return Local<T>(reinterpret_cast<T*>(after));
3394
+ }
3395
+
3396
+ Handle<Value> ScriptOrigin::ResourceName() const {
3397
+ return resource_name_;
3398
+ }
3399
+
3400
+
3401
+ Handle<Integer> ScriptOrigin::ResourceLineOffset() const {
3402
+ return resource_line_offset_;
3403
+ }
3404
+
3405
+
3406
+ Handle<Integer> ScriptOrigin::ResourceColumnOffset() const {
3407
+ return resource_column_offset_;
3408
+ }
3409
+
3410
+
3411
+ Handle<Boolean> Boolean::New(bool value) {
3412
+ return value ? True() : False();
3413
+ }
3414
+
3415
+
3416
+ void Template::Set(const char* name, v8::Handle<Data> value) {
3417
+ Set(v8::String::New(name), value);
3418
+ }
3419
+
3420
+
3421
+ Local<Value> Object::GetInternalField(int index) {
3422
+ #ifndef V8_ENABLE_CHECKS
3423
+ Local<Value> quick_result = UncheckedGetInternalField(index);
3424
+ if (!quick_result.IsEmpty()) return quick_result;
3425
+ #endif
3426
+ return CheckedGetInternalField(index);
3427
+ }
3428
+
3429
+
3430
+ Local<Value> Object::UncheckedGetInternalField(int index) {
3431
+ typedef internal::Object O;
3432
+ typedef internal::Internals I;
3433
+ O* obj = *reinterpret_cast<O**>(this);
3434
+ if (I::GetInstanceType(obj) == I::kJSObjectType) {
3435
+ // If the object is a plain JSObject, which is the common case,
3436
+ // we know where to find the internal fields and can return the
3437
+ // value directly.
3438
+ int offset = I::kJSObjectHeaderSize + (sizeof(void*) * index);
3439
+ O* value = I::ReadField<O*>(obj, offset);
3440
+ O** result = HandleScope::CreateHandle(value);
3441
+ return Local<Value>(reinterpret_cast<Value*>(result));
3442
+ } else {
3443
+ return Local<Value>();
3444
+ }
3445
+ }
3446
+
3447
+
3448
+ void* External::Unwrap(Handle<v8::Value> obj) {
3449
+ #ifdef V8_ENABLE_CHECKS
3450
+ return FullUnwrap(obj);
3451
+ #else
3452
+ return QuickUnwrap(obj);
3453
+ #endif
3454
+ }
3455
+
3456
+
3457
+ void* External::QuickUnwrap(Handle<v8::Value> wrapper) {
3458
+ typedef internal::Object O;
3459
+ O* obj = *reinterpret_cast<O**>(const_cast<v8::Value*>(*wrapper));
3460
+ return internal::Internals::GetExternalPointer(obj);
3461
+ }
3462
+
3463
+
3464
+ void* Object::GetPointerFromInternalField(int index) {
3465
+ typedef internal::Object O;
3466
+ typedef internal::Internals I;
3467
+
3468
+ O* obj = *reinterpret_cast<O**>(this);
3469
+
3470
+ if (I::GetInstanceType(obj) == I::kJSObjectType) {
3471
+ // If the object is a plain JSObject, which is the common case,
3472
+ // we know where to find the internal fields and can return the
3473
+ // value directly.
3474
+ int offset = I::kJSObjectHeaderSize + (sizeof(void*) * index);
3475
+ O* value = I::ReadField<O*>(obj, offset);
3476
+ return I::GetExternalPointer(value);
3477
+ }
3478
+
3479
+ return SlowGetPointerFromInternalField(index);
3480
+ }
3481
+
3482
+
3483
+ String* String::Cast(v8::Value* value) {
3484
+ #ifdef V8_ENABLE_CHECKS
3485
+ CheckCast(value);
3486
+ #endif
3487
+ return static_cast<String*>(value);
3488
+ }
3489
+
3490
+
3491
+ String::ExternalStringResource* String::GetExternalStringResource() const {
3492
+ typedef internal::Object O;
3493
+ typedef internal::Internals I;
3494
+ O* obj = *reinterpret_cast<O**>(const_cast<String*>(this));
3495
+ String::ExternalStringResource* result;
3496
+ if (I::IsExternalTwoByteString(I::GetInstanceType(obj))) {
3497
+ void* value = I::ReadField<void*>(obj, I::kStringResourceOffset);
3498
+ result = reinterpret_cast<String::ExternalStringResource*>(value);
3499
+ } else {
3500
+ result = NULL;
3501
+ }
3502
+ #ifdef V8_ENABLE_CHECKS
3503
+ VerifyExternalStringResource(result);
3504
+ #endif
3505
+ return result;
3506
+ }
3507
+
3508
+
3509
+ bool Value::IsString() const {
3510
+ #ifdef V8_ENABLE_CHECKS
3511
+ return FullIsString();
3512
+ #else
3513
+ return QuickIsString();
3514
+ #endif
3515
+ }
3516
+
3517
+ bool Value::QuickIsString() const {
3518
+ typedef internal::Object O;
3519
+ typedef internal::Internals I;
3520
+ O* obj = *reinterpret_cast<O**>(const_cast<Value*>(this));
3521
+ if (!I::HasHeapObjectTag(obj)) return false;
3522
+ return (I::GetInstanceType(obj) < I::kFirstNonstringType);
3523
+ }
3524
+
3525
+
3526
+ Number* Number::Cast(v8::Value* value) {
3527
+ #ifdef V8_ENABLE_CHECKS
3528
+ CheckCast(value);
3529
+ #endif
3530
+ return static_cast<Number*>(value);
3531
+ }
3532
+
3533
+
3534
+ Integer* Integer::Cast(v8::Value* value) {
3535
+ #ifdef V8_ENABLE_CHECKS
3536
+ CheckCast(value);
3537
+ #endif
3538
+ return static_cast<Integer*>(value);
3539
+ }
3540
+
3541
+
3542
+ Date* Date::Cast(v8::Value* value) {
3543
+ #ifdef V8_ENABLE_CHECKS
3544
+ CheckCast(value);
3545
+ #endif
3546
+ return static_cast<Date*>(value);
3547
+ }
3548
+
3549
+
3550
+ Object* Object::Cast(v8::Value* value) {
3551
+ #ifdef V8_ENABLE_CHECKS
3552
+ CheckCast(value);
3553
+ #endif
3554
+ return static_cast<Object*>(value);
3555
+ }
3556
+
3557
+
3558
+ Array* Array::Cast(v8::Value* value) {
3559
+ #ifdef V8_ENABLE_CHECKS
3560
+ CheckCast(value);
3561
+ #endif
3562
+ return static_cast<Array*>(value);
3563
+ }
3564
+
3565
+
3566
+ Function* Function::Cast(v8::Value* value) {
3567
+ #ifdef V8_ENABLE_CHECKS
3568
+ CheckCast(value);
3569
+ #endif
3570
+ return static_cast<Function*>(value);
3571
+ }
3572
+
3573
+
3574
+ External* External::Cast(v8::Value* value) {
3575
+ #ifdef V8_ENABLE_CHECKS
3576
+ CheckCast(value);
3577
+ #endif
3578
+ return static_cast<External*>(value);
3579
+ }
3580
+
3581
+
3582
+ Local<Value> AccessorInfo::Data() const {
3583
+ return Local<Value>(reinterpret_cast<Value*>(&args_[-2]));
3584
+ }
3585
+
3586
+
3587
+ Local<Object> AccessorInfo::This() const {
3588
+ return Local<Object>(reinterpret_cast<Object*>(&args_[0]));
3589
+ }
3590
+
3591
+
3592
+ Local<Object> AccessorInfo::Holder() const {
3593
+ return Local<Object>(reinterpret_cast<Object*>(&args_[-1]));
3594
+ }
3595
+
3596
+
3597
+ /**
3598
+ * \example shell.cc
3599
+ * A simple shell that takes a list of expressions on the
3600
+ * command-line and executes them.
3601
+ */
3602
+
3603
+
3604
+ /**
3605
+ * \example process.cc
3606
+ */
3607
+
3608
+
3609
+ } // namespace v8
3610
+
3611
+
3612
+ #undef V8EXPORT
3613
+ #undef TYPE_CHECK
3614
+
3615
+
3616
+ #endif // V8_H_