therubyracer 0.6.3 → 0.7.0.pre

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 (520) hide show
  1. data/Rakefile +10 -9
  2. data/ext/v8/callbacks.cpp +15 -8
  3. data/ext/v8/converters.cpp +7 -8
  4. data/ext/v8/converters.h +0 -2
  5. data/ext/v8/extconf.rb +2 -0
  6. data/ext/v8/rr.cpp +169 -0
  7. data/ext/v8/rr.h +34 -0
  8. data/ext/v8/upstream/{2.0.6 → 2.1.10}/AUTHORS +8 -1
  9. data/ext/v8/upstream/{2.0.6 → 2.1.10}/ChangeLog +198 -0
  10. data/ext/v8/upstream/{2.0.6 → 2.1.10}/LICENSE +0 -0
  11. data/ext/v8/upstream/{2.0.6 → 2.1.10}/SConstruct +152 -38
  12. data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8-debug.h +52 -4
  13. data/ext/v8/upstream/2.1.10/include/v8-profiler.h +176 -0
  14. data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8.h +227 -48
  15. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/SConscript +60 -10
  16. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.cc +5 -39
  17. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.h +0 -0
  18. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.cc +0 -0
  19. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.h +0 -0
  20. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.cc +477 -57
  21. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.h +8 -4
  22. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apinatives.js +1 -1
  23. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apiutils.h +0 -0
  24. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arguments.h +5 -6
  25. data/ext/v8/upstream/{2.0.6/src/arm/assembler-thumb2-inl.h → 2.1.10/src/arm/assembler-arm-inl.h} +42 -27
  26. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.cc +430 -216
  27. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.h +199 -110
  28. data/ext/v8/upstream/{2.0.6/src/arm/assembler-arm-inl.h → 2.1.10/src/arm/assembler-thumb2-inl.h} +4 -18
  29. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.cc +142 -85
  30. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.h +18 -9
  31. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/builtins-arm.cc +127 -87
  32. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm-inl.h +3 -5
  33. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm.cc +4634 -1427
  34. data/ext/v8/upstream/2.1.10/src/arm/codegen-arm.h +946 -0
  35. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.cc +21 -3
  36. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.h +39 -13
  37. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/cpu-arm.cc +9 -3
  38. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/debug-arm.cc +34 -8
  39. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/disasm-arm.cc +262 -117
  40. data/ext/v8/upstream/2.1.10/src/arm/fast-codegen-arm.cc +238 -0
  41. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.cc +0 -0
  42. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.h +0 -0
  43. data/ext/v8/upstream/{2.0.6/src/arm/fast-codegen-arm.cc → 2.1.10/src/arm/full-codegen-arm.cc} +453 -283
  44. data/ext/v8/upstream/2.1.10/src/arm/ic-arm.cc +1833 -0
  45. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/jump-target-arm.cc +3 -29
  46. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.cc +564 -104
  47. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.h +255 -46
  48. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.cc +78 -104
  49. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.h +6 -22
  50. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm-inl.h +0 -3
  51. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.cc +0 -0
  52. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.h +2 -1
  53. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.cc +557 -180
  54. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.h +52 -4
  55. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/stub-cache-arm.cc +904 -240
  56. data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.cc +668 -0
  57. data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.h +503 -0
  58. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/array.js +82 -109
  59. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.cc +49 -13
  60. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.h +27 -5
  61. data/ext/v8/upstream/2.1.10/src/ast.cc +1138 -0
  62. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ast.h +354 -53
  63. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.cc +609 -501
  64. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.h +27 -8
  65. data/ext/v8/upstream/2.1.10/src/builtins.cc +1512 -0
  66. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/builtins.h +41 -25
  67. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bytecodes-irregexp.h +0 -0
  68. data/ext/v8/upstream/2.1.10/src/cached-powers.h +119 -0
  69. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates-inl.h +0 -0
  70. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates.h +0 -0
  71. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.cc +0 -0
  72. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.h +25 -1
  73. data/ext/v8/upstream/2.1.10/src/circular-queue-inl.h +101 -0
  74. data/ext/v8/upstream/2.1.10/src/circular-queue.cc +121 -0
  75. data/ext/v8/upstream/2.1.10/src/circular-queue.h +129 -0
  76. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.cc +23 -8
  77. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.h +16 -4
  78. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code.h +0 -0
  79. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen-inl.h +6 -34
  80. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.cc +73 -92
  81. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.h +164 -68
  82. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.cc +117 -73
  83. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.h +18 -17
  84. data/ext/v8/upstream/2.1.10/src/compiler.cc +623 -0
  85. data/ext/v8/upstream/2.1.10/src/compiler.h +299 -0
  86. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.cc +0 -0
  87. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.h +8 -11
  88. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions-inl.h +28 -13
  89. data/ext/v8/upstream/2.1.10/src/conversions.cc +1105 -0
  90. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions.h +9 -4
  91. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.cc +0 -0
  92. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.h +1 -1
  93. data/ext/v8/upstream/2.1.10/src/cpu-profiler-inl.h +99 -0
  94. data/ext/v8/upstream/2.1.10/src/cpu-profiler.cc +494 -0
  95. data/ext/v8/upstream/2.1.10/src/cpu-profiler.h +277 -0
  96. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/cpu.h +0 -0
  97. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.cc +15 -4
  98. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.h +0 -0
  99. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-posix.cc +18 -0
  100. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-readline.cc +2 -2
  101. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-windows.cc +0 -0
  102. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.cc +10 -6
  103. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.h +2 -0
  104. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.js +43 -38
  105. data/ext/v8/upstream/2.1.10/src/data-flow.cc +755 -0
  106. data/ext/v8/upstream/2.1.10/src/data-flow.h +278 -0
  107. data/ext/v8/upstream/{2.0.6/src/date-delay.js → 2.1.10/src/date.js} +100 -110
  108. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser-inl.h +11 -2
  109. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.cc +24 -26
  110. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.h +8 -4
  111. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.cc +3 -1
  112. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.h +0 -0
  113. data/ext/v8/upstream/{2.0.6/src/debug-delay.js → 2.1.10/src/debug-debugger.js} +111 -15
  114. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.cc +156 -96
  115. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.h +53 -5
  116. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disasm.h +0 -0
  117. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.cc +2 -8
  118. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.h +0 -0
  119. data/ext/v8/upstream/2.1.10/src/diy-fp.cc +58 -0
  120. data/ext/v8/upstream/2.1.10/src/diy-fp.h +117 -0
  121. data/ext/v8/upstream/2.1.10/src/double.h +169 -0
  122. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dtoa-config.c +4 -3
  123. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.cc +22 -22
  124. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.h +17 -4
  125. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.cc +70 -46
  126. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.h +27 -17
  127. data/ext/v8/upstream/2.1.10/src/fast-codegen.cc +746 -0
  128. data/ext/v8/upstream/2.1.10/src/fast-codegen.h +161 -0
  129. data/ext/v8/upstream/2.1.10/src/fast-dtoa.cc +512 -0
  130. data/ext/v8/upstream/2.1.10/src/fast-dtoa.h +59 -0
  131. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flag-definitions.h +32 -11
  132. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.cc +0 -0
  133. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.h +0 -0
  134. data/ext/v8/upstream/2.1.10/src/flow-graph.cc +763 -0
  135. data/ext/v8/upstream/2.1.10/src/flow-graph.h +180 -0
  136. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.cc +1 -4
  137. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.h +49 -11
  138. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames-inl.h +2 -0
  139. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.cc +91 -17
  140. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.h +24 -2
  141. data/ext/v8/upstream/{2.0.6/src/fast-codegen.cc → 2.1.10/src/full-codegen.cc} +549 -198
  142. data/ext/v8/upstream/{2.0.6/src/fast-codegen.h → 2.1.10/src/full-codegen.h} +109 -29
  143. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.cc +0 -0
  144. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.h +0 -0
  145. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.cc +0 -0
  146. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.h +0 -0
  147. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/globals.h +67 -43
  148. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles-inl.h +0 -0
  149. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.cc +124 -129
  150. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.h +33 -15
  151. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.cc +0 -0
  152. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.h +0 -0
  153. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-inl.h +56 -12
  154. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.cc +2 -2
  155. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.h +2 -0
  156. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.cc +413 -221
  157. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.h +192 -67
  158. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32-inl.h +6 -0
  159. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.cc +187 -32
  160. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.h +31 -4
  161. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/builtins-ia32.cc +160 -133
  162. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32-inl.h +0 -0
  163. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32.cc +5533 -2177
  164. data/ext/v8/upstream/{2.0.6/src/x64/codegen-x64.h → 2.1.10/src/ia32/codegen-ia32.h} +453 -134
  165. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/cpu-ia32.cc +0 -0
  166. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/debug-ia32.cc +63 -8
  167. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/disasm-ia32.cc +99 -16
  168. data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.cc +950 -0
  169. data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.h +155 -0
  170. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.cc +0 -0
  171. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.h +0 -0
  172. data/ext/v8/upstream/{2.0.6/src/ia32/fast-codegen-ia32.cc → 2.1.10/src/ia32/full-codegen-ia32.cc} +454 -253
  173. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/ic-ia32.cc +545 -390
  174. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/jump-target-ia32.cc +1 -0
  175. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.cc +330 -139
  176. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.h +96 -30
  177. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.cc +73 -89
  178. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.h +6 -21
  179. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32-inl.h +0 -0
  180. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.cc +59 -5
  181. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.h +0 -0
  182. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.cc +0 -0
  183. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.h +2 -2
  184. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/stub-cache-ia32.cc +745 -303
  185. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.cc +278 -71
  186. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.h +78 -22
  187. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic-inl.h +0 -0
  188. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.cc +172 -89
  189. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.h +51 -20
  190. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.cc +0 -0
  191. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.h +0 -0
  192. data/ext/v8/upstream/{2.0.6/src/json-delay.js → 2.1.10/src/json.js} +26 -12
  193. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.cc +151 -118
  194. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.h +31 -7
  195. data/ext/v8/upstream/2.1.10/src/jump-target-heavy-inl.h +51 -0
  196. data/ext/v8/upstream/{2.0.6/src/jump-target.cc → 2.1.10/src/jump-target-heavy.cc} +164 -184
  197. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target-inl.h +8 -9
  198. data/ext/v8/upstream/{2.0.6/src/usage-analyzer.h → 2.1.10/src/jump-target-light-inl.h} +9 -7
  199. data/ext/v8/upstream/2.1.10/src/jump-target-light.cc +86 -0
  200. data/ext/v8/upstream/2.1.10/src/jump-target.cc +155 -0
  201. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target.h +6 -0
  202. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list-inl.h +0 -0
  203. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list.h +2 -1
  204. data/ext/v8/upstream/2.1.10/src/liveedit-debugger.js +944 -0
  205. data/ext/v8/upstream/2.1.10/src/liveedit.cc +1468 -0
  206. data/ext/v8/upstream/2.1.10/src/liveedit.h +170 -0
  207. data/ext/v8/upstream/2.1.10/src/log-inl.h +59 -0
  208. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.cc +3 -9
  209. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.h +1 -4
  210. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.cc +198 -95
  211. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.h +50 -49
  212. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macro-assembler.h +9 -0
  213. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macros.py +30 -11
  214. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.cc +464 -152
  215. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.h +41 -20
  216. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/math.js +9 -8
  217. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/memory.h +0 -0
  218. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.cc +1 -0
  219. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.h +0 -0
  220. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.js +46 -9
  221. data/ext/v8/upstream/2.1.10/src/mips/assembler-mips-inl.h +215 -0
  222. data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.cc +1208 -0
  223. data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.h +665 -0
  224. data/ext/v8/upstream/2.1.10/src/mips/builtins-mips.cc +202 -0
  225. data/ext/v8/upstream/2.1.10/src/mips/codegen-mips-inl.h +70 -0
  226. data/ext/v8/upstream/2.1.10/src/mips/codegen-mips.cc +1428 -0
  227. data/ext/v8/upstream/{2.0.6/src/arm/codegen-arm.h → 2.1.10/src/mips/codegen-mips.h} +103 -205
  228. data/ext/v8/upstream/2.1.10/src/mips/constants-mips.cc +323 -0
  229. data/ext/v8/upstream/2.1.10/src/mips/constants-mips.h +525 -0
  230. data/ext/v8/upstream/2.1.10/src/mips/cpu-mips.cc +69 -0
  231. data/ext/v8/upstream/2.1.10/src/mips/debug-mips.cc +128 -0
  232. data/ext/v8/upstream/2.1.10/src/mips/disasm-mips.cc +784 -0
  233. data/ext/v8/upstream/2.1.10/src/mips/fast-codegen-mips.cc +74 -0
  234. data/ext/v8/upstream/2.1.10/src/mips/frames-mips.cc +99 -0
  235. data/ext/v8/upstream/2.1.10/src/mips/frames-mips.h +164 -0
  236. data/ext/v8/upstream/2.1.10/src/mips/full-codegen-mips.cc +273 -0
  237. data/ext/v8/upstream/2.1.10/src/mips/ic-mips.cc +217 -0
  238. data/ext/v8/upstream/2.1.10/src/mips/jump-target-mips.cc +172 -0
  239. data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.cc +1323 -0
  240. data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.h +461 -0
  241. data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips-inl.h +137 -0
  242. data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.cc +60 -0
  243. data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.h +46 -0
  244. data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.cc +1648 -0
  245. data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.h +311 -0
  246. data/ext/v8/upstream/2.1.10/src/mips/stub-cache-mips.cc +400 -0
  247. data/ext/v8/upstream/2.1.10/src/mips/virtual-frame-mips.cc +316 -0
  248. data/ext/v8/upstream/{2.0.6/src/arm/virtual-frame-arm.h → 2.1.10/src/mips/virtual-frame-mips.h} +87 -71
  249. data/ext/v8/upstream/{2.0.6/src/mirror-delay.js → 2.1.10/src/mirror-debugger.js} +51 -45
  250. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mksnapshot.cc +97 -10
  251. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/natives.h +6 -6
  252. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-debug.cc +47 -5
  253. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-inl.h +154 -38
  254. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.cc +528 -280
  255. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.h +302 -95
  256. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.cc +25 -33
  257. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.h +9 -1
  258. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.cc +444 -72
  259. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.h +4 -2
  260. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-freebsd.cc +32 -13
  261. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-linux.cc +59 -25
  262. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-macos.cc +30 -13
  263. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-nullos.cc +0 -0
  264. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-openbsd.cc +21 -2
  265. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-posix.cc +0 -18
  266. data/ext/v8/upstream/2.1.10/src/platform-solaris.cc +607 -0
  267. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-win32.cc +16 -17
  268. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform.h +25 -8
  269. data/ext/v8/upstream/2.1.10/src/powers-ten.h +2461 -0
  270. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.cc +49 -29
  271. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.h +3 -1
  272. data/ext/v8/upstream/2.1.10/src/profile-generator-inl.h +124 -0
  273. data/ext/v8/upstream/2.1.10/src/profile-generator.cc +583 -0
  274. data/ext/v8/upstream/2.1.10/src/profile-generator.h +364 -0
  275. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.cc +1 -1
  276. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.h +12 -24
  277. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp-inl.h +2 -2
  278. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.cc +2 -2
  279. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.h +2 -2
  280. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.cc +2 -2
  281. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.h +0 -0
  282. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.cc +33 -10
  283. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.h +12 -4
  284. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.cc +0 -0
  285. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.h +0 -0
  286. data/ext/v8/upstream/{2.0.6/src/regexp-delay.js → 2.1.10/src/regexp.js} +180 -58
  287. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator-inl.h +68 -1
  288. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.cc +5 -2
  289. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.h +42 -17
  290. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.cc +110 -4
  291. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.h +0 -0
  292. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.cc +2733 -623
  293. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.h +43 -20
  294. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.js +46 -35
  295. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.cc +278 -36
  296. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.h +97 -26
  297. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.cc +3 -3
  298. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.h +1 -0
  299. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.cc +11 -12
  300. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.h +0 -1
  301. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.cc +298 -175
  302. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.h +184 -40
  303. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/shell.h +0 -0
  304. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/simulator.h +2 -0
  305. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/smart-pointer.h +0 -0
  306. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot-common.cc +16 -31
  307. data/ext/v8/upstream/2.1.10/src/snapshot-empty.cc +50 -0
  308. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot.h +13 -1
  309. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces-inl.h +35 -27
  310. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.cc +256 -42
  311. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.h +136 -42
  312. data/ext/v8/upstream/{2.0.6/src/zone-inl.h → 2.1.10/src/splay-tree-inl.h} +102 -89
  313. data/ext/v8/upstream/2.1.10/src/splay-tree.h +203 -0
  314. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.cc +0 -0
  315. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.h +0 -0
  316. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string.js +260 -149
  317. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.cc +195 -69
  318. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.h +127 -12
  319. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/COPYING +0 -0
  320. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/dtoa.c +0 -0
  321. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/valgrind/valgrind.h +0 -0
  322. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.cc +0 -0
  323. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.h +0 -0
  324. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.cc +26 -31
  325. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.h +3 -4
  326. data/ext/v8/upstream/2.1.10/src/type-info.cc +53 -0
  327. data/ext/v8/upstream/2.1.10/src/type-info.h +244 -0
  328. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode-inl.h +0 -0
  329. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.cc +0 -0
  330. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.h +0 -0
  331. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/uri.js +6 -6
  332. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.cc +0 -37
  333. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.h +121 -50
  334. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.cc +0 -0
  335. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.h +130 -98
  336. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.cc +42 -11
  337. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.h +4 -2
  338. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8natives.js +202 -37
  339. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.cc +11 -0
  340. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.h +15 -0
  341. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.cc +7 -51
  342. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.h +5 -35
  343. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.cc +3 -3
  344. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.h +0 -0
  345. data/ext/v8/upstream/2.1.10/src/virtual-frame-heavy-inl.h +152 -0
  346. data/ext/v8/upstream/{2.0.6/src/virtual-frame.cc → 2.1.10/src/virtual-frame-heavy.cc} +107 -176
  347. data/ext/v8/upstream/2.1.10/src/virtual-frame-inl.h +39 -0
  348. data/ext/v8/upstream/2.1.10/src/virtual-frame-light-inl.h +69 -0
  349. data/ext/v8/upstream/2.1.10/src/virtual-frame-light.cc +49 -0
  350. data/ext/v8/upstream/2.1.10/src/virtual-frame.cc +49 -0
  351. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/virtual-frame.h +2 -0
  352. data/ext/v8/upstream/{2.0.6/src/log-inl.h → 2.1.10/src/vm-state-inl.h} +28 -20
  353. data/ext/v8/upstream/{2.0.6/src/snapshot-empty.cc → 2.1.10/src/vm-state.cc} +5 -6
  354. data/ext/v8/upstream/2.1.10/src/vm-state.h +75 -0
  355. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64-inl.h +11 -0
  356. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.cc +285 -93
  357. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.h +81 -78
  358. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/builtins-x64.cc +130 -87
  359. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64-inl.h +0 -0
  360. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64.cc +4520 -1317
  361. data/ext/v8/upstream/{2.0.6/src/ia32/codegen-ia32.h → 2.1.10/src/x64/codegen-x64.h} +362 -141
  362. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/cpu-x64.cc +0 -0
  363. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/debug-x64.cc +20 -4
  364. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/disasm-x64.cc +121 -44
  365. data/ext/v8/upstream/2.1.10/src/x64/fast-codegen-x64.cc +246 -0
  366. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.cc +0 -0
  367. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.h +0 -0
  368. data/ext/v8/upstream/{2.0.6/src/x64/fast-codegen-x64.cc → 2.1.10/src/x64/full-codegen-x64.cc} +404 -231
  369. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/ic-x64.cc +346 -117
  370. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/jump-target-x64.cc +1 -0
  371. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.cc +537 -181
  372. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.h +140 -34
  373. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.cc +74 -96
  374. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.h +8 -25
  375. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64-inl.h +1 -1
  376. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.cc +3 -0
  377. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.h +0 -0
  378. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.cc +0 -0
  379. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.h +2 -2
  380. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/stub-cache-x64.cc +785 -288
  381. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.cc +128 -52
  382. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.h +40 -19
  383. data/ext/v8/upstream/2.1.10/src/zone-inl.h +82 -0
  384. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.cc +1 -0
  385. data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.h +6 -90
  386. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/codemap.js +12 -0
  387. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/consarray.js +0 -0
  388. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/csvparser.js +22 -37
  389. data/ext/v8/upstream/2.1.10/tools/generate-ten-powers.scm +286 -0
  390. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/gyp/v8.gyp +86 -24
  391. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/js2c.py +22 -22
  392. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/jsmin.py +0 -0
  393. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor +10 -1
  394. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor.py +0 -0
  395. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/logreader.js +34 -16
  396. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-nm +0 -0
  397. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-tick-processor +0 -0
  398. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/annotate +0 -0
  399. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/common +0 -0
  400. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/dump +0 -0
  401. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/report +0 -0
  402. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/reset +0 -0
  403. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/run +0 -0
  404. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/shutdown +0 -0
  405. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/start +0 -0
  406. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/presubmit.py +0 -0
  407. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/process-heap-prof.py +0 -0
  408. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile.js +70 -0
  409. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile_view.js +0 -0
  410. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/run-valgrind.py +0 -0
  411. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.js +0 -0
  412. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.py +0 -0
  413. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/stats-viewer.py +0 -0
  414. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/test.py +7 -7
  415. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor-driver.js +7 -1
  416. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.js +140 -9
  417. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.py +40 -4
  418. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/utils.py +6 -0
  419. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/README.txt +0 -0
  420. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/arm.vsprops +1 -1
  421. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/common.vsprops +1 -2
  422. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8.vcproj +0 -6
  423. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_arm.vcproj +193 -199
  424. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_x64.vcproj +16 -8
  425. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8js2c.cmd +0 -0
  426. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/debug.vsprops +0 -0
  427. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/ia32.vsprops +5 -1
  428. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/js2c.cmd +1 -1
  429. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/release.vsprops +0 -0
  430. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.sln +0 -0
  431. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.vcproj +11 -7
  432. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.sln +0 -0
  433. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.vcproj +227 -223
  434. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base.vcproj +137 -5
  435. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_arm.vcproj +116 -4
  436. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_x64.vcproj +125 -4
  437. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest.vcproj +12 -6
  438. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_arm.vcproj +12 -6
  439. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_x64.vcproj +11 -11
  440. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot.vcproj +0 -6
  441. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -6
  442. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample.vcproj +0 -6
  443. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_arm.vcproj +145 -151
  444. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_x64.vcproj +16 -6
  445. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample.vcproj +0 -6
  446. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_arm.vcproj +145 -151
  447. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_x64.vcproj +16 -8
  448. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot.vcproj +0 -0
  449. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
  450. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
  451. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
  452. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.sln +0 -0
  453. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.vcproj +11 -7
  454. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/x64.vsprops +5 -1
  455. data/ext/v8/upstream/2.1.10/tools/windows-tick-processor.bat +29 -0
  456. data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/windows-tick-processor.py +0 -0
  457. data/ext/v8/upstream/Makefile +8 -2
  458. data/ext/v8/v8.cpp +21 -73
  459. data/ext/v8/v8_array.cpp +56 -0
  460. data/ext/v8/v8_array.h +8 -0
  461. data/ext/v8/v8_callbacks.cpp +121 -0
  462. data/ext/v8/v8_callbacks.h +8 -0
  463. data/ext/v8/v8_cxt.cpp +74 -77
  464. data/ext/v8/v8_cxt.h +2 -9
  465. data/ext/v8/v8_date.cpp +26 -0
  466. data/ext/v8/v8_date.h +6 -0
  467. data/ext/v8/v8_exception.cpp +55 -0
  468. data/ext/v8/v8_exception.h +6 -0
  469. data/ext/v8/v8_external.cpp +50 -0
  470. data/ext/v8/v8_external.h +8 -0
  471. data/ext/v8/v8_func.cpp +76 -18
  472. data/ext/v8/v8_func.h +5 -4
  473. data/ext/v8/v8_msg.cpp +55 -46
  474. data/ext/v8/v8_msg.h +3 -11
  475. data/ext/v8/v8_obj.cpp +67 -36
  476. data/ext/v8/v8_obj.h +6 -8
  477. data/ext/v8/v8_ref.cpp +25 -9
  478. data/ext/v8/v8_ref.h +3 -5
  479. data/ext/v8/v8_script.cpp +17 -10
  480. data/ext/v8/v8_script.h +3 -3
  481. data/ext/v8/v8_str.cpp +34 -6
  482. data/ext/v8/v8_str.h +4 -2
  483. data/ext/v8/v8_template.cpp +195 -33
  484. data/ext/v8/v8_template.h +4 -5
  485. data/ext/v8/v8_try_catch.cpp +99 -0
  486. data/ext/v8/v8_try_catch.h +5 -0
  487. data/ext/v8/v8_value.cpp +164 -0
  488. data/ext/v8/v8_value.h +10 -0
  489. data/lib/v8.rb +3 -1
  490. data/lib/v8/access.rb +60 -0
  491. data/lib/v8/array.rb +15 -0
  492. data/lib/v8/callbacks.rb +88 -0
  493. data/lib/v8/cli.rb +1 -1
  494. data/lib/v8/context.rb +55 -66
  495. data/lib/v8/function.rb +20 -2
  496. data/lib/v8/object.rb +14 -12
  497. data/lib/v8/ruby_error.rb +3 -0
  498. data/lib/v8/to.rb +59 -7
  499. data/spec/ext/cxt_spec.rb +2 -15
  500. data/spec/ext/func_spec.rb +17 -10
  501. data/spec/ext/try_catch_spec.rb +32 -0
  502. data/spec/foo.rb +17 -0
  503. data/spec/redjs/jsapi_spec.rb +173 -96
  504. data/spec/spec_helper.rb +7 -0
  505. data/spec/v8/to_spec.rb +0 -1
  506. data/therubyracer.gemspec +6 -6
  507. metadata +493 -386
  508. data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +0 -849
  509. data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +0 -412
  510. data/ext/v8/upstream/2.0.6/src/ast.cc +0 -512
  511. data/ext/v8/upstream/2.0.6/src/builtins.cc +0 -851
  512. data/ext/v8/upstream/2.0.6/src/compiler.cc +0 -1132
  513. data/ext/v8/upstream/2.0.6/src/compiler.h +0 -107
  514. data/ext/v8/upstream/2.0.6/src/conversions.cc +0 -709
  515. data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +0 -426
  516. data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +0 -5
  517. data/ext/v8/upstream/no-strict-aliasing.patch +0 -13
  518. data/ext/v8/v8_standalone.cpp +0 -69
  519. data/ext/v8/v8_standalone.h +0 -31
  520. data/spec/ext/obj_spec.rb +0 -13
