therubyracer 0.7.4 → 0.7.5

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 (482) hide show
  1. data/History.txt +11 -0
  2. data/Rakefile +1 -1
  3. data/ext/v8/extconf.rb +0 -18
  4. data/ext/v8/rr.cpp +2 -2
  5. data/ext/v8/upstream/{2.1.10 → 2.3.3}/AUTHORS +1 -0
  6. data/ext/v8/upstream/{2.1.10 → 2.3.3}/ChangeLog +239 -0
  7. data/ext/v8/upstream/{2.1.10 → 2.3.3}/LICENSE +0 -0
  8. data/ext/v8/upstream/{2.1.10 → 2.3.3}/SConstruct +29 -17
  9. data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8-debug.h +61 -3
  10. data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8-profiler.h +182 -5
  11. data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8.h +458 -257
  12. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/SConscript +2 -5
  13. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/accessors.cc +2 -2
  14. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/accessors.h +0 -0
  15. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/allocation.cc +0 -0
  16. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/allocation.h +0 -0
  17. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/api.cc +574 -30
  18. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/api.h +12 -10
  19. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/apinatives.js +0 -0
  20. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/apiutils.h +0 -0
  21. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arguments.h +0 -0
  22. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm-inl.h +38 -15
  23. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm.cc +646 -101
  24. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm.h +174 -15
  25. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/builtins-arm.cc +56 -47
  26. data/ext/v8/upstream/2.3.3/src/arm/codegen-arm-inl.h +48 -0
  27. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/codegen-arm.cc +2957 -1448
  28. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/codegen-arm.h +230 -74
  29. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/constants-arm.cc +25 -1
  30. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/constants-arm.h +16 -1
  31. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/cpu-arm.cc +4 -0
  32. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/debug-arm.cc +76 -6
  33. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/disasm-arm.cc +168 -20
  34. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/fast-codegen-arm.cc +5 -2
  35. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/frames-arm.cc +4 -4
  36. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/frames-arm.h +0 -0
  37. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/full-codegen-arm.cc +1558 -248
  38. data/ext/v8/upstream/2.3.3/src/arm/ic-arm.cc +2258 -0
  39. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/jump-target-arm.cc +55 -103
  40. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/macro-assembler-arm.cc +358 -185
  41. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/macro-assembler-arm.h +136 -41
  42. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/regexp-macro-assembler-arm.cc +26 -5
  43. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/regexp-macro-assembler-arm.h +0 -0
  44. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm-inl.h +0 -0
  45. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm.cc +4 -0
  46. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm.h +0 -0
  47. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/simulator-arm.cc +203 -22
  48. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/simulator-arm.h +7 -0
  49. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/stub-cache-arm.cc +531 -324
  50. data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm-inl.h +59 -0
  51. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/virtual-frame-arm.cc +247 -81
  52. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/virtual-frame-arm.h +99 -83
  53. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/array.js +2 -2
  54. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/assembler.cc +6 -13
  55. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/assembler.h +36 -10
  56. data/ext/v8/upstream/2.3.3/src/ast-inl.h +81 -0
  57. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ast.cc +14 -0
  58. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ast.h +20 -35
  59. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bootstrapper.cc +32 -1
  60. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bootstrapper.h +0 -4
  61. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/builtins.cc +50 -33
  62. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/builtins.h +2 -0
  63. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bytecodes-irregexp.h +0 -0
  64. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cached-powers.h +0 -0
  65. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/char-predicates-inl.h +0 -0
  66. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/char-predicates.h +0 -0
  67. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/checks.cc +0 -0
  68. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/checks.h +8 -6
  69. data/ext/v8/upstream/2.3.3/src/circular-queue-inl.h +53 -0
  70. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/circular-queue.cc +0 -0
  71. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/circular-queue.h +0 -26
  72. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code-stubs.cc +2 -4
  73. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code-stubs.h +1 -0
  74. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code.h +0 -0
  75. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen-inl.h +0 -0
  76. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen.cc +44 -13
  77. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen.h +310 -31
  78. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compilation-cache.cc +28 -0
  79. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compilation-cache.h +3 -0
  80. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compiler.cc +45 -14
  81. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compiler.h +0 -0
  82. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/contexts.cc +11 -11
  83. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/contexts.h +0 -0
  84. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions-inl.h +0 -0
  85. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions.cc +25 -11
  86. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions.h +0 -0
  87. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/counters.cc +0 -0
  88. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/counters.h +0 -0
  89. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler-inl.h +2 -1
  90. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler.cc +68 -24
  91. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler.h +19 -11
  92. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu.h +0 -0
  93. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-debug.cc +0 -0
  94. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-debug.h +0 -0
  95. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-posix.cc +0 -0
  96. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-readline.cc +0 -0
  97. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-windows.cc +0 -0
  98. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.cc +3 -0
  99. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.h +0 -0
  100. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.js +55 -2
  101. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/data-flow.cc +3 -0
  102. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/data-flow.h +0 -0
  103. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/date.js +68 -137
  104. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser-inl.h +0 -0
  105. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser.cc +2 -8
  106. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser.h +0 -0
  107. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-agent.cc +3 -3
  108. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-agent.h +0 -0
  109. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-debugger.js +81 -23
  110. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug.cc +275 -81
  111. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug.h +85 -6
  112. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disasm.h +0 -0
  113. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disassembler.cc +1 -1
  114. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disassembler.h +0 -0
  115. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/diy-fp.cc +0 -0
  116. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/diy-fp.h +0 -0
  117. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/double.h +0 -0
  118. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dtoa-config.c +0 -0
  119. data/ext/v8/upstream/2.3.3/src/dtoa.cc +77 -0
  120. data/ext/v8/upstream/2.3.3/src/dtoa.h +81 -0
  121. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/execution.cc +111 -3
  122. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/execution.h +12 -1
  123. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/factory.cc +25 -3
  124. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/factory.h +16 -9
  125. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-codegen.cc +0 -0
  126. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-codegen.h +0 -0
  127. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-dtoa.cc +2 -9
  128. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-dtoa.h +1 -2
  129. data/ext/v8/upstream/2.3.3/src/fixed-dtoa.cc +405 -0
  130. data/ext/v8/upstream/{2.1.10/src/jump-target-light.cc → 2.3.3/src/fixed-dtoa.h} +22 -53
  131. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flag-definitions.h +14 -6
  132. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flags.cc +5 -9
  133. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flags.h +0 -0
  134. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flow-graph.cc +0 -0
  135. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flow-graph.h +0 -0
  136. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frame-element.cc +0 -0
  137. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frame-element.h +0 -0
  138. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames-inl.h +0 -0
  139. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames.cc +5 -2
  140. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames.h +1 -0
  141. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/full-codegen.cc +387 -20
  142. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/full-codegen.h +102 -5
  143. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/func-name-inferrer.cc +0 -0
  144. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/func-name-inferrer.h +0 -0
  145. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/global-handles.cc +8 -4
  146. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/global-handles.h +0 -0
  147. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/globals.h +44 -7
  148. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles-inl.h +0 -0
  149. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles.cc +19 -0
  150. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles.h +8 -0
  151. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/hashmap.cc +0 -0
  152. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/hashmap.h +0 -0
  153. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-inl.h +56 -14
  154. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-profiler.cc +85 -1
  155. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-profiler.h +45 -1
  156. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap.cc +994 -396
  157. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap.h +220 -65
  158. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32-inl.h +41 -12
  159. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32.cc +94 -24
  160. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32.h +32 -4
  161. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/builtins-ia32.cc +42 -30
  162. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32-inl.h +0 -0
  163. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32.cc +1758 -916
  164. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32.h +67 -74
  165. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/cpu-ia32.cc +4 -0
  166. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/debug-ia32.cc +46 -0
  167. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/disasm-ia32.cc +37 -6
  168. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/fast-codegen-ia32.cc +4 -0
  169. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/fast-codegen-ia32.h +0 -0
  170. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/frames-ia32.cc +4 -0
  171. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/frames-ia32.h +0 -0
  172. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/full-codegen-ia32.cc +1465 -198
  173. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/ic-ia32.cc +688 -367
  174. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/jump-target-ia32.cc +4 -0
  175. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/macro-assembler-ia32.cc +82 -180
  176. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/macro-assembler-ia32.h +41 -25
  177. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/regexp-macro-assembler-ia32.cc +68 -24
  178. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/regexp-macro-assembler-ia32.h +1 -2
  179. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32-inl.h +0 -0
  180. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32.cc +4 -0
  181. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32.h +0 -0
  182. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/simulator-ia32.cc +0 -0
  183. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/simulator-ia32.h +0 -0
  184. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/stub-cache-ia32.cc +649 -302
  185. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/virtual-frame-ia32.cc +23 -1
  186. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/virtual-frame-ia32.h +18 -27
  187. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic-inl.h +30 -3
  188. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic.cc +384 -66
  189. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic.h +65 -24
  190. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/interpreter-irregexp.cc +0 -0
  191. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/interpreter-irregexp.h +0 -0
  192. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/json.js +3 -3
  193. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jsregexp.cc +20 -4
  194. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jsregexp.h +0 -0
  195. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-heavy-inl.h +0 -0
  196. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-heavy.cc +79 -13
  197. data/ext/v8/upstream/{2.1.10/src/jump-target.h → 2.3.3/src/jump-target-heavy.h} +5 -47
  198. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-inl.h +0 -0
  199. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-light-inl.h +16 -2
  200. data/ext/v8/upstream/2.3.3/src/jump-target-light.cc +110 -0
  201. data/ext/v8/upstream/2.3.3/src/jump-target-light.h +192 -0
  202. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target.cc +0 -64
  203. data/ext/v8/upstream/2.3.3/src/jump-target.h +90 -0
  204. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/list-inl.h +0 -0
  205. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/list.h +0 -0
  206. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit-debugger.js +141 -28
  207. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit.cc +19 -7
  208. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit.h +0 -0
  209. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-inl.h +0 -0
  210. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-utils.cc +0 -0
  211. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-utils.h +0 -0
  212. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log.cc +12 -11
  213. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log.h +12 -0
  214. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/macro-assembler.h +0 -16
  215. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/macros.py +21 -0
  216. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mark-compact.cc +120 -109
  217. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mark-compact.h +25 -37
  218. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/math.js +0 -0
  219. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/memory.h +0 -0
  220. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.cc +8 -3
  221. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.h +2 -1
  222. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.js +15 -7
  223. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips-inl.h +0 -0
  224. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips.cc +12 -1
  225. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips.h +4 -1
  226. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/builtins-mips.cc +3 -0
  227. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips-inl.h +0 -0
  228. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips.cc +9 -0
  229. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips.h +1 -0
  230. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/constants-mips.cc +5 -0
  231. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/constants-mips.h +0 -0
  232. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/cpu-mips.cc +4 -0
  233. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/debug-mips.cc +3 -0
  234. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/disasm-mips.cc +3 -0
  235. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/fast-codegen-mips.cc +3 -0
  236. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/frames-mips.cc +3 -0
  237. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/frames-mips.h +0 -0
  238. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/full-codegen-mips.cc +5 -1
  239. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/ic-mips.cc +3 -0
  240. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/jump-target-mips.cc +3 -0
  241. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/macro-assembler-mips.cc +3 -0
  242. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/macro-assembler-mips.h +0 -0
  243. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips-inl.h +0 -0
  244. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips.cc +3 -0
  245. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips.h +0 -0
  246. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/simulator-mips.cc +3 -0
  247. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/simulator-mips.h +0 -0
  248. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/stub-cache-mips.cc +3 -0
  249. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/virtual-frame-mips.cc +3 -0
  250. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/virtual-frame-mips.h +0 -0
  251. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mirror-debugger.js +46 -4
  252. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mksnapshot.cc +0 -0
  253. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/natives.h +0 -0
  254. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects-debug.cc +8 -1
  255. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects-inl.h +235 -62
  256. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects.cc +497 -231
  257. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects.h +355 -149
  258. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/oprofile-agent.cc +0 -0
  259. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/oprofile-agent.h +0 -0
  260. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/parser.cc +31 -6
  261. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/parser.h +1 -1
  262. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-freebsd.cc +9 -6
  263. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-linux.cc +26 -6
  264. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-macos.cc +11 -6
  265. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-nullos.cc +0 -0
  266. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-openbsd.cc +6 -0
  267. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-posix.cc +0 -0
  268. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-solaris.cc +69 -23
  269. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-win32.cc +15 -11
  270. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform.h +10 -6
  271. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/powers-ten.h +0 -0
  272. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/prettyprinter.cc +0 -0
  273. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/prettyprinter.h +0 -0
  274. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/profile-generator-inl.h +26 -2
  275. data/ext/v8/upstream/2.3.3/src/profile-generator.cc +1830 -0
  276. data/ext/v8/upstream/2.3.3/src/profile-generator.h +853 -0
  277. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/property.cc +0 -0
  278. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/property.h +0 -0
  279. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp-inl.h +0 -0
  280. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp.cc +0 -0
  281. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp.h +0 -0
  282. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-tracer.cc +0 -0
  283. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-tracer.h +0 -0
  284. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler.cc +1 -3
  285. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler.h +0 -0
  286. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-stack.cc +0 -0
  287. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-stack.h +0 -0
  288. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp.js +25 -4
  289. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator-inl.h +0 -0
  290. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator.cc +4 -3
  291. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator.h +0 -0
  292. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/rewriter.cc +85 -8
  293. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/rewriter.h +0 -0
  294. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.cc +547 -221
  295. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.h +5 -1
  296. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.js +23 -31
  297. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scanner.cc +12 -6
  298. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scanner.h +60 -53
  299. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopeinfo.cc +156 -168
  300. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopeinfo.h +58 -62
  301. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopes.cc +0 -0
  302. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopes.h +0 -0
  303. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/serialize.cc +320 -242
  304. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/serialize.h +81 -48
  305. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/shell.h +0 -0
  306. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/simulator.h +0 -0
  307. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/smart-pointer.h +0 -0
  308. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot-common.cc +0 -0
  309. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot-empty.cc +0 -0
  310. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot.h +0 -0
  311. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces-inl.h +177 -74
  312. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces.cc +138 -315
  313. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces.h +155 -124
  314. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/splay-tree-inl.h +0 -0
  315. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/splay-tree.h +0 -0
  316. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string-stream.cc +0 -0
  317. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string-stream.h +0 -0
  318. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string.js +113 -119
  319. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/stub-cache.cc +242 -97
  320. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/stub-cache.h +118 -55
  321. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/dtoa/COPYING +0 -0
  322. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/dtoa/dtoa.c +4 -0
  323. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/valgrind/valgrind.h +0 -0
  324. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/token.cc +0 -0
  325. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/token.h +0 -0
  326. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/top.cc +107 -26
  327. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/top.h +9 -4
  328. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/type-info.cc +0 -0
  329. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/type-info.h +2 -2
  330. data/ext/v8/upstream/2.3.3/src/unbound-queue-inl.h +95 -0
  331. data/ext/v8/upstream/2.3.3/src/unbound-queue.h +67 -0
  332. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode-inl.h +0 -0
  333. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode.cc +0 -0
  334. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode.h +0 -0
  335. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/uri.js +0 -0
  336. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/utils.cc +0 -0
  337. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/utils.h +83 -1
  338. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8-counters.cc +0 -0
  339. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8-counters.h +20 -0
  340. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8.cc +5 -1
  341. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8.h +0 -0
  342. data/ext/v8/upstream/2.3.3/src/v8dll-main.cc +39 -0
  343. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8natives.js +210 -33
  344. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8threads.cc +1 -1
  345. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8threads.h +1 -1
  346. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/variables.cc +0 -0
  347. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/variables.h +0 -0
  348. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/version.cc +3 -3
  349. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/version.h +0 -0
  350. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-heavy-inl.h +40 -0
  351. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-heavy.cc +0 -0
  352. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-inl.h +0 -0
  353. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-light-inl.h +106 -5
  354. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-light.cc +4 -1
  355. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame.cc +0 -0
  356. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame.h +0 -0
  357. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state-inl.h +6 -3
  358. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state.cc +1 -1
  359. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state.h +6 -4
  360. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64-inl.h +42 -5
  361. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64.cc +285 -53
  362. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64.h +54 -18
  363. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/builtins-x64.cc +31 -33
  364. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64-inl.h +0 -0
  365. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64.cc +9787 -8722
  366. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64.h +82 -47
  367. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/cpu-x64.cc +4 -0
  368. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/debug-x64.cc +55 -6
  369. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/disasm-x64.cc +42 -19
  370. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/fast-codegen-x64.cc +4 -0
  371. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/frames-x64.cc +4 -0
  372. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/frames-x64.h +4 -0
  373. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/full-codegen-x64.cc +1487 -210
  374. data/ext/v8/upstream/2.3.3/src/x64/ic-x64.cc +1907 -0
  375. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/jump-target-x64.cc +4 -0
  376. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/macro-assembler-x64.cc +366 -338
  377. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/macro-assembler-x64.h +83 -38
  378. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/regexp-macro-assembler-x64.cc +82 -23
  379. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/regexp-macro-assembler-x64.h +1 -2
  380. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64-inl.h +6 -5
  381. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64.cc +4 -0
  382. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64.h +1 -1
  383. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/simulator-x64.cc +0 -0
  384. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/simulator-x64.h +0 -0
  385. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/stub-cache-x64.cc +556 -377
  386. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/virtual-frame-x64.cc +197 -98
  387. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/virtual-frame-x64.h +37 -28
  388. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone-inl.h +0 -0
  389. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone.cc +0 -0
  390. data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone.h +0 -0
  391. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/codemap.js +0 -0
  392. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/consarray.js +0 -0
  393. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/csvparser.js +0 -0
  394. data/ext/v8/upstream/2.3.3/tools/gc-nvp-trace-processor.py +317 -0
  395. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/generate-ten-powers.scm +0 -0
  396. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/gyp/v8.gyp +87 -20
  397. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/js2c.py +19 -15
  398. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/jsmin.py +0 -0
  399. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/linux-tick-processor +0 -0
  400. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/linux-tick-processor.py +0 -0
  401. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/logreader.js +0 -0
  402. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/mac-nm +0 -0
  403. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/mac-tick-processor +0 -0
  404. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/annotate +0 -0
  405. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/common +0 -0
  406. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/dump +0 -0
  407. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/report +0 -0
  408. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/reset +0 -0
  409. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/run +0 -0
  410. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/shutdown +0 -0
  411. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/start +0 -0
  412. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/presubmit.py +0 -0
  413. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/process-heap-prof.py +0 -0
  414. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/profile.js +0 -0
  415. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/profile_view.js +0 -0
  416. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/run-valgrind.py +0 -0
  417. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/splaytree.js +0 -0
  418. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/splaytree.py +0 -0
  419. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/stats-viewer.py +25 -13
  420. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/test.py +0 -0
  421. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor-driver.js +0 -0
  422. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor.js +0 -0
  423. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor.py +0 -0
  424. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/utils.py +0 -0
  425. data/ext/v8/upstream/2.3.3/tools/v8.xcodeproj/project.pbxproj +1855 -0
  426. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/README.txt +0 -0
  427. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/arm.vsprops +0 -0
  428. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/common.vsprops +0 -0
  429. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8.vcproj +0 -0
  430. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8_arm.vcproj +0 -0
  431. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8_x64.vcproj +0 -0
  432. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8js2c.cmd +0 -0
  433. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/debug.vsprops +0 -0
  434. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/ia32.vsprops +0 -0
  435. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/js2c.cmd +0 -0
  436. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/release.vsprops +0 -0
  437. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8.sln +0 -0
  438. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8.vcproj +0 -0
  439. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_arm.sln +0 -0
  440. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_arm.vcproj +0 -0
  441. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base.vcproj +40 -0
  442. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base_arm.vcproj +20 -0
  443. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base_x64.vcproj +16 -0
  444. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest.vcproj +4 -0
  445. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest_arm.vcproj +0 -0
  446. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest_x64.vcproj +0 -0
  447. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_mksnapshot.vcproj +0 -0
  448. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -0
  449. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample.vcproj +0 -0
  450. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample_arm.vcproj +0 -0
  451. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample_x64.vcproj +0 -0
  452. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample.vcproj +0 -0
  453. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -0
  454. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -0
  455. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot.vcproj +0 -0
  456. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
  457. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
  458. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
  459. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_x64.sln +0 -0
  460. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_x64.vcproj +0 -0
  461. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/x64.vsprops +0 -0
  462. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/windows-tick-processor.bat +0 -0
  463. data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/windows-tick-processor.py +0 -0
  464. data/ext/v8/upstream/Makefile +1 -1
  465. data/ext/v8/v8_template.cpp +94 -2
  466. data/ext/v8/v8_try_catch.cpp +2 -2
  467. data/lib/v8.rb +1 -1
  468. data/lib/v8/access.rb +93 -40
  469. data/lib/v8/cli.rb +1 -1
  470. data/lib/v8/function.rb +14 -2
  471. data/spec/redjs/jsapi_spec.rb +231 -42
  472. data/therubyracer.gemspec +3 -3
  473. metadata +463 -453
  474. data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2-inl.h +0 -263
  475. data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2.cc +0 -1878
  476. data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2.h +0 -1036
  477. data/ext/v8/upstream/2.1.10/src/arm/codegen-arm-inl.h +0 -72
  478. data/ext/v8/upstream/2.1.10/src/arm/ic-arm.cc +0 -1833
  479. data/ext/v8/upstream/2.1.10/src/circular-queue-inl.h +0 -101
  480. data/ext/v8/upstream/2.1.10/src/profile-generator.cc +0 -583
  481. data/ext/v8/upstream/2.1.10/src/profile-generator.h +0 -364
  482. data/ext/v8/upstream/2.1.10/src/x64/ic-x64.cc +0 -1621
@@ -58,6 +58,7 @@ SOURCES = {
58
58
  debug.cc
59
59
  disassembler.cc
60
60
  diy-fp.cc
61
+ dtoa.cc
61
62
  execution.cc
62
63
  factory.cc
63
64
  flags.cc
@@ -68,6 +69,7 @@ SOURCES = {
68
69
  func-name-inferrer.cc
69
70
  global-handles.cc
70
71
  fast-dtoa.cc
72
+ fixed-dtoa.cc
71
73
  handles.cc
72
74
  hashmap.cc
73
75
  heap-profiler.cc
@@ -134,13 +136,8 @@ SOURCES = {
134
136
  arm/register-allocator-arm.cc
135
137
  arm/stub-cache-arm.cc
136
138
  arm/virtual-frame-arm.cc
137
- """),
138
- 'armvariant:arm': Split("""
139
139
  arm/assembler-arm.cc
140
140
  """),
141
- 'armvariant:thumb2': Split("""
142
- arm/assembler-thumb2.cc
143
- """),
144
141
  'arch:mips': Split("""
145
142
  fast-codegen.cc
146
143
  mips/assembler-mips.cc
@@ -549,8 +549,8 @@ Object* Accessors::FunctionGetArguments(Object* object, void*) {
549
549
  if (frame->function() != *function) continue;
550
550
 
551
551
  // If there is an arguments variable in the stack, we return that.
552
- int index = ScopeInfo<>::StackSlotIndex(frame->code(),
553
- Heap::arguments_symbol());
552
+ int index = function->shared()->scope_info()->
553
+ StackSlotIndex(Heap::arguments_symbol());
554
554
  if (index >= 0) {
555
555
  Handle<Object> arguments = Handle<Object>(frame->GetExpression(index));
556
556
  if (!arguments->IsTheHole()) return *arguments;
File without changes
File without changes
File without changes
@@ -34,6 +34,7 @@
34
34
  #include "debug.h"
35
35
  #include "execution.h"
36
36
  #include "global-handles.h"
37
+ #include "heap-profiler.h"
37
38
  #include "messages.h"
38
39
  #include "platform.h"
39
40
  #include "profile-generator-inl.h"
@@ -48,7 +49,7 @@
48
49
 
49
50
  #define LOG_API(expr) LOG(ApiEntryCall(expr))
50
51
 
51
- #ifdef ENABLE_HEAP_PROTECTION
52
+ #ifdef ENABLE_VMSTATE_TRACKING
52
53
  #define ENTER_V8 i::VMState __state__(i::OTHER)
53
54
  #define LEAVE_V8 i::VMState __state__(i::EXTERNAL)
54
55
  #else
@@ -58,11 +59,10 @@
58
59
 
59
60
  namespace v8 {
60
61
 
61
-
62
- #define ON_BAILOUT(location, code) \
63
- if (IsDeadCheck(location)) { \
64
- code; \
65
- UNREACHABLE(); \
62
+ #define ON_BAILOUT(location, code) \
63
+ if (IsDeadCheck(location) || v8::V8::IsExecutionTerminating()) { \
64
+ code; \
65
+ UNREACHABLE(); \
66
66
  }
67
67
 
68
68
 
@@ -106,9 +106,6 @@ static i::HandleScopeImplementer thread_local;
106
106
 
107
107
 
108
108
  static FatalErrorCallback exception_behavior = NULL;
109
- int i::Internals::kJSObjectType = JS_OBJECT_TYPE;
110
- int i::Internals::kFirstNonstringType = FIRST_NONSTRING_TYPE;
111
- int i::Internals::kProxyType = PROXY_TYPE;
112
109
 
113
110
  static void DefaultFatalErrorHandler(const char* location,
114
111
  const char* message) {
@@ -776,18 +773,13 @@ void FunctionTemplate::SetCallHandler(InvocationCallback callback,
776
773
  }
777
774
 
778
775
 
779
- void FunctionTemplate::AddInstancePropertyAccessor(
776
+ static i::Handle<i::AccessorInfo> MakeAccessorInfo(
780
777
  v8::Handle<String> name,
781
778
  AccessorGetter getter,
782
779
  AccessorSetter setter,
783
780
  v8::Handle<Value> data,
784
781
  v8::AccessControl settings,
785
782
  v8::PropertyAttribute attributes) {
786
- if (IsDeadCheck("v8::FunctionTemplate::AddInstancePropertyAccessor()")) {
787
- return;
788
- }
789
- ENTER_V8;
790
- HandleScope scope;
791
783
  i::Handle<i::AccessorInfo> obj = i::Factory::NewAccessorInfo();
792
784
  ASSERT(getter != NULL);
793
785
  obj->set_getter(*FromCData(getter));
@@ -799,7 +791,26 @@ void FunctionTemplate::AddInstancePropertyAccessor(
799
791
  if (settings & ALL_CAN_WRITE) obj->set_all_can_write(true);
800
792
  if (settings & PROHIBITS_OVERWRITING) obj->set_prohibits_overwriting(true);
801
793
  obj->set_property_attributes(static_cast<PropertyAttributes>(attributes));
794
+ return obj;
795
+ }
796
+
802
797
 
798
+ void FunctionTemplate::AddInstancePropertyAccessor(
799
+ v8::Handle<String> name,
800
+ AccessorGetter getter,
801
+ AccessorSetter setter,
802
+ v8::Handle<Value> data,
803
+ v8::AccessControl settings,
804
+ v8::PropertyAttribute attributes) {
805
+ if (IsDeadCheck("v8::FunctionTemplate::AddInstancePropertyAccessor()")) {
806
+ return;
807
+ }
808
+ ENTER_V8;
809
+ HandleScope scope;
810
+
811
+ i::Handle<i::AccessorInfo> obj = MakeAccessorInfo(name,
812
+ getter, setter, data,
813
+ settings, attributes);
803
814
  i::Handle<i::Object> list(Utils::OpenHandle(this)->property_accessors());
804
815
  if (list->IsUndefined()) {
805
816
  list = NeanderArray().value();
@@ -1106,8 +1117,25 @@ ScriptData* ScriptData::PreCompile(const char* input, int length) {
1106
1117
  }
1107
1118
 
1108
1119
 
1109
- ScriptData* ScriptData::New(unsigned* data, int length) {
1110
- return new i::ScriptDataImpl(i::Vector<unsigned>(data, length));
1120
+ ScriptData* ScriptData::PreCompile(v8::Handle<String> source) {
1121
+ i::Handle<i::String> str = Utils::OpenHandle(*source);
1122
+ return i::PreParse(str, NULL, NULL);
1123
+ }
1124
+
1125
+
1126
+ ScriptData* ScriptData::New(const char* data, int length) {
1127
+ // Return an empty ScriptData if the length is obviously invalid.
1128
+ if (length % sizeof(unsigned) != 0) {
1129
+ return new i::ScriptDataImpl(i::Vector<unsigned>());
1130
+ }
1131
+
1132
+ // Copy the data to ensure it is properly aligned.
1133
+ int deserialized_data_length = length / sizeof(unsigned);
1134
+ unsigned* deserialized_data = i::NewArray<unsigned>(deserialized_data_length);
1135
+ memcpy(deserialized_data, data, length);
1136
+
1137
+ return new i::ScriptDataImpl(
1138
+ i::Vector<unsigned>(deserialized_data, deserialized_data_length));
1111
1139
  }
1112
1140
 
1113
1141
 
@@ -1410,6 +1438,22 @@ v8::Handle<Value> Message::GetScriptData() const {
1410
1438
  }
1411
1439
 
1412
1440
 
1441
+ v8::Handle<v8::StackTrace> Message::GetStackTrace() const {
1442
+ if (IsDeadCheck("v8::Message::GetStackTrace()")) {
1443
+ return Local<v8::StackTrace>();
1444
+ }
1445
+ ENTER_V8;
1446
+ HandleScope scope;
1447
+ i::Handle<i::JSObject> obj =
1448
+ i::Handle<i::JSObject>::cast(Utils::OpenHandle(this));
1449
+ i::Handle<i::Object> stackFramesObj = GetProperty(obj, "stackFrames");
1450
+ if (!stackFramesObj->IsJSArray()) return v8::Handle<v8::StackTrace>();
1451
+ i::Handle<i::JSArray> stackTrace =
1452
+ i::Handle<i::JSArray>::cast(stackFramesObj);
1453
+ return scope.Close(Utils::StackTraceToLocal(stackTrace));
1454
+ }
1455
+
1456
+
1413
1457
  static i::Handle<i::Object> CallV8HeapFunction(const char* name,
1414
1458
  i::Handle<i::Object> recv,
1415
1459
  int argc,
@@ -1438,7 +1482,7 @@ static i::Handle<i::Object> CallV8HeapFunction(const char* name,
1438
1482
 
1439
1483
 
1440
1484
  int Message::GetLineNumber() const {
1441
- ON_BAILOUT("v8::Message::GetLineNumber()", return -1);
1485
+ ON_BAILOUT("v8::Message::GetLineNumber()", return kNoLineNumberInfo);
1442
1486
  ENTER_V8;
1443
1487
  HandleScope scope;
1444
1488
  EXCEPTION_PREAMBLE();
@@ -1470,7 +1514,7 @@ int Message::GetEndPosition() const {
1470
1514
 
1471
1515
 
1472
1516
  int Message::GetStartColumn() const {
1473
- if (IsDeadCheck("v8::Message::GetStartColumn()")) return 0;
1517
+ if (IsDeadCheck("v8::Message::GetStartColumn()")) return kNoColumnInfo;
1474
1518
  ENTER_V8;
1475
1519
  HandleScope scope;
1476
1520
  i::Handle<i::JSObject> data_obj = Utils::OpenHandle(this);
@@ -1485,7 +1529,7 @@ int Message::GetStartColumn() const {
1485
1529
 
1486
1530
 
1487
1531
  int Message::GetEndColumn() const {
1488
- if (IsDeadCheck("v8::Message::GetEndColumn()")) return 0;
1532
+ if (IsDeadCheck("v8::Message::GetEndColumn()")) return kNoColumnInfo;
1489
1533
  ENTER_V8;
1490
1534
  HandleScope scope;
1491
1535
  i::Handle<i::JSObject> data_obj = Utils::OpenHandle(this);
@@ -1525,6 +1569,120 @@ void Message::PrintCurrentStackTrace(FILE* out) {
1525
1569
  }
1526
1570
 
1527
1571
 
1572
+ // --- S t a c k T r a c e ---
1573
+
1574
+ Local<StackFrame> StackTrace::GetFrame(uint32_t index) const {
1575
+ if (IsDeadCheck("v8::StackTrace::GetFrame()")) return Local<StackFrame>();
1576
+ ENTER_V8;
1577
+ HandleScope scope;
1578
+ i::Handle<i::JSArray> self = Utils::OpenHandle(this);
1579
+ i::Handle<i::JSObject> obj(i::JSObject::cast(self->GetElement(index)));
1580
+ return scope.Close(Utils::StackFrameToLocal(obj));
1581
+ }
1582
+
1583
+
1584
+ int StackTrace::GetFrameCount() const {
1585
+ if (IsDeadCheck("v8::StackTrace::GetFrameCount()")) return -1;
1586
+ ENTER_V8;
1587
+ return i::Smi::cast(Utils::OpenHandle(this)->length())->value();
1588
+ }
1589
+
1590
+
1591
+ Local<Array> StackTrace::AsArray() {
1592
+ if (IsDeadCheck("v8::StackTrace::AsArray()")) Local<Array>();
1593
+ ENTER_V8;
1594
+ return Utils::ToLocal(Utils::OpenHandle(this));
1595
+ }
1596
+
1597
+
1598
+ Local<StackTrace> StackTrace::CurrentStackTrace(int frame_limit,
1599
+ StackTraceOptions options) {
1600
+ if (IsDeadCheck("v8::StackTrace::CurrentStackTrace()")) Local<StackTrace>();
1601
+ ENTER_V8;
1602
+ i::Handle<i::JSArray> stackTrace =
1603
+ i::Top::CaptureCurrentStackTrace(frame_limit, options);
1604
+ return Utils::StackTraceToLocal(stackTrace);
1605
+ }
1606
+
1607
+
1608
+ // --- S t a c k F r a m e ---
1609
+
1610
+ int StackFrame::GetLineNumber() const {
1611
+ if (IsDeadCheck("v8::StackFrame::GetLineNumber()")) {
1612
+ return Message::kNoLineNumberInfo;
1613
+ }
1614
+ ENTER_V8;
1615
+ i::HandleScope scope;
1616
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
1617
+ i::Handle<i::Object> line = GetProperty(self, "lineNumber");
1618
+ if (!line->IsSmi()) {
1619
+ return Message::kNoLineNumberInfo;
1620
+ }
1621
+ return i::Smi::cast(*line)->value();
1622
+ }
1623
+
1624
+
1625
+ int StackFrame::GetColumn() const {
1626
+ if (IsDeadCheck("v8::StackFrame::GetColumn()")) {
1627
+ return Message::kNoColumnInfo;
1628
+ }
1629
+ ENTER_V8;
1630
+ i::HandleScope scope;
1631
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
1632
+ i::Handle<i::Object> column = GetProperty(self, "column");
1633
+ if (!column->IsSmi()) {
1634
+ return Message::kNoColumnInfo;
1635
+ }
1636
+ return i::Smi::cast(*column)->value();
1637
+ }
1638
+
1639
+
1640
+ Local<String> StackFrame::GetScriptName() const {
1641
+ if (IsDeadCheck("v8::StackFrame::GetScriptName()")) return Local<String>();
1642
+ ENTER_V8;
1643
+ HandleScope scope;
1644
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
1645
+ i::Handle<i::Object> name = GetProperty(self, "scriptName");
1646
+ if (!name->IsString()) {
1647
+ return Local<String>();
1648
+ }
1649
+ return scope.Close(Local<String>::Cast(Utils::ToLocal(name)));
1650
+ }
1651
+
1652
+
1653
+ Local<String> StackFrame::GetFunctionName() const {
1654
+ if (IsDeadCheck("v8::StackFrame::GetFunctionName()")) return Local<String>();
1655
+ ENTER_V8;
1656
+ HandleScope scope;
1657
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
1658
+ i::Handle<i::Object> name = GetProperty(self, "functionName");
1659
+ if (!name->IsString()) {
1660
+ return Local<String>();
1661
+ }
1662
+ return scope.Close(Local<String>::Cast(Utils::ToLocal(name)));
1663
+ }
1664
+
1665
+
1666
+ bool StackFrame::IsEval() const {
1667
+ if (IsDeadCheck("v8::StackFrame::IsEval()")) return false;
1668
+ ENTER_V8;
1669
+ i::HandleScope scope;
1670
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
1671
+ i::Handle<i::Object> is_eval = GetProperty(self, "isEval");
1672
+ return is_eval->IsTrue();
1673
+ }
1674
+
1675
+
1676
+ bool StackFrame::IsConstructor() const {
1677
+ if (IsDeadCheck("v8::StackFrame::IsConstructor()")) return false;
1678
+ ENTER_V8;
1679
+ i::HandleScope scope;
1680
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
1681
+ i::Handle<i::Object> is_constructor = GetProperty(self, "isConstructor");
1682
+ return is_constructor->IsTrue();
1683
+ }
1684
+
1685
+
1528
1686
  // --- D a t a ---
1529
1687
 
1530
1688
  bool Value::IsUndefined() const {
@@ -2185,10 +2343,10 @@ Local<String> v8::Object::ObjectProtoToString() {
2185
2343
  int postfix_len = i::StrLength(postfix);
2186
2344
 
2187
2345
  int buf_len = prefix_len + str_len + postfix_len;
2188
- char* buf = i::NewArray<char>(buf_len);
2346
+ i::ScopedVector<char> buf(buf_len);
2189
2347
 
2190
2348
  // Write prefix.
2191
- char* ptr = buf;
2349
+ char* ptr = buf.start();
2192
2350
  memcpy(ptr, prefix, prefix_len * v8::internal::kCharSize);
2193
2351
  ptr += prefix_len;
2194
2352
 
@@ -2200,8 +2358,7 @@ Local<String> v8::Object::ObjectProtoToString() {
2200
2358
  memcpy(ptr, postfix, postfix_len * v8::internal::kCharSize);
2201
2359
 
2202
2360
  // Copy the buffer into a heap-allocated string and return it.
2203
- Local<String> result = v8::String::New(buf, buf_len);
2204
- i::DeleteArray(buf);
2361
+ Local<String> result = v8::String::New(buf.start(), buf_len);
2205
2362
  return result;
2206
2363
  }
2207
2364
  }
@@ -2243,6 +2400,23 @@ bool v8::Object::Has(uint32_t index) {
2243
2400
  }
2244
2401
 
2245
2402
 
2403
+ bool Object::SetAccessor(Handle<String> name,
2404
+ AccessorGetter getter,
2405
+ AccessorSetter setter,
2406
+ v8::Handle<Value> data,
2407
+ AccessControl settings,
2408
+ PropertyAttribute attributes) {
2409
+ ON_BAILOUT("v8::Object::SetAccessor()", return false);
2410
+ ENTER_V8;
2411
+ HandleScope scope;
2412
+ i::Handle<i::AccessorInfo> info = MakeAccessorInfo(name,
2413
+ getter, setter, data,
2414
+ settings, attributes);
2415
+ i::Handle<i::Object> result = i::SetAccessor(Utils::OpenHandle(this), info);
2416
+ return !result.is_null() && !result->IsUndefined();
2417
+ }
2418
+
2419
+
2246
2420
  bool v8::Object::HasRealNamedProperty(Handle<String> key) {
2247
2421
  ON_BAILOUT("v8::Object::HasRealNamedProperty()", return false);
2248
2422
  return Utils::OpenHandle(this)->HasRealNamedProperty(
@@ -2450,10 +2624,41 @@ void v8::Object::SetIndexedPropertiesToPixelData(uint8_t* data, int length) {
2450
2624
  return;
2451
2625
  }
2452
2626
  i::Handle<i::PixelArray> pixels = i::Factory::NewPixelArray(length, data);
2627
+ self->set_map(
2628
+ *i::Factory::GetSlowElementsMap(i::Handle<i::Map>(self->map())));
2453
2629
  self->set_elements(*pixels);
2454
2630
  }
2455
2631
 
2456
2632
 
2633
+ bool v8::Object::HasIndexedPropertiesInPixelData() {
2634
+ ON_BAILOUT("v8::HasIndexedPropertiesInPixelData()", return false);
2635
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
2636
+ return self->HasPixelElements();
2637
+ }
2638
+
2639
+
2640
+ uint8_t* v8::Object::GetIndexedPropertiesPixelData() {
2641
+ ON_BAILOUT("v8::GetIndexedPropertiesPixelData()", return NULL);
2642
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
2643
+ if (self->HasPixelElements()) {
2644
+ return i::PixelArray::cast(self->elements())->external_pointer();
2645
+ } else {
2646
+ return NULL;
2647
+ }
2648
+ }
2649
+
2650
+
2651
+ int v8::Object::GetIndexedPropertiesPixelDataLength() {
2652
+ ON_BAILOUT("v8::GetIndexedPropertiesPixelDataLength()", return -1);
2653
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
2654
+ if (self->HasPixelElements()) {
2655
+ return i::PixelArray::cast(self->elements())->length();
2656
+ } else {
2657
+ return -1;
2658
+ }
2659
+ }
2660
+
2661
+
2457
2662
  void v8::Object::SetIndexedPropertiesToExternalArrayData(
2458
2663
  void* data,
2459
2664
  ExternalArrayType array_type,
@@ -2474,10 +2679,66 @@ void v8::Object::SetIndexedPropertiesToExternalArrayData(
2474
2679
  }
2475
2680
  i::Handle<i::ExternalArray> array =
2476
2681
  i::Factory::NewExternalArray(length, array_type, data);
2682
+ self->set_map(
2683
+ *i::Factory::GetSlowElementsMap(i::Handle<i::Map>(self->map())));
2477
2684
  self->set_elements(*array);
2478
2685
  }
2479
2686
 
2480
2687
 
2688
+ bool v8::Object::HasIndexedPropertiesInExternalArrayData() {
2689
+ ON_BAILOUT("v8::HasIndexedPropertiesInExternalArrayData()", return false);
2690
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
2691
+ return self->HasExternalArrayElements();
2692
+ }
2693
+
2694
+
2695
+ void* v8::Object::GetIndexedPropertiesExternalArrayData() {
2696
+ ON_BAILOUT("v8::GetIndexedPropertiesExternalArrayData()", return NULL);
2697
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
2698
+ if (self->HasExternalArrayElements()) {
2699
+ return i::ExternalArray::cast(self->elements())->external_pointer();
2700
+ } else {
2701
+ return NULL;
2702
+ }
2703
+ }
2704
+
2705
+
2706
+ ExternalArrayType v8::Object::GetIndexedPropertiesExternalArrayDataType() {
2707
+ ON_BAILOUT("v8::GetIndexedPropertiesExternalArrayDataType()",
2708
+ return static_cast<ExternalArrayType>(-1));
2709
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
2710
+ switch (self->elements()->map()->instance_type()) {
2711
+ case i::EXTERNAL_BYTE_ARRAY_TYPE:
2712
+ return kExternalByteArray;
2713
+ case i::EXTERNAL_UNSIGNED_BYTE_ARRAY_TYPE:
2714
+ return kExternalUnsignedByteArray;
2715
+ case i::EXTERNAL_SHORT_ARRAY_TYPE:
2716
+ return kExternalShortArray;
2717
+ case i::EXTERNAL_UNSIGNED_SHORT_ARRAY_TYPE:
2718
+ return kExternalUnsignedShortArray;
2719
+ case i::EXTERNAL_INT_ARRAY_TYPE:
2720
+ return kExternalIntArray;
2721
+ case i::EXTERNAL_UNSIGNED_INT_ARRAY_TYPE:
2722
+ return kExternalUnsignedIntArray;
2723
+ case i::EXTERNAL_FLOAT_ARRAY_TYPE:
2724
+ return kExternalFloatArray;
2725
+ default:
2726
+ return static_cast<ExternalArrayType>(-1);
2727
+ }
2728
+ }
2729
+
2730
+
2731
+ int v8::Object::GetIndexedPropertiesExternalArrayDataLength() {
2732
+ ON_BAILOUT("v8::GetIndexedPropertiesExternalArrayDataLength()", return 0);
2733
+ i::Handle<i::JSObject> self = Utils::OpenHandle(this);
2734
+ if (self->HasExternalArrayElements()) {
2735
+ return i::ExternalArray::cast(self->elements())->length();
2736
+ } else {
2737
+ return -1;
2738
+ }
2739
+ }
2740
+
2741
+
2481
2742
  Local<v8::Object> Function::NewInstance() const {
2482
2743
  return NewInstance(0, NULL);
2483
2744
  }
@@ -3539,6 +3800,17 @@ void V8::RemoveMessageListeners(MessageCallback that) {
3539
3800
  }
3540
3801
 
3541
3802
 
3803
+ void V8::SetCaptureStackTraceForUncaughtExceptions(
3804
+ bool capture,
3805
+ int frame_limit,
3806
+ StackTrace::StackTraceOptions options) {
3807
+ i::Top::SetCaptureStackTraceForUncaughtExceptions(
3808
+ capture,
3809
+ frame_limit,
3810
+ options);
3811
+ }
3812
+
3813
+
3542
3814
  void V8::SetCounterFunction(CounterLookupCallback callback) {
3543
3815
  if (IsDeadCheck("v8::V8::SetCounterFunction()")) return;
3544
3816
  i::StatsTable::SetCounterFunction(callback);
@@ -3881,10 +4153,40 @@ Local<Value> Exception::Error(v8::Handle<v8::String> raw_message) {
3881
4153
  // --- D e b u g S u p p o r t ---
3882
4154
 
3883
4155
  #ifdef ENABLE_DEBUGGER_SUPPORT
4156
+
4157
+ static v8::Debug::EventCallback event_callback = NULL;
4158
+
4159
+ static void EventCallbackWrapper(const v8::Debug::EventDetails& event_details) {
4160
+ if (event_callback) {
4161
+ event_callback(event_details.GetEvent(),
4162
+ event_details.GetExecutionState(),
4163
+ event_details.GetEventData(),
4164
+ event_details.GetCallbackData());
4165
+ }
4166
+ }
4167
+
4168
+
3884
4169
  bool Debug::SetDebugEventListener(EventCallback that, Handle<Value> data) {
3885
4170
  EnsureInitialized("v8::Debug::SetDebugEventListener()");
3886
4171
  ON_BAILOUT("v8::Debug::SetDebugEventListener()", return false);
3887
4172
  ENTER_V8;
4173
+
4174
+ event_callback = that;
4175
+
4176
+ HandleScope scope;
4177
+ i::Handle<i::Object> proxy = i::Factory::undefined_value();
4178
+ if (that != NULL) {
4179
+ proxy = i::Factory::NewProxy(FUNCTION_ADDR(EventCallbackWrapper));
4180
+ }
4181
+ i::Debugger::SetEventListener(proxy, Utils::OpenHandle(*data));
4182
+ return true;
4183
+ }
4184
+
4185
+
4186
+ bool Debug::SetDebugEventListener2(EventCallback2 that, Handle<Value> data) {
4187
+ EnsureInitialized("v8::Debug::SetDebugEventListener2()");
4188
+ ON_BAILOUT("v8::Debug::SetDebugEventListener2()", return false);
4189
+ ENTER_V8;
3888
4190
  HandleScope scope;
3889
4191
  i::Handle<i::Object> proxy = i::Factory::undefined_value();
3890
4192
  if (that != NULL) {
@@ -3911,6 +4213,12 @@ void Debug::DebugBreak() {
3911
4213
  }
3912
4214
 
3913
4215
 
4216
+ void Debug::DebugBreakForCommand(ClientData* data) {
4217
+ if (!i::V8::IsRunning()) return;
4218
+ i::Debugger::EnqueueDebugCommand(data);
4219
+ }
4220
+
4221
+
3914
4222
  static v8::Debug::MessageHandler message_handler = NULL;
3915
4223
 
3916
4224
  static void MessageHandlerWrapper(const v8::Debug::Message& message) {
@@ -4139,15 +4447,23 @@ int CpuProfiler::GetProfilesCount() {
4139
4447
  }
4140
4448
 
4141
4449
 
4142
- const CpuProfile* CpuProfiler::GetProfile(int index) {
4450
+ const CpuProfile* CpuProfiler::GetProfile(int index,
4451
+ Handle<Value> security_token) {
4143
4452
  IsDeadCheck("v8::CpuProfiler::GetProfile");
4144
- return reinterpret_cast<const CpuProfile*>(i::CpuProfiler::GetProfile(index));
4453
+ return reinterpret_cast<const CpuProfile*>(
4454
+ i::CpuProfiler::GetProfile(
4455
+ security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token),
4456
+ index));
4145
4457
  }
4146
4458
 
4147
4459
 
4148
- const CpuProfile* CpuProfiler::FindProfile(unsigned uid) {
4460
+ const CpuProfile* CpuProfiler::FindProfile(unsigned uid,
4461
+ Handle<Value> security_token) {
4149
4462
  IsDeadCheck("v8::CpuProfiler::FindProfile");
4150
- return reinterpret_cast<const CpuProfile*>(i::CpuProfiler::FindProfile(uid));
4463
+ return reinterpret_cast<const CpuProfile*>(
4464
+ i::CpuProfiler::FindProfile(
4465
+ security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token),
4466
+ uid));
4151
4467
  }
4152
4468
 
4153
4469
 
@@ -4157,10 +4473,238 @@ void CpuProfiler::StartProfiling(Handle<String> title) {
4157
4473
  }
4158
4474
 
4159
4475
 
4160
- const CpuProfile* CpuProfiler::StopProfiling(Handle<String> title) {
4476
+ const CpuProfile* CpuProfiler::StopProfiling(Handle<String> title,
4477
+ Handle<Value> security_token) {
4161
4478
  IsDeadCheck("v8::CpuProfiler::StopProfiling");
4162
4479
  return reinterpret_cast<const CpuProfile*>(
4163
- i::CpuProfiler::StopProfiling(*Utils::OpenHandle(*title)));
4480
+ i::CpuProfiler::StopProfiling(
4481
+ security_token.IsEmpty() ? NULL : *Utils::OpenHandle(*security_token),
4482
+ *Utils::OpenHandle(*title)));
4483
+ }
4484
+
4485
+
4486
+ HeapGraphEdge::Type HeapGraphEdge::GetType() const {
4487
+ IsDeadCheck("v8::HeapGraphEdge::GetType");
4488
+ return static_cast<HeapGraphEdge::Type>(
4489
+ reinterpret_cast<const i::HeapGraphEdge*>(this)->type());
4490
+ }
4491
+
4492
+
4493
+ Handle<Value> HeapGraphEdge::GetName() const {
4494
+ IsDeadCheck("v8::HeapGraphEdge::GetName");
4495
+ const i::HeapGraphEdge* edge =
4496
+ reinterpret_cast<const i::HeapGraphEdge*>(this);
4497
+ switch (edge->type()) {
4498
+ case i::HeapGraphEdge::CONTEXT_VARIABLE:
4499
+ case i::HeapGraphEdge::INTERNAL:
4500
+ case i::HeapGraphEdge::PROPERTY:
4501
+ return Handle<String>(ToApi<String>(i::Factory::LookupAsciiSymbol(
4502
+ edge->name())));
4503
+ case i::HeapGraphEdge::ELEMENT:
4504
+ return Handle<Number>(ToApi<Number>(i::Factory::NewNumberFromInt(
4505
+ edge->index())));
4506
+ default: UNREACHABLE();
4507
+ }
4508
+ return ImplementationUtilities::Undefined();
4509
+ }
4510
+
4511
+
4512
+ const HeapGraphNode* HeapGraphEdge::GetFromNode() const {
4513
+ IsDeadCheck("v8::HeapGraphEdge::GetFromNode");
4514
+ const i::HeapEntry* from =
4515
+ reinterpret_cast<const i::HeapGraphEdge*>(this)->from();
4516
+ return reinterpret_cast<const HeapGraphNode*>(from);
4517
+ }
4518
+
4519
+
4520
+ const HeapGraphNode* HeapGraphEdge::GetToNode() const {
4521
+ IsDeadCheck("v8::HeapGraphEdge::GetToNode");
4522
+ const i::HeapEntry* to =
4523
+ reinterpret_cast<const i::HeapGraphEdge*>(this)->to();
4524
+ return reinterpret_cast<const HeapGraphNode*>(to);
4525
+ }
4526
+
4527
+
4528
+ int HeapGraphPath::GetEdgesCount() const {
4529
+ return reinterpret_cast<const i::HeapGraphPath*>(this)->path()->length();
4530
+ }
4531
+
4532
+
4533
+ const HeapGraphEdge* HeapGraphPath::GetEdge(int index) const {
4534
+ return reinterpret_cast<const HeapGraphEdge*>(
4535
+ reinterpret_cast<const i::HeapGraphPath*>(this)->path()->at(index));
4536
+ }
4537
+
4538
+
4539
+ const HeapGraphNode* HeapGraphPath::GetFromNode() const {
4540
+ return GetEdgesCount() > 0 ? GetEdge(0)->GetFromNode() : NULL;
4541
+ }
4542
+
4543
+
4544
+ const HeapGraphNode* HeapGraphPath::GetToNode() const {
4545
+ const int count = GetEdgesCount();
4546
+ return count > 0 ? GetEdge(count - 1)->GetToNode() : NULL;
4547
+ }
4548
+
4549
+
4550
+ HeapGraphNode::Type HeapGraphNode::GetType() const {
4551
+ IsDeadCheck("v8::HeapGraphNode::GetType");
4552
+ return static_cast<HeapGraphNode::Type>(
4553
+ reinterpret_cast<const i::HeapEntry*>(this)->type());
4554
+ }
4555
+
4556
+
4557
+ Handle<String> HeapGraphNode::GetName() const {
4558
+ IsDeadCheck("v8::HeapGraphNode::GetName");
4559
+ return Handle<String>(ToApi<String>(i::Factory::LookupAsciiSymbol(
4560
+ reinterpret_cast<const i::HeapEntry*>(this)->name())));
4561
+ }
4562
+
4563
+
4564
+ uint64_t HeapGraphNode::GetId() const {
4565
+ IsDeadCheck("v8::HeapGraphNode::GetId");
4566
+ return reinterpret_cast<const i::HeapEntry*>(this)->id();
4567
+ }
4568
+
4569
+
4570
+ int HeapGraphNode::GetSelfSize() const {
4571
+ IsDeadCheck("v8::HeapGraphNode::GetSelfSize");
4572
+ return reinterpret_cast<const i::HeapEntry*>(this)->self_size();
4573
+ }
4574
+
4575
+
4576
+ int HeapGraphNode::GetTotalSize() const {
4577
+ IsDeadCheck("v8::HeapSnapshot::GetHead");
4578
+ return const_cast<i::HeapEntry*>(
4579
+ reinterpret_cast<const i::HeapEntry*>(this))->TotalSize();
4580
+ }
4581
+
4582
+
4583
+ int HeapGraphNode::GetPrivateSize() const {
4584
+ IsDeadCheck("v8::HeapSnapshot::GetPrivateSize");
4585
+ return const_cast<i::HeapEntry*>(
4586
+ reinterpret_cast<const i::HeapEntry*>(this))->NonSharedTotalSize();
4587
+ }
4588
+
4589
+
4590
+ int HeapGraphNode::GetChildrenCount() const {
4591
+ IsDeadCheck("v8::HeapSnapshot::GetChildrenCount");
4592
+ return reinterpret_cast<const i::HeapEntry*>(this)->children()->length();
4593
+ }
4594
+
4595
+
4596
+ const HeapGraphEdge* HeapGraphNode::GetChild(int index) const {
4597
+ IsDeadCheck("v8::HeapSnapshot::GetChild");
4598
+ return reinterpret_cast<const HeapGraphEdge*>(
4599
+ reinterpret_cast<const i::HeapEntry*>(this)->children()->at(index));
4600
+ }
4601
+
4602
+
4603
+ int HeapGraphNode::GetRetainersCount() const {
4604
+ IsDeadCheck("v8::HeapSnapshot::GetRetainersCount");
4605
+ return reinterpret_cast<const i::HeapEntry*>(this)->retainers()->length();
4606
+ }
4607
+
4608
+
4609
+ const HeapGraphEdge* HeapGraphNode::GetRetainer(int index) const {
4610
+ IsDeadCheck("v8::HeapSnapshot::GetRetainer");
4611
+ return reinterpret_cast<const HeapGraphEdge*>(
4612
+ reinterpret_cast<const i::HeapEntry*>(this)->retainers()->at(index));
4613
+ }
4614
+
4615
+
4616
+ int HeapGraphNode::GetRetainingPathsCount() const {
4617
+ IsDeadCheck("v8::HeapSnapshot::GetRetainingPathsCount");
4618
+ return const_cast<i::HeapEntry*>(
4619
+ reinterpret_cast<const i::HeapEntry*>(
4620
+ this))->GetRetainingPaths()->length();
4621
+ }
4622
+
4623
+
4624
+ const HeapGraphPath* HeapGraphNode::GetRetainingPath(int index) const {
4625
+ IsDeadCheck("v8::HeapSnapshot::GetRetainingPath");
4626
+ return reinterpret_cast<const HeapGraphPath*>(
4627
+ const_cast<i::HeapEntry*>(
4628
+ reinterpret_cast<const i::HeapEntry*>(
4629
+ this))->GetRetainingPaths()->at(index));
4630
+ }
4631
+
4632
+
4633
+ const HeapGraphNode* HeapSnapshotsDiff::GetAdditionsRoot() const {
4634
+ IsDeadCheck("v8::HeapSnapshotsDiff::GetAdditionsRoot");
4635
+ const i::HeapSnapshotsDiff* diff =
4636
+ reinterpret_cast<const i::HeapSnapshotsDiff*>(this);
4637
+ return reinterpret_cast<const HeapGraphNode*>(diff->additions_root());
4638
+ }
4639
+
4640
+
4641
+ const HeapGraphNode* HeapSnapshotsDiff::GetDeletionsRoot() const {
4642
+ IsDeadCheck("v8::HeapSnapshotsDiff::GetDeletionsRoot");
4643
+ const i::HeapSnapshotsDiff* diff =
4644
+ reinterpret_cast<const i::HeapSnapshotsDiff*>(this);
4645
+ return reinterpret_cast<const HeapGraphNode*>(diff->deletions_root());
4646
+ }
4647
+
4648
+
4649
+ unsigned HeapSnapshot::GetUid() const {
4650
+ IsDeadCheck("v8::HeapSnapshot::GetUid");
4651
+ return reinterpret_cast<const i::HeapSnapshot*>(this)->uid();
4652
+ }
4653
+
4654
+
4655
+ Handle<String> HeapSnapshot::GetTitle() const {
4656
+ IsDeadCheck("v8::HeapSnapshot::GetTitle");
4657
+ const i::HeapSnapshot* snapshot =
4658
+ reinterpret_cast<const i::HeapSnapshot*>(this);
4659
+ return Handle<String>(ToApi<String>(i::Factory::LookupAsciiSymbol(
4660
+ snapshot->title())));
4661
+ }
4662
+
4663
+
4664
+ const HeapGraphNode* HeapSnapshot::GetRoot() const {
4665
+ IsDeadCheck("v8::HeapSnapshot::GetHead");
4666
+ const i::HeapSnapshot* snapshot =
4667
+ reinterpret_cast<const i::HeapSnapshot*>(this);
4668
+ return reinterpret_cast<const HeapGraphNode*>(snapshot->const_root());
4669
+ }
4670
+
4671
+
4672
+ const HeapSnapshotsDiff* HeapSnapshot::CompareWith(
4673
+ const HeapSnapshot* snapshot) const {
4674
+ IsDeadCheck("v8::HeapSnapshot::CompareWith");
4675
+ i::HeapSnapshot* snapshot1 = const_cast<i::HeapSnapshot*>(
4676
+ reinterpret_cast<const i::HeapSnapshot*>(this));
4677
+ i::HeapSnapshot* snapshot2 = const_cast<i::HeapSnapshot*>(
4678
+ reinterpret_cast<const i::HeapSnapshot*>(snapshot));
4679
+ return reinterpret_cast<const HeapSnapshotsDiff*>(
4680
+ snapshot1->CompareWith(snapshot2));
4681
+ }
4682
+
4683
+
4684
+ int HeapProfiler::GetSnapshotsCount() {
4685
+ IsDeadCheck("v8::HeapProfiler::GetSnapshotsCount");
4686
+ return i::HeapProfiler::GetSnapshotsCount();
4687
+ }
4688
+
4689
+
4690
+ const HeapSnapshot* HeapProfiler::GetSnapshot(int index) {
4691
+ IsDeadCheck("v8::HeapProfiler::GetSnapshot");
4692
+ return reinterpret_cast<const HeapSnapshot*>(
4693
+ i::HeapProfiler::GetSnapshot(index));
4694
+ }
4695
+
4696
+
4697
+ const HeapSnapshot* HeapProfiler::FindSnapshot(unsigned uid) {
4698
+ IsDeadCheck("v8::HeapProfiler::FindSnapshot");
4699
+ return reinterpret_cast<const HeapSnapshot*>(
4700
+ i::HeapProfiler::FindSnapshot(uid));
4701
+ }
4702
+
4703
+
4704
+ const HeapSnapshot* HeapProfiler::TakeSnapshot(Handle<String> title) {
4705
+ IsDeadCheck("v8::HeapProfiler::TakeSnapshot");
4706
+ return reinterpret_cast<const HeapSnapshot*>(
4707
+ i::HeapProfiler::TakeSnapshot(*Utils::OpenHandle(*title)));
4164
4708
  }
4165
4709
 
4166
4710
  #endif // ENABLE_LOGGING_AND_PROFILING