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,3333 @@
1
+ // Copyright 2006-2008 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
+ // Review notes:
29
+ //
30
+ // - The use of macros in these inline functions may seem superfluous
31
+ // but it is absolutely needed to make sure gcc generates optimal
32
+ // code. gcc is not happy when attempting to inline too deep.
33
+ //
34
+
35
+ #ifndef V8_OBJECTS_INL_H_
36
+ #define V8_OBJECTS_INL_H_
37
+
38
+ #include "objects.h"
39
+ #include "contexts.h"
40
+ #include "conversions-inl.h"
41
+ #include "property.h"
42
+
43
+ namespace v8 {
44
+ namespace internal {
45
+
46
+ PropertyDetails::PropertyDetails(Smi* smi) {
47
+ value_ = smi->value();
48
+ }
49
+
50
+
51
+ Smi* PropertyDetails::AsSmi() {
52
+ return Smi::FromInt(value_);
53
+ }
54
+
55
+
56
+ PropertyDetails PropertyDetails::AsDeleted() {
57
+ PropertyDetails d(DONT_ENUM, NORMAL);
58
+ Smi* smi = Smi::FromInt(AsSmi()->value() | DeletedField::encode(1));
59
+ return PropertyDetails(smi);
60
+ }
61
+
62
+
63
+ #define CAST_ACCESSOR(type) \
64
+ type* type::cast(Object* object) { \
65
+ ASSERT(object->Is##type()); \
66
+ return reinterpret_cast<type*>(object); \
67
+ }
68
+
69
+
70
+ #define INT_ACCESSORS(holder, name, offset) \
71
+ int holder::name() { return READ_INT_FIELD(this, offset); } \
72
+ void holder::set_##name(int value) { WRITE_INT_FIELD(this, offset, value); }
73
+
74
+
75
+ #define ACCESSORS(holder, name, type, offset) \
76
+ type* holder::name() { return type::cast(READ_FIELD(this, offset)); } \
77
+ void holder::set_##name(type* value, WriteBarrierMode mode) { \
78
+ WRITE_FIELD(this, offset, value); \
79
+ CONDITIONAL_WRITE_BARRIER(this, offset, mode); \
80
+ }
81
+
82
+
83
+
84
+ #define SMI_ACCESSORS(holder, name, offset) \
85
+ int holder::name() { \
86
+ Object* value = READ_FIELD(this, offset); \
87
+ return Smi::cast(value)->value(); \
88
+ } \
89
+ void holder::set_##name(int value) { \
90
+ WRITE_FIELD(this, offset, Smi::FromInt(value)); \
91
+ }
92
+
93
+
94
+ #define BOOL_GETTER(holder, field, name, offset) \
95
+ bool holder::name() { \
96
+ return BooleanBit::get(field(), offset); \
97
+ } \
98
+
99
+
100
+ #define BOOL_ACCESSORS(holder, field, name, offset) \
101
+ bool holder::name() { \
102
+ return BooleanBit::get(field(), offset); \
103
+ } \
104
+ void holder::set_##name(bool value) { \
105
+ set_##field(BooleanBit::set(field(), offset, value)); \
106
+ }
107
+
108
+
109
+ bool Object::IsInstanceOf(FunctionTemplateInfo* expected) {
110
+ // There is a constraint on the object; check.
111
+ if (!this->IsJSObject()) return false;
112
+ // Fetch the constructor function of the object.
113
+ Object* cons_obj = JSObject::cast(this)->map()->constructor();
114
+ if (!cons_obj->IsJSFunction()) return false;
115
+ JSFunction* fun = JSFunction::cast(cons_obj);
116
+ // Iterate through the chain of inheriting function templates to
117
+ // see if the required one occurs.
118
+ for (Object* type = fun->shared()->function_data();
119
+ type->IsFunctionTemplateInfo();
120
+ type = FunctionTemplateInfo::cast(type)->parent_template()) {
121
+ if (type == expected) return true;
122
+ }
123
+ // Didn't find the required type in the inheritance chain.
124
+ return false;
125
+ }
126
+
127
+
128
+ bool Object::IsSmi() {
129
+ return HAS_SMI_TAG(this);
130
+ }
131
+
132
+
133
+ bool Object::IsHeapObject() {
134
+ return Internals::HasHeapObjectTag(this);
135
+ }
136
+
137
+
138
+ bool Object::IsHeapNumber() {
139
+ return Object::IsHeapObject()
140
+ && HeapObject::cast(this)->map()->instance_type() == HEAP_NUMBER_TYPE;
141
+ }
142
+
143
+
144
+ bool Object::IsString() {
145
+ return Object::IsHeapObject()
146
+ && HeapObject::cast(this)->map()->instance_type() < FIRST_NONSTRING_TYPE;
147
+ }
148
+
149
+
150
+ bool Object::IsSymbol() {
151
+ if (!this->IsHeapObject()) return false;
152
+ uint32_t type = HeapObject::cast(this)->map()->instance_type();
153
+ // Because the symbol tag is non-zero and no non-string types have the
154
+ // symbol bit set we can test for symbols with a very simple test
155
+ // operation.
156
+ ASSERT(kSymbolTag != 0);
157
+ ASSERT(kNotStringTag + kIsSymbolMask > LAST_TYPE);
158
+ return (type & kIsSymbolMask) != 0;
159
+ }
160
+
161
+
162
+ bool Object::IsConsString() {
163
+ if (!this->IsHeapObject()) return false;
164
+ uint32_t type = HeapObject::cast(this)->map()->instance_type();
165
+ return (type & (kIsNotStringMask | kStringRepresentationMask)) ==
166
+ (kStringTag | kConsStringTag);
167
+ }
168
+
169
+
170
+ bool Object::IsSeqString() {
171
+ if (!IsString()) return false;
172
+ return StringShape(String::cast(this)).IsSequential();
173
+ }
174
+
175
+
176
+ bool Object::IsSeqAsciiString() {
177
+ if (!IsString()) return false;
178
+ return StringShape(String::cast(this)).IsSequential() &&
179
+ String::cast(this)->IsAsciiRepresentation();
180
+ }
181
+
182
+
183
+ bool Object::IsSeqTwoByteString() {
184
+ if (!IsString()) return false;
185
+ return StringShape(String::cast(this)).IsSequential() &&
186
+ String::cast(this)->IsTwoByteRepresentation();
187
+ }
188
+
189
+
190
+ bool Object::IsExternalString() {
191
+ if (!IsString()) return false;
192
+ return StringShape(String::cast(this)).IsExternal();
193
+ }
194
+
195
+
196
+ bool Object::IsExternalAsciiString() {
197
+ if (!IsString()) return false;
198
+ return StringShape(String::cast(this)).IsExternal() &&
199
+ String::cast(this)->IsAsciiRepresentation();
200
+ }
201
+
202
+
203
+ bool Object::IsExternalTwoByteString() {
204
+ if (!IsString()) return false;
205
+ return StringShape(String::cast(this)).IsExternal() &&
206
+ String::cast(this)->IsTwoByteRepresentation();
207
+ }
208
+
209
+
210
+ StringShape::StringShape(String* str)
211
+ : type_(str->map()->instance_type()) {
212
+ set_valid();
213
+ ASSERT((type_ & kIsNotStringMask) == kStringTag);
214
+ }
215
+
216
+
217
+ StringShape::StringShape(Map* map)
218
+ : type_(map->instance_type()) {
219
+ set_valid();
220
+ ASSERT((type_ & kIsNotStringMask) == kStringTag);
221
+ }
222
+
223
+
224
+ StringShape::StringShape(InstanceType t)
225
+ : type_(static_cast<uint32_t>(t)) {
226
+ set_valid();
227
+ ASSERT((type_ & kIsNotStringMask) == kStringTag);
228
+ }
229
+
230
+
231
+ bool StringShape::IsSymbol() {
232
+ ASSERT(valid());
233
+ ASSERT(kSymbolTag != 0);
234
+ return (type_ & kIsSymbolMask) != 0;
235
+ }
236
+
237
+
238
+ bool String::IsAsciiRepresentation() {
239
+ uint32_t type = map()->instance_type();
240
+ return (type & kStringEncodingMask) == kAsciiStringTag;
241
+ }
242
+
243
+
244
+ bool String::IsTwoByteRepresentation() {
245
+ uint32_t type = map()->instance_type();
246
+ return (type & kStringEncodingMask) == kTwoByteStringTag;
247
+ }
248
+
249
+
250
+ bool String::HasOnlyAsciiChars() {
251
+ uint32_t type = map()->instance_type();
252
+ return (type & kStringEncodingMask) == kAsciiStringTag ||
253
+ (type & kAsciiDataHintMask) == kAsciiDataHintTag;
254
+ }
255
+
256
+
257
+ bool StringShape::IsCons() {
258
+ return (type_ & kStringRepresentationMask) == kConsStringTag;
259
+ }
260
+
261
+
262
+ bool StringShape::IsExternal() {
263
+ return (type_ & kStringRepresentationMask) == kExternalStringTag;
264
+ }
265
+
266
+
267
+ bool StringShape::IsSequential() {
268
+ return (type_ & kStringRepresentationMask) == kSeqStringTag;
269
+ }
270
+
271
+
272
+ StringRepresentationTag StringShape::representation_tag() {
273
+ uint32_t tag = (type_ & kStringRepresentationMask);
274
+ return static_cast<StringRepresentationTag>(tag);
275
+ }
276
+
277
+
278
+ uint32_t StringShape::full_representation_tag() {
279
+ return (type_ & (kStringRepresentationMask | kStringEncodingMask));
280
+ }
281
+
282
+
283
+ STATIC_CHECK((kStringRepresentationMask | kStringEncodingMask) ==
284
+ Internals::kFullStringRepresentationMask);
285
+
286
+
287
+ bool StringShape::IsSequentialAscii() {
288
+ return full_representation_tag() == (kSeqStringTag | kAsciiStringTag);
289
+ }
290
+
291
+
292
+ bool StringShape::IsSequentialTwoByte() {
293
+ return full_representation_tag() == (kSeqStringTag | kTwoByteStringTag);
294
+ }
295
+
296
+
297
+ bool StringShape::IsExternalAscii() {
298
+ return full_representation_tag() == (kExternalStringTag | kAsciiStringTag);
299
+ }
300
+
301
+
302
+ bool StringShape::IsExternalTwoByte() {
303
+ return full_representation_tag() == (kExternalStringTag | kTwoByteStringTag);
304
+ }
305
+
306
+
307
+ STATIC_CHECK((kExternalStringTag | kTwoByteStringTag) ==
308
+ Internals::kExternalTwoByteRepresentationTag);
309
+
310
+
311
+ uc32 FlatStringReader::Get(int index) {
312
+ ASSERT(0 <= index && index <= length_);
313
+ if (is_ascii_) {
314
+ return static_cast<const byte*>(start_)[index];
315
+ } else {
316
+ return static_cast<const uc16*>(start_)[index];
317
+ }
318
+ }
319
+
320
+
321
+ bool Object::IsNumber() {
322
+ return IsSmi() || IsHeapNumber();
323
+ }
324
+
325
+
326
+ bool Object::IsByteArray() {
327
+ return Object::IsHeapObject()
328
+ && HeapObject::cast(this)->map()->instance_type() == BYTE_ARRAY_TYPE;
329
+ }
330
+
331
+
332
+ bool Object::IsPixelArray() {
333
+ return Object::IsHeapObject() &&
334
+ HeapObject::cast(this)->map()->instance_type() == PIXEL_ARRAY_TYPE;
335
+ }
336
+
337
+
338
+ bool Object::IsExternalArray() {
339
+ if (!Object::IsHeapObject())
340
+ return false;
341
+ InstanceType instance_type =
342
+ HeapObject::cast(this)->map()->instance_type();
343
+ return (instance_type >= FIRST_EXTERNAL_ARRAY_TYPE &&
344
+ instance_type <= LAST_EXTERNAL_ARRAY_TYPE);
345
+ }
346
+
347
+
348
+ bool Object::IsExternalByteArray() {
349
+ return Object::IsHeapObject() &&
350
+ HeapObject::cast(this)->map()->instance_type() ==
351
+ EXTERNAL_BYTE_ARRAY_TYPE;
352
+ }
353
+
354
+
355
+ bool Object::IsExternalUnsignedByteArray() {
356
+ return Object::IsHeapObject() &&
357
+ HeapObject::cast(this)->map()->instance_type() ==
358
+ EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE;
359
+ }
360
+
361
+
362
+ bool Object::IsExternalShortArray() {
363
+ return Object::IsHeapObject() &&
364
+ HeapObject::cast(this)->map()->instance_type() ==
365
+ EXTERNAL_SHORT_ARRAY_TYPE;
366
+ }
367
+
368
+
369
+ bool Object::IsExternalUnsignedShortArray() {
370
+ return Object::IsHeapObject() &&
371
+ HeapObject::cast(this)->map()->instance_type() ==
372
+ EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE;
373
+ }
374
+
375
+
376
+ bool Object::IsExternalIntArray() {
377
+ return Object::IsHeapObject() &&
378
+ HeapObject::cast(this)->map()->instance_type() ==
379
+ EXTERNAL_INT_ARRAY_TYPE;
380
+ }
381
+
382
+
383
+ bool Object::IsExternalUnsignedIntArray() {
384
+ return Object::IsHeapObject() &&
385
+ HeapObject::cast(this)->map()->instance_type() ==
386
+ EXTERNAL_UNSIGNED_INT_ARRAY_TYPE;
387
+ }
388
+
389
+
390
+ bool Object::IsExternalFloatArray() {
391
+ return Object::IsHeapObject() &&
392
+ HeapObject::cast(this)->map()->instance_type() ==
393
+ EXTERNAL_FLOAT_ARRAY_TYPE;
394
+ }
395
+
396
+
397
+ bool Object::IsFailure() {
398
+ return HAS_FAILURE_TAG(this);
399
+ }
400
+
401
+
402
+ bool Object::IsRetryAfterGC() {
403
+ return HAS_FAILURE_TAG(this)
404
+ && Failure::cast(this)->type() == Failure::RETRY_AFTER_GC;
405
+ }
406
+
407
+
408
+ bool Object::IsOutOfMemoryFailure() {
409
+ return HAS_FAILURE_TAG(this)
410
+ && Failure::cast(this)->IsOutOfMemoryException();
411
+ }
412
+
413
+
414
+ bool Object::IsException() {
415
+ return this == Failure::Exception();
416
+ }
417
+
418
+
419
+ bool Object::IsJSObject() {
420
+ return IsHeapObject()
421
+ && HeapObject::cast(this)->map()->instance_type() >= FIRST_JS_OBJECT_TYPE;
422
+ }
423
+
424
+
425
+ bool Object::IsJSContextExtensionObject() {
426
+ return IsHeapObject()
427
+ && (HeapObject::cast(this)->map()->instance_type() ==
428
+ JS_CONTEXT_EXTENSION_OBJECT_TYPE);
429
+ }
430
+
431
+
432
+ bool Object::IsMap() {
433
+ return Object::IsHeapObject()
434
+ && HeapObject::cast(this)->map()->instance_type() == MAP_TYPE;
435
+ }
436
+
437
+
438
+ bool Object::IsFixedArray() {
439
+ return Object::IsHeapObject()
440
+ && HeapObject::cast(this)->map()->instance_type() == FIXED_ARRAY_TYPE;
441
+ }
442
+
443
+
444
+ bool Object::IsDescriptorArray() {
445
+ return IsFixedArray();
446
+ }
447
+
448
+
449
+ bool Object::IsContext() {
450
+ return Object::IsHeapObject()
451
+ && (HeapObject::cast(this)->map() == Heap::context_map() ||
452
+ HeapObject::cast(this)->map() == Heap::catch_context_map() ||
453
+ HeapObject::cast(this)->map() == Heap::global_context_map());
454
+ }
455
+
456
+
457
+ bool Object::IsCatchContext() {
458
+ return Object::IsHeapObject()
459
+ && HeapObject::cast(this)->map() == Heap::catch_context_map();
460
+ }
461
+
462
+
463
+ bool Object::IsGlobalContext() {
464
+ return Object::IsHeapObject()
465
+ && HeapObject::cast(this)->map() == Heap::global_context_map();
466
+ }
467
+
468
+
469
+ bool Object::IsJSFunction() {
470
+ return Object::IsHeapObject()
471
+ && HeapObject::cast(this)->map()->instance_type() == JS_FUNCTION_TYPE;
472
+ }
473
+
474
+
475
+ template <> inline bool Is<JSFunction>(Object* obj) {
476
+ return obj->IsJSFunction();
477
+ }
478
+
479
+
480
+ bool Object::IsCode() {
481
+ return Object::IsHeapObject()
482
+ && HeapObject::cast(this)->map()->instance_type() == CODE_TYPE;
483
+ }
484
+
485
+
486
+ bool Object::IsOddball() {
487
+ return Object::IsHeapObject()
488
+ && HeapObject::cast(this)->map()->instance_type() == ODDBALL_TYPE;
489
+ }
490
+
491
+
492
+ bool Object::IsJSGlobalPropertyCell() {
493
+ return Object::IsHeapObject()
494
+ && HeapObject::cast(this)->map()->instance_type()
495
+ == JS_GLOBAL_PROPERTY_CELL_TYPE;
496
+ }
497
+
498
+
499
+ bool Object::IsSharedFunctionInfo() {
500
+ return Object::IsHeapObject() &&
501
+ (HeapObject::cast(this)->map()->instance_type() ==
502
+ SHARED_FUNCTION_INFO_TYPE);
503
+ }
504
+
505
+
506
+ bool Object::IsJSValue() {
507
+ return Object::IsHeapObject()
508
+ && HeapObject::cast(this)->map()->instance_type() == JS_VALUE_TYPE;
509
+ }
510
+
511
+
512
+ bool Object::IsStringWrapper() {
513
+ return IsJSValue() && JSValue::cast(this)->value()->IsString();
514
+ }
515
+
516
+
517
+ bool Object::IsProxy() {
518
+ return Object::IsHeapObject()
519
+ && HeapObject::cast(this)->map()->instance_type() == PROXY_TYPE;
520
+ }
521
+
522
+
523
+ bool Object::IsBoolean() {
524
+ return IsTrue() || IsFalse();
525
+ }
526
+
527
+
528
+ bool Object::IsJSArray() {
529
+ return Object::IsHeapObject()
530
+ && HeapObject::cast(this)->map()->instance_type() == JS_ARRAY_TYPE;
531
+ }
532
+
533
+
534
+ bool Object::IsJSRegExp() {
535
+ return Object::IsHeapObject()
536
+ && HeapObject::cast(this)->map()->instance_type() == JS_REGEXP_TYPE;
537
+ }
538
+
539
+
540
+ template <> inline bool Is<JSArray>(Object* obj) {
541
+ return obj->IsJSArray();
542
+ }
543
+
544
+
545
+ bool Object::IsHashTable() {
546
+ return Object::IsHeapObject()
547
+ && HeapObject::cast(this)->map() == Heap::hash_table_map();
548
+ }
549
+
550
+
551
+ bool Object::IsDictionary() {
552
+ return IsHashTable() && this != Heap::symbol_table();
553
+ }
554
+
555
+
556
+ bool Object::IsSymbolTable() {
557
+ return IsHashTable() && this == Heap::raw_unchecked_symbol_table();
558
+ }
559
+
560
+
561
+ bool Object::IsJSFunctionResultCache() {
562
+ if (!IsFixedArray()) return false;
563
+ FixedArray* self = FixedArray::cast(this);
564
+ int length = self->length();
565
+ if (length < JSFunctionResultCache::kEntriesIndex) return false;
566
+ if ((length - JSFunctionResultCache::kEntriesIndex)
567
+ % JSFunctionResultCache::kEntrySize != 0) {
568
+ return false;
569
+ }
570
+ #ifdef DEBUG
571
+ reinterpret_cast<JSFunctionResultCache*>(this)->JSFunctionResultCacheVerify();
572
+ #endif
573
+ return true;
574
+ }
575
+
576
+
577
+ bool Object::IsCompilationCacheTable() {
578
+ return IsHashTable();
579
+ }
580
+
581
+
582
+ bool Object::IsCodeCacheHashTable() {
583
+ return IsHashTable();
584
+ }
585
+
586
+
587
+ bool Object::IsMapCache() {
588
+ return IsHashTable();
589
+ }
590
+
591
+
592
+ bool Object::IsPrimitive() {
593
+ return IsOddball() || IsNumber() || IsString();
594
+ }
595
+
596
+
597
+ bool Object::IsJSGlobalProxy() {
598
+ bool result = IsHeapObject() &&
599
+ (HeapObject::cast(this)->map()->instance_type() ==
600
+ JS_GLOBAL_PROXY_TYPE);
601
+ ASSERT(!result || IsAccessCheckNeeded());
602
+ return result;
603
+ }
604
+
605
+
606
+ bool Object::IsGlobalObject() {
607
+ if (!IsHeapObject()) return false;
608
+
609
+ InstanceType type = HeapObject::cast(this)->map()->instance_type();
610
+ return type == JS_GLOBAL_OBJECT_TYPE ||
611
+ type == JS_BUILTINS_OBJECT_TYPE;
612
+ }
613
+
614
+
615
+ bool Object::IsJSGlobalObject() {
616
+ return IsHeapObject() &&
617
+ (HeapObject::cast(this)->map()->instance_type() ==
618
+ JS_GLOBAL_OBJECT_TYPE);
619
+ }
620
+
621
+
622
+ bool Object::IsJSBuiltinsObject() {
623
+ return IsHeapObject() &&
624
+ (HeapObject::cast(this)->map()->instance_type() ==
625
+ JS_BUILTINS_OBJECT_TYPE);
626
+ }
627
+
628
+
629
+ bool Object::IsUndetectableObject() {
630
+ return IsHeapObject()
631
+ && HeapObject::cast(this)->map()->is_undetectable();
632
+ }
633
+
634
+
635
+ bool Object::IsAccessCheckNeeded() {
636
+ return IsHeapObject()
637
+ && HeapObject::cast(this)->map()->is_access_check_needed();
638
+ }
639
+
640
+
641
+ bool Object::IsStruct() {
642
+ if (!IsHeapObject()) return false;
643
+ switch (HeapObject::cast(this)->map()->instance_type()) {
644
+ #define MAKE_STRUCT_CASE(NAME, Name, name) case NAME##_TYPE: return true;
645
+ STRUCT_LIST(MAKE_STRUCT_CASE)
646
+ #undef MAKE_STRUCT_CASE
647
+ default: return false;
648
+ }
649
+ }
650
+
651
+
652
+ #define MAKE_STRUCT_PREDICATE(NAME, Name, name) \
653
+ bool Object::Is##Name() { \
654
+ return Object::IsHeapObject() \
655
+ && HeapObject::cast(this)->map()->instance_type() == NAME##_TYPE; \
656
+ }
657
+ STRUCT_LIST(MAKE_STRUCT_PREDICATE)
658
+ #undef MAKE_STRUCT_PREDICATE
659
+
660
+
661
+ bool Object::IsUndefined() {
662
+ return this == Heap::undefined_value();
663
+ }
664
+
665
+
666
+ bool Object::IsTheHole() {
667
+ return this == Heap::the_hole_value();
668
+ }
669
+
670
+
671
+ bool Object::IsNull() {
672
+ return this == Heap::null_value();
673
+ }
674
+
675
+
676
+ bool Object::IsTrue() {
677
+ return this == Heap::true_value();
678
+ }
679
+
680
+
681
+ bool Object::IsFalse() {
682
+ return this == Heap::false_value();
683
+ }
684
+
685
+
686
+ double Object::Number() {
687
+ ASSERT(IsNumber());
688
+ return IsSmi()
689
+ ? static_cast<double>(reinterpret_cast<Smi*>(this)->value())
690
+ : reinterpret_cast<HeapNumber*>(this)->value();
691
+ }
692
+
693
+
694
+
695
+ Object* Object::ToSmi() {
696
+ if (IsSmi()) return this;
697
+ if (IsHeapNumber()) {
698
+ double value = HeapNumber::cast(this)->value();
699
+ int int_value = FastD2I(value);
700
+ if (value == FastI2D(int_value) && Smi::IsValid(int_value)) {
701
+ return Smi::FromInt(int_value);
702
+ }
703
+ }
704
+ return Failure::Exception();
705
+ }
706
+
707
+
708
+ bool Object::HasSpecificClassOf(String* name) {
709
+ return this->IsJSObject() && (JSObject::cast(this)->class_name() == name);
710
+ }
711
+
712
+
713
+ Object* Object::GetElement(uint32_t index) {
714
+ return GetElementWithReceiver(this, index);
715
+ }
716
+
717
+
718
+ Object* Object::GetProperty(String* key) {
719
+ PropertyAttributes attributes;
720
+ return GetPropertyWithReceiver(this, key, &attributes);
721
+ }
722
+
723
+
724
+ Object* Object::GetProperty(String* key, PropertyAttributes* attributes) {
725
+ return GetPropertyWithReceiver(this, key, attributes);
726
+ }
727
+
728
+
729
+ #define FIELD_ADDR(p, offset) \
730
+ (reinterpret_cast<byte*>(p) + offset - kHeapObjectTag)
731
+
732
+ #define READ_FIELD(p, offset) \
733
+ (*reinterpret_cast<Object**>(FIELD_ADDR(p, offset)))
734
+
735
+ #define WRITE_FIELD(p, offset, value) \
736
+ (*reinterpret_cast<Object**>(FIELD_ADDR(p, offset)) = value)
737
+
738
+
739
+ #define WRITE_BARRIER(object, offset) \
740
+ Heap::RecordWrite(object->address(), offset);
741
+
742
+ // CONDITIONAL_WRITE_BARRIER must be issued after the actual
743
+ // write due to the assert validating the written value.
744
+ #define CONDITIONAL_WRITE_BARRIER(object, offset, mode) \
745
+ if (mode == UPDATE_WRITE_BARRIER) { \
746
+ Heap::RecordWrite(object->address(), offset); \
747
+ } else { \
748
+ ASSERT(mode == SKIP_WRITE_BARRIER); \
749
+ ASSERT(Heap::InNewSpace(object) || \
750
+ !Heap::InNewSpace(READ_FIELD(object, offset)) || \
751
+ Page::FromAddress(object->address())-> \
752
+ IsRegionDirty(object->address() + offset)); \
753
+ }
754
+
755
+ #define READ_DOUBLE_FIELD(p, offset) \
756
+ (*reinterpret_cast<double*>(FIELD_ADDR(p, offset)))
757
+
758
+ #define WRITE_DOUBLE_FIELD(p, offset, value) \
759
+ (*reinterpret_cast<double*>(FIELD_ADDR(p, offset)) = value)
760
+
761
+ #define READ_INT_FIELD(p, offset) \
762
+ (*reinterpret_cast<int*>(FIELD_ADDR(p, offset)))
763
+
764
+ #define WRITE_INT_FIELD(p, offset, value) \
765
+ (*reinterpret_cast<int*>(FIELD_ADDR(p, offset)) = value)
766
+
767
+ #define READ_INTPTR_FIELD(p, offset) \
768
+ (*reinterpret_cast<intptr_t*>(FIELD_ADDR(p, offset)))
769
+
770
+ #define WRITE_INTPTR_FIELD(p, offset, value) \
771
+ (*reinterpret_cast<intptr_t*>(FIELD_ADDR(p, offset)) = value)
772
+
773
+ #define READ_UINT32_FIELD(p, offset) \
774
+ (*reinterpret_cast<uint32_t*>(FIELD_ADDR(p, offset)))
775
+
776
+ #define WRITE_UINT32_FIELD(p, offset, value) \
777
+ (*reinterpret_cast<uint32_t*>(FIELD_ADDR(p, offset)) = value)
778
+
779
+ #define READ_SHORT_FIELD(p, offset) \
780
+ (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset)))
781
+
782
+ #define WRITE_SHORT_FIELD(p, offset, value) \
783
+ (*reinterpret_cast<uint16_t*>(FIELD_ADDR(p, offset)) = value)
784
+
785
+ #define READ_BYTE_FIELD(p, offset) \
786
+ (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)))
787
+
788
+ #define WRITE_BYTE_FIELD(p, offset, value) \
789
+ (*reinterpret_cast<byte*>(FIELD_ADDR(p, offset)) = value)
790
+
791
+
792
+ Object** HeapObject::RawField(HeapObject* obj, int byte_offset) {
793
+ return &READ_FIELD(obj, byte_offset);
794
+ }
795
+
796
+
797
+ int Smi::value() {
798
+ return Internals::SmiValue(this);
799
+ }
800
+
801
+
802
+ Smi* Smi::FromInt(int value) {
803
+ ASSERT(Smi::IsValid(value));
804
+ int smi_shift_bits = kSmiTagSize + kSmiShiftSize;
805
+ intptr_t tagged_value =
806
+ (static_cast<intptr_t>(value) << smi_shift_bits) | kSmiTag;
807
+ return reinterpret_cast<Smi*>(tagged_value);
808
+ }
809
+
810
+
811
+ Smi* Smi::FromIntptr(intptr_t value) {
812
+ ASSERT(Smi::IsValid(value));
813
+ int smi_shift_bits = kSmiTagSize + kSmiShiftSize;
814
+ return reinterpret_cast<Smi*>((value << smi_shift_bits) | kSmiTag);
815
+ }
816
+
817
+
818
+ Failure::Type Failure::type() const {
819
+ return static_cast<Type>(value() & kFailureTypeTagMask);
820
+ }
821
+
822
+
823
+ bool Failure::IsInternalError() const {
824
+ return type() == INTERNAL_ERROR;
825
+ }
826
+
827
+
828
+ bool Failure::IsOutOfMemoryException() const {
829
+ return type() == OUT_OF_MEMORY_EXCEPTION;
830
+ }
831
+
832
+
833
+ int Failure::requested() const {
834
+ const int kShiftBits =
835
+ kFailureTypeTagSize + kSpaceTagSize - kObjectAlignmentBits;
836
+ STATIC_ASSERT(kShiftBits >= 0);
837
+ ASSERT(type() == RETRY_AFTER_GC);
838
+ return static_cast<int>(value() >> kShiftBits);
839
+ }
840
+
841
+
842
+ AllocationSpace Failure::allocation_space() const {
843
+ ASSERT_EQ(RETRY_AFTER_GC, type());
844
+ return static_cast<AllocationSpace>((value() >> kFailureTypeTagSize)
845
+ & kSpaceTagMask);
846
+ }
847
+
848
+
849
+ Failure* Failure::InternalError() {
850
+ return Construct(INTERNAL_ERROR);
851
+ }
852
+
853
+
854
+ Failure* Failure::Exception() {
855
+ return Construct(EXCEPTION);
856
+ }
857
+
858
+
859
+ Failure* Failure::OutOfMemoryException() {
860
+ return Construct(OUT_OF_MEMORY_EXCEPTION);
861
+ }
862
+
863
+
864
+ intptr_t Failure::value() const {
865
+ return static_cast<intptr_t>(
866
+ reinterpret_cast<uintptr_t>(this) >> kFailureTagSize);
867
+ }
868
+
869
+
870
+ Failure* Failure::RetryAfterGC(int requested_bytes) {
871
+ // Assert that the space encoding fits in the three bytes allotted for it.
872
+ ASSERT((LAST_SPACE & ~kSpaceTagMask) == 0);
873
+ uintptr_t requested =
874
+ static_cast<uintptr_t>(requested_bytes >> kObjectAlignmentBits);
875
+ int tag_bits = kSpaceTagSize + kFailureTypeTagSize + kFailureTagSize;
876
+ if (((requested << tag_bits) >> tag_bits) != requested) {
877
+ // No room for entire requested size in the bits. Round down to
878
+ // maximally representable size.
879
+ requested = static_cast<intptr_t>(
880
+ (~static_cast<uintptr_t>(0)) >> (tag_bits + 1));
881
+ }
882
+ int value = static_cast<int>(requested << kSpaceTagSize) | NEW_SPACE;
883
+ return Construct(RETRY_AFTER_GC, value);
884
+ }
885
+
886
+
887
+ Failure* Failure::Construct(Type type, intptr_t value) {
888
+ uintptr_t info =
889
+ (static_cast<uintptr_t>(value) << kFailureTypeTagSize) | type;
890
+ ASSERT(((info << kFailureTagSize) >> kFailureTagSize) == info);
891
+ return reinterpret_cast<Failure*>((info << kFailureTagSize) | kFailureTag);
892
+ }
893
+
894
+
895
+ bool Smi::IsValid(intptr_t value) {
896
+ #ifdef DEBUG
897
+ bool in_range = (value >= kMinValue) && (value <= kMaxValue);
898
+ #endif
899
+
900
+ #ifdef V8_TARGET_ARCH_X64
901
+ // To be representable as a long smi, the value must be a 32-bit integer.
902
+ bool result = (value == static_cast<int32_t>(value));
903
+ #else
904
+ // To be representable as an tagged small integer, the two
905
+ // most-significant bits of 'value' must be either 00 or 11 due to
906
+ // sign-extension. To check this we add 01 to the two
907
+ // most-significant bits, and check if the most-significant bit is 0
908
+ //
909
+ // CAUTION: The original code below:
910
+ // bool result = ((value + 0x40000000) & 0x80000000) == 0;
911
+ // may lead to incorrect results according to the C language spec, and
912
+ // in fact doesn't work correctly with gcc4.1.1 in some cases: The
913
+ // compiler may produce undefined results in case of signed integer
914
+ // overflow. The computation must be done w/ unsigned ints.
915
+ bool result = (static_cast<uintptr_t>(value + 0x40000000U) < 0x80000000U);
916
+ #endif
917
+ ASSERT(result == in_range);
918
+ return result;
919
+ }
920
+
921
+
922
+ MapWord MapWord::FromMap(Map* map) {
923
+ return MapWord(reinterpret_cast<uintptr_t>(map));
924
+ }
925
+
926
+
927
+ Map* MapWord::ToMap() {
928
+ return reinterpret_cast<Map*>(value_);
929
+ }
930
+
931
+
932
+ bool MapWord::IsForwardingAddress() {
933
+ return HAS_SMI_TAG(reinterpret_cast<Object*>(value_));
934
+ }
935
+
936
+
937
+ MapWord MapWord::FromForwardingAddress(HeapObject* object) {
938
+ Address raw = reinterpret_cast<Address>(object) - kHeapObjectTag;
939
+ return MapWord(reinterpret_cast<uintptr_t>(raw));
940
+ }
941
+
942
+
943
+ HeapObject* MapWord::ToForwardingAddress() {
944
+ ASSERT(IsForwardingAddress());
945
+ return HeapObject::FromAddress(reinterpret_cast<Address>(value_));
946
+ }
947
+
948
+
949
+ bool MapWord::IsMarked() {
950
+ return (value_ & kMarkingMask) == 0;
951
+ }
952
+
953
+
954
+ void MapWord::SetMark() {
955
+ value_ &= ~kMarkingMask;
956
+ }
957
+
958
+
959
+ void MapWord::ClearMark() {
960
+ value_ |= kMarkingMask;
961
+ }
962
+
963
+
964
+ bool MapWord::IsOverflowed() {
965
+ return (value_ & kOverflowMask) != 0;
966
+ }
967
+
968
+
969
+ void MapWord::SetOverflow() {
970
+ value_ |= kOverflowMask;
971
+ }
972
+
973
+
974
+ void MapWord::ClearOverflow() {
975
+ value_ &= ~kOverflowMask;
976
+ }
977
+
978
+
979
+ MapWord MapWord::EncodeAddress(Address map_address, int offset) {
980
+ // Offset is the distance in live bytes from the first live object in the
981
+ // same page. The offset between two objects in the same page should not
982
+ // exceed the object area size of a page.
983
+ ASSERT(0 <= offset && offset < Page::kObjectAreaSize);
984
+
985
+ uintptr_t compact_offset = offset >> kObjectAlignmentBits;
986
+ ASSERT(compact_offset < (1 << kForwardingOffsetBits));
987
+
988
+ Page* map_page = Page::FromAddress(map_address);
989
+ ASSERT_MAP_PAGE_INDEX(map_page->mc_page_index);
990
+
991
+ uintptr_t map_page_offset =
992
+ map_page->Offset(map_address) >> kMapAlignmentBits;
993
+
994
+ uintptr_t encoding =
995
+ (compact_offset << kForwardingOffsetShift) |
996
+ (map_page_offset << kMapPageOffsetShift) |
997
+ (map_page->mc_page_index << kMapPageIndexShift);
998
+ return MapWord(encoding);
999
+ }
1000
+
1001
+
1002
+ Address MapWord::DecodeMapAddress(MapSpace* map_space) {
1003
+ int map_page_index =
1004
+ static_cast<int>((value_ & kMapPageIndexMask) >> kMapPageIndexShift);
1005
+ ASSERT_MAP_PAGE_INDEX(map_page_index);
1006
+
1007
+ int map_page_offset = static_cast<int>(
1008
+ ((value_ & kMapPageOffsetMask) >> kMapPageOffsetShift) <<
1009
+ kMapAlignmentBits);
1010
+
1011
+ return (map_space->PageAddress(map_page_index) + map_page_offset);
1012
+ }
1013
+
1014
+
1015
+ int MapWord::DecodeOffset() {
1016
+ // The offset field is represented in the kForwardingOffsetBits
1017
+ // most-significant bits.
1018
+ uintptr_t offset = (value_ >> kForwardingOffsetShift) << kObjectAlignmentBits;
1019
+ ASSERT(offset < static_cast<uintptr_t>(Page::kObjectAreaSize));
1020
+ return static_cast<int>(offset);
1021
+ }
1022
+
1023
+
1024
+ MapWord MapWord::FromEncodedAddress(Address address) {
1025
+ return MapWord(reinterpret_cast<uintptr_t>(address));
1026
+ }
1027
+
1028
+
1029
+ Address MapWord::ToEncodedAddress() {
1030
+ return reinterpret_cast<Address>(value_);
1031
+ }
1032
+
1033
+
1034
+ #ifdef DEBUG
1035
+ void HeapObject::VerifyObjectField(int offset) {
1036
+ VerifyPointer(READ_FIELD(this, offset));
1037
+ }
1038
+
1039
+ void HeapObject::VerifySmiField(int offset) {
1040
+ ASSERT(READ_FIELD(this, offset)->IsSmi());
1041
+ }
1042
+ #endif
1043
+
1044
+
1045
+ Map* HeapObject::map() {
1046
+ return map_word().ToMap();
1047
+ }
1048
+
1049
+
1050
+ void HeapObject::set_map(Map* value) {
1051
+ set_map_word(MapWord::FromMap(value));
1052
+ }
1053
+
1054
+
1055
+ MapWord HeapObject::map_word() {
1056
+ return MapWord(reinterpret_cast<uintptr_t>(READ_FIELD(this, kMapOffset)));
1057
+ }
1058
+
1059
+
1060
+ void HeapObject::set_map_word(MapWord map_word) {
1061
+ // WRITE_FIELD does not invoke write barrier, but there is no need
1062
+ // here.
1063
+ WRITE_FIELD(this, kMapOffset, reinterpret_cast<Object*>(map_word.value_));
1064
+ }
1065
+
1066
+
1067
+ HeapObject* HeapObject::FromAddress(Address address) {
1068
+ ASSERT_TAG_ALIGNED(address);
1069
+ return reinterpret_cast<HeapObject*>(address + kHeapObjectTag);
1070
+ }
1071
+
1072
+
1073
+ Address HeapObject::address() {
1074
+ return reinterpret_cast<Address>(this) - kHeapObjectTag;
1075
+ }
1076
+
1077
+
1078
+ int HeapObject::Size() {
1079
+ return SizeFromMap(map());
1080
+ }
1081
+
1082
+
1083
+ void HeapObject::IteratePointers(ObjectVisitor* v, int start, int end) {
1084
+ v->VisitPointers(reinterpret_cast<Object**>(FIELD_ADDR(this, start)),
1085
+ reinterpret_cast<Object**>(FIELD_ADDR(this, end)));
1086
+ }
1087
+
1088
+
1089
+ void HeapObject::IteratePointer(ObjectVisitor* v, int offset) {
1090
+ v->VisitPointer(reinterpret_cast<Object**>(FIELD_ADDR(this, offset)));
1091
+ }
1092
+
1093
+
1094
+ bool HeapObject::IsMarked() {
1095
+ return map_word().IsMarked();
1096
+ }
1097
+
1098
+
1099
+ void HeapObject::SetMark() {
1100
+ ASSERT(!IsMarked());
1101
+ MapWord first_word = map_word();
1102
+ first_word.SetMark();
1103
+ set_map_word(first_word);
1104
+ }
1105
+
1106
+
1107
+ void HeapObject::ClearMark() {
1108
+ ASSERT(IsMarked());
1109
+ MapWord first_word = map_word();
1110
+ first_word.ClearMark();
1111
+ set_map_word(first_word);
1112
+ }
1113
+
1114
+
1115
+ bool HeapObject::IsOverflowed() {
1116
+ return map_word().IsOverflowed();
1117
+ }
1118
+
1119
+
1120
+ void HeapObject::SetOverflow() {
1121
+ MapWord first_word = map_word();
1122
+ first_word.SetOverflow();
1123
+ set_map_word(first_word);
1124
+ }
1125
+
1126
+
1127
+ void HeapObject::ClearOverflow() {
1128
+ ASSERT(IsOverflowed());
1129
+ MapWord first_word = map_word();
1130
+ first_word.ClearOverflow();
1131
+ set_map_word(first_word);
1132
+ }
1133
+
1134
+
1135
+ double HeapNumber::value() {
1136
+ return READ_DOUBLE_FIELD(this, kValueOffset);
1137
+ }
1138
+
1139
+
1140
+ void HeapNumber::set_value(double value) {
1141
+ WRITE_DOUBLE_FIELD(this, kValueOffset, value);
1142
+ }
1143
+
1144
+
1145
+ int HeapNumber::get_exponent() {
1146
+ return ((READ_INT_FIELD(this, kExponentOffset) & kExponentMask) >>
1147
+ kExponentShift) - kExponentBias;
1148
+ }
1149
+
1150
+
1151
+ int HeapNumber::get_sign() {
1152
+ return READ_INT_FIELD(this, kExponentOffset) & kSignMask;
1153
+ }
1154
+
1155
+
1156
+ ACCESSORS(JSObject, properties, FixedArray, kPropertiesOffset)
1157
+
1158
+
1159
+ HeapObject* JSObject::elements() {
1160
+ Object* array = READ_FIELD(this, kElementsOffset);
1161
+ // In the assert below Dictionary is covered under FixedArray.
1162
+ ASSERT(array->IsFixedArray() || array->IsPixelArray() ||
1163
+ array->IsExternalArray());
1164
+ return reinterpret_cast<HeapObject*>(array);
1165
+ }
1166
+
1167
+
1168
+ void JSObject::set_elements(HeapObject* value, WriteBarrierMode mode) {
1169
+ ASSERT(map()->has_fast_elements() ==
1170
+ (value->map() == Heap::fixed_array_map()));
1171
+ // In the assert below Dictionary is covered under FixedArray.
1172
+ ASSERT(value->IsFixedArray() || value->IsPixelArray() ||
1173
+ value->IsExternalArray());
1174
+ WRITE_FIELD(this, kElementsOffset, value);
1175
+ CONDITIONAL_WRITE_BARRIER(this, kElementsOffset, mode);
1176
+ }
1177
+
1178
+
1179
+ void JSObject::initialize_properties() {
1180
+ ASSERT(!Heap::InNewSpace(Heap::empty_fixed_array()));
1181
+ WRITE_FIELD(this, kPropertiesOffset, Heap::empty_fixed_array());
1182
+ }
1183
+
1184
+
1185
+ void JSObject::initialize_elements() {
1186
+ ASSERT(map()->has_fast_elements());
1187
+ ASSERT(!Heap::InNewSpace(Heap::empty_fixed_array()));
1188
+ WRITE_FIELD(this, kElementsOffset, Heap::empty_fixed_array());
1189
+ }
1190
+
1191
+
1192
+ Object* JSObject::ResetElements() {
1193
+ Object* obj = map()->GetFastElementsMap();
1194
+ if (obj->IsFailure()) return obj;
1195
+ set_map(Map::cast(obj));
1196
+ initialize_elements();
1197
+ return this;
1198
+ }
1199
+
1200
+
1201
+ ACCESSORS(Oddball, to_string, String, kToStringOffset)
1202
+ ACCESSORS(Oddball, to_number, Object, kToNumberOffset)
1203
+
1204
+
1205
+ Object* JSGlobalPropertyCell::value() {
1206
+ return READ_FIELD(this, kValueOffset);
1207
+ }
1208
+
1209
+
1210
+ void JSGlobalPropertyCell::set_value(Object* val, WriteBarrierMode ignored) {
1211
+ // The write barrier is not used for global property cells.
1212
+ ASSERT(!val->IsJSGlobalPropertyCell());
1213
+ WRITE_FIELD(this, kValueOffset, val);
1214
+ }
1215
+
1216
+
1217
+ int JSObject::GetHeaderSize() {
1218
+ InstanceType type = map()->instance_type();
1219
+ // Check for the most common kind of JavaScript object before
1220
+ // falling into the generic switch. This speeds up the internal
1221
+ // field operations considerably on average.
1222
+ if (type == JS_OBJECT_TYPE) return JSObject::kHeaderSize;
1223
+ switch (type) {
1224
+ case JS_GLOBAL_PROXY_TYPE:
1225
+ return JSGlobalProxy::kSize;
1226
+ case JS_GLOBAL_OBJECT_TYPE:
1227
+ return JSGlobalObject::kSize;
1228
+ case JS_BUILTINS_OBJECT_TYPE:
1229
+ return JSBuiltinsObject::kSize;
1230
+ case JS_FUNCTION_TYPE:
1231
+ return JSFunction::kSize;
1232
+ case JS_VALUE_TYPE:
1233
+ return JSValue::kSize;
1234
+ case JS_ARRAY_TYPE:
1235
+ return JSValue::kSize;
1236
+ case JS_REGEXP_TYPE:
1237
+ return JSValue::kSize;
1238
+ case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
1239
+ return JSObject::kHeaderSize;
1240
+ default:
1241
+ UNREACHABLE();
1242
+ return 0;
1243
+ }
1244
+ }
1245
+
1246
+
1247
+ int JSObject::GetInternalFieldCount() {
1248
+ ASSERT(1 << kPointerSizeLog2 == kPointerSize);
1249
+ // Make sure to adjust for the number of in-object properties. These
1250
+ // properties do contribute to the size, but are not internal fields.
1251
+ return ((Size() - GetHeaderSize()) >> kPointerSizeLog2) -
1252
+ map()->inobject_properties();
1253
+ }
1254
+
1255
+
1256
+ Object* JSObject::GetInternalField(int index) {
1257
+ ASSERT(index < GetInternalFieldCount() && index >= 0);
1258
+ // Internal objects do follow immediately after the header, whereas in-object
1259
+ // properties are at the end of the object. Therefore there is no need
1260
+ // to adjust the index here.
1261
+ return READ_FIELD(this, GetHeaderSize() + (kPointerSize * index));
1262
+ }
1263
+
1264
+
1265
+ void JSObject::SetInternalField(int index, Object* value) {
1266
+ ASSERT(index < GetInternalFieldCount() && index >= 0);
1267
+ // Internal objects do follow immediately after the header, whereas in-object
1268
+ // properties are at the end of the object. Therefore there is no need
1269
+ // to adjust the index here.
1270
+ int offset = GetHeaderSize() + (kPointerSize * index);
1271
+ WRITE_FIELD(this, offset, value);
1272
+ WRITE_BARRIER(this, offset);
1273
+ }
1274
+
1275
+
1276
+ // Access fast-case object properties at index. The use of these routines
1277
+ // is needed to correctly distinguish between properties stored in-object and
1278
+ // properties stored in the properties array.
1279
+ Object* JSObject::FastPropertyAt(int index) {
1280
+ // Adjust for the number of properties stored in the object.
1281
+ index -= map()->inobject_properties();
1282
+ if (index < 0) {
1283
+ int offset = map()->instance_size() + (index * kPointerSize);
1284
+ return READ_FIELD(this, offset);
1285
+ } else {
1286
+ ASSERT(index < properties()->length());
1287
+ return properties()->get(index);
1288
+ }
1289
+ }
1290
+
1291
+
1292
+ Object* JSObject::FastPropertyAtPut(int index, Object* value) {
1293
+ // Adjust for the number of properties stored in the object.
1294
+ index -= map()->inobject_properties();
1295
+ if (index < 0) {
1296
+ int offset = map()->instance_size() + (index * kPointerSize);
1297
+ WRITE_FIELD(this, offset, value);
1298
+ WRITE_BARRIER(this, offset);
1299
+ } else {
1300
+ ASSERT(index < properties()->length());
1301
+ properties()->set(index, value);
1302
+ }
1303
+ return value;
1304
+ }
1305
+
1306
+
1307
+ Object* JSObject::InObjectPropertyAt(int index) {
1308
+ // Adjust for the number of properties stored in the object.
1309
+ index -= map()->inobject_properties();
1310
+ ASSERT(index < 0);
1311
+ int offset = map()->instance_size() + (index * kPointerSize);
1312
+ return READ_FIELD(this, offset);
1313
+ }
1314
+
1315
+
1316
+ Object* JSObject::InObjectPropertyAtPut(int index,
1317
+ Object* value,
1318
+ WriteBarrierMode mode) {
1319
+ // Adjust for the number of properties stored in the object.
1320
+ index -= map()->inobject_properties();
1321
+ ASSERT(index < 0);
1322
+ int offset = map()->instance_size() + (index * kPointerSize);
1323
+ WRITE_FIELD(this, offset, value);
1324
+ CONDITIONAL_WRITE_BARRIER(this, offset, mode);
1325
+ return value;
1326
+ }
1327
+
1328
+
1329
+
1330
+ void JSObject::InitializeBody(int object_size) {
1331
+ Object* value = Heap::undefined_value();
1332
+ for (int offset = kHeaderSize; offset < object_size; offset += kPointerSize) {
1333
+ WRITE_FIELD(this, offset, value);
1334
+ }
1335
+ }
1336
+
1337
+
1338
+ bool JSObject::HasFastProperties() {
1339
+ return !properties()->IsDictionary();
1340
+ }
1341
+
1342
+
1343
+ int JSObject::MaxFastProperties() {
1344
+ // Allow extra fast properties if the object has more than
1345
+ // kMaxFastProperties in-object properties. When this is the case,
1346
+ // it is very unlikely that the object is being used as a dictionary
1347
+ // and there is a good chance that allowing more map transitions
1348
+ // will be worth it.
1349
+ return Max(map()->inobject_properties(), kMaxFastProperties);
1350
+ }
1351
+
1352
+
1353
+ void Struct::InitializeBody(int object_size) {
1354
+ Object* value = Heap::undefined_value();
1355
+ for (int offset = kHeaderSize; offset < object_size; offset += kPointerSize) {
1356
+ WRITE_FIELD(this, offset, value);
1357
+ }
1358
+ }
1359
+
1360
+
1361
+ bool Object::ToArrayIndex(uint32_t* index) {
1362
+ if (IsSmi()) {
1363
+ int value = Smi::cast(this)->value();
1364
+ if (value < 0) return false;
1365
+ *index = value;
1366
+ return true;
1367
+ }
1368
+ if (IsHeapNumber()) {
1369
+ double value = HeapNumber::cast(this)->value();
1370
+ uint32_t uint_value = static_cast<uint32_t>(value);
1371
+ if (value == static_cast<double>(uint_value)) {
1372
+ *index = uint_value;
1373
+ return true;
1374
+ }
1375
+ }
1376
+ return false;
1377
+ }
1378
+
1379
+
1380
+ bool Object::IsStringObjectWithCharacterAt(uint32_t index) {
1381
+ if (!this->IsJSValue()) return false;
1382
+
1383
+ JSValue* js_value = JSValue::cast(this);
1384
+ if (!js_value->value()->IsString()) return false;
1385
+
1386
+ String* str = String::cast(js_value->value());
1387
+ if (index >= (uint32_t)str->length()) return false;
1388
+
1389
+ return true;
1390
+ }
1391
+
1392
+
1393
+ Object* FixedArray::get(int index) {
1394
+ ASSERT(index >= 0 && index < this->length());
1395
+ return READ_FIELD(this, kHeaderSize + index * kPointerSize);
1396
+ }
1397
+
1398
+
1399
+ void FixedArray::set(int index, Smi* value) {
1400
+ ASSERT(reinterpret_cast<Object*>(value)->IsSmi());
1401
+ int offset = kHeaderSize + index * kPointerSize;
1402
+ WRITE_FIELD(this, offset, value);
1403
+ }
1404
+
1405
+
1406
+ void FixedArray::set(int index, Object* value) {
1407
+ ASSERT(index >= 0 && index < this->length());
1408
+ int offset = kHeaderSize + index * kPointerSize;
1409
+ WRITE_FIELD(this, offset, value);
1410
+ WRITE_BARRIER(this, offset);
1411
+ }
1412
+
1413
+
1414
+ WriteBarrierMode HeapObject::GetWriteBarrierMode(const AssertNoAllocation&) {
1415
+ if (Heap::InNewSpace(this)) return SKIP_WRITE_BARRIER;
1416
+ return UPDATE_WRITE_BARRIER;
1417
+ }
1418
+
1419
+
1420
+ void FixedArray::set(int index,
1421
+ Object* value,
1422
+ WriteBarrierMode mode) {
1423
+ ASSERT(index >= 0 && index < this->length());
1424
+ int offset = kHeaderSize + index * kPointerSize;
1425
+ WRITE_FIELD(this, offset, value);
1426
+ CONDITIONAL_WRITE_BARRIER(this, offset, mode);
1427
+ }
1428
+
1429
+
1430
+ void FixedArray::fast_set(FixedArray* array, int index, Object* value) {
1431
+ ASSERT(index >= 0 && index < array->length());
1432
+ ASSERT(!Heap::InNewSpace(value));
1433
+ WRITE_FIELD(array, kHeaderSize + index * kPointerSize, value);
1434
+ }
1435
+
1436
+
1437
+ void FixedArray::set_undefined(int index) {
1438
+ ASSERT(index >= 0 && index < this->length());
1439
+ ASSERT(!Heap::InNewSpace(Heap::undefined_value()));
1440
+ WRITE_FIELD(this, kHeaderSize + index * kPointerSize,
1441
+ Heap::undefined_value());
1442
+ }
1443
+
1444
+
1445
+ void FixedArray::set_null(int index) {
1446
+ ASSERT(index >= 0 && index < this->length());
1447
+ ASSERT(!Heap::InNewSpace(Heap::null_value()));
1448
+ WRITE_FIELD(this, kHeaderSize + index * kPointerSize, Heap::null_value());
1449
+ }
1450
+
1451
+
1452
+ void FixedArray::set_the_hole(int index) {
1453
+ ASSERT(index >= 0 && index < this->length());
1454
+ ASSERT(!Heap::InNewSpace(Heap::the_hole_value()));
1455
+ WRITE_FIELD(this, kHeaderSize + index * kPointerSize, Heap::the_hole_value());
1456
+ }
1457
+
1458
+
1459
+ Object** FixedArray::data_start() {
1460
+ return HeapObject::RawField(this, kHeaderSize);
1461
+ }
1462
+
1463
+
1464
+ bool DescriptorArray::IsEmpty() {
1465
+ ASSERT(this == Heap::empty_descriptor_array() ||
1466
+ this->length() > 2);
1467
+ return this == Heap::empty_descriptor_array();
1468
+ }
1469
+
1470
+
1471
+ void DescriptorArray::fast_swap(FixedArray* array, int first, int second) {
1472
+ Object* tmp = array->get(first);
1473
+ fast_set(array, first, array->get(second));
1474
+ fast_set(array, second, tmp);
1475
+ }
1476
+
1477
+
1478
+ int DescriptorArray::Search(String* name) {
1479
+ SLOW_ASSERT(IsSortedNoDuplicates());
1480
+
1481
+ // Check for empty descriptor array.
1482
+ int nof = number_of_descriptors();
1483
+ if (nof == 0) return kNotFound;
1484
+
1485
+ // Fast case: do linear search for small arrays.
1486
+ const int kMaxElementsForLinearSearch = 8;
1487
+ if (StringShape(name).IsSymbol() && nof < kMaxElementsForLinearSearch) {
1488
+ return LinearSearch(name, nof);
1489
+ }
1490
+
1491
+ // Slow case: perform binary search.
1492
+ return BinarySearch(name, 0, nof - 1);
1493
+ }
1494
+
1495
+
1496
+ String* DescriptorArray::GetKey(int descriptor_number) {
1497
+ ASSERT(descriptor_number < number_of_descriptors());
1498
+ return String::cast(get(ToKeyIndex(descriptor_number)));
1499
+ }
1500
+
1501
+
1502
+ Object* DescriptorArray::GetValue(int descriptor_number) {
1503
+ ASSERT(descriptor_number < number_of_descriptors());
1504
+ return GetContentArray()->get(ToValueIndex(descriptor_number));
1505
+ }
1506
+
1507
+
1508
+ Smi* DescriptorArray::GetDetails(int descriptor_number) {
1509
+ ASSERT(descriptor_number < number_of_descriptors());
1510
+ return Smi::cast(GetContentArray()->get(ToDetailsIndex(descriptor_number)));
1511
+ }
1512
+
1513
+
1514
+ PropertyType DescriptorArray::GetType(int descriptor_number) {
1515
+ ASSERT(descriptor_number < number_of_descriptors());
1516
+ return PropertyDetails(GetDetails(descriptor_number)).type();
1517
+ }
1518
+
1519
+
1520
+ int DescriptorArray::GetFieldIndex(int descriptor_number) {
1521
+ return Descriptor::IndexFromValue(GetValue(descriptor_number));
1522
+ }
1523
+
1524
+
1525
+ JSFunction* DescriptorArray::GetConstantFunction(int descriptor_number) {
1526
+ return JSFunction::cast(GetValue(descriptor_number));
1527
+ }
1528
+
1529
+
1530
+ Object* DescriptorArray::GetCallbacksObject(int descriptor_number) {
1531
+ ASSERT(GetType(descriptor_number) == CALLBACKS);
1532
+ return GetValue(descriptor_number);
1533
+ }
1534
+
1535
+
1536
+ AccessorDescriptor* DescriptorArray::GetCallbacks(int descriptor_number) {
1537
+ ASSERT(GetType(descriptor_number) == CALLBACKS);
1538
+ Proxy* p = Proxy::cast(GetCallbacksObject(descriptor_number));
1539
+ return reinterpret_cast<AccessorDescriptor*>(p->proxy());
1540
+ }
1541
+
1542
+
1543
+ bool DescriptorArray::IsProperty(int descriptor_number) {
1544
+ return GetType(descriptor_number) < FIRST_PHANTOM_PROPERTY_TYPE;
1545
+ }
1546
+
1547
+
1548
+ bool DescriptorArray::IsTransition(int descriptor_number) {
1549
+ PropertyType t = GetType(descriptor_number);
1550
+ return t == MAP_TRANSITION || t == CONSTANT_TRANSITION;
1551
+ }
1552
+
1553
+
1554
+ bool DescriptorArray::IsNullDescriptor(int descriptor_number) {
1555
+ return GetType(descriptor_number) == NULL_DESCRIPTOR;
1556
+ }
1557
+
1558
+
1559
+ bool DescriptorArray::IsDontEnum(int descriptor_number) {
1560
+ return PropertyDetails(GetDetails(descriptor_number)).IsDontEnum();
1561
+ }
1562
+
1563
+
1564
+ void DescriptorArray::Get(int descriptor_number, Descriptor* desc) {
1565
+ desc->Init(GetKey(descriptor_number),
1566
+ GetValue(descriptor_number),
1567
+ GetDetails(descriptor_number));
1568
+ }
1569
+
1570
+
1571
+ void DescriptorArray::Set(int descriptor_number, Descriptor* desc) {
1572
+ // Range check.
1573
+ ASSERT(descriptor_number < number_of_descriptors());
1574
+
1575
+ // Make sure none of the elements in desc are in new space.
1576
+ ASSERT(!Heap::InNewSpace(desc->GetKey()));
1577
+ ASSERT(!Heap::InNewSpace(desc->GetValue()));
1578
+
1579
+ fast_set(this, ToKeyIndex(descriptor_number), desc->GetKey());
1580
+ FixedArray* content_array = GetContentArray();
1581
+ fast_set(content_array, ToValueIndex(descriptor_number), desc->GetValue());
1582
+ fast_set(content_array, ToDetailsIndex(descriptor_number),
1583
+ desc->GetDetails().AsSmi());
1584
+ }
1585
+
1586
+
1587
+ void DescriptorArray::CopyFrom(int index, DescriptorArray* src, int src_index) {
1588
+ Descriptor desc;
1589
+ src->Get(src_index, &desc);
1590
+ Set(index, &desc);
1591
+ }
1592
+
1593
+
1594
+ void DescriptorArray::Swap(int first, int second) {
1595
+ fast_swap(this, ToKeyIndex(first), ToKeyIndex(second));
1596
+ FixedArray* content_array = GetContentArray();
1597
+ fast_swap(content_array, ToValueIndex(first), ToValueIndex(second));
1598
+ fast_swap(content_array, ToDetailsIndex(first), ToDetailsIndex(second));
1599
+ }
1600
+
1601
+
1602
+ bool NumberDictionary::requires_slow_elements() {
1603
+ Object* max_index_object = get(kMaxNumberKeyIndex);
1604
+ if (!max_index_object->IsSmi()) return false;
1605
+ return 0 !=
1606
+ (Smi::cast(max_index_object)->value() & kRequiresSlowElementsMask);
1607
+ }
1608
+
1609
+ uint32_t NumberDictionary::max_number_key() {
1610
+ ASSERT(!requires_slow_elements());
1611
+ Object* max_index_object = get(kMaxNumberKeyIndex);
1612
+ if (!max_index_object->IsSmi()) return 0;
1613
+ uint32_t value = static_cast<uint32_t>(Smi::cast(max_index_object)->value());
1614
+ return value >> kRequiresSlowElementsTagSize;
1615
+ }
1616
+
1617
+ void NumberDictionary::set_requires_slow_elements() {
1618
+ set(kMaxNumberKeyIndex, Smi::FromInt(kRequiresSlowElementsMask));
1619
+ }
1620
+
1621
+
1622
+ // ------------------------------------
1623
+ // Cast operations
1624
+
1625
+
1626
+ CAST_ACCESSOR(FixedArray)
1627
+ CAST_ACCESSOR(DescriptorArray)
1628
+ CAST_ACCESSOR(SymbolTable)
1629
+ CAST_ACCESSOR(JSFunctionResultCache)
1630
+ CAST_ACCESSOR(CompilationCacheTable)
1631
+ CAST_ACCESSOR(CodeCacheHashTable)
1632
+ CAST_ACCESSOR(MapCache)
1633
+ CAST_ACCESSOR(String)
1634
+ CAST_ACCESSOR(SeqString)
1635
+ CAST_ACCESSOR(SeqAsciiString)
1636
+ CAST_ACCESSOR(SeqTwoByteString)
1637
+ CAST_ACCESSOR(ConsString)
1638
+ CAST_ACCESSOR(ExternalString)
1639
+ CAST_ACCESSOR(ExternalAsciiString)
1640
+ CAST_ACCESSOR(ExternalTwoByteString)
1641
+ CAST_ACCESSOR(JSObject)
1642
+ CAST_ACCESSOR(Smi)
1643
+ CAST_ACCESSOR(Failure)
1644
+ CAST_ACCESSOR(HeapObject)
1645
+ CAST_ACCESSOR(HeapNumber)
1646
+ CAST_ACCESSOR(Oddball)
1647
+ CAST_ACCESSOR(JSGlobalPropertyCell)
1648
+ CAST_ACCESSOR(SharedFunctionInfo)
1649
+ CAST_ACCESSOR(Map)
1650
+ CAST_ACCESSOR(JSFunction)
1651
+ CAST_ACCESSOR(GlobalObject)
1652
+ CAST_ACCESSOR(JSGlobalProxy)
1653
+ CAST_ACCESSOR(JSGlobalObject)
1654
+ CAST_ACCESSOR(JSBuiltinsObject)
1655
+ CAST_ACCESSOR(Code)
1656
+ CAST_ACCESSOR(JSArray)
1657
+ CAST_ACCESSOR(JSRegExp)
1658
+ CAST_ACCESSOR(Proxy)
1659
+ CAST_ACCESSOR(ByteArray)
1660
+ CAST_ACCESSOR(PixelArray)
1661
+ CAST_ACCESSOR(ExternalArray)
1662
+ CAST_ACCESSOR(ExternalByteArray)
1663
+ CAST_ACCESSOR(ExternalUnsignedByteArray)
1664
+ CAST_ACCESSOR(ExternalShortArray)
1665
+ CAST_ACCESSOR(ExternalUnsignedShortArray)
1666
+ CAST_ACCESSOR(ExternalIntArray)
1667
+ CAST_ACCESSOR(ExternalUnsignedIntArray)
1668
+ CAST_ACCESSOR(ExternalFloatArray)
1669
+ CAST_ACCESSOR(Struct)
1670
+
1671
+
1672
+ #define MAKE_STRUCT_CAST(NAME, Name, name) CAST_ACCESSOR(Name)
1673
+ STRUCT_LIST(MAKE_STRUCT_CAST)
1674
+ #undef MAKE_STRUCT_CAST
1675
+
1676
+
1677
+ template <typename Shape, typename Key>
1678
+ HashTable<Shape, Key>* HashTable<Shape, Key>::cast(Object* obj) {
1679
+ ASSERT(obj->IsHashTable());
1680
+ return reinterpret_cast<HashTable*>(obj);
1681
+ }
1682
+
1683
+
1684
+ SMI_ACCESSORS(FixedArray, length, kLengthOffset)
1685
+ SMI_ACCESSORS(ByteArray, length, kLengthOffset)
1686
+
1687
+ INT_ACCESSORS(PixelArray, length, kLengthOffset)
1688
+ INT_ACCESSORS(ExternalArray, length, kLengthOffset)
1689
+
1690
+
1691
+ SMI_ACCESSORS(String, length, kLengthOffset)
1692
+
1693
+
1694
+ uint32_t String::hash_field() {
1695
+ return READ_UINT32_FIELD(this, kHashFieldOffset);
1696
+ }
1697
+
1698
+
1699
+ void String::set_hash_field(uint32_t value) {
1700
+ WRITE_UINT32_FIELD(this, kHashFieldOffset, value);
1701
+ #if V8_HOST_ARCH_64_BIT
1702
+ WRITE_UINT32_FIELD(this, kHashFieldOffset + kIntSize, 0);
1703
+ #endif
1704
+ }
1705
+
1706
+
1707
+ bool String::Equals(String* other) {
1708
+ if (other == this) return true;
1709
+ if (StringShape(this).IsSymbol() && StringShape(other).IsSymbol()) {
1710
+ return false;
1711
+ }
1712
+ return SlowEquals(other);
1713
+ }
1714
+
1715
+
1716
+ Object* String::TryFlatten(PretenureFlag pretenure) {
1717
+ if (!StringShape(this).IsCons()) return this;
1718
+ ConsString* cons = ConsString::cast(this);
1719
+ if (cons->second()->length() == 0) return cons->first();
1720
+ return SlowTryFlatten(pretenure);
1721
+ }
1722
+
1723
+
1724
+ String* String::TryFlattenGetString(PretenureFlag pretenure) {
1725
+ Object* flat = TryFlatten(pretenure);
1726
+ return flat->IsFailure() ? this : String::cast(flat);
1727
+ }
1728
+
1729
+
1730
+ uint16_t String::Get(int index) {
1731
+ ASSERT(index >= 0 && index < length());
1732
+ switch (StringShape(this).full_representation_tag()) {
1733
+ case kSeqStringTag | kAsciiStringTag:
1734
+ return SeqAsciiString::cast(this)->SeqAsciiStringGet(index);
1735
+ case kSeqStringTag | kTwoByteStringTag:
1736
+ return SeqTwoByteString::cast(this)->SeqTwoByteStringGet(index);
1737
+ case kConsStringTag | kAsciiStringTag:
1738
+ case kConsStringTag | kTwoByteStringTag:
1739
+ return ConsString::cast(this)->ConsStringGet(index);
1740
+ case kExternalStringTag | kAsciiStringTag:
1741
+ return ExternalAsciiString::cast(this)->ExternalAsciiStringGet(index);
1742
+ case kExternalStringTag | kTwoByteStringTag:
1743
+ return ExternalTwoByteString::cast(this)->ExternalTwoByteStringGet(index);
1744
+ default:
1745
+ break;
1746
+ }
1747
+
1748
+ UNREACHABLE();
1749
+ return 0;
1750
+ }
1751
+
1752
+
1753
+ void String::Set(int index, uint16_t value) {
1754
+ ASSERT(index >= 0 && index < length());
1755
+ ASSERT(StringShape(this).IsSequential());
1756
+
1757
+ return this->IsAsciiRepresentation()
1758
+ ? SeqAsciiString::cast(this)->SeqAsciiStringSet(index, value)
1759
+ : SeqTwoByteString::cast(this)->SeqTwoByteStringSet(index, value);
1760
+ }
1761
+
1762
+
1763
+ bool String::IsFlat() {
1764
+ switch (StringShape(this).representation_tag()) {
1765
+ case kConsStringTag: {
1766
+ String* second = ConsString::cast(this)->second();
1767
+ // Only flattened strings have second part empty.
1768
+ return second->length() == 0;
1769
+ }
1770
+ default:
1771
+ return true;
1772
+ }
1773
+ }
1774
+
1775
+
1776
+ uint16_t SeqAsciiString::SeqAsciiStringGet(int index) {
1777
+ ASSERT(index >= 0 && index < length());
1778
+ return READ_BYTE_FIELD(this, kHeaderSize + index * kCharSize);
1779
+ }
1780
+
1781
+
1782
+ void SeqAsciiString::SeqAsciiStringSet(int index, uint16_t value) {
1783
+ ASSERT(index >= 0 && index < length() && value <= kMaxAsciiCharCode);
1784
+ WRITE_BYTE_FIELD(this, kHeaderSize + index * kCharSize,
1785
+ static_cast<byte>(value));
1786
+ }
1787
+
1788
+
1789
+ Address SeqAsciiString::GetCharsAddress() {
1790
+ return FIELD_ADDR(this, kHeaderSize);
1791
+ }
1792
+
1793
+
1794
+ char* SeqAsciiString::GetChars() {
1795
+ return reinterpret_cast<char*>(GetCharsAddress());
1796
+ }
1797
+
1798
+
1799
+ Address SeqTwoByteString::GetCharsAddress() {
1800
+ return FIELD_ADDR(this, kHeaderSize);
1801
+ }
1802
+
1803
+
1804
+ uc16* SeqTwoByteString::GetChars() {
1805
+ return reinterpret_cast<uc16*>(FIELD_ADDR(this, kHeaderSize));
1806
+ }
1807
+
1808
+
1809
+ uint16_t SeqTwoByteString::SeqTwoByteStringGet(int index) {
1810
+ ASSERT(index >= 0 && index < length());
1811
+ return READ_SHORT_FIELD(this, kHeaderSize + index * kShortSize);
1812
+ }
1813
+
1814
+
1815
+ void SeqTwoByteString::SeqTwoByteStringSet(int index, uint16_t value) {
1816
+ ASSERT(index >= 0 && index < length());
1817
+ WRITE_SHORT_FIELD(this, kHeaderSize + index * kShortSize, value);
1818
+ }
1819
+
1820
+
1821
+ int SeqTwoByteString::SeqTwoByteStringSize(InstanceType instance_type) {
1822
+ return SizeFor(length());
1823
+ }
1824
+
1825
+
1826
+ int SeqAsciiString::SeqAsciiStringSize(InstanceType instance_type) {
1827
+ return SizeFor(length());
1828
+ }
1829
+
1830
+
1831
+ String* ConsString::first() {
1832
+ return String::cast(READ_FIELD(this, kFirstOffset));
1833
+ }
1834
+
1835
+
1836
+ Object* ConsString::unchecked_first() {
1837
+ return READ_FIELD(this, kFirstOffset);
1838
+ }
1839
+
1840
+
1841
+ void ConsString::set_first(String* value, WriteBarrierMode mode) {
1842
+ WRITE_FIELD(this, kFirstOffset, value);
1843
+ CONDITIONAL_WRITE_BARRIER(this, kFirstOffset, mode);
1844
+ }
1845
+
1846
+
1847
+ String* ConsString::second() {
1848
+ return String::cast(READ_FIELD(this, kSecondOffset));
1849
+ }
1850
+
1851
+
1852
+ Object* ConsString::unchecked_second() {
1853
+ return READ_FIELD(this, kSecondOffset);
1854
+ }
1855
+
1856
+
1857
+ void ConsString::set_second(String* value, WriteBarrierMode mode) {
1858
+ WRITE_FIELD(this, kSecondOffset, value);
1859
+ CONDITIONAL_WRITE_BARRIER(this, kSecondOffset, mode);
1860
+ }
1861
+
1862
+
1863
+ ExternalAsciiString::Resource* ExternalAsciiString::resource() {
1864
+ return *reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset));
1865
+ }
1866
+
1867
+
1868
+ void ExternalAsciiString::set_resource(
1869
+ ExternalAsciiString::Resource* resource) {
1870
+ *reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset)) = resource;
1871
+ }
1872
+
1873
+
1874
+ ExternalTwoByteString::Resource* ExternalTwoByteString::resource() {
1875
+ return *reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset));
1876
+ }
1877
+
1878
+
1879
+ void ExternalTwoByteString::set_resource(
1880
+ ExternalTwoByteString::Resource* resource) {
1881
+ *reinterpret_cast<Resource**>(FIELD_ADDR(this, kResourceOffset)) = resource;
1882
+ }
1883
+
1884
+
1885
+ void JSFunctionResultCache::MakeZeroSize() {
1886
+ set(kFingerIndex, Smi::FromInt(kEntriesIndex));
1887
+ set(kCacheSizeIndex, Smi::FromInt(kEntriesIndex));
1888
+ }
1889
+
1890
+
1891
+ void JSFunctionResultCache::Clear() {
1892
+ int cache_size = Smi::cast(get(kCacheSizeIndex))->value();
1893
+ Object** entries_start = RawField(this, OffsetOfElementAt(kEntriesIndex));
1894
+ MemsetPointer(entries_start, Heap::the_hole_value(), cache_size);
1895
+ MakeZeroSize();
1896
+ }
1897
+
1898
+
1899
+ byte ByteArray::get(int index) {
1900
+ ASSERT(index >= 0 && index < this->length());
1901
+ return READ_BYTE_FIELD(this, kHeaderSize + index * kCharSize);
1902
+ }
1903
+
1904
+
1905
+ void ByteArray::set(int index, byte value) {
1906
+ ASSERT(index >= 0 && index < this->length());
1907
+ WRITE_BYTE_FIELD(this, kHeaderSize + index * kCharSize, value);
1908
+ }
1909
+
1910
+
1911
+ int ByteArray::get_int(int index) {
1912
+ ASSERT(index >= 0 && (index * kIntSize) < this->length());
1913
+ return READ_INT_FIELD(this, kHeaderSize + index * kIntSize);
1914
+ }
1915
+
1916
+
1917
+ ByteArray* ByteArray::FromDataStartAddress(Address address) {
1918
+ ASSERT_TAG_ALIGNED(address);
1919
+ return reinterpret_cast<ByteArray*>(address - kHeaderSize + kHeapObjectTag);
1920
+ }
1921
+
1922
+
1923
+ Address ByteArray::GetDataStartAddress() {
1924
+ return reinterpret_cast<Address>(this) - kHeapObjectTag + kHeaderSize;
1925
+ }
1926
+
1927
+
1928
+ uint8_t* PixelArray::external_pointer() {
1929
+ intptr_t ptr = READ_INTPTR_FIELD(this, kExternalPointerOffset);
1930
+ return reinterpret_cast<uint8_t*>(ptr);
1931
+ }
1932
+
1933
+
1934
+ void PixelArray::set_external_pointer(uint8_t* value, WriteBarrierMode mode) {
1935
+ intptr_t ptr = reinterpret_cast<intptr_t>(value);
1936
+ WRITE_INTPTR_FIELD(this, kExternalPointerOffset, ptr);
1937
+ }
1938
+
1939
+
1940
+ uint8_t PixelArray::get(int index) {
1941
+ ASSERT((index >= 0) && (index < this->length()));
1942
+ uint8_t* ptr = external_pointer();
1943
+ return ptr[index];
1944
+ }
1945
+
1946
+
1947
+ void PixelArray::set(int index, uint8_t value) {
1948
+ ASSERT((index >= 0) && (index < this->length()));
1949
+ uint8_t* ptr = external_pointer();
1950
+ ptr[index] = value;
1951
+ }
1952
+
1953
+
1954
+ void* ExternalArray::external_pointer() {
1955
+ intptr_t ptr = READ_INTPTR_FIELD(this, kExternalPointerOffset);
1956
+ return reinterpret_cast<void*>(ptr);
1957
+ }
1958
+
1959
+
1960
+ void ExternalArray::set_external_pointer(void* value, WriteBarrierMode mode) {
1961
+ intptr_t ptr = reinterpret_cast<intptr_t>(value);
1962
+ WRITE_INTPTR_FIELD(this, kExternalPointerOffset, ptr);
1963
+ }
1964
+
1965
+
1966
+ int8_t ExternalByteArray::get(int index) {
1967
+ ASSERT((index >= 0) && (index < this->length()));
1968
+ int8_t* ptr = static_cast<int8_t*>(external_pointer());
1969
+ return ptr[index];
1970
+ }
1971
+
1972
+
1973
+ void ExternalByteArray::set(int index, int8_t value) {
1974
+ ASSERT((index >= 0) && (index < this->length()));
1975
+ int8_t* ptr = static_cast<int8_t*>(external_pointer());
1976
+ ptr[index] = value;
1977
+ }
1978
+
1979
+
1980
+ uint8_t ExternalUnsignedByteArray::get(int index) {
1981
+ ASSERT((index >= 0) && (index < this->length()));
1982
+ uint8_t* ptr = static_cast<uint8_t*>(external_pointer());
1983
+ return ptr[index];
1984
+ }
1985
+
1986
+
1987
+ void ExternalUnsignedByteArray::set(int index, uint8_t value) {
1988
+ ASSERT((index >= 0) && (index < this->length()));
1989
+ uint8_t* ptr = static_cast<uint8_t*>(external_pointer());
1990
+ ptr[index] = value;
1991
+ }
1992
+
1993
+
1994
+ int16_t ExternalShortArray::get(int index) {
1995
+ ASSERT((index >= 0) && (index < this->length()));
1996
+ int16_t* ptr = static_cast<int16_t*>(external_pointer());
1997
+ return ptr[index];
1998
+ }
1999
+
2000
+
2001
+ void ExternalShortArray::set(int index, int16_t value) {
2002
+ ASSERT((index >= 0) && (index < this->length()));
2003
+ int16_t* ptr = static_cast<int16_t*>(external_pointer());
2004
+ ptr[index] = value;
2005
+ }
2006
+
2007
+
2008
+ uint16_t ExternalUnsignedShortArray::get(int index) {
2009
+ ASSERT((index >= 0) && (index < this->length()));
2010
+ uint16_t* ptr = static_cast<uint16_t*>(external_pointer());
2011
+ return ptr[index];
2012
+ }
2013
+
2014
+
2015
+ void ExternalUnsignedShortArray::set(int index, uint16_t value) {
2016
+ ASSERT((index >= 0) && (index < this->length()));
2017
+ uint16_t* ptr = static_cast<uint16_t*>(external_pointer());
2018
+ ptr[index] = value;
2019
+ }
2020
+
2021
+
2022
+ int32_t ExternalIntArray::get(int index) {
2023
+ ASSERT((index >= 0) && (index < this->length()));
2024
+ int32_t* ptr = static_cast<int32_t*>(external_pointer());
2025
+ return ptr[index];
2026
+ }
2027
+
2028
+
2029
+ void ExternalIntArray::set(int index, int32_t value) {
2030
+ ASSERT((index >= 0) && (index < this->length()));
2031
+ int32_t* ptr = static_cast<int32_t*>(external_pointer());
2032
+ ptr[index] = value;
2033
+ }
2034
+
2035
+
2036
+ uint32_t ExternalUnsignedIntArray::get(int index) {
2037
+ ASSERT((index >= 0) && (index < this->length()));
2038
+ uint32_t* ptr = static_cast<uint32_t*>(external_pointer());
2039
+ return ptr[index];
2040
+ }
2041
+
2042
+
2043
+ void ExternalUnsignedIntArray::set(int index, uint32_t value) {
2044
+ ASSERT((index >= 0) && (index < this->length()));
2045
+ uint32_t* ptr = static_cast<uint32_t*>(external_pointer());
2046
+ ptr[index] = value;
2047
+ }
2048
+
2049
+
2050
+ float ExternalFloatArray::get(int index) {
2051
+ ASSERT((index >= 0) && (index < this->length()));
2052
+ float* ptr = static_cast<float*>(external_pointer());
2053
+ return ptr[index];
2054
+ }
2055
+
2056
+
2057
+ void ExternalFloatArray::set(int index, float value) {
2058
+ ASSERT((index >= 0) && (index < this->length()));
2059
+ float* ptr = static_cast<float*>(external_pointer());
2060
+ ptr[index] = value;
2061
+ }
2062
+
2063
+ inline Scavenger Map::scavenger() {
2064
+ Scavenger callback = reinterpret_cast<Scavenger>(
2065
+ READ_INTPTR_FIELD(this, kScavengerCallbackOffset));
2066
+
2067
+ ASSERT(callback == Heap::GetScavenger(instance_type(),
2068
+ instance_size()));
2069
+
2070
+ return callback;
2071
+ }
2072
+
2073
+ inline void Map::set_scavenger(Scavenger callback) {
2074
+ WRITE_INTPTR_FIELD(this,
2075
+ kScavengerCallbackOffset,
2076
+ reinterpret_cast<intptr_t>(callback));
2077
+ }
2078
+
2079
+ int Map::instance_size() {
2080
+ return READ_BYTE_FIELD(this, kInstanceSizeOffset) << kPointerSizeLog2;
2081
+ }
2082
+
2083
+
2084
+ int Map::inobject_properties() {
2085
+ return READ_BYTE_FIELD(this, kInObjectPropertiesOffset);
2086
+ }
2087
+
2088
+
2089
+ int Map::pre_allocated_property_fields() {
2090
+ return READ_BYTE_FIELD(this, kPreAllocatedPropertyFieldsOffset);
2091
+ }
2092
+
2093
+
2094
+ int HeapObject::SizeFromMap(Map* map) {
2095
+ InstanceType instance_type = map->instance_type();
2096
+ // Only inline the most frequent cases.
2097
+ if (instance_type == JS_OBJECT_TYPE ||
2098
+ (instance_type & (kIsNotStringMask | kStringRepresentationMask)) ==
2099
+ (kStringTag | kConsStringTag) ||
2100
+ instance_type == JS_ARRAY_TYPE) return map->instance_size();
2101
+ if (instance_type == FIXED_ARRAY_TYPE) {
2102
+ return reinterpret_cast<FixedArray*>(this)->FixedArraySize();
2103
+ }
2104
+ if (instance_type == BYTE_ARRAY_TYPE) {
2105
+ return reinterpret_cast<ByteArray*>(this)->ByteArraySize();
2106
+ }
2107
+ // Otherwise do the general size computation.
2108
+ return SlowSizeFromMap(map);
2109
+ }
2110
+
2111
+
2112
+ void Map::set_instance_size(int value) {
2113
+ ASSERT_EQ(0, value & (kPointerSize - 1));
2114
+ value >>= kPointerSizeLog2;
2115
+ ASSERT(0 <= value && value < 256);
2116
+ WRITE_BYTE_FIELD(this, kInstanceSizeOffset, static_cast<byte>(value));
2117
+ }
2118
+
2119
+
2120
+ void Map::set_inobject_properties(int value) {
2121
+ ASSERT(0 <= value && value < 256);
2122
+ WRITE_BYTE_FIELD(this, kInObjectPropertiesOffset, static_cast<byte>(value));
2123
+ }
2124
+
2125
+
2126
+ void Map::set_pre_allocated_property_fields(int value) {
2127
+ ASSERT(0 <= value && value < 256);
2128
+ WRITE_BYTE_FIELD(this,
2129
+ kPreAllocatedPropertyFieldsOffset,
2130
+ static_cast<byte>(value));
2131
+ }
2132
+
2133
+
2134
+ InstanceType Map::instance_type() {
2135
+ return static_cast<InstanceType>(READ_BYTE_FIELD(this, kInstanceTypeOffset));
2136
+ }
2137
+
2138
+
2139
+ void Map::set_instance_type(InstanceType value) {
2140
+ ASSERT(0 <= value && value < 256);
2141
+ WRITE_BYTE_FIELD(this, kInstanceTypeOffset, value);
2142
+ }
2143
+
2144
+
2145
+ int Map::unused_property_fields() {
2146
+ return READ_BYTE_FIELD(this, kUnusedPropertyFieldsOffset);
2147
+ }
2148
+
2149
+
2150
+ void Map::set_unused_property_fields(int value) {
2151
+ WRITE_BYTE_FIELD(this, kUnusedPropertyFieldsOffset, Min(value, 255));
2152
+ }
2153
+
2154
+
2155
+ byte Map::bit_field() {
2156
+ return READ_BYTE_FIELD(this, kBitFieldOffset);
2157
+ }
2158
+
2159
+
2160
+ void Map::set_bit_field(byte value) {
2161
+ WRITE_BYTE_FIELD(this, kBitFieldOffset, value);
2162
+ }
2163
+
2164
+
2165
+ byte Map::bit_field2() {
2166
+ return READ_BYTE_FIELD(this, kBitField2Offset);
2167
+ }
2168
+
2169
+
2170
+ void Map::set_bit_field2(byte value) {
2171
+ WRITE_BYTE_FIELD(this, kBitField2Offset, value);
2172
+ }
2173
+
2174
+
2175
+ void Map::set_non_instance_prototype(bool value) {
2176
+ if (value) {
2177
+ set_bit_field(bit_field() | (1 << kHasNonInstancePrototype));
2178
+ } else {
2179
+ set_bit_field(bit_field() & ~(1 << kHasNonInstancePrototype));
2180
+ }
2181
+ }
2182
+
2183
+
2184
+ bool Map::has_non_instance_prototype() {
2185
+ return ((1 << kHasNonInstancePrototype) & bit_field()) != 0;
2186
+ }
2187
+
2188
+
2189
+ void Map::set_function_with_prototype(bool value) {
2190
+ if (value) {
2191
+ set_bit_field2(bit_field2() | (1 << kFunctionWithPrototype));
2192
+ } else {
2193
+ set_bit_field2(bit_field2() & ~(1 << kFunctionWithPrototype));
2194
+ }
2195
+ }
2196
+
2197
+
2198
+ bool Map::function_with_prototype() {
2199
+ return ((1 << kFunctionWithPrototype) & bit_field2()) != 0;
2200
+ }
2201
+
2202
+
2203
+ void Map::set_is_access_check_needed(bool access_check_needed) {
2204
+ if (access_check_needed) {
2205
+ set_bit_field(bit_field() | (1 << kIsAccessCheckNeeded));
2206
+ } else {
2207
+ set_bit_field(bit_field() & ~(1 << kIsAccessCheckNeeded));
2208
+ }
2209
+ }
2210
+
2211
+
2212
+ bool Map::is_access_check_needed() {
2213
+ return ((1 << kIsAccessCheckNeeded) & bit_field()) != 0;
2214
+ }
2215
+
2216
+
2217
+ void Map::set_is_extensible(bool value) {
2218
+ if (value) {
2219
+ set_bit_field2(bit_field2() | (1 << kIsExtensible));
2220
+ } else {
2221
+ set_bit_field2(bit_field2() & ~(1 << kIsExtensible));
2222
+ }
2223
+ }
2224
+
2225
+ bool Map::is_extensible() {
2226
+ return ((1 << kIsExtensible) & bit_field2()) != 0;
2227
+ }
2228
+
2229
+
2230
+
2231
+ Code::Flags Code::flags() {
2232
+ return static_cast<Flags>(READ_INT_FIELD(this, kFlagsOffset));
2233
+ }
2234
+
2235
+
2236
+ void Code::set_flags(Code::Flags flags) {
2237
+ STATIC_ASSERT(Code::NUMBER_OF_KINDS <= (kFlagsKindMask >> kFlagsKindShift)+1);
2238
+ // Make sure that all call stubs have an arguments count.
2239
+ ASSERT((ExtractKindFromFlags(flags) != CALL_IC &&
2240
+ ExtractKindFromFlags(flags) != KEYED_CALL_IC) ||
2241
+ ExtractArgumentsCountFromFlags(flags) >= 0);
2242
+ WRITE_INT_FIELD(this, kFlagsOffset, flags);
2243
+ }
2244
+
2245
+
2246
+ Code::Kind Code::kind() {
2247
+ return ExtractKindFromFlags(flags());
2248
+ }
2249
+
2250
+
2251
+ InLoopFlag Code::ic_in_loop() {
2252
+ return ExtractICInLoopFromFlags(flags());
2253
+ }
2254
+
2255
+
2256
+ InlineCacheState Code::ic_state() {
2257
+ InlineCacheState result = ExtractICStateFromFlags(flags());
2258
+ // Only allow uninitialized or debugger states for non-IC code
2259
+ // objects. This is used in the debugger to determine whether or not
2260
+ // a call to code object has been replaced with a debug break call.
2261
+ ASSERT(is_inline_cache_stub() ||
2262
+ result == UNINITIALIZED ||
2263
+ result == DEBUG_BREAK ||
2264
+ result == DEBUG_PREPARE_STEP_IN);
2265
+ return result;
2266
+ }
2267
+
2268
+
2269
+ PropertyType Code::type() {
2270
+ ASSERT(ic_state() == MONOMORPHIC);
2271
+ return ExtractTypeFromFlags(flags());
2272
+ }
2273
+
2274
+
2275
+ int Code::arguments_count() {
2276
+ ASSERT(is_call_stub() || is_keyed_call_stub() || kind() == STUB);
2277
+ return ExtractArgumentsCountFromFlags(flags());
2278
+ }
2279
+
2280
+
2281
+ CodeStub::Major Code::major_key() {
2282
+ ASSERT(kind() == STUB || kind() == BINARY_OP_IC);
2283
+ return static_cast<CodeStub::Major>(READ_BYTE_FIELD(this,
2284
+ kStubMajorKeyOffset));
2285
+ }
2286
+
2287
+
2288
+ void Code::set_major_key(CodeStub::Major major) {
2289
+ ASSERT(kind() == STUB || kind() == BINARY_OP_IC);
2290
+ ASSERT(0 <= major && major < 256);
2291
+ WRITE_BYTE_FIELD(this, kStubMajorKeyOffset, major);
2292
+ }
2293
+
2294
+
2295
+ bool Code::is_inline_cache_stub() {
2296
+ Kind kind = this->kind();
2297
+ return kind >= FIRST_IC_KIND && kind <= LAST_IC_KIND;
2298
+ }
2299
+
2300
+
2301
+ Code::Flags Code::ComputeFlags(Kind kind,
2302
+ InLoopFlag in_loop,
2303
+ InlineCacheState ic_state,
2304
+ PropertyType type,
2305
+ int argc,
2306
+ InlineCacheHolderFlag holder) {
2307
+ // Compute the bit mask.
2308
+ int bits = kind << kFlagsKindShift;
2309
+ if (in_loop) bits |= kFlagsICInLoopMask;
2310
+ bits |= ic_state << kFlagsICStateShift;
2311
+ bits |= type << kFlagsTypeShift;
2312
+ bits |= argc << kFlagsArgumentsCountShift;
2313
+ if (holder == PROTOTYPE_MAP) bits |= kFlagsCacheInPrototypeMapMask;
2314
+ // Cast to flags and validate result before returning it.
2315
+ Flags result = static_cast<Flags>(bits);
2316
+ ASSERT(ExtractKindFromFlags(result) == kind);
2317
+ ASSERT(ExtractICStateFromFlags(result) == ic_state);
2318
+ ASSERT(ExtractICInLoopFromFlags(result) == in_loop);
2319
+ ASSERT(ExtractTypeFromFlags(result) == type);
2320
+ ASSERT(ExtractArgumentsCountFromFlags(result) == argc);
2321
+ return result;
2322
+ }
2323
+
2324
+
2325
+ Code::Flags Code::ComputeMonomorphicFlags(Kind kind,
2326
+ PropertyType type,
2327
+ InlineCacheHolderFlag holder,
2328
+ InLoopFlag in_loop,
2329
+ int argc) {
2330
+ return ComputeFlags(kind, in_loop, MONOMORPHIC, type, argc, holder);
2331
+ }
2332
+
2333
+
2334
+ Code::Kind Code::ExtractKindFromFlags(Flags flags) {
2335
+ int bits = (flags & kFlagsKindMask) >> kFlagsKindShift;
2336
+ return static_cast<Kind>(bits);
2337
+ }
2338
+
2339
+
2340
+ InlineCacheState Code::ExtractICStateFromFlags(Flags flags) {
2341
+ int bits = (flags & kFlagsICStateMask) >> kFlagsICStateShift;
2342
+ return static_cast<InlineCacheState>(bits);
2343
+ }
2344
+
2345
+
2346
+ InLoopFlag Code::ExtractICInLoopFromFlags(Flags flags) {
2347
+ int bits = (flags & kFlagsICInLoopMask);
2348
+ return bits != 0 ? IN_LOOP : NOT_IN_LOOP;
2349
+ }
2350
+
2351
+
2352
+ PropertyType Code::ExtractTypeFromFlags(Flags flags) {
2353
+ int bits = (flags & kFlagsTypeMask) >> kFlagsTypeShift;
2354
+ return static_cast<PropertyType>(bits);
2355
+ }
2356
+
2357
+
2358
+ int Code::ExtractArgumentsCountFromFlags(Flags flags) {
2359
+ return (flags & kFlagsArgumentsCountMask) >> kFlagsArgumentsCountShift;
2360
+ }
2361
+
2362
+
2363
+ InlineCacheHolderFlag Code::ExtractCacheHolderFromFlags(Flags flags) {
2364
+ int bits = (flags & kFlagsCacheInPrototypeMapMask);
2365
+ return bits != 0 ? PROTOTYPE_MAP : OWN_MAP;
2366
+ }
2367
+
2368
+
2369
+ Code::Flags Code::RemoveTypeFromFlags(Flags flags) {
2370
+ int bits = flags & ~kFlagsTypeMask;
2371
+ return static_cast<Flags>(bits);
2372
+ }
2373
+
2374
+
2375
+ Code* Code::GetCodeFromTargetAddress(Address address) {
2376
+ HeapObject* code = HeapObject::FromAddress(address - Code::kHeaderSize);
2377
+ // GetCodeFromTargetAddress might be called when marking objects during mark
2378
+ // sweep. reinterpret_cast is therefore used instead of the more appropriate
2379
+ // Code::cast. Code::cast does not work when the object's map is
2380
+ // marked.
2381
+ Code* result = reinterpret_cast<Code*>(code);
2382
+ return result;
2383
+ }
2384
+
2385
+
2386
+ Object* Map::prototype() {
2387
+ return READ_FIELD(this, kPrototypeOffset);
2388
+ }
2389
+
2390
+
2391
+ void Map::set_prototype(Object* value, WriteBarrierMode mode) {
2392
+ ASSERT(value->IsNull() || value->IsJSObject());
2393
+ WRITE_FIELD(this, kPrototypeOffset, value);
2394
+ CONDITIONAL_WRITE_BARRIER(this, kPrototypeOffset, mode);
2395
+ }
2396
+
2397
+
2398
+ Object* Map::GetFastElementsMap() {
2399
+ if (has_fast_elements()) return this;
2400
+ Object* obj = CopyDropTransitions();
2401
+ if (obj->IsFailure()) return obj;
2402
+ Map* new_map = Map::cast(obj);
2403
+ new_map->set_has_fast_elements(true);
2404
+ return new_map;
2405
+ }
2406
+
2407
+
2408
+ Object* Map::GetSlowElementsMap() {
2409
+ if (!has_fast_elements()) return this;
2410
+ Object* obj = CopyDropTransitions();
2411
+ if (obj->IsFailure()) return obj;
2412
+ Map* new_map = Map::cast(obj);
2413
+ new_map->set_has_fast_elements(false);
2414
+ return new_map;
2415
+ }
2416
+
2417
+
2418
+ ACCESSORS(Map, instance_descriptors, DescriptorArray,
2419
+ kInstanceDescriptorsOffset)
2420
+ ACCESSORS(Map, code_cache, Object, kCodeCacheOffset)
2421
+ ACCESSORS(Map, constructor, Object, kConstructorOffset)
2422
+
2423
+ ACCESSORS(JSFunction, shared, SharedFunctionInfo, kSharedFunctionInfoOffset)
2424
+ ACCESSORS(JSFunction, literals, FixedArray, kLiteralsOffset)
2425
+
2426
+ ACCESSORS(GlobalObject, builtins, JSBuiltinsObject, kBuiltinsOffset)
2427
+ ACCESSORS(GlobalObject, global_context, Context, kGlobalContextOffset)
2428
+ ACCESSORS(GlobalObject, global_receiver, JSObject, kGlobalReceiverOffset)
2429
+
2430
+ ACCESSORS(JSGlobalProxy, context, Object, kContextOffset)
2431
+
2432
+ ACCESSORS(AccessorInfo, getter, Object, kGetterOffset)
2433
+ ACCESSORS(AccessorInfo, setter, Object, kSetterOffset)
2434
+ ACCESSORS(AccessorInfo, data, Object, kDataOffset)
2435
+ ACCESSORS(AccessorInfo, name, Object, kNameOffset)
2436
+ ACCESSORS(AccessorInfo, flag, Smi, kFlagOffset)
2437
+ ACCESSORS(AccessorInfo, load_stub_cache, Object, kLoadStubCacheOffset)
2438
+
2439
+ ACCESSORS(AccessCheckInfo, named_callback, Object, kNamedCallbackOffset)
2440
+ ACCESSORS(AccessCheckInfo, indexed_callback, Object, kIndexedCallbackOffset)
2441
+ ACCESSORS(AccessCheckInfo, data, Object, kDataOffset)
2442
+
2443
+ ACCESSORS(InterceptorInfo, getter, Object, kGetterOffset)
2444
+ ACCESSORS(InterceptorInfo, setter, Object, kSetterOffset)
2445
+ ACCESSORS(InterceptorInfo, query, Object, kQueryOffset)
2446
+ ACCESSORS(InterceptorInfo, deleter, Object, kDeleterOffset)
2447
+ ACCESSORS(InterceptorInfo, enumerator, Object, kEnumeratorOffset)
2448
+ ACCESSORS(InterceptorInfo, data, Object, kDataOffset)
2449
+
2450
+ ACCESSORS(CallHandlerInfo, callback, Object, kCallbackOffset)
2451
+ ACCESSORS(CallHandlerInfo, data, Object, kDataOffset)
2452
+
2453
+ ACCESSORS(TemplateInfo, tag, Object, kTagOffset)
2454
+ ACCESSORS(TemplateInfo, property_list, Object, kPropertyListOffset)
2455
+
2456
+ ACCESSORS(FunctionTemplateInfo, serial_number, Object, kSerialNumberOffset)
2457
+ ACCESSORS(FunctionTemplateInfo, call_code, Object, kCallCodeOffset)
2458
+ ACCESSORS(FunctionTemplateInfo, property_accessors, Object,
2459
+ kPropertyAccessorsOffset)
2460
+ ACCESSORS(FunctionTemplateInfo, prototype_template, Object,
2461
+ kPrototypeTemplateOffset)
2462
+ ACCESSORS(FunctionTemplateInfo, parent_template, Object, kParentTemplateOffset)
2463
+ ACCESSORS(FunctionTemplateInfo, named_property_handler, Object,
2464
+ kNamedPropertyHandlerOffset)
2465
+ ACCESSORS(FunctionTemplateInfo, indexed_property_handler, Object,
2466
+ kIndexedPropertyHandlerOffset)
2467
+ ACCESSORS(FunctionTemplateInfo, instance_template, Object,
2468
+ kInstanceTemplateOffset)
2469
+ ACCESSORS(FunctionTemplateInfo, class_name, Object, kClassNameOffset)
2470
+ ACCESSORS(FunctionTemplateInfo, signature, Object, kSignatureOffset)
2471
+ ACCESSORS(FunctionTemplateInfo, instance_call_handler, Object,
2472
+ kInstanceCallHandlerOffset)
2473
+ ACCESSORS(FunctionTemplateInfo, access_check_info, Object,
2474
+ kAccessCheckInfoOffset)
2475
+ ACCESSORS(FunctionTemplateInfo, flag, Smi, kFlagOffset)
2476
+
2477
+ ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset)
2478
+ ACCESSORS(ObjectTemplateInfo, internal_field_count, Object,
2479
+ kInternalFieldCountOffset)
2480
+
2481
+ ACCESSORS(SignatureInfo, receiver, Object, kReceiverOffset)
2482
+ ACCESSORS(SignatureInfo, args, Object, kArgsOffset)
2483
+
2484
+ ACCESSORS(TypeSwitchInfo, types, Object, kTypesOffset)
2485
+
2486
+ ACCESSORS(Script, source, Object, kSourceOffset)
2487
+ ACCESSORS(Script, name, Object, kNameOffset)
2488
+ ACCESSORS(Script, id, Object, kIdOffset)
2489
+ ACCESSORS(Script, line_offset, Smi, kLineOffsetOffset)
2490
+ ACCESSORS(Script, column_offset, Smi, kColumnOffsetOffset)
2491
+ ACCESSORS(Script, data, Object, kDataOffset)
2492
+ ACCESSORS(Script, context_data, Object, kContextOffset)
2493
+ ACCESSORS(Script, wrapper, Proxy, kWrapperOffset)
2494
+ ACCESSORS(Script, type, Smi, kTypeOffset)
2495
+ ACCESSORS(Script, compilation_type, Smi, kCompilationTypeOffset)
2496
+ ACCESSORS(Script, line_ends, Object, kLineEndsOffset)
2497
+ ACCESSORS(Script, eval_from_shared, Object, kEvalFromSharedOffset)
2498
+ ACCESSORS(Script, eval_from_instructions_offset, Smi,
2499
+ kEvalFrominstructionsOffsetOffset)
2500
+
2501
+ #ifdef ENABLE_DEBUGGER_SUPPORT
2502
+ ACCESSORS(DebugInfo, shared, SharedFunctionInfo, kSharedFunctionInfoIndex)
2503
+ ACCESSORS(DebugInfo, original_code, Code, kOriginalCodeIndex)
2504
+ ACCESSORS(DebugInfo, code, Code, kPatchedCodeIndex)
2505
+ ACCESSORS(DebugInfo, break_points, FixedArray, kBreakPointsStateIndex)
2506
+
2507
+ ACCESSORS(BreakPointInfo, code_position, Smi, kCodePositionIndex)
2508
+ ACCESSORS(BreakPointInfo, source_position, Smi, kSourcePositionIndex)
2509
+ ACCESSORS(BreakPointInfo, statement_position, Smi, kStatementPositionIndex)
2510
+ ACCESSORS(BreakPointInfo, break_point_objects, Object, kBreakPointObjectsIndex)
2511
+ #endif
2512
+
2513
+ ACCESSORS(SharedFunctionInfo, name, Object, kNameOffset)
2514
+ ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset)
2515
+ ACCESSORS(SharedFunctionInfo, instance_class_name, Object,
2516
+ kInstanceClassNameOffset)
2517
+ ACCESSORS(SharedFunctionInfo, function_data, Object, kFunctionDataOffset)
2518
+ ACCESSORS(SharedFunctionInfo, script, Object, kScriptOffset)
2519
+ ACCESSORS(SharedFunctionInfo, debug_info, Object, kDebugInfoOffset)
2520
+ ACCESSORS(SharedFunctionInfo, inferred_name, String, kInferredNameOffset)
2521
+ ACCESSORS(SharedFunctionInfo, this_property_assignments, Object,
2522
+ kThisPropertyAssignmentsOffset)
2523
+
2524
+ BOOL_ACCESSORS(FunctionTemplateInfo, flag, hidden_prototype,
2525
+ kHiddenPrototypeBit)
2526
+ BOOL_ACCESSORS(FunctionTemplateInfo, flag, undetectable, kUndetectableBit)
2527
+ BOOL_ACCESSORS(FunctionTemplateInfo, flag, needs_access_check,
2528
+ kNeedsAccessCheckBit)
2529
+ BOOL_ACCESSORS(SharedFunctionInfo, start_position_and_type, is_expression,
2530
+ kIsExpressionBit)
2531
+ BOOL_ACCESSORS(SharedFunctionInfo, start_position_and_type, is_toplevel,
2532
+ kIsTopLevelBit)
2533
+ BOOL_GETTER(SharedFunctionInfo, compiler_hints,
2534
+ has_only_simple_this_property_assignments,
2535
+ kHasOnlySimpleThisPropertyAssignments)
2536
+ BOOL_ACCESSORS(SharedFunctionInfo,
2537
+ compiler_hints,
2538
+ try_full_codegen,
2539
+ kTryFullCodegen)
2540
+ BOOL_ACCESSORS(SharedFunctionInfo,
2541
+ compiler_hints,
2542
+ allows_lazy_compilation,
2543
+ kAllowLazyCompilation)
2544
+
2545
+ #if V8_HOST_ARCH_32_BIT
2546
+ SMI_ACCESSORS(SharedFunctionInfo, length, kLengthOffset)
2547
+ SMI_ACCESSORS(SharedFunctionInfo, formal_parameter_count,
2548
+ kFormalParameterCountOffset)
2549
+ SMI_ACCESSORS(SharedFunctionInfo, expected_nof_properties,
2550
+ kExpectedNofPropertiesOffset)
2551
+ SMI_ACCESSORS(SharedFunctionInfo, num_literals, kNumLiteralsOffset)
2552
+ SMI_ACCESSORS(SharedFunctionInfo, start_position_and_type,
2553
+ kStartPositionAndTypeOffset)
2554
+ SMI_ACCESSORS(SharedFunctionInfo, end_position, kEndPositionOffset)
2555
+ SMI_ACCESSORS(SharedFunctionInfo, function_token_position,
2556
+ kFunctionTokenPositionOffset)
2557
+ SMI_ACCESSORS(SharedFunctionInfo, compiler_hints,
2558
+ kCompilerHintsOffset)
2559
+ SMI_ACCESSORS(SharedFunctionInfo, this_property_assignments_count,
2560
+ kThisPropertyAssignmentsCountOffset)
2561
+ #else
2562
+
2563
+ #define PSEUDO_SMI_ACCESSORS_LO(holder, name, offset) \
2564
+ int holder::name() { \
2565
+ int value = READ_INT_FIELD(this, offset); \
2566
+ ASSERT(kHeapObjectTag == 1); \
2567
+ ASSERT((value & kHeapObjectTag) == 0); \
2568
+ return value >> 1; \
2569
+ } \
2570
+ void holder::set_##name(int value) { \
2571
+ ASSERT(kHeapObjectTag == 1); \
2572
+ ASSERT((value & 0xC0000000) == 0xC0000000 || \
2573
+ (value & 0xC0000000) == 0x000000000); \
2574
+ WRITE_INT_FIELD(this, \
2575
+ offset, \
2576
+ (value << 1) & ~kHeapObjectTag); \
2577
+ }
2578
+
2579
+ #define PSEUDO_SMI_ACCESSORS_HI(holder, name, offset) \
2580
+ INT_ACCESSORS(holder, name, offset)
2581
+
2582
+
2583
+
2584
+ PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, length, kLengthOffset)
2585
+ PSEUDO_SMI_ACCESSORS_HI(SharedFunctionInfo, formal_parameter_count,
2586
+ kFormalParameterCountOffset)
2587
+
2588
+ PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, expected_nof_properties,
2589
+ kExpectedNofPropertiesOffset)
2590
+ PSEUDO_SMI_ACCESSORS_HI(SharedFunctionInfo, num_literals, kNumLiteralsOffset)
2591
+
2592
+ PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, start_position_and_type,
2593
+ kStartPositionAndTypeOffset)
2594
+ PSEUDO_SMI_ACCESSORS_HI(SharedFunctionInfo, end_position, kEndPositionOffset)
2595
+
2596
+ PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, function_token_position,
2597
+ kFunctionTokenPositionOffset)
2598
+ PSEUDO_SMI_ACCESSORS_HI(SharedFunctionInfo, compiler_hints,
2599
+ kCompilerHintsOffset)
2600
+
2601
+ PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, this_property_assignments_count,
2602
+ kThisPropertyAssignmentsCountOffset)
2603
+ #endif
2604
+
2605
+ ACCESSORS(CodeCache, default_cache, FixedArray, kDefaultCacheOffset)
2606
+ ACCESSORS(CodeCache, normal_type_cache, Object, kNormalTypeCacheOffset)
2607
+
2608
+ bool Script::HasValidSource() {
2609
+ Object* src = this->source();
2610
+ if (!src->IsString()) return true;
2611
+ String* src_str = String::cast(src);
2612
+ if (!StringShape(src_str).IsExternal()) return true;
2613
+ if (src_str->IsAsciiRepresentation()) {
2614
+ return ExternalAsciiString::cast(src)->resource() != NULL;
2615
+ } else if (src_str->IsTwoByteRepresentation()) {
2616
+ return ExternalTwoByteString::cast(src)->resource() != NULL;
2617
+ }
2618
+ return true;
2619
+ }
2620
+
2621
+
2622
+ void SharedFunctionInfo::DontAdaptArguments() {
2623
+ ASSERT(code()->kind() == Code::BUILTIN);
2624
+ set_formal_parameter_count(kDontAdaptArgumentsSentinel);
2625
+ }
2626
+
2627
+
2628
+ int SharedFunctionInfo::start_position() {
2629
+ return start_position_and_type() >> kStartPositionShift;
2630
+ }
2631
+
2632
+
2633
+ void SharedFunctionInfo::set_start_position(int start_position) {
2634
+ set_start_position_and_type((start_position << kStartPositionShift)
2635
+ | (start_position_and_type() & ~kStartPositionMask));
2636
+ }
2637
+
2638
+
2639
+ Code* SharedFunctionInfo::code() {
2640
+ return Code::cast(READ_FIELD(this, kCodeOffset));
2641
+ }
2642
+
2643
+
2644
+ void SharedFunctionInfo::set_code(Code* value, WriteBarrierMode mode) {
2645
+ WRITE_FIELD(this, kCodeOffset, value);
2646
+ CONDITIONAL_WRITE_BARRIER(this, kCodeOffset, mode);
2647
+ }
2648
+
2649
+
2650
+ SerializedScopeInfo* SharedFunctionInfo::scope_info() {
2651
+ return reinterpret_cast<SerializedScopeInfo*>(
2652
+ READ_FIELD(this, kScopeInfoOffset));
2653
+ }
2654
+
2655
+
2656
+ void SharedFunctionInfo::set_scope_info(SerializedScopeInfo* value,
2657
+ WriteBarrierMode mode) {
2658
+ WRITE_FIELD(this, kScopeInfoOffset, reinterpret_cast<Object*>(value));
2659
+ CONDITIONAL_WRITE_BARRIER(this, kScopeInfoOffset, mode);
2660
+ }
2661
+
2662
+
2663
+ bool SharedFunctionInfo::is_compiled() {
2664
+ // TODO(1242782): Create a code kind for uncompiled code.
2665
+ return code()->kind() != Code::STUB;
2666
+ }
2667
+
2668
+
2669
+ bool SharedFunctionInfo::IsApiFunction() {
2670
+ return function_data()->IsFunctionTemplateInfo();
2671
+ }
2672
+
2673
+
2674
+ FunctionTemplateInfo* SharedFunctionInfo::get_api_func_data() {
2675
+ ASSERT(IsApiFunction());
2676
+ return FunctionTemplateInfo::cast(function_data());
2677
+ }
2678
+
2679
+
2680
+ bool SharedFunctionInfo::HasCustomCallGenerator() {
2681
+ return function_data()->IsSmi();
2682
+ }
2683
+
2684
+
2685
+ int SharedFunctionInfo::custom_call_generator_id() {
2686
+ ASSERT(HasCustomCallGenerator());
2687
+ return Smi::cast(function_data())->value();
2688
+ }
2689
+
2690
+
2691
+ bool JSFunction::IsBuiltin() {
2692
+ return context()->global()->IsJSBuiltinsObject();
2693
+ }
2694
+
2695
+
2696
+ Code* JSFunction::code() {
2697
+ return shared()->code();
2698
+ }
2699
+
2700
+
2701
+ void JSFunction::set_code(Code* value) {
2702
+ shared()->set_code(value);
2703
+ }
2704
+
2705
+
2706
+ Context* JSFunction::context() {
2707
+ return Context::cast(READ_FIELD(this, kContextOffset));
2708
+ }
2709
+
2710
+
2711
+ Object* JSFunction::unchecked_context() {
2712
+ return READ_FIELD(this, kContextOffset);
2713
+ }
2714
+
2715
+
2716
+ void JSFunction::set_context(Object* value) {
2717
+ ASSERT(value == Heap::undefined_value() || value->IsContext());
2718
+ WRITE_FIELD(this, kContextOffset, value);
2719
+ WRITE_BARRIER(this, kContextOffset);
2720
+ }
2721
+
2722
+ ACCESSORS(JSFunction, prototype_or_initial_map, Object,
2723
+ kPrototypeOrInitialMapOffset)
2724
+
2725
+
2726
+ Map* JSFunction::initial_map() {
2727
+ return Map::cast(prototype_or_initial_map());
2728
+ }
2729
+
2730
+
2731
+ void JSFunction::set_initial_map(Map* value) {
2732
+ set_prototype_or_initial_map(value);
2733
+ }
2734
+
2735
+
2736
+ bool JSFunction::has_initial_map() {
2737
+ return prototype_or_initial_map()->IsMap();
2738
+ }
2739
+
2740
+
2741
+ bool JSFunction::has_instance_prototype() {
2742
+ return has_initial_map() || !prototype_or_initial_map()->IsTheHole();
2743
+ }
2744
+
2745
+
2746
+ bool JSFunction::has_prototype() {
2747
+ return map()->has_non_instance_prototype() || has_instance_prototype();
2748
+ }
2749
+
2750
+
2751
+ Object* JSFunction::instance_prototype() {
2752
+ ASSERT(has_instance_prototype());
2753
+ if (has_initial_map()) return initial_map()->prototype();
2754
+ // When there is no initial map and the prototype is a JSObject, the
2755
+ // initial map field is used for the prototype field.
2756
+ return prototype_or_initial_map();
2757
+ }
2758
+
2759
+
2760
+ Object* JSFunction::prototype() {
2761
+ ASSERT(has_prototype());
2762
+ // If the function's prototype property has been set to a non-JSObject
2763
+ // value, that value is stored in the constructor field of the map.
2764
+ if (map()->has_non_instance_prototype()) return map()->constructor();
2765
+ return instance_prototype();
2766
+ }
2767
+
2768
+ bool JSFunction::should_have_prototype() {
2769
+ return map()->function_with_prototype();
2770
+ }
2771
+
2772
+
2773
+ bool JSFunction::is_compiled() {
2774
+ return shared()->is_compiled();
2775
+ }
2776
+
2777
+
2778
+ int JSFunction::NumberOfLiterals() {
2779
+ return literals()->length();
2780
+ }
2781
+
2782
+
2783
+ Object* JSBuiltinsObject::javascript_builtin(Builtins::JavaScript id) {
2784
+ ASSERT(0 <= id && id < kJSBuiltinsCount);
2785
+ return READ_FIELD(this, OffsetOfFunctionWithId(id));
2786
+ }
2787
+
2788
+
2789
+ void JSBuiltinsObject::set_javascript_builtin(Builtins::JavaScript id,
2790
+ Object* value) {
2791
+ ASSERT(0 <= id && id < kJSBuiltinsCount);
2792
+ WRITE_FIELD(this, OffsetOfFunctionWithId(id), value);
2793
+ WRITE_BARRIER(this, OffsetOfFunctionWithId(id));
2794
+ }
2795
+
2796
+
2797
+ Code* JSBuiltinsObject::javascript_builtin_code(Builtins::JavaScript id) {
2798
+ ASSERT(0 <= id && id < kJSBuiltinsCount);
2799
+ return Code::cast(READ_FIELD(this, OffsetOfCodeWithId(id)));
2800
+ }
2801
+
2802
+
2803
+ void JSBuiltinsObject::set_javascript_builtin_code(Builtins::JavaScript id,
2804
+ Code* value) {
2805
+ ASSERT(0 <= id && id < kJSBuiltinsCount);
2806
+ WRITE_FIELD(this, OffsetOfCodeWithId(id), value);
2807
+ ASSERT(!Heap::InNewSpace(value));
2808
+ }
2809
+
2810
+
2811
+ Address Proxy::proxy() {
2812
+ return AddressFrom<Address>(READ_INTPTR_FIELD(this, kProxyOffset));
2813
+ }
2814
+
2815
+
2816
+ void Proxy::set_proxy(Address value) {
2817
+ WRITE_INTPTR_FIELD(this, kProxyOffset, OffsetFrom(value));
2818
+ }
2819
+
2820
+
2821
+ void Proxy::ProxyIterateBody(ObjectVisitor* visitor) {
2822
+ visitor->VisitExternalReference(
2823
+ reinterpret_cast<Address *>(FIELD_ADDR(this, kProxyOffset)));
2824
+ }
2825
+
2826
+
2827
+ ACCESSORS(JSValue, value, Object, kValueOffset)
2828
+
2829
+
2830
+ JSValue* JSValue::cast(Object* obj) {
2831
+ ASSERT(obj->IsJSValue());
2832
+ ASSERT(HeapObject::cast(obj)->Size() == JSValue::kSize);
2833
+ return reinterpret_cast<JSValue*>(obj);
2834
+ }
2835
+
2836
+
2837
+ INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset)
2838
+ ACCESSORS(Code, relocation_info, ByteArray, kRelocationInfoOffset)
2839
+
2840
+
2841
+ byte* Code::instruction_start() {
2842
+ return FIELD_ADDR(this, kHeaderSize);
2843
+ }
2844
+
2845
+
2846
+ byte* Code::instruction_end() {
2847
+ return instruction_start() + instruction_size();
2848
+ }
2849
+
2850
+
2851
+ int Code::body_size() {
2852
+ return RoundUp(instruction_size(), kObjectAlignment);
2853
+ }
2854
+
2855
+
2856
+ ByteArray* Code::unchecked_relocation_info() {
2857
+ return reinterpret_cast<ByteArray*>(READ_FIELD(this, kRelocationInfoOffset));
2858
+ }
2859
+
2860
+
2861
+ byte* Code::relocation_start() {
2862
+ return unchecked_relocation_info()->GetDataStartAddress();
2863
+ }
2864
+
2865
+
2866
+ int Code::relocation_size() {
2867
+ return unchecked_relocation_info()->length();
2868
+ }
2869
+
2870
+
2871
+ byte* Code::entry() {
2872
+ return instruction_start();
2873
+ }
2874
+
2875
+
2876
+ bool Code::contains(byte* pc) {
2877
+ return (instruction_start() <= pc) &&
2878
+ (pc < instruction_start() + instruction_size());
2879
+ }
2880
+
2881
+
2882
+ ACCESSORS(JSArray, length, Object, kLengthOffset)
2883
+
2884
+
2885
+ ACCESSORS(JSRegExp, data, Object, kDataOffset)
2886
+
2887
+
2888
+ JSRegExp::Type JSRegExp::TypeTag() {
2889
+ Object* data = this->data();
2890
+ if (data->IsUndefined()) return JSRegExp::NOT_COMPILED;
2891
+ Smi* smi = Smi::cast(FixedArray::cast(data)->get(kTagIndex));
2892
+ return static_cast<JSRegExp::Type>(smi->value());
2893
+ }
2894
+
2895
+
2896
+ int JSRegExp::CaptureCount() {
2897
+ switch (TypeTag()) {
2898
+ case ATOM:
2899
+ return 0;
2900
+ case IRREGEXP:
2901
+ return Smi::cast(DataAt(kIrregexpCaptureCountIndex))->value();
2902
+ default:
2903
+ UNREACHABLE();
2904
+ return -1;
2905
+ }
2906
+ }
2907
+
2908
+
2909
+ JSRegExp::Flags JSRegExp::GetFlags() {
2910
+ ASSERT(this->data()->IsFixedArray());
2911
+ Object* data = this->data();
2912
+ Smi* smi = Smi::cast(FixedArray::cast(data)->get(kFlagsIndex));
2913
+ return Flags(smi->value());
2914
+ }
2915
+
2916
+
2917
+ String* JSRegExp::Pattern() {
2918
+ ASSERT(this->data()->IsFixedArray());
2919
+ Object* data = this->data();
2920
+ String* pattern= String::cast(FixedArray::cast(data)->get(kSourceIndex));
2921
+ return pattern;
2922
+ }
2923
+
2924
+
2925
+ Object* JSRegExp::DataAt(int index) {
2926
+ ASSERT(TypeTag() != NOT_COMPILED);
2927
+ return FixedArray::cast(data())->get(index);
2928
+ }
2929
+
2930
+
2931
+ void JSRegExp::SetDataAt(int index, Object* value) {
2932
+ ASSERT(TypeTag() != NOT_COMPILED);
2933
+ ASSERT(index >= kDataIndex); // Only implementation data can be set this way.
2934
+ FixedArray::cast(data())->set(index, value);
2935
+ }
2936
+
2937
+
2938
+ JSObject::ElementsKind JSObject::GetElementsKind() {
2939
+ HeapObject* array = elements();
2940
+ if (array->IsFixedArray()) {
2941
+ // FAST_ELEMENTS or DICTIONARY_ELEMENTS are both stored in a FixedArray.
2942
+ if (array->map() == Heap::fixed_array_map()) {
2943
+ ASSERT(map()->has_fast_elements());
2944
+ return FAST_ELEMENTS;
2945
+ }
2946
+ ASSERT(array->IsDictionary());
2947
+ ASSERT(!map()->has_fast_elements());
2948
+ return DICTIONARY_ELEMENTS;
2949
+ }
2950
+ ASSERT(!map()->has_fast_elements());
2951
+ if (array->IsExternalArray()) {
2952
+ switch (array->map()->instance_type()) {
2953
+ case EXTERNAL_BYTE_ARRAY_TYPE:
2954
+ return EXTERNAL_BYTE_ELEMENTS;
2955
+ case EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE:
2956
+ return EXTERNAL_UNSIGNED_BYTE_ELEMENTS;
2957
+ case EXTERNAL_SHORT_ARRAY_TYPE:
2958
+ return EXTERNAL_SHORT_ELEMENTS;
2959
+ case EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE:
2960
+ return EXTERNAL_UNSIGNED_SHORT_ELEMENTS;
2961
+ case EXTERNAL_INT_ARRAY_TYPE:
2962
+ return EXTERNAL_INT_ELEMENTS;
2963
+ case EXTERNAL_UNSIGNED_INT_ARRAY_TYPE:
2964
+ return EXTERNAL_UNSIGNED_INT_ELEMENTS;
2965
+ default:
2966
+ ASSERT(array->map()->instance_type() == EXTERNAL_FLOAT_ARRAY_TYPE);
2967
+ return EXTERNAL_FLOAT_ELEMENTS;
2968
+ }
2969
+ }
2970
+ ASSERT(array->IsPixelArray());
2971
+ return PIXEL_ELEMENTS;
2972
+ }
2973
+
2974
+
2975
+ bool JSObject::HasFastElements() {
2976
+ return GetElementsKind() == FAST_ELEMENTS;
2977
+ }
2978
+
2979
+
2980
+ bool JSObject::HasDictionaryElements() {
2981
+ return GetElementsKind() == DICTIONARY_ELEMENTS;
2982
+ }
2983
+
2984
+
2985
+ bool JSObject::HasPixelElements() {
2986
+ return GetElementsKind() == PIXEL_ELEMENTS;
2987
+ }
2988
+
2989
+
2990
+ bool JSObject::HasExternalArrayElements() {
2991
+ return (HasExternalByteElements() ||
2992
+ HasExternalUnsignedByteElements() ||
2993
+ HasExternalShortElements() ||
2994
+ HasExternalUnsignedShortElements() ||
2995
+ HasExternalIntElements() ||
2996
+ HasExternalUnsignedIntElements() ||
2997
+ HasExternalFloatElements());
2998
+ }
2999
+
3000
+
3001
+ bool JSObject::HasExternalByteElements() {
3002
+ return GetElementsKind() == EXTERNAL_BYTE_ELEMENTS;
3003
+ }
3004
+
3005
+
3006
+ bool JSObject::HasExternalUnsignedByteElements() {
3007
+ return GetElementsKind() == EXTERNAL_UNSIGNED_BYTE_ELEMENTS;
3008
+ }
3009
+
3010
+
3011
+ bool JSObject::HasExternalShortElements() {
3012
+ return GetElementsKind() == EXTERNAL_SHORT_ELEMENTS;
3013
+ }
3014
+
3015
+
3016
+ bool JSObject::HasExternalUnsignedShortElements() {
3017
+ return GetElementsKind() == EXTERNAL_UNSIGNED_SHORT_ELEMENTS;
3018
+ }
3019
+
3020
+
3021
+ bool JSObject::HasExternalIntElements() {
3022
+ return GetElementsKind() == EXTERNAL_INT_ELEMENTS;
3023
+ }
3024
+
3025
+
3026
+ bool JSObject::HasExternalUnsignedIntElements() {
3027
+ return GetElementsKind() == EXTERNAL_UNSIGNED_INT_ELEMENTS;
3028
+ }
3029
+
3030
+
3031
+ bool JSObject::HasExternalFloatElements() {
3032
+ return GetElementsKind() == EXTERNAL_FLOAT_ELEMENTS;
3033
+ }
3034
+
3035
+
3036
+ bool JSObject::HasNamedInterceptor() {
3037
+ return map()->has_named_interceptor();
3038
+ }
3039
+
3040
+
3041
+ bool JSObject::HasIndexedInterceptor() {
3042
+ return map()->has_indexed_interceptor();
3043
+ }
3044
+
3045
+
3046
+ bool JSObject::AllowsSetElementsLength() {
3047
+ bool result = elements()->IsFixedArray();
3048
+ ASSERT(result == (!HasPixelElements() && !HasExternalArrayElements()));
3049
+ return result;
3050
+ }
3051
+
3052
+
3053
+ StringDictionary* JSObject::property_dictionary() {
3054
+ ASSERT(!HasFastProperties());
3055
+ return StringDictionary::cast(properties());
3056
+ }
3057
+
3058
+
3059
+ NumberDictionary* JSObject::element_dictionary() {
3060
+ ASSERT(HasDictionaryElements());
3061
+ return NumberDictionary::cast(elements());
3062
+ }
3063
+
3064
+
3065
+ bool String::IsHashFieldComputed(uint32_t field) {
3066
+ return (field & kHashNotComputedMask) == 0;
3067
+ }
3068
+
3069
+
3070
+ bool String::HasHashCode() {
3071
+ return IsHashFieldComputed(hash_field());
3072
+ }
3073
+
3074
+
3075
+ uint32_t String::Hash() {
3076
+ // Fast case: has hash code already been computed?
3077
+ uint32_t field = hash_field();
3078
+ if (IsHashFieldComputed(field)) return field >> kHashShift;
3079
+ // Slow case: compute hash code and set it.
3080
+ return ComputeAndSetHash();
3081
+ }
3082
+
3083
+
3084
+ StringHasher::StringHasher(int length)
3085
+ : length_(length),
3086
+ raw_running_hash_(0),
3087
+ array_index_(0),
3088
+ is_array_index_(0 < length_ && length_ <= String::kMaxArrayIndexSize),
3089
+ is_first_char_(true),
3090
+ is_valid_(true) { }
3091
+
3092
+
3093
+ bool StringHasher::has_trivial_hash() {
3094
+ return length_ > String::kMaxHashCalcLength;
3095
+ }
3096
+
3097
+
3098
+ void StringHasher::AddCharacter(uc32 c) {
3099
+ // Use the Jenkins one-at-a-time hash function to update the hash
3100
+ // for the given character.
3101
+ raw_running_hash_ += c;
3102
+ raw_running_hash_ += (raw_running_hash_ << 10);
3103
+ raw_running_hash_ ^= (raw_running_hash_ >> 6);
3104
+ // Incremental array index computation.
3105
+ if (is_array_index_) {
3106
+ if (c < '0' || c > '9') {
3107
+ is_array_index_ = false;
3108
+ } else {
3109
+ int d = c - '0';
3110
+ if (is_first_char_) {
3111
+ is_first_char_ = false;
3112
+ if (c == '0' && length_ > 1) {
3113
+ is_array_index_ = false;
3114
+ return;
3115
+ }
3116
+ }
3117
+ if (array_index_ > 429496729U - ((d + 2) >> 3)) {
3118
+ is_array_index_ = false;
3119
+ } else {
3120
+ array_index_ = array_index_ * 10 + d;
3121
+ }
3122
+ }
3123
+ }
3124
+ }
3125
+
3126
+
3127
+ void StringHasher::AddCharacterNoIndex(uc32 c) {
3128
+ ASSERT(!is_array_index());
3129
+ raw_running_hash_ += c;
3130
+ raw_running_hash_ += (raw_running_hash_ << 10);
3131
+ raw_running_hash_ ^= (raw_running_hash_ >> 6);
3132
+ }
3133
+
3134
+
3135
+ uint32_t StringHasher::GetHash() {
3136
+ // Get the calculated raw hash value and do some more bit ops to distribute
3137
+ // the hash further. Ensure that we never return zero as the hash value.
3138
+ uint32_t result = raw_running_hash_;
3139
+ result += (result << 3);
3140
+ result ^= (result >> 11);
3141
+ result += (result << 15);
3142
+ if (result == 0) {
3143
+ result = 27;
3144
+ }
3145
+ return result;
3146
+ }
3147
+
3148
+
3149
+ bool String::AsArrayIndex(uint32_t* index) {
3150
+ uint32_t field = hash_field();
3151
+ if (IsHashFieldComputed(field) && (field & kIsNotArrayIndexMask)) {
3152
+ return false;
3153
+ }
3154
+ return SlowAsArrayIndex(index);
3155
+ }
3156
+
3157
+
3158
+ Object* JSObject::GetPrototype() {
3159
+ return JSObject::cast(this)->map()->prototype();
3160
+ }
3161
+
3162
+
3163
+ PropertyAttributes JSObject::GetPropertyAttribute(String* key) {
3164
+ return GetPropertyAttributeWithReceiver(this, key);
3165
+ }
3166
+
3167
+ // TODO(504): this may be useful in other places too where JSGlobalProxy
3168
+ // is used.
3169
+ Object* JSObject::BypassGlobalProxy() {
3170
+ if (IsJSGlobalProxy()) {
3171
+ Object* proto = GetPrototype();
3172
+ if (proto->IsNull()) return Heap::undefined_value();
3173
+ ASSERT(proto->IsJSGlobalObject());
3174
+ return proto;
3175
+ }
3176
+ return this;
3177
+ }
3178
+
3179
+
3180
+ bool JSObject::HasHiddenPropertiesObject() {
3181
+ ASSERT(!IsJSGlobalProxy());
3182
+ return GetPropertyAttributePostInterceptor(this,
3183
+ Heap::hidden_symbol(),
3184
+ false) != ABSENT;
3185
+ }
3186
+
3187
+
3188
+ Object* JSObject::GetHiddenPropertiesObject() {
3189
+ ASSERT(!IsJSGlobalProxy());
3190
+ PropertyAttributes attributes;
3191
+ return GetLocalPropertyPostInterceptor(this,
3192
+ Heap::hidden_symbol(),
3193
+ &attributes);
3194
+ }
3195
+
3196
+
3197
+ Object* JSObject::SetHiddenPropertiesObject(Object* hidden_obj) {
3198
+ ASSERT(!IsJSGlobalProxy());
3199
+ return SetPropertyPostInterceptor(Heap::hidden_symbol(),
3200
+ hidden_obj,
3201
+ DONT_ENUM);
3202
+ }
3203
+
3204
+
3205
+ bool JSObject::HasElement(uint32_t index) {
3206
+ return HasElementWithReceiver(this, index);
3207
+ }
3208
+
3209
+
3210
+ bool AccessorInfo::all_can_read() {
3211
+ return BooleanBit::get(flag(), kAllCanReadBit);
3212
+ }
3213
+
3214
+
3215
+ void AccessorInfo::set_all_can_read(bool value) {
3216
+ set_flag(BooleanBit::set(flag(), kAllCanReadBit, value));
3217
+ }
3218
+
3219
+
3220
+ bool AccessorInfo::all_can_write() {
3221
+ return BooleanBit::get(flag(), kAllCanWriteBit);
3222
+ }
3223
+
3224
+
3225
+ void AccessorInfo::set_all_can_write(bool value) {
3226
+ set_flag(BooleanBit::set(flag(), kAllCanWriteBit, value));
3227
+ }
3228
+
3229
+
3230
+ bool AccessorInfo::prohibits_overwriting() {
3231
+ return BooleanBit::get(flag(), kProhibitsOverwritingBit);
3232
+ }
3233
+
3234
+
3235
+ void AccessorInfo::set_prohibits_overwriting(bool value) {
3236
+ set_flag(BooleanBit::set(flag(), kProhibitsOverwritingBit, value));
3237
+ }
3238
+
3239
+
3240
+ PropertyAttributes AccessorInfo::property_attributes() {
3241
+ return AttributesField::decode(static_cast<uint32_t>(flag()->value()));
3242
+ }
3243
+
3244
+
3245
+ void AccessorInfo::set_property_attributes(PropertyAttributes attributes) {
3246
+ ASSERT(AttributesField::is_valid(attributes));
3247
+ int rest_value = flag()->value() & ~AttributesField::mask();
3248
+ set_flag(Smi::FromInt(rest_value | AttributesField::encode(attributes)));
3249
+ }
3250
+
3251
+ template<typename Shape, typename Key>
3252
+ void Dictionary<Shape, Key>::SetEntry(int entry,
3253
+ Object* key,
3254
+ Object* value,
3255
+ PropertyDetails details) {
3256
+ ASSERT(!key->IsString() || details.IsDeleted() || details.index() > 0);
3257
+ int index = HashTable<Shape, Key>::EntryToIndex(entry);
3258
+ AssertNoAllocation no_gc;
3259
+ WriteBarrierMode mode = FixedArray::GetWriteBarrierMode(no_gc);
3260
+ FixedArray::set(index, key, mode);
3261
+ FixedArray::set(index+1, value, mode);
3262
+ FixedArray::fast_set(this, index+2, details.AsSmi());
3263
+ }
3264
+
3265
+
3266
+ void Map::ClearCodeCache() {
3267
+ // No write barrier is needed since empty_fixed_array is not in new space.
3268
+ // Please note this function is used during marking:
3269
+ // - MarkCompactCollector::MarkUnmarkedObject
3270
+ ASSERT(!Heap::InNewSpace(Heap::raw_unchecked_empty_fixed_array()));
3271
+ WRITE_FIELD(this, kCodeCacheOffset, Heap::raw_unchecked_empty_fixed_array());
3272
+ }
3273
+
3274
+
3275
+ void JSArray::EnsureSize(int required_size) {
3276
+ ASSERT(HasFastElements());
3277
+ FixedArray* elts = FixedArray::cast(elements());
3278
+ const int kArraySizeThatFitsComfortablyInNewSpace = 128;
3279
+ if (elts->length() < required_size) {
3280
+ // Doubling in size would be overkill, but leave some slack to avoid
3281
+ // constantly growing.
3282
+ Expand(required_size + (required_size >> 3));
3283
+ // It's a performance benefit to keep a frequently used array in new-space.
3284
+ } else if (!Heap::new_space()->Contains(elts) &&
3285
+ required_size < kArraySizeThatFitsComfortablyInNewSpace) {
3286
+ // Expand will allocate a new backing store in new space even if the size
3287
+ // we asked for isn't larger than what we had before.
3288
+ Expand(required_size);
3289
+ }
3290
+ }
3291
+
3292
+
3293
+ void JSArray::set_length(Smi* length) {
3294
+ set_length(static_cast<Object*>(length), SKIP_WRITE_BARRIER);
3295
+ }
3296
+
3297
+
3298
+ void JSArray::SetContent(FixedArray* storage) {
3299
+ set_length(Smi::FromInt(storage->length()));
3300
+ set_elements(storage);
3301
+ }
3302
+
3303
+
3304
+ Object* FixedArray::Copy() {
3305
+ if (length() == 0) return this;
3306
+ return Heap::CopyFixedArray(this);
3307
+ }
3308
+
3309
+
3310
+ #undef CAST_ACCESSOR
3311
+ #undef INT_ACCESSORS
3312
+ #undef SMI_ACCESSORS
3313
+ #undef ACCESSORS
3314
+ #undef FIELD_ADDR
3315
+ #undef READ_FIELD
3316
+ #undef WRITE_FIELD
3317
+ #undef WRITE_BARRIER
3318
+ #undef CONDITIONAL_WRITE_BARRIER
3319
+ #undef READ_MEMADDR_FIELD
3320
+ #undef WRITE_MEMADDR_FIELD
3321
+ #undef READ_DOUBLE_FIELD
3322
+ #undef WRITE_DOUBLE_FIELD
3323
+ #undef READ_INT_FIELD
3324
+ #undef WRITE_INT_FIELD
3325
+ #undef READ_SHORT_FIELD
3326
+ #undef WRITE_SHORT_FIELD
3327
+ #undef READ_BYTE_FIELD
3328
+ #undef WRITE_BYTE_FIELD
3329
+
3330
+
3331
+ } } // namespace v8::internal
3332
+
3333
+ #endif // V8_OBJECTS_INL_H_