libv8 3.3.10.4 → 3.5.10.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. data/lib/libv8/scons/CHANGES.txt +24 -231
  2. data/lib/libv8/scons/LICENSE.txt +1 -1
  3. data/lib/libv8/scons/MANIFEST +0 -1
  4. data/lib/libv8/scons/PKG-INFO +1 -1
  5. data/lib/libv8/scons/README.txt +9 -9
  6. data/lib/libv8/scons/RELEASE.txt +75 -77
  7. data/lib/libv8/scons/engine/SCons/Action.py +6 -22
  8. data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
  9. data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
  10. data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
  11. data/lib/libv8/scons/engine/SCons/Defaults.py +10 -24
  12. data/lib/libv8/scons/engine/SCons/Environment.py +19 -118
  13. data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
  14. data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
  15. data/lib/libv8/scons/engine/SCons/Job.py +2 -2
  16. data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
  17. data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
  18. data/lib/libv8/scons/engine/SCons/Node/FS.py +121 -281
  19. data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
  20. data/lib/libv8/scons/engine/SCons/Node/__init__.py +5 -6
  21. data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
  22. data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
  23. data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
  24. data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
  25. data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
  26. data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
  27. data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
  28. data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
  29. data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
  30. data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
  31. data/lib/libv8/scons/engine/SCons/Platform/darwin.py +3 -27
  32. data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
  33. data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
  34. data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
  35. data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
  36. data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
  37. data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
  38. data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
  39. data/lib/libv8/scons/engine/SCons/SConsign.py +3 -9
  40. data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
  41. data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
  42. data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
  43. data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
  44. data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
  45. data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +2 -5
  46. data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
  47. data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
  48. data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
  49. data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
  50. data/lib/libv8/scons/engine/SCons/Script/Main.py +11 -82
  51. data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
  52. data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
  53. data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
  54. data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
  55. data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
  56. data/lib/libv8/scons/engine/SCons/Taskmaster.py +2 -10
  57. data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
  58. data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
  59. data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
  60. data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +2 -19
  61. data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
  62. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
  63. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
  64. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
  65. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
  66. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
  67. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +6 -9
  68. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +2 -29
  69. data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
  70. data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
  71. data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
  72. data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
  73. data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
  74. data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
  75. data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
  76. data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
  77. data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
  78. data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
  79. data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
  80. data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
  81. data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
  82. data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
  83. data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
  84. data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
  85. data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
  86. data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
  87. data/lib/libv8/scons/engine/SCons/Tool/dmd.py +7 -24
  88. data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
  89. data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +2 -3
  90. data/lib/libv8/scons/engine/SCons/Tool/dvips.py +2 -3
  91. data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
  92. data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
  93. data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
  94. data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
  95. data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
  96. data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
  97. data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
  98. data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
  99. data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
  100. data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
  101. data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +3 -2
  102. data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
  103. data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
  104. data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
  105. data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
  106. data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
  107. data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
  108. data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
  109. data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
  110. data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
  111. data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
  112. data/lib/libv8/scons/engine/SCons/Tool/install.py +3 -57
  113. data/lib/libv8/scons/engine/SCons/Tool/intelc.py +25 -65
  114. data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
  115. data/lib/libv8/scons/engine/SCons/Tool/jar.py +3 -9
  116. data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
  117. data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
  118. data/lib/libv8/scons/engine/SCons/Tool/latex.py +2 -3
  119. data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
  120. data/lib/libv8/scons/engine/SCons/Tool/link.py +5 -6
  121. data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
  122. data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
  123. data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
  124. data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
  125. data/lib/libv8/scons/engine/SCons/Tool/mingw.py +10 -31
  126. data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
  127. data/lib/libv8/scons/engine/SCons/Tool/mslink.py +9 -61
  128. data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
  129. data/lib/libv8/scons/engine/SCons/Tool/msvc.py +11 -21
  130. data/lib/libv8/scons/engine/SCons/Tool/msvs.py +59 -477
  131. data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
  132. data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
  133. data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
  134. data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
  135. data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
  136. data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
  137. data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
  138. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
  139. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
  140. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
  141. data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
  142. data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
  143. data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
  144. data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
  145. data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +2 -3
  146. data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +2 -3
  147. data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
  148. data/lib/libv8/scons/engine/SCons/Tool/rmic.py +3 -9
  149. data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
  150. data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
  151. data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
  152. data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
  153. data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
  154. data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +3 -2
  155. data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
  156. data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
  157. data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
  158. data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
  159. data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
  160. data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
  161. data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +3 -2
  162. data/lib/libv8/scons/engine/SCons/Tool/swig.py +5 -6
  163. data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
  164. data/lib/libv8/scons/engine/SCons/Tool/tex.py +43 -96
  165. data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
  166. data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
  167. data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
  168. data/lib/libv8/scons/engine/SCons/Tool/yacc.py +2 -12
  169. data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
  170. data/lib/libv8/scons/engine/SCons/Util.py +3 -3
  171. data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
  172. data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
  173. data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
  174. data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
  175. data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
  176. data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
  177. data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
  178. data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
  179. data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
  180. data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
  181. data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
  182. data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
  183. data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
  184. data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
  185. data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
  186. data/lib/libv8/scons/engine/SCons/dblite.py +1 -4
  187. data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
  188. data/lib/libv8/scons/scons-time.1 +3 -3
  189. data/lib/libv8/scons/scons.1 +1164 -1170
  190. data/lib/libv8/scons/sconsign.1 +3 -3
  191. data/lib/libv8/scons/script/scons +22 -22
  192. data/lib/libv8/scons/script/scons-time +2 -2
  193. data/lib/libv8/scons/script/scons.bat +4 -7
  194. data/lib/libv8/scons/script/sconsign +20 -21
  195. data/lib/libv8/scons/setup.cfg +1 -0
  196. data/lib/libv8/scons/setup.py +40 -38
  197. data/lib/libv8/v8/.gitignore +1 -1
  198. data/lib/libv8/v8/AUTHORS +2 -0
  199. data/lib/libv8/v8/ChangeLog +387 -0
  200. data/lib/libv8/v8/Makefile +171 -0
  201. data/lib/libv8/v8/SConstruct +124 -51
  202. data/lib/libv8/v8/build/README.txt +31 -14
  203. data/lib/libv8/v8/build/all.gyp +11 -4
  204. data/lib/libv8/v8/build/armu.gypi +6 -2
  205. data/lib/libv8/v8/build/common.gypi +240 -94
  206. data/lib/libv8/v8/build/gyp_v8 +32 -4
  207. data/lib/libv8/v8/build/standalone.gypi +200 -0
  208. data/lib/libv8/v8/include/v8-debug.h +0 -0
  209. data/lib/libv8/v8/include/v8-profiler.h +8 -11
  210. data/lib/libv8/v8/include/v8.h +191 -108
  211. data/lib/libv8/v8/preparser/SConscript +2 -2
  212. data/lib/libv8/v8/preparser/preparser-process.cc +3 -3
  213. data/lib/libv8/v8/preparser/preparser.gyp +42 -0
  214. data/lib/libv8/v8/src/SConscript +33 -8
  215. data/lib/libv8/v8/src/accessors.cc +77 -43
  216. data/lib/libv8/v8/src/api.cc +393 -191
  217. data/lib/libv8/v8/src/api.h +4 -8
  218. data/lib/libv8/v8/src/apinatives.js +15 -3
  219. data/lib/libv8/v8/src/arguments.h +8 -0
  220. data/lib/libv8/v8/src/arm/assembler-arm.cc +120 -120
  221. data/lib/libv8/v8/src/arm/assembler-arm.h +92 -43
  222. data/lib/libv8/v8/src/arm/builtins-arm.cc +32 -39
  223. data/lib/libv8/v8/src/arm/code-stubs-arm.cc +572 -351
  224. data/lib/libv8/v8/src/arm/code-stubs-arm.h +8 -77
  225. data/lib/libv8/v8/src/arm/codegen-arm.h +0 -2
  226. data/lib/libv8/v8/src/arm/deoptimizer-arm.cc +50 -30
  227. data/lib/libv8/v8/src/arm/disasm-arm.cc +1 -1
  228. data/lib/libv8/v8/src/arm/frames-arm.h +9 -5
  229. data/lib/libv8/v8/src/arm/full-codegen-arm.cc +331 -432
  230. data/lib/libv8/v8/src/arm/ic-arm.cc +192 -124
  231. data/lib/libv8/v8/src/arm/lithium-arm.cc +216 -232
  232. data/lib/libv8/v8/src/arm/lithium-arm.h +106 -259
  233. data/lib/libv8/v8/src/arm/lithium-codegen-arm.cc +633 -642
  234. data/lib/libv8/v8/src/arm/lithium-codegen-arm.h +4 -4
  235. data/lib/libv8/v8/src/arm/lithium-gap-resolver-arm.cc +1 -3
  236. data/lib/libv8/v8/src/arm/macro-assembler-arm.cc +260 -185
  237. data/lib/libv8/v8/src/arm/macro-assembler-arm.h +45 -25
  238. data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.cc +25 -13
  239. data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.h +3 -0
  240. data/lib/libv8/v8/src/arm/stub-cache-arm.cc +413 -226
  241. data/lib/libv8/v8/src/array.js +38 -18
  242. data/lib/libv8/v8/src/assembler.cc +12 -5
  243. data/lib/libv8/v8/src/assembler.h +15 -9
  244. data/lib/libv8/v8/src/ast-inl.h +34 -25
  245. data/lib/libv8/v8/src/ast.cc +141 -72
  246. data/lib/libv8/v8/src/ast.h +255 -181
  247. data/lib/libv8/v8/src/bignum.cc +3 -4
  248. data/lib/libv8/v8/src/bootstrapper.cc +55 -11
  249. data/lib/libv8/v8/src/bootstrapper.h +3 -2
  250. data/lib/libv8/v8/src/builtins.cc +8 -2
  251. data/lib/libv8/v8/src/builtins.h +4 -0
  252. data/lib/libv8/v8/src/cached-powers.cc +8 -4
  253. data/lib/libv8/v8/src/checks.h +3 -3
  254. data/lib/libv8/v8/src/code-stubs.cc +173 -28
  255. data/lib/libv8/v8/src/code-stubs.h +104 -148
  256. data/lib/libv8/v8/src/codegen.cc +8 -8
  257. data/lib/libv8/v8/src/compilation-cache.cc +2 -47
  258. data/lib/libv8/v8/src/compilation-cache.h +0 -10
  259. data/lib/libv8/v8/src/compiler.cc +27 -16
  260. data/lib/libv8/v8/src/compiler.h +13 -18
  261. data/lib/libv8/v8/src/contexts.cc +107 -72
  262. data/lib/libv8/v8/src/contexts.h +70 -34
  263. data/lib/libv8/v8/src/conversions-inl.h +572 -14
  264. data/lib/libv8/v8/src/conversions.cc +9 -707
  265. data/lib/libv8/v8/src/conversions.h +23 -12
  266. data/lib/libv8/v8/src/cpu-profiler-inl.h +2 -19
  267. data/lib/libv8/v8/src/cpu-profiler.cc +4 -21
  268. data/lib/libv8/v8/src/cpu-profiler.h +8 -17
  269. data/lib/libv8/v8/src/d8-debug.cc +5 -3
  270. data/lib/libv8/v8/src/d8-debug.h +6 -7
  271. data/lib/libv8/v8/src/d8-posix.cc +1 -10
  272. data/lib/libv8/v8/src/d8.cc +721 -219
  273. data/lib/libv8/v8/src/d8.gyp +37 -12
  274. data/lib/libv8/v8/src/d8.h +141 -19
  275. data/lib/libv8/v8/src/d8.js +17 -8
  276. data/lib/libv8/v8/src/date.js +16 -5
  277. data/lib/libv8/v8/src/dateparser-inl.h +242 -39
  278. data/lib/libv8/v8/src/dateparser.cc +38 -4
  279. data/lib/libv8/v8/src/dateparser.h +170 -28
  280. data/lib/libv8/v8/src/debug-agent.cc +5 -3
  281. data/lib/libv8/v8/src/debug-agent.h +11 -7
  282. data/lib/libv8/v8/src/debug-debugger.js +65 -34
  283. data/lib/libv8/v8/src/debug.cc +30 -60
  284. data/lib/libv8/v8/src/debug.h +5 -3
  285. data/lib/libv8/v8/src/deoptimizer.cc +227 -10
  286. data/lib/libv8/v8/src/deoptimizer.h +133 -9
  287. data/lib/libv8/v8/src/disassembler.cc +22 -14
  288. data/lib/libv8/v8/src/diy-fp.cc +4 -3
  289. data/lib/libv8/v8/src/diy-fp.h +3 -3
  290. data/lib/libv8/v8/src/elements.cc +634 -0
  291. data/lib/libv8/v8/src/elements.h +95 -0
  292. data/lib/libv8/v8/src/execution.cc +5 -21
  293. data/lib/libv8/v8/src/extensions/experimental/break-iterator.cc +3 -1
  294. data/lib/libv8/v8/src/extensions/experimental/break-iterator.h +1 -1
  295. data/lib/libv8/v8/src/extensions/experimental/collator.cc +6 -2
  296. data/lib/libv8/v8/src/extensions/experimental/collator.h +1 -2
  297. data/lib/libv8/v8/src/extensions/experimental/datetime-format.cc +384 -0
  298. data/lib/libv8/v8/src/extensions/experimental/datetime-format.h +83 -0
  299. data/lib/libv8/v8/src/extensions/experimental/experimental.gyp +18 -7
  300. data/lib/libv8/v8/src/extensions/experimental/i18n-extension.cc +12 -16
  301. data/lib/libv8/v8/src/extensions/experimental/i18n-extension.h +1 -1
  302. data/lib/libv8/v8/src/extensions/experimental/i18n-js2c.py +126 -0
  303. data/lib/libv8/v8/src/extensions/experimental/i18n-locale.cc +3 -4
  304. data/lib/libv8/v8/src/extensions/experimental/i18n-locale.h +1 -1
  305. data/lib/libv8/v8/src/{shell.h → extensions/experimental/i18n-natives.h} +8 -20
  306. data/lib/libv8/v8/src/extensions/experimental/i18n-utils.cc +45 -1
  307. data/lib/libv8/v8/src/extensions/experimental/i18n-utils.h +21 -1
  308. data/lib/libv8/v8/src/extensions/experimental/i18n.js +211 -11
  309. data/lib/libv8/v8/src/extensions/experimental/language-matcher.cc +4 -3
  310. data/lib/libv8/v8/src/extensions/experimental/language-matcher.h +1 -1
  311. data/lib/libv8/v8/src/extensions/experimental/number-format.cc +374 -0
  312. data/lib/libv8/v8/src/extensions/experimental/number-format.h +71 -0
  313. data/lib/libv8/v8/src/factory.cc +89 -18
  314. data/lib/libv8/v8/src/factory.h +36 -8
  315. data/lib/libv8/v8/src/flag-definitions.h +11 -44
  316. data/lib/libv8/v8/src/frames-inl.h +8 -1
  317. data/lib/libv8/v8/src/frames.cc +39 -3
  318. data/lib/libv8/v8/src/frames.h +10 -3
  319. data/lib/libv8/v8/src/full-codegen.cc +311 -293
  320. data/lib/libv8/v8/src/full-codegen.h +183 -143
  321. data/lib/libv8/v8/src/func-name-inferrer.cc +29 -15
  322. data/lib/libv8/v8/src/func-name-inferrer.h +19 -9
  323. data/lib/libv8/v8/src/gdb-jit.cc +658 -55
  324. data/lib/libv8/v8/src/gdb-jit.h +6 -2
  325. data/lib/libv8/v8/src/global-handles.cc +368 -312
  326. data/lib/libv8/v8/src/global-handles.h +29 -36
  327. data/lib/libv8/v8/src/globals.h +3 -1
  328. data/lib/libv8/v8/src/handles.cc +43 -69
  329. data/lib/libv8/v8/src/handles.h +21 -16
  330. data/lib/libv8/v8/src/heap-inl.h +11 -13
  331. data/lib/libv8/v8/src/heap-profiler.cc +0 -999
  332. data/lib/libv8/v8/src/heap-profiler.h +0 -303
  333. data/lib/libv8/v8/src/heap.cc +366 -141
  334. data/lib/libv8/v8/src/heap.h +87 -26
  335. data/lib/libv8/v8/src/hydrogen-instructions.cc +192 -81
  336. data/lib/libv8/v8/src/hydrogen-instructions.h +711 -482
  337. data/lib/libv8/v8/src/hydrogen.cc +1146 -629
  338. data/lib/libv8/v8/src/hydrogen.h +100 -64
  339. data/lib/libv8/v8/src/ia32/assembler-ia32.cc +19 -0
  340. data/lib/libv8/v8/src/ia32/assembler-ia32.h +15 -2
  341. data/lib/libv8/v8/src/ia32/builtins-ia32.cc +34 -39
  342. data/lib/libv8/v8/src/ia32/code-stubs-ia32.cc +675 -377
  343. data/lib/libv8/v8/src/ia32/code-stubs-ia32.h +8 -69
  344. data/lib/libv8/v8/src/ia32/codegen-ia32.cc +1 -0
  345. data/lib/libv8/v8/src/ia32/codegen-ia32.h +0 -2
  346. data/lib/libv8/v8/src/ia32/cpu-ia32.cc +3 -2
  347. data/lib/libv8/v8/src/ia32/deoptimizer-ia32.cc +28 -3
  348. data/lib/libv8/v8/src/ia32/disasm-ia32.cc +21 -10
  349. data/lib/libv8/v8/src/ia32/frames-ia32.h +6 -5
  350. data/lib/libv8/v8/src/ia32/full-codegen-ia32.cc +459 -465
  351. data/lib/libv8/v8/src/ia32/ic-ia32.cc +196 -147
  352. data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.cc +575 -650
  353. data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.h +19 -21
  354. data/lib/libv8/v8/src/ia32/lithium-gap-resolver-ia32.cc +7 -2
  355. data/lib/libv8/v8/src/ia32/lithium-ia32.cc +261 -256
  356. data/lib/libv8/v8/src/ia32/lithium-ia32.h +234 -335
  357. data/lib/libv8/v8/src/ia32/macro-assembler-ia32.cc +224 -67
  358. data/lib/libv8/v8/src/ia32/macro-assembler-ia32.h +63 -19
  359. data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.cc +22 -8
  360. data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.h +3 -0
  361. data/lib/libv8/v8/src/ia32/stub-cache-ia32.cc +380 -239
  362. data/lib/libv8/v8/src/ic.cc +198 -234
  363. data/lib/libv8/v8/src/ic.h +32 -30
  364. data/lib/libv8/v8/src/interpreter-irregexp.cc +6 -4
  365. data/lib/libv8/v8/src/isolate.cc +112 -95
  366. data/lib/libv8/v8/src/isolate.h +55 -71
  367. data/lib/libv8/v8/src/json-parser.h +486 -48
  368. data/lib/libv8/v8/src/json.js +28 -23
  369. data/lib/libv8/v8/src/jsregexp.cc +163 -208
  370. data/lib/libv8/v8/src/jsregexp.h +0 -1
  371. data/lib/libv8/v8/src/lithium-allocator-inl.h +29 -27
  372. data/lib/libv8/v8/src/lithium-allocator.cc +22 -17
  373. data/lib/libv8/v8/src/lithium-allocator.h +8 -8
  374. data/lib/libv8/v8/src/lithium.cc +16 -11
  375. data/lib/libv8/v8/src/lithium.h +31 -34
  376. data/lib/libv8/v8/src/liveedit.cc +111 -15
  377. data/lib/libv8/v8/src/liveedit.h +3 -4
  378. data/lib/libv8/v8/src/liveobjectlist.cc +116 -80
  379. data/lib/libv8/v8/src/liveobjectlist.h +2 -2
  380. data/lib/libv8/v8/src/log-inl.h +0 -4
  381. data/lib/libv8/v8/src/log-utils.cc +25 -143
  382. data/lib/libv8/v8/src/log-utils.h +13 -92
  383. data/lib/libv8/v8/src/log.cc +26 -249
  384. data/lib/libv8/v8/src/log.h +6 -17
  385. data/lib/libv8/v8/src/macros.py +9 -6
  386. data/lib/libv8/v8/src/mark-compact.cc +276 -56
  387. data/lib/libv8/v8/src/mark-compact.h +20 -0
  388. data/lib/libv8/v8/src/messages.js +93 -39
  389. data/lib/libv8/v8/src/mips/assembler-mips-inl.h +9 -3
  390. data/lib/libv8/v8/src/mips/assembler-mips.cc +297 -189
  391. data/lib/libv8/v8/src/mips/assembler-mips.h +121 -54
  392. data/lib/libv8/v8/src/mips/builtins-mips.cc +23 -24
  393. data/lib/libv8/v8/src/mips/code-stubs-mips.cc +484 -263
  394. data/lib/libv8/v8/src/mips/code-stubs-mips.h +8 -83
  395. data/lib/libv8/v8/src/mips/codegen-mips.h +0 -2
  396. data/lib/libv8/v8/src/mips/constants-mips.h +37 -11
  397. data/lib/libv8/v8/src/mips/deoptimizer-mips.cc +6 -1
  398. data/lib/libv8/v8/src/mips/frames-mips.h +8 -7
  399. data/lib/libv8/v8/src/mips/full-codegen-mips.cc +258 -419
  400. data/lib/libv8/v8/src/mips/ic-mips.cc +181 -121
  401. data/lib/libv8/v8/src/mips/macro-assembler-mips.cc +640 -382
  402. data/lib/libv8/v8/src/mips/macro-assembler-mips.h +94 -89
  403. data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.cc +23 -10
  404. data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.h +6 -1
  405. data/lib/libv8/v8/src/mips/simulator-mips.cc +249 -49
  406. data/lib/libv8/v8/src/mips/simulator-mips.h +25 -1
  407. data/lib/libv8/v8/src/mips/stub-cache-mips.cc +373 -161
  408. data/lib/libv8/v8/src/mirror-debugger.js +55 -8
  409. data/lib/libv8/v8/src/misc-intrinsics.h +89 -0
  410. data/lib/libv8/v8/src/mksnapshot.cc +36 -4
  411. data/lib/libv8/v8/src/natives.h +5 -2
  412. data/lib/libv8/v8/src/objects-debug.cc +73 -6
  413. data/lib/libv8/v8/src/objects-inl.h +529 -164
  414. data/lib/libv8/v8/src/objects-printer.cc +67 -12
  415. data/lib/libv8/v8/src/objects-visiting.cc +13 -2
  416. data/lib/libv8/v8/src/objects-visiting.h +41 -1
  417. data/lib/libv8/v8/src/objects.cc +2200 -1177
  418. data/lib/libv8/v8/src/objects.h +912 -283
  419. data/lib/libv8/v8/src/parser.cc +566 -371
  420. data/lib/libv8/v8/src/parser.h +35 -33
  421. data/lib/libv8/v8/src/platform-cygwin.cc +10 -25
  422. data/lib/libv8/v8/src/platform-freebsd.cc +4 -29
  423. data/lib/libv8/v8/src/platform-linux.cc +60 -57
  424. data/lib/libv8/v8/src/platform-macos.cc +4 -27
  425. data/lib/libv8/v8/src/platform-nullos.cc +3 -16
  426. data/lib/libv8/v8/src/platform-openbsd.cc +247 -85
  427. data/lib/libv8/v8/src/platform-posix.cc +43 -1
  428. data/lib/libv8/v8/src/platform-solaris.cc +151 -112
  429. data/lib/libv8/v8/src/platform-tls.h +1 -1
  430. data/lib/libv8/v8/src/platform-win32.cc +65 -39
  431. data/lib/libv8/v8/src/platform.h +17 -14
  432. data/lib/libv8/v8/src/preparse-data-format.h +2 -2
  433. data/lib/libv8/v8/src/preparse-data.h +8 -2
  434. data/lib/libv8/v8/src/preparser-api.cc +2 -18
  435. data/lib/libv8/v8/src/preparser.cc +106 -65
  436. data/lib/libv8/v8/src/preparser.h +26 -5
  437. data/lib/libv8/v8/src/prettyprinter.cc +25 -43
  438. data/lib/libv8/v8/src/profile-generator-inl.h +0 -4
  439. data/lib/libv8/v8/src/profile-generator.cc +213 -34
  440. data/lib/libv8/v8/src/profile-generator.h +9 -9
  441. data/lib/libv8/v8/src/property.h +1 -0
  442. data/lib/libv8/v8/src/proxy.js +74 -4
  443. data/lib/libv8/v8/src/regexp-macro-assembler.cc +10 -6
  444. data/lib/libv8/v8/src/regexp.js +16 -11
  445. data/lib/libv8/v8/src/rewriter.cc +24 -133
  446. data/lib/libv8/v8/src/runtime-profiler.cc +27 -151
  447. data/lib/libv8/v8/src/runtime-profiler.h +5 -31
  448. data/lib/libv8/v8/src/runtime.cc +1450 -681
  449. data/lib/libv8/v8/src/runtime.h +47 -31
  450. data/lib/libv8/v8/src/runtime.js +2 -1
  451. data/lib/libv8/v8/src/scanner-base.cc +358 -220
  452. data/lib/libv8/v8/src/scanner-base.h +30 -138
  453. data/lib/libv8/v8/src/scanner.cc +0 -18
  454. data/lib/libv8/v8/src/scanner.h +0 -15
  455. data/lib/libv8/v8/src/scopeinfo.cc +3 -1
  456. data/lib/libv8/v8/src/scopeinfo.h +1 -6
  457. data/lib/libv8/v8/src/scopes.cc +243 -253
  458. data/lib/libv8/v8/src/scopes.h +58 -109
  459. data/lib/libv8/v8/src/serialize.cc +12 -54
  460. data/lib/libv8/v8/src/serialize.h +47 -0
  461. data/lib/libv8/v8/src/small-pointer-list.h +25 -0
  462. data/lib/libv8/v8/src/spaces-inl.h +4 -50
  463. data/lib/libv8/v8/src/spaces.cc +64 -131
  464. data/lib/libv8/v8/src/spaces.h +19 -70
  465. data/lib/libv8/v8/src/string-stream.cc +3 -1
  466. data/lib/libv8/v8/src/string.js +10 -6
  467. data/lib/libv8/v8/src/strtod.cc +7 -3
  468. data/lib/libv8/v8/src/stub-cache.cc +59 -129
  469. data/lib/libv8/v8/src/stub-cache.h +42 -54
  470. data/lib/libv8/v8/src/third_party/valgrind/valgrind.h +1447 -1339
  471. data/lib/libv8/v8/src/token.cc +4 -4
  472. data/lib/libv8/v8/src/token.h +6 -5
  473. data/lib/libv8/v8/src/type-info.cc +173 -129
  474. data/lib/libv8/v8/src/type-info.h +40 -22
  475. data/lib/libv8/v8/src/utils.cc +25 -304
  476. data/lib/libv8/v8/src/utils.h +118 -3
  477. data/lib/libv8/v8/src/v8-counters.h +3 -6
  478. data/lib/libv8/v8/src/v8.cc +34 -27
  479. data/lib/libv8/v8/src/v8.h +7 -7
  480. data/lib/libv8/v8/src/v8conversions.cc +129 -0
  481. data/lib/libv8/v8/src/v8conversions.h +60 -0
  482. data/lib/libv8/v8/src/v8globals.h +15 -6
  483. data/lib/libv8/v8/src/v8natives.js +300 -78
  484. data/lib/libv8/v8/src/v8threads.cc +14 -6
  485. data/lib/libv8/v8/src/v8threads.h +4 -1
  486. data/lib/libv8/v8/src/v8utils.cc +360 -0
  487. data/lib/libv8/v8/src/v8utils.h +17 -66
  488. data/lib/libv8/v8/src/variables.cc +7 -12
  489. data/lib/libv8/v8/src/variables.h +12 -10
  490. data/lib/libv8/v8/src/version.cc +2 -2
  491. data/lib/libv8/v8/src/vm-state-inl.h +0 -41
  492. data/lib/libv8/v8/src/vm-state.h +0 -11
  493. data/lib/libv8/v8/src/weakmap.js +103 -0
  494. data/lib/libv8/v8/src/x64/assembler-x64.h +6 -3
  495. data/lib/libv8/v8/src/x64/builtins-x64.cc +25 -22
  496. data/lib/libv8/v8/src/x64/code-stubs-x64.cc +523 -250
  497. data/lib/libv8/v8/src/x64/code-stubs-x64.h +8 -71
  498. data/lib/libv8/v8/src/x64/codegen-x64.cc +1 -0
  499. data/lib/libv8/v8/src/x64/codegen-x64.h +0 -2
  500. data/lib/libv8/v8/src/x64/cpu-x64.cc +2 -1
  501. data/lib/libv8/v8/src/x64/deoptimizer-x64.cc +40 -8
  502. data/lib/libv8/v8/src/x64/disasm-x64.cc +12 -10
  503. data/lib/libv8/v8/src/x64/frames-x64.h +7 -6
  504. data/lib/libv8/v8/src/x64/full-codegen-x64.cc +310 -415
  505. data/lib/libv8/v8/src/x64/ic-x64.cc +180 -117
  506. data/lib/libv8/v8/src/x64/lithium-codegen-x64.cc +411 -523
  507. data/lib/libv8/v8/src/x64/lithium-codegen-x64.h +11 -6
  508. data/lib/libv8/v8/src/x64/lithium-x64.cc +191 -216
  509. data/lib/libv8/v8/src/x64/lithium-x64.h +112 -263
  510. data/lib/libv8/v8/src/x64/macro-assembler-x64.cc +177 -61
  511. data/lib/libv8/v8/src/x64/macro-assembler-x64.h +23 -7
  512. data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.cc +21 -9
  513. data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.h +6 -0
  514. data/lib/libv8/v8/src/x64/stub-cache-x64.cc +273 -107
  515. data/lib/libv8/v8/src/zone.cc +31 -22
  516. data/lib/libv8/v8/src/zone.h +12 -6
  517. data/lib/libv8/v8/tools/codemap.js +8 -0
  518. data/lib/libv8/v8/tools/gcmole/Makefile +43 -0
  519. data/lib/libv8/v8/tools/gcmole/gcmole.lua +0 -2
  520. data/lib/libv8/v8/tools/gdb-v8-support.py +154 -0
  521. data/lib/libv8/v8/tools/grokdump.py +44 -35
  522. data/lib/libv8/v8/tools/gyp/v8.gyp +94 -248
  523. data/lib/libv8/v8/tools/js2c.py +83 -52
  524. data/lib/libv8/v8/tools/linux-tick-processor +4 -6
  525. data/lib/libv8/v8/tools/ll_prof.py +3 -3
  526. data/lib/libv8/v8/tools/oom_dump/README +3 -1
  527. data/lib/libv8/v8/tools/presubmit.py +11 -4
  528. data/lib/libv8/v8/tools/profile.js +46 -2
  529. data/lib/libv8/v8/tools/splaytree.js +11 -0
  530. data/lib/libv8/v8/tools/stats-viewer.py +15 -11
  531. data/lib/libv8/v8/tools/test-wrapper-gypbuild.py +227 -0
  532. data/lib/libv8/v8/tools/test.py +28 -8
  533. data/lib/libv8/v8/tools/tickprocessor.js +0 -16
  534. data/lib/libv8/version.rb +1 -1
  535. data/libv8.gemspec +2 -2
  536. metadata +31 -19
  537. data/lib/libv8/scons/engine/SCons/Tool/f03.py +0 -63
  538. data/lib/libv8/v8/src/json-parser.cc +0 -504