@@ -0,0 +1,277 @@
1
+ // Copyright 2010 the V8 project authors. All rights reserved.
2
+ // Redistribution and use in source and binary forms, with or without
3
+ // modification, are permitted provided that the following conditions are
4
+ // met:
5
+ //
6
+ // * Redistributions of source code must retain the above copyright
7
+ // notice, this list of conditions and the following disclaimer.
8
+ // * Redistributions in binary form must reproduce the above
9
+ // copyright notice, this list of conditions and the following
10
+ // disclaimer in the documentation and/or other materials provided
11
+ // with the distribution.
12
+ // * Neither the name of Google Inc. nor the names of its
13
+ // contributors may be used to endorse or promote products derived
14
+ // from this software without specific prior written permission.
15
+ //
16
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+
28
+ #ifndef V8_CPU_PROFILER_H_
29
+ #define V8_CPU_PROFILER_H_
30
+
31
+ #ifdef ENABLE_LOGGING_AND_PROFILING
32
+
33
+ #include "circular-queue.h"
34
+
35
+ namespace v8 {
36
+ namespace internal {
37
+
38
+ // Forward declarations.
39
+ class CodeEntry;
40
+ class CodeMap;
41
+ class CpuProfile;
42
+ class CpuProfilesCollection;
43
+ class ProfileGenerator;
44
+
45
+
46
+ #define CODE_EVENTS_TYPE_LIST(V) \
47
+ V(CODE_CREATION, CodeCreateEventRecord) \
48
+ V(CODE_MOVE, CodeMoveEventRecord) \
49
+ V(CODE_DELETE, CodeDeleteEventRecord) \
50
+ V(CODE_ALIAS, CodeAliasEventRecord)
51
+
52
+
53
+ class CodeEventRecord {
54
+ public:
55
+ #define DECLARE_TYPE(type, ignore) type,
56
+ enum Type {
57
+ NONE = 0,
58
+ CODE_EVENTS_TYPE_LIST(DECLARE_TYPE)
59
+ NUMBER_OF_TYPES
60
+ };
61
+ #undef DECLARE_TYPE
62
+
63
+ Type type;
64
+ unsigned order;
65
+ };
66
+
67
+
68
+ class CodeCreateEventRecord : public CodeEventRecord {
69
+ public:
70
+ Address start;
71
+ CodeEntry* entry;
72
+ unsigned size;
73
+
74
+ INLINE(void UpdateCodeMap(CodeMap* code_map));
75
+ };
76
+
77
+
78
+ class CodeMoveEventRecord : public CodeEventRecord {
79
+ public:
80
+ Address from;
81
+ Address to;
82
+
83
+ INLINE(void UpdateCodeMap(CodeMap* code_map));
84
+ };
85
+
86
+
87
+ class CodeDeleteEventRecord : public CodeEventRecord {
88
+ public:
89
+ Address start;
90
+
91
+ INLINE(void UpdateCodeMap(CodeMap* code_map));
92
+ };
93
+
94
+
95
+ class CodeAliasEventRecord : public CodeEventRecord {
96
+ public:
97
+ Address alias;
98
+ Address start;
99
+
100
+ INLINE(void UpdateCodeMap(CodeMap* code_map));
101
+ };
102
+
103
+
104
+ class TickSampleEventRecord BASE_EMBEDDED {
105
+ public:
106
+ // The first machine word of a TickSampleEventRecord must not ever
107
+ // become equal to SamplingCircularQueue::kClear. As both order and
108
+ // TickSample's first field are not reliable in this sense (order
109
+ // can overflow, TickSample can have all fields reset), we are
110
+ // forced to use an artificial filler field.
111
+ int filler;
112
+ unsigned order;
113
+ TickSample sample;
114
+
115
+ static TickSampleEventRecord* cast(void* value) {
116
+ return reinterpret_cast<TickSampleEventRecord*>(value);
117
+ }
118
+
119
+ INLINE(static TickSampleEventRecord* init(void* value));
120
+
121
+ private:
122
+ DISALLOW_IMPLICIT_CONSTRUCTORS(TickSampleEventRecord);
123
+ };
124
+
125
+
126
+ // This class implements both the profile events processor thread and
127
+ // methods called by event producers: VM and stack sampler threads.
128
+ class ProfilerEventsProcessor : public Thread {
129
+ public:
130
+ explicit ProfilerEventsProcessor(ProfileGenerator* generator);
131
+ virtual ~ProfilerEventsProcessor() { }
132
+
133
+ // Thread control.
134
+ virtual void Run();
135
+ inline void Stop() { running_ = false; }
136
+ INLINE(bool running()) { return running_; }
137
+
138
+ // Events adding methods. Called by VM threads.
139
+ void CallbackCreateEvent(Logger::LogEventsAndTags tag,
140
+ const char* prefix, String* name,
141
+ Address start);
142
+ void CodeCreateEvent(Logger::LogEventsAndTags tag,
143
+ String* name,
144
+ String* resource_name, int line_number,
145
+ Address start, unsigned size);
146
+ void CodeCreateEvent(Logger::LogEventsAndTags tag,
147
+ const char* name,
148
+ Address start, unsigned size);
149
+ void CodeCreateEvent(Logger::LogEventsAndTags tag,
150
+ int args_count,
151
+ Address start, unsigned size);
152
+ void CodeMoveEvent(Address from, Address to);
153
+ void CodeDeleteEvent(Address from);
154
+ void FunctionCreateEvent(Address alias, Address start);
155
+ void FunctionMoveEvent(Address from, Address to);
156
+ void FunctionDeleteEvent(Address from);
157
+ void RegExpCodeCreateEvent(Logger::LogEventsAndTags tag,
158
+ const char* prefix, String* name,
159
+ Address start, unsigned size);
160
+
161
+ // Tick sample events are filled directly in the buffer of the circular
162
+ // queue (because the structure is of fixed width, but usually not all
163
+ // stack frame entries are filled.) This method returns a pointer to the
164
+ // next record of the buffer.
165
+ INLINE(TickSample* TickSampleEvent());
166
+
167
+ private:
168
+ union CodeEventsContainer {
169
+ CodeEventRecord generic;
170
+ #define DECLARE_CLASS(ignore, type) type type##_;
171
+ CODE_EVENTS_TYPE_LIST(DECLARE_CLASS)
172
+ #undef DECLARE_TYPE
173
+ };
174
+
175
+ // Called from events processing thread (Run() method.)
176
+ bool ProcessCodeEvent(unsigned* dequeue_order);
177
+ bool ProcessTicks(unsigned dequeue_order);
178
+
179
+ INLINE(static bool FilterOutCodeCreateEvent(Logger::LogEventsAndTags tag));
180
+
181
+ ProfileGenerator* generator_;
182
+ bool running_;
183
+ CircularQueue<CodeEventsContainer> events_buffer_;
184
+ SamplingCircularQueue ticks_buffer_;
185
+ unsigned enqueue_order_;
186
+ };
187
+
188
+ } } // namespace v8::internal
189
+
190
+
191
+ #define PROFILE(Call) \
192
+ LOG(Call); \
193
+ do { \
194
+ if (v8::internal::CpuProfiler::is_profiling()) { \
195
+ v8::internal::CpuProfiler::Call; \
196
+ } \
197
+ } while (false)
198
+ #else
199
+ #define PROFILE(Call) LOG(Call)
200
+ #endif // ENABLE_LOGGING_AND_PROFILING
201
+
202
+
203
+ namespace v8 {
204
+ namespace internal {
205
+
206
+ class CpuProfiler {
207
+ public:
208
+ static void Setup();
209
+ static void TearDown();
210
+
211
+ #ifdef ENABLE_LOGGING_AND_PROFILING
212
+ static void StartProfiling(const char* title);
213
+ static void StartProfiling(String* title);
214
+ static CpuProfile* StopProfiling(const char* title);
215
+ static CpuProfile* StopProfiling(String* title);
216
+ static int GetProfilesCount();
217
+ static CpuProfile* GetProfile(int index);
218
+ static CpuProfile* FindProfile(unsigned uid);
219
+
220
+ // Invoked from stack sampler (thread or signal handler.)
221
+ static TickSample* TickSampleEvent();
222
+
223
+ // Must be called via PROFILE macro, otherwise will crash when
224
+ // profiling is not enabled.
225
+ static void CallbackEvent(String* name, Address entry_point);
226
+ static void CodeCreateEvent(Logger::LogEventsAndTags tag,
227
+ Code* code, const char* comment);
228
+ static void CodeCreateEvent(Logger::LogEventsAndTags tag,
229
+ Code* code, String* name);
230
+ static void CodeCreateEvent(Logger::LogEventsAndTags tag,
231
+ Code* code, String* name,
232
+ String* source, int line);
233
+ static void CodeCreateEvent(Logger::LogEventsAndTags tag,
234
+ Code* code, int args_count);
235
+ static void CodeMoveEvent(Address from, Address to);
236
+ static void CodeDeleteEvent(Address from);
237
+ static void FunctionCreateEvent(JSFunction* function);
238
+ static void FunctionMoveEvent(Address from, Address to);
239
+ static void FunctionDeleteEvent(Address from);
240
+ static void GetterCallbackEvent(String* name, Address entry_point);
241
+ static void RegExpCodeCreateEvent(Code* code, String* source);
242
+ static void SetterCallbackEvent(String* name, Address entry_point);
243
+
244
+ static INLINE(bool is_profiling()) {
245
+ return singleton_ != NULL && singleton_->processor_ != NULL;
246
+ }
247
+
248
+ private:
249
+ CpuProfiler();
250
+ ~CpuProfiler();
251
+ void StartCollectingProfile(const char* title);
252
+ void StartCollectingProfile(String* title);
253
+ void StartProcessorIfNotStarted();
254
+ CpuProfile* StopCollectingProfile(const char* title);
255
+ CpuProfile* StopCollectingProfile(String* title);
256
+ void StopProcessorIfLastProfile();
257
+
258
+ CpuProfilesCollection* profiles_;
259
+ unsigned next_profile_uid_;
260
+ ProfileGenerator* generator_;
261
+ ProfilerEventsProcessor* processor_;
262
+ int saved_logging_nesting_;
263
+
264
+ static CpuProfiler* singleton_;
265
+
266
+ #else
267
+ static INLINE(bool is_profiling()) { return false; }
268
+ #endif // ENABLE_LOGGING_AND_PROFILING
269
+
270
+ private:
271
+ DISALLOW_COPY_AND_ASSIGN(CpuProfiler);
272
+ };
273
+
274
+ } } // namespace v8::internal
275
+
276
+
277
+ #endif // V8_CPU_PROFILER_H_
@@ -34,6 +34,11 @@
34
34
 
