therubyracer 0.9.0beta2 → 0.9.0beta3

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 (920) hide show
  1. data/.gitmodules +3 -0
  2. data/ext/v8/upstream/Makefile +1 -2
  3. data/ext/v8/upstream/v8/.gitignore +33 -0
  4. data/ext/v8/upstream/v8/AUTHORS +42 -0
  5. data/ext/v8/upstream/v8/ChangeLog +2663 -0
  6. data/ext/v8/upstream/{3.1.8 → v8}/LICENSE +0 -0
  7. data/ext/v8/upstream/{3.1.8 → v8}/LICENSE.strongtalk +0 -0
  8. data/ext/v8/upstream/{3.1.8 → v8}/LICENSE.v8 +0 -0
  9. data/ext/v8/upstream/{3.1.8 → v8}/LICENSE.valgrind +0 -0
  10. data/ext/v8/upstream/v8/SConstruct +1473 -0
  11. data/ext/v8/upstream/{3.1.8 → v8}/build/README.txt +0 -0
  12. data/ext/v8/upstream/{3.1.8 → v8}/build/all.gyp +0 -0
  13. data/ext/v8/upstream/{3.1.8 → v8}/build/armu.gypi +0 -0
  14. data/ext/v8/upstream/{3.1.8 → v8}/build/common.gypi +0 -0
  15. data/ext/v8/upstream/{3.1.8 → v8}/build/gyp_v8 +0 -0
  16. data/ext/v8/upstream/v8/include/v8-debug.h +394 -0
  17. data/ext/v8/upstream/v8/include/v8-preparser.h +116 -0
  18. data/ext/v8/upstream/v8/include/v8-profiler.h +505 -0
  19. data/ext/v8/upstream/v8/include/v8-testing.h +104 -0
  20. data/ext/v8/upstream/v8/include/v8.h +4000 -0
  21. data/ext/v8/upstream/{3.1.8 → v8}/include/v8stdint.h +0 -0
  22. data/ext/v8/upstream/v8/preparser/SConscript +38 -0
  23. data/ext/v8/upstream/v8/preparser/preparser-process.cc +169 -0
  24. data/ext/v8/upstream/v8/src/SConscript +380 -0
  25. data/ext/v8/upstream/v8/src/accessors.cc +766 -0
  26. data/ext/v8/upstream/{3.1.8 → v8}/src/accessors.h +0 -0
  27. data/ext/v8/upstream/v8/src/allocation-inl.h +49 -0
  28. data/ext/v8/upstream/v8/src/allocation.cc +122 -0
  29. data/ext/v8/upstream/v8/src/allocation.h +143 -0
  30. data/ext/v8/upstream/v8/src/api.cc +5678 -0
  31. data/ext/v8/upstream/v8/src/api.h +572 -0
  32. data/ext/v8/upstream/{3.1.8 → v8}/src/apinatives.js +0 -0
  33. data/ext/v8/upstream/v8/src/apiutils.h +73 -0
  34. data/ext/v8/upstream/v8/src/arguments.h +116 -0
  35. data/ext/v8/upstream/v8/src/arm/assembler-arm-inl.h +353 -0
  36. data/ext/v8/upstream/v8/src/arm/assembler-arm.cc +2877 -0
  37. data/ext/v8/upstream/v8/src/arm/assembler-arm.h +1382 -0
  38. data/ext/v8/upstream/v8/src/arm/builtins-arm.cc +1634 -0
  39. data/ext/v8/upstream/v8/src/arm/code-stubs-arm.cc +6917 -0
  40. data/ext/v8/upstream/v8/src/arm/code-stubs-arm.h +623 -0
  41. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/codegen-arm-inl.h +0 -0
  42. data/ext/v8/upstream/v8/src/arm/codegen-arm.cc +7437 -0
  43. data/ext/v8/upstream/v8/src/arm/codegen-arm.h +595 -0
  44. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/constants-arm.cc +0 -0
  45. data/ext/v8/upstream/v8/src/arm/constants-arm.h +778 -0
  46. data/ext/v8/upstream/v8/src/arm/cpu-arm.cc +149 -0
  47. data/ext/v8/upstream/v8/src/arm/debug-arm.cc +317 -0
  48. data/ext/v8/upstream/v8/src/arm/deoptimizer-arm.cc +737 -0
  49. data/ext/v8/upstream/v8/src/arm/disasm-arm.cc +1503 -0
  50. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/frames-arm.cc +0 -0
  51. data/ext/v8/upstream/v8/src/arm/frames-arm.h +168 -0
  52. data/ext/v8/upstream/v8/src/arm/full-codegen-arm.cc +4374 -0
  53. data/ext/v8/upstream/v8/src/arm/ic-arm.cc +1793 -0
  54. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/jump-target-arm.cc +0 -0
  55. data/ext/v8/upstream/v8/src/arm/lithium-arm.cc +2120 -0
  56. data/ext/v8/upstream/v8/src/arm/lithium-arm.h +2179 -0
  57. data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.cc +4132 -0
  58. data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.h +329 -0
  59. data/ext/v8/upstream/v8/src/arm/lithium-gap-resolver-arm.cc +305 -0
  60. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/lithium-gap-resolver-arm.h +0 -0
  61. data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.cc +2939 -0
  62. data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.h +1071 -0
  63. data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.cc +1287 -0
  64. data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.h +253 -0
  65. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/register-allocator-arm-inl.h +0 -0
  66. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/register-allocator-arm.cc +0 -0
  67. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/register-allocator-arm.h +0 -0
  68. data/ext/v8/upstream/v8/src/arm/simulator-arm.cc +3288 -0
  69. data/ext/v8/upstream/v8/src/arm/simulator-arm.h +413 -0
  70. data/ext/v8/upstream/v8/src/arm/stub-cache-arm.cc +4034 -0
  71. data/ext/v8/upstream/{3.1.8 → v8}/src/arm/virtual-frame-arm-inl.h +0 -0
  72. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.cc +843 -0
  73. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.h +523 -0
  74. data/ext/v8/upstream/v8/src/array.js +1249 -0
  75. data/ext/v8/upstream/v8/src/assembler.cc +1067 -0
  76. data/ext/v8/upstream/v8/src/assembler.h +823 -0
  77. data/ext/v8/upstream/v8/src/ast-inl.h +112 -0
  78. data/ext/v8/upstream/v8/src/ast.cc +1078 -0
  79. data/ext/v8/upstream/v8/src/ast.h +2234 -0
  80. data/ext/v8/upstream/v8/src/atomicops.h +167 -0
  81. data/ext/v8/upstream/{3.1.8 → v8}/src/atomicops_internals_arm_gcc.h +0 -0
  82. data/ext/v8/upstream/v8/src/atomicops_internals_mips_gcc.h +169 -0
  83. data/ext/v8/upstream/{3.1.8 → v8}/src/atomicops_internals_x86_gcc.cc +0 -0
  84. data/ext/v8/upstream/{3.1.8 → v8}/src/atomicops_internals_x86_gcc.h +0 -0
  85. data/ext/v8/upstream/{3.1.8 → v8}/src/atomicops_internals_x86_macosx.h +0 -0
  86. data/ext/v8/upstream/{3.1.8 → v8}/src/atomicops_internals_x86_msvc.h +0 -0
  87. data/ext/v8/upstream/{3.1.8 → v8}/src/bignum-dtoa.cc +0 -0
  88. data/ext/v8/upstream/{3.1.8 → v8}/src/bignum-dtoa.h +0 -0
  89. data/ext/v8/upstream/{3.1.8 → v8}/src/bignum.cc +0 -0
  90. data/ext/v8/upstream/{3.1.8 → v8}/src/bignum.h +0 -0
  91. data/ext/v8/upstream/v8/src/bootstrapper.cc +2138 -0
  92. data/ext/v8/upstream/v8/src/bootstrapper.h +185 -0
  93. data/ext/v8/upstream/v8/src/builtins.cc +1708 -0
  94. data/ext/v8/upstream/v8/src/builtins.h +368 -0
  95. data/ext/v8/upstream/{3.1.8 → v8}/src/bytecodes-irregexp.h +0 -0
  96. data/ext/v8/upstream/{3.1.8 → v8}/src/cached-powers.cc +0 -0
  97. data/ext/v8/upstream/{3.1.8 → v8}/src/cached-powers.h +0 -0
  98. data/ext/v8/upstream/{3.1.8 → v8}/src/char-predicates-inl.h +0 -0
  99. data/ext/v8/upstream/{3.1.8 → v8}/src/char-predicates.h +0 -0
  100. data/ext/v8/upstream/v8/src/checks.cc +110 -0
  101. data/ext/v8/upstream/v8/src/checks.h +296 -0
  102. data/ext/v8/upstream/{3.1.8 → v8}/src/circular-queue-inl.h +0 -0
  103. data/ext/v8/upstream/{3.1.8 → v8}/src/circular-queue.cc +0 -0
  104. data/ext/v8/upstream/{3.1.8 → v8}/src/circular-queue.h +0 -0
  105. data/ext/v8/upstream/v8/src/code-stubs.cc +240 -0
  106. data/ext/v8/upstream/v8/src/code-stubs.h +971 -0
  107. data/ext/v8/upstream/{3.1.8 → v8}/src/code.h +0 -0
  108. data/ext/v8/upstream/v8/src/codegen-inl.h +68 -0
  109. data/ext/v8/upstream/v8/src/codegen.cc +505 -0
  110. data/ext/v8/upstream/v8/src/codegen.h +245 -0
  111. data/ext/v8/upstream/v8/src/compilation-cache.cc +540 -0
  112. data/ext/v8/upstream/v8/src/compilation-cache.h +287 -0
  113. data/ext/v8/upstream/v8/src/compiler.cc +792 -0
  114. data/ext/v8/upstream/v8/src/compiler.h +307 -0
  115. data/ext/v8/upstream/v8/src/contexts.cc +327 -0
  116. data/ext/v8/upstream/v8/src/contexts.h +382 -0
  117. data/ext/v8/upstream/{3.1.8 → v8}/src/conversions-inl.h +0 -0
  118. data/ext/v8/upstream/v8/src/conversions.cc +1125 -0
  119. data/ext/v8/upstream/{3.1.8 → v8}/src/conversions.h +0 -0
  120. data/ext/v8/upstream/v8/src/counters.cc +93 -0
  121. data/ext/v8/upstream/v8/src/counters.h +254 -0
  122. data/ext/v8/upstream/v8/src/cpu-profiler-inl.h +101 -0
  123. data/ext/v8/upstream/v8/src/cpu-profiler.cc +606 -0
  124. data/ext/v8/upstream/v8/src/cpu-profiler.h +305 -0
  125. data/ext/v8/upstream/v8/src/cpu.h +67 -0
  126. data/ext/v8/upstream/v8/src/d8-debug.cc +367 -0
  127. data/ext/v8/upstream/v8/src/d8-debug.h +158 -0
  128. data/ext/v8/upstream/v8/src/d8-posix.cc +695 -0
  129. data/ext/v8/upstream/{3.1.8 → v8}/src/d8-readline.cc +0 -0
  130. data/ext/v8/upstream/{3.1.8 → v8}/src/d8-windows.cc +0 -0
  131. data/ext/v8/upstream/v8/src/d8.cc +796 -0
  132. data/ext/v8/upstream/v8/src/d8.gyp +88 -0
  133. data/ext/v8/upstream/{3.1.8 → v8}/src/d8.h +0 -0
  134. data/ext/v8/upstream/{3.1.8 → v8}/src/d8.js +0 -0
  135. data/ext/v8/upstream/{3.1.8 → v8}/src/data-flow.cc +0 -0
  136. data/ext/v8/upstream/v8/src/data-flow.h +379 -0
  137. data/ext/v8/upstream/{3.1.8 → v8}/src/date.js +0 -0
  138. data/ext/v8/upstream/{3.1.8 → v8}/src/dateparser-inl.h +0 -0
  139. data/ext/v8/upstream/{3.1.8 → v8}/src/dateparser.cc +0 -0
  140. data/ext/v8/upstream/v8/src/dateparser.h +265 -0
  141. data/ext/v8/upstream/v8/src/debug-agent.cc +447 -0
  142. data/ext/v8/upstream/v8/src/debug-agent.h +129 -0
  143. data/ext/v8/upstream/{3.1.8 → v8}/src/debug-debugger.js +0 -0
  144. data/ext/v8/upstream/v8/src/debug.cc +3188 -0
  145. data/ext/v8/upstream/v8/src/debug.h +1055 -0
  146. data/ext/v8/upstream/v8/src/deoptimizer.cc +1296 -0
  147. data/ext/v8/upstream/v8/src/deoptimizer.h +629 -0
  148. data/ext/v8/upstream/v8/src/disasm.h +80 -0
  149. data/ext/v8/upstream/v8/src/disassembler.cc +339 -0
  150. data/ext/v8/upstream/{3.1.8 → v8}/src/disassembler.h +0 -0
  151. data/ext/v8/upstream/{3.1.8 → v8}/src/diy-fp.cc +0 -0
  152. data/ext/v8/upstream/{3.1.8 → v8}/src/diy-fp.h +0 -0
  153. data/ext/v8/upstream/{3.1.8 → v8}/src/double.h +0 -0
  154. data/ext/v8/upstream/{3.1.8 → v8}/src/dtoa.cc +0 -0
  155. data/ext/v8/upstream/{3.1.8 → v8}/src/dtoa.h +0 -0
  156. data/ext/v8/upstream/v8/src/execution.cc +791 -0
  157. data/ext/v8/upstream/v8/src/execution.h +291 -0
  158. data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.cc +250 -0
  159. data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.h +89 -0
  160. data/ext/v8/upstream/v8/src/extensions/experimental/experimental.gyp +55 -0
  161. data/ext/v8/upstream/v8/src/extensions/experimental/i18n-extension.cc +284 -0
  162. data/ext/v8/upstream/{3.1.8 → v8}/src/extensions/experimental/i18n-extension.h +0 -0
  163. data/ext/v8/upstream/v8/src/extensions/externalize-string-extension.cc +141 -0
  164. data/ext/v8/upstream/{3.1.8 → v8}/src/extensions/externalize-string-extension.h +0 -0
  165. data/ext/v8/upstream/v8/src/extensions/gc-extension.cc +58 -0
  166. data/ext/v8/upstream/{3.1.8 → v8}/src/extensions/gc-extension.h +0 -0
  167. data/ext/v8/upstream/v8/src/factory.cc +1194 -0
  168. data/ext/v8/upstream/v8/src/factory.h +436 -0
  169. data/ext/v8/upstream/{3.1.8 → v8}/src/fast-dtoa.cc +0 -0
  170. data/ext/v8/upstream/{3.1.8 → v8}/src/fast-dtoa.h +0 -0
  171. data/ext/v8/upstream/{3.1.8 → v8}/src/fixed-dtoa.cc +0 -0
  172. data/ext/v8/upstream/{3.1.8 → v8}/src/fixed-dtoa.h +0 -0
  173. data/ext/v8/upstream/v8/src/flag-definitions.h +556 -0
  174. data/ext/v8/upstream/{3.1.8 → v8}/src/flags.cc +0 -0
  175. data/ext/v8/upstream/{3.1.8 → v8}/src/flags.h +0 -0
  176. data/ext/v8/upstream/v8/src/frame-element.cc +37 -0
  177. data/ext/v8/upstream/v8/src/frame-element.h +269 -0
  178. data/ext/v8/upstream/v8/src/frames-inl.h +236 -0
  179. data/ext/v8/upstream/v8/src/frames.cc +1273 -0
  180. data/ext/v8/upstream/v8/src/frames.h +854 -0
  181. data/ext/v8/upstream/v8/src/full-codegen.cc +1385 -0
  182. data/ext/v8/upstream/v8/src/full-codegen.h +753 -0
  183. data/ext/v8/upstream/v8/src/func-name-inferrer.cc +91 -0
  184. data/ext/v8/upstream/v8/src/func-name-inferrer.h +111 -0
  185. data/ext/v8/upstream/v8/src/gdb-jit.cc +1548 -0
  186. data/ext/v8/upstream/{3.1.8 → v8}/src/gdb-jit.h +0 -0
  187. data/ext/v8/upstream/v8/src/global-handles.cc +596 -0
  188. data/ext/v8/upstream/v8/src/global-handles.h +239 -0
  189. data/ext/v8/upstream/v8/src/globals.h +325 -0
  190. data/ext/v8/upstream/v8/src/handles-inl.h +177 -0
  191. data/ext/v8/upstream/v8/src/handles.cc +965 -0
  192. data/ext/v8/upstream/v8/src/handles.h +372 -0
  193. data/ext/v8/upstream/{3.1.8 → v8}/src/hashmap.cc +0 -0
  194. data/ext/v8/upstream/v8/src/hashmap.h +121 -0
  195. data/ext/v8/upstream/v8/src/heap-inl.h +703 -0
  196. data/ext/v8/upstream/v8/src/heap-profiler.cc +1173 -0
  197. data/ext/v8/upstream/v8/src/heap-profiler.h +396 -0
  198. data/ext/v8/upstream/v8/src/heap.cc +5856 -0
  199. data/ext/v8/upstream/v8/src/heap.h +2264 -0
  200. data/ext/v8/upstream/v8/src/hydrogen-instructions.cc +1639 -0
  201. data/ext/v8/upstream/v8/src/hydrogen-instructions.h +3657 -0
  202. data/ext/v8/upstream/v8/src/hydrogen.cc +6011 -0
  203. data/ext/v8/upstream/v8/src/hydrogen.h +1137 -0
  204. data/ext/v8/upstream/v8/src/ia32/assembler-ia32-inl.h +430 -0
  205. data/ext/v8/upstream/v8/src/ia32/assembler-ia32.cc +2846 -0
  206. data/ext/v8/upstream/v8/src/ia32/assembler-ia32.h +1159 -0
  207. data/ext/v8/upstream/v8/src/ia32/builtins-ia32.cc +1596 -0
  208. data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.cc +6549 -0
  209. data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.h +495 -0
  210. data/ext/v8/upstream/{3.1.8 → v8}/src/ia32/codegen-ia32-inl.h +0 -0
  211. data/ext/v8/upstream/v8/src/ia32/codegen-ia32.cc +10385 -0
  212. data/ext/v8/upstream/v8/src/ia32/codegen-ia32.h +801 -0
  213. data/ext/v8/upstream/v8/src/ia32/cpu-ia32.cc +88 -0
  214. data/ext/v8/upstream/v8/src/ia32/debug-ia32.cc +312 -0
  215. data/ext/v8/upstream/v8/src/ia32/deoptimizer-ia32.cc +774 -0
  216. data/ext/v8/upstream/v8/src/ia32/disasm-ia32.cc +1620 -0
  217. data/ext/v8/upstream/{3.1.8 → v8}/src/ia32/frames-ia32.cc +0 -0
  218. data/ext/v8/upstream/v8/src/ia32/frames-ia32.h +140 -0
  219. data/ext/v8/upstream/v8/src/ia32/full-codegen-ia32.cc +4357 -0
  220. data/ext/v8/upstream/v8/src/ia32/ic-ia32.cc +1779 -0
  221. data/ext/v8/upstream/{3.1.8 → v8}/src/ia32/jump-target-ia32.cc +0 -0
  222. data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.cc +4158 -0
  223. data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.h +318 -0
  224. data/ext/v8/upstream/v8/src/ia32/lithium-gap-resolver-ia32.cc +466 -0
  225. data/ext/v8/upstream/{3.1.8 → v8}/src/ia32/lithium-gap-resolver-ia32.h +0 -0
  226. data/ext/v8/upstream/v8/src/ia32/lithium-ia32.cc +2181 -0
  227. data/ext/v8/upstream/v8/src/ia32/lithium-ia32.h +2235 -0
  228. data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.cc +2056 -0
  229. data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.h +807 -0
  230. data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.cc +1264 -0
  231. data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.h +216 -0
  232. data/ext/v8/upstream/{3.1.8 → v8}/src/ia32/register-allocator-ia32-inl.h +0 -0
  233. data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32.cc +157 -0
  234. data/ext/v8/upstream/{3.1.8 → v8}/src/ia32/register-allocator-ia32.h +0 -0
  235. data/ext/v8/upstream/{3.1.8 → v8}/src/ia32/simulator-ia32.cc +0 -0
  236. data/ext/v8/upstream/v8/src/ia32/simulator-ia32.h +72 -0
  237. data/ext/v8/upstream/v8/src/ia32/stub-cache-ia32.cc +3711 -0
  238. data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.cc +1366 -0
  239. data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.h +650 -0
  240. data/ext/v8/upstream/v8/src/ic-inl.h +130 -0
  241. data/ext/v8/upstream/v8/src/ic.cc +2389 -0
  242. data/ext/v8/upstream/v8/src/ic.h +675 -0
  243. data/ext/v8/upstream/{3.1.8 → v8}/src/inspector.cc +0 -0
  244. data/ext/v8/upstream/{3.1.8 → v8}/src/inspector.h +0 -0
  245. data/ext/v8/upstream/v8/src/interpreter-irregexp.cc +659 -0
  246. data/ext/v8/upstream/v8/src/interpreter-irregexp.h +49 -0
  247. data/ext/v8/upstream/v8/src/isolate.cc +883 -0
  248. data/ext/v8/upstream/v8/src/isolate.h +1306 -0
  249. data/ext/v8/upstream/v8/src/json.js +342 -0
  250. data/ext/v8/upstream/v8/src/jsregexp.cc +5371 -0
  251. data/ext/v8/upstream/v8/src/jsregexp.h +1483 -0
  252. data/ext/v8/upstream/{3.1.8 → v8}/src/jump-target-heavy-inl.h +0 -0
  253. data/ext/v8/upstream/v8/src/jump-target-heavy.cc +427 -0
  254. data/ext/v8/upstream/v8/src/jump-target-heavy.h +238 -0
  255. data/ext/v8/upstream/v8/src/jump-target-inl.h +48 -0
  256. data/ext/v8/upstream/{3.1.8 → v8}/src/jump-target-light-inl.h +0 -0
  257. data/ext/v8/upstream/v8/src/jump-target-light.cc +111 -0
  258. data/ext/v8/upstream/{3.1.8 → v8}/src/jump-target-light.h +0 -0
  259. data/ext/v8/upstream/{3.1.8 → v8}/src/jump-target.cc +0 -0
  260. data/ext/v8/upstream/{3.1.8 → v8}/src/jump-target.h +0 -0
  261. data/ext/v8/upstream/{3.1.8 → v8}/src/list-inl.h +0 -0
  262. data/ext/v8/upstream/{3.1.8 → v8}/src/list.h +0 -0
  263. data/ext/v8/upstream/v8/src/lithium-allocator-inl.h +142 -0
  264. data/ext/v8/upstream/v8/src/lithium-allocator.cc +2105 -0
  265. data/ext/v8/upstream/v8/src/lithium-allocator.h +630 -0
  266. data/ext/v8/upstream/v8/src/lithium.cc +169 -0
  267. data/ext/v8/upstream/{3.1.8 → v8}/src/lithium.h +0 -0
  268. data/ext/v8/upstream/{3.1.8 → v8}/src/liveedit-debugger.js +0 -0
  269. data/ext/v8/upstream/v8/src/liveedit.cc +1693 -0
  270. data/ext/v8/upstream/v8/src/liveedit.h +179 -0
  271. data/ext/v8/upstream/{3.1.8 → v8}/src/liveobjectlist-inl.h +0 -0
  272. data/ext/v8/upstream/v8/src/liveobjectlist.cc +2589 -0
  273. data/ext/v8/upstream/v8/src/liveobjectlist.h +322 -0
  274. data/ext/v8/upstream/{3.1.8 → v8}/src/log-inl.h +0 -0
  275. data/ext/v8/upstream/v8/src/log-utils.cc +423 -0
  276. data/ext/v8/upstream/v8/src/log-utils.h +229 -0
  277. data/ext/v8/upstream/v8/src/log.cc +1666 -0
  278. data/ext/v8/upstream/v8/src/log.h +446 -0
  279. data/ext/v8/upstream/{3.1.8 → v8}/src/macro-assembler.h +0 -0
  280. data/ext/v8/upstream/{3.1.8 → v8}/src/macros.py +0 -0
  281. data/ext/v8/upstream/v8/src/mark-compact.cc +3092 -0
  282. data/ext/v8/upstream/v8/src/mark-compact.h +506 -0
  283. data/ext/v8/upstream/{3.1.8 → v8}/src/math.js +0 -0
  284. data/ext/v8/upstream/v8/src/messages.cc +166 -0
  285. data/ext/v8/upstream/{3.1.8 → v8}/src/messages.h +0 -0
  286. data/ext/v8/upstream/v8/src/messages.js +1090 -0
  287. data/ext/v8/upstream/v8/src/mips/assembler-mips-inl.h +335 -0
  288. data/ext/v8/upstream/v8/src/mips/assembler-mips.cc +2093 -0
  289. data/ext/v8/upstream/v8/src/mips/assembler-mips.h +1066 -0
  290. data/ext/v8/upstream/v8/src/mips/builtins-mips.cc +148 -0
  291. data/ext/v8/upstream/v8/src/mips/code-stubs-mips.cc +752 -0
  292. data/ext/v8/upstream/v8/src/mips/code-stubs-mips.h +511 -0
  293. data/ext/v8/upstream/v8/src/mips/codegen-mips-inl.h +64 -0
  294. data/ext/v8/upstream/v8/src/mips/codegen-mips.cc +1213 -0
  295. data/ext/v8/upstream/v8/src/mips/codegen-mips.h +633 -0
  296. data/ext/v8/upstream/v8/src/mips/constants-mips.cc +352 -0
  297. data/ext/v8/upstream/v8/src/mips/constants-mips.h +723 -0
  298. data/ext/v8/upstream/v8/src/mips/cpu-mips.cc +90 -0
  299. data/ext/v8/upstream/v8/src/mips/debug-mips.cc +155 -0
  300. data/ext/v8/upstream/v8/src/mips/deoptimizer-mips.cc +91 -0
  301. data/ext/v8/upstream/v8/src/mips/disasm-mips.cc +1023 -0
  302. data/ext/v8/upstream/v8/src/mips/frames-mips.cc +48 -0
  303. data/ext/v8/upstream/v8/src/mips/frames-mips.h +179 -0
  304. data/ext/v8/upstream/v8/src/mips/full-codegen-mips.cc +727 -0
  305. data/ext/v8/upstream/v8/src/mips/ic-mips.cc +244 -0
  306. data/ext/v8/upstream/v8/src/mips/jump-target-mips.cc +80 -0
  307. data/ext/v8/upstream/v8/src/mips/lithium-codegen-mips.h +65 -0
  308. data/ext/v8/upstream/v8/src/mips/lithium-mips.h +304 -0
  309. data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.cc +3327 -0
  310. data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.h +1058 -0
  311. data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.cc +478 -0
  312. data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.h +250 -0
  313. data/ext/v8/upstream/v8/src/mips/register-allocator-mips-inl.h +134 -0
  314. data/ext/v8/upstream/{3.1.8 → v8}/src/mips/register-allocator-mips.cc +0 -0
  315. data/ext/v8/upstream/v8/src/mips/register-allocator-mips.h +47 -0
  316. data/ext/v8/upstream/v8/src/mips/simulator-mips.cc +2438 -0
  317. data/ext/v8/upstream/v8/src/mips/simulator-mips.h +394 -0
  318. data/ext/v8/upstream/v8/src/mips/stub-cache-mips.cc +601 -0
  319. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips-inl.h +58 -0
  320. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.cc +307 -0
  321. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.h +530 -0
  322. data/ext/v8/upstream/v8/src/mirror-debugger.js +2381 -0
  323. data/ext/v8/upstream/v8/src/mksnapshot.cc +256 -0
  324. data/ext/v8/upstream/{3.1.8 → v8}/src/natives.h +0 -0
  325. data/ext/v8/upstream/v8/src/objects-debug.cc +722 -0
  326. data/ext/v8/upstream/v8/src/objects-inl.h +4166 -0
  327. data/ext/v8/upstream/v8/src/objects-printer.cc +801 -0
  328. data/ext/v8/upstream/v8/src/objects-visiting.cc +142 -0
  329. data/ext/v8/upstream/v8/src/objects-visiting.h +422 -0
  330. data/ext/v8/upstream/v8/src/objects.cc +10296 -0
  331. data/ext/v8/upstream/v8/src/objects.h +6662 -0
  332. data/ext/v8/upstream/v8/src/parser.cc +5168 -0
  333. data/ext/v8/upstream/v8/src/parser.h +823 -0
  334. data/ext/v8/upstream/v8/src/platform-cygwin.cc +811 -0
  335. data/ext/v8/upstream/v8/src/platform-freebsd.cc +854 -0
  336. data/ext/v8/upstream/v8/src/platform-linux.cc +1120 -0
  337. data/ext/v8/upstream/v8/src/platform-macos.cc +865 -0
  338. data/ext/v8/upstream/v8/src/platform-nullos.cc +504 -0
  339. data/ext/v8/upstream/v8/src/platform-openbsd.cc +672 -0
  340. data/ext/v8/upstream/v8/src/platform-posix.cc +424 -0
  341. data/ext/v8/upstream/v8/src/platform-solaris.cc +796 -0
  342. data/ext/v8/upstream/v8/src/platform-tls-mac.h +62 -0
  343. data/ext/v8/upstream/v8/src/platform-tls-win32.h +62 -0
  344. data/ext/v8/upstream/v8/src/platform-tls.h +50 -0
  345. data/ext/v8/upstream/v8/src/platform-win32.cc +2072 -0
  346. data/ext/v8/upstream/v8/src/platform.h +693 -0
  347. data/ext/v8/upstream/v8/src/preparse-data.cc +185 -0
  348. data/ext/v8/upstream/{3.1.8 → v8}/src/preparse-data.h +0 -0
  349. data/ext/v8/upstream/v8/src/preparser-api.cc +219 -0
  350. data/ext/v8/upstream/v8/src/preparser.cc +1205 -0
  351. data/ext/v8/upstream/{3.1.8 → v8}/src/preparser.h +0 -0
  352. data/ext/v8/upstream/v8/src/prettyprinter.cc +1530 -0
  353. data/ext/v8/upstream/v8/src/prettyprinter.h +223 -0
  354. data/ext/v8/upstream/{3.1.8 → v8}/src/profile-generator-inl.h +0 -0
  355. data/ext/v8/upstream/v8/src/profile-generator.cc +3095 -0
  356. data/ext/v8/upstream/v8/src/profile-generator.h +1125 -0
  357. data/ext/v8/upstream/v8/src/property.cc +102 -0
  358. data/ext/v8/upstream/v8/src/property.h +348 -0
  359. data/ext/v8/upstream/{3.1.8 → v8}/src/regexp-macro-assembler-irregexp-inl.h +0 -0
  360. data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp.cc +470 -0
  361. data/ext/v8/upstream/{3.1.8 → v8}/src/regexp-macro-assembler-irregexp.h +0 -0
  362. data/ext/v8/upstream/{3.1.8 → v8}/src/regexp-macro-assembler-tracer.cc +0 -0
  363. data/ext/v8/upstream/{3.1.8 → v8}/src/regexp-macro-assembler-tracer.h +0 -0
  364. data/ext/v8/upstream/v8/src/regexp-macro-assembler.cc +266 -0
  365. data/ext/v8/upstream/v8/src/regexp-macro-assembler.h +236 -0
  366. data/ext/v8/upstream/v8/src/regexp-stack.cc +111 -0
  367. data/ext/v8/upstream/v8/src/regexp-stack.h +147 -0
  368. data/ext/v8/upstream/v8/src/regexp.js +483 -0
  369. data/ext/v8/upstream/v8/src/register-allocator-inl.h +141 -0
  370. data/ext/v8/upstream/v8/src/register-allocator.cc +98 -0
  371. data/ext/v8/upstream/v8/src/register-allocator.h +310 -0
  372. data/ext/v8/upstream/v8/src/rewriter.cc +1024 -0
  373. data/ext/v8/upstream/{3.1.8 → v8}/src/rewriter.h +0 -0
  374. data/ext/v8/upstream/v8/src/runtime-profiler.cc +478 -0
  375. data/ext/v8/upstream/v8/src/runtime-profiler.h +192 -0
  376. data/ext/v8/upstream/v8/src/runtime.cc +11949 -0
  377. data/ext/v8/upstream/v8/src/runtime.h +643 -0
  378. data/ext/v8/upstream/{3.1.8 → v8}/src/runtime.js +0 -0
  379. data/ext/v8/upstream/v8/src/safepoint-table.cc +256 -0
  380. data/ext/v8/upstream/v8/src/safepoint-table.h +269 -0
  381. data/ext/v8/upstream/v8/src/scanner-base.cc +964 -0
  382. data/ext/v8/upstream/v8/src/scanner-base.h +664 -0
  383. data/ext/v8/upstream/v8/src/scanner.cc +584 -0
  384. data/ext/v8/upstream/v8/src/scanner.h +196 -0
  385. data/ext/v8/upstream/v8/src/scopeinfo.cc +631 -0
  386. data/ext/v8/upstream/v8/src/scopeinfo.h +249 -0
  387. data/ext/v8/upstream/v8/src/scopes.cc +1093 -0
  388. data/ext/v8/upstream/v8/src/scopes.h +508 -0
  389. data/ext/v8/upstream/v8/src/serialize.cc +1574 -0
  390. data/ext/v8/upstream/v8/src/serialize.h +589 -0
  391. data/ext/v8/upstream/{3.1.8 → v8}/src/shell.h +0 -0
  392. data/ext/v8/upstream/{3.1.8 → v8}/src/simulator.h +0 -0
  393. data/ext/v8/upstream/v8/src/small-pointer-list.h +163 -0
  394. data/ext/v8/upstream/{3.1.8 → v8}/src/smart-pointer.h +0 -0
  395. data/ext/v8/upstream/v8/src/snapshot-common.cc +82 -0
  396. data/ext/v8/upstream/{3.1.8 → v8}/src/snapshot-empty.cc +0 -0
  397. data/ext/v8/upstream/v8/src/snapshot.h +73 -0
  398. data/ext/v8/upstream/v8/src/spaces-inl.h +529 -0
  399. data/ext/v8/upstream/v8/src/spaces.cc +3147 -0
  400. data/ext/v8/upstream/v8/src/spaces.h +2368 -0
  401. data/ext/v8/upstream/{3.1.8 → v8}/src/splay-tree-inl.h +0 -0
  402. data/ext/v8/upstream/{3.1.8 → v8}/src/splay-tree.h +0 -0
  403. data/ext/v8/upstream/v8/src/string-search.cc +41 -0
  404. data/ext/v8/upstream/v8/src/string-search.h +568 -0
  405. data/ext/v8/upstream/v8/src/string-stream.cc +592 -0
  406. data/ext/v8/upstream/{3.1.8 → v8}/src/string-stream.h +0 -0
  407. data/ext/v8/upstream/v8/src/string.js +915 -0
  408. data/ext/v8/upstream/{3.1.8 → v8}/src/strtod.cc +0 -0
  409. data/ext/v8/upstream/{3.1.8 → v8}/src/strtod.h +0 -0
  410. data/ext/v8/upstream/v8/src/stub-cache.cc +1940 -0
  411. data/ext/v8/upstream/v8/src/stub-cache.h +866 -0
  412. data/ext/v8/upstream/{3.1.8 → v8}/src/third_party/valgrind/valgrind.h +0 -0
  413. data/ext/v8/upstream/v8/src/token.cc +63 -0
  414. data/ext/v8/upstream/v8/src/token.h +288 -0
  415. data/ext/v8/upstream/v8/src/top.cc +983 -0
  416. data/ext/v8/upstream/v8/src/type-info.cc +472 -0
  417. data/ext/v8/upstream/v8/src/type-info.h +290 -0
  418. data/ext/v8/upstream/{3.1.8 → v8}/src/unbound-queue-inl.h +0 -0
  419. data/ext/v8/upstream/{3.1.8 → v8}/src/unbound-queue.h +0 -0
  420. data/ext/v8/upstream/{3.1.8 → v8}/src/unicode-inl.h +0 -0
  421. data/ext/v8/upstream/v8/src/unicode.cc +1624 -0
  422. data/ext/v8/upstream/v8/src/unicode.h +280 -0
  423. data/ext/v8/upstream/{3.1.8 → v8}/src/uri.js +0 -0
  424. data/ext/v8/upstream/{3.1.8 → v8}/src/utils.cc +0 -0
  425. data/ext/v8/upstream/v8/src/utils.h +796 -0
  426. data/ext/v8/upstream/v8/src/v8-counters.cc +62 -0
  427. data/ext/v8/upstream/v8/src/v8-counters.h +311 -0
  428. data/ext/v8/upstream/v8/src/v8.cc +215 -0
  429. data/ext/v8/upstream/v8/src/v8.h +130 -0
  430. data/ext/v8/upstream/{3.1.8 → v8}/src/v8checks.h +0 -0
  431. data/ext/v8/upstream/{3.1.8 → v8}/src/v8dll-main.cc +0 -0
  432. data/ext/v8/upstream/v8/src/v8globals.h +486 -0
  433. data/ext/v8/upstream/{3.1.8/src/memory.h → v8/src/v8memory.h} +0 -0
  434. data/ext/v8/upstream/v8/src/v8natives.js +1293 -0
  435. data/ext/v8/upstream/{3.1.8 → v8}/src/v8preparserdll-main.cc +0 -0
  436. data/ext/v8/upstream/v8/src/v8threads.cc +453 -0
  437. data/ext/v8/upstream/v8/src/v8threads.h +164 -0
  438. data/ext/v8/upstream/v8/src/v8utils.h +317 -0
  439. data/ext/v8/upstream/{3.1.8 → v8}/src/variables.cc +0 -0
  440. data/ext/v8/upstream/v8/src/variables.h +212 -0
  441. data/ext/v8/upstream/v8/src/version.cc +116 -0
  442. data/ext/v8/upstream/v8/src/version.h +68 -0
  443. data/ext/v8/upstream/{3.1.8 → v8}/src/virtual-frame-heavy-inl.h +0 -0
  444. data/ext/v8/upstream/{3.1.8 → v8}/src/virtual-frame-heavy.cc +0 -0
  445. data/ext/v8/upstream/{3.1.8 → v8}/src/virtual-frame-inl.h +0 -0
  446. data/ext/v8/upstream/v8/src/virtual-frame-light-inl.h +171 -0
  447. data/ext/v8/upstream/{3.1.8 → v8}/src/virtual-frame-light.cc +0 -0
  448. data/ext/v8/upstream/{3.1.8 → v8}/src/virtual-frame.cc +0 -0
  449. data/ext/v8/upstream/{3.1.8 → v8}/src/virtual-frame.h +0 -0
  450. data/ext/v8/upstream/v8/src/vm-state-inl.h +138 -0
  451. data/ext/v8/upstream/v8/src/vm-state.h +70 -0
  452. data/ext/v8/upstream/v8/src/win32-headers.h +96 -0
  453. data/ext/v8/upstream/v8/src/x64/assembler-x64-inl.h +456 -0
  454. data/ext/v8/upstream/v8/src/x64/assembler-x64.cc +2954 -0
  455. data/ext/v8/upstream/v8/src/x64/assembler-x64.h +1630 -0
  456. data/ext/v8/upstream/v8/src/x64/builtins-x64.cc +1493 -0
  457. data/ext/v8/upstream/v8/src/x64/code-stubs-x64.cc +5132 -0
  458. data/ext/v8/upstream/v8/src/x64/code-stubs-x64.h +477 -0
  459. data/ext/v8/upstream/{3.1.8 → v8}/src/x64/codegen-x64-inl.h +0 -0
  460. data/ext/v8/upstream/v8/src/x64/codegen-x64.cc +8843 -0
  461. data/ext/v8/upstream/v8/src/x64/codegen-x64.h +753 -0
  462. data/ext/v8/upstream/v8/src/x64/cpu-x64.cc +88 -0
  463. data/ext/v8/upstream/v8/src/x64/debug-x64.cc +318 -0
  464. data/ext/v8/upstream/v8/src/x64/deoptimizer-x64.cc +815 -0
  465. data/ext/v8/upstream/v8/src/x64/disasm-x64.cc +1752 -0
  466. data/ext/v8/upstream/{3.1.8 → v8}/src/x64/frames-x64.cc +0 -0
  467. data/ext/v8/upstream/v8/src/x64/frames-x64.h +130 -0
  468. data/ext/v8/upstream/v8/src/x64/full-codegen-x64.cc +4339 -0
  469. data/ext/v8/upstream/v8/src/x64/ic-x64.cc +1752 -0
  470. data/ext/v8/upstream/{3.1.8 → v8}/src/x64/jump-target-x64.cc +0 -0
  471. data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.cc +3970 -0
  472. data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.h +318 -0
  473. data/ext/v8/upstream/{3.1.8 → v8}/src/x64/lithium-gap-resolver-x64.cc +0 -0
  474. data/ext/v8/upstream/{3.1.8 → v8}/src/x64/lithium-gap-resolver-x64.h +0 -0
  475. data/ext/v8/upstream/v8/src/x64/lithium-x64.cc +2115 -0
  476. data/ext/v8/upstream/v8/src/x64/lithium-x64.h +2161 -0
  477. data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.cc +2911 -0
  478. data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.h +1984 -0
  479. data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.cc +1398 -0
  480. data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.h +282 -0
  481. data/ext/v8/upstream/v8/src/x64/register-allocator-x64-inl.h +87 -0
  482. data/ext/v8/upstream/v8/src/x64/register-allocator-x64.cc +95 -0
  483. data/ext/v8/upstream/{3.1.8 → v8}/src/x64/register-allocator-x64.h +0 -0
  484. data/ext/v8/upstream/{3.1.8 → v8}/src/x64/simulator-x64.cc +0 -0
  485. data/ext/v8/upstream/v8/src/x64/simulator-x64.h +71 -0
  486. data/ext/v8/upstream/v8/src/x64/stub-cache-x64.cc +3460 -0
  487. data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.cc +1296 -0
  488. data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.h +597 -0
  489. data/ext/v8/upstream/v8/src/zone-inl.h +129 -0
  490. data/ext/v8/upstream/v8/src/zone.cc +196 -0
  491. data/ext/v8/upstream/v8/src/zone.h +236 -0
  492. data/ext/v8/upstream/{3.1.8 → v8}/tools/codemap.js +0 -0
  493. data/ext/v8/upstream/{3.1.8 → v8}/tools/consarray.js +0 -0
  494. data/ext/v8/upstream/{3.1.8 → v8}/tools/csvparser.js +0 -0
  495. data/ext/v8/upstream/{3.1.8 → v8}/tools/disasm.py +0 -0
  496. data/ext/v8/upstream/v8/tools/freebsd-tick-processor +10 -0
  497. data/ext/v8/upstream/{3.1.8 → v8}/tools/gc-nvp-trace-processor.py +0 -0
  498. data/ext/v8/upstream/{3.1.8 → v8}/tools/generate-ten-powers.scm +0 -0
  499. data/ext/v8/upstream/{3.1.8 → v8}/tools/grokdump.py +0 -0
  500. data/ext/v8/upstream/v8/tools/gyp/v8.gyp +844 -0
  501. data/ext/v8/upstream/{3.1.8 → v8}/tools/js2c.py +0 -0
  502. data/ext/v8/upstream/{3.1.8 → v8}/tools/jsmin.py +0 -0
  503. data/ext/v8/upstream/v8/tools/linux-tick-processor +35 -0
  504. data/ext/v8/upstream/{3.1.8 → v8}/tools/ll_prof.py +0 -0
  505. data/ext/v8/upstream/{3.1.8 → v8}/tools/logreader.js +0 -0
  506. data/ext/v8/upstream/{3.1.8 → v8}/tools/mac-nm +0 -0
  507. data/ext/v8/upstream/{3.1.8 → v8}/tools/mac-tick-processor +0 -0
  508. data/ext/v8/upstream/{3.1.8 → v8}/tools/oom_dump/README +0 -0
  509. data/ext/v8/upstream/{3.1.8 → v8}/tools/oom_dump/SConstruct +0 -0
  510. data/ext/v8/upstream/{3.1.8 → v8}/tools/oom_dump/oom_dump.cc +0 -0
  511. data/ext/v8/upstream/{3.1.8 → v8}/tools/presubmit.py +0 -0
  512. data/ext/v8/upstream/{3.1.8 → v8}/tools/process-heap-prof.py +0 -0
  513. data/ext/v8/upstream/{3.1.8 → v8}/tools/profile.js +0 -0
  514. data/ext/v8/upstream/{3.1.8 → v8}/tools/profile_view.js +0 -0
  515. data/ext/v8/upstream/{3.1.8 → v8}/tools/run-valgrind.py +0 -0
  516. data/ext/v8/upstream/{3.1.8 → v8}/tools/splaytree.js +0 -0
  517. data/ext/v8/upstream/{3.1.8 → v8}/tools/stats-viewer.py +0 -0
  518. data/ext/v8/upstream/v8/tools/test.py +1490 -0
  519. data/ext/v8/upstream/{3.1.8 → v8}/tools/tickprocessor-driver.js +0 -0
  520. data/ext/v8/upstream/v8/tools/tickprocessor.js +877 -0
  521. data/ext/v8/upstream/{3.1.8 → v8}/tools/utils.py +0 -0
  522. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/README.txt +0 -0
  523. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/arm.vsprops +0 -0
  524. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/common.vsprops +0 -0
  525. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/d8.vcproj +0 -0
  526. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/d8_arm.vcproj +0 -0
  527. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/d8_x64.vcproj +0 -0
  528. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/d8js2c.cmd +0 -0
  529. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/debug.vsprops +0 -0
  530. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/ia32.vsprops +0 -0
  531. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/js2c.cmd +0 -0
  532. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/release.vsprops +0 -0
  533. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8.sln +0 -0
  534. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8.vcproj +0 -0
  535. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_arm.sln +0 -0
  536. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_arm.vcproj +0 -0
  537. data/ext/v8/upstream/v8/tools/visual_studio/v8_base.vcproj +1308 -0
  538. data/ext/v8/upstream/v8/tools/visual_studio/v8_base_arm.vcproj +1238 -0
  539. data/ext/v8/upstream/v8/tools/visual_studio/v8_base_x64.vcproj +1300 -0
  540. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_cctest.vcproj +0 -0
  541. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_cctest_arm.vcproj +0 -0
  542. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_cctest_x64.vcproj +0 -0
  543. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_mksnapshot.vcproj +0 -0
  544. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -0
  545. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_process_sample.vcproj +0 -0
  546. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_process_sample_arm.vcproj +0 -0
  547. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_process_sample_x64.vcproj +0 -0
  548. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_shell_sample.vcproj +0 -0
  549. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -0
  550. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -0
  551. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_snapshot.vcproj +0 -0
  552. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
  553. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
  554. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
  555. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_x64.sln +0 -0
  556. data/ext/v8/upstream/{3.1.8 → v8}/tools/visual_studio/v8_x64.vcproj +0 -0
  557. data/ext/v8/upstream/v8/tools/visual_studio/x64.vsprops +18 -0
  558. data/ext/v8/upstream/{3.1.8 → v8}/tools/windows-tick-processor.bat +0 -0
  559. data/ext/v8/v8_callbacks.cpp +52 -92
  560. data/ext/v8/v8_date.cpp +2 -3
  561. data/ext/v8/v8_object.cpp +4 -0
  562. data/ext/v8/v8_template.cpp +2 -2
  563. data/ext/v8/v8_try_catch.cpp +8 -38
  564. data/lib/v8/version.rb +1 -1
  565. data/spec/ext/ext_spec_helper.rb +2 -20
  566. data/spec/ext/object_spec.rb +0 -12
  567. data/spec/ext/try_catch_spec.rb +29 -1
  568. data/spec/spec_helper.rb +1 -0
  569. data/spec/v8/portal/proxies_spec.rb +1 -84
  570. data/specmem/handle_memspec.rb +41 -0
  571. data/specmem/object_memspec.rb +16 -0
  572. data/specmem/proxies_memspec.rb +86 -0
  573. data/specmem/spec_helper.rb +24 -0
  574. data/therubyracer.gemspec +7 -2
  575. metadata +564 -541
  576. data/ext/v8/upstream/3.1.8/.gitignore +0 -31
  577. data/ext/v8/upstream/3.1.8/AUTHORS +0 -40
  578. data/ext/v8/upstream/3.1.8/ChangeLog +0 -2566
  579. data/ext/v8/upstream/3.1.8/SConstruct +0 -1192
  580. data/ext/v8/upstream/3.1.8/include/v8-debug.h +0 -384
  581. data/ext/v8/upstream/3.1.8/include/v8-preparser.h +0 -116
  582. data/ext/v8/upstream/3.1.8/include/v8-profiler.h +0 -426
  583. data/ext/v8/upstream/3.1.8/include/v8-testing.h +0 -99
  584. data/ext/v8/upstream/3.1.8/include/v8.h +0 -3846
  585. data/ext/v8/upstream/3.1.8/preparser/preparser-process.cc +0 -206
  586. data/ext/v8/upstream/3.1.8/src/SConscript +0 -356
  587. data/ext/v8/upstream/3.1.8/src/accessors.cc +0 -907
  588. data/ext/v8/upstream/3.1.8/src/allocation.cc +0 -204
  589. data/ext/v8/upstream/3.1.8/src/allocation.h +0 -176
  590. data/ext/v8/upstream/3.1.8/src/api.cc +0 -5191
  591. data/ext/v8/upstream/3.1.8/src/api.h +0 -508
  592. data/ext/v8/upstream/3.1.8/src/apiutils.h +0 -80
  593. data/ext/v8/upstream/3.1.8/src/arguments.h +0 -105
  594. data/ext/v8/upstream/3.1.8/src/arm/assembler-arm-inl.h +0 -352
  595. data/ext/v8/upstream/3.1.8/src/arm/assembler-arm.cc +0 -2756
  596. data/ext/v8/upstream/3.1.8/src/arm/assembler-arm.h +0 -1294
  597. data/ext/v8/upstream/3.1.8/src/arm/builtins-arm.cc +0 -1628
  598. data/ext/v8/upstream/3.1.8/src/arm/code-stubs-arm.cc +0 -6783
  599. data/ext/v8/upstream/3.1.8/src/arm/code-stubs-arm.h +0 -657
  600. data/ext/v8/upstream/3.1.8/src/arm/codegen-arm.cc +0 -7403
  601. data/ext/v8/upstream/3.1.8/src/arm/codegen-arm.h +0 -595
  602. data/ext/v8/upstream/3.1.8/src/arm/constants-arm.h +0 -769
  603. data/ext/v8/upstream/3.1.8/src/arm/cpu-arm.cc +0 -147
  604. data/ext/v8/upstream/3.1.8/src/arm/debug-arm.cc +0 -315
  605. data/ext/v8/upstream/3.1.8/src/arm/deoptimizer-arm.cc +0 -700
  606. data/ext/v8/upstream/3.1.8/src/arm/disasm-arm.cc +0 -1439
  607. data/ext/v8/upstream/3.1.8/src/arm/frames-arm.h +0 -168
  608. data/ext/v8/upstream/3.1.8/src/arm/full-codegen-arm.cc +0 -4230
  609. data/ext/v8/upstream/3.1.8/src/arm/ic-arm.cc +0 -1799
  610. data/ext/v8/upstream/3.1.8/src/arm/lithium-arm.cc +0 -2041
  611. data/ext/v8/upstream/3.1.8/src/arm/lithium-arm.h +0 -2046
  612. data/ext/v8/upstream/3.1.8/src/arm/lithium-codegen-arm.cc +0 -3822
  613. data/ext/v8/upstream/3.1.8/src/arm/lithium-codegen-arm.h +0 -312
  614. data/ext/v8/upstream/3.1.8/src/arm/lithium-gap-resolver-arm.cc +0 -303
  615. data/ext/v8/upstream/3.1.8/src/arm/macro-assembler-arm.cc +0 -2701
  616. data/ext/v8/upstream/3.1.8/src/arm/macro-assembler-arm.h +0 -1015
  617. data/ext/v8/upstream/3.1.8/src/arm/regexp-macro-assembler-arm.cc +0 -1280
  618. data/ext/v8/upstream/3.1.8/src/arm/regexp-macro-assembler-arm.h +0 -252
  619. data/ext/v8/upstream/3.1.8/src/arm/simulator-arm.cc +0 -3165
  620. data/ext/v8/upstream/3.1.8/src/arm/simulator-arm.h +0 -402
  621. data/ext/v8/upstream/3.1.8/src/arm/stub-cache-arm.cc +0 -4077
  622. data/ext/v8/upstream/3.1.8/src/arm/virtual-frame-arm.cc +0 -843
  623. data/ext/v8/upstream/3.1.8/src/arm/virtual-frame-arm.h +0 -520
  624. data/ext/v8/upstream/3.1.8/src/array.js +0 -1231
  625. data/ext/v8/upstream/3.1.8/src/assembler.cc +0 -973
  626. data/ext/v8/upstream/3.1.8/src/assembler.h +0 -787
  627. data/ext/v8/upstream/3.1.8/src/ast-inl.h +0 -107
  628. data/ext/v8/upstream/3.1.8/src/ast.cc +0 -1067
  629. data/ext/v8/upstream/3.1.8/src/ast.h +0 -2177
  630. data/ext/v8/upstream/3.1.8/src/atomicops.h +0 -165
  631. data/ext/v8/upstream/3.1.8/src/bootstrapper.cc +0 -1888
  632. data/ext/v8/upstream/3.1.8/src/bootstrapper.h +0 -118
  633. data/ext/v8/upstream/3.1.8/src/builtins.cc +0 -1586
  634. data/ext/v8/upstream/3.1.8/src/builtins.h +0 -339
  635. data/ext/v8/upstream/3.1.8/src/checks.cc +0 -110
  636. data/ext/v8/upstream/3.1.8/src/checks.h +0 -292
  637. data/ext/v8/upstream/3.1.8/src/code-stubs.cc +0 -230
  638. data/ext/v8/upstream/3.1.8/src/code-stubs.h +0 -950
  639. data/ext/v8/upstream/3.1.8/src/codegen-inl.h +0 -64
  640. data/ext/v8/upstream/3.1.8/src/codegen.cc +0 -495
  641. data/ext/v8/upstream/3.1.8/src/codegen.h +0 -245
  642. data/ext/v8/upstream/3.1.8/src/compilation-cache.cc +0 -654
  643. data/ext/v8/upstream/3.1.8/src/compilation-cache.h +0 -112
  644. data/ext/v8/upstream/3.1.8/src/compiler.cc +0 -806
  645. data/ext/v8/upstream/3.1.8/src/compiler.h +0 -290
  646. data/ext/v8/upstream/3.1.8/src/contexts.cc +0 -320
  647. data/ext/v8/upstream/3.1.8/src/contexts.h +0 -376
  648. data/ext/v8/upstream/3.1.8/src/conversions.cc +0 -1069
  649. data/ext/v8/upstream/3.1.8/src/counters.cc +0 -78
  650. data/ext/v8/upstream/3.1.8/src/counters.h +0 -242
  651. data/ext/v8/upstream/3.1.8/src/cpu-profiler-inl.h +0 -100
  652. data/ext/v8/upstream/3.1.8/src/cpu-profiler.cc +0 -554
  653. data/ext/v8/upstream/3.1.8/src/cpu-profiler.h +0 -291
  654. data/ext/v8/upstream/3.1.8/src/cpu.h +0 -65
  655. data/ext/v8/upstream/3.1.8/src/d8-debug.cc +0 -367
  656. data/ext/v8/upstream/3.1.8/src/d8-debug.h +0 -157
  657. data/ext/v8/upstream/3.1.8/src/d8-posix.cc +0 -693
  658. data/ext/v8/upstream/3.1.8/src/d8.cc +0 -792
  659. data/ext/v8/upstream/3.1.8/src/d8.gyp +0 -85
  660. data/ext/v8/upstream/3.1.8/src/data-flow.h +0 -379
  661. data/ext/v8/upstream/3.1.8/src/dateparser.h +0 -263
  662. data/ext/v8/upstream/3.1.8/src/debug-agent.cc +0 -446
  663. data/ext/v8/upstream/3.1.8/src/debug-agent.h +0 -131
  664. data/ext/v8/upstream/3.1.8/src/debug.cc +0 -3085
  665. data/ext/v8/upstream/3.1.8/src/debug.h +0 -1025
  666. data/ext/v8/upstream/3.1.8/src/deoptimizer.cc +0 -1185
  667. data/ext/v8/upstream/3.1.8/src/deoptimizer.h +0 -529
  668. data/ext/v8/upstream/3.1.8/src/disasm.h +0 -77
  669. data/ext/v8/upstream/3.1.8/src/disassembler.cc +0 -338
  670. data/ext/v8/upstream/3.1.8/src/execution.cc +0 -735
  671. data/ext/v8/upstream/3.1.8/src/execution.h +0 -322
  672. data/ext/v8/upstream/3.1.8/src/extensions/experimental/experimental.gyp +0 -53
  673. data/ext/v8/upstream/3.1.8/src/extensions/experimental/i18n-extension.cc +0 -264
  674. data/ext/v8/upstream/3.1.8/src/extensions/externalize-string-extension.cc +0 -141
  675. data/ext/v8/upstream/3.1.8/src/extensions/gc-extension.cc +0 -58
  676. data/ext/v8/upstream/3.1.8/src/factory.cc +0 -1087
  677. data/ext/v8/upstream/3.1.8/src/factory.h +0 -432
  678. data/ext/v8/upstream/3.1.8/src/flag-definitions.h +0 -552
  679. data/ext/v8/upstream/3.1.8/src/frame-element.cc +0 -42
  680. data/ext/v8/upstream/3.1.8/src/frame-element.h +0 -277
  681. data/ext/v8/upstream/3.1.8/src/frames-inl.h +0 -210
  682. data/ext/v8/upstream/3.1.8/src/frames.cc +0 -1232
  683. data/ext/v8/upstream/3.1.8/src/frames.h +0 -826
  684. data/ext/v8/upstream/3.1.8/src/full-codegen.cc +0 -1382
  685. data/ext/v8/upstream/3.1.8/src/full-codegen.h +0 -751
  686. data/ext/v8/upstream/3.1.8/src/func-name-inferrer.cc +0 -90
  687. data/ext/v8/upstream/3.1.8/src/func-name-inferrer.h +0 -111
  688. data/ext/v8/upstream/3.1.8/src/gdb-jit.cc +0 -1547
  689. data/ext/v8/upstream/3.1.8/src/global-handles.cc +0 -534
  690. data/ext/v8/upstream/3.1.8/src/global-handles.h +0 -181
  691. data/ext/v8/upstream/3.1.8/src/globals.h +0 -325
  692. data/ext/v8/upstream/3.1.8/src/handles-inl.h +0 -80
  693. data/ext/v8/upstream/3.1.8/src/handles.cc +0 -910
  694. data/ext/v8/upstream/3.1.8/src/handles.h +0 -424
  695. data/ext/v8/upstream/3.1.8/src/hashmap.h +0 -121
  696. data/ext/v8/upstream/3.1.8/src/heap-inl.h +0 -587
  697. data/ext/v8/upstream/3.1.8/src/heap-profiler.cc +0 -1128
  698. data/ext/v8/upstream/3.1.8/src/heap-profiler.h +0 -381
  699. data/ext/v8/upstream/3.1.8/src/heap.cc +0 -5610
  700. data/ext/v8/upstream/3.1.8/src/heap.h +0 -2218
  701. data/ext/v8/upstream/3.1.8/src/hydrogen-instructions.cc +0 -1490
  702. data/ext/v8/upstream/3.1.8/src/hydrogen-instructions.h +0 -3493
  703. data/ext/v8/upstream/3.1.8/src/hydrogen.cc +0 -6056
  704. data/ext/v8/upstream/3.1.8/src/hydrogen.h +0 -1091
  705. data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32-inl.h +0 -429
  706. data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32.cc +0 -2800
  707. data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32.h +0 -1093
  708. data/ext/v8/upstream/3.1.8/src/ia32/builtins-ia32.cc +0 -1590
  709. data/ext/v8/upstream/3.1.8/src/ia32/code-stubs-ia32.cc +0 -6624
  710. data/ext/v8/upstream/3.1.8/src/ia32/code-stubs-ia32.h +0 -536
  711. data/ext/v8/upstream/3.1.8/src/ia32/codegen-ia32.cc +0 -10354
  712. data/ext/v8/upstream/3.1.8/src/ia32/codegen-ia32.h +0 -798
  713. data/ext/v8/upstream/3.1.8/src/ia32/cpu-ia32.cc +0 -87
  714. data/ext/v8/upstream/3.1.8/src/ia32/debug-ia32.cc +0 -309
  715. data/ext/v8/upstream/3.1.8/src/ia32/deoptimizer-ia32.cc +0 -664
  716. data/ext/v8/upstream/3.1.8/src/ia32/disasm-ia32.cc +0 -1597
  717. data/ext/v8/upstream/3.1.8/src/ia32/frames-ia32.h +0 -140
  718. data/ext/v8/upstream/3.1.8/src/ia32/full-codegen-ia32.cc +0 -4278
  719. data/ext/v8/upstream/3.1.8/src/ia32/ic-ia32.cc +0 -1786
  720. data/ext/v8/upstream/3.1.8/src/ia32/lithium-codegen-ia32.cc +0 -3880
  721. data/ext/v8/upstream/3.1.8/src/ia32/lithium-codegen-ia32.h +0 -309
  722. data/ext/v8/upstream/3.1.8/src/ia32/lithium-gap-resolver-ia32.cc +0 -460
  723. data/ext/v8/upstream/3.1.8/src/ia32/lithium-ia32.cc +0 -2095
  724. data/ext/v8/upstream/3.1.8/src/ia32/lithium-ia32.h +0 -2127
  725. data/ext/v8/upstream/3.1.8/src/ia32/macro-assembler-ia32.cc +0 -2031
  726. data/ext/v8/upstream/3.1.8/src/ia32/macro-assembler-ia32.h +0 -798
  727. data/ext/v8/upstream/3.1.8/src/ia32/regexp-macro-assembler-ia32.cc +0 -1253
  728. data/ext/v8/upstream/3.1.8/src/ia32/regexp-macro-assembler-ia32.h +0 -215
  729. data/ext/v8/upstream/3.1.8/src/ia32/register-allocator-ia32.cc +0 -157
  730. data/ext/v8/upstream/3.1.8/src/ia32/simulator-ia32.h +0 -72
  731. data/ext/v8/upstream/3.1.8/src/ia32/stub-cache-ia32.cc +0 -3732
  732. data/ext/v8/upstream/3.1.8/src/ia32/virtual-frame-ia32.cc +0 -1360
  733. data/ext/v8/upstream/3.1.8/src/ia32/virtual-frame-ia32.h +0 -646
  734. data/ext/v8/upstream/3.1.8/src/ic-inl.h +0 -129
  735. data/ext/v8/upstream/3.1.8/src/ic.cc +0 -2333
  736. data/ext/v8/upstream/3.1.8/src/ic.h +0 -639
  737. data/ext/v8/upstream/3.1.8/src/interpreter-irregexp.cc +0 -655
  738. data/ext/v8/upstream/3.1.8/src/interpreter-irregexp.h +0 -48
  739. data/ext/v8/upstream/3.1.8/src/json.js +0 -342
  740. data/ext/v8/upstream/3.1.8/src/jsregexp.cc +0 -5340
  741. data/ext/v8/upstream/3.1.8/src/jsregexp.h +0 -1484
  742. data/ext/v8/upstream/3.1.8/src/jump-target-heavy.cc +0 -430
  743. data/ext/v8/upstream/3.1.8/src/jump-target-heavy.h +0 -244
  744. data/ext/v8/upstream/3.1.8/src/jump-target-inl.h +0 -48
  745. data/ext/v8/upstream/3.1.8/src/jump-target-light.cc +0 -111
  746. data/ext/v8/upstream/3.1.8/src/lithium-allocator-inl.h +0 -140
  747. data/ext/v8/upstream/3.1.8/src/lithium-allocator.cc +0 -2093
  748. data/ext/v8/upstream/3.1.8/src/lithium-allocator.h +0 -644
  749. data/ext/v8/upstream/3.1.8/src/lithium.cc +0 -168
  750. data/ext/v8/upstream/3.1.8/src/liveedit.cc +0 -1650
  751. data/ext/v8/upstream/3.1.8/src/liveedit.h +0 -174
  752. data/ext/v8/upstream/3.1.8/src/liveobjectlist.cc +0 -2527
  753. data/ext/v8/upstream/3.1.8/src/liveobjectlist.h +0 -322
  754. data/ext/v8/upstream/3.1.8/src/log-utils.cc +0 -336
  755. data/ext/v8/upstream/3.1.8/src/log-utils.h +0 -232
  756. data/ext/v8/upstream/3.1.8/src/log.cc +0 -1608
  757. data/ext/v8/upstream/3.1.8/src/log.h +0 -379
  758. data/ext/v8/upstream/3.1.8/src/mark-compact.cc +0 -2957
  759. data/ext/v8/upstream/3.1.8/src/mark-compact.h +0 -433
  760. data/ext/v8/upstream/3.1.8/src/messages.cc +0 -164
  761. data/ext/v8/upstream/3.1.8/src/messages.js +0 -1071
  762. data/ext/v8/upstream/3.1.8/src/mips/assembler-mips-inl.h +0 -215
  763. data/ext/v8/upstream/3.1.8/src/mips/assembler-mips.cc +0 -1219
  764. data/ext/v8/upstream/3.1.8/src/mips/assembler-mips.h +0 -667
  765. data/ext/v8/upstream/3.1.8/src/mips/builtins-mips.cc +0 -205
  766. data/ext/v8/upstream/3.1.8/src/mips/codegen-mips-inl.h +0 -70
  767. data/ext/v8/upstream/3.1.8/src/mips/codegen-mips.cc +0 -1437
  768. data/ext/v8/upstream/3.1.8/src/mips/codegen-mips.h +0 -431
  769. data/ext/v8/upstream/3.1.8/src/mips/constants-mips.cc +0 -328
  770. data/ext/v8/upstream/3.1.8/src/mips/constants-mips.h +0 -525
  771. data/ext/v8/upstream/3.1.8/src/mips/cpu-mips.cc +0 -73
  772. data/ext/v8/upstream/3.1.8/src/mips/debug-mips.cc +0 -127
  773. data/ext/v8/upstream/3.1.8/src/mips/disasm-mips.cc +0 -787
  774. data/ext/v8/upstream/3.1.8/src/mips/fast-codegen-mips.cc +0 -77
  775. data/ext/v8/upstream/3.1.8/src/mips/frames-mips.cc +0 -96
  776. data/ext/v8/upstream/3.1.8/src/mips/frames-mips.h +0 -164
  777. data/ext/v8/upstream/3.1.8/src/mips/full-codegen-mips.cc +0 -277
  778. data/ext/v8/upstream/3.1.8/src/mips/ic-mips.cc +0 -208
  779. data/ext/v8/upstream/3.1.8/src/mips/jump-target-mips.cc +0 -175
  780. data/ext/v8/upstream/3.1.8/src/mips/macro-assembler-mips.cc +0 -1326
  781. data/ext/v8/upstream/3.1.8/src/mips/macro-assembler-mips.h +0 -461
  782. data/ext/v8/upstream/3.1.8/src/mips/register-allocator-mips-inl.h +0 -137
  783. data/ext/v8/upstream/3.1.8/src/mips/register-allocator-mips.h +0 -46
  784. data/ext/v8/upstream/3.1.8/src/mips/simulator-mips.cc +0 -1650
  785. data/ext/v8/upstream/3.1.8/src/mips/simulator-mips.h +0 -311
  786. data/ext/v8/upstream/3.1.8/src/mips/stub-cache-mips.cc +0 -418
  787. data/ext/v8/upstream/3.1.8/src/mips/virtual-frame-mips.cc +0 -319
  788. data/ext/v8/upstream/3.1.8/src/mips/virtual-frame-mips.h +0 -548
  789. data/ext/v8/upstream/3.1.8/src/mirror-debugger.js +0 -2380
  790. data/ext/v8/upstream/3.1.8/src/mksnapshot.cc +0 -256
  791. data/ext/v8/upstream/3.1.8/src/objects-debug.cc +0 -722
  792. data/ext/v8/upstream/3.1.8/src/objects-inl.h +0 -3946
  793. data/ext/v8/upstream/3.1.8/src/objects-printer.cc +0 -801
  794. data/ext/v8/upstream/3.1.8/src/objects-visiting.cc +0 -142
  795. data/ext/v8/upstream/3.1.8/src/objects-visiting.h +0 -401
  796. data/ext/v8/upstream/3.1.8/src/objects.cc +0 -10044
  797. data/ext/v8/upstream/3.1.8/src/objects.h +0 -6571
  798. data/ext/v8/upstream/3.1.8/src/parser.cc +0 -5165
  799. data/ext/v8/upstream/3.1.8/src/parser.h +0 -802
  800. data/ext/v8/upstream/3.1.8/src/platform-cygwin.cc +0 -745
  801. data/ext/v8/upstream/3.1.8/src/platform-freebsd.cc +0 -702
  802. data/ext/v8/upstream/3.1.8/src/platform-linux.cc +0 -981
  803. data/ext/v8/upstream/3.1.8/src/platform-macos.cc +0 -732
  804. data/ext/v8/upstream/3.1.8/src/platform-nullos.cc +0 -498
  805. data/ext/v8/upstream/3.1.8/src/platform-openbsd.cc +0 -657
  806. data/ext/v8/upstream/3.1.8/src/platform-posix.cc +0 -399
  807. data/ext/v8/upstream/3.1.8/src/platform-solaris.cc +0 -714
  808. data/ext/v8/upstream/3.1.8/src/platform-win32.cc +0 -1974
  809. data/ext/v8/upstream/3.1.8/src/platform.h +0 -636
  810. data/ext/v8/upstream/3.1.8/src/preparse-data.cc +0 -183
  811. data/ext/v8/upstream/3.1.8/src/preparser-api.cc +0 -213
  812. data/ext/v8/upstream/3.1.8/src/preparser.cc +0 -1205
  813. data/ext/v8/upstream/3.1.8/src/prettyprinter.cc +0 -1539
  814. data/ext/v8/upstream/3.1.8/src/prettyprinter.h +0 -223
  815. data/ext/v8/upstream/3.1.8/src/profile-generator.cc +0 -2899
  816. data/ext/v8/upstream/3.1.8/src/profile-generator.h +0 -1151
  817. data/ext/v8/upstream/3.1.8/src/property.cc +0 -96
  818. data/ext/v8/upstream/3.1.8/src/property.h +0 -337
  819. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-irregexp.cc +0 -470
  820. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler.cc +0 -257
  821. data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler.h +0 -231
  822. data/ext/v8/upstream/3.1.8/src/regexp-stack.cc +0 -103
  823. data/ext/v8/upstream/3.1.8/src/regexp-stack.h +0 -123
  824. data/ext/v8/upstream/3.1.8/src/regexp.js +0 -483
  825. data/ext/v8/upstream/3.1.8/src/register-allocator-inl.h +0 -141
  826. data/ext/v8/upstream/3.1.8/src/register-allocator.cc +0 -104
  827. data/ext/v8/upstream/3.1.8/src/register-allocator.h +0 -320
  828. data/ext/v8/upstream/3.1.8/src/rewriter.cc +0 -1023
  829. data/ext/v8/upstream/3.1.8/src/runtime-profiler.cc +0 -443
  830. data/ext/v8/upstream/3.1.8/src/runtime-profiler.h +0 -77
  831. data/ext/v8/upstream/3.1.8/src/runtime.cc +0 -11592
  832. data/ext/v8/upstream/3.1.8/src/runtime.h +0 -582
  833. data/ext/v8/upstream/3.1.8/src/safepoint-table.cc +0 -253
  834. data/ext/v8/upstream/3.1.8/src/safepoint-table.h +0 -263
  835. data/ext/v8/upstream/3.1.8/src/scanner-base.cc +0 -971
  836. data/ext/v8/upstream/3.1.8/src/scanner-base.h +0 -653
  837. data/ext/v8/upstream/3.1.8/src/scanner.cc +0 -586
  838. data/ext/v8/upstream/3.1.8/src/scanner.h +0 -194
  839. data/ext/v8/upstream/3.1.8/src/scopeinfo.cc +0 -636
  840. data/ext/v8/upstream/3.1.8/src/scopeinfo.h +0 -238
  841. data/ext/v8/upstream/3.1.8/src/scopes.cc +0 -1063
  842. data/ext/v8/upstream/3.1.8/src/scopes.h +0 -494
  843. data/ext/v8/upstream/3.1.8/src/serialize.cc +0 -1535
  844. data/ext/v8/upstream/3.1.8/src/serialize.h +0 -584
  845. data/ext/v8/upstream/3.1.8/src/snapshot-common.cc +0 -82
  846. data/ext/v8/upstream/3.1.8/src/snapshot.h +0 -71
  847. data/ext/v8/upstream/3.1.8/src/spaces-inl.h +0 -524
  848. data/ext/v8/upstream/3.1.8/src/spaces.cc +0 -3254
  849. data/ext/v8/upstream/3.1.8/src/spaces.h +0 -2362
  850. data/ext/v8/upstream/3.1.8/src/string-search.cc +0 -40
  851. data/ext/v8/upstream/3.1.8/src/string-search.h +0 -567
  852. data/ext/v8/upstream/3.1.8/src/string-stream.cc +0 -584
  853. data/ext/v8/upstream/3.1.8/src/string.js +0 -915
  854. data/ext/v8/upstream/3.1.8/src/stub-cache.cc +0 -1878
  855. data/ext/v8/upstream/3.1.8/src/stub-cache.h +0 -849
  856. data/ext/v8/upstream/3.1.8/src/token.cc +0 -63
  857. data/ext/v8/upstream/3.1.8/src/token.h +0 -288
  858. data/ext/v8/upstream/3.1.8/src/top.cc +0 -1152
  859. data/ext/v8/upstream/3.1.8/src/top.h +0 -608
  860. data/ext/v8/upstream/3.1.8/src/type-info.cc +0 -406
  861. data/ext/v8/upstream/3.1.8/src/type-info.h +0 -283
  862. data/ext/v8/upstream/3.1.8/src/unicode.cc +0 -1624
  863. data/ext/v8/upstream/3.1.8/src/unicode.h +0 -280
  864. data/ext/v8/upstream/3.1.8/src/utils.h +0 -793
  865. data/ext/v8/upstream/3.1.8/src/v8-counters.cc +0 -55
  866. data/ext/v8/upstream/3.1.8/src/v8-counters.h +0 -290
  867. data/ext/v8/upstream/3.1.8/src/v8.cc +0 -270
  868. data/ext/v8/upstream/3.1.8/src/v8.h +0 -127
  869. data/ext/v8/upstream/3.1.8/src/v8globals.h +0 -480
  870. data/ext/v8/upstream/3.1.8/src/v8natives.js +0 -1252
  871. data/ext/v8/upstream/3.1.8/src/v8threads.cc +0 -440
  872. data/ext/v8/upstream/3.1.8/src/v8threads.h +0 -157
  873. data/ext/v8/upstream/3.1.8/src/v8utils.h +0 -354
  874. data/ext/v8/upstream/3.1.8/src/variables.h +0 -212
  875. data/ext/v8/upstream/3.1.8/src/version.cc +0 -95
  876. data/ext/v8/upstream/3.1.8/src/version.h +0 -64
  877. data/ext/v8/upstream/3.1.8/src/virtual-frame-light-inl.h +0 -170
  878. data/ext/v8/upstream/3.1.8/src/vm-state-inl.h +0 -134
  879. data/ext/v8/upstream/3.1.8/src/vm-state.h +0 -68
  880. data/ext/v8/upstream/3.1.8/src/win32-headers.h +0 -95
  881. data/ext/v8/upstream/3.1.8/src/x64/assembler-x64-inl.h +0 -455
  882. data/ext/v8/upstream/3.1.8/src/x64/assembler-x64.cc +0 -3162
  883. data/ext/v8/upstream/3.1.8/src/x64/assembler-x64.h +0 -1584
  884. data/ext/v8/upstream/3.1.8/src/x64/builtins-x64.cc +0 -1492
  885. data/ext/v8/upstream/3.1.8/src/x64/code-stubs-x64.cc +0 -5150
  886. data/ext/v8/upstream/3.1.8/src/x64/code-stubs-x64.h +0 -519
  887. data/ext/v8/upstream/3.1.8/src/x64/codegen-x64.cc +0 -8835
  888. data/ext/v8/upstream/3.1.8/src/x64/codegen-x64.h +0 -750
  889. data/ext/v8/upstream/3.1.8/src/x64/cpu-x64.cc +0 -86
  890. data/ext/v8/upstream/3.1.8/src/x64/debug-x64.cc +0 -316
  891. data/ext/v8/upstream/3.1.8/src/x64/deoptimizer-x64.cc +0 -781
  892. data/ext/v8/upstream/3.1.8/src/x64/disasm-x64.cc +0 -1737
  893. data/ext/v8/upstream/3.1.8/src/x64/frames-x64.h +0 -130
  894. data/ext/v8/upstream/3.1.8/src/x64/full-codegen-x64.cc +0 -3984
  895. data/ext/v8/upstream/3.1.8/src/x64/ic-x64.cc +0 -1761
  896. data/ext/v8/upstream/3.1.8/src/x64/lithium-codegen-x64.cc +0 -3639
  897. data/ext/v8/upstream/3.1.8/src/x64/lithium-codegen-x64.h +0 -305
  898. data/ext/v8/upstream/3.1.8/src/x64/lithium-x64.cc +0 -2044
  899. data/ext/v8/upstream/3.1.8/src/x64/lithium-x64.h +0 -2052
  900. data/ext/v8/upstream/3.1.8/src/x64/macro-assembler-x64.cc +0 -2660
  901. data/ext/v8/upstream/3.1.8/src/x64/macro-assembler-x64.h +0 -1852
  902. data/ext/v8/upstream/3.1.8/src/x64/regexp-macro-assembler-x64.cc +0 -1382
  903. data/ext/v8/upstream/3.1.8/src/x64/regexp-macro-assembler-x64.h +0 -278
  904. data/ext/v8/upstream/3.1.8/src/x64/register-allocator-x64-inl.h +0 -87
  905. data/ext/v8/upstream/3.1.8/src/x64/register-allocator-x64.cc +0 -91
  906. data/ext/v8/upstream/3.1.8/src/x64/simulator-x64.h +0 -71
  907. data/ext/v8/upstream/3.1.8/src/x64/stub-cache-x64.cc +0 -3509
  908. data/ext/v8/upstream/3.1.8/src/x64/virtual-frame-x64.cc +0 -1292
  909. data/ext/v8/upstream/3.1.8/src/x64/virtual-frame-x64.h +0 -593
  910. data/ext/v8/upstream/3.1.8/src/zone-inl.h +0 -83
  911. data/ext/v8/upstream/3.1.8/src/zone.cc +0 -195
  912. data/ext/v8/upstream/3.1.8/src/zone.h +0 -233
  913. data/ext/v8/upstream/3.1.8/tools/gyp/v8.gyp +0 -869
  914. data/ext/v8/upstream/3.1.8/tools/linux-tick-processor +0 -33
  915. data/ext/v8/upstream/3.1.8/tools/tickprocessor.js +0 -863
  916. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base.vcproj +0 -1296
  917. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base_arm.vcproj +0 -1234
  918. data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base_x64.vcproj +0 -1296
  919. data/ext/v8/upstream/3.1.8/tools/visual_studio/x64.vsprops +0 -17
  920. data/spec/ext/mem_spec.rb +0 -42