@@ -143,14 +143,13 @@ class LiveEdit : AllStatic {
143
143
  // A general-purpose comparator between 2 arrays.
144
144
  class Comparator {
145
145
  public:
146
-
147
146
  // Holds 2 arrays of some elements allowing to compare any pair of
148
147
  // element from the first array and element from the second array.
149
148
  class Input {
150
149
  public:
151
- virtual int getLength1() = 0;
152
- virtual int getLength2() = 0;
153
- virtual bool equals(int index1, int index2) = 0;
150
+ virtual int GetLength1() = 0;
151
+ virtual int GetLength2() = 0;
152
+ virtual bool Equals(int index1, int index2) = 0;
154
153
 
155
154
  protected:
156
155
  virtual ~Input() {}
@@ -36,11 +36,12 @@
36
36
  #include "global-handles.h"
37
37
  #include "heap.h"
38
38
  #include "inspector.h"
39
+ #include "isolate.h"
39
40
  #include "list-inl.h"
40
41
  #include "liveobjectlist-inl.h"
41
42
  #include "string-stream.h"
42
- #include "top.h"
43
43
  #include "v8utils.h"
44
+ #include "v8conversions.h"
44
45
 
45
46
  namespace v8 {
46
47
  namespace internal {
@@ -109,7 +110,7 @@ typedef int (*RawComparer)(const void*, const void*);
109
110
  \
110
111
  v(Context, "meta: Context") \
111
112
  v(ByteArray, "meta: ByteArray") \
112
- v(PixelArray, "meta: PixelArray") \
113
+ v(ExternalPixelArray, "meta: PixelArray") \
113
114
  v(ExternalArray, "meta: ExternalArray") \
114
115
  v(FixedArray, "meta: FixedArray") \
115
116
  v(String, "String") \
@@ -211,8 +212,9 @@ static AllocationSpace FindSpaceFor(String* space_str) {
211
212
 
212
213
 
213
214
  static bool InSpace(AllocationSpace space, HeapObject *heap_obj) {
215
+ Heap* heap = ISOLATE->heap();
214
216
  if (space != LO_SPACE) {
215
- return Heap::InSpace(heap_obj, space);
217
+ return heap->InSpace(heap_obj, space);
216
218
  }
217
219
 
218
220
  // This is an optimization to speed up the check for an object in the LO
@@ -224,11 +226,11 @@ static bool InSpace(AllocationSpace space, HeapObject *heap_obj) {
224
226
  int first_space = static_cast<int>(FIRST_SPACE);
225
227
  int last_space = static_cast<int>(LO_SPACE);
226
228
  for (int sp = first_space; sp < last_space; sp++) {
227
- if (Heap::InSpace(heap_obj, static_cast<AllocationSpace>(sp))) {
229
+ if (heap->InSpace(heap_obj, static_cast<AllocationSpace>(sp))) {
228
230
  return false;
229
231
  }
230
232
  }
231
- SLOW_ASSERT(Heap::InSpace(heap_obj, LO_SPACE));
233
+ SLOW_ASSERT(heap->InSpace(heap_obj, LO_SPACE));
232
234
  return true;
233
235
  }
234
236
 
@@ -285,7 +287,7 @@ LolFilter::LolFilter(Handle<JSObject> filter_obj)
285
287
 
286
288
 
287
289
  void LolFilter::InitTypeFilter(Handle<JSObject> filter_obj) {
288
- Handle<String> type_sym = Factory::LookupAsciiSymbol("type");
290
+ Handle<String> type_sym = FACTORY->LookupAsciiSymbol("type");
289
291
  MaybeObject* maybe_result = filter_obj->GetProperty(*type_sym);
290
292
  Object* type_obj;
291
293
  if (maybe_result->ToObject(&type_obj)) {
@@ -301,7 +303,7 @@ void LolFilter::InitTypeFilter(Handle<JSObject> filter_obj) {
301
303
 
302
304
 
303
305
  void LolFilter::InitSpaceFilter(Handle<JSObject> filter_obj) {
304
- Handle<String> space_sym = Factory::LookupAsciiSymbol("space");
306
+ Handle<String> space_sym = FACTORY->LookupAsciiSymbol("space");
305
307
  MaybeObject* maybe_result = filter_obj->GetProperty(*space_sym);
306
308
  Object* space_obj;
307
309
  if (maybe_result->ToObject(&space_obj)) {
@@ -317,7 +319,7 @@ void LolFilter::InitSpaceFilter(Handle<JSObject> filter_obj) {
317
319
 
318
320
 
319
321
  void LolFilter::InitPropertyFilter(Handle<JSObject> filter_obj) {
320
- Handle<String> prop_sym = Factory::LookupAsciiSymbol("prop");
322
+ Handle<String> prop_sym = FACTORY->LookupAsciiSymbol("prop");
321
323
  MaybeObject* maybe_result = filter_obj->GetProperty(*prop_sym);
322
324
  Object* prop_obj;
323
325
  if (maybe_result->ToObject(&prop_obj)) {
@@ -571,7 +573,9 @@ static bool AddObjDetail(Handle<FixedArray> arr,
571
573
  Handle<JSObject> detail,
572
574
  Handle<String> desc,
573
575
  Handle<Object> error) {
574
- detail = Factory::NewJSObject(Top::object_function());
576
+ Isolate* isolate = Isolate::Current();
577
+ Factory* factory = isolate->factory();
578
+ detail = factory->NewJSObject(isolate->object_function());
575
579
  if (detail->IsFailure()) {
576
580
  error = detail;
577
581
  return false;
@@ -586,7 +590,7 @@ static bool AddObjDetail(Handle<FixedArray> arr,
586
590
  desc_str = buffer;
587
591
  size = obj->Size();
588
592
  }
589
- desc = Factory::NewStringFromAscii(CStrVector(desc_str));
593
+ desc = factory->NewStringFromAscii(CStrVector(desc_str));
590
594
  if (desc->IsFailure()) {
591
595
  error = desc;
592
596
  return false;
@@ -663,10 +667,13 @@ class LolDumpWriter: public DumpWriter {
663
667
  int index = 0;
664
668
  int count = 0;
665
669
 
670
+ Isolate* isolate = Isolate::Current();
671
+ Factory* factory = isolate->factory();
672
+
666
673
  // Prefetch some needed symbols.
667
- Handle<String> id_sym = Factory::LookupAsciiSymbol("id");
668
- Handle<String> desc_sym = Factory::LookupAsciiSymbol("desc");
669
- Handle<String> size_sym = Factory::LookupAsciiSymbol("size");
674
+ Handle<String> id_sym = factory->LookupAsciiSymbol("id");
675
+ Handle<String> desc_sym = factory->LookupAsciiSymbol("desc");
676
+ Handle<String> size_sym = factory->LookupAsciiSymbol("size");
670
677
 
671
678
  // Fill the array with the lol object details.
672
679
  Handle<JSObject> detail;
@@ -1089,7 +1096,9 @@ static int CountHeapObjects() {
1089
1096
 
1090
1097
  // Captures a current snapshot of all objects in the heap.
1091
1098
  MaybeObject* LiveObjectList::Capture() {
1092
- HandleScope scope;
1099
+ Isolate* isolate = Isolate::Current();
1100
+ Factory* factory = isolate->factory();
1101
+ HandleScope scope(isolate);
1093
1102
 
1094
1103
  // Count the number of objects in the heap.
1095
1104
  int total_count = CountHeapObjects();
@@ -1139,11 +1148,11 @@ MaybeObject* LiveObjectList::Capture() {
1139
1148
  #endif
1140
1149
  }
1141
1150
 
1142
- Handle<String> id_sym = Factory::LookupAsciiSymbol("id");
1143
- Handle<String> count_sym = Factory::LookupAsciiSymbol("count");
1144
- Handle<String> size_sym = Factory::LookupAsciiSymbol("size");
1151
+ Handle<String> id_sym = factory->LookupAsciiSymbol("id");
1152
+ Handle<String> count_sym = factory->LookupAsciiSymbol("count");
1153
+ Handle<String> size_sym = factory->LookupAsciiSymbol("size");
1145
1154
 
1146
- Handle<JSObject> result = Factory::NewJSObject(Top::object_function());
1155
+ Handle<JSObject> result = factory->NewJSObject(isolate->object_function());
1147
1156
  if (result->IsFailure()) return Object::cast(*result);
1148
1157
 
1149
1158
  { MaybeObject* maybe_result = result->SetProperty(*id_sym,
@@ -1259,7 +1268,10 @@ MaybeObject* LiveObjectList::DumpPrivate(DumpWriter* writer,
1259
1268
  int start,
1260
1269
  int dump_limit,
1261
1270
  LolFilter* filter) {
1262
- HandleScope scope;
1271
+ Isolate* isolate = Isolate::Current();
1272
+ Factory* factory = isolate->factory();
1273
+
1274
+ HandleScope scope(isolate);
1263
1275
 
1264
1276
  // Calculate the number of entries of the dump.
1265
1277
  int count = -1;
@@ -1277,7 +1289,7 @@ MaybeObject* LiveObjectList::DumpPrivate(DumpWriter* writer,
1277
1289
  }
1278
1290
 
1279
1291
  // Allocate an array to hold the result.
1280
- Handle<FixedArray> elements_arr = Factory::NewFixedArray(dump_limit);
1292
+ Handle<FixedArray> elements_arr = factory->NewFixedArray(dump_limit);
1281
1293
  if (elements_arr->IsFailure()) return Object::cast(*elements_arr);
1282
1294
 
1283
1295
  // Fill in the dump.
@@ -1292,11 +1304,11 @@ MaybeObject* LiveObjectList::DumpPrivate(DumpWriter* writer,
1292
1304
  MaybeObject* maybe_result;
1293
1305
 
1294
1306
  // Allocate the result body.
1295
- Handle<JSObject> body = Factory::NewJSObject(Top::object_function());
1307
+ Handle<JSObject> body = factory->NewJSObject(isolate->object_function());
1296
1308
  if (body->IsFailure()) return Object::cast(*body);
1297
1309
 
1298
1310
  // Set the updated body.count.
1299
- Handle<String> count_sym = Factory::LookupAsciiSymbol("count");
1311
+ Handle<String> count_sym = factory->LookupAsciiSymbol("count");
1300
1312
  maybe_result = body->SetProperty(*count_sym,
1301
1313
  Smi::FromInt(count),
1302
1314
  NONE,
@@ -1305,7 +1317,7 @@ MaybeObject* LiveObjectList::DumpPrivate(DumpWriter* writer,
1305
1317
 
1306
1318
  // Set the updated body.size if appropriate.
1307
1319
  if (size >= 0) {
1308
- Handle<String> size_sym = Factory::LookupAsciiSymbol("size");
1320
+ Handle<String> size_sym = factory->LookupAsciiSymbol("size");
1309
1321
  maybe_result = body->SetProperty(*size_sym,
1310
1322
  Smi::FromInt(size),
1311
1323
  NONE,
@@ -1314,7 +1326,7 @@ MaybeObject* LiveObjectList::DumpPrivate(DumpWriter* writer,
1314
1326
  }
1315
1327
 
1316
1328
  // Set body.first_index.
1317
- Handle<String> first_sym = Factory::LookupAsciiSymbol("first_index");
1329
+ Handle<String> first_sym = factory->LookupAsciiSymbol("first_index");
1318
1330
  maybe_result = body->SetProperty(*first_sym,
1319
1331
  Smi::FromInt(start),
1320
1332
  NONE,
@@ -1322,12 +1334,12 @@ MaybeObject* LiveObjectList::DumpPrivate(DumpWriter* writer,
1322
1334
  if (maybe_result->IsFailure()) return maybe_result;
1323
1335
 
1324
1336
  // Allocate the JSArray of the elements.
1325
- Handle<JSObject> elements = Factory::NewJSObject(Top::array_function());
1337
+ Handle<JSObject> elements = factory->NewJSObject(isolate->array_function());
1326
1338
  if (elements->IsFailure()) return Object::cast(*elements);
1327
1339
  Handle<JSArray>::cast(elements)->SetContent(*elements_arr);
1328
1340
 
1329
1341
  // Set body.elements.
1330
- Handle<String> elements_sym = Factory::LookupAsciiSymbol("elements");
1342
+ Handle<String> elements_sym = factory->LookupAsciiSymbol("elements");
1331
1343
  maybe_result = body->SetProperty(*elements_sym,
1332
1344
  *elements,
1333
1345
  NONE,
@@ -1381,6 +1393,9 @@ MaybeObject* LiveObjectList::SummarizePrivate(SummaryWriter* writer,
1381
1393
  LiveObjectSummary summary(filter);
1382
1394
  writer->Write(&summary);
1383
1395
 
1396
+ Isolate* isolate = Isolate::Current();
1397
+ Factory* factory = isolate->factory();
1398
+
1384
1399
  // The result body will look like this:
1385
1400
  // body: {
1386
1401
  // count: <total_count>,
@@ -1398,21 +1413,21 @@ MaybeObject* LiveObjectList::SummarizePrivate(SummaryWriter* writer,
1398
1413
  // }
1399
1414
 
1400
1415
  // Prefetch some needed symbols.
1401
- Handle<String> desc_sym = Factory::LookupAsciiSymbol("desc");
1402
- Handle<String> count_sym = Factory::LookupAsciiSymbol("count");
1403
- Handle<String> size_sym = Factory::LookupAsciiSymbol("size");
1404
- Handle<String> summary_sym = Factory::LookupAsciiSymbol("summary");
1416
+ Handle<String> desc_sym = factory->LookupAsciiSymbol("desc");
1417
+ Handle<String> count_sym = factory->LookupAsciiSymbol("count");
1418
+ Handle<String> size_sym = factory->LookupAsciiSymbol("size");
1419
+ Handle<String> summary_sym = factory->LookupAsciiSymbol("summary");
1405
1420
 
1406
1421
  // Allocate the summary array.
1407
1422
  int entries_count = summary.GetNumberOfEntries();
1408
1423
  Handle<FixedArray> summary_arr =
1409
- Factory::NewFixedArray(entries_count);
1424
+ factory->NewFixedArray(entries_count);
1410
1425
  if (summary_arr->IsFailure()) return Object::cast(*summary_arr);
1411
1426
 
1412
1427
  int idx = 0;
1413
1428
  for (int i = 0; i < LiveObjectSummary::kNumberOfEntries; i++) {
1414
1429
  // Allocate the summary record.
1415
- Handle<JSObject> detail = Factory::NewJSObject(Top::object_function());
1430
+ Handle<JSObject> detail = factory->NewJSObject(isolate->object_function());
1416
1431
  if (detail->IsFailure()) return Object::cast(*detail);
1417
1432
 
1418
1433
  // Fill in the summary record.
@@ -1420,7 +1435,7 @@ MaybeObject* LiveObjectList::SummarizePrivate(SummaryWriter* writer,
1420
1435
  int count = summary.Count(type);
1421
1436
  if (count) {
1422
1437
  const char* desc_cstr = GetObjectTypeDesc(type);
1423
- Handle<String> desc = Factory::LookupAsciiSymbol(desc_cstr);
1438
+ Handle<String> desc = factory->LookupAsciiSymbol(desc_cstr);
1424
1439
  int size = summary.Size(type);
1425
1440
 
1426
1441
  maybe_result = detail->SetProperty(*desc_sym,
@@ -1444,12 +1459,13 @@ MaybeObject* LiveObjectList::SummarizePrivate(SummaryWriter* writer,
1444
1459
  }
1445
1460
 
1446
1461
  // Wrap the summary fixed array in a JS array.
1447
- Handle<JSObject> summary_obj = Factory::NewJSObject(Top::array_function());
1462
+ Handle<JSObject> summary_obj =
1463
+ factory->NewJSObject(isolate->array_function());
1448
1464
  if (summary_obj->IsFailure()) return Object::cast(*summary_obj);
1449
1465
  Handle<JSArray>::cast(summary_obj)->SetContent(*summary_arr);
1450
1466
 
1451
1467
  // Create the body object.
1452
- Handle<JSObject> body = Factory::NewJSObject(Top::object_function());
1468
+ Handle<JSObject> body = factory->NewJSObject(isolate->object_function());
1453
1469
  if (body->IsFailure()) return Object::cast(*body);
1454
1470
 
1455
1471
  // Fill out the body object.
@@ -1470,9 +1486,9 @@ MaybeObject* LiveObjectList::SummarizePrivate(SummaryWriter* writer,
1470
1486
  if (is_tracking_roots) {
1471
1487
  int found_root = summary.found_root();
1472
1488
  int found_weak_root = summary.found_weak_root();
1473
- Handle<String> root_sym = Factory::LookupAsciiSymbol("found_root");
1489
+ Handle<String> root_sym = factory->LookupAsciiSymbol("found_root");
1474
1490
  Handle<String> weak_root_sym =
1475
- Factory::LookupAsciiSymbol("found_weak_root");
1491
+ factory->LookupAsciiSymbol("found_weak_root");
1476
1492
  maybe_result = body->SetProperty(*root_sym,
1477
1493
  Smi::FromInt(found_root),
1478
1494
  NONE,
@@ -1499,7 +1515,10 @@ MaybeObject* LiveObjectList::SummarizePrivate(SummaryWriter* writer,
1499
1515
  // Note: only dumps the section starting at start_idx and only up to
1500
1516
  // dump_limit entries.
1501
1517
  MaybeObject* LiveObjectList::Info(int start_idx, int dump_limit) {
1502
- HandleScope scope;
1518
+ Isolate* isolate = Isolate::Current();
1519
+ Factory* factory = isolate->factory();
1520
+
1521
+ HandleScope scope(isolate);
1503
1522
  MaybeObject* maybe_result;
1504
1523
 
1505
1524
  int total_count = LiveObjectList::list_count();
@@ -1519,13 +1538,13 @@ MaybeObject* LiveObjectList::Info(int start_idx, int dump_limit) {
1519
1538
  }
1520
1539
 
1521
1540
  // Allocate an array to hold the result.
1522
- Handle<FixedArray> list = Factory::NewFixedArray(dump_count);
1541
+ Handle<FixedArray> list = factory->NewFixedArray(dump_count);
1523
1542
  if (list->IsFailure()) return Object::cast(*list);
1524
1543
 
1525
1544
  // Prefetch some needed symbols.
1526
- Handle<String> id_sym = Factory::LookupAsciiSymbol("id");
1527
- Handle<String> count_sym = Factory::LookupAsciiSymbol("count");
1528
- Handle<String> size_sym = Factory::LookupAsciiSymbol("size");
1545
+ Handle<String> id_sym = factory->LookupAsciiSymbol("id");
1546
+ Handle<String> count_sym = factory->LookupAsciiSymbol("count");
1547
+ Handle<String> size_sym = factory->LookupAsciiSymbol("size");
1529
1548
 
1530
1549
  // Fill the array with the lol details.
1531
1550
  int idx = 0;
@@ -1543,7 +1562,8 @@ MaybeObject* LiveObjectList::Info(int start_idx, int dump_limit) {
1543
1562
  int size;
1544
1563
  count = lol->GetTotalObjCountAndSize(&size);
1545
1564
 
1546
- Handle<JSObject> detail = Factory::NewJSObject(Top::object_function());
1565
+ Handle<JSObject> detail =
1566
+ factory->NewJSObject(isolate->object_function());
1547
1567
  if (detail->IsFailure()) return Object::cast(*detail);
1548
1568
 
1549
1569
  maybe_result = detail->SetProperty(*id_sym,
@@ -1568,10 +1588,10 @@ MaybeObject* LiveObjectList::Info(int start_idx, int dump_limit) {
1568
1588
  }
1569
1589
 
1570
1590
  // Return the result as a JS array.
1571
- Handle<JSObject> lols = Factory::NewJSObject(Top::array_function());
1591
+ Handle<JSObject> lols = factory->NewJSObject(isolate->array_function());
1572
1592
  Handle<JSArray>::cast(lols)->SetContent(*list);
1573
1593
 
1574
- Handle<JSObject> result = Factory::NewJSObject(Top::object_function());
1594
+ Handle<JSObject> result = factory->NewJSObject(isolate->object_function());
1575
1595
  if (result->IsFailure()) return Object::cast(*result);
1576
1596
 
1577
1597
  maybe_result = result->SetProperty(*count_sym,
@@ -1580,14 +1600,14 @@ MaybeObject* LiveObjectList::Info(int start_idx, int dump_limit) {
1580
1600
  kNonStrictMode);
1581
1601
  if (maybe_result->IsFailure()) return maybe_result;
1582
1602
 
1583
- Handle<String> first_sym = Factory::LookupAsciiSymbol("first_index");
1603
+ Handle<String> first_sym = factory->LookupAsciiSymbol("first_index");
1584
1604
  maybe_result = result->SetProperty(*first_sym,
1585
1605
  Smi::FromInt(start_idx),
1586
1606
  NONE,
1587
1607
  kNonStrictMode);
1588
1608
  if (maybe_result->IsFailure()) return maybe_result;
1589
1609
 
1590
- Handle<String> lists_sym = Factory::LookupAsciiSymbol("lists");
1610
+ Handle<String> lists_sym = factory->LookupAsciiSymbol("lists");
1591
1611
  maybe_result = result->SetProperty(*lists_sym,
1592
1612
  *lols,
1593
1613
  NONE,
@@ -1618,7 +1638,7 @@ Object* LiveObjectList::GetObj(int obj_id) {
1618
1638
  if (element != NULL) {
1619
1639
  return Object::cast(element->obj_);
1620
1640
  }
1621
- return Heap::undefined_value();
1641
+ return HEAP->undefined_value();
1622
1642
  }
1623
1643
 
1624
1644
 
@@ -1639,8 +1659,11 @@ Object* LiveObjectList::GetObjId(Handle<String> address) {
1639
1659
  SmartPointer<char> addr_str =
1640
1660
  address->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
1641
1661
 
1662
+ Isolate* isolate = Isolate::Current();
1663
+
1642
1664
  // Extract the address value from the string.
1643
- int value = static_cast<int>(StringToInt(*address, 16));
1665
+ int value =
1666
+ static_cast<int>(StringToInt(isolate->unicode_cache(), *address, 16));
1644
1667
  Object* obj = reinterpret_cast<Object*>(value);
1645
1668
  return Smi::FromInt(GetObjId(obj));
1646
1669
  }
@@ -1649,7 +1672,6 @@ Object* LiveObjectList::GetObjId(Handle<String> address) {
1649
1672
  // Helper class for copying HeapObjects.
1650
1673
  class LolVisitor: public ObjectVisitor {
1651
1674
  public:
1652
-
1653
1675
  LolVisitor(HeapObject* target, Handle<HeapObject> handle_to_skip)
1654
1676
  : target_(target), handle_to_skip_(handle_to_skip), found_(false) {}
1655
1677
 
@@ -1761,10 +1783,13 @@ int LiveObjectList::GetRetainers(Handle<HeapObject> target,
1761
1783
  Handle<String> desc;
1762
1784
  Handle<HeapObject> retainer;
1763
1785
 
1786
+ Isolate* isolate = Isolate::Current();
1787
+ Factory* factory = isolate->factory();
1788
+
1764
1789
  // Prefetch some needed symbols.
1765
- Handle<String> id_sym = Factory::LookupAsciiSymbol("id");
1766
- Handle<String> desc_sym = Factory::LookupAsciiSymbol("desc");
1767
- Handle<String> size_sym = Factory::LookupAsciiSymbol("size");
1790
+ Handle<String> id_sym = factory->LookupAsciiSymbol("id");
1791
+ Handle<String> desc_sym = factory->LookupAsciiSymbol("desc");
1792
+ Handle<String> size_sym = factory->LookupAsciiSymbol("size");
1768
1793
 
1769
1794
  NoHandleAllocation ha;
1770
1795
  int count = 0;
@@ -1775,7 +1800,7 @@ int LiveObjectList::GetRetainers(Handle<HeapObject> target,
1775
1800
 
1776
1801
  // Iterate roots.
1777
1802
  LolVisitor lol_visitor(*target, target);
1778
- Heap::IterateStrongRoots(&lol_visitor, VISIT_ALL);
1803
+ isolate->heap()->IterateStrongRoots(&lol_visitor, VISIT_ALL);
1779
1804
  if (!AddRootRetainerIfFound(lol_visitor,
1780
1805
  filter,
1781
1806
  summary,
@@ -1795,7 +1820,7 @@ int LiveObjectList::GetRetainers(Handle<HeapObject> target,
1795
1820
  }
1796
1821
 
1797
1822
  lol_visitor.reset();
1798
- Heap::IterateWeakRoots(&lol_visitor, VISIT_ALL);
1823
+ isolate->heap()->IterateWeakRoots(&lol_visitor, VISIT_ALL);
1799
1824
  if (!AddRootRetainerIfFound(lol_visitor,
1800
1825
  filter,
1801
1826
  summary,
@@ -1904,11 +1929,15 @@ MaybeObject* LiveObjectList::GetObjRetainers(int obj_id,
1904
1929
  int start,
1905
1930
  int dump_limit,
1906
1931
  Handle<JSObject> filter_obj) {
1907
- HandleScope scope;
1932
+ Isolate* isolate = Isolate::Current();
1933
+ Factory* factory = isolate->factory();
1934
+ Heap* heap = isolate->heap();
1935
+
1936
+ HandleScope scope(isolate);
1908
1937
 
1909
1938
  // Get the target object.
1910
1939
  HeapObject* heap_obj = HeapObject::cast(GetObj(obj_id));
1911
- if (heap_obj == Heap::undefined_value()) {
1940
+ if (heap_obj == heap->undefined_value()) {
1912
1941
  return heap_obj;
1913
1942
  }
1914
1943
 
@@ -1916,7 +1945,7 @@ MaybeObject* LiveObjectList::GetObjRetainers(int obj_id,
1916
1945
 
1917
1946
  // Get the constructor function for context extension and arguments array.
1918
1947
  JSObject* arguments_boilerplate =
1919
- Top::context()->global_context()->arguments_boilerplate();
1948
+ isolate->context()->global_context()->arguments_boilerplate();
1920
1949
  JSFunction* arguments_function =
1921
1950
  JSFunction::cast(arguments_boilerplate->map()->constructor());
1922
1951
 
@@ -1938,7 +1967,7 @@ MaybeObject* LiveObjectList::GetObjRetainers(int obj_id,
1938
1967
 
1939
1968
  // Set body.id.
1940
1969
  Handle<JSObject> body = Handle<JSObject>(JSObject::cast(body_obj));
1941
- Handle<String> id_sym = Factory::LookupAsciiSymbol("id");
1970
+ Handle<String> id_sym = factory->LookupAsciiSymbol("id");
1942
1971
  maybe_result = body->SetProperty(*id_sym,
1943
1972
  Smi::FromInt(obj_id),
1944
1973
  NONE,
@@ -1953,13 +1982,17 @@ MaybeObject* LiveObjectList::GetObjRetainers(int obj_id,
1953
1982
  Object* LiveObjectList::PrintObj(int obj_id) {
1954
1983
  Object* obj = GetObj(obj_id);
1955
1984
  if (!obj) {
1956
- return Heap::undefined_value();
1985
+ return HEAP->undefined_value();
1957
1986
  }
1958
1987
 
1959
1988
  EmbeddedVector<char, 128> temp_filename;
1960
1989
  static int temp_count = 0;
1961
1990
  const char* path_prefix = ".";
1962
1991
 
1992
+ Isolate* isolate = Isolate::Current();
1993
+ Factory* factory = isolate->factory();
1994
+ Heap* heap = isolate->heap();
1995
+
1963
1996
  if (FLAG_lol_workdir) {
1964
1997
  path_prefix = FLAG_lol_workdir;
1965
1998
  }
@@ -1988,13 +2021,13 @@ Object* LiveObjectList::PrintObj(int obj_id) {
1988
2021
  if (resource->exists() && !resource->is_empty()) {
1989
2022
  ASSERT(resource->IsAscii());
1990
2023
  Handle<String> dump_string =
1991
- Factory::NewExternalStringFromAscii(resource);
1992
- ExternalStringTable::AddString(*dump_string);
2024
+ factory->NewExternalStringFromAscii(resource);
2025
+ heap->external_string_table()->AddString(*dump_string);
1993
2026
  return *dump_string;
1994
2027
  } else {
1995
2028
  delete resource;
1996
2029
  }
1997
- return Heap::undefined_value();
2030
+ return HEAP->undefined_value();
1998
2031
  }
1999
2032
 
2000
2033
 
@@ -2082,6 +2115,10 @@ Object* LiveObjectList::GetPathPrivate(HeapObject* obj1, HeapObject* obj2) {
2082
2115
 
2083
2116
  FILE* f = OS::FOpen(temp_filename.start(), "w+");
2084
2117
 
2118
+ Isolate* isolate = Isolate::Current();
2119
+ Factory* factory = isolate->factory();
2120
+ Heap* heap = isolate->heap();
2121
+
2085
2122
  // Save the previous verbosity.
2086
2123
  bool prev_verbosity = FLAG_use_verbose_printer;
2087
2124
  FLAG_use_verbose_printer = false;
@@ -2097,15 +2134,14 @@ Object* LiveObjectList::GetPathPrivate(HeapObject* obj1, HeapObject* obj2) {
2097
2134
  // Check for ObjectGroups that references this object.
2098
2135
  // TODO(mlam): refactor this to be more modular.
2099
2136
  {
2100
- List<ObjectGroup*>* groups = GlobalHandles::ObjectGroups();
2137
+ List<ObjectGroup*>* groups = isolate->global_handles()->object_groups();
2101
2138
  for (int i = 0; i < groups->length(); i++) {
2102
2139
  ObjectGroup* group = groups->at(i);
2103
2140
  if (group == NULL) continue;
2104
2141
 
2105
2142
  bool found_group = false;
2106
- List<Object**>& objects = group->objects_;
2107
- for (int j = 0; j < objects.length(); j++) {
2108
- Object* object = *objects[j];
2143
+ for (size_t j = 0; j < group->length_; j++) {
2144
+ Object* object = *(group->objects_[j]);
2109
2145
  HeapObject* hobj = HeapObject::cast(object);
2110
2146
  if (obj2 == hobj) {
2111
2147
  found_group = true;
@@ -2118,8 +2154,8 @@ Object* LiveObjectList::GetPathPrivate(HeapObject* obj1, HeapObject* obj2) {
2118
2154
  "obj %p is a member of object group %p {\n",
2119
2155
  reinterpret_cast<void*>(obj2),
2120
2156
  reinterpret_cast<void*>(group));
2121
- for (int j = 0; j < objects.length(); j++) {
2122
- Object* object = *objects[j];
2157
+ for (size_t j = 0; j < group->length_; j++) {
2158
+ Object* object = *(group->objects_[j]);
2123
2159
  if (!object->IsHeapObject()) continue;
2124
2160
 
2125
2161
  HeapObject* hobj = HeapObject::cast(object);
@@ -2144,12 +2180,12 @@ Object* LiveObjectList::GetPathPrivate(HeapObject* obj1, HeapObject* obj2) {
2144
2180
  }
2145
2181
 
2146
2182
  PrintF(f, "path from roots to obj %p\n", reinterpret_cast<void*>(obj2));
2147
- Heap::IterateRoots(&tracer, VISIT_ONLY_STRONG);
2183
+ heap->IterateRoots(&tracer, VISIT_ONLY_STRONG);
2148
2184
  found = tracer.found();
2149
2185
 
2150
2186
  if (!found) {
2151
2187
  PrintF(f, " No paths found. Checking symbol tables ...\n");
2152
- SymbolTable* symbol_table = Heap::raw_unchecked_symbol_table();
2188
+ SymbolTable* symbol_table = HEAP->raw_unchecked_symbol_table();
2153
2189
  tracer.VisitPointers(reinterpret_cast<Object**>(&symbol_table),
2154
2190
  reinterpret_cast<Object**>(&symbol_table)+1);
2155
2191
  found = tracer.found();
@@ -2162,7 +2198,7 @@ Object* LiveObjectList::GetPathPrivate(HeapObject* obj1, HeapObject* obj2) {
2162
2198
  if (!found) {
2163
2199
  PrintF(f, " No paths found. Checking weak roots ...\n");
2164
2200
  // Check weak refs next.
2165
- GlobalHandles::IterateWeakRoots(&tracer);
2201
+ isolate->global_handles()->IterateWeakRoots(&tracer);
2166
2202
  found = tracer.found();
2167
2203
  }
2168
2204
 
@@ -2192,13 +2228,13 @@ Object* LiveObjectList::GetPathPrivate(HeapObject* obj1, HeapObject* obj2) {
2192
2228
  if (resource->exists() && !resource->is_empty()) {
2193
2229
  ASSERT(resource->IsAscii());
2194
2230
  Handle<String> path_string =
2195
- Factory::NewExternalStringFromAscii(resource);
2196
- ExternalStringTable::AddString(*path_string);
2231
+ factory->NewExternalStringFromAscii(resource);
2232
+ heap->external_string_table()->AddString(*path_string);
2197
2233
  return *path_string;
2198
2234
  } else {
2199
2235
  delete resource;
2200
2236
  }
2201
- return Heap::undefined_value();
2237
+ return heap->undefined_value();
2202
2238
  }
2203
2239
 
2204
2240
 
@@ -2211,13 +2247,13 @@ Object* LiveObjectList::GetPath(int obj_id1,
2211
2247
  HeapObject* obj1 = NULL;
2212
2248
  if (obj_id1 != 0) {
2213
2249
  obj1 = HeapObject::cast(GetObj(obj_id1));
2214
- if (obj1 == Heap::undefined_value()) {
2250
+ if (obj1 == HEAP->undefined_value()) {
2215
2251
  return obj1;
2216
2252
  }
2217
2253
  }
2218
2254
 
2219
2255
  HeapObject* obj2 = HeapObject::cast(GetObj(obj_id2));
2220
- if (obj2 == Heap::undefined_value()) {
2256
+ if (obj2 == HEAP->undefined_value()) {
2221
2257
  return obj2;
2222
2258
  }
2223
2259
 
@@ -2571,12 +2607,13 @@ void LiveObjectList::Verify(bool match_heap_exactly) {
2571
2607
  void LiveObjectList::VerifyNotInFromSpace() {
2572
2608
  OS::Print("VerifyNotInFromSpace() ...\n");
2573
2609
  LolIterator it(NULL, last());
2610
+ Heap* heap = ISOLATE->heap();
2574
2611
  int i = 0;
2575
2612
  for (it.Init(); !it.Done(); it.Next()) {
2576
2613
  HeapObject* heap_obj = it.Obj();
2577
- if (Heap::InFromSpace(heap_obj)) {
2614
+ if (heap->InFromSpace(heap_obj)) {
2578
2615
  OS::Print(" ERROR: VerifyNotInFromSpace: [%d] obj %p in From space %p\n",
2579
- i++, heap_obj, Heap::new_space()->FromSpaceLow());
2616
+ i++, heap_obj, heap->new_space()->FromSpaceLow());
2580
2617
  }
2581
2618
  }
2582
2619
  }
@@ -2586,4 +2623,3 @@ void LiveObjectList::VerifyNotInFromSpace() {
2586
2623
  } } // namespace v8::internal
2587
2624
 
2588
2625
  #endif // LIVE_OBJECT_LIST
2589
-