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
@@ -31,6 +31,7 @@
31
31
  #ifdef ENABLE_LOGGING_AND_PROFILING
32
32
 
33
33
  #include "circular-queue.h"
34
+ #include "unbound-queue.h"
34
35
 
35
36
  namespace v8 {
36
37
  namespace internal {
@@ -41,7 +42,7 @@ class CodeMap;
41
42
  class CpuProfile;
42
43
  class CpuProfilesCollection;
43
44
  class ProfileGenerator;
44
-
45
+ class TokenEnumerator;
45
46
 
46
47
  #define CODE_EVENTS_TYPE_LIST(V) \
47
48
  V(CODE_CREATION, CodeCreateEventRecord) \
@@ -94,8 +95,9 @@ class CodeDeleteEventRecord : public CodeEventRecord {
94
95
 
95
96
  class CodeAliasEventRecord : public CodeEventRecord {
96
97
  public:
97
- Address alias;
98
98
  Address start;
99
+ CodeEntry* entry;
100
+ Address code_start;
99
101
 
100
102
  INLINE(void UpdateCodeMap(CodeMap* code_map));
101
103
  };
@@ -103,6 +105,11 @@ class CodeAliasEventRecord : public CodeEventRecord {
103
105
 
104
106
  class TickSampleEventRecord BASE_EMBEDDED {
105
107
  public:
108
+ TickSampleEventRecord()
109
+ : filler(1) {
110
+ ASSERT(filler != SamplingCircularQueue::kClear);
111
+ }
112
+
106
113
  // The first machine word of a TickSampleEventRecord must not ever
107
114
  // become equal to SamplingCircularQueue::kClear. As both order and
108
115
  // TickSample's first field are not reliable in this sense (order
@@ -117,9 +124,6 @@ class TickSampleEventRecord BASE_EMBEDDED {
117
124
  }
118
125
 
119
126
  INLINE(static TickSampleEventRecord* init(void* value));
120
-
121
- private:
122
- DISALLOW_IMPLICIT_CONSTRUCTORS(TickSampleEventRecord);
123
127
  };
124
128
 
125
129
 
@@ -151,12 +155,14 @@ class ProfilerEventsProcessor : public Thread {
151
155
  Address start, unsigned size);
152
156
  void CodeMoveEvent(Address from, Address to);
153
157
  void CodeDeleteEvent(Address from);
154
- void FunctionCreateEvent(Address alias, Address start);
158
+ void FunctionCreateEvent(Address alias, Address start, int security_token_id);
155
159
  void FunctionMoveEvent(Address from, Address to);
156
160
  void FunctionDeleteEvent(Address from);
157
161
  void RegExpCodeCreateEvent(Logger::LogEventsAndTags tag,
158
162
  const char* prefix, String* name,
159
163
  Address start, unsigned size);
164
+ // Puts current stack into tick sample events buffer.
165
+ void AddCurrentStack();
160
166
 
161
167
  // Tick sample events are filled directly in the buffer of the circular
162
168
  // queue (because the structure is of fixed width, but usually not all
@@ -180,8 +186,9 @@ class ProfilerEventsProcessor : public Thread {
180
186
 
181
187
  ProfileGenerator* generator_;
182
188
  bool running_;
183
- CircularQueue<CodeEventsContainer> events_buffer_;
189
+ UnboundQueue<CodeEventsContainer> events_buffer_;
184
190
  SamplingCircularQueue ticks_buffer_;
191
+ UnboundQueue<TickSampleEventRecord> ticks_from_vm_buffer_;
185
192
  unsigned enqueue_order_;
186
193
  };
187
194
 
@@ -212,10 +219,10 @@ class CpuProfiler {
212
219
  static void StartProfiling(const char* title);
213
220
  static void StartProfiling(String* title);
214
221
  static CpuProfile* StopProfiling(const char* title);
215
- static CpuProfile* StopProfiling(String* title);
222
+ static CpuProfile* StopProfiling(Object* security_token, String* title);
216
223
  static int GetProfilesCount();
217
- static CpuProfile* GetProfile(int index);
218
- static CpuProfile* FindProfile(unsigned uid);
224
+ static CpuProfile* GetProfile(Object* security_token, int index);
225
+ static CpuProfile* FindProfile(Object* security_token, unsigned uid);
219
226
 
220
227
  // Invoked from stack sampler (thread or signal handler.)
221
228
  static TickSample* TickSampleEvent();
@@ -252,11 +259,12 @@ class CpuProfiler {
252
259
  void StartCollectingProfile(String* title);
253
260
  void StartProcessorIfNotStarted();
254
261
  CpuProfile* StopCollectingProfile(const char* title);
255
- CpuProfile* StopCollectingProfile(String* title);
262
+ CpuProfile* StopCollectingProfile(Object* security_token, String* title);
256
263
  void StopProcessorIfLastProfile();
257
264
 
258
265
  CpuProfilesCollection* profiles_;
259
266
  unsigned next_profile_uid_;
267
+ TokenEnumerator* token_enumerator_;
260
268
  ProfileGenerator* generator_;
261
269
  ProfilerEventsProcessor* processor_;
262
270
  int saved_logging_nesting_;
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -576,6 +576,9 @@ Handle<String> Shell::ReadFile(const char* name) {
576
576
  void Shell::RunShell() {
577
577
  LineEditor* editor = LineEditor::Get();
578
578
  printf("V8 version %s [console: %s]\n", V8::GetVersion(), editor->name());
579
+ if (i::FLAG_debugger) {
580
+ printf("JavaScript debugger enabled\n");
581
+ }
579
582
  editor->Open();
580
583
  while (true) {
581
584
  Locker locker;
File without changes
@@ -341,6 +341,11 @@ function DebugRequest(cmd_line) {
341
341
  this.request_ = this.breakCommandToJSONRequest_(args);
342
342
  break;
343
343
 
344
+ case 'breakpoints':
345
+ case 'bb':
346
+ this.request_ = this.breakpointsCommandToJSONRequest_(args);
347
+ break;
348
+
344
349
  case 'clear':
345
350
  this.request_ = this.clearCommandToJSONRequest_(args);
346
351
  break;
@@ -770,6 +775,15 @@ DebugRequest.prototype.breakCommandToJSONRequest_ = function(args) {
770
775
  };
771
776
 
772
777
 
778
+ DebugRequest.prototype.breakpointsCommandToJSONRequest_ = function(args) {
779
+ if (args && args.length > 0) {
780
+ throw new Error('Unexpected arguments.');
781
+ }
782
+ var request = this.createRequest('listbreakpoints');
783
+ return request.toJSONProtocol();
784
+ };
785
+
786
+
773
787
  // Create a JSON request for the clear command.
774
788
  DebugRequest.prototype.clearCommandToJSONRequest_ = function(args) {
775
789
  // Build a evaluate request from the text command.
@@ -947,6 +961,39 @@ function DebugResponseDetails(response) {
947
961
  result += body.breakpoint;
948
962
  details.text = result;
949
963
  break;
964
+
965
+ case 'listbreakpoints':
966
+ result = 'breakpoints: (' + body.breakpoints.length + ')';
967
+ for (var i = 0; i < body.breakpoints.length; i++) {
968
+ var breakpoint = body.breakpoints[i];
969
+ result += '\n id=' + breakpoint.number;
970
+ result += ' type=' + breakpoint.type;
971
+ if (breakpoint.script_id) {
972
+ result += ' script_id=' + breakpoint.script_id;
973
+ }
974
+ if (breakpoint.script_name) {
975
+ result += ' script_name=' + breakpoint.script_name;
976
+ }
977
+ result += ' line=' + breakpoint.line;
978
+ if (breakpoint.column != null) {
979
+ result += ' column=' + breakpoint.column;
980
+ }
981
+ if (breakpoint.groupId) {
982
+ result += ' groupId=' + breakpoint.groupId;
983
+ }
984
+ if (breakpoint.ignoreCount) {
985
+ result += ' ignoreCount=' + breakpoint.ignoreCount;
986
+ }
987
+ if (breakpoint.active === false) {
988
+ result += ' inactive';
989
+ }
990
+ if (breakpoint.condition) {
991
+ result += ' condition=' + breakpoint.condition;
992
+ }
993
+ result += ' hit_count=' + breakpoint.hit_count;
994
+ }
995
+ details.text = result;
996
+ break;
950
997
 
951
998
  case 'backtrace':
952
999
  if (body.totalFrames == 0) {
@@ -1136,8 +1183,8 @@ function DebugResponseDetails(response) {
1136
1183
 
1137
1184
  default:
1138
1185
  details.text =
1139
- 'Response for unknown command \'' + response.command + '\'' +
1140
- ' (' + json_response + ')';
1186
+ 'Response for unknown command \'' + response.command() + '\'' +
1187
+ ' (' + response.raw_json() + ')';
1141
1188
  }
1142
1189
  } catch (e) {
1143
1190
  details.text = 'Error: "' + e + '" formatting response';
@@ -1153,6 +1200,7 @@ function DebugResponseDetails(response) {
1153
1200
  * @constructor
1154
1201
  */
1155
1202
  function ProtocolPackage(json) {
1203
+ this.raw_json_ = json;
1156
1204
  this.packet_ = JSON.parse(json);
1157
1205
  this.refs_ = [];
1158
1206
  if (this.packet_.refs) {
@@ -1243,6 +1291,11 @@ ProtocolPackage.prototype.lookup = function(handle) {
1243
1291
  }
1244
1292
 
1245
1293
 
1294
+ ProtocolPackage.prototype.raw_json = function() {
1295
+ return this.raw_json_;
1296
+ }
1297
+
1298
+
1246
1299
  function ProtocolValue(value, packet) {
1247
1300
  this.value_ = value;
1248
1301
  this.packet_ = packet;
@@ -318,6 +318,9 @@ Variable* AssignedVariablesAnalyzer::FindSmiLoopVariable(ForStatement* stmt) {
318
318
  Variable* loop_var = init->target()->AsVariableProxy()->AsVariable();
319
319
  if (loop_var == NULL || !loop_var->IsStackAllocated()) return NULL;
320
320
 
321
+ // Don't try to get clever with const or dynamic variables.
322
+ if (loop_var->mode() != Variable::VAR) return NULL;
323
+
321
324
  // The initial value has to be a smi.
322
325
  Literal* init_lit = init->value()->AsLiteral();
323
326
  if (init_lit == NULL || !init_lit->handle()->IsSmi()) return NULL;
File without changes
@@ -238,7 +238,15 @@ function LocalTime(time) {
238
238
  return time + DaylightSavingsOffset(time) + local_time_offset;
239
239
  }
240
240
 
241
+
242
+ var ltcache = {
243
+ key: null,
244
+ val: null
245
+ };
246
+
241
247
  function LocalTimeNoCheck(time) {
248
+ var ltc = ltcache;
249
+ if (%_ObjectEquals(time, ltc.key)) return ltc.val;
242
250
  if (time < -MAX_TIME_MS || time > MAX_TIME_MS) {
243
251
  return $NaN;
244
252
  }
@@ -252,7 +260,8 @@ function LocalTimeNoCheck(time) {
252
260
  } else {
253
261
  var dst_offset = DaylightSavingsOffset(time);
254
262
  }
255
- return time + local_time_offset + dst_offset;
263
+ ltc.key = time;
264
+ return (ltc.val = time + local_time_offset + dst_offset);
256
265
  }
257
266
 
258
267
 
@@ -338,9 +347,10 @@ function DateFromTime(t) {
338
347
  function MakeDay(year, month, date) {
339
348
  if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) return $NaN;
340
349
 
341
- year = TO_INTEGER(year);
342
- month = TO_INTEGER(month);
343
- date = TO_INTEGER(date);
350
+ // Convert to integer and map -0 to 0.
351
+ year = TO_INTEGER_MAP_MINUS_ZERO(year);
352
+ month = TO_INTEGER_MAP_MINUS_ZERO(month);
353
+ date = TO_INTEGER_MAP_MINUS_ZERO(date);
344
354
 
345
355
  if (year < kMinYear || year > kMaxYear ||
346
356
  month < kMinMonth || month > kMaxMonth ||
@@ -443,111 +453,6 @@ var Date_cache = {
443
453
  });
444
454
 
445
455
 
446
- // Helper functions.
447
- function GetTimeFrom(aDate) {
448
- return DATE_VALUE(aDate);
449
- }
450
-
451
- function GetMillisecondsFrom(aDate) {
452
- var t = DATE_VALUE(aDate);
453
- if (NUMBER_IS_NAN(t)) return t;
454
- return MS_FROM_TIME(LocalTimeNoCheck(t));
455
- }
456
-
457
-
458
- function GetUTCMillisecondsFrom(aDate) {
459
- var t = DATE_VALUE(aDate);
460
- if (NUMBER_IS_NAN(t)) return t;
461
- return MS_FROM_TIME(t);
462
- }
463
-
464
-
465
- function GetSecondsFrom(aDate) {
466
- var t = DATE_VALUE(aDate);
467
- if (NUMBER_IS_NAN(t)) return t;
468
- return SEC_FROM_TIME(LocalTimeNoCheck(t));
469
- }
470
-
471
-
472
- function GetUTCSecondsFrom(aDate) {
473
- var t = DATE_VALUE(aDate);
474
- if (NUMBER_IS_NAN(t)) return t;
475
- return SEC_FROM_TIME(t);
476
- }
477
-
478
-
479
- function GetMinutesFrom(aDate) {
480
- var t = DATE_VALUE(aDate);
481
- if (NUMBER_IS_NAN(t)) return t;
482
- return MIN_FROM_TIME(LocalTimeNoCheck(t));
483
- }
484
-
485
-
486
- function GetUTCMinutesFrom(aDate) {
487
- var t = DATE_VALUE(aDate);
488
- if (NUMBER_IS_NAN(t)) return t;
489
- return MIN_FROM_TIME(t);
490
- }
491
-
492
-
493
- function GetHoursFrom(aDate) {
494
- var t = DATE_VALUE(aDate);
495
- if (NUMBER_IS_NAN(t)) return t;
496
- return HOUR_FROM_TIME(LocalTimeNoCheck(t));
497
- }
498
-
499
-
500
- function GetUTCHoursFrom(aDate) {
501
- var t = DATE_VALUE(aDate);
502
- if (NUMBER_IS_NAN(t)) return t;
503
- return HOUR_FROM_TIME(t);
504
- }
505
-
506
-
507
- function GetFullYearFrom(aDate) {
508
- var t = DATE_VALUE(aDate);
509
- if (NUMBER_IS_NAN(t)) return t;
510
- var cache = Date_cache;
511
- if (cache.time === t) return cache.year;
512
- return YEAR_FROM_TIME(LocalTimeNoCheck(t));
513
- }
514
-
515
-
516
- function GetUTCFullYearFrom(aDate) {
517
- var t = DATE_VALUE(aDate);
518
- if (NUMBER_IS_NAN(t)) return t;
519
- return YEAR_FROM_TIME(t);
520
- }
521
-
522
-
523
- function GetMonthFrom(aDate) {
524
- var t = DATE_VALUE(aDate);
525
- if (NUMBER_IS_NAN(t)) return t;
526
- return MONTH_FROM_TIME(LocalTimeNoCheck(t));
527
- }
528
-
529
-
530
- function GetUTCMonthFrom(aDate) {
531
- var t = DATE_VALUE(aDate);
532
- if (NUMBER_IS_NAN(t)) return t;
533
- return MONTH_FROM_TIME(t);
534
- }
535
-
536
-
537
- function GetDateFrom(aDate) {
538
- var t = DATE_VALUE(aDate);
539
- if (NUMBER_IS_NAN(t)) return t;
540
- return DATE_FROM_TIME(LocalTimeNoCheck(t));
541
- }
542
-
543
-
544
- function GetUTCDateFrom(aDate) {
545
- var t = DATE_VALUE(aDate);
546
- if (NUMBER_IS_NAN(t)) return t;
547
- return DATE_FROM_TIME(t);
548
- }
549
-
550
-
551
456
  %FunctionSetPrototype($Date, new $Date($NaN));
552
457
 
553
458
 
@@ -727,37 +632,50 @@ function DateGetTime() {
727
632
 
728
633
  // ECMA 262 - 15.9.5.10
729
634
  function DateGetFullYear() {
730
- return GetFullYearFrom(this)
635
+ var t = DATE_VALUE(this);
636
+ if (NUMBER_IS_NAN(t)) return t;
637
+ var cache = Date_cache;
638
+ if (cache.time === t) return cache.year;
639
+ return YEAR_FROM_TIME(LocalTimeNoCheck(t));
731
640
  }
732
641
 
733
642
 
734
643
  // ECMA 262 - 15.9.5.11
735
644
  function DateGetUTCFullYear() {
736
- return GetUTCFullYearFrom(this)
645
+ var t = DATE_VALUE(this);
646
+ if (NUMBER_IS_NAN(t)) return t;
647
+ return YEAR_FROM_TIME(t);
737
648
  }
738
649
 
739
650
 
740
651
  // ECMA 262 - 15.9.5.12
741
652
  function DateGetMonth() {
742
- return GetMonthFrom(this);
653
+ var t = DATE_VALUE(this);
654
+ if (NUMBER_IS_NAN(t)) return t;
655
+ return MONTH_FROM_TIME(LocalTimeNoCheck(t));
743
656
  }
744
657
 
745
658
 
746
659
  // ECMA 262 - 15.9.5.13
747
660
  function DateGetUTCMonth() {
748
- return GetUTCMonthFrom(this);
661
+ var t = DATE_VALUE(this);
662
+ if (NUMBER_IS_NAN(t)) return t;
663
+ return MONTH_FROM_TIME(t);
749
664
  }
750
665
 
751
666
 
752
667
  // ECMA 262 - 15.9.5.14
753
668
  function DateGetDate() {
754
- return GetDateFrom(this);
669
+ var t = DATE_VALUE(this);
670
+ if (NUMBER_IS_NAN(t)) return t;
671
+ return DATE_FROM_TIME(LocalTimeNoCheck(t));
755
672
  }
756
673
 
757
674
 
758
675
  // ECMA 262 - 15.9.5.15
759
676
  function DateGetUTCDate() {
760
- return GetUTCDateFrom(this);
677
+ var t = DATE_VALUE(this);
678
+ return NAN_OR_DATE_FROM_TIME(t);
761
679
  }
762
680
 
763
681
 
@@ -779,49 +697,62 @@ function DateGetUTCDay() {
779
697
 
780
698
  // ECMA 262 - 15.9.5.18
781
699
  function DateGetHours() {
782
- return GetHoursFrom(this);
700
+ var t = DATE_VALUE(this);
701
+ if (NUMBER_IS_NAN(t)) return t;
702
+ return HOUR_FROM_TIME(LocalTimeNoCheck(t));
783
703
  }
784
704
 
785
705
 
786
706
  // ECMA 262 - 15.9.5.19
787
707
  function DateGetUTCHours() {
788
- return GetUTCHoursFrom(this);
708
+ var t = DATE_VALUE(this);
709
+ if (NUMBER_IS_NAN(t)) return t;
710
+ return HOUR_FROM_TIME(t);
789
711
  }
790
712
 
791
713
 
792
714
  // ECMA 262 - 15.9.5.20
793
715
  function DateGetMinutes() {
794
- return GetMinutesFrom(this);
716
+ var t = DATE_VALUE(this);
717
+ if (NUMBER_IS_NAN(t)) return t;
718
+ return MIN_FROM_TIME(LocalTimeNoCheck(t));
795
719
  }
796
720
 
797
721
 
798
722
  // ECMA 262 - 15.9.5.21
799
723
  function DateGetUTCMinutes() {
800
- return GetUTCMinutesFrom(this);
724
+ var t = DATE_VALUE(this);
725
+ return NAN_OR_MIN_FROM_TIME(t);
801
726
  }
802
727
 
803
728
 
804
729
  // ECMA 262 - 15.9.5.22
805
730
  function DateGetSeconds() {
806
- return GetSecondsFrom(this);
731
+ var t = DATE_VALUE(this);
732
+ if (NUMBER_IS_NAN(t)) return t;
733
+ return SEC_FROM_TIME(LocalTimeNoCheck(t));
807
734
  }
808
735
 
809
736
 
810
737
  // ECMA 262 - 15.9.5.23
811
738
  function DateGetUTCSeconds() {
812
- return GetUTCSecondsFrom(this);
739
+ var t = DATE_VALUE(this);
740
+ return NAN_OR_SEC_FROM_TIME(t);
813
741
  }
814
742
 
815
743
 
816
744
  // ECMA 262 - 15.9.5.24
817
745
  function DateGetMilliseconds() {
818
- return GetMillisecondsFrom(this);
746
+ var t = DATE_VALUE(this);
747
+ if (NUMBER_IS_NAN(t)) return t;
748
+ return MS_FROM_TIME(LocalTimeNoCheck(t));
819
749
  }
820
750
 
821
751
 
822
752
  // ECMA 262 - 15.9.5.25
823
753
  function DateGetUTCMilliseconds() {
824
- return GetUTCMillisecondsFrom(this);
754
+ var t = DATE_VALUE(this);
755
+ return NAN_OR_MS_FROM_TIME(t);
825
756
  }
826
757
 
827
758
 
@@ -862,7 +793,7 @@ function DateSetUTCMilliseconds(ms) {
862
793
  function DateSetSeconds(sec, ms) {
863
794
  var t = LocalTime(DATE_VALUE(this));
864
795
  sec = ToNumber(sec);
865
- ms = %_ArgumentsLength() < 2 ? GetMillisecondsFrom(this) : ToNumber(ms);
796
+ ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
866
797
  var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
867
798
  return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
868
799
  }
@@ -872,7 +803,7 @@ function DateSetSeconds(sec, ms) {
872
803
  function DateSetUTCSeconds(sec, ms) {
873
804
  var t = DATE_VALUE(this);
874
805
  sec = ToNumber(sec);
875
- ms = %_ArgumentsLength() < 2 ? GetUTCMillisecondsFrom(this) : ToNumber(ms);
806
+ ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
876
807
  var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
877
808
  return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
878
809
  }
@@ -883,8 +814,8 @@ function DateSetMinutes(min, sec, ms) {
883
814
  var t = LocalTime(DATE_VALUE(this));
884
815
  min = ToNumber(min);
885
816
  var argc = %_ArgumentsLength();
886
- sec = argc < 2 ? GetSecondsFrom(this) : ToNumber(sec);
887
- ms = argc < 3 ? GetMillisecondsFrom(this) : ToNumber(ms);
817
+ sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
818
+ ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
888
819
  var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
889
820
  return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
890
821
  }
@@ -895,8 +826,8 @@ function DateSetUTCMinutes(min, sec, ms) {
895
826
  var t = DATE_VALUE(this);
896
827
  min = ToNumber(min);
897
828
  var argc = %_ArgumentsLength();
898
- sec = argc < 2 ? GetUTCSecondsFrom(this) : ToNumber(sec);
899
- ms = argc < 3 ? GetUTCMillisecondsFrom(this) : ToNumber(ms);
829
+ sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
830
+ ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
900
831
  var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
901
832
  return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
902
833
  }
@@ -907,9 +838,9 @@ function DateSetHours(hour, min, sec, ms) {
907
838
  var t = LocalTime(DATE_VALUE(this));
908
839
  hour = ToNumber(hour);
909
840
  var argc = %_ArgumentsLength();
910
- min = argc < 2 ? GetMinutesFrom(this) : ToNumber(min);
911
- sec = argc < 3 ? GetSecondsFrom(this) : ToNumber(sec);
912
- ms = argc < 4 ? GetMillisecondsFrom(this) : ToNumber(ms);
841
+ min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
842
+ sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
843
+ ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
913
844
  var time = MakeTime(hour, min, sec, ms);
914
845
  return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
915
846
  }
@@ -920,9 +851,9 @@ function DateSetUTCHours(hour, min, sec, ms) {
920
851
  var t = DATE_VALUE(this);
921
852
  hour = ToNumber(hour);
922
853
  var argc = %_ArgumentsLength();
923
- min = argc < 2 ? GetUTCMinutesFrom(this) : ToNumber(min);
924
- sec = argc < 3 ? GetUTCSecondsFrom(this) : ToNumber(sec);
925
- ms = argc < 4 ? GetUTCMillisecondsFrom(this) : ToNumber(ms);
854
+ min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
855
+ sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
856
+ ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
926
857
  var time = MakeTime(hour, min, sec, ms);
927
858
  return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
928
859
  }
@@ -950,7 +881,7 @@ function DateSetUTCDate(date) {
950
881
  function DateSetMonth(month, date) {
951
882
  var t = LocalTime(DATE_VALUE(this));
952
883
  month = ToNumber(month);
953
- date = %_ArgumentsLength() < 2 ? GetDateFrom(this) : ToNumber(date);
884
+ date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
954
885
  var day = MakeDay(YEAR_FROM_TIME(t), month, date);
955
886
  return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
956
887
  }
@@ -960,7 +891,7 @@ function DateSetMonth(month, date) {
960
891
  function DateSetUTCMonth(month, date) {
961
892
  var t = DATE_VALUE(this);
962
893
  month = ToNumber(month);
963
- date = %_ArgumentsLength() < 2 ? GetUTCDateFrom(this) : ToNumber(date);
894
+ date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
964
895
  var day = MakeDay(YEAR_FROM_TIME(t), month, date);
965
896
  return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
966
897
  }