@@ -1,205 +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
-
29
-
30
- #include "v8.h"
31
-
32
- #if defined(V8_TARGET_ARCH_MIPS)
33
-
34
- #include "codegen-inl.h"
35
- #include "debug.h"
36
- #include "runtime.h"
37
-
38
- namespace v8 {
39
- namespace internal {
40
-
41
-
42
- #define __ ACCESS_MASM(masm)
43
-
44
-
45
- void Builtins::Generate_Adaptor(MacroAssembler* masm,
46
- CFunctionId id,
47
- BuiltinExtraArguments extra_args) {
48
- UNIMPLEMENTED_MIPS();
49
- }
50
-
51
-
52
- void Builtins::Generate_ArrayCode(MacroAssembler* masm) {
53
- UNIMPLEMENTED_MIPS();
54
- }
55
-
56
-
57
- void Builtins::Generate_ArrayConstructCode(MacroAssembler* masm) {
58
- UNIMPLEMENTED_MIPS();
59
- }
60
-
61
-
62
- void Builtins::Generate_JSConstructCall(MacroAssembler* masm) {
63
- UNIMPLEMENTED_MIPS();
64
- }
65
-
66
-
67
- void Builtins::Generate_JSConstructStubGeneric(MacroAssembler* masm) {
68
- UNIMPLEMENTED_MIPS();
69
- }
70
-
71
-
72
- void Builtins::Generate_JSConstructStubApi(MacroAssembler* masm) {
73
- UNIMPLEMENTED_MIPS();
74
- }
75
-
76
-
77
- static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm,
78
- bool is_construct) {
79
- // Called from JSEntryStub::GenerateBody
80
-
81
- // Registers:
82
- // a0: entry_address
83
- // a1: function
84
- // a2: reveiver_pointer
85
- // a3: argc
86
- // s0: argv
87
- //
88
- // Stack:
89
- // arguments slots
90
- // handler frame
91
- // entry frame
92
- // callee saved registers + ra
93
- // 4 args slots
94
- // args
95
-
96
- // Clear the context before we push it when entering the JS frame.
97
- __ li(cp, Operand(0, RelocInfo::NONE));
98
-
99
- // Enter an internal frame.
100
- __ EnterInternalFrame();
101
-
102
- // Set up the context from the function argument.
103
- __ lw(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
104
-
105
- // Set up the roots register.
106
- ExternalReference roots_address = ExternalReference::roots_address();
107
- __ li(s6, Operand(roots_address));
108
-
109
- // Push the function and the receiver onto the stack.
110
- __ MultiPushReversed(a1.bit() | a2.bit());
111
-
112
- // Copy arguments to the stack in a loop.
113
- // a3: argc
114
- // s0: argv, ie points to first arg
115
- Label loop, entry;
116
- __ sll(t0, a3, kPointerSizeLog2);
117
- __ add(t2, s0, t0);
118
- __ b(&entry);
119
- __ nop(); // Branch delay slot nop.
120
- // t2 points past last arg.
121
- __ bind(&loop);
122
- __ lw(t0, MemOperand(s0)); // Read next parameter.
123
- __ addiu(s0, s0, kPointerSize);
124
- __ lw(t0, MemOperand(t0)); // Dereference handle.
125
- __ Push(t0); // Push parameter.
126
- __ bind(&entry);
127
- __ Branch(ne, &loop, s0, Operand(t2));
128
-
129
- // Registers:
130
- // a0: entry_address
131
- // a1: function
132
- // a2: reveiver_pointer
133
- // a3: argc
134
- // s0: argv
135
- // s6: roots_address
136
- //
137
- // Stack:
138
- // arguments
139
- // receiver
140
- // function
141
- // arguments slots
142
- // handler frame
143
- // entry frame
144
- // callee saved registers + ra
145
- // 4 args slots
146
- // args
147
-
148
- // Initialize all JavaScript callee-saved registers, since they will be seen
149
- // by the garbage collector as part of handlers.
150
- __ LoadRoot(t4, Heap::kUndefinedValueRootIndex);
151
- __ mov(s1, t4);
152
- __ mov(s2, t4);
153
- __ mov(s3, t4);
154
- __ mov(s4, s4);
155
- __ mov(s5, t4);
156
- // s6 holds the root address. Do not clobber.
157
- // s7 is cp. Do not init.
158
-
159
- // Invoke the code and pass argc as a0.
160
- __ mov(a0, a3);
161
- if (is_construct) {
162
- UNIMPLEMENTED_MIPS();
163
- __ break_(0x164);
164
- } else {
165
- ParameterCount actual(a0);
166
- __ InvokeFunction(a1, actual, CALL_FUNCTION);
167
- }
168
-
169
- __ LeaveInternalFrame();
170
-
171
- __ Jump(ra);
172
- }
173
-
174
-
175
- void Builtins::Generate_JSEntryTrampoline(MacroAssembler* masm) {
176
- Generate_JSEntryTrampolineHelper(masm, false);
177
- }
178
-
179
-
180
- void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
181
- Generate_JSEntryTrampolineHelper(masm, true);
182
- }
183
-
184
-
185
- void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
186
- UNIMPLEMENTED_MIPS();
187
- }
188
-
189
-
190
- void Builtins::Generate_FunctionApply(MacroAssembler* masm) {
191
- UNIMPLEMENTED_MIPS();
192
- }
193
-
194
-
195
- void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
196
- UNIMPLEMENTED_MIPS();
197
- __ break_(0x201);
198
- }
199
-
200
-
201
- #undef __
202
-
203
- } } // namespace v8::internal
204
-
205
- #endif // V8_TARGET_ARCH_MIPS
@@ -1,70 +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
-
29
- #ifndef V8_MIPS_CODEGEN_MIPS_INL_H_
30
- #define V8_MIPS_CODEGEN_MIPS_INL_H_
31
-
32
- namespace v8 {
33
- namespace internal {
34
-
35
- #define __ ACCESS_MASM(masm_)
36
-
37
- // Platform-specific inline functions.
38
-
39
- void DeferredCode::Jump() {
40
- __ b(&entry_label_);
41
- __ nop();
42
- }
43
-
44
-
45
- void Reference::GetValueAndSpill() {
46
- GetValue();
47
- }
48
-
49
-
50
- void CodeGenerator::VisitAndSpill(Statement* statement) {
51
- Visit(statement);
52
- }
53
-
54
-
55
- void CodeGenerator::VisitStatementsAndSpill(ZoneList<Statement*>* statements) {
56
- VisitStatements(statements);
57
- }
58
-
59
-
60
- void CodeGenerator::LoadAndSpill(Expression* expression) {
61
- Load(expression);
62
- }
63
-
64
-
65
- #undef __
66
-
67
- } } // namespace v8::internal
68
-
69
- #endif // V8_MIPS_CODEGEN_MIPS_INL_H_
70
-
@@ -1,1437 +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
-
29
- #include "v8.h"
30
-
31
- #if defined(V8_TARGET_ARCH_MIPS)
32
-
33
- #include "bootstrapper.h"
34
- #include "codegen-inl.h"
35
- #include "compiler.h"
36
- #include "debug.h"
37
- #include "ic-inl.h"
38
- #include "parser.h"
39
- #include "register-allocator-inl.h"
40
- #include "runtime.h"
41
- #include "scopes.h"
42
- #include "virtual-frame-inl.h"
43
-
44
-
45
-
46
- namespace v8 {
47
- namespace internal {
48
-
49
- #define __ ACCESS_MASM(masm_)
50
-
51
-
52
-
53
- // -----------------------------------------------------------------------------
54
- // Platform-specific DeferredCode functions.
55
-
56
-
57
- void DeferredCode::SaveRegisters() {
58
- UNIMPLEMENTED_MIPS();
59
- }
60
-
61
-
62
- void DeferredCode::RestoreRegisters() {
63
- UNIMPLEMENTED_MIPS();
64
- }
65
-
66
-
67
- // -----------------------------------------------------------------------------
68
- // CodeGenState implementation.
69
-
70
- CodeGenState::CodeGenState(CodeGenerator* owner)
71
- : owner_(owner),
72
- true_target_(NULL),
73
- false_target_(NULL),
74
- previous_(NULL) {
75
- owner_->set_state(this);
76
- }
77
-
78
-
79
- CodeGenState::CodeGenState(CodeGenerator* owner,
80
- JumpTarget* true_target,
81
- JumpTarget* false_target)
82
- : owner_(owner),
83
- true_target_(true_target),
84
- false_target_(false_target),
85
- previous_(owner->state()) {
86
- owner_->set_state(this);
87
- }
88
-
89
-
90
- CodeGenState::~CodeGenState() {
91
- ASSERT(owner_->state() == this);
92
- owner_->set_state(previous_);
93
- }
94
-
95
-
96
- // -----------------------------------------------------------------------------
97
- // CodeGenerator implementation
98
-
99
- CodeGenerator::CodeGenerator(MacroAssembler* masm)
100
- : deferred_(8),
101
- masm_(masm),
102
- frame_(NULL),
103
- allocator_(NULL),
104
- cc_reg_(cc_always),
105
- state_(NULL),
106
- function_return_is_shadowed_(false) {
107
- }
108
-
109
-
110
- // Calling conventions:
111
- // fp: caller's frame pointer
112
- // sp: stack pointer
113
- // a1: called JS function
114
- // cp: callee's context
115
-
116
- void CodeGenerator::Generate(CompilationInfo* info) {
117
- // Record the position for debugging purposes.
118
- CodeForFunctionPosition(info->function());
119
-
120
- // Initialize state.
121
- info_ = info;
122
- ASSERT(allocator_ == NULL);
123
- RegisterAllocator register_allocator(this);
124
- allocator_ = &register_allocator;
125
- ASSERT(frame_ == NULL);
126
- frame_ = new VirtualFrame();
127
- cc_reg_ = cc_always;
128
-
129
- {
130
- CodeGenState state(this);
131
-
132
- // Registers:
133
- // a1: called JS function
134
- // ra: return address
135
- // fp: caller's frame pointer
136
- // sp: stack pointer
137
- // cp: callee's context
138
- //
139
- // Stack:
140
- // arguments
141
- // receiver
142
-
143
- frame_->Enter();
144
-
145
- // Allocate space for locals and initialize them.
146
- frame_->AllocateStackSlots();
147
-
148
- // Initialize the function return target.
149
- function_return_.set_direction(JumpTarget::BIDIRECTIONAL);
150
- function_return_is_shadowed_ = false;
151
-
152
- VirtualFrame::SpilledScope spilled_scope;
153
- if (scope()->num_heap_slots() > 0) {
154
- UNIMPLEMENTED_MIPS();
155
- }
156
-
157
- {
158
- Comment cmnt2(masm_, "[ copy context parameters into .context");
159
-
160
- // Note that iteration order is relevant here! If we have the same
161
- // parameter twice (e.g., function (x, y, x)), and that parameter
162
- // needs to be copied into the context, it must be the last argument
163
- // passed to the parameter that needs to be copied. This is a rare
164
- // case so we don't check for it, instead we rely on the copying
165
- // order: such a parameter is copied repeatedly into the same
166
- // context location and thus the last value is what is seen inside
167
- // the function.
168
- for (int i = 0; i < scope()->num_parameters(); i++) {
169
- UNIMPLEMENTED_MIPS();
170
- }
171
- }
172
-
173
- // Store the arguments object. This must happen after context
174
- // initialization because the arguments object may be stored in the
175
- // context.
176
- if (scope()->arguments() != NULL) {
177
- UNIMPLEMENTED_MIPS();
178
- }
179
-
180
- // Generate code to 'execute' declarations and initialize functions
181
- // (source elements). In case of an illegal redeclaration we need to
182
- // handle that instead of processing the declarations.
183
- if (scope()->HasIllegalRedeclaration()) {
184
- Comment cmnt(masm_, "[ illegal redeclarations");
185
- scope()->VisitIllegalRedeclaration(this);
186
- } else {
187
- Comment cmnt(masm_, "[ declarations");
188
- ProcessDeclarations(scope()->declarations());
189
- // Bail out if a stack-overflow exception occurred when processing
190
- // declarations.
191
- if (HasStackOverflow()) return;
192
- }
193
-
194
- if (FLAG_trace) {
195
- UNIMPLEMENTED_MIPS();
196
- }
197
-
198
- // Compile the body of the function in a vanilla state. Don't
199
- // bother compiling all the code if the scope has an illegal
200
- // redeclaration.
201
- if (!scope()->HasIllegalRedeclaration()) {
202
- Comment cmnt(masm_, "[ function body");
203
- #ifdef DEBUG
204
- bool is_builtin = Bootstrapper::IsActive();
205
- bool should_trace =
206
- is_builtin ? FLAG_trace_builtin_calls : FLAG_trace_calls;
207
- if (should_trace) {
208
- UNIMPLEMENTED_MIPS();
209
- }
210
- #endif
211
- VisitStatementsAndSpill(info->function()->body());
212
- }
213
- }
214
-
215
- if (has_valid_frame() || function_return_.is_linked()) {
216
- if (!function_return_.is_linked()) {
217
- CodeForReturnPosition(info->function());
218
- }
219
- // Registers:
220
- // v0: result
221
- // sp: stack pointer
222
- // fp: frame pointer
223
- // cp: callee's context
224
-
225
- __ LoadRoot(v0, Heap::kUndefinedValueRootIndex);
226
-
227
- function_return_.Bind();
228
- if (FLAG_trace) {
229
- UNIMPLEMENTED_MIPS();
230
- }
231
-
232
- // Add a label for checking the size of the code used for returning.
233
- Label check_exit_codesize;
234
- masm_->bind(&check_exit_codesize);
235
-
236
- masm_->mov(sp, fp);
237
- masm_->lw(fp, MemOperand(sp, 0));
238
- masm_->lw(ra, MemOperand(sp, 4));
239
- masm_->addiu(sp, sp, 8);
240
-
241
- // Here we use masm_-> instead of the __ macro to avoid the code coverage
242
- // tool from instrumenting as we rely on the code size here.
243
- // TODO(MIPS): Should we be able to use more than 0x1ffe parameters?
244
- masm_->addiu(sp, sp, (scope()->num_parameters() + 1) * kPointerSize);
245
- masm_->Jump(ra);
246
- // The Jump automatically generates a nop in the branch delay slot.
247
-
248
- // Check that the size of the code used for returning matches what is
249
- // expected by the debugger.
250
- ASSERT_EQ(kJSReturnSequenceLength,
251
- masm_->InstructionsGeneratedSince(&check_exit_codesize));
252
- }
253
-
254
- // Code generation state must be reset.
255
- ASSERT(!has_cc());
256
- ASSERT(state_ == NULL);
257
- ASSERT(!function_return_is_shadowed_);
258
- function_return_.Unuse();
259
- DeleteFrame();
260
-
261
- // Process any deferred code using the register allocator.
262
- if (!HasStackOverflow()) {
263
- ProcessDeferred();
264
- }
265
-
266
- allocator_ = NULL;
267
- }
268
-
269
-
270
- void CodeGenerator::LoadReference(Reference* ref) {
271
- VirtualFrame::SpilledScope spilled_scope;
272
- Comment cmnt(masm_, "[ LoadReference");
273
- Expression* e = ref->expression();
274
- Property* property = e->AsProperty();
275
- Variable* var = e->AsVariableProxy()->AsVariable();
276
-
277
- if (property != NULL) {
278
- UNIMPLEMENTED_MIPS();
279
- } else if (var != NULL) {
280
- // The expression is a variable proxy that does not rewrite to a
281
- // property. Global variables are treated as named property references.
282
- if (var->is_global()) {
283
- LoadGlobal();
284
- ref->set_type(Reference::NAMED);
285
- } else {
286
- ASSERT(var->slot() != NULL);
287
- ref->set_type(Reference::SLOT);
288
- }
289
- } else {
290
- UNIMPLEMENTED_MIPS();
291
- }
292
- }
293
-
294
-
295
- void CodeGenerator::UnloadReference(Reference* ref) {
296
- VirtualFrame::SpilledScope spilled_scope;
297
- // Pop a reference from the stack while preserving TOS.
298
- Comment cmnt(masm_, "[ UnloadReference");
299
- int size = ref->size();
300
- if (size > 0) {
301
- frame_->EmitPop(a0);
302
- frame_->Drop(size);
303
- frame_->EmitPush(a0);
304
- }
305
- ref->set_unloaded();
306
- }
307
-
308
-
309
- MemOperand CodeGenerator::SlotOperand(Slot* slot, Register tmp) {
310
- // Currently, this assertion will fail if we try to assign to
311
- // a constant variable that is constant because it is read-only
312
- // (such as the variable referring to a named function expression).
313
- // We need to implement assignments to read-only variables.
314
- // Ideally, we should do this during AST generation (by converting
315
- // such assignments into expression statements); however, in general
316
- // we may not be able to make the decision until past AST generation,
317
- // that is when the entire program is known.
318
- ASSERT(slot != NULL);
319
- int index = slot->index();
320
- switch (slot->type()) {
321
- case Slot::PARAMETER:
322
- UNIMPLEMENTED_MIPS();
323
- return MemOperand(no_reg, 0);
324
-
325
- case Slot::LOCAL:
326
- return frame_->LocalAt(index);
327
-
328
- case Slot::CONTEXT: {
329
- UNIMPLEMENTED_MIPS();
330
- return MemOperand(no_reg, 0);
331
- }
332
-
333
- default:
334
- UNREACHABLE();
335
- return MemOperand(no_reg, 0);
336
- }
337
- }
338
-
339
-
340
- // Loads a value on TOS. If it is a boolean value, the result may have been
341
- // (partially) translated into branches, or it may have set the condition
342
- // code register. If force_cc is set, the value is forced to set the
343
- // condition code register and no value is pushed. If the condition code
344
- // register was set, has_cc() is true and cc_reg_ contains the condition to
345
- // test for 'true'.
346
- void CodeGenerator::LoadCondition(Expression* x,
347
- JumpTarget* true_target,
348
- JumpTarget* false_target,
349
- bool force_cc) {
350
- ASSERT(!has_cc());
351
- int original_height = frame_->height();
352
-
353
- { CodeGenState new_state(this, true_target, false_target);
354
- Visit(x);
355
-
356
- // If we hit a stack overflow, we may not have actually visited
357
- // the expression. In that case, we ensure that we have a
358
- // valid-looking frame state because we will continue to generate
359
- // code as we unwind the C++ stack.
360
- //
361
- // It's possible to have both a stack overflow and a valid frame
362
- // state (eg, a subexpression overflowed, visiting it returned
363
- // with a dummied frame state, and visiting this expression
364
- // returned with a normal-looking state).
365
- if (HasStackOverflow() &&
366
- has_valid_frame() &&
367
- !has_cc() &&
368
- frame_->height() == original_height) {
369
- true_target->Jump();
370
- }
371
- }
372
- if (force_cc && frame_ != NULL && !has_cc()) {
373
- // Convert the TOS value to a boolean in the condition code register.
374
- UNIMPLEMENTED_MIPS();
375
- }
376
- ASSERT(!force_cc || !has_valid_frame() || has_cc());
377
- ASSERT(!has_valid_frame() ||
378
- (has_cc() && frame_->height() == original_height) ||
379
- (!has_cc() && frame_->height() == original_height + 1));
380
- }
381
-
382
-
383
- void CodeGenerator::Load(Expression* x) {
384
- #ifdef DEBUG
385
- int original_height = frame_->height();
386
- #endif
387
- JumpTarget true_target;
388
- JumpTarget false_target;
389
- LoadCondition(x, &true_target, &false_target, false);
390
-
391
- if (has_cc()) {
392
- UNIMPLEMENTED_MIPS();
393
- }
394
-
395
- if (true_target.is_linked() || false_target.is_linked()) {
396
- UNIMPLEMENTED_MIPS();
397
- }
398
- ASSERT(has_valid_frame());
399
- ASSERT(!has_cc());
400
- ASSERT(frame_->height() == original_height + 1);
401
- }
402
-
403
-
404
- void CodeGenerator::LoadGlobal() {
405
- VirtualFrame::SpilledScope spilled_scope;
406
- __ lw(a0, GlobalObject());
407
- frame_->EmitPush(a0);
408
- }
409
-
410
-
411
- void CodeGenerator::LoadFromSlot(Slot* slot, TypeofState typeof_state) {
412
- VirtualFrame::SpilledScope spilled_scope;
413
- if (slot->type() == Slot::LOOKUP) {
414
- UNIMPLEMENTED_MIPS();
415
- } else {
416
- __ lw(a0, SlotOperand(slot, a2));
417
- frame_->EmitPush(a0);
418
- if (slot->var()->mode() == Variable::CONST) {
419
- UNIMPLEMENTED_MIPS();
420
- }
421
- }
422
- }
423
-
424
-
425
- void CodeGenerator::StoreToSlot(Slot* slot, InitState init_state) {
426
- ASSERT(slot != NULL);
427
- if (slot->type() == Slot::LOOKUP) {
428
- UNIMPLEMENTED_MIPS();
429
- } else {
430
- ASSERT(!slot->var()->is_dynamic());
431
-
432
- JumpTarget exit;
433
- if (init_state == CONST_INIT) {
434
- UNIMPLEMENTED_MIPS();
435
- }
436
-
437
- // We must execute the store. Storing a variable must keep the
438
- // (new) value on the stack. This is necessary for compiling
439
- // assignment expressions.
440
- //
441
- // Note: We will reach here even with slot->var()->mode() ==
442
- // Variable::CONST because of const declarations which will
443
- // initialize consts to 'the hole' value and by doing so, end up
444
- // calling this code. a2 may be loaded with context; used below in
445
- // RecordWrite.
446
- frame_->EmitPop(a0);
447
- __ sw(a0, SlotOperand(slot, a2));
448
- frame_->EmitPush(a0);
449
- if (slot->type() == Slot::CONTEXT) {
450
- UNIMPLEMENTED_MIPS();
451
- }
452
- // If we definitely did not jump over the assignment, we do not need
453
- // to bind the exit label. Doing so can defeat peephole
454
- // optimization.
455
- if (init_state == CONST_INIT || slot->type() == Slot::CONTEXT) {
456
- exit.Bind();
457
- }
458
- }
459
- }
460
-
461
-
462
- void CodeGenerator::VisitStatements(ZoneList<Statement*>* statements) {
463
- VirtualFrame::SpilledScope spilled_scope;
464
- for (int i = 0; frame_ != NULL && i < statements->length(); i++) {
465
- VisitAndSpill(statements->at(i));
466
- }
467
- }
468
-
469
-
470
- void CodeGenerator::VisitBlock(Block* node) {
471
- UNIMPLEMENTED_MIPS();
472
- }
473
-
474
-
475
- void CodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
476
- VirtualFrame::SpilledScope spilled_scope;
477
- frame_->EmitPush(cp);
478
- __ li(t0, Operand(pairs));
479
- frame_->EmitPush(t0);
480
- __ li(t0, Operand(Smi::FromInt(is_eval() ? 1 : 0)));
481
- frame_->EmitPush(t0);
482
- frame_->CallRuntime(Runtime::kDeclareGlobals, 3);
483
- // The result is discarded.
484
- }
485
-
486
-
487
- void CodeGenerator::VisitDeclaration(Declaration* node) {
488
- UNIMPLEMENTED_MIPS();
489
- }
490
-
491
-
492
- void CodeGenerator::VisitExpressionStatement(ExpressionStatement* node) {
493
- #ifdef DEBUG
494
- int original_height = frame_->height();
495
- #endif
496
- VirtualFrame::SpilledScope spilled_scope;
497
- Comment cmnt(masm_, "[ ExpressionStatement");
498
- CodeForStatementPosition(node);
499
- Expression* expression = node->expression();
500
- expression->MarkAsStatement();
501
- LoadAndSpill(expression);
502
- frame_->Drop();
503
- ASSERT(frame_->height() == original_height);
504
- }
505
-
506
-
507
- void CodeGenerator::VisitEmptyStatement(EmptyStatement* node) {
508
- UNIMPLEMENTED_MIPS();
509
- }
510
-
511
-
512
- void CodeGenerator::VisitIfStatement(IfStatement* node) {
513
- UNIMPLEMENTED_MIPS();
514
- }
515
-
516
-
517
- void CodeGenerator::VisitContinueStatement(ContinueStatement* node) {
518
- UNIMPLEMENTED_MIPS();
519
- }
520
-
521
-
522
- void CodeGenerator::VisitBreakStatement(BreakStatement* node) {
523
- UNIMPLEMENTED_MIPS();
524
- }
525
-
526
-
527
- void CodeGenerator::VisitReturnStatement(ReturnStatement* node) {
528
- VirtualFrame::SpilledScope spilled_scope;
529
- Comment cmnt(masm_, "[ ReturnStatement");
530
-
531
- CodeForStatementPosition(node);
532
- LoadAndSpill(node->expression());
533
- if (function_return_is_shadowed_) {
534
- frame_->EmitPop(v0);
535
- function_return_.Jump();
536
- } else {
537
- // Pop the result from the frame and prepare the frame for
538
- // returning thus making it easier to merge.
539
- frame_->EmitPop(v0);
540
- frame_->PrepareForReturn();
541
-
542
- function_return_.Jump();
543
- }
544
- }
545
-
546
-
547
- void CodeGenerator::VisitWithEnterStatement(WithEnterStatement* node) {
548
- UNIMPLEMENTED_MIPS();
549
- }
550
-
551
-
552
- void CodeGenerator::VisitWithExitStatement(WithExitStatement* node) {
553
- UNIMPLEMENTED_MIPS();
554
- }
555
-
556
-
557
- void CodeGenerator::VisitSwitchStatement(SwitchStatement* node) {
558
- UNIMPLEMENTED_MIPS();
559
- }
560
-
561
-
562
- void CodeGenerator::VisitDoWhileStatement(DoWhileStatement* node) {
563
- UNIMPLEMENTED_MIPS();
564
- }
565
-
566
-
567
- void CodeGenerator::VisitWhileStatement(WhileStatement* node) {
568
- UNIMPLEMENTED_MIPS();
569
- }
570
-
571
-
572
- void CodeGenerator::VisitForStatement(ForStatement* node) {
573
- UNIMPLEMENTED_MIPS();
574
- }
575
-
576
-
577
- void CodeGenerator::VisitForInStatement(ForInStatement* node) {
578
- UNIMPLEMENTED_MIPS();
579
- }
580
-
581
-
582
- void CodeGenerator::VisitTryCatchStatement(TryCatchStatement* node) {
583
- UNIMPLEMENTED_MIPS();
584
- }
585
-
586
-
587
- void CodeGenerator::VisitTryFinallyStatement(TryFinallyStatement* node) {
588
- UNIMPLEMENTED_MIPS();
589
- }
590
-
591
-
592
- void CodeGenerator::VisitDebuggerStatement(DebuggerStatement* node) {
593
- UNIMPLEMENTED_MIPS();
594
- }
595
-
596
-
597
- void CodeGenerator::VisitFunctionLiteral(FunctionLiteral* node) {
598
- UNIMPLEMENTED_MIPS();
599
- }
600
-
601
-
602
- void CodeGenerator::VisitSharedFunctionInfoLiteral(
603
- SharedFunctionInfoLiteral* node) {
604
- UNIMPLEMENTED_MIPS();
605
- }
606
-
607
-
608
- void CodeGenerator::VisitConditional(Conditional* node) {
609
- UNIMPLEMENTED_MIPS();
610
- }
611
-
612
-
613
- void CodeGenerator::VisitSlot(Slot* node) {
614
- #ifdef DEBUG
615
- int original_height = frame_->height();
616
- #endif
617
- VirtualFrame::SpilledScope spilled_scope;
618
- Comment cmnt(masm_, "[ Slot");
619
- LoadFromSlot(node, typeof_state());
620
- ASSERT(frame_->height() == original_height + 1);
621
- }
622
-
623
-
624
- void CodeGenerator::VisitVariableProxy(VariableProxy* node) {
625
- #ifdef DEBUG
626
- int original_height = frame_->height();
627
- #endif
628
- VirtualFrame::SpilledScope spilled_scope;
629
- Comment cmnt(masm_, "[ VariableProxy");
630
-
631
- Variable* var = node->var();
632
- Expression* expr = var->rewrite();
633
- if (expr != NULL) {
634
- Visit(expr);
635
- } else {
636
- ASSERT(var->is_global());
637
- Reference ref(this, node);
638
- ref.GetValueAndSpill();
639
- }
640
- ASSERT(frame_->height() == original_height + 1);
641
- }
642
-
643
-
644
- void CodeGenerator::VisitLiteral(Literal* node) {
645
- #ifdef DEBUG
646
- int original_height = frame_->height();
647
- #endif
648
- VirtualFrame::SpilledScope spilled_scope;
649
- Comment cmnt(masm_, "[ Literal");
650
- __ li(t0, Operand(node->handle()));
651
- frame_->EmitPush(t0);
652
- ASSERT(frame_->height() == original_height + 1);
653
- }
654
-
655
-
656
- void CodeGenerator::VisitRegExpLiteral(RegExpLiteral* node) {
657
- UNIMPLEMENTED_MIPS();
658
- }
659
-
660
-
661
- void CodeGenerator::VisitObjectLiteral(ObjectLiteral* node) {
662
- UNIMPLEMENTED_MIPS();
663
- }
664
-
665
-
666
- void CodeGenerator::VisitArrayLiteral(ArrayLiteral* node) {
667
- UNIMPLEMENTED_MIPS();
668
- }
669
-
670
-
671
- void CodeGenerator::VisitCatchExtensionObject(CatchExtensionObject* node) {
672
- UNIMPLEMENTED_MIPS();
673
- }
674
-
675
-
676
- void CodeGenerator::VisitAssignment(Assignment* node) {
677
- #ifdef DEBUG
678
- int original_height = frame_->height();
679
- #endif
680
- VirtualFrame::SpilledScope spilled_scope;
681
- Comment cmnt(masm_, "[ Assignment");
682
-
683
- { Reference target(this, node->target());
684
- if (target.is_illegal()) {
685
- // Fool the virtual frame into thinking that we left the assignment's
686
- // value on the frame.
687
- frame_->EmitPush(zero_reg);
688
- ASSERT(frame_->height() == original_height + 1);
689
- return;
690
- }
691
-
692
- if (node->op() == Token::ASSIGN ||
693
- node->op() == Token::INIT_VAR ||
694
- node->op() == Token::INIT_CONST) {
695
- LoadAndSpill(node->value());
696
- } else {
697
- UNIMPLEMENTED_MIPS();
698
- }
699
-
700
- Variable* var = node->target()->AsVariableProxy()->AsVariable();
701
- if (var != NULL &&
702
- (var->mode() == Variable::CONST) &&
703
- node->op() != Token::INIT_VAR && node->op() != Token::INIT_CONST) {
704
- // Assignment ignored - leave the value on the stack.
705
- } else {
706
- CodeForSourcePosition(node->position());
707
- if (node->op() == Token::INIT_CONST) {
708
- // Dynamic constant initializations must use the function context
709
- // and initialize the actual constant declared. Dynamic variable
710
- // initializations are simply assignments and use SetValue.
711
- target.SetValue(CONST_INIT);
712
- } else {
713
- target.SetValue(NOT_CONST_INIT);
714
- }
715
- }
716
- }
717
- ASSERT(frame_->height() == original_height + 1);
718
- }
719
-
720
-
721
- void CodeGenerator::VisitThrow(Throw* node) {
722
- UNIMPLEMENTED_MIPS();
723
- }
724
-
725
-
726
- void CodeGenerator::VisitProperty(Property* node) {
727
- UNIMPLEMENTED_MIPS();
728
- }
729
-
730
-
731
- void CodeGenerator::VisitCall(Call* node) {
732
- #ifdef DEBUG
733
- int original_height = frame_->height();
734
- #endif
735
- VirtualFrame::SpilledScope spilled_scope;
736
- Comment cmnt(masm_, "[ Call");
737
-
738
- Expression* function = node->expression();
739
- ZoneList<Expression*>* args = node->arguments();
740
-
741
- // Standard function call.
742
- // Check if the function is a variable or a property.
743
- Variable* var = function->AsVariableProxy()->AsVariable();
744
- Property* property = function->AsProperty();
745
-
746
- // ------------------------------------------------------------------------
747
- // Fast-case: Use inline caching.
748
- // ---
749
- // According to ECMA-262, section 11.2.3, page 44, the function to call
750
- // must be resolved after the arguments have been evaluated. The IC code
751
- // automatically handles this by loading the arguments before the function
752
- // is resolved in cache misses (this also holds for megamorphic calls).
753
- // ------------------------------------------------------------------------
754
-
755
- if (var != NULL && var->is_possibly_eval()) {
756
- UNIMPLEMENTED_MIPS();
757
- } else if (var != NULL && !var->is_this() && var->is_global()) {
758
- // ----------------------------------
759
- // JavaScript example: 'foo(1, 2, 3)' // foo is global
760
- // ----------------------------------
761
-
762
- int arg_count = args->length();
763
-
764
- // We need sp to be 8 bytes aligned when calling the stub.
765
- __ SetupAlignedCall(t0, arg_count);
766
-
767
- // Pass the global object as the receiver and let the IC stub
768
- // patch the stack to use the global proxy as 'this' in the
769
- // invoked function.
770
- LoadGlobal();
771
-
772
- // Load the arguments.
773
- for (int i = 0; i < arg_count; i++) {
774
- LoadAndSpill(args->at(i));
775
- }
776
-
777
- // Setup the receiver register and call the IC initialization code.
778
- __ li(a2, Operand(var->name()));
779
- InLoopFlag in_loop = loop_nesting() > 0 ? IN_LOOP : NOT_IN_LOOP;
780
- Handle<Code> stub = ComputeCallInitialize(arg_count, in_loop);
781
- CodeForSourcePosition(node->position());
782
- frame_->CallCodeObject(stub, RelocInfo::CODE_TARGET_CONTEXT,
783
- arg_count + 1);
784
- __ ReturnFromAlignedCall();
785
- __ lw(cp, frame_->Context());
786
- // Remove the function from the stack.
787
- frame_->EmitPush(v0);
788
-
789
- } else if (var != NULL && var->slot() != NULL &&
790
- var->slot()->type() == Slot::LOOKUP) {
791
- UNIMPLEMENTED_MIPS();
792
- } else if (property != NULL) {
793
- UNIMPLEMENTED_MIPS();
794
- } else {
795
- UNIMPLEMENTED_MIPS();
796
- }
797
-
798
- ASSERT(frame_->height() == original_height + 1);
799
- }
800
-
801
-
802
- void CodeGenerator::VisitCallNew(CallNew* node) {
803
- UNIMPLEMENTED_MIPS();
804
- }
805
-
806
-
807
- void CodeGenerator::GenerateClassOf(ZoneList<Expression*>* args) {
808
- UNIMPLEMENTED_MIPS();
809
- }
810
-
811
-
812
- void CodeGenerator::GenerateValueOf(ZoneList<Expression*>* args) {
813
- UNIMPLEMENTED_MIPS();
814
- }
815
-
816
-
817
- void CodeGenerator::GenerateSetValueOf(ZoneList<Expression*>* args) {
818
- UNIMPLEMENTED_MIPS();
819
- }
820
-
821
-
822
- void CodeGenerator::GenerateIsSmi(ZoneList<Expression*>* args) {
823
- UNIMPLEMENTED_MIPS();
824
- }
825
-
826
-
827
- void CodeGenerator::GenerateLog(ZoneList<Expression*>* args) {
828
- UNIMPLEMENTED_MIPS();
829
- }
830
-
831
-
832
- void CodeGenerator::GenerateIsNonNegativeSmi(ZoneList<Expression*>* args) {
833
- UNIMPLEMENTED_MIPS();
834
- }
835
-
836
-
837
- void CodeGenerator::GenerateMathPow(ZoneList<Expression*>* args) {
838
- UNIMPLEMENTED_MIPS();
839
- }
840
-
841
-
842
- void CodeGenerator::GenerateMathCos(ZoneList<Expression*>* args) {
843
- UNIMPLEMENTED_MIPS();
844
- }
845
-
846
-
847
- void CodeGenerator::GenerateMathSin(ZoneList<Expression*>* args) {
848
- UNIMPLEMENTED_MIPS();
849
- }
850
-
851
-
852
- void CodeGenerator::GenerateMathSqrt(ZoneList<Expression*>* args) {
853
- UNIMPLEMENTED_MIPS();
854
- }
855
-
856
-
857
- // This should generate code that performs a charCodeAt() call or returns
858
- // undefined in order to trigger the slow case, Runtime_StringCharCodeAt.
859
- // It is not yet implemented on ARM, so it always goes to the slow case.
860
- void CodeGenerator::GenerateFastCharCodeAt(ZoneList<Expression*>* args) {
861
- UNIMPLEMENTED_MIPS();
862
- }
863
-
864
-
865
- void CodeGenerator::GenerateCharFromCode(ZoneList<Expression*>* args) {
866
- UNIMPLEMENTED_MIPS();
867
- }
868
-
869
-
870
- void CodeGenerator::GenerateIsArray(ZoneList<Expression*>* args) {
871
- UNIMPLEMENTED_MIPS();
872
- }
873
-
874
-
875
- void CodeGenerator::GenerateIsRegExp(ZoneList<Expression*>* args) {
876
- UNIMPLEMENTED_MIPS();
877
- }
878
-
879
-
880
- void CodeGenerator::GenerateIsConstructCall(ZoneList<Expression*>* args) {
881
- UNIMPLEMENTED_MIPS();
882
- }
883
-
884
-
885
- void CodeGenerator::GenerateArgumentsLength(ZoneList<Expression*>* args) {
886
- UNIMPLEMENTED_MIPS();
887
- }
888
-
889
-
890
- void CodeGenerator::GenerateArguments(ZoneList<Expression*>* args) {
891
- UNIMPLEMENTED_MIPS();
892
- }
893
-
894
-
895
- void CodeGenerator::GenerateRandomHeapNumber(ZoneList<Expression*>* args) {
896
- UNIMPLEMENTED_MIPS();
897
- }
898
-
899
-
900
- void CodeGenerator::GenerateObjectEquals(ZoneList<Expression*>* args) {
901
- UNIMPLEMENTED_MIPS();
902
- }
903
-
904
-
905
- void CodeGenerator::GenerateIsObject(ZoneList<Expression*>* args) {
906
- UNIMPLEMENTED_MIPS();
907
- }
908
-
909
-
910
- void CodeGenerator::GenerateIsSpecObject(ZoneList<Expression*>* args) {
911
- UNIMPLEMENTED_MIPS();
912
- }
913
-
914
-
915
- void CodeGenerator::GenerateIsFunction(ZoneList<Expression*>* args) {
916
- UNIMPLEMENTED_MIPS();
917
- }
918
-
919
-
920
- void CodeGenerator::GenerateIsUndetectableObject(ZoneList<Expression*>* args) {
921
- UNIMPLEMENTED_MIPS();
922
- }
923
-
924
-
925
- void CodeGenerator::GenerateStringAdd(ZoneList<Expression*>* args) {
926
- UNIMPLEMENTED_MIPS();
927
- }
928
-
929
-
930
- void CodeGenerator::GenerateSubString(ZoneList<Expression*>* args) {
931
- UNIMPLEMENTED_MIPS();
932
- }
933
-
934
-
935
- void CodeGenerator::GenerateStringCompare(ZoneList<Expression*>* args) {
936
- UNIMPLEMENTED_MIPS();
937
- }
938
-
939
-
940
- void CodeGenerator::GenerateRegExpExec(ZoneList<Expression*>* args) {
941
- UNIMPLEMENTED_MIPS();
942
- }
943
-
944
-
945
- void CodeGenerator::GenerateNumberToString(ZoneList<Expression*>* args) {
946
- UNIMPLEMENTED_MIPS();
947
- }
948
-
949
-
950
- void CodeGenerator::VisitCallRuntime(CallRuntime* node) {
951
- UNIMPLEMENTED_MIPS();
952
- }
953
-
954
-
955
- void CodeGenerator::VisitUnaryOperation(UnaryOperation* node) {
956
- UNIMPLEMENTED_MIPS();
957
- }
958
-
959
-
960
- void CodeGenerator::VisitCountOperation(CountOperation* node) {
961
- UNIMPLEMENTED_MIPS();
962
- }
963
-
964
-
965
- void CodeGenerator::VisitBinaryOperation(BinaryOperation* node) {
966
- UNIMPLEMENTED_MIPS();
967
- }
968
-
969
-
970
- void CodeGenerator::VisitThisFunction(ThisFunction* node) {
971
- UNIMPLEMENTED_MIPS();
972
- }
973
-
974
-
975
- void CodeGenerator::VisitCompareOperation(CompareOperation* node) {
976
- UNIMPLEMENTED_MIPS();
977
- }
978
-
979
-
980
- #ifdef DEBUG
981
- bool CodeGenerator::HasValidEntryRegisters() { return true; }
982
- #endif
983
-
984
-
985
- #undef __
986
- #define __ ACCESS_MASM(masm)
987
-
988
- // -----------------------------------------------------------------------------
989
- // Reference support
990
-
991
- Reference::Reference(CodeGenerator* cgen,
992
- Expression* expression,
993
- bool persist_after_get)
994
- : cgen_(cgen),
995
- expression_(expression),
996
- type_(ILLEGAL),
997
- persist_after_get_(persist_after_get) {
998
- cgen->LoadReference(this);
999
- }
1000
-
1001
-
1002
- Reference::~Reference() {
1003
- ASSERT(is_unloaded() || is_illegal());
1004
- }
1005
-
1006
-
1007
- Handle<String> Reference::GetName() {
1008
- ASSERT(type_ == NAMED);
1009
- Property* property = expression_->AsProperty();
1010
- if (property == NULL) {
1011
- // Global variable reference treated as a named property reference.
1012
- VariableProxy* proxy = expression_->AsVariableProxy();
1013
- ASSERT(proxy->AsVariable() != NULL);
1014
- ASSERT(proxy->AsVariable()->is_global());
1015
- return proxy->name();
1016
- } else {
1017
- Literal* raw_name = property->key()->AsLiteral();
1018
- ASSERT(raw_name != NULL);
1019
- return Handle<String>(String::cast(*raw_name->handle()));
1020
- }
1021
- }
1022
-
1023
-
1024
- void Reference::GetValue() {
1025
- ASSERT(cgen_->HasValidEntryRegisters());
1026
- ASSERT(!is_illegal());
1027
- ASSERT(!cgen_->has_cc());
1028
- Property* property = expression_->AsProperty();
1029
- if (property != NULL) {
1030
- cgen_->CodeForSourcePosition(property->position());
1031
- }
1032
-
1033
- switch (type_) {
1034
- case SLOT: {
1035
- UNIMPLEMENTED_MIPS();
1036
- break;
1037
- }
1038
-
1039
- case NAMED: {
1040
- UNIMPLEMENTED_MIPS();
1041
- break;
1042
- }
1043
-
1044
- case KEYED: {
1045
- UNIMPLEMENTED_MIPS();
1046
- break;
1047
- }
1048
-
1049
- default:
1050
- UNREACHABLE();
1051
- }
1052
- }
1053
-
1054
-
1055
- void Reference::SetValue(InitState init_state) {
1056
- ASSERT(!is_illegal());
1057
- ASSERT(!cgen_->has_cc());
1058
- MacroAssembler* masm = cgen_->masm();
1059
- Property* property = expression_->AsProperty();
1060
- if (property != NULL) {
1061
- cgen_->CodeForSourcePosition(property->position());
1062
- }
1063
-
1064
- switch (type_) {
1065
- case SLOT: {
1066
- Comment cmnt(masm, "[ Store to Slot");
1067
- Slot* slot = expression_->AsVariableProxy()->AsVariable()->slot();
1068
- cgen_->StoreToSlot(slot, init_state);
1069
- cgen_->UnloadReference(this);
1070
- break;
1071
- }
1072
-
1073
- case NAMED: {
1074
- UNIMPLEMENTED_MIPS();
1075
- break;
1076
- }
1077
-
1078
- case KEYED: {
1079
- UNIMPLEMENTED_MIPS();
1080
- break;
1081
- }
1082
-
1083
- default:
1084
- UNREACHABLE();
1085
- }
1086
- }
1087
-
1088
-
1089
- // On entry a0 and a1 are the things to be compared. On exit v0 is 0,
1090
- // positive or negative to indicate the result of the comparison.
1091
- void CompareStub::Generate(MacroAssembler* masm) {
1092
- UNIMPLEMENTED_MIPS();
1093
- __ break_(0x765);
1094
- }
1095
-
1096
-
1097
- Handle<Code> GetBinaryOpStub(int key, BinaryOpIC::TypeInfo type_info) {
1098
- UNIMPLEMENTED_MIPS();
1099
- return Handle<Code>::null();
1100
- }
1101
-
1102
-
1103
- void StackCheckStub::Generate(MacroAssembler* masm) {
1104
- UNIMPLEMENTED_MIPS();
1105
- __ break_(0x790);
1106
- }
1107
-
1108
-
1109
- void CEntryStub::GenerateThrowTOS(MacroAssembler* masm) {
1110
- UNIMPLEMENTED_MIPS();
1111
- __ break_(0x808);
1112
- }
1113
-
1114
-
1115
- void CEntryStub::GenerateThrowUncatchable(MacroAssembler* masm,
1116
- UncatchableExceptionType type) {
1117
- UNIMPLEMENTED_MIPS();
1118
- __ break_(0x815);
1119
- }
1120
-
1121
- void CEntryStub::GenerateCore(MacroAssembler* masm,
1122
- Label* throw_normal_exception,
1123
- Label* throw_termination_exception,
1124
- Label* throw_out_of_memory_exception,
1125
- bool do_gc,
1126
- bool always_allocate) {
1127
- // s0: number of arguments including receiver (C callee-saved)
1128
- // s1: pointer to the first argument (C callee-saved)
1129
- // s2: pointer to builtin function (C callee-saved)
1130
-
1131
- if (do_gc) {
1132
- UNIMPLEMENTED_MIPS();
1133
- }
1134
-
1135
- ExternalReference scope_depth =
1136
- ExternalReference::heap_always_allocate_scope_depth();
1137
- if (always_allocate) {
1138
- UNIMPLEMENTED_MIPS();
1139
- }
1140
-
1141
- // Call C built-in.
1142
- // a0 = argc, a1 = argv
1143
- __ mov(a0, s0);
1144
- __ mov(a1, s1);
1145
-
1146
- __ CallBuiltin(s2);
1147
-
1148
- if (always_allocate) {
1149
- UNIMPLEMENTED_MIPS();
1150
- }
1151
-
1152
- // Check for failure result.
1153
- Label failure_returned;
1154
- ASSERT(((kFailureTag + 1) & kFailureTagMask) == 0);
1155
- __ addiu(a2, v0, 1);
1156
- __ andi(t0, a2, kFailureTagMask);
1157
- __ Branch(eq, &failure_returned, t0, Operand(zero_reg));
1158
-
1159
- // Exit C frame and return.
1160
- // v0:v1: result
1161
- // sp: stack pointer
1162
- // fp: frame pointer
1163
- __ LeaveExitFrame(mode_);
1164
-
1165
- // Check if we should retry or throw exception.
1166
- Label retry;
1167
- __ bind(&failure_returned);
1168
- ASSERT(Failure::RETRY_AFTER_GC == 0);
1169
- __ andi(t0, v0, ((1 << kFailureTypeTagSize) - 1) << kFailureTagSize);
1170
- __ Branch(eq, &retry, t0, Operand(zero_reg));
1171
-
1172
- // Special handling of out of memory exceptions.
1173
- Failure* out_of_memory = Failure::OutOfMemoryException();
1174
- __ Branch(eq, throw_out_of_memory_exception,
1175
- v0, Operand(reinterpret_cast<int32_t>(out_of_memory)));
1176
-
1177
- // Retrieve the pending exception and clear the variable.
1178
- __ LoadExternalReference(t0, ExternalReference::the_hole_value_location());
1179
- __ lw(a3, MemOperand(t0));
1180
- __ LoadExternalReference(t0,
1181
- ExternalReference(Top::k_pending_exception_address));
1182
- __ lw(v0, MemOperand(t0));
1183
- __ sw(a3, MemOperand(t0));
1184
-
1185
- // Special handling of termination exceptions which are uncatchable
1186
- // by javascript code.
1187
- __ Branch(eq, throw_termination_exception,
1188
- v0, Operand(Factory::termination_exception()));
1189
-
1190
- // Handle normal exception.
1191
- __ b(throw_normal_exception);
1192
- __ nop(); // Branch delay slot nop.
1193
-
1194
- __ bind(&retry); // pass last failure (r0) as parameter (r0) when retrying
1195
- }
1196
-
1197
- void CEntryStub::Generate(MacroAssembler* masm) {
1198
- // Called from JavaScript; parameters are on stack as if calling JS function
1199
- // a0: number of arguments including receiver
1200
- // a1: pointer to builtin function
1201
- // fp: frame pointer (restored after C call)
1202
- // sp: stack pointer (restored as callee's sp after C call)
1203
- // cp: current context (C callee-saved)
1204
-
1205
- // NOTE: Invocations of builtins may return failure objects
1206
- // instead of a proper result. The builtin entry handles
1207
- // this by performing a garbage collection and retrying the
1208
- // builtin once.
1209
-
1210
- // Enter the exit frame that transitions from JavaScript to C++.
1211
- __ EnterExitFrame(mode_, s0, s1, s2);
1212
-
1213
- // s0: number of arguments (C callee-saved)
1214
- // s1: pointer to first argument (C callee-saved)
1215
- // s2: pointer to builtin function (C callee-saved)
1216
-
1217
- Label throw_normal_exception;
1218
- Label throw_termination_exception;
1219
- Label throw_out_of_memory_exception;
1220
-
1221
- // Call into the runtime system.
1222
- GenerateCore(masm,
1223
- &throw_normal_exception,
1224
- &throw_termination_exception,
1225
- &throw_out_of_memory_exception,
1226
- false,
1227
- false);
1228
-
1229
- // Do space-specific GC and retry runtime call.
1230
- GenerateCore(masm,
1231
- &throw_normal_exception,
1232
- &throw_termination_exception,
1233
- &throw_out_of_memory_exception,
1234
- true,
1235
- false);
1236
-
1237
- // Do full GC and retry runtime call one final time.
1238
- Failure* failure = Failure::InternalError();
1239
- __ li(v0, Operand(reinterpret_cast<int32_t>(failure)));
1240
- GenerateCore(masm,
1241
- &throw_normal_exception,
1242
- &throw_termination_exception,
1243
- &throw_out_of_memory_exception,
1244
- true,
1245
- true);
1246
-
1247
- __ bind(&throw_out_of_memory_exception);
1248
- GenerateThrowUncatchable(masm, OUT_OF_MEMORY);
1249
-
1250
- __ bind(&throw_termination_exception);
1251
- GenerateThrowUncatchable(masm, TERMINATION);
1252
-
1253
- __ bind(&throw_normal_exception);
1254
- GenerateThrowTOS(masm);
1255
- }
1256
-
1257
- void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) {
1258
- Label invoke, exit;
1259
-
1260
- // Registers:
1261
- // a0: entry address
1262
- // a1: function
1263
- // a2: reveiver
1264
- // a3: argc
1265
- //
1266
- // Stack:
1267
- // 4 args slots
1268
- // args
1269
-
1270
- // Save callee saved registers on the stack.
1271
- __ MultiPush((kCalleeSaved | ra.bit()) & ~sp.bit());
1272
-
1273
- // We build an EntryFrame.
1274
- __ li(t3, Operand(-1)); // Push a bad frame pointer to fail if it is used.
1275
- int marker = is_construct ? StackFrame::ENTRY_CONSTRUCT : StackFrame::ENTRY;
1276
- __ li(t2, Operand(Smi::FromInt(marker)));
1277
- __ li(t1, Operand(Smi::FromInt(marker)));
1278
- __ LoadExternalReference(t0, ExternalReference(Top::k_c_entry_fp_address));
1279
- __ lw(t0, MemOperand(t0));
1280
- __ MultiPush(t0.bit() | t1.bit() | t2.bit() | t3.bit());
1281
-
1282
- // Setup frame pointer for the frame to be pushed.
1283
- __ addiu(fp, sp, -EntryFrameConstants::kCallerFPOffset);
1284
-
1285
- // Load argv in s0 register.
1286
- __ lw(s0, MemOperand(sp, (kNumCalleeSaved + 1) * kPointerSize +
1287
- StandardFrameConstants::kCArgsSlotsSize));
1288
-
1289
- // Registers:
1290
- // a0: entry_address
1291
- // a1: function
1292
- // a2: reveiver_pointer
1293
- // a3: argc
1294
- // s0: argv
1295
- //
1296
- // Stack:
1297
- // caller fp |
1298
- // function slot | entry frame
1299
- // context slot |
1300
- // bad fp (0xff...f) |
1301
- // callee saved registers + ra
1302
- // 4 args slots
1303
- // args
1304
-
1305
- // Call a faked try-block that does the invoke.
1306
- __ bal(&invoke);
1307
- __ nop(); // Branch delay slot nop.
1308
-
1309
- // Caught exception: Store result (exception) in the pending
1310
- // exception field in the JSEnv and return a failure sentinel.
1311
- // Coming in here the fp will be invalid because the PushTryHandler below
1312
- // sets it to 0 to signal the existence of the JSEntry frame.
1313
- __ LoadExternalReference(t0,
1314
- ExternalReference(Top::k_pending_exception_address));
1315
- __ sw(v0, MemOperand(t0)); // We come back from 'invoke'. result is in v0.
1316
- __ li(v0, Operand(reinterpret_cast<int32_t>(Failure::Exception())));
1317
- __ b(&exit);
1318
- __ nop(); // Branch delay slot nop.
1319
-
1320
- // Invoke: Link this frame into the handler chain.
1321
- __ bind(&invoke);
1322
- __ PushTryHandler(IN_JS_ENTRY, JS_ENTRY_HANDLER);
1323
- // If an exception not caught by another handler occurs, this handler
1324
- // returns control to the code after the bal(&invoke) above, which
1325
- // restores all kCalleeSaved registers (including cp and fp) to their
1326
- // saved values before returning a failure to C.
1327
-
1328
- // Clear any pending exceptions.
1329
- __ LoadExternalReference(t0, ExternalReference::the_hole_value_location());
1330
- __ lw(t1, MemOperand(t0));
1331
- __ LoadExternalReference(t0,
1332
- ExternalReference(Top::k_pending_exception_address));
1333
- __ sw(t1, MemOperand(t0));
1334
-
1335
- // Invoke the function by calling through JS entry trampoline builtin.
1336
- // Notice that we cannot store a reference to the trampoline code directly in
1337
- // this stub, because runtime stubs are not traversed when doing GC.
1338
-
1339
- // Registers:
1340
- // a0: entry_address
1341
- // a1: function
1342
- // a2: reveiver_pointer
1343
- // a3: argc
1344
- // s0: argv
1345
- //
1346
- // Stack:
1347
- // handler frame
1348
- // entry frame
1349
- // callee saved registers + ra
1350
- // 4 args slots
1351
- // args
1352
-
1353
- if (is_construct) {
1354
- ExternalReference construct_entry(Builtins::JSConstructEntryTrampoline);
1355
- __ LoadExternalReference(t0, construct_entry);
1356
- } else {
1357
- ExternalReference entry(Builtins::JSEntryTrampoline);
1358
- __ LoadExternalReference(t0, entry);
1359
- }
1360
- __ lw(t9, MemOperand(t0)); // deref address
1361
-
1362
- // Call JSEntryTrampoline.
1363
- __ addiu(t9, t9, Code::kHeaderSize - kHeapObjectTag);
1364
- __ CallBuiltin(t9);
1365
-
1366
- // Unlink this frame from the handler chain. When reading the
1367
- // address of the next handler, there is no need to use the address
1368
- // displacement since the current stack pointer (sp) points directly
1369
- // to the stack handler.
1370
- __ lw(t1, MemOperand(sp, StackHandlerConstants::kNextOffset));
1371
- __ LoadExternalReference(t0, ExternalReference(Top::k_handler_address));
1372
- __ sw(t1, MemOperand(t0));
1373
-
1374
- // This restores sp to its position before PushTryHandler.
1375
- __ addiu(sp, sp, StackHandlerConstants::kSize);
1376
-
1377
- __ bind(&exit); // v0 holds result
1378
- // Restore the top frame descriptors from the stack.
1379
- __ Pop(t1);
1380
- __ LoadExternalReference(t0, ExternalReference(Top::k_c_entry_fp_address));
1381
- __ sw(t1, MemOperand(t0));
1382
-
1383
- // Reset the stack to the callee saved registers.
1384
- __ addiu(sp, sp, -EntryFrameConstants::kCallerFPOffset);
1385
-
1386
- // Restore callee saved registers from the stack.
1387
- __ MultiPop((kCalleeSaved | ra.bit()) & ~sp.bit());
1388
- // Return.
1389
- __ Jump(ra);
1390
- }
1391
-
1392
-
1393
- // This stub performs an instanceof, calling the builtin function if
1394
- // necessary. Uses a1 for the object, a0 for the function that it may
1395
- // be an instance of (these are fetched from the stack).
1396
- void InstanceofStub::Generate(MacroAssembler* masm) {
1397
- UNIMPLEMENTED_MIPS();
1398
- __ break_(0x845);
1399
- }
1400
-
1401
-
1402
- void ArgumentsAccessStub::GenerateReadLength(MacroAssembler* masm) {
1403
- UNIMPLEMENTED_MIPS();
1404
- __ break_(0x851);
1405
- }
1406
-
1407
-
1408
- void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* masm) {
1409
- UNIMPLEMENTED_MIPS();
1410
- __ break_(0x857);
1411
- }
1412
-
1413
-
1414
- void ArgumentsAccessStub::GenerateNewObject(MacroAssembler* masm) {
1415
- UNIMPLEMENTED_MIPS();
1416
- __ break_(0x863);
1417
- }
1418
-
1419
-
1420
- const char* CompareStub::GetName() {
1421
- UNIMPLEMENTED_MIPS();
1422
- return NULL; // UNIMPLEMENTED RETURN
1423
- }
1424
-
1425
-
1426
- int CompareStub::MinorKey() {
1427
- // Encode the two parameters in a unique 16 bit value.
1428
- ASSERT(static_cast<unsigned>(cc_) >> 28 < (1 << 15));
1429
- return (static_cast<unsigned>(cc_) >> 27) | (strict_ ? 1 : 0);
1430
- }
1431
-
1432
-
1433
- #undef __
1434
-
1435
- } } // namespace v8::internal
1436
-
1437
- #endif // V8_TARGET_ARCH_MIPS