therubyracer 0.8.1.pre2 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of therubyracer might be problematic. Click here for more details.

Files changed (877) hide show
  1. data/Changelog.md +2 -1
  2. data/README.md +6 -3
  3. data/ext/v8/upstream/3.1.8/.gitignore +31 -0
  4. data/ext/v8/upstream/3.1.8/AUTHORS +40 -0
  5. data/ext/v8/upstream/3.1.8/ChangeLog +2566 -0
  6. data/ext/v8/upstream/3.1.8/LICENSE +52 -0
  7. data/ext/v8/upstream/3.1.8/LICENSE.strongtalk +29 -0
  8. data/ext/v8/upstream/3.1.8/LICENSE.v8 +26 -0
  9. data/ext/v8/upstream/3.1.8/LICENSE.valgrind +45 -0
  10. data/ext/v8/upstream/3.1.8/SConstruct +1192 -0
  11. data/ext/v8/upstream/3.1.8/build/README.txt +25 -0
  12. data/ext/v8/upstream/3.1.8/build/all.gyp +18 -0
  13. data/ext/v8/upstream/3.1.8/build/armu.gypi +32 -0
  14. data/ext/v8/upstream/3.1.8/build/common.gypi +82 -0
  15. data/ext/v8/upstream/3.1.8/build/gyp_v8 +145 -0
  16. data/ext/v8/upstream/3.1.8/include/v8-debug.h +384 -0
  17. data/ext/v8/upstream/3.1.8/include/v8-preparser.h +116 -0
  18. data/ext/v8/upstream/3.1.8/include/v8-profiler.h +426 -0
  19. data/ext/v8/upstream/3.1.8/include/v8-testing.h +99 -0
  20. data/ext/v8/upstream/3.1.8/include/v8.h +3846 -0
  21. data/ext/v8/upstream/3.1.8/include/v8stdint.h +53 -0
  22. data/ext/v8/upstream/3.1.8/preparser/preparser-process.cc +206 -0
  23. data/ext/v8/upstream/3.1.8/src/SConscript +356 -0
  24. data/ext/v8/upstream/3.1.8/src/accessors.cc +907 -0
  25. data/ext/v8/upstream/3.1.8/src/accessors.h +121 -0
  26. data/ext/v8/upstream/3.1.8/src/allocation.cc +204 -0
  27. data/ext/v8/upstream/3.1.8/src/allocation.h +176 -0
  28. data/ext/v8/upstream/3.1.8/src/api.cc +5191 -0
  29. data/ext/v8/upstream/3.1.8/src/api.h +508 -0
  30. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/apinatives.js +0 -0
  31. data/ext/v8/upstream/3.1.8/src/apiutils.h +80 -0
  32. data/ext/v8/upstream/3.1.8/src/arguments.h +105 -0
  33. data/ext/v8/upstream/3.1.8/src/arm/assembler-arm-inl.h +352 -0
  34. data/ext/v8/upstream/3.1.8/src/arm/assembler-arm.cc +2756 -0
  35. data/ext/v8/upstream/3.1.8/src/arm/assembler-arm.h +1294 -0
  36. data/ext/v8/upstream/3.1.8/src/arm/builtins-arm.cc +1628 -0
  37. data/ext/v8/upstream/3.1.8/src/arm/code-stubs-arm.cc +6783 -0
  38. data/ext/v8/upstream/3.1.8/src/arm/code-stubs-arm.h +657 -0
  39. data/ext/v8/upstream/3.1.8/src/arm/codegen-arm-inl.h +48 -0
  40. data/ext/v8/upstream/3.1.8/src/arm/codegen-arm.cc +7403 -0
  41. data/ext/v8/upstream/3.1.8/src/arm/codegen-arm.h +595 -0
  42. data/ext/v8/upstream/3.1.8/src/arm/constants-arm.cc +152 -0
  43. data/ext/v8/upstream/3.1.8/src/arm/constants-arm.h +769 -0
  44. data/ext/v8/upstream/3.1.8/src/arm/cpu-arm.cc +147 -0
  45. data/ext/v8/upstream/3.1.8/src/arm/debug-arm.cc +315 -0
  46. data/ext/v8/upstream/3.1.8/src/arm/deoptimizer-arm.cc +700 -0
  47. data/ext/v8/upstream/3.1.8/src/arm/disasm-arm.cc +1439 -0
  48. data/ext/v8/upstream/3.1.8/src/arm/frames-arm.cc +45 -0
  49. data/ext/v8/upstream/3.1.8/src/arm/frames-arm.h +168 -0
  50. data/ext/v8/upstream/3.1.8/src/arm/full-codegen-arm.cc +4230 -0
  51. data/ext/v8/upstream/3.1.8/src/arm/ic-arm.cc +1799 -0
  52. data/ext/v8/upstream/3.1.8/src/arm/jump-target-arm.cc +174 -0
  53. data/ext/v8/upstream/3.1.8/src/arm/lithium-arm.cc +2041 -0
  54. data/ext/v8/upstream/3.1.8/src/arm/lithium-arm.h +2046 -0
  55. data/ext/v8/upstream/3.1.8/src/arm/lithium-codegen-arm.cc +3822 -0
  56. data/ext/v8/upstream/3.1.8/src/arm/lithium-codegen-arm.h +312 -0
  57. data/ext/v8/upstream/3.1.8/src/arm/lithium-gap-resolver-arm.cc +303 -0
  58. data/ext/v8/upstream/3.1.8/src/arm/lithium-gap-resolver-arm.h +84 -0
  59. data/ext/v8/upstream/3.1.8/src/arm/macro-assembler-arm.cc +2701 -0
  60. data/ext/v8/upstream/3.1.8/src/arm/macro-assembler-arm.h +1015 -0
  61. data/ext/v8/upstream/3.1.8/src/arm/regexp-macro-assembler-arm.cc +1280 -0
  62. data/ext/v8/upstream/3.1.8/src/arm/regexp-macro-assembler-arm.h +252 -0
  63. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/register-allocator-arm-inl.h +0 -0
  64. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/register-allocator-arm.cc +0 -0
  65. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/register-allocator-arm.h +0 -0
  66. data/ext/v8/upstream/3.1.8/src/arm/simulator-arm.cc +3165 -0
  67. data/ext/v8/upstream/3.1.8/src/arm/simulator-arm.h +402 -0
  68. data/ext/v8/upstream/3.1.8/src/arm/stub-cache-arm.cc +4077 -0
  69. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/virtual-frame-arm-inl.h +0 -0
  70. data/ext/v8/upstream/3.1.8/src/arm/virtual-frame-arm.cc +843 -0
  71. data/ext/v8/upstream/3.1.8/src/arm/virtual-frame-arm.h +520 -0
  72. data/ext/v8/upstream/3.1.8/src/array.js +1231 -0
  73. data/ext/v8/upstream/3.1.8/src/assembler.cc +973 -0
  74. data/ext/v8/upstream/3.1.8/src/assembler.h +787 -0
  75. data/ext/v8/upstream/3.1.8/src/ast-inl.h +107 -0
  76. data/ext/v8/upstream/3.1.8/src/ast.cc +1067 -0
  77. data/ext/v8/upstream/3.1.8/src/ast.h +2177 -0
  78. data/ext/v8/upstream/3.1.8/src/atomicops.h +165 -0
  79. data/ext/v8/upstream/3.1.8/src/atomicops_internals_arm_gcc.h +145 -0
  80. data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_gcc.cc +126 -0
  81. data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_gcc.h +287 -0
  82. data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_macosx.h +301 -0
  83. data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_msvc.h +203 -0
  84. data/ext/v8/upstream/3.1.8/src/bignum-dtoa.cc +655 -0
  85. data/ext/v8/upstream/3.1.8/src/bignum-dtoa.h +81 -0
  86. data/ext/v8/upstream/3.1.8/src/bignum.cc +768 -0
  87. data/ext/v8/upstream/3.1.8/src/bignum.h +140 -0
  88. data/ext/v8/upstream/3.1.8/src/bootstrapper.cc +1888 -0
  89. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/bootstrapper.h +0 -0
  90. data/ext/v8/upstream/3.1.8/src/builtins.cc +1586 -0
  91. data/ext/v8/upstream/3.1.8/src/builtins.h +339 -0
  92. data/ext/v8/upstream/3.1.8/src/bytecodes-irregexp.h +105 -0
  93. data/ext/v8/upstream/3.1.8/src/cached-powers.cc +177 -0
  94. data/ext/v8/upstream/3.1.8/src/cached-powers.h +65 -0
  95. data/ext/v8/upstream/3.1.8/src/char-predicates-inl.h +94 -0
  96. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/char-predicates.h +0 -0
  97. data/ext/v8/upstream/3.1.8/src/checks.cc +110 -0
  98. data/ext/v8/upstream/3.1.8/src/checks.h +292 -0
  99. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/circular-queue-inl.h +0 -0
  100. data/ext/v8/upstream/3.1.8/src/circular-queue.cc +122 -0
  101. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/circular-queue.h +0 -0
  102. data/ext/v8/upstream/3.1.8/src/code-stubs.cc +230 -0
  103. data/ext/v8/upstream/3.1.8/src/code-stubs.h +950 -0
  104. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/code.h +0 -0
  105. data/ext/v8/upstream/3.1.8/src/codegen-inl.h +64 -0
  106. data/ext/v8/upstream/3.1.8/src/codegen.cc +495 -0
  107. data/ext/v8/upstream/3.1.8/src/codegen.h +245 -0
  108. data/ext/v8/upstream/3.1.8/src/compilation-cache.cc +654 -0
  109. data/ext/v8/upstream/3.1.8/src/compilation-cache.h +112 -0
  110. data/ext/v8/upstream/3.1.8/src/compiler.cc +806 -0
  111. data/ext/v8/upstream/3.1.8/src/compiler.h +290 -0
  112. data/ext/v8/upstream/3.1.8/src/contexts.cc +320 -0
  113. data/ext/v8/upstream/3.1.8/src/contexts.h +376 -0
  114. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/conversions-inl.h +0 -0
  115. data/ext/v8/upstream/3.1.8/src/conversions.cc +1069 -0
  116. data/ext/v8/upstream/3.1.8/src/conversions.h +122 -0
  117. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/counters.cc +0 -0
  118. data/ext/v8/upstream/3.1.8/src/counters.h +242 -0
  119. data/ext/v8/upstream/3.1.8/src/cpu-profiler-inl.h +100 -0
  120. data/ext/v8/upstream/3.1.8/src/cpu-profiler.cc +554 -0
  121. data/ext/v8/upstream/3.1.8/src/cpu-profiler.h +291 -0
  122. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/cpu.h +0 -0
  123. data/ext/v8/upstream/3.1.8/src/d8-debug.cc +367 -0
  124. data/ext/v8/upstream/3.1.8/src/d8-debug.h +157 -0
  125. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/d8-posix.cc +0 -0
  126. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/d8-readline.cc +0 -0
  127. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/d8-windows.cc +0 -0
  128. data/ext/v8/upstream/3.1.8/src/d8.cc +792 -0
  129. data/ext/v8/upstream/3.1.8/src/d8.gyp +85 -0
  130. data/ext/v8/upstream/3.1.8/src/d8.h +231 -0
  131. data/ext/v8/upstream/3.1.8/src/d8.js +2798 -0
  132. data/ext/v8/upstream/3.1.8/src/data-flow.cc +545 -0
  133. data/ext/v8/upstream/3.1.8/src/data-flow.h +379 -0
  134. data/ext/v8/upstream/3.1.8/src/date.js +1103 -0
  135. data/ext/v8/upstream/3.1.8/src/dateparser-inl.h +125 -0
  136. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/dateparser.cc +0 -0
  137. data/ext/v8/upstream/3.1.8/src/dateparser.h +263 -0
  138. data/ext/v8/upstream/3.1.8/src/debug-agent.cc +446 -0
  139. data/ext/v8/upstream/3.1.8/src/debug-agent.h +131 -0
  140. data/ext/v8/upstream/3.1.8/src/debug-debugger.js +2569 -0
  141. data/ext/v8/upstream/3.1.8/src/debug.cc +3085 -0
  142. data/ext/v8/upstream/3.1.8/src/debug.h +1025 -0
  143. data/ext/v8/upstream/3.1.8/src/deoptimizer.cc +1185 -0
  144. data/ext/v8/upstream/3.1.8/src/deoptimizer.h +529 -0
  145. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/disasm.h +0 -0
  146. data/ext/v8/upstream/3.1.8/src/disassembler.cc +338 -0
  147. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/disassembler.h +0 -0
  148. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/diy-fp.cc +0 -0
  149. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/diy-fp.h +0 -0
  150. data/ext/v8/upstream/3.1.8/src/double.h +238 -0
  151. data/ext/v8/upstream/3.1.8/src/dtoa.cc +103 -0
  152. data/ext/v8/upstream/3.1.8/src/dtoa.h +85 -0
  153. data/ext/v8/upstream/3.1.8/src/execution.cc +735 -0
  154. data/ext/v8/upstream/3.1.8/src/execution.h +322 -0
  155. data/ext/v8/upstream/3.1.8/src/extensions/experimental/experimental.gyp +53 -0
  156. data/ext/v8/upstream/3.1.8/src/extensions/experimental/i18n-extension.cc +264 -0
  157. data/ext/v8/upstream/3.1.8/src/extensions/experimental/i18n-extension.h +64 -0
  158. data/ext/v8/upstream/3.1.8/src/extensions/externalize-string-extension.cc +141 -0
  159. data/ext/v8/upstream/3.1.8/src/extensions/externalize-string-extension.h +50 -0
  160. data/ext/v8/upstream/3.1.8/src/extensions/gc-extension.cc +58 -0
  161. data/ext/v8/upstream/3.1.8/src/extensions/gc-extension.h +49 -0
  162. data/ext/v8/upstream/3.1.8/src/factory.cc +1087 -0
  163. data/ext/v8/upstream/3.1.8/src/factory.h +432 -0
  164. data/ext/v8/upstream/3.1.8/src/fast-dtoa.cc +736 -0
  165. data/ext/v8/upstream/3.1.8/src/fast-dtoa.h +83 -0
  166. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/fixed-dtoa.cc +0 -0
  167. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/fixed-dtoa.h +0 -0
  168. data/ext/v8/upstream/3.1.8/src/flag-definitions.h +552 -0
  169. data/ext/v8/upstream/3.1.8/src/flags.cc +551 -0
  170. data/ext/v8/upstream/3.1.8/src/flags.h +79 -0
  171. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/frame-element.cc +0 -0
  172. data/ext/v8/upstream/3.1.8/src/frame-element.h +277 -0
  173. data/ext/v8/upstream/3.1.8/src/frames-inl.h +210 -0
  174. data/ext/v8/upstream/3.1.8/src/frames.cc +1232 -0
  175. data/ext/v8/upstream/3.1.8/src/frames.h +826 -0
  176. data/ext/v8/upstream/3.1.8/src/full-codegen.cc +1382 -0
  177. data/ext/v8/upstream/3.1.8/src/full-codegen.h +751 -0
  178. data/ext/v8/upstream/3.1.8/src/func-name-inferrer.cc +90 -0
  179. data/ext/v8/upstream/3.1.8/src/func-name-inferrer.h +111 -0
  180. data/ext/v8/upstream/3.1.8/src/gdb-jit.cc +1547 -0
  181. data/ext/v8/upstream/3.1.8/src/gdb-jit.h +138 -0
  182. data/ext/v8/upstream/3.1.8/src/global-handles.cc +534 -0
  183. data/ext/v8/upstream/3.1.8/src/global-handles.h +181 -0
  184. data/ext/v8/upstream/3.1.8/src/globals.h +325 -0
  185. data/ext/v8/upstream/3.1.8/src/handles-inl.h +80 -0
  186. data/ext/v8/upstream/3.1.8/src/handles.cc +910 -0
  187. data/ext/v8/upstream/3.1.8/src/handles.h +424 -0
  188. data/ext/v8/upstream/3.1.8/src/hashmap.cc +230 -0
  189. data/ext/v8/upstream/3.1.8/src/hashmap.h +121 -0
  190. data/ext/v8/upstream/3.1.8/src/heap-inl.h +587 -0
  191. data/ext/v8/upstream/3.1.8/src/heap-profiler.cc +1128 -0
  192. data/ext/v8/upstream/3.1.8/src/heap-profiler.h +381 -0
  193. data/ext/v8/upstream/3.1.8/src/heap.cc +5610 -0
  194. data/ext/v8/upstream/3.1.8/src/heap.h +2218 -0
  195. data/ext/v8/upstream/3.1.8/src/hydrogen-instructions.cc +1490 -0
  196. data/ext/v8/upstream/3.1.8/src/hydrogen-instructions.h +3493 -0
  197. data/ext/v8/upstream/3.1.8/src/hydrogen.cc +6056 -0
  198. data/ext/v8/upstream/3.1.8/src/hydrogen.h +1091 -0
  199. data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32-inl.h +429 -0
  200. data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32.cc +2800 -0
  201. data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32.h +1093 -0
  202. data/ext/v8/upstream/3.1.8/src/ia32/builtins-ia32.cc +1590 -0
  203. data/ext/v8/upstream/3.1.8/src/ia32/code-stubs-ia32.cc +6624 -0
  204. data/ext/v8/upstream/3.1.8/src/ia32/code-stubs-ia32.h +536 -0
  205. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/codegen-ia32-inl.h +0 -0
  206. data/ext/v8/upstream/3.1.8/src/ia32/codegen-ia32.cc +10354 -0
  207. data/ext/v8/upstream/3.1.8/src/ia32/codegen-ia32.h +798 -0
  208. data/ext/v8/upstream/3.1.8/src/ia32/cpu-ia32.cc +87 -0
  209. data/ext/v8/upstream/3.1.8/src/ia32/debug-ia32.cc +309 -0
  210. data/ext/v8/upstream/3.1.8/src/ia32/deoptimizer-ia32.cc +664 -0
  211. data/ext/v8/upstream/3.1.8/src/ia32/disasm-ia32.cc +1597 -0
  212. data/ext/v8/upstream/3.1.8/src/ia32/frames-ia32.cc +45 -0
  213. data/ext/v8/upstream/3.1.8/src/ia32/frames-ia32.h +140 -0
  214. data/ext/v8/upstream/3.1.8/src/ia32/full-codegen-ia32.cc +4278 -0
  215. data/ext/v8/upstream/3.1.8/src/ia32/ic-ia32.cc +1786 -0
  216. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/jump-target-ia32.cc +0 -0
  217. data/ext/v8/upstream/3.1.8/src/ia32/lithium-codegen-ia32.cc +3880 -0
  218. data/ext/v8/upstream/3.1.8/src/ia32/lithium-codegen-ia32.h +309 -0
  219. data/ext/v8/upstream/3.1.8/src/ia32/lithium-gap-resolver-ia32.cc +460 -0
  220. data/ext/v8/upstream/3.1.8/src/ia32/lithium-gap-resolver-ia32.h +110 -0
  221. data/ext/v8/upstream/3.1.8/src/ia32/lithium-ia32.cc +2095 -0
  222. data/ext/v8/upstream/3.1.8/src/ia32/lithium-ia32.h +2127 -0
  223. data/ext/v8/upstream/3.1.8/src/ia32/macro-assembler-ia32.cc +2031 -0
  224. data/ext/v8/upstream/3.1.8/src/ia32/macro-assembler-ia32.h +798 -0
  225. data/ext/v8/upstream/3.1.8/src/ia32/regexp-macro-assembler-ia32.cc +1253 -0
  226. data/ext/v8/upstream/3.1.8/src/ia32/regexp-macro-assembler-ia32.h +215 -0
  227. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/register-allocator-ia32-inl.h +0 -0
  228. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/register-allocator-ia32.cc +0 -0
  229. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/register-allocator-ia32.h +0 -0
  230. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/simulator-ia32.cc +0 -0
  231. data/ext/v8/upstream/3.1.8/src/ia32/simulator-ia32.h +72 -0
  232. data/ext/v8/upstream/3.1.8/src/ia32/stub-cache-ia32.cc +3732 -0
  233. data/ext/v8/upstream/3.1.8/src/ia32/virtual-frame-ia32.cc +1360 -0
  234. data/ext/v8/upstream/3.1.8/src/ia32/virtual-frame-ia32.h +646 -0
  235. data/ext/v8/upstream/3.1.8/src/ic-inl.h +129 -0
  236. data/ext/v8/upstream/3.1.8/src/ic.cc +2333 -0
  237. data/ext/v8/upstream/3.1.8/src/ic.h +639 -0
  238. data/ext/v8/upstream/3.1.8/src/inspector.cc +63 -0
  239. data/ext/v8/upstream/3.1.8/src/inspector.h +62 -0
  240. data/ext/v8/upstream/3.1.8/src/interpreter-irregexp.cc +655 -0
  241. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/interpreter-irregexp.h +0 -0
  242. data/ext/v8/upstream/3.1.8/src/json.js +342 -0
  243. data/ext/v8/upstream/3.1.8/src/jsregexp.cc +5340 -0
  244. data/ext/v8/upstream/3.1.8/src/jsregexp.h +1484 -0
  245. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target-heavy-inl.h +0 -0
  246. data/ext/v8/upstream/3.1.8/src/jump-target-heavy.cc +430 -0
  247. data/ext/v8/upstream/3.1.8/src/jump-target-heavy.h +244 -0
  248. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target-inl.h +0 -0
  249. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target-light-inl.h +0 -0
  250. data/ext/v8/upstream/3.1.8/src/jump-target-light.cc +111 -0
  251. data/ext/v8/upstream/3.1.8/src/jump-target-light.h +193 -0
  252. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target.cc +0 -0
  253. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target.h +0 -0
  254. data/ext/v8/upstream/3.1.8/src/list-inl.h +206 -0
  255. data/ext/v8/upstream/3.1.8/src/list.h +164 -0
  256. data/ext/v8/upstream/3.1.8/src/lithium-allocator-inl.h +140 -0
  257. data/ext/v8/upstream/3.1.8/src/lithium-allocator.cc +2093 -0
  258. data/ext/v8/upstream/3.1.8/src/lithium-allocator.h +644 -0
  259. data/ext/v8/upstream/3.1.8/src/lithium.cc +168 -0
  260. data/ext/v8/upstream/3.1.8/src/lithium.h +592 -0
  261. data/ext/v8/upstream/3.1.8/src/liveedit-debugger.js +1082 -0
  262. data/ext/v8/upstream/3.1.8/src/liveedit.cc +1650 -0
  263. data/ext/v8/upstream/3.1.8/src/liveedit.h +174 -0
  264. data/ext/v8/upstream/3.1.8/src/liveobjectlist-inl.h +126 -0
  265. data/ext/v8/upstream/3.1.8/src/liveobjectlist.cc +2527 -0
  266. data/ext/v8/upstream/3.1.8/src/liveobjectlist.h +322 -0
  267. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/log-inl.h +0 -0
  268. data/ext/v8/upstream/3.1.8/src/log-utils.cc +336 -0
  269. data/ext/v8/upstream/3.1.8/src/log-utils.h +232 -0
  270. data/ext/v8/upstream/3.1.8/src/log.cc +1608 -0
  271. data/ext/v8/upstream/3.1.8/src/log.h +379 -0
  272. data/ext/v8/upstream/3.1.8/src/macro-assembler.h +120 -0
  273. data/ext/v8/upstream/3.1.8/src/macros.py +178 -0
  274. data/ext/v8/upstream/3.1.8/src/mark-compact.cc +2957 -0
  275. data/ext/v8/upstream/3.1.8/src/mark-compact.h +433 -0
  276. data/ext/v8/upstream/3.1.8/src/math.js +264 -0
  277. data/ext/v8/upstream/3.1.8/src/memory.h +82 -0
  278. data/ext/v8/upstream/3.1.8/src/messages.cc +164 -0
  279. data/ext/v8/upstream/3.1.8/src/messages.h +114 -0
  280. data/ext/v8/upstream/3.1.8/src/messages.js +1071 -0
  281. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/assembler-mips-inl.h +0 -0
  282. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/assembler-mips.cc +0 -0
  283. data/ext/v8/upstream/3.1.8/src/mips/assembler-mips.h +667 -0
  284. data/ext/v8/upstream/3.1.8/src/mips/builtins-mips.cc +205 -0
  285. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/codegen-mips-inl.h +0 -0
  286. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/codegen-mips.cc +0 -0
  287. data/ext/v8/upstream/3.1.8/src/mips/codegen-mips.h +431 -0
  288. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/constants-mips.cc +0 -0
  289. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/constants-mips.h +0 -0
  290. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/cpu-mips.cc +0 -0
  291. data/ext/v8/upstream/3.1.8/src/mips/debug-mips.cc +127 -0
  292. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/disasm-mips.cc +0 -0
  293. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/fast-codegen-mips.cc +0 -0
  294. data/ext/v8/upstream/3.1.8/src/mips/frames-mips.cc +96 -0
  295. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/frames-mips.h +0 -0
  296. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/full-codegen-mips.cc +0 -0
  297. data/ext/v8/upstream/3.1.8/src/mips/ic-mips.cc +208 -0
  298. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/jump-target-mips.cc +0 -0
  299. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/macro-assembler-mips.cc +0 -0
  300. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/macro-assembler-mips.h +0 -0
  301. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/register-allocator-mips-inl.h +0 -0
  302. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/register-allocator-mips.cc +0 -0
  303. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/register-allocator-mips.h +0 -0
  304. data/ext/v8/upstream/3.1.8/src/mips/simulator-mips.cc +1650 -0
  305. data/ext/v8/upstream/3.1.8/src/mips/simulator-mips.h +311 -0
  306. data/ext/v8/upstream/3.1.8/src/mips/stub-cache-mips.cc +418 -0
  307. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/virtual-frame-mips.cc +0 -0
  308. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/virtual-frame-mips.h +0 -0
  309. data/ext/v8/upstream/3.1.8/src/mirror-debugger.js +2380 -0
  310. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mksnapshot.cc +0 -0
  311. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/natives.h +0 -0
  312. data/ext/v8/upstream/3.1.8/src/objects-debug.cc +722 -0
  313. data/ext/v8/upstream/3.1.8/src/objects-inl.h +3946 -0
  314. data/ext/v8/upstream/3.1.8/src/objects-printer.cc +801 -0
  315. data/ext/v8/upstream/3.1.8/src/objects-visiting.cc +142 -0
  316. data/ext/v8/upstream/3.1.8/src/objects-visiting.h +401 -0
  317. data/ext/v8/upstream/3.1.8/src/objects.cc +10044 -0
  318. data/ext/v8/upstream/3.1.8/src/objects.h +6571 -0
  319. data/ext/v8/upstream/3.1.8/src/parser.cc +5165 -0
  320. data/ext/v8/upstream/3.1.8/src/parser.h +802 -0
  321. data/ext/v8/upstream/3.1.8/src/platform-cygwin.cc +745 -0
  322. data/ext/v8/upstream/3.1.8/src/platform-freebsd.cc +702 -0
  323. data/ext/v8/upstream/3.1.8/src/platform-linux.cc +981 -0
  324. data/ext/v8/upstream/3.1.8/src/platform-macos.cc +732 -0
  325. data/ext/v8/upstream/3.1.8/src/platform-nullos.cc +498 -0
  326. data/ext/v8/upstream/3.1.8/src/platform-openbsd.cc +657 -0
  327. data/ext/v8/upstream/3.1.8/src/platform-posix.cc +399 -0
  328. data/ext/v8/upstream/3.1.8/src/platform-solaris.cc +714 -0
  329. data/ext/v8/upstream/3.1.8/src/platform-win32.cc +1974 -0
  330. data/ext/v8/upstream/3.1.8/src/platform.h +636 -0
  331. data/ext/v8/upstream/3.1.8/src/preparse-data.cc +183 -0
  332. data/ext/v8/upstream/3.1.8/src/preparse-data.h +249 -0
  333. data/ext/v8/upstream/3.1.8/src/preparser-api.cc +213 -0
  334. data/ext/v8/upstream/3.1.8/src/preparser.cc +1205 -0
  335. data/ext/v8/upstream/3.1.8/src/preparser.h +278 -0
  336. data/ext/v8/upstream/3.1.8/src/prettyprinter.cc +1539 -0
  337. data/ext/v8/upstream/3.1.8/src/prettyprinter.h +223 -0
  338. data/ext/v8/upstream/3.1.8/src/profile-generator-inl.h +128 -0
  339. data/ext/v8/upstream/3.1.8/src/profile-generator.cc +2899 -0
  340. data/ext/v8/upstream/3.1.8/src/profile-generator.h +1151 -0
  341. data/ext/v8/upstream/3.1.8/src/property.cc +96 -0
  342. data/ext/v8/upstream/3.1.8/src/property.h +337 -0
  343. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/regexp-macro-assembler-irregexp-inl.h +0 -0
  344. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-irregexp.cc +470 -0
  345. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-irregexp.h +142 -0
  346. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-tracer.cc +373 -0
  347. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-tracer.h +104 -0
  348. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler.cc +257 -0
  349. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler.h +231 -0
  350. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/regexp-stack.cc +0 -0
  351. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/regexp-stack.h +0 -0
  352. data/ext/v8/upstream/3.1.8/src/regexp.js +483 -0
  353. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/register-allocator-inl.h +0 -0
  354. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/register-allocator.cc +0 -0
  355. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/register-allocator.h +0 -0
  356. data/ext/v8/upstream/3.1.8/src/rewriter.cc +1023 -0
  357. data/ext/v8/upstream/3.1.8/src/rewriter.h +59 -0
  358. data/ext/v8/upstream/3.1.8/src/runtime-profiler.cc +443 -0
  359. data/ext/v8/upstream/3.1.8/src/runtime-profiler.h +77 -0
  360. data/ext/v8/upstream/3.1.8/src/runtime.cc +11592 -0
  361. data/ext/v8/upstream/3.1.8/src/runtime.h +582 -0
  362. data/ext/v8/upstream/3.1.8/src/runtime.js +643 -0
  363. data/ext/v8/upstream/3.1.8/src/safepoint-table.cc +253 -0
  364. data/ext/v8/upstream/3.1.8/src/safepoint-table.h +263 -0
  365. data/ext/v8/upstream/3.1.8/src/scanner-base.cc +971 -0
  366. data/ext/v8/upstream/3.1.8/src/scanner-base.h +653 -0
  367. data/ext/v8/upstream/3.1.8/src/scanner.cc +586 -0
  368. data/ext/v8/upstream/3.1.8/src/scanner.h +194 -0
  369. data/ext/v8/upstream/3.1.8/src/scopeinfo.cc +636 -0
  370. data/ext/v8/upstream/3.1.8/src/scopeinfo.h +238 -0
  371. data/ext/v8/upstream/3.1.8/src/scopes.cc +1063 -0
  372. data/ext/v8/upstream/3.1.8/src/scopes.h +494 -0
  373. data/ext/v8/upstream/3.1.8/src/serialize.cc +1535 -0
  374. data/ext/v8/upstream/3.1.8/src/serialize.h +584 -0
  375. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/shell.h +0 -0
  376. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/simulator.h +0 -0
  377. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/smart-pointer.h +0 -0
  378. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/snapshot-common.cc +0 -0
  379. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/snapshot-empty.cc +0 -0
  380. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/snapshot.h +0 -0
  381. data/ext/v8/upstream/3.1.8/src/spaces-inl.h +524 -0
  382. data/ext/v8/upstream/3.1.8/src/spaces.cc +3254 -0
  383. data/ext/v8/upstream/3.1.8/src/spaces.h +2362 -0
  384. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/splay-tree-inl.h +0 -0
  385. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/splay-tree.h +0 -0
  386. data/ext/v8/upstream/3.1.8/src/string-search.cc +40 -0
  387. data/ext/v8/upstream/3.1.8/src/string-search.h +567 -0
  388. data/ext/v8/upstream/3.1.8/src/string-stream.cc +584 -0
  389. data/ext/v8/upstream/3.1.8/src/string-stream.h +191 -0
  390. data/ext/v8/upstream/3.1.8/src/string.js +915 -0
  391. data/ext/v8/upstream/3.1.8/src/strtod.cc +440 -0
  392. data/ext/v8/upstream/3.1.8/src/strtod.h +40 -0
  393. data/ext/v8/upstream/3.1.8/src/stub-cache.cc +1878 -0
  394. data/ext/v8/upstream/3.1.8/src/stub-cache.h +849 -0
  395. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/third_party/valgrind/valgrind.h +0 -0
  396. data/ext/v8/upstream/3.1.8/src/token.cc +63 -0
  397. data/ext/v8/upstream/3.1.8/src/token.h +288 -0
  398. data/ext/v8/upstream/3.1.8/src/top.cc +1152 -0
  399. data/ext/v8/upstream/3.1.8/src/top.h +608 -0
  400. data/ext/v8/upstream/3.1.8/src/type-info.cc +406 -0
  401. data/ext/v8/upstream/3.1.8/src/type-info.h +283 -0
  402. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/unbound-queue-inl.h +0 -0
  403. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/unbound-queue.h +0 -0
  404. data/ext/v8/upstream/3.1.8/src/unicode-inl.h +238 -0
  405. data/ext/v8/upstream/3.1.8/src/unicode.cc +1624 -0
  406. data/ext/v8/upstream/3.1.8/src/unicode.h +280 -0
  407. data/ext/v8/upstream/3.1.8/src/uri.js +402 -0
  408. data/ext/v8/upstream/3.1.8/src/utils.cc +371 -0
  409. data/ext/v8/upstream/3.1.8/src/utils.h +793 -0
  410. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/v8-counters.cc +0 -0
  411. data/ext/v8/upstream/3.1.8/src/v8-counters.h +290 -0
  412. data/ext/v8/upstream/3.1.8/src/v8.cc +270 -0
  413. data/ext/v8/upstream/3.1.8/src/v8.h +127 -0
  414. data/ext/v8/upstream/3.1.8/src/v8checks.h +64 -0
  415. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/v8dll-main.cc +0 -0
  416. data/ext/v8/upstream/3.1.8/src/v8globals.h +480 -0
  417. data/ext/v8/upstream/3.1.8/src/v8natives.js +1252 -0
  418. data/ext/v8/upstream/3.1.8/src/v8preparserdll-main.cc +39 -0
  419. data/ext/v8/upstream/3.1.8/src/v8threads.cc +440 -0
  420. data/ext/v8/upstream/3.1.8/src/v8threads.h +157 -0
  421. data/ext/v8/upstream/3.1.8/src/v8utils.h +354 -0
  422. data/ext/v8/upstream/3.1.8/src/variables.cc +132 -0
  423. data/ext/v8/upstream/3.1.8/src/variables.h +212 -0
  424. data/ext/v8/upstream/3.1.8/src/version.cc +95 -0
  425. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/version.h +0 -0
  426. data/ext/v8/upstream/3.1.8/src/virtual-frame-heavy-inl.h +190 -0
  427. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-heavy.cc +0 -0
  428. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-inl.h +0 -0
  429. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-light-inl.h +0 -0
  430. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-light.cc +0 -0
  431. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame.cc +0 -0
  432. data/ext/v8/upstream/3.1.8/src/virtual-frame.h +59 -0
  433. data/ext/v8/upstream/3.1.8/src/vm-state-inl.h +134 -0
  434. data/ext/v8/upstream/3.1.8/src/vm-state.h +68 -0
  435. data/ext/v8/upstream/3.1.8/src/win32-headers.h +95 -0
  436. data/ext/v8/upstream/3.1.8/src/x64/assembler-x64-inl.h +455 -0
  437. data/ext/v8/upstream/3.1.8/src/x64/assembler-x64.cc +3162 -0
  438. data/ext/v8/upstream/3.1.8/src/x64/assembler-x64.h +1584 -0
  439. data/ext/v8/upstream/3.1.8/src/x64/builtins-x64.cc +1492 -0
  440. data/ext/v8/upstream/3.1.8/src/x64/code-stubs-x64.cc +5150 -0
  441. data/ext/v8/upstream/3.1.8/src/x64/code-stubs-x64.h +519 -0
  442. data/ext/v8/upstream/3.1.8/src/x64/codegen-x64-inl.h +46 -0
  443. data/ext/v8/upstream/3.1.8/src/x64/codegen-x64.cc +8835 -0
  444. data/ext/v8/upstream/3.1.8/src/x64/codegen-x64.h +750 -0
  445. data/ext/v8/upstream/3.1.8/src/x64/cpu-x64.cc +86 -0
  446. data/ext/v8/upstream/3.1.8/src/x64/debug-x64.cc +316 -0
  447. data/ext/v8/upstream/3.1.8/src/x64/deoptimizer-x64.cc +781 -0
  448. data/ext/v8/upstream/3.1.8/src/x64/disasm-x64.cc +1737 -0
  449. data/ext/v8/upstream/3.1.8/src/x64/frames-x64.cc +45 -0
  450. data/ext/v8/upstream/3.1.8/src/x64/frames-x64.h +130 -0
  451. data/ext/v8/upstream/3.1.8/src/x64/full-codegen-x64.cc +3984 -0
  452. data/ext/v8/upstream/3.1.8/src/x64/ic-x64.cc +1761 -0
  453. data/ext/v8/upstream/3.1.8/src/x64/jump-target-x64.cc +437 -0
  454. data/ext/v8/upstream/3.1.8/src/x64/lithium-codegen-x64.cc +3639 -0
  455. data/ext/v8/upstream/3.1.8/src/x64/lithium-codegen-x64.h +305 -0
  456. data/ext/v8/upstream/3.1.8/src/x64/lithium-gap-resolver-x64.cc +320 -0
  457. data/ext/v8/upstream/3.1.8/src/x64/lithium-gap-resolver-x64.h +74 -0
  458. data/ext/v8/upstream/3.1.8/src/x64/lithium-x64.cc +2044 -0
  459. data/ext/v8/upstream/3.1.8/src/x64/lithium-x64.h +2052 -0
  460. data/ext/v8/upstream/3.1.8/src/x64/macro-assembler-x64.cc +2660 -0
  461. data/ext/v8/upstream/3.1.8/src/x64/macro-assembler-x64.h +1852 -0
  462. data/ext/v8/upstream/3.1.8/src/x64/regexp-macro-assembler-x64.cc +1382 -0
  463. data/ext/v8/upstream/3.1.8/src/x64/regexp-macro-assembler-x64.h +278 -0
  464. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/register-allocator-x64-inl.h +0 -0
  465. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/register-allocator-x64.cc +0 -0
  466. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/register-allocator-x64.h +0 -0
  467. data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/simulator-x64.cc +0 -0
  468. data/ext/v8/upstream/3.1.8/src/x64/simulator-x64.h +71 -0
  469. data/ext/v8/upstream/3.1.8/src/x64/stub-cache-x64.cc +3509 -0
  470. data/ext/v8/upstream/3.1.8/src/x64/virtual-frame-x64.cc +1292 -0
  471. data/ext/v8/upstream/3.1.8/src/x64/virtual-frame-x64.h +593 -0
  472. data/ext/v8/upstream/3.1.8/src/zone-inl.h +83 -0
  473. data/ext/v8/upstream/3.1.8/src/zone.cc +195 -0
  474. data/ext/v8/upstream/3.1.8/src/zone.h +233 -0
  475. data/ext/v8/upstream/3.1.8/tools/codemap.js +265 -0
  476. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/consarray.js +0 -0
  477. data/ext/v8/upstream/3.1.8/tools/csvparser.js +78 -0
  478. data/ext/v8/upstream/3.1.8/tools/disasm.py +92 -0
  479. data/ext/v8/upstream/3.1.8/tools/gc-nvp-trace-processor.py +328 -0
  480. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/generate-ten-powers.scm +0 -0
  481. data/ext/v8/upstream/3.1.8/tools/grokdump.py +840 -0
  482. data/ext/v8/upstream/3.1.8/tools/gyp/v8.gyp +869 -0
  483. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/js2c.py +0 -0
  484. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/jsmin.py +0 -0
  485. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/linux-tick-processor +0 -0
  486. data/ext/v8/upstream/3.1.8/tools/ll_prof.py +919 -0
  487. data/ext/v8/upstream/3.1.8/tools/logreader.js +185 -0
  488. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/mac-nm +0 -0
  489. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/mac-tick-processor +0 -0
  490. data/ext/v8/upstream/3.1.8/tools/oom_dump/README +31 -0
  491. data/ext/v8/upstream/3.1.8/tools/oom_dump/SConstruct +42 -0
  492. data/ext/v8/upstream/3.1.8/tools/oom_dump/oom_dump.cc +288 -0
  493. data/ext/v8/upstream/3.1.8/tools/presubmit.py +305 -0
  494. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/process-heap-prof.py +0 -0
  495. data/ext/v8/upstream/3.1.8/tools/profile.js +751 -0
  496. data/ext/v8/upstream/3.1.8/tools/profile_view.js +219 -0
  497. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/run-valgrind.py +0 -0
  498. data/ext/v8/upstream/3.1.8/tools/splaytree.js +316 -0
  499. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/stats-viewer.py +0 -0
  500. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/tickprocessor-driver.js +0 -0
  501. data/ext/v8/upstream/3.1.8/tools/tickprocessor.js +863 -0
  502. data/ext/v8/upstream/3.1.8/tools/utils.py +96 -0
  503. data/ext/v8/upstream/3.1.8/tools/visual_studio/README.txt +70 -0
  504. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/arm.vsprops +0 -0
  505. data/ext/v8/upstream/3.1.8/tools/visual_studio/common.vsprops +34 -0
  506. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8.vcproj +0 -0
  507. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8_arm.vcproj +0 -0
  508. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8_x64.vcproj +0 -0
  509. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8js2c.cmd +0 -0
  510. data/ext/v8/upstream/3.1.8/tools/visual_studio/debug.vsprops +17 -0
  511. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/ia32.vsprops +0 -0
  512. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/js2c.cmd +0 -0
  513. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/release.vsprops +0 -0
  514. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8.sln +0 -0
  515. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8.vcproj +0 -0
  516. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_arm.sln +0 -0
  517. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_arm.vcproj +0 -0
  518. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base.vcproj +1296 -0
  519. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base_arm.vcproj +1234 -0
  520. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base_x64.vcproj +1296 -0
  521. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_cctest.vcproj +0 -0
  522. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_cctest_arm.vcproj +0 -0
  523. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_cctest_x64.vcproj +0 -0
  524. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_mksnapshot.vcproj +0 -0
  525. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -0
  526. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_process_sample.vcproj +0 -0
  527. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_process_sample_arm.vcproj +0 -0
  528. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_process_sample_x64.vcproj +0 -0
  529. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_shell_sample.vcproj +147 -0
  530. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_shell_sample_arm.vcproj +147 -0
  531. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_shell_sample_x64.vcproj +163 -0
  532. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot.vcproj +0 -0
  533. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
  534. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
  535. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
  536. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_x64.sln +0 -0
  537. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_x64.vcproj +0 -0
  538. data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/x64.vsprops +0 -0
  539. data/ext/v8/upstream/3.1.8/tools/windows-tick-processor.bat +30 -0
  540. data/ext/v8/upstream/Makefile +2 -1
  541. data/ext/v8/v8_template.cpp +2 -2
  542. data/lib/v8/version.rb +1 -1
  543. data/spec/redjs/jsapi_spec.rb +2 -2
  544. metadata +552 -490
  545. data/ext/v8/upstream/2.3.3/.gitignore +0 -26
  546. data/ext/v8/upstream/2.3.3/AUTHORS +0 -31
  547. data/ext/v8/upstream/2.3.3/ChangeLog +0 -1916
  548. data/ext/v8/upstream/2.3.3/LICENSE +0 -55
  549. data/ext/v8/upstream/2.3.3/SConstruct +0 -1154
  550. data/ext/v8/upstream/2.3.3/include/v8-debug.h +0 -381
  551. data/ext/v8/upstream/2.3.3/include/v8-profiler.h +0 -353
  552. data/ext/v8/upstream/2.3.3/include/v8.h +0 -3616
  553. data/ext/v8/upstream/2.3.3/src/SConscript +0 -330
  554. data/ext/v8/upstream/2.3.3/src/accessors.cc +0 -661
  555. data/ext/v8/upstream/2.3.3/src/accessors.h +0 -114
  556. data/ext/v8/upstream/2.3.3/src/allocation.cc +0 -198
  557. data/ext/v8/upstream/2.3.3/src/allocation.h +0 -169
  558. data/ext/v8/upstream/2.3.3/src/api.cc +0 -4795
  559. data/ext/v8/upstream/2.3.3/src/api.h +0 -485
  560. data/ext/v8/upstream/2.3.3/src/apiutils.h +0 -69
  561. data/ext/v8/upstream/2.3.3/src/arguments.h +0 -96
  562. data/ext/v8/upstream/2.3.3/src/arm/assembler-arm-inl.h +0 -305
  563. data/ext/v8/upstream/2.3.3/src/arm/assembler-arm.cc +0 -2580
  564. data/ext/v8/upstream/2.3.3/src/arm/assembler-arm.h +0 -1275
  565. data/ext/v8/upstream/2.3.3/src/arm/builtins-arm.cc +0 -1320
  566. data/ext/v8/upstream/2.3.3/src/arm/codegen-arm-inl.h +0 -48
  567. data/ext/v8/upstream/2.3.3/src/arm/codegen-arm.cc +0 -11398
  568. data/ext/v8/upstream/2.3.3/src/arm/codegen-arm.h +0 -1102
  569. data/ext/v8/upstream/2.3.3/src/arm/constants-arm.cc +0 -154
  570. data/ext/v8/upstream/2.3.3/src/arm/constants-arm.h +0 -388
  571. data/ext/v8/upstream/2.3.3/src/arm/cpu-arm.cc +0 -142
  572. data/ext/v8/upstream/2.3.3/src/arm/debug-arm.cc +0 -309
  573. data/ext/v8/upstream/2.3.3/src/arm/disasm-arm.cc +0 -1459
  574. data/ext/v8/upstream/2.3.3/src/arm/fast-codegen-arm.cc +0 -241
  575. data/ext/v8/upstream/2.3.3/src/arm/frames-arm.cc +0 -123
  576. data/ext/v8/upstream/2.3.3/src/arm/frames-arm.h +0 -162
  577. data/ext/v8/upstream/2.3.3/src/arm/full-codegen-arm.cc +0 -3178
  578. data/ext/v8/upstream/2.3.3/src/arm/ic-arm.cc +0 -2258
  579. data/ext/v8/upstream/2.3.3/src/arm/jump-target-arm.cc +0 -164
  580. data/ext/v8/upstream/2.3.3/src/arm/macro-assembler-arm.cc +0 -1892
  581. data/ext/v8/upstream/2.3.3/src/arm/macro-assembler-arm.h +0 -727
  582. data/ext/v8/upstream/2.3.3/src/arm/regexp-macro-assembler-arm.cc +0 -1261
  583. data/ext/v8/upstream/2.3.3/src/arm/regexp-macro-assembler-arm.h +0 -266
  584. data/ext/v8/upstream/2.3.3/src/arm/simulator-arm.cc +0 -2822
  585. data/ext/v8/upstream/2.3.3/src/arm/simulator-arm.h +0 -361
  586. data/ext/v8/upstream/2.3.3/src/arm/stub-cache-arm.cc +0 -2387
  587. data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm.cc +0 -834
  588. data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm.h +0 -519
  589. data/ext/v8/upstream/2.3.3/src/array.js +0 -1127
  590. data/ext/v8/upstream/2.3.3/src/assembler.cc +0 -801
  591. data/ext/v8/upstream/2.3.3/src/assembler.h +0 -573
  592. data/ext/v8/upstream/2.3.3/src/ast-inl.h +0 -81
  593. data/ext/v8/upstream/2.3.3/src/ast.cc +0 -1152
  594. data/ext/v8/upstream/2.3.3/src/ast.h +0 -2106
  595. data/ext/v8/upstream/2.3.3/src/bootstrapper.cc +0 -1819
  596. data/ext/v8/upstream/2.3.3/src/builtins.cc +0 -1529
  597. data/ext/v8/upstream/2.3.3/src/builtins.h +0 -263
  598. data/ext/v8/upstream/2.3.3/src/bytecodes-irregexp.h +0 -104
  599. data/ext/v8/upstream/2.3.3/src/cached-powers.h +0 -119
  600. data/ext/v8/upstream/2.3.3/src/char-predicates-inl.h +0 -86
  601. data/ext/v8/upstream/2.3.3/src/checks.cc +0 -100
  602. data/ext/v8/upstream/2.3.3/src/checks.h +0 -310
  603. data/ext/v8/upstream/2.3.3/src/circular-queue.cc +0 -121
  604. data/ext/v8/upstream/2.3.3/src/code-stubs.cc +0 -177
  605. data/ext/v8/upstream/2.3.3/src/code-stubs.h +0 -177
  606. data/ext/v8/upstream/2.3.3/src/codegen-inl.h +0 -60
  607. data/ext/v8/upstream/2.3.3/src/codegen.cc +0 -516
  608. data/ext/v8/upstream/2.3.3/src/codegen.h +0 -897
  609. data/ext/v8/upstream/2.3.3/src/compilation-cache.cc +0 -562
  610. data/ext/v8/upstream/2.3.3/src/compilation-cache.h +0 -102
  611. data/ext/v8/upstream/2.3.3/src/compiler.cc +0 -654
  612. data/ext/v8/upstream/2.3.3/src/compiler.h +0 -299
  613. data/ext/v8/upstream/2.3.3/src/contexts.cc +0 -256
  614. data/ext/v8/upstream/2.3.3/src/contexts.h +0 -342
  615. data/ext/v8/upstream/2.3.3/src/conversions.cc +0 -1119
  616. data/ext/v8/upstream/2.3.3/src/conversions.h +0 -123
  617. data/ext/v8/upstream/2.3.3/src/counters.h +0 -239
  618. data/ext/v8/upstream/2.3.3/src/cpu-profiler-inl.h +0 -100
  619. data/ext/v8/upstream/2.3.3/src/cpu-profiler.cc +0 -538
  620. data/ext/v8/upstream/2.3.3/src/cpu-profiler.h +0 -285
  621. data/ext/v8/upstream/2.3.3/src/d8-debug.cc +0 -356
  622. data/ext/v8/upstream/2.3.3/src/d8-debug.h +0 -155
  623. data/ext/v8/upstream/2.3.3/src/d8.cc +0 -783
  624. data/ext/v8/upstream/2.3.3/src/d8.h +0 -227
  625. data/ext/v8/upstream/2.3.3/src/d8.js +0 -1683
  626. data/ext/v8/upstream/2.3.3/src/data-flow.cc +0 -758
  627. data/ext/v8/upstream/2.3.3/src/data-flow.h +0 -278
  628. data/ext/v8/upstream/2.3.3/src/date.js +0 -1059
  629. data/ext/v8/upstream/2.3.3/src/dateparser-inl.h +0 -123
  630. data/ext/v8/upstream/2.3.3/src/dateparser.h +0 -244
  631. data/ext/v8/upstream/2.3.3/src/debug-agent.cc +0 -427
  632. data/ext/v8/upstream/2.3.3/src/debug-agent.h +0 -129
  633. data/ext/v8/upstream/2.3.3/src/debug-debugger.js +0 -2227
  634. data/ext/v8/upstream/2.3.3/src/debug.cc +0 -3005
  635. data/ext/v8/upstream/2.3.3/src/debug.h +0 -993
  636. data/ext/v8/upstream/2.3.3/src/disassembler.cc +0 -312
  637. data/ext/v8/upstream/2.3.3/src/double.h +0 -169
  638. data/ext/v8/upstream/2.3.3/src/dtoa-config.c +0 -92
  639. data/ext/v8/upstream/2.3.3/src/dtoa.cc +0 -77
  640. data/ext/v8/upstream/2.3.3/src/dtoa.h +0 -81
  641. data/ext/v8/upstream/2.3.3/src/execution.cc +0 -809
  642. data/ext/v8/upstream/2.3.3/src/execution.h +0 -336
  643. data/ext/v8/upstream/2.3.3/src/factory.cc +0 -1003
  644. data/ext/v8/upstream/2.3.3/src/factory.h +0 -410
  645. data/ext/v8/upstream/2.3.3/src/fast-codegen.cc +0 -746
  646. data/ext/v8/upstream/2.3.3/src/fast-codegen.h +0 -161
  647. data/ext/v8/upstream/2.3.3/src/fast-dtoa.cc +0 -505
  648. data/ext/v8/upstream/2.3.3/src/fast-dtoa.h +0 -58
  649. data/ext/v8/upstream/2.3.3/src/flag-definitions.h +0 -455
  650. data/ext/v8/upstream/2.3.3/src/flags.cc +0 -551
  651. data/ext/v8/upstream/2.3.3/src/flags.h +0 -81
  652. data/ext/v8/upstream/2.3.3/src/flow-graph.cc +0 -763
  653. data/ext/v8/upstream/2.3.3/src/flow-graph.h +0 -180
  654. data/ext/v8/upstream/2.3.3/src/frame-element.h +0 -273
  655. data/ext/v8/upstream/2.3.3/src/frames-inl.h +0 -217
  656. data/ext/v8/upstream/2.3.3/src/frames.cc +0 -826
  657. data/ext/v8/upstream/2.3.3/src/frames.h +0 -682
  658. data/ext/v8/upstream/2.3.3/src/full-codegen.cc +0 -1443
  659. data/ext/v8/upstream/2.3.3/src/full-codegen.h +0 -548
  660. data/ext/v8/upstream/2.3.3/src/func-name-inferrer.cc +0 -76
  661. data/ext/v8/upstream/2.3.3/src/func-name-inferrer.h +0 -135
  662. data/ext/v8/upstream/2.3.3/src/global-handles.cc +0 -520
  663. data/ext/v8/upstream/2.3.3/src/global-handles.h +0 -180
  664. data/ext/v8/upstream/2.3.3/src/globals.h +0 -669
  665. data/ext/v8/upstream/2.3.3/src/handles-inl.h +0 -76
  666. data/ext/v8/upstream/2.3.3/src/handles.cc +0 -825
  667. data/ext/v8/upstream/2.3.3/src/handles.h +0 -393
  668. data/ext/v8/upstream/2.3.3/src/hashmap.cc +0 -226
  669. data/ext/v8/upstream/2.3.3/src/hashmap.h +0 -120
  670. data/ext/v8/upstream/2.3.3/src/heap-inl.h +0 -493
  671. data/ext/v8/upstream/2.3.3/src/heap-profiler.cc +0 -779
  672. data/ext/v8/upstream/2.3.3/src/heap-profiler.h +0 -323
  673. data/ext/v8/upstream/2.3.3/src/heap.cc +0 -4994
  674. data/ext/v8/upstream/2.3.3/src/heap.h +0 -1984
  675. data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32-inl.h +0 -360
  676. data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32.cc +0 -2600
  677. data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32.h +0 -969
  678. data/ext/v8/upstream/2.3.3/src/ia32/builtins-ia32.cc +0 -1261
  679. data/ext/v8/upstream/2.3.3/src/ia32/codegen-ia32.cc +0 -13968
  680. data/ext/v8/upstream/2.3.3/src/ia32/codegen-ia32.h +0 -1097
  681. data/ext/v8/upstream/2.3.3/src/ia32/cpu-ia32.cc +0 -83
  682. data/ext/v8/upstream/2.3.3/src/ia32/debug-ia32.cc +0 -309
  683. data/ext/v8/upstream/2.3.3/src/ia32/disasm-ia32.cc +0 -1471
  684. data/ext/v8/upstream/2.3.3/src/ia32/fast-codegen-ia32.cc +0 -954
  685. data/ext/v8/upstream/2.3.3/src/ia32/fast-codegen-ia32.h +0 -155
  686. data/ext/v8/upstream/2.3.3/src/ia32/frames-ia32.cc +0 -115
  687. data/ext/v8/upstream/2.3.3/src/ia32/frames-ia32.h +0 -135
  688. data/ext/v8/upstream/2.3.3/src/ia32/full-codegen-ia32.cc +0 -3281
  689. data/ext/v8/upstream/2.3.3/src/ia32/ic-ia32.cc +0 -1966
  690. data/ext/v8/upstream/2.3.3/src/ia32/macro-assembler-ia32.cc +0 -1610
  691. data/ext/v8/upstream/2.3.3/src/ia32/macro-assembler-ia32.h +0 -610
  692. data/ext/v8/upstream/2.3.3/src/ia32/regexp-macro-assembler-ia32.cc +0 -1247
  693. data/ext/v8/upstream/2.3.3/src/ia32/regexp-macro-assembler-ia32.h +0 -214
  694. data/ext/v8/upstream/2.3.3/src/ia32/simulator-ia32.h +0 -62
  695. data/ext/v8/upstream/2.3.3/src/ia32/stub-cache-ia32.cc +0 -2750
  696. data/ext/v8/upstream/2.3.3/src/ia32/virtual-frame-ia32.cc +0 -1334
  697. data/ext/v8/upstream/2.3.3/src/ia32/virtual-frame-ia32.h +0 -627
  698. data/ext/v8/upstream/2.3.3/src/ic-inl.h +0 -120
  699. data/ext/v8/upstream/2.3.3/src/ic.cc +0 -1827
  700. data/ext/v8/upstream/2.3.3/src/ic.h +0 -515
  701. data/ext/v8/upstream/2.3.3/src/interpreter-irregexp.cc +0 -646
  702. data/ext/v8/upstream/2.3.3/src/json.js +0 -268
  703. data/ext/v8/upstream/2.3.3/src/jsregexp.cc +0 -5283
  704. data/ext/v8/upstream/2.3.3/src/jsregexp.h +0 -1463
  705. data/ext/v8/upstream/2.3.3/src/jump-target-heavy.cc +0 -429
  706. data/ext/v8/upstream/2.3.3/src/jump-target-heavy.h +0 -244
  707. data/ext/v8/upstream/2.3.3/src/jump-target-light.cc +0 -110
  708. data/ext/v8/upstream/2.3.3/src/jump-target-light.h +0 -192
  709. data/ext/v8/upstream/2.3.3/src/list-inl.h +0 -166
  710. data/ext/v8/upstream/2.3.3/src/list.h +0 -159
  711. data/ext/v8/upstream/2.3.3/src/liveedit-debugger.js +0 -1057
  712. data/ext/v8/upstream/2.3.3/src/liveedit.cc +0 -1480
  713. data/ext/v8/upstream/2.3.3/src/liveedit.h +0 -170
  714. data/ext/v8/upstream/2.3.3/src/log-utils.cc +0 -497
  715. data/ext/v8/upstream/2.3.3/src/log-utils.h +0 -289
  716. data/ext/v8/upstream/2.3.3/src/log.cc +0 -1561
  717. data/ext/v8/upstream/2.3.3/src/log.h +0 -384
  718. data/ext/v8/upstream/2.3.3/src/macro-assembler.h +0 -86
  719. data/ext/v8/upstream/2.3.3/src/macros.py +0 -177
  720. data/ext/v8/upstream/2.3.3/src/mark-compact.cc +0 -2330
  721. data/ext/v8/upstream/2.3.3/src/mark-compact.h +0 -451
  722. data/ext/v8/upstream/2.3.3/src/math.js +0 -264
  723. data/ext/v8/upstream/2.3.3/src/memory.h +0 -74
  724. data/ext/v8/upstream/2.3.3/src/messages.cc +0 -183
  725. data/ext/v8/upstream/2.3.3/src/messages.h +0 -113
  726. data/ext/v8/upstream/2.3.3/src/messages.js +0 -982
  727. data/ext/v8/upstream/2.3.3/src/mips/assembler-mips.h +0 -668
  728. data/ext/v8/upstream/2.3.3/src/mips/builtins-mips.cc +0 -205
  729. data/ext/v8/upstream/2.3.3/src/mips/codegen-mips.h +0 -434
  730. data/ext/v8/upstream/2.3.3/src/mips/debug-mips.cc +0 -131
  731. data/ext/v8/upstream/2.3.3/src/mips/frames-mips.cc +0 -102
  732. data/ext/v8/upstream/2.3.3/src/mips/ic-mips.cc +0 -220
  733. data/ext/v8/upstream/2.3.3/src/mips/simulator-mips.cc +0 -1651
  734. data/ext/v8/upstream/2.3.3/src/mips/simulator-mips.h +0 -311
  735. data/ext/v8/upstream/2.3.3/src/mips/stub-cache-mips.cc +0 -403
  736. data/ext/v8/upstream/2.3.3/src/mirror-debugger.js +0 -2380
  737. data/ext/v8/upstream/2.3.3/src/objects-debug.cc +0 -1366
  738. data/ext/v8/upstream/2.3.3/src/objects-inl.h +0 -3333
  739. data/ext/v8/upstream/2.3.3/src/objects.cc +0 -8820
  740. data/ext/v8/upstream/2.3.3/src/objects.h +0 -5373
  741. data/ext/v8/upstream/2.3.3/src/oprofile-agent.cc +0 -108
  742. data/ext/v8/upstream/2.3.3/src/oprofile-agent.h +0 -77
  743. data/ext/v8/upstream/2.3.3/src/parser.cc +0 -5207
  744. data/ext/v8/upstream/2.3.3/src/parser.h +0 -197
  745. data/ext/v8/upstream/2.3.3/src/platform-freebsd.cc +0 -667
  746. data/ext/v8/upstream/2.3.3/src/platform-linux.cc +0 -862
  747. data/ext/v8/upstream/2.3.3/src/platform-macos.cc +0 -665
  748. data/ext/v8/upstream/2.3.3/src/platform-nullos.cc +0 -454
  749. data/ext/v8/upstream/2.3.3/src/platform-openbsd.cc +0 -622
  750. data/ext/v8/upstream/2.3.3/src/platform-posix.cc +0 -362
  751. data/ext/v8/upstream/2.3.3/src/platform-solaris.cc +0 -653
  752. data/ext/v8/upstream/2.3.3/src/platform-win32.cc +0 -1911
  753. data/ext/v8/upstream/2.3.3/src/platform.h +0 -577
  754. data/ext/v8/upstream/2.3.3/src/powers-ten.h +0 -2461
  755. data/ext/v8/upstream/2.3.3/src/prettyprinter.cc +0 -1531
  756. data/ext/v8/upstream/2.3.3/src/prettyprinter.h +0 -221
  757. data/ext/v8/upstream/2.3.3/src/profile-generator-inl.h +0 -148
  758. data/ext/v8/upstream/2.3.3/src/profile-generator.cc +0 -1830
  759. data/ext/v8/upstream/2.3.3/src/profile-generator.h +0 -853
  760. data/ext/v8/upstream/2.3.3/src/property.cc +0 -96
  761. data/ext/v8/upstream/2.3.3/src/property.h +0 -315
  762. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-irregexp.cc +0 -464
  763. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-irregexp.h +0 -141
  764. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-tracer.cc +0 -356
  765. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-tracer.h +0 -103
  766. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler.cc +0 -261
  767. data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler.h +0 -228
  768. data/ext/v8/upstream/2.3.3/src/regexp.js +0 -549
  769. data/ext/v8/upstream/2.3.3/src/rewriter.cc +0 -1038
  770. data/ext/v8/upstream/2.3.3/src/rewriter.h +0 -54
  771. data/ext/v8/upstream/2.3.3/src/runtime.cc +0 -10599
  772. data/ext/v8/upstream/2.3.3/src/runtime.h +0 -459
  773. data/ext/v8/upstream/2.3.3/src/runtime.js +0 -629
  774. data/ext/v8/upstream/2.3.3/src/scanner.cc +0 -1346
  775. data/ext/v8/upstream/2.3.3/src/scanner.h +0 -503
  776. data/ext/v8/upstream/2.3.3/src/scopeinfo.cc +0 -637
  777. data/ext/v8/upstream/2.3.3/src/scopeinfo.h +0 -233
  778. data/ext/v8/upstream/2.3.3/src/scopes.cc +0 -962
  779. data/ext/v8/upstream/2.3.3/src/scopes.h +0 -400
  780. data/ext/v8/upstream/2.3.3/src/serialize.cc +0 -1461
  781. data/ext/v8/upstream/2.3.3/src/serialize.h +0 -581
  782. data/ext/v8/upstream/2.3.3/src/spaces-inl.h +0 -483
  783. data/ext/v8/upstream/2.3.3/src/spaces.cc +0 -2901
  784. data/ext/v8/upstream/2.3.3/src/spaces.h +0 -2197
  785. data/ext/v8/upstream/2.3.3/src/string-stream.cc +0 -584
  786. data/ext/v8/upstream/2.3.3/src/string-stream.h +0 -189
  787. data/ext/v8/upstream/2.3.3/src/string.js +0 -1006
  788. data/ext/v8/upstream/2.3.3/src/stub-cache.cc +0 -1379
  789. data/ext/v8/upstream/2.3.3/src/stub-cache.h +0 -756
  790. data/ext/v8/upstream/2.3.3/src/third_party/dtoa/COPYING +0 -15
  791. data/ext/v8/upstream/2.3.3/src/third_party/dtoa/dtoa.c +0 -3334
  792. data/ext/v8/upstream/2.3.3/src/token.cc +0 -56
  793. data/ext/v8/upstream/2.3.3/src/token.h +0 -270
  794. data/ext/v8/upstream/2.3.3/src/top.cc +0 -1067
  795. data/ext/v8/upstream/2.3.3/src/top.h +0 -463
  796. data/ext/v8/upstream/2.3.3/src/type-info.cc +0 -53
  797. data/ext/v8/upstream/2.3.3/src/type-info.h +0 -244
  798. data/ext/v8/upstream/2.3.3/src/unicode-inl.h +0 -238
  799. data/ext/v8/upstream/2.3.3/src/unicode.cc +0 -749
  800. data/ext/v8/upstream/2.3.3/src/unicode.h +0 -279
  801. data/ext/v8/upstream/2.3.3/src/uri.js +0 -415
  802. data/ext/v8/upstream/2.3.3/src/utils.cc +0 -285
  803. data/ext/v8/upstream/2.3.3/src/utils.h +0 -745
  804. data/ext/v8/upstream/2.3.3/src/v8-counters.h +0 -250
  805. data/ext/v8/upstream/2.3.3/src/v8.cc +0 -228
  806. data/ext/v8/upstream/2.3.3/src/v8.h +0 -121
  807. data/ext/v8/upstream/2.3.3/src/v8natives.js +0 -1188
  808. data/ext/v8/upstream/2.3.3/src/v8threads.cc +0 -461
  809. data/ext/v8/upstream/2.3.3/src/v8threads.h +0 -159
  810. data/ext/v8/upstream/2.3.3/src/variables.cc +0 -119
  811. data/ext/v8/upstream/2.3.3/src/variables.h +0 -205
  812. data/ext/v8/upstream/2.3.3/src/version.cc +0 -88
  813. data/ext/v8/upstream/2.3.3/src/virtual-frame-heavy-inl.h +0 -192
  814. data/ext/v8/upstream/2.3.3/src/virtual-frame.h +0 -46
  815. data/ext/v8/upstream/2.3.3/src/vm-state-inl.h +0 -137
  816. data/ext/v8/upstream/2.3.3/src/vm-state.cc +0 -39
  817. data/ext/v8/upstream/2.3.3/src/vm-state.h +0 -77
  818. data/ext/v8/upstream/2.3.3/src/x64/assembler-x64-inl.h +0 -400
  819. data/ext/v8/upstream/2.3.3/src/x64/assembler-x64.cc +0 -2963
  820. data/ext/v8/upstream/2.3.3/src/x64/assembler-x64.h +0 -1438
  821. data/ext/v8/upstream/2.3.3/src/x64/builtins-x64.cc +0 -1296
  822. data/ext/v8/upstream/2.3.3/src/x64/codegen-x64-inl.h +0 -46
  823. data/ext/v8/upstream/2.3.3/src/x64/codegen-x64.cc +0 -12491
  824. data/ext/v8/upstream/2.3.3/src/x64/codegen-x64.h +0 -1090
  825. data/ext/v8/upstream/2.3.3/src/x64/cpu-x64.cc +0 -83
  826. data/ext/v8/upstream/2.3.3/src/x64/debug-x64.cc +0 -267
  827. data/ext/v8/upstream/2.3.3/src/x64/disasm-x64.cc +0 -1696
  828. data/ext/v8/upstream/2.3.3/src/x64/fast-codegen-x64.cc +0 -250
  829. data/ext/v8/upstream/2.3.3/src/x64/frames-x64.cc +0 -113
  830. data/ext/v8/upstream/2.3.3/src/x64/frames-x64.h +0 -125
  831. data/ext/v8/upstream/2.3.3/src/x64/full-codegen-x64.cc +0 -3270
  832. data/ext/v8/upstream/2.3.3/src/x64/ic-x64.cc +0 -1907
  833. data/ext/v8/upstream/2.3.3/src/x64/jump-target-x64.cc +0 -437
  834. data/ext/v8/upstream/2.3.3/src/x64/macro-assembler-x64.cc +0 -2793
  835. data/ext/v8/upstream/2.3.3/src/x64/macro-assembler-x64.h +0 -916
  836. data/ext/v8/upstream/2.3.3/src/x64/regexp-macro-assembler-x64.cc +0 -1374
  837. data/ext/v8/upstream/2.3.3/src/x64/regexp-macro-assembler-x64.h +0 -277
  838. data/ext/v8/upstream/2.3.3/src/x64/simulator-x64.h +0 -63
  839. data/ext/v8/upstream/2.3.3/src/x64/stub-cache-x64.cc +0 -2560
  840. data/ext/v8/upstream/2.3.3/src/x64/virtual-frame-x64.cc +0 -1264
  841. data/ext/v8/upstream/2.3.3/src/x64/virtual-frame-x64.h +0 -590
  842. data/ext/v8/upstream/2.3.3/src/zone-inl.h +0 -82
  843. data/ext/v8/upstream/2.3.3/src/zone.cc +0 -194
  844. data/ext/v8/upstream/2.3.3/src/zone.h +0 -221
  845. data/ext/v8/upstream/2.3.3/tools/codemap.js +0 -270
  846. data/ext/v8/upstream/2.3.3/tools/csvparser.js +0 -83
  847. data/ext/v8/upstream/2.3.3/tools/gc-nvp-trace-processor.py +0 -317
  848. data/ext/v8/upstream/2.3.3/tools/gyp/v8.gyp +0 -749
  849. data/ext/v8/upstream/2.3.3/tools/linux-tick-processor.py +0 -78
  850. data/ext/v8/upstream/2.3.3/tools/logreader.js +0 -338
  851. data/ext/v8/upstream/2.3.3/tools/oprofile/annotate +0 -7
  852. data/ext/v8/upstream/2.3.3/tools/oprofile/common +0 -19
  853. data/ext/v8/upstream/2.3.3/tools/oprofile/dump +0 -7
  854. data/ext/v8/upstream/2.3.3/tools/oprofile/report +0 -7
  855. data/ext/v8/upstream/2.3.3/tools/oprofile/reset +0 -7
  856. data/ext/v8/upstream/2.3.3/tools/oprofile/run +0 -14
  857. data/ext/v8/upstream/2.3.3/tools/oprofile/shutdown +0 -7
  858. data/ext/v8/upstream/2.3.3/tools/oprofile/start +0 -7
  859. data/ext/v8/upstream/2.3.3/tools/presubmit.py +0 -299
  860. data/ext/v8/upstream/2.3.3/tools/profile.js +0 -691
  861. data/ext/v8/upstream/2.3.3/tools/profile_view.js +0 -224
  862. data/ext/v8/upstream/2.3.3/tools/splaytree.js +0 -322
  863. data/ext/v8/upstream/2.3.3/tools/splaytree.py +0 -226
  864. data/ext/v8/upstream/2.3.3/tools/tickprocessor.js +0 -862
  865. data/ext/v8/upstream/2.3.3/tools/tickprocessor.py +0 -571
  866. data/ext/v8/upstream/2.3.3/tools/utils.py +0 -88
  867. data/ext/v8/upstream/2.3.3/tools/visual_studio/README.txt +0 -71
  868. data/ext/v8/upstream/2.3.3/tools/visual_studio/common.vsprops +0 -34
  869. data/ext/v8/upstream/2.3.3/tools/visual_studio/debug.vsprops +0 -17
  870. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base.vcproj +0 -1143
  871. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base_arm.vcproj +0 -1115
  872. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base_x64.vcproj +0 -1096
  873. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample.vcproj +0 -145
  874. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -145
  875. data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -161
  876. data/ext/v8/upstream/2.3.3/tools/windows-tick-processor.bat +0 -29
  877. data/ext/v8/upstream/2.3.3/tools/windows-tick-processor.py +0 -137