35
35
  namespace v8 {
36
36
 
37
+ void PrintPrompt() {
38
+ printf("dbg> ");
39
+ fflush(stdout);
40
+ }
41
+
37
42
 
38
43
  void HandleDebugEvent(DebugEvent event,
39
44
  Handle<Object> exec_state,
@@ -86,7 +91,7 @@ void HandleDebugEvent(DebugEvent event,
86
91
  bool running = false;
87
92
  while (!running) {
88
93
  char command[kBufferSize];
89
- printf("dbg> ");
94
+ PrintPrompt();
90
95
  char* str = fgets(command, kBufferSize, stdin);
91
96
  if (str == NULL) break;
92
97
 
@@ -178,6 +183,7 @@ void RemoteDebugger::Run() {
178
183
  // Start the keyboard thread.
179
184
  KeyboardThread keyboard(this);
180
185
  keyboard.Start();
186
+ PrintPrompt();
181
187
 
182
188
  // Process events received from debugged VM and from the keyboard.
183
189
  bool terminate = false;
@@ -264,7 +270,8 @@ void RemoteDebugger::HandleMessageReceived(char* message) {
264
270
  Handle<Object> details =
265
271
  Shell::DebugMessageDetails(Handle<String>::Cast(String::New(message)));
266
272
  if (try_catch.HasCaught()) {
267
- Shell::ReportException(&try_catch);
273
+ Shell::ReportException(&try_catch);
274
+ PrintPrompt();
268
275
  return;
269
276
  }
270
277
  String::Utf8Value str(details->Get(String::New("text")));
@@ -277,7 +284,7 @@ void RemoteDebugger::HandleMessageReceived(char* message) {
277
284
  } else {
278
285
  printf("???\n");
279
286
  }
280
- printf("dbg> ");
287
+ PrintPrompt();
281
288
  }
282
289
 
283
290
 
@@ -289,13 +296,17 @@ void RemoteDebugger::HandleKeyboardCommand(char* command) {
289
296
  Handle<Value> request =
290
297
  Shell::DebugCommandToJSONRequest(String::New(command));
291
298
  if (try_catch.HasCaught()) {
292
- Shell::ReportException(&try_catch);
299
+ v8::String::Utf8Value exception(try_catch.Exception());
300
+ const char* exception_string = Shell::ToCString(exception);
301
+ printf("%s\n", exception_string);
302
+ PrintPrompt();
293
303
  return;
294
304
  }
295
305
 
296
306
  // If undefined is returned the command was handled internally and there is
297
307
  // no JSON to send.
298
308
  if (request->IsUndefined()) {
309
+ PrintPrompt();
299
310
  return;
300
311
  }
301
312
 
@@ -663,10 +663,28 @@ Handle<Value> Shell::SetEnvironment(const Arguments& args) {
663
663
  }
664
664
 
665
665
 
666
+ Handle<Value> Shell::UnsetEnvironment(const Arguments& args) {
667
+ if (args.Length() != 1) {
668
+ const char* message = "unsetenv() takes one argument";
669
+ return ThrowException(String::New(message));
670
+ }
671
+ String::Utf8Value var(args[0]);
672
+ if (*var == NULL) {
673
+ const char* message =
674
+ "os.setenv(): String conversion of variable name failed.";
675
+ return ThrowException(String::New(message));
676
+ }
677
+ unsetenv(*var);
678
+ return v8::Undefined();
679
+ }
680
+
681
+
666
682
  void Shell::AddOSMethods(Handle<ObjectTemplate> os_templ) {
667
683
  os_templ->Set(String::New("system"), FunctionTemplate::New(System));
668
684
  os_templ->Set(String::New("chdir"), FunctionTemplate::New(ChangeDirectory));
669
685
  os_templ->Set(String::New("setenv"), FunctionTemplate::New(SetEnvironment));
686
+ os_templ->Set(String::New("unsetenv"),
687
+ FunctionTemplate::New(UnsetEnvironment));
670
688
  os_templ->Set(String::New("umask"), FunctionTemplate::New(SetUMask));
671
689
  os_templ->Set(String::New("mkdirp"), FunctionTemplate::New(MakeDirectory));
672
690
  os_templ->Set(String::New("rmdir"), FunctionTemplate::New(RemoveDirectory));
@@ -27,8 +27,8 @@
27
27
 
28
28
 
29
29
  #include <cstdio> // NOLINT
30
- #include <readline/readline.h>
31
- #include <readline/history.h>
30
+ #include <readline/readline.h> // NOLINT
31
+ #include <readline/history.h> // NOLINT
32
32
 
33
33
 
34
34
  #include "d8.h"
@@ -102,7 +102,7 @@ bool CounterMap::Match(void* key1, void* key2) {
102
102
 
103
103
 
104
104
  // Converts a V8 value to a C string.
105
- const char* ToCString(const v8::String::Utf8Value& value) {
105
+ const char* Shell::ToCString(const v8::String::Utf8Value& value) {
106
106
  return *value ? *value : "<string conversion failed>";
107
107
  }
108
108
 
@@ -447,9 +447,10 @@ void Shell::Initialize() {
447
447
  #ifdef ENABLE_DEBUGGER_SUPPORT
448
448
  // Install the debugger object in the utility scope
449
449
  i::Debug::Load();
450
- i::JSObject* debug = i::Debug::debug_context()->global();
450
+ i::Handle<i::JSObject> debug
451
+ = i::Handle<i::JSObject>(i::Debug::debug_context()->global());
451
452
  utility_context_->Global()->Set(String::New("$debug"),
452
- Utils::ToLocal(&debug));
453
+ Utils::ToLocal(debug));
453
454
  #endif
454
455
 
455
456
  // Run the d8 shell utility script in the utility context
@@ -467,9 +468,12 @@ void Shell::Initialize() {
467
468
 
468
469
  // Mark the d8 shell script as native to avoid it showing up as normal source
469
470
  // in the debugger.
470
- i::Handle<i::JSFunction> script_fun = Utils::OpenHandle(*script);
471
- i::Handle<i::Script> script_object =
472
- i::Handle<i::Script>(i::Script::cast(script_fun->shared()->script()));
471
+ i::Handle<i::Object> compiled_script = Utils::OpenHandle(*script);
472
+ i::Handle<i::Script> script_object = compiled_script->IsJSFunction()
473
+ ? i::Handle<i::Script>(i::Script::cast(
474
+ i::JSFunction::cast(*compiled_script)->shared()->script()))
475
+ : i::Handle<i::Script>(i::Script::cast(
476
+ i::SharedFunctionInfo::cast(*compiled_script)->script()));
473
477
  script_object->set_type(i::Smi::FromInt(i::Script::TYPE_NATIVE));
474
478
 
475
479
  // Create the evaluation context
@@ -117,6 +117,7 @@ class Shell: public i::AllStatic {
117
117
  Handle<Value> name,
118
118
  bool print_result,
119
119
  bool report_exceptions);
120
+ static const char* ToCString(const v8::String::Utf8Value& value);
120
121
  static void ReportException(TryCatch* try_catch);
121
122
  static void Initialize();
122
123
  static void OnExit();
@@ -175,6 +176,7 @@ class Shell: public i::AllStatic {
175
176
  static Handle<Value> System(const Arguments& args);
176
177
  static Handle<Value> ChangeDirectory(const Arguments& args);
177
178
  static Handle<Value> SetEnvironment(const Arguments& args);
179
+ static Handle<Value> UnsetEnvironment(const Arguments& args);
178
180
  static Handle<Value> SetUMask(const Arguments& args);
179
181
  static Handle<Value> MakeDirectory(const Arguments& args);
180
182
  static Handle<Value> RemoveDirectory(const Arguments& args);
@@ -164,7 +164,7 @@ function DebugEventDetails(response) {
164
164
  Debug.State.currentFrame = 0;
165
165
  details.text = result;
166
166
  break;
167
-
167
+
168
168
  case 'exception':
169
169
  if (body.uncaught) {
170
170
  result += 'Uncaught: ';
@@ -212,7 +212,7 @@ function DebugEventDetails(response) {
212
212
 
213
213
  function SourceInfo(body) {
214
214
  var result = '';
215
-
215
+
216
216
  if (body.script) {
217
217
  if (body.script.name) {
218
218
  result += body.script.name;
@@ -224,7 +224,7 @@ function SourceInfo(body) {
224
224
  result += body.sourceLine + 1;
225
225
  result += ' column ';
226
226
  result += body.sourceColumn + 1;
227
-
227
+
228
228
  return result;
229
229
  }
230
230
 
@@ -297,20 +297,20 @@ function DebugRequest(cmd_line) {
297
297
  case 'bt':
298
298
  this.request_ = this.backtraceCommandToJSONRequest_(args);
299
299
  break;
300
-
300
+
301
301
  case 'frame':
302
302
  case 'f':
303
303
  this.request_ = this.frameCommandToJSONRequest_(args);
304
304
  break;
305
-
305
+
306
306
  case 'scopes':
307
307
  this.request_ = this.scopesCommandToJSONRequest_(args);
308
308
  break;
309
-
309
+
310
310
  case 'scope':
311
311
  this.request_ = this.scopeCommandToJSONRequest_(args);
312
312
  break;
313
-
313
+
314
314
  case 'print':
315
315
  case 'p':
316
316
  this.request_ = this.printCommandToJSONRequest_(args);
@@ -331,16 +331,16 @@ function DebugRequest(cmd_line) {
331
331
  case 'source':
332
332
  this.request_ = this.sourceCommandToJSONRequest_(args);
333
333
  break;
334
-
334
+
335
335
  case 'scripts':
336
336
  this.request_ = this.scriptsCommandToJSONRequest_(args);
337
337
  break;
338
-
338
+
339
339
  case 'break':
340
340
  case 'b':
341
341
  this.request_ = this.breakCommandToJSONRequest_(args);
342
342
  break;
343
-
343
+
344
344
  case 'clear':
345
345
  this.request_ = this.clearCommandToJSONRequest_(args);
346
346
  break;
@@ -365,7 +365,7 @@ function DebugRequest(cmd_line) {
365
365
  default:
366
366
  throw new Error('Unknown command "' + cmd + '"');
367
367
  }
368
-
368
+
369
369
  last_cmd = cmd;
370
370
  }
371
371
 
@@ -490,22 +490,22 @@ DebugRequest.prototype.stepCommandToJSONRequest_ = function(args) {
490
490
  case 'i':
491
491
  request.arguments.stepaction = 'in';
492
492
  break;
493
-
493
+
494
494
  case 'min':
495
495
  case 'm':
496
496
  request.arguments.stepaction = 'min';
497
497
  break;
498
-
498
+
499
499
  case 'next':
500
500
  case 'n':
501
501
  request.arguments.stepaction = 'next';
502
502
  break;
503
-
503
+
504
504
  case 'out':
505
505
  case 'o':
506
506
  request.arguments.stepaction = 'out';
507
507
  break;
508
-
508
+
509
509
  default:
510
510
  throw new Error('Invalid step argument "' + args[0] + '".');
511
511
  }
@@ -523,7 +523,7 @@ DebugRequest.prototype.stepCommandToJSONRequest_ = function(args) {
523
523
  DebugRequest.prototype.backtraceCommandToJSONRequest_ = function(args) {
524
524
  // Build a backtrace request from the text command.
525
525
  var request = this.createRequest('backtrace');
526
-
526
+
527
527
  // Default is to show top 10 frames.
528
528
  request.arguments = {};
529
529
  request.arguments.fromFrame = 0;
@@ -626,7 +626,7 @@ DebugRequest.prototype.referencesCommandToJSONRequest_ = function(args) {
626
626
  if (args.length == 0) {
627
627
  throw new Error('Missing object id.');
628
628
  }
629
-
629
+
630
630
  return this.makeReferencesJSONRequest_(args, 'referencedBy');
631
631
  };
632
632
 
@@ -637,7 +637,7 @@ DebugRequest.prototype.instancesCommandToJSONRequest_ = function(args) {
637
637
  if (args.length == 0) {
638
638
  throw new Error('Missing object id.');
639
639
  }
640
-
640
+
641
641
  // Build a references request.
642
642
  return this.makeReferencesJSONRequest_(args, 'constructedBy');
643
643
  };
@@ -691,18 +691,18 @@ DebugRequest.prototype.scriptsCommandToJSONRequest_ = function(args) {
691
691
  case 'natives':
692
692
  request.arguments.types = ScriptTypeFlag(Debug.ScriptType.Native);
693
693
  break;
694
-
694
+
695
695
  case 'extensions':
696
696
  request.arguments.types = ScriptTypeFlag(Debug.ScriptType.Extension);
697
697
  break;
698
-
698
+
699
699
  case 'all':
700
700
  request.arguments.types =
701
701
  ScriptTypeFlag(Debug.ScriptType.Normal) |
702
702
  ScriptTypeFlag(Debug.ScriptType.Native) |
703
703
  ScriptTypeFlag(Debug.ScriptType.Extension);
704
704
  break;
705
-
705
+
706
706
  default:
707
707
  throw new Error('Invalid argument "' + args[0] + '".');
708
708
  }
@@ -715,8 +715,6 @@ DebugRequest.prototype.scriptsCommandToJSONRequest_ = function(args) {
715
715
  // Create a JSON request for the break command.
716
716
  DebugRequest.prototype.breakCommandToJSONRequest_ = function(args) {
717
717
  // Build a evaluate request from the text command.
718
- var request = this.createRequest('setbreakpoint');
719
-
720
718
  // Process arguments if any.
721
719
  if (args && args.length > 0) {
722
720
  var target = args;
@@ -726,6 +724,8 @@ DebugRequest.prototype.breakCommandToJSONRequest_ = function(args) {
726
724
  var condition;
727
725
  var pos;
728
726
 
727
+ var request = this.createRequest('setbreakpoint');
728
+
729
729
  // Check for breakpoint condition.
730
730
  pos = args.indexOf(' ');
731
731
  if (pos > 0) {
@@ -740,7 +740,7 @@ DebugRequest.prototype.breakCommandToJSONRequest_ = function(args) {
740
740
  type = 'script';
741
741
  var tmp = target.substring(pos + 1, target.length);
742
742
  target = target.substring(0, pos);
743
-
743
+
744
744
  // Check for both line and column.
745
745
  pos = tmp.indexOf(':');
746
746
  if (pos > 0) {
@@ -755,7 +755,7 @@ DebugRequest.prototype.breakCommandToJSONRequest_ = function(args) {
755
755
  } else {
756
756
  type = 'function';
757
757
  }
758
-
758
+
759
759
  request.arguments = {};
760
760
  request.arguments.type = type;
761
761
  request.arguments.target = target;
@@ -763,7 +763,7 @@ DebugRequest.prototype.breakCommandToJSONRequest_ = function(args) {
763
763
  request.arguments.column = column;
764
764
  request.arguments.condition = condition;
765
765
  } else {
766
- throw new Error('Invalid break arguments.');
766
+ var request = this.createRequest('suspend');
767
767
  }
768
768
 
769
769
  return request.toJSONProtocol();
@@ -817,6 +817,7 @@ DebugRequest.prototype.helpCommand_ = function(args) {
817
817
  print('warning: arguments to \'help\' are ignored');
818
818
  }
819
819
 
820
+ print('break');
820
821
  print('break location [condition]');
821
822
  print(' break on named function: location is a function name');
822
823
  print(' break on function: location is #<id>#');
@@ -931,18 +932,22 @@ function DebugResponseDetails(response) {
931
932
  var body = response.body();
932
933
  var result = '';
933
934
  switch (response.command()) {
935
+ case 'suspend':
936
+ details.text = 'stopped';
937
+ break;
938
+
934
939
  case 'setbreakpoint':
935
940
  result = 'set breakpoint #';
936
941
  result += body.breakpoint;
937
942
  details.text = result;
938
943
  break;
939
-
944
+
940
945
  case 'clearbreakpoint':
941
946
  result = 'cleared breakpoint #';
942
947
  result += body.breakpoint;
943
948
  details.text = result;
944
949
  break;
945
-
950
+
946
951
  case 'backtrace':
947
952
  if (body.totalFrames == 0) {
948
953
  result = '(empty stack)';
@@ -956,14 +961,14 @@ function DebugResponseDetails(response) {
956
961
  }
957
962
  details.text = result;
958
963
  break;
959
-
964
+
960
965
  case 'frame':
961
966
  details.text = SourceUnderline(body.sourceLineText,
962
967
  body.column);
963
968
  Debug.State.currentSourceLine = body.line;
964
969
  Debug.State.currentFrame = body.index;
965
970
  break;
966
-
971
+
967
972
  case 'scopes':
968
973
  if (body.totalScopes == 0) {
969
974
  result = '(no scopes)';
@@ -987,7 +992,7 @@ function DebugResponseDetails(response) {
987
992
  result += formatObject_(scope_object_value, true);
988
993
  details.text = result;
989
994
  break;
990
-
995
+
991
996
  case 'evaluate':
992
997
  case 'lookup':
993
998
  if (last_cmd == 'p' || last_cmd == 'print') {
@@ -1031,7 +1036,7 @@ function DebugResponseDetails(response) {
1031
1036
  }
1032
1037
  details.text = result;
1033
1038
  break;
1034
-
1039
+
1035
1040
  case 'source':
1036
1041
  // Get the source from the response.
1037
1042
  var source = body.source;
@@ -1066,7 +1071,7 @@ function DebugResponseDetails(response) {
1066
1071
  }
1067
1072
  details.text = result;
1068
1073
  break;
1069
-
1074
+
1070
1075
  case 'scripts':
1071
1076
  var result = '';
1072
1077
  for (i = 0; i < body.length; i++) {
@@ -1128,7 +1133,7 @@ function DebugResponseDetails(response) {
1128
1133
  case 'continue':
1129
1134
  details.text = "(running)";
1130
1135
  break;
1131
-
1136
+
1132
1137
  default:
1133
1138
  details.text =
1134
1139
  'Response for unknown command \'' + response.command + '\'' +
@@ -1137,7 +1142,7 @@ function DebugResponseDetails(response) {
1137
1142
  } catch (e) {
1138
1143
  details.text = 'Error: "' + e + '" formatting response';
1139
1144
  }
1140
-
1145
+
1141
1146
  return details;
1142
1147
  };
1143
1148
 
@@ -1254,7 +1259,7 @@ ProtocolValue.prototype.type = function() {
1254
1259
 
1255
1260
 
1256
1261
  /**
1257
- * Get a metadata field from a protocol value.
1262
+ * Get a metadata field from a protocol value.
1258
1263
  * @return {Object} the metadata field value
1259
1264
  */
1260
1265
  ProtocolValue.prototype.field = function(name) {
@@ -1435,12 +1440,12 @@ function ArrayToJSONArray_(content) {
1435
1440
 
1436
1441
 
1437
1442
  function BooleanToJSON_(value) {
1438
- return String(value);
1443
+ return String(value);
1439
1444
  }
1440
1445
 
1441
1446
 
1442
1447
  function NumberToJSON_(value) {
1443
- return String(value);
1448
+ return String(value);
1444
1449
  }
1445
1450
 
1446
1451