@@ -1,1102 +0,0 @@
1
- // Copyright 2010 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
- #ifndef V8_ARM_CODEGEN_ARM_H_
29
- #define V8_ARM_CODEGEN_ARM_H_
30
-
31
- #include "ic-inl.h"
32
- #include "ast.h"
33
-
34
- namespace v8 {
35
- namespace internal {
36
-
37
- // Forward declarations
38
- class CompilationInfo;
39
- class DeferredCode;
40
- class JumpTarget;
41
- class RegisterAllocator;
42
- class RegisterFile;
43
-
44
- enum InitState { CONST_INIT, NOT_CONST_INIT };
45
- enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF };
46
- enum GenerateInlineSmi { DONT_GENERATE_INLINE_SMI, GENERATE_INLINE_SMI };
47
- enum WriteBarrierCharacter { UNLIKELY_SMI, LIKELY_SMI, NEVER_NEWSPACE };
48
-
49
-
50
- // -------------------------------------------------------------------------
51
- // Reference support
52
-
53
- // A reference is a C++ stack-allocated object that puts a
54
- // reference on the virtual frame. The reference may be consumed
55
- // by GetValue, TakeValue, SetValue, and Codegen::UnloadReference.
56
- // When the lifetime (scope) of a valid reference ends, it must have
57
- // been consumed, and be in state UNLOADED.
58
- class Reference BASE_EMBEDDED {
59
- public:
60
- // The values of the types is important, see size().
61
- enum Type { UNLOADED = -2, ILLEGAL = -1, SLOT = 0, NAMED = 1, KEYED = 2 };
62
- Reference(CodeGenerator* cgen,
63
- Expression* expression,
64
- bool persist_after_get = false);
65
- ~Reference();
66
-
67
- Expression* expression() const { return expression_; }
68
- Type type() const { return type_; }
69
- void set_type(Type value) {
70
- ASSERT_EQ(ILLEGAL, type_);
71
- type_ = value;
72
- }
73
-
74
- void set_unloaded() {
75
- ASSERT_NE(ILLEGAL, type_);
76
- ASSERT_NE(UNLOADED, type_);
77
- type_ = UNLOADED;
78
- }
79
- // The size the reference takes up on the stack.
80
- int size() const {
81
- return (type_ < SLOT) ? 0 : type_;
82
- }
83
-
84
- bool is_illegal() const { return type_ == ILLEGAL; }
85
- bool is_slot() const { return type_ == SLOT; }
86
- bool is_property() const { return type_ == NAMED || type_ == KEYED; }
87
- bool is_unloaded() const { return type_ == UNLOADED; }
88
-
89
- // Return the name. Only valid for named property references.
90
- Handle<String> GetName();
91
-
92
- // Generate code to push the value of the reference on top of the
93
- // expression stack. The reference is expected to be already on top of
94
- // the expression stack, and it is consumed by the call unless the
95
- // reference is for a compound assignment.
96
- // If the reference is not consumed, it is left in place under its value.
97
- void GetValue();
98
-
99
- // Generate code to store the value on top of the expression stack in the
100
- // reference. The reference is expected to be immediately below the value
101
- // on the expression stack. The value is stored in the location specified
102
- // by the reference, and is left on top of the stack, after the reference
103
- // is popped from beneath it (unloaded).
104
- void SetValue(InitState init_state, WriteBarrierCharacter wb);
105
-
106
- // This is in preparation for something that uses the reference on the stack.
107
- // If we need this reference afterwards get then dup it now. Otherwise mark
108
- // it as used.
109
- inline void DupIfPersist();
110
-
111
- private:
112
- CodeGenerator* cgen_;
113
- Expression* expression_;
114
- Type type_;
115
- // Keep the reference on the stack after get, so it can be used by set later.
116
- bool persist_after_get_;
117
- };
118
-
119
-
120
- // -------------------------------------------------------------------------
121
- // Code generation state
122
-
123
- // The state is passed down the AST by the code generator (and back up, in
124
- // the form of the state of the label pair). It is threaded through the
125
- // call stack. Constructing a state implicitly pushes it on the owning code
126
- // generator's stack of states, and destroying one implicitly pops it.
127
-
128
- class CodeGenState BASE_EMBEDDED {
129
- public:
130
- // Create an initial code generator state. Destroying the initial state
131
- // leaves the code generator with a NULL state.
132
- explicit CodeGenState(CodeGenerator* owner);
133
-
134
- // Destroy a code generator state and restore the owning code generator's
135
- // previous state.
136
- virtual ~CodeGenState();
137
-
138
- virtual JumpTarget* true_target() const { return NULL; }
139
- virtual JumpTarget* false_target() const { return NULL; }
140
-
141
- protected:
142
- inline CodeGenerator* owner() { return owner_; }
143
- inline CodeGenState* previous() const { return previous_; }
144
-
145
- private:
146
- CodeGenerator* owner_;
147
- CodeGenState* previous_;
148
- };
149
-
150
-
151
- class ConditionCodeGenState : public CodeGenState {
152
- public:
153
- // Create a code generator state based on a code generator's current
154
- // state. The new state has its own pair of branch labels.
155
- ConditionCodeGenState(CodeGenerator* owner,
156
- JumpTarget* true_target,
157
- JumpTarget* false_target);
158
-
159
- virtual JumpTarget* true_target() const { return true_target_; }
160
- virtual JumpTarget* false_target() const { return false_target_; }
161
-
162
- private:
163
- JumpTarget* true_target_;
164
- JumpTarget* false_target_;
165
- };
166
-
167
-
168
- class TypeInfoCodeGenState : public CodeGenState {
169
- public:
170
- TypeInfoCodeGenState(CodeGenerator* owner,
171
- Slot* slot_number,
172
- TypeInfo info);
173
- ~TypeInfoCodeGenState();
174
-
175
- virtual JumpTarget* true_target() const { return previous()->true_target(); }
176
- virtual JumpTarget* false_target() const {
177
- return previous()->false_target();
178
- }
179
-
180
- private:
181
- Slot* slot_;
182
- TypeInfo old_type_info_;
183
- };
184
-
185
-
186
- // -------------------------------------------------------------------------
187
- // Arguments allocation mode
188
-
189
- enum ArgumentsAllocationMode {
190
- NO_ARGUMENTS_ALLOCATION,
191
- EAGER_ARGUMENTS_ALLOCATION,
192
- LAZY_ARGUMENTS_ALLOCATION
193
- };
194
-
195
-
196
- // Different nop operations are used by the code generator to detect certain
197
- // states of the generated code.
198
- enum NopMarkerTypes {
199
- NON_MARKING_NOP = 0,
200
- PROPERTY_ACCESS_INLINED
201
- };
202
-
203
-
204
- // -------------------------------------------------------------------------
205
- // CodeGenerator
206
-
207
- class CodeGenerator: public AstVisitor {
208
- public:
209
- // Takes a function literal, generates code for it. This function should only
210
- // be called by compiler.cc.
211
- static Handle<Code> MakeCode(CompilationInfo* info);
212
-
213
- // Printing of AST, etc. as requested by flags.
214
- static void MakeCodePrologue(CompilationInfo* info);
215
-
216
- // Allocate and install the code.
217
- static Handle<Code> MakeCodeEpilogue(MacroAssembler* masm,
218
- Code::Flags flags,
219
- CompilationInfo* info);
220
-
221
- #ifdef ENABLE_LOGGING_AND_PROFILING
222
- static bool ShouldGenerateLog(Expression* type);
223
- #endif
224
-
225
- static void SetFunctionInfo(Handle<JSFunction> fun,
226
- FunctionLiteral* lit,
227
- bool is_toplevel,
228
- Handle<Script> script);
229
-
230
- static bool RecordPositions(MacroAssembler* masm,
231
- int pos,
232
- bool right_here = false);
233
-
234
- // Accessors
235
- MacroAssembler* masm() { return masm_; }
236
- VirtualFrame* frame() const { return frame_; }
237
- inline Handle<Script> script();
238
-
239
- bool has_valid_frame() const { return frame_ != NULL; }
240
-
241
- // Set the virtual frame to be new_frame, with non-frame register
242
- // reference counts given by non_frame_registers. The non-frame
243
- // register reference counts of the old frame are returned in
244
- // non_frame_registers.
245
- void SetFrame(VirtualFrame* new_frame, RegisterFile* non_frame_registers);
246
-
247
- void DeleteFrame();
248
-
249
- RegisterAllocator* allocator() const { return allocator_; }
250
-
251
- CodeGenState* state() { return state_; }
252
- void set_state(CodeGenState* state) { state_ = state; }
253
-
254
- TypeInfo type_info(Slot* slot) {
255
- int index = NumberOfSlot(slot);
256
- if (index == kInvalidSlotNumber) return TypeInfo::Unknown();
257
- return (*type_info_)[index];
258
- }
259
-
260
- TypeInfo set_type_info(Slot* slot, TypeInfo info) {
261
- int index = NumberOfSlot(slot);
262
- ASSERT(index >= kInvalidSlotNumber);
263
- if (index != kInvalidSlotNumber) {
264
- TypeInfo previous_value = (*type_info_)[index];
265
- (*type_info_)[index] = info;
266
- return previous_value;
267
- }
268
- return TypeInfo::Unknown();
269
- }
270
-
271
- void AddDeferred(DeferredCode* code) { deferred_.Add(code); }
272
-
273
- static const int kUnknownIntValue = -1;
274
-
275
- // If the name is an inline runtime function call return the number of
276
- // expected arguments. Otherwise return -1.
277
- static int InlineRuntimeCallArgumentsCount(Handle<String> name);
278
-
279
- // Constants related to patching of inlined load/store.
280
- static int GetInlinedKeyedLoadInstructionsAfterPatch() {
281
- return FLAG_debug_code ? 27 : 13;
282
- }
283
- static const int kInlinedKeyedStoreInstructionsAfterPatch = 5;
284
- static int GetInlinedNamedStoreInstructionsAfterPatch() {
285
- ASSERT(inlined_write_barrier_size_ != -1);
286
- return inlined_write_barrier_size_ + 4;
287
- }
288
-
289
- private:
290
- // Construction/Destruction
291
- explicit CodeGenerator(MacroAssembler* masm);
292
-
293
- // Accessors
294
- inline bool is_eval();
295
- inline Scope* scope();
296
-
297
- // Generating deferred code.
298
- void ProcessDeferred();
299
-
300
- static const int kInvalidSlotNumber = -1;
301
-
302
- int NumberOfSlot(Slot* slot);
303
-
304
- // State
305
- bool has_cc() const { return cc_reg_ != al; }
306
- JumpTarget* true_target() const { return state_->true_target(); }
307
- JumpTarget* false_target() const { return state_->false_target(); }
308
-
309
- // Track loop nesting level.
310
- int loop_nesting() const { return loop_nesting_; }
311
- void IncrementLoopNesting() { loop_nesting_++; }
312
- void DecrementLoopNesting() { loop_nesting_--; }
313
-
314
- // Node visitors.
315
- void VisitStatements(ZoneList<Statement*>* statements);
316
-
317
- #define DEF_VISIT(type) \
318
- void Visit##type(type* node);
319
- AST_NODE_LIST(DEF_VISIT)
320
- #undef DEF_VISIT
321
-
322
- // Main code generation function
323
- void Generate(CompilationInfo* info);
324
-
325
- // Generate the return sequence code. Should be called no more than
326
- // once per compiled function, immediately after binding the return
327
- // target (which can not be done more than once). The return value should
328
- // be in r0.
329
- void GenerateReturnSequence();
330
-
331
- // Returns the arguments allocation mode.
332
- ArgumentsAllocationMode ArgumentsMode();
333
-
334
- // Store the arguments object and allocate it if necessary.
335
- void StoreArgumentsObject(bool initial);
336
-
337
- // The following are used by class Reference.
338
- void LoadReference(Reference* ref);
339
- void UnloadReference(Reference* ref);
340
-
341
- static MemOperand ContextOperand(Register context, int index) {
342
- return MemOperand(context, Context::SlotOffset(index));
343
- }
344
-
345
- MemOperand SlotOperand(Slot* slot, Register tmp);
346
-
347
- MemOperand ContextSlotOperandCheckExtensions(Slot* slot,
348
- Register tmp,
349
- Register tmp2,
350
- JumpTarget* slow);
351
-
352
- // Expressions
353
- static MemOperand GlobalObject() {
354
- return ContextOperand(cp, Context::GLOBAL_INDEX);
355
- }
356
-
357
- void LoadCondition(Expression* x,
358
- JumpTarget* true_target,
359
- JumpTarget* false_target,
360
- bool force_cc);
361
- void Load(Expression* expr);
362
- void LoadGlobal();
363
- void LoadGlobalReceiver(Register scratch);
364
-
365
- // Read a value from a slot and leave it on top of the expression stack.
366
- void LoadFromSlot(Slot* slot, TypeofState typeof_state);
367
- void LoadFromSlotCheckForArguments(Slot* slot, TypeofState state);
368
-
369
- // Store the value on top of the stack to a slot.
370
- void StoreToSlot(Slot* slot, InitState init_state);
371
-
372
- // Support for compiling assignment expressions.
373
- void EmitSlotAssignment(Assignment* node);
374
- void EmitNamedPropertyAssignment(Assignment* node);
375
- void EmitKeyedPropertyAssignment(Assignment* node);
376
-
377
- // Load a named property, returning it in r0. The receiver is passed on the
378
- // stack, and remains there.
379
- void EmitNamedLoad(Handle<String> name, bool is_contextual);
380
-
381
- // Store to a named property. If the store is contextual, value is passed on
382
- // the frame and consumed. Otherwise, receiver and value are passed on the
383
- // frame and consumed. The result is returned in r0.
384
- void EmitNamedStore(Handle<String> name, bool is_contextual);
385
-
386
- // Load a keyed property, leaving it in r0. The receiver and key are
387
- // passed on the stack, and remain there.
388
- void EmitKeyedLoad();
389
-
390
- // Store a keyed property. Key and receiver are on the stack and the value is
391
- // in r0. Result is returned in r0.
392
- void EmitKeyedStore(StaticType* key_type, WriteBarrierCharacter wb_info);
393
-
394
- void LoadFromGlobalSlotCheckExtensions(Slot* slot,
395
- TypeofState typeof_state,
396
- JumpTarget* slow);
397
-
398
- // Support for loading from local/global variables and arguments
399
- // whose location is known unless they are shadowed by
400
- // eval-introduced bindings. Generates no code for unsupported slot
401
- // types and therefore expects to fall through to the slow jump target.
402
- void EmitDynamicLoadFromSlotFastCase(Slot* slot,
403
- TypeofState typeof_state,
404
- JumpTarget* slow,
405
- JumpTarget* done);
406
-
407
- // Special code for typeof expressions: Unfortunately, we must
408
- // be careful when loading the expression in 'typeof'
409
- // expressions. We are not allowed to throw reference errors for
410
- // non-existing properties of the global object, so we must make it
411
- // look like an explicit property access, instead of an access
412
- // through the context chain.
413
- void LoadTypeofExpression(Expression* x);
414
-
415
- void ToBoolean(JumpTarget* true_target, JumpTarget* false_target);
416
-
417
- // Generate code that computes a shortcutting logical operation.
418
- void GenerateLogicalBooleanOperation(BinaryOperation* node);
419
-
420
- void GenericBinaryOperation(Token::Value op,
421
- OverwriteMode overwrite_mode,
422
- GenerateInlineSmi inline_smi,
423
- int known_rhs = kUnknownIntValue);
424
- void Comparison(Condition cc,
425
- Expression* left,
426
- Expression* right,
427
- bool strict = false);
428
-
429
- void SmiOperation(Token::Value op,
430
- Handle<Object> value,
431
- bool reversed,
432
- OverwriteMode mode);
433
-
434
- void CallWithArguments(ZoneList<Expression*>* arguments,
435
- CallFunctionFlags flags,
436
- int position);
437
-
438
- // An optimized implementation of expressions of the form
439
- // x.apply(y, arguments). We call x the applicand and y the receiver.
440
- // The optimization avoids allocating an arguments object if possible.
441
- void CallApplyLazy(Expression* applicand,
442
- Expression* receiver,
443
- VariableProxy* arguments,
444
- int position);
445
-
446
- // Control flow
447
- void Branch(bool if_true, JumpTarget* target);
448
- void CheckStack();
449
-
450
- struct InlineRuntimeLUT {
451
- void (CodeGenerator::*method)(ZoneList<Expression*>*);
452
- const char* name;
453
- int nargs;
454
- };
455
-
456
- static InlineRuntimeLUT* FindInlineRuntimeLUT(Handle<String> name);
457
- bool CheckForInlineRuntimeCall(CallRuntime* node);
458
- static bool PatchInlineRuntimeEntry(Handle<String> name,
459
- const InlineRuntimeLUT& new_entry,
460
- InlineRuntimeLUT* old_entry);
461
-
462
- static Handle<Code> ComputeLazyCompile(int argc);
463
- void ProcessDeclarations(ZoneList<Declaration*>* declarations);
464
-
465
- static Handle<Code> ComputeCallInitialize(int argc, InLoopFlag in_loop);
466
-
467
- static Handle<Code> ComputeKeyedCallInitialize(int argc, InLoopFlag in_loop);
468
-
469
- // Declare global variables and functions in the given array of
470
- // name/value pairs.
471
- void DeclareGlobals(Handle<FixedArray> pairs);
472
-
473
- // Instantiate the function based on the shared function info.
474
- void InstantiateFunction(Handle<SharedFunctionInfo> function_info);
475
-
476
- // Support for type checks.
477
- void GenerateIsSmi(ZoneList<Expression*>* args);
478
- void GenerateIsNonNegativeSmi(ZoneList<Expression*>* args);
479
- void GenerateIsArray(ZoneList<Expression*>* args);
480
- void GenerateIsRegExp(ZoneList<Expression*>* args);
481
- void GenerateIsObject(ZoneList<Expression*>* args);
482
- void GenerateIsSpecObject(ZoneList<Expression*>* args);
483
- void GenerateIsFunction(ZoneList<Expression*>* args);
484
- void GenerateIsUndetectableObject(ZoneList<Expression*>* args);
485
-
486
- // Support for construct call checks.
487
- void GenerateIsConstructCall(ZoneList<Expression*>* args);
488
-
489
- // Support for arguments.length and arguments[?].
490
- void GenerateArgumentsLength(ZoneList<Expression*>* args);
491
- void GenerateArguments(ZoneList<Expression*>* args);
492
-
493
- // Support for accessing the class and value fields of an object.
494
- void GenerateClassOf(ZoneList<Expression*>* args);
495
- void GenerateValueOf(ZoneList<Expression*>* args);
496
- void GenerateSetValueOf(ZoneList<Expression*>* args);
497
-
498
- // Fast support for charCodeAt(n).
499
- void GenerateStringCharCodeAt(ZoneList<Expression*>* args);
500
-
501
- // Fast support for string.charAt(n) and string[n].
502
- void GenerateStringCharFromCode(ZoneList<Expression*>* args);
503
-
504
- // Fast support for string.charAt(n) and string[n].
505
- void GenerateStringCharAt(ZoneList<Expression*>* args);
506
-
507
- // Fast support for object equality testing.
508
- void GenerateObjectEquals(ZoneList<Expression*>* args);
509
-
510
- void GenerateLog(ZoneList<Expression*>* args);
511
-
512
- // Fast support for Math.random().
513
- void GenerateRandomHeapNumber(ZoneList<Expression*>* args);
514
-
515
- // Fast support for StringAdd.
516
- void GenerateStringAdd(ZoneList<Expression*>* args);
517
-
518
- // Fast support for SubString.
519
- void GenerateSubString(ZoneList<Expression*>* args);
520
-
521
- // Fast support for StringCompare.
522
- void GenerateStringCompare(ZoneList<Expression*>* args);
523
-
524
- // Support for direct calls from JavaScript to native RegExp code.
525
- void GenerateRegExpExec(ZoneList<Expression*>* args);
526
-
527
- void GenerateRegExpConstructResult(ZoneList<Expression*>* args);
528
-
529
- // Support for fast native caches.
530
- void GenerateGetFromCache(ZoneList<Expression*>* args);
531
-
532
- // Fast support for number to string.
533
- void GenerateNumberToString(ZoneList<Expression*>* args);
534
-
535
- // Fast swapping of elements.
536
- void GenerateSwapElements(ZoneList<Expression*>* args);
537
-
538
- // Fast call for custom callbacks.
539
- void GenerateCallFunction(ZoneList<Expression*>* args);
540
-
541
- // Fast call to math functions.
542
- void GenerateMathPow(ZoneList<Expression*>* args);
543
- void GenerateMathSin(ZoneList<Expression*>* args);
544
- void GenerateMathCos(ZoneList<Expression*>* args);
545
- void GenerateMathSqrt(ZoneList<Expression*>* args);
546
-
547
- // Simple condition analysis.
548
- enum ConditionAnalysis {
549
- ALWAYS_TRUE,
550
- ALWAYS_FALSE,
551
- DONT_KNOW
552
- };
553
- ConditionAnalysis AnalyzeCondition(Expression* cond);
554
-
555
- // Methods used to indicate which source code is generated for. Source
556
- // positions are collected by the assembler and emitted with the relocation
557
- // information.
558
- void CodeForFunctionPosition(FunctionLiteral* fun);
559
- void CodeForReturnPosition(FunctionLiteral* fun);
560
- void CodeForStatementPosition(Statement* node);
561
- void CodeForDoWhileConditionPosition(DoWhileStatement* stmt);
562
- void CodeForSourcePosition(int pos);
563
-
564
- #ifdef DEBUG
565
- // True if the registers are valid for entry to a block.
566
- bool HasValidEntryRegisters();
567
- #endif
568
-
569
- List<DeferredCode*> deferred_;
570
-
571
- // Assembler
572
- MacroAssembler* masm_; // to generate code
573
-
574
- CompilationInfo* info_;
575
-
576
- // Code generation state
577
- VirtualFrame* frame_;
578
- RegisterAllocator* allocator_;
579
- Condition cc_reg_;
580
- CodeGenState* state_;
581
- int loop_nesting_;
582
-
583
- Vector<TypeInfo>* type_info_;
584
-
585
- // Jump targets
586
- BreakTarget function_return_;
587
-
588
- // True if the function return is shadowed (ie, jumping to the target
589
- // function_return_ does not jump to the true function return, but rather
590
- // to some unlinking code).
591
- bool function_return_is_shadowed_;
592
-
593
- // Size of inlined write barriers generated by EmitNamedStore.
594
- static int inlined_write_barrier_size_;
595
-
596
- static InlineRuntimeLUT kInlineRuntimeLUT[];
597
-
598
- friend class VirtualFrame;
599
- friend class JumpTarget;
600
- friend class Reference;
601
- friend class FastCodeGenerator;
602
- friend class FullCodeGenerator;
603
- friend class FullCodeGenSyntaxChecker;
604
-
605
- DISALLOW_COPY_AND_ASSIGN(CodeGenerator);
606
- };
607
-
608
-
609
- // Compute a transcendental math function natively, or call the
610
- // TranscendentalCache runtime function.
611
- class TranscendentalCacheStub: public CodeStub {
612
- public:
613
- explicit TranscendentalCacheStub(TranscendentalCache::Type type)
614
- : type_(type) {}
615
- void Generate(MacroAssembler* masm);
616
- private:
617
- TranscendentalCache::Type type_;
618
- Major MajorKey() { return TranscendentalCache; }
619
- int MinorKey() { return type_; }
620
- Runtime::FunctionId RuntimeFunction();
621
- };
622
-
623
-
624
- class GenericBinaryOpStub : public CodeStub {
625
- public:
626
- GenericBinaryOpStub(Token::Value op,
627
- OverwriteMode mode,
628
- Register lhs,
629
- Register rhs,
630
- int constant_rhs = CodeGenerator::kUnknownIntValue)
631
- : op_(op),
632
- mode_(mode),
633
- lhs_(lhs),
634
- rhs_(rhs),
635
- constant_rhs_(constant_rhs),
636
- specialized_on_rhs_(RhsIsOneWeWantToOptimizeFor(op, constant_rhs)),
637
- runtime_operands_type_(BinaryOpIC::DEFAULT),
638
- name_(NULL) { }
639
-
640
- GenericBinaryOpStub(int key, BinaryOpIC::TypeInfo type_info)
641
- : op_(OpBits::decode(key)),
642
- mode_(ModeBits::decode(key)),
643
- lhs_(LhsRegister(RegisterBits::decode(key))),
644
- rhs_(RhsRegister(RegisterBits::decode(key))),
645
- constant_rhs_(KnownBitsForMinorKey(KnownIntBits::decode(key))),
646
- specialized_on_rhs_(RhsIsOneWeWantToOptimizeFor(op_, constant_rhs_)),
647
- runtime_operands_type_(type_info),
648
- name_(NULL) { }
649
-
650
- private:
651
- Token::Value op_;
652
- OverwriteMode mode_;
653
- Register lhs_;
654
- Register rhs_;
655
- int constant_rhs_;
656
- bool specialized_on_rhs_;
657
- BinaryOpIC::TypeInfo runtime_operands_type_;
658
- char* name_;
659
-
660
- static const int kMaxKnownRhs = 0x40000000;
661
- static const int kKnownRhsKeyBits = 6;
662
-
663
- // Minor key encoding in 17 bits.
664
- class ModeBits: public BitField<OverwriteMode, 0, 2> {};
665
- class OpBits: public BitField<Token::Value, 2, 6> {};
666
- class TypeInfoBits: public BitField<int, 8, 2> {};
667
- class RegisterBits: public BitField<bool, 10, 1> {};
668
- class KnownIntBits: public BitField<int, 11, kKnownRhsKeyBits> {};
669
-
670
- Major MajorKey() { return GenericBinaryOp; }
671
- int MinorKey() {
672
- ASSERT((lhs_.is(r0) && rhs_.is(r1)) ||
673
- (lhs_.is(r1) && rhs_.is(r0)));
674
- // Encode the parameters in a unique 18 bit value.
675
- return OpBits::encode(op_)
676
- | ModeBits::encode(mode_)
677
- | KnownIntBits::encode(MinorKeyForKnownInt())
678
- | TypeInfoBits::encode(runtime_operands_type_)
679
- | RegisterBits::encode(lhs_.is(r0));
680
- }
681
-
682
- void Generate(MacroAssembler* masm);
683
- void HandleNonSmiBitwiseOp(MacroAssembler* masm,
684
- Register lhs,
685
- Register rhs);
686
- void HandleBinaryOpSlowCases(MacroAssembler* masm,
687
- Label* not_smi,
688
- Register lhs,
689
- Register rhs,
690
- const Builtins::JavaScript& builtin);
691
- void GenerateTypeTransition(MacroAssembler* masm);
692
-
693
- static bool RhsIsOneWeWantToOptimizeFor(Token::Value op, int constant_rhs) {
694
- if (constant_rhs == CodeGenerator::kUnknownIntValue) return false;
695
- if (op == Token::DIV) return constant_rhs >= 2 && constant_rhs <= 3;
696
- if (op == Token::MOD) {
697
- if (constant_rhs <= 1) return false;
698
- if (constant_rhs <= 10) return true;
699
- if (constant_rhs <= kMaxKnownRhs && IsPowerOf2(constant_rhs)) return true;
700
- return false;
701
- }
702
- return false;
703
- }
704
-
705
- int MinorKeyForKnownInt() {
706
- if (!specialized_on_rhs_) return 0;
707
- if (constant_rhs_ <= 10) return constant_rhs_ + 1;
708
- ASSERT(IsPowerOf2(constant_rhs_));
709
- int key = 12;
710
- int d = constant_rhs_;
711
- while ((d & 1) == 0) {
712
- key++;
713
- d >>= 1;
714
- }
715
- ASSERT(key >= 0 && key < (1 << kKnownRhsKeyBits));
716
- return key;
717
- }
718
-
719
- int KnownBitsForMinorKey(int key) {
720
- if (!key) return 0;
721
- if (key <= 11) return key - 1;
722
- int d = 1;
723
- while (key != 12) {
724
- key--;
725
- d <<= 1;
726
- }
727
- return d;
728
- }
729
-
730
- Register LhsRegister(bool lhs_is_r0) {
731
- return lhs_is_r0 ? r0 : r1;
732
- }
733
-
734
- Register RhsRegister(bool lhs_is_r0) {
735
- return lhs_is_r0 ? r1 : r0;
736
- }
737
-
738
- bool ShouldGenerateSmiCode() {
739
- return ((op_ != Token::DIV && op_ != Token::MOD) || specialized_on_rhs_) &&
740
- runtime_operands_type_ != BinaryOpIC::HEAP_NUMBERS &&
741
- runtime_operands_type_ != BinaryOpIC::STRINGS;
742
- }
743
-
744
- bool ShouldGenerateFPCode() {
745
- return runtime_operands_type_ != BinaryOpIC::STRINGS;
746
- }
747
-
748
- virtual int GetCodeKind() { return Code::BINARY_OP_IC; }
749
-
750
- virtual InlineCacheState GetICState() {
751
- return BinaryOpIC::ToState(runtime_operands_type_);
752
- }
753
-
754
- const char* GetName();
755
-
756
- #ifdef DEBUG
757
- void Print() {
758
- if (!specialized_on_rhs_) {
759
- PrintF("GenericBinaryOpStub (%s)\n", Token::String(op_));
760
- } else {
761
- PrintF("GenericBinaryOpStub (%s by %d)\n",
762
- Token::String(op_),
763
- constant_rhs_);
764
- }
765
- }
766
- #endif
767
- };
768
-
769
-
770
- class StringHelper : public AllStatic {
771
- public:
772
- // Generate code for copying characters using a simple loop. This should only
773
- // be used in places where the number of characters is small and the
774
- // additional setup and checking in GenerateCopyCharactersLong adds too much
775
- // overhead. Copying of overlapping regions is not supported.
776
- // Dest register ends at the position after the last character written.
777
- static void GenerateCopyCharacters(MacroAssembler* masm,
778
- Register dest,
779
- Register src,
780
- Register count,
781
- Register scratch,
782
- bool ascii);
783
-
784
- // Generate code for copying a large number of characters. This function
785
- // is allowed to spend extra time setting up conditions to make copying
786
- // faster. Copying of overlapping regions is not supported.
787
- // Dest register ends at the position after the last character written.
788
- static void GenerateCopyCharactersLong(MacroAssembler* masm,
789
- Register dest,
790
- Register src,
791
- Register count,
792
- Register scratch1,
793
- Register scratch2,
794
- Register scratch3,
795
- Register scratch4,
796
- Register scratch5,
797
- int flags);
798
-
799
-
800
- // Probe the symbol table for a two character string. If the string is
801
- // not found by probing a jump to the label not_found is performed. This jump
802
- // does not guarantee that the string is not in the symbol table. If the
803
- // string is found the code falls through with the string in register r0.
804
- // Contents of both c1 and c2 registers are modified. At the exit c1 is
805
- // guaranteed to contain halfword with low and high bytes equal to
806
- // initial contents of c1 and c2 respectively.
807
- static void GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm,
808
- Register c1,
809
- Register c2,
810
- Register scratch1,
811
- Register scratch2,
812
- Register scratch3,
813
- Register scratch4,
814
- Register scratch5,
815
- Label* not_found);
816
-
817
- // Generate string hash.
818
- static void GenerateHashInit(MacroAssembler* masm,
819
- Register hash,
820
- Register character);
821
-
822
- static void GenerateHashAddCharacter(MacroAssembler* masm,
823
- Register hash,
824
- Register character);
825
-
826
- static void GenerateHashGetHash(MacroAssembler* masm,
827
- Register hash);
828
-
829
- private:
830
- DISALLOW_IMPLICIT_CONSTRUCTORS(StringHelper);
831
- };
832
-
833
-
834
- // Flag that indicates how to generate code for the stub StringAddStub.
835
- enum StringAddFlags {
836
- NO_STRING_ADD_FLAGS = 0,
837
- NO_STRING_CHECK_IN_STUB = 1 << 0 // Omit string check in stub.
838
- };
839
-
840
-
841
- class StringAddStub: public CodeStub {
842
- public:
843
- explicit StringAddStub(StringAddFlags flags) {
844
- string_check_ = ((flags & NO_STRING_CHECK_IN_STUB) == 0);
845
- }
846
-
847
- private:
848
- Major MajorKey() { return StringAdd; }
849
- int MinorKey() { return string_check_ ? 0 : 1; }
850
-
851
- void Generate(MacroAssembler* masm);
852
-
853
- // Should the stub check whether arguments are strings?
854
- bool string_check_;
855
- };
856
-
857
-
858
- class SubStringStub: public CodeStub {
859
- public:
860
- SubStringStub() {}
861
-
862
- private:
863
- Major MajorKey() { return SubString; }
864
- int MinorKey() { return 0; }
865
-
866
- void Generate(MacroAssembler* masm);
867
- };
868
-
869
-
870
-
871
- class StringCompareStub: public CodeStub {
872
- public:
873
- StringCompareStub() { }
874
-
875
- // Compare two flat ASCII strings and returns result in r0.
876
- // Does not use the stack.
877
- static void GenerateCompareFlatAsciiStrings(MacroAssembler* masm,
878
- Register left,
879
- Register right,
880
- Register scratch1,
881
- Register scratch2,
882
- Register scratch3,
883
- Register scratch4);
884
-
885
- private:
886
- Major MajorKey() { return StringCompare; }
887
- int MinorKey() { return 0; }
888
-
889
- void Generate(MacroAssembler* masm);
890
- };
891
-
892
-
893
- // This stub can do a fast mod operation without using fp.
894
- // It is tail called from the GenericBinaryOpStub and it always
895
- // returns an answer. It never causes GC so it doesn't need a real frame.
896
- //
897
- // The inputs are always positive Smis. This is never called
898
- // where the denominator is a power of 2. We handle that separately.
899
- //
900
- // If we consider the denominator as an odd number multiplied by a power of 2,
901
- // then:
902
- // * The exponent (power of 2) is in the shift_distance register.
903
- // * The odd number is in the odd_number register. It is always in the range
904
- // of 3 to 25.
905
- // * The bits from the numerator that are to be copied to the answer (there are
906
- // shift_distance of them) are in the mask_bits register.
907
- // * The other bits of the numerator have been shifted down and are in the lhs
908
- // register.
909
- class IntegerModStub : public CodeStub {
910
- public:
911
- IntegerModStub(Register result,
912
- Register shift_distance,
913
- Register odd_number,
914
- Register mask_bits,
915
- Register lhs,
916
- Register scratch)
917
- : result_(result),
918
- shift_distance_(shift_distance),
919
- odd_number_(odd_number),
920
- mask_bits_(mask_bits),
921
- lhs_(lhs),
922
- scratch_(scratch) {
923
- // We don't code these in the minor key, so they should always be the same.
924
- // We don't really want to fix that since this stub is rather large and we
925
- // don't want many copies of it.
926
- ASSERT(shift_distance_.is(r9));
927
- ASSERT(odd_number_.is(r4));
928
- ASSERT(mask_bits_.is(r3));
929
- ASSERT(scratch_.is(r5));
930
- }
931
-
932
- private:
933
- Register result_;
934
- Register shift_distance_;
935
- Register odd_number_;
936
- Register mask_bits_;
937
- Register lhs_;
938
- Register scratch_;
939
-
940
- // Minor key encoding in 16 bits.
941
- class ResultRegisterBits: public BitField<int, 0, 4> {};
942
- class LhsRegisterBits: public BitField<int, 4, 4> {};
943
-
944
- Major MajorKey() { return IntegerMod; }
945
- int MinorKey() {
946
- // Encode the parameters in a unique 16 bit value.
947
- return ResultRegisterBits::encode(result_.code())
948
- | LhsRegisterBits::encode(lhs_.code());
949
- }
950
-
951
- void Generate(MacroAssembler* masm);
952
-
953
- const char* GetName() { return "IntegerModStub"; }
954
-
955
- // Utility functions.
956
- void DigitSum(MacroAssembler* masm,
957
- Register lhs,
958
- int mask,
959
- int shift,
960
- Label* entry);
961
- void DigitSum(MacroAssembler* masm,
962
- Register lhs,
963
- Register scratch,
964
- int mask,
965
- int shift1,
966
- int shift2,
967
- Label* entry);
968
- void ModGetInRangeBySubtraction(MacroAssembler* masm,
969
- Register lhs,
970
- int shift,
971
- int rhs);
972
- void ModReduce(MacroAssembler* masm,
973
- Register lhs,
974
- int max,
975
- int denominator);
976
- void ModAnswer(MacroAssembler* masm,
977
- Register result,
978
- Register shift_distance,
979
- Register mask_bits,
980
- Register sum_of_digits);
981
-
982
-
983
- #ifdef DEBUG
984
- void Print() { PrintF("IntegerModStub\n"); }
985
- #endif
986
- };
987
-
988
-
989
- // This stub can convert a signed int32 to a heap number (double). It does
990
- // not work for int32s that are in Smi range! No GC occurs during this stub
991
- // so you don't have to set up the frame.
992
- class WriteInt32ToHeapNumberStub : public CodeStub {
993
- public:
994
- WriteInt32ToHeapNumberStub(Register the_int,
995
- Register the_heap_number,
996
- Register scratch)
997
- : the_int_(the_int),
998
- the_heap_number_(the_heap_number),
999
- scratch_(scratch) { }
1000
-
1001
- private:
1002
- Register the_int_;
1003
- Register the_heap_number_;
1004
- Register scratch_;
1005
-
1006
- // Minor key encoding in 16 bits.
1007
- class IntRegisterBits: public BitField<int, 0, 4> {};
1008
- class HeapNumberRegisterBits: public BitField<int, 4, 4> {};
1009
- class ScratchRegisterBits: public BitField<int, 8, 4> {};
1010
-
1011
- Major MajorKey() { return WriteInt32ToHeapNumber; }
1012
- int MinorKey() {
1013
- // Encode the parameters in a unique 16 bit value.
1014
- return IntRegisterBits::encode(the_int_.code())
1015
- | HeapNumberRegisterBits::encode(the_heap_number_.code())
1016
- | ScratchRegisterBits::encode(scratch_.code());
1017
- }
1018
-
1019
- void Generate(MacroAssembler* masm);
1020
-
1021
- const char* GetName() { return "WriteInt32ToHeapNumberStub"; }
1022
-
1023
- #ifdef DEBUG
1024
- void Print() { PrintF("WriteInt32ToHeapNumberStub\n"); }
1025
- #endif
1026
- };
1027
-
1028
-
1029
- class NumberToStringStub: public CodeStub {
1030
- public:
1031
- NumberToStringStub() { }
1032
-
1033
- // Generate code to do a lookup in the number string cache. If the number in
1034
- // the register object is found in the cache the generated code falls through
1035
- // with the result in the result register. The object and the result register
1036
- // can be the same. If the number is not found in the cache the code jumps to
1037
- // the label not_found with only the content of register object unchanged.
1038
- static void GenerateLookupNumberStringCache(MacroAssembler* masm,
1039
- Register object,
1040
- Register result,
1041
- Register scratch1,
1042
- Register scratch2,
1043
- Register scratch3,
1044
- bool object_is_smi,
1045
- Label* not_found);
1046
-
1047
- private:
1048
- Major MajorKey() { return NumberToString; }
1049
- int MinorKey() { return 0; }
1050
-
1051
- void Generate(MacroAssembler* masm);
1052
-
1053
- const char* GetName() { return "NumberToStringStub"; }
1054
-
1055
- #ifdef DEBUG
1056
- void Print() {
1057
- PrintF("NumberToStringStub\n");
1058
- }
1059
- #endif
1060
- };
1061
-
1062
-
1063
- class RecordWriteStub : public CodeStub {
1064
- public:
1065
- RecordWriteStub(Register object, Register offset, Register scratch)
1066
- : object_(object), offset_(offset), scratch_(scratch) { }
1067
-
1068
- void Generate(MacroAssembler* masm);
1069
-
1070
- private:
1071
- Register object_;
1072
- Register offset_;
1073
- Register scratch_;
1074
-
1075
- #ifdef DEBUG
1076
- void Print() {
1077
- PrintF("RecordWriteStub (object reg %d), (offset reg %d),"
1078
- " (scratch reg %d)\n",
1079
- object_.code(), offset_.code(), scratch_.code());
1080
- }
1081
- #endif
1082
-
1083
- // Minor key encoding in 12 bits. 4 bits for each of the three
1084
- // registers (object, offset and scratch) OOOOAAAASSSS.
1085
- class ScratchBits: public BitField<uint32_t, 0, 4> {};
1086
- class OffsetBits: public BitField<uint32_t, 4, 4> {};
1087
- class ObjectBits: public BitField<uint32_t, 8, 4> {};
1088
-
1089
- Major MajorKey() { return RecordWrite; }
1090
-
1091
- int MinorKey() {
1092
- // Encode the registers.
1093
- return ObjectBits::encode(object_.code()) |
1094
- OffsetBits::encode(offset_.code()) |
1095
- ScratchBits::encode(scratch_.code());
1096
- }
1097
- };
1098
-
1099
-
1100
- } } // namespace v8::internal
1101
-
1102
- #endif // V8_ARM_CODEGEN_ARM_H_