therubyracer 0.9.0beta4 → 0.9.0beta5

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 (771) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +0 -11
  3. data/ext/v8/extconf.rb +9 -9
  4. data/ext/v8/v8_external.cpp +40 -10
  5. data/lib/v8/cli.rb +2 -1
  6. data/lib/v8/version.rb +1 -1
  7. data/spec/redjs/.gitignore +1 -0
  8. data/therubyracer.gemspec +2 -3
  9. metadata +33 -779
  10. data/ext/v8/upstream/Makefile +0 -38
  11. data/ext/v8/upstream/detect_cpu.rb +0 -27
  12. data/ext/v8/upstream/fpic-on-linux-amd64.patch +0 -13
  13. data/ext/v8/upstream/scons/CHANGES.txt +0 -5183
  14. data/ext/v8/upstream/scons/LICENSE.txt +0 -20
  15. data/ext/v8/upstream/scons/MANIFEST +0 -202
  16. data/ext/v8/upstream/scons/PKG-INFO +0 -13
  17. data/ext/v8/upstream/scons/README.txt +0 -273
  18. data/ext/v8/upstream/scons/RELEASE.txt +0 -1040
  19. data/ext/v8/upstream/scons/engine/SCons/Action.py +0 -1256
  20. data/ext/v8/upstream/scons/engine/SCons/Builder.py +0 -868
  21. data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +0 -217
  22. data/ext/v8/upstream/scons/engine/SCons/Conftest.py +0 -794
  23. data/ext/v8/upstream/scons/engine/SCons/Debug.py +0 -237
  24. data/ext/v8/upstream/scons/engine/SCons/Defaults.py +0 -485
  25. data/ext/v8/upstream/scons/engine/SCons/Environment.py +0 -2327
  26. data/ext/v8/upstream/scons/engine/SCons/Errors.py +0 -207
  27. data/ext/v8/upstream/scons/engine/SCons/Executor.py +0 -636
  28. data/ext/v8/upstream/scons/engine/SCons/Job.py +0 -435
  29. data/ext/v8/upstream/scons/engine/SCons/Memoize.py +0 -292
  30. data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +0 -153
  31. data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +0 -3220
  32. data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +0 -128
  33. data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +0 -1341
  34. data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +0 -50
  35. data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +0 -50
  36. data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +0 -50
  37. data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +0 -50
  38. data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +0 -76
  39. data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +0 -74
  40. data/ext/v8/upstream/scons/engine/SCons/PathList.py +0 -232
  41. data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +0 -236
  42. data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +0 -70
  43. data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +0 -55
  44. data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +0 -46
  45. data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +0 -46
  46. data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +0 -44
  47. data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +0 -58
  48. data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +0 -264
  49. data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +0 -50
  50. data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +0 -386
  51. data/ext/v8/upstream/scons/engine/SCons/SConf.py +0 -1038
  52. data/ext/v8/upstream/scons/engine/SCons/SConsign.py +0 -381
  53. data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +0 -132
  54. data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +0 -74
  55. data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +0 -111
  56. data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +0 -320
  57. data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +0 -48
  58. data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +0 -378
  59. data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +0 -103
  60. data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +0 -55
  61. data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +0 -415
  62. data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +0 -386
  63. data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +0 -1360
  64. data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +0 -944
  65. data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +0 -642
  66. data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +0 -414
  67. data/ext/v8/upstream/scons/engine/SCons/Sig.py +0 -63
  68. data/ext/v8/upstream/scons/engine/SCons/Subst.py +0 -911
  69. data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +0 -1030
  70. data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +0 -61
  71. data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +0 -65
  72. data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +0 -73
  73. data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +0 -247
  74. data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +0 -324
  75. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +0 -56
  76. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +0 -61
  77. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +0 -210
  78. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +0 -84
  79. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +0 -321
  80. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +0 -367
  81. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +0 -497
  82. data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +0 -104
  83. data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +0 -138
  84. data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +0 -64
  85. data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +0 -64
  86. data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +0 -71
  87. data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +0 -675
  88. data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +0 -82
  89. data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +0 -74
  90. data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +0 -80
  91. data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +0 -76
  92. data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +0 -71
  93. data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +0 -63
  94. data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +0 -78
  95. data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +0 -82
  96. data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +0 -99
  97. data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +0 -114
  98. data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +0 -58
  99. data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +0 -50
  100. data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +0 -224
  101. data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +0 -64
  102. data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +0 -125
  103. data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +0 -94
  104. data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +0 -62
  105. data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +0 -62
  106. data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +0 -63
  107. data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +0 -98
  108. data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +0 -63
  109. data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +0 -90
  110. data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +0 -73
  111. data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +0 -53
  112. data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +0 -80
  113. data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +0 -64
  114. data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +0 -63
  115. data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +0 -81
  116. data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +0 -85
  117. data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +0 -53
  118. data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +0 -77
  119. data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +0 -59
  120. data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +0 -52
  121. data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +0 -72
  122. data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +0 -90
  123. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +0 -59
  124. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +0 -60
  125. data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +0 -229
  126. data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +0 -490
  127. data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +0 -71
  128. data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +0 -110
  129. data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +0 -234
  130. data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +0 -138
  131. data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +0 -79
  132. data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +0 -99
  133. data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +0 -121
  134. data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +0 -112
  135. data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +0 -63
  136. data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +0 -77
  137. data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +0 -90
  138. data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +0 -159
  139. data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +0 -64
  140. data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +0 -266
  141. data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +0 -50
  142. data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +0 -269
  143. data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +0 -1439
  144. data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +0 -208
  145. data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +0 -107
  146. data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +0 -72
  147. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +0 -314
  148. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +0 -185
  149. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +0 -526
  150. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +0 -367
  151. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +0 -43
  152. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +0 -43
  153. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +0 -43
  154. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +0 -44
  155. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +0 -44
  156. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +0 -44
  157. data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +0 -78
  158. data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +0 -83
  159. data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +0 -108
  160. data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +0 -336
  161. data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +0 -121
  162. data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +0 -70
  163. data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +0 -132
  164. data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +0 -68
  165. data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +0 -58
  166. data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +0 -53
  167. data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +0 -63
  168. data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +0 -67
  169. data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +0 -142
  170. data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +0 -58
  171. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +0 -63
  172. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +0 -64
  173. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +0 -64
  174. data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +0 -77
  175. data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +0 -186
  176. data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +0 -73
  177. data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +0 -805
  178. data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +0 -175
  179. data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +0 -53
  180. data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +0 -100
  181. data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +0 -131
  182. data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +0 -100
  183. data/ext/v8/upstream/scons/engine/SCons/Util.py +0 -1645
  184. data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +0 -91
  185. data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +0 -107
  186. data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +0 -139
  187. data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +0 -109
  188. data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +0 -147
  189. data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +0 -317
  190. data/ext/v8/upstream/scons/engine/SCons/Warnings.py +0 -228
  191. data/ext/v8/upstream/scons/engine/SCons/__init__.py +0 -49
  192. data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +0 -302
  193. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +0 -98
  194. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +0 -91
  195. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +0 -124
  196. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +0 -1725
  197. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +0 -583
  198. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +0 -176
  199. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +0 -325
  200. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +0 -1296
  201. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +0 -382
  202. data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +0 -187
  203. data/ext/v8/upstream/scons/engine/SCons/cpp.py +0 -598
  204. data/ext/v8/upstream/scons/engine/SCons/dblite.py +0 -248
  205. data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +0 -77
  206. data/ext/v8/upstream/scons/os_spawnv_fix.diff +0 -83
  207. data/ext/v8/upstream/scons/scons-time.1 +0 -1017
  208. data/ext/v8/upstream/scons/scons.1 +0 -15179
  209. data/ext/v8/upstream/scons/sconsign.1 +0 -208
  210. data/ext/v8/upstream/scons/script/scons +0 -184
  211. data/ext/v8/upstream/scons/script/scons-time +0 -1529
  212. data/ext/v8/upstream/scons/script/scons.bat +0 -31
  213. data/ext/v8/upstream/scons/script/sconsign +0 -508
  214. data/ext/v8/upstream/scons/setup.cfg +0 -6
  215. data/ext/v8/upstream/scons/setup.py +0 -427
  216. data/ext/v8/upstream/v8/.gitignore +0 -33
  217. data/ext/v8/upstream/v8/AUTHORS +0 -42
  218. data/ext/v8/upstream/v8/ChangeLog +0 -2663
  219. data/ext/v8/upstream/v8/LICENSE +0 -52
  220. data/ext/v8/upstream/v8/LICENSE.strongtalk +0 -29
  221. data/ext/v8/upstream/v8/LICENSE.v8 +0 -26
  222. data/ext/v8/upstream/v8/LICENSE.valgrind +0 -45
  223. data/ext/v8/upstream/v8/SConstruct +0 -1473
  224. data/ext/v8/upstream/v8/build/README.txt +0 -25
  225. data/ext/v8/upstream/v8/build/all.gyp +0 -18
  226. data/ext/v8/upstream/v8/build/armu.gypi +0 -32
  227. data/ext/v8/upstream/v8/build/common.gypi +0 -82
  228. data/ext/v8/upstream/v8/build/gyp_v8 +0 -145
  229. data/ext/v8/upstream/v8/include/v8-debug.h +0 -394
  230. data/ext/v8/upstream/v8/include/v8-preparser.h +0 -116
  231. data/ext/v8/upstream/v8/include/v8-profiler.h +0 -505
  232. data/ext/v8/upstream/v8/include/v8-testing.h +0 -104
  233. data/ext/v8/upstream/v8/include/v8.h +0 -4000
  234. data/ext/v8/upstream/v8/include/v8stdint.h +0 -53
  235. data/ext/v8/upstream/v8/preparser/SConscript +0 -38
  236. data/ext/v8/upstream/v8/preparser/preparser-process.cc +0 -169
  237. data/ext/v8/upstream/v8/src/SConscript +0 -380
  238. data/ext/v8/upstream/v8/src/accessors.cc +0 -766
  239. data/ext/v8/upstream/v8/src/accessors.h +0 -121
  240. data/ext/v8/upstream/v8/src/allocation-inl.h +0 -49
  241. data/ext/v8/upstream/v8/src/allocation.cc +0 -122
  242. data/ext/v8/upstream/v8/src/allocation.h +0 -143
  243. data/ext/v8/upstream/v8/src/api.cc +0 -5678
  244. data/ext/v8/upstream/v8/src/api.h +0 -572
  245. data/ext/v8/upstream/v8/src/apinatives.js +0 -110
  246. data/ext/v8/upstream/v8/src/apiutils.h +0 -73
  247. data/ext/v8/upstream/v8/src/arguments.h +0 -116
  248. data/ext/v8/upstream/v8/src/arm/assembler-arm-inl.h +0 -353
  249. data/ext/v8/upstream/v8/src/arm/assembler-arm.cc +0 -2877
  250. data/ext/v8/upstream/v8/src/arm/assembler-arm.h +0 -1382
  251. data/ext/v8/upstream/v8/src/arm/builtins-arm.cc +0 -1634
  252. data/ext/v8/upstream/v8/src/arm/code-stubs-arm.cc +0 -6917
  253. data/ext/v8/upstream/v8/src/arm/code-stubs-arm.h +0 -623
  254. data/ext/v8/upstream/v8/src/arm/codegen-arm-inl.h +0 -48
  255. data/ext/v8/upstream/v8/src/arm/codegen-arm.cc +0 -7437
  256. data/ext/v8/upstream/v8/src/arm/codegen-arm.h +0 -595
  257. data/ext/v8/upstream/v8/src/arm/constants-arm.cc +0 -152
  258. data/ext/v8/upstream/v8/src/arm/constants-arm.h +0 -778
  259. data/ext/v8/upstream/v8/src/arm/cpu-arm.cc +0 -149
  260. data/ext/v8/upstream/v8/src/arm/debug-arm.cc +0 -317
  261. data/ext/v8/upstream/v8/src/arm/deoptimizer-arm.cc +0 -737
  262. data/ext/v8/upstream/v8/src/arm/disasm-arm.cc +0 -1503
  263. data/ext/v8/upstream/v8/src/arm/frames-arm.cc +0 -45
  264. data/ext/v8/upstream/v8/src/arm/frames-arm.h +0 -168
  265. data/ext/v8/upstream/v8/src/arm/full-codegen-arm.cc +0 -4374
  266. data/ext/v8/upstream/v8/src/arm/ic-arm.cc +0 -1793
  267. data/ext/v8/upstream/v8/src/arm/jump-target-arm.cc +0 -174
  268. data/ext/v8/upstream/v8/src/arm/lithium-arm.cc +0 -2120
  269. data/ext/v8/upstream/v8/src/arm/lithium-arm.h +0 -2179
  270. data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.cc +0 -4132
  271. data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.h +0 -329
  272. data/ext/v8/upstream/v8/src/arm/lithium-gap-resolver-arm.cc +0 -305
  273. data/ext/v8/upstream/v8/src/arm/lithium-gap-resolver-arm.h +0 -84
  274. data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.cc +0 -2939
  275. data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.h +0 -1071
  276. data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.cc +0 -1287
  277. data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.h +0 -253
  278. data/ext/v8/upstream/v8/src/arm/register-allocator-arm-inl.h +0 -100
  279. data/ext/v8/upstream/v8/src/arm/register-allocator-arm.cc +0 -63
  280. data/ext/v8/upstream/v8/src/arm/register-allocator-arm.h +0 -44
  281. data/ext/v8/upstream/v8/src/arm/simulator-arm.cc +0 -3288
  282. data/ext/v8/upstream/v8/src/arm/simulator-arm.h +0 -413
  283. data/ext/v8/upstream/v8/src/arm/stub-cache-arm.cc +0 -4034
  284. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm-inl.h +0 -59
  285. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.cc +0 -843
  286. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.h +0 -523
  287. data/ext/v8/upstream/v8/src/array.js +0 -1249
  288. data/ext/v8/upstream/v8/src/assembler.cc +0 -1067
  289. data/ext/v8/upstream/v8/src/assembler.h +0 -823
  290. data/ext/v8/upstream/v8/src/ast-inl.h +0 -112
  291. data/ext/v8/upstream/v8/src/ast.cc +0 -1078
  292. data/ext/v8/upstream/v8/src/ast.h +0 -2234
  293. data/ext/v8/upstream/v8/src/atomicops.h +0 -167
  294. data/ext/v8/upstream/v8/src/atomicops_internals_arm_gcc.h +0 -145
  295. data/ext/v8/upstream/v8/src/atomicops_internals_mips_gcc.h +0 -169
  296. data/ext/v8/upstream/v8/src/atomicops_internals_x86_gcc.cc +0 -126
  297. data/ext/v8/upstream/v8/src/atomicops_internals_x86_gcc.h +0 -287
  298. data/ext/v8/upstream/v8/src/atomicops_internals_x86_macosx.h +0 -301
  299. data/ext/v8/upstream/v8/src/atomicops_internals_x86_msvc.h +0 -203
  300. data/ext/v8/upstream/v8/src/bignum-dtoa.cc +0 -655
  301. data/ext/v8/upstream/v8/src/bignum-dtoa.h +0 -81
  302. data/ext/v8/upstream/v8/src/bignum.cc +0 -768
  303. data/ext/v8/upstream/v8/src/bignum.h +0 -140
  304. data/ext/v8/upstream/v8/src/bootstrapper.cc +0 -2138
  305. data/ext/v8/upstream/v8/src/bootstrapper.h +0 -185
  306. data/ext/v8/upstream/v8/src/builtins.cc +0 -1708
  307. data/ext/v8/upstream/v8/src/builtins.h +0 -368
  308. data/ext/v8/upstream/v8/src/bytecodes-irregexp.h +0 -105
  309. data/ext/v8/upstream/v8/src/cached-powers.cc +0 -177
  310. data/ext/v8/upstream/v8/src/cached-powers.h +0 -65
  311. data/ext/v8/upstream/v8/src/char-predicates-inl.h +0 -94
  312. data/ext/v8/upstream/v8/src/char-predicates.h +0 -65
  313. data/ext/v8/upstream/v8/src/checks.cc +0 -110
  314. data/ext/v8/upstream/v8/src/checks.h +0 -296
  315. data/ext/v8/upstream/v8/src/circular-queue-inl.h +0 -53
  316. data/ext/v8/upstream/v8/src/circular-queue.cc +0 -122
  317. data/ext/v8/upstream/v8/src/circular-queue.h +0 -103
  318. data/ext/v8/upstream/v8/src/code-stubs.cc +0 -240
  319. data/ext/v8/upstream/v8/src/code-stubs.h +0 -971
  320. data/ext/v8/upstream/v8/src/code.h +0 -68
  321. data/ext/v8/upstream/v8/src/codegen-inl.h +0 -68
  322. data/ext/v8/upstream/v8/src/codegen.cc +0 -505
  323. data/ext/v8/upstream/v8/src/codegen.h +0 -245
  324. data/ext/v8/upstream/v8/src/compilation-cache.cc +0 -540
  325. data/ext/v8/upstream/v8/src/compilation-cache.h +0 -287
  326. data/ext/v8/upstream/v8/src/compiler.cc +0 -792
  327. data/ext/v8/upstream/v8/src/compiler.h +0 -307
  328. data/ext/v8/upstream/v8/src/contexts.cc +0 -327
  329. data/ext/v8/upstream/v8/src/contexts.h +0 -382
  330. data/ext/v8/upstream/v8/src/conversions-inl.h +0 -110
  331. data/ext/v8/upstream/v8/src/conversions.cc +0 -1125
  332. data/ext/v8/upstream/v8/src/conversions.h +0 -122
  333. data/ext/v8/upstream/v8/src/counters.cc +0 -93
  334. data/ext/v8/upstream/v8/src/counters.h +0 -254
  335. data/ext/v8/upstream/v8/src/cpu-profiler-inl.h +0 -101
  336. data/ext/v8/upstream/v8/src/cpu-profiler.cc +0 -606
  337. data/ext/v8/upstream/v8/src/cpu-profiler.h +0 -305
  338. data/ext/v8/upstream/v8/src/cpu.h +0 -67
  339. data/ext/v8/upstream/v8/src/d8-debug.cc +0 -367
  340. data/ext/v8/upstream/v8/src/d8-debug.h +0 -158
  341. data/ext/v8/upstream/v8/src/d8-posix.cc +0 -695
  342. data/ext/v8/upstream/v8/src/d8-readline.cc +0 -128
  343. data/ext/v8/upstream/v8/src/d8-windows.cc +0 -42
  344. data/ext/v8/upstream/v8/src/d8.cc +0 -796
  345. data/ext/v8/upstream/v8/src/d8.gyp +0 -88
  346. data/ext/v8/upstream/v8/src/d8.h +0 -231
  347. data/ext/v8/upstream/v8/src/d8.js +0 -2798
  348. data/ext/v8/upstream/v8/src/data-flow.cc +0 -545
  349. data/ext/v8/upstream/v8/src/data-flow.h +0 -379
  350. data/ext/v8/upstream/v8/src/date.js +0 -1103
  351. data/ext/v8/upstream/v8/src/dateparser-inl.h +0 -125
  352. data/ext/v8/upstream/v8/src/dateparser.cc +0 -178
  353. data/ext/v8/upstream/v8/src/dateparser.h +0 -265
  354. data/ext/v8/upstream/v8/src/debug-agent.cc +0 -447
  355. data/ext/v8/upstream/v8/src/debug-agent.h +0 -129
  356. data/ext/v8/upstream/v8/src/debug-debugger.js +0 -2569
  357. data/ext/v8/upstream/v8/src/debug.cc +0 -3188
  358. data/ext/v8/upstream/v8/src/debug.h +0 -1055
  359. data/ext/v8/upstream/v8/src/deoptimizer.cc +0 -1296
  360. data/ext/v8/upstream/v8/src/deoptimizer.h +0 -629
  361. data/ext/v8/upstream/v8/src/disasm.h +0 -80
  362. data/ext/v8/upstream/v8/src/disassembler.cc +0 -339
  363. data/ext/v8/upstream/v8/src/disassembler.h +0 -56
  364. data/ext/v8/upstream/v8/src/diy-fp.cc +0 -58
  365. data/ext/v8/upstream/v8/src/diy-fp.h +0 -117
  366. data/ext/v8/upstream/v8/src/double.h +0 -238
  367. data/ext/v8/upstream/v8/src/dtoa.cc +0 -103
  368. data/ext/v8/upstream/v8/src/dtoa.h +0 -85
  369. data/ext/v8/upstream/v8/src/execution.cc +0 -791
  370. data/ext/v8/upstream/v8/src/execution.h +0 -291
  371. data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.cc +0 -250
  372. data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.h +0 -89
  373. data/ext/v8/upstream/v8/src/extensions/experimental/experimental.gyp +0 -55
  374. data/ext/v8/upstream/v8/src/extensions/experimental/i18n-extension.cc +0 -284
  375. data/ext/v8/upstream/v8/src/extensions/experimental/i18n-extension.h +0 -64
  376. data/ext/v8/upstream/v8/src/extensions/externalize-string-extension.cc +0 -141
  377. data/ext/v8/upstream/v8/src/extensions/externalize-string-extension.h +0 -50
  378. data/ext/v8/upstream/v8/src/extensions/gc-extension.cc +0 -58
  379. data/ext/v8/upstream/v8/src/extensions/gc-extension.h +0 -49
  380. data/ext/v8/upstream/v8/src/factory.cc +0 -1194
  381. data/ext/v8/upstream/v8/src/factory.h +0 -436
  382. data/ext/v8/upstream/v8/src/fast-dtoa.cc +0 -736
  383. data/ext/v8/upstream/v8/src/fast-dtoa.h +0 -83
  384. data/ext/v8/upstream/v8/src/fixed-dtoa.cc +0 -405
  385. data/ext/v8/upstream/v8/src/fixed-dtoa.h +0 -55
  386. data/ext/v8/upstream/v8/src/flag-definitions.h +0 -556
  387. data/ext/v8/upstream/v8/src/flags.cc +0 -551
  388. data/ext/v8/upstream/v8/src/flags.h +0 -79
  389. data/ext/v8/upstream/v8/src/frame-element.cc +0 -37
  390. data/ext/v8/upstream/v8/src/frame-element.h +0 -269
  391. data/ext/v8/upstream/v8/src/frames-inl.h +0 -236
  392. data/ext/v8/upstream/v8/src/frames.cc +0 -1273
  393. data/ext/v8/upstream/v8/src/frames.h +0 -854
  394. data/ext/v8/upstream/v8/src/full-codegen.cc +0 -1385
  395. data/ext/v8/upstream/v8/src/full-codegen.h +0 -753
  396. data/ext/v8/upstream/v8/src/func-name-inferrer.cc +0 -91
  397. data/ext/v8/upstream/v8/src/func-name-inferrer.h +0 -111
  398. data/ext/v8/upstream/v8/src/gdb-jit.cc +0 -1548
  399. data/ext/v8/upstream/v8/src/gdb-jit.h +0 -138
  400. data/ext/v8/upstream/v8/src/global-handles.cc +0 -596
  401. data/ext/v8/upstream/v8/src/global-handles.h +0 -239
  402. data/ext/v8/upstream/v8/src/globals.h +0 -325
  403. data/ext/v8/upstream/v8/src/handles-inl.h +0 -177
  404. data/ext/v8/upstream/v8/src/handles.cc +0 -965
  405. data/ext/v8/upstream/v8/src/handles.h +0 -372
  406. data/ext/v8/upstream/v8/src/hashmap.cc +0 -230
  407. data/ext/v8/upstream/v8/src/hashmap.h +0 -121
  408. data/ext/v8/upstream/v8/src/heap-inl.h +0 -703
  409. data/ext/v8/upstream/v8/src/heap-profiler.cc +0 -1173
  410. data/ext/v8/upstream/v8/src/heap-profiler.h +0 -396
  411. data/ext/v8/upstream/v8/src/heap.cc +0 -5856
  412. data/ext/v8/upstream/v8/src/heap.h +0 -2264
  413. data/ext/v8/upstream/v8/src/hydrogen-instructions.cc +0 -1639
  414. data/ext/v8/upstream/v8/src/hydrogen-instructions.h +0 -3657
  415. data/ext/v8/upstream/v8/src/hydrogen.cc +0 -6011
  416. data/ext/v8/upstream/v8/src/hydrogen.h +0 -1137
  417. data/ext/v8/upstream/v8/src/ia32/assembler-ia32-inl.h +0 -430
  418. data/ext/v8/upstream/v8/src/ia32/assembler-ia32.cc +0 -2846
  419. data/ext/v8/upstream/v8/src/ia32/assembler-ia32.h +0 -1159
  420. data/ext/v8/upstream/v8/src/ia32/builtins-ia32.cc +0 -1596
  421. data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.cc +0 -6549
  422. data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.h +0 -495
  423. data/ext/v8/upstream/v8/src/ia32/codegen-ia32-inl.h +0 -46
  424. data/ext/v8/upstream/v8/src/ia32/codegen-ia32.cc +0 -10385
  425. data/ext/v8/upstream/v8/src/ia32/codegen-ia32.h +0 -801
  426. data/ext/v8/upstream/v8/src/ia32/cpu-ia32.cc +0 -88
  427. data/ext/v8/upstream/v8/src/ia32/debug-ia32.cc +0 -312
  428. data/ext/v8/upstream/v8/src/ia32/deoptimizer-ia32.cc +0 -774
  429. data/ext/v8/upstream/v8/src/ia32/disasm-ia32.cc +0 -1620
  430. data/ext/v8/upstream/v8/src/ia32/frames-ia32.cc +0 -45
  431. data/ext/v8/upstream/v8/src/ia32/frames-ia32.h +0 -140
  432. data/ext/v8/upstream/v8/src/ia32/full-codegen-ia32.cc +0 -4357
  433. data/ext/v8/upstream/v8/src/ia32/ic-ia32.cc +0 -1779
  434. data/ext/v8/upstream/v8/src/ia32/jump-target-ia32.cc +0 -437
  435. data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.cc +0 -4158
  436. data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.h +0 -318
  437. data/ext/v8/upstream/v8/src/ia32/lithium-gap-resolver-ia32.cc +0 -466
  438. data/ext/v8/upstream/v8/src/ia32/lithium-gap-resolver-ia32.h +0 -110
  439. data/ext/v8/upstream/v8/src/ia32/lithium-ia32.cc +0 -2181
  440. data/ext/v8/upstream/v8/src/ia32/lithium-ia32.h +0 -2235
  441. data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.cc +0 -2056
  442. data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.h +0 -807
  443. data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.cc +0 -1264
  444. data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.h +0 -216
  445. data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32-inl.h +0 -82
  446. data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32.cc +0 -157
  447. data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32.h +0 -43
  448. data/ext/v8/upstream/v8/src/ia32/simulator-ia32.cc +0 -30
  449. data/ext/v8/upstream/v8/src/ia32/simulator-ia32.h +0 -72
  450. data/ext/v8/upstream/v8/src/ia32/stub-cache-ia32.cc +0 -3711
  451. data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.cc +0 -1366
  452. data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.h +0 -650
  453. data/ext/v8/upstream/v8/src/ic-inl.h +0 -130
  454. data/ext/v8/upstream/v8/src/ic.cc +0 -2389
  455. data/ext/v8/upstream/v8/src/ic.h +0 -675
  456. data/ext/v8/upstream/v8/src/inspector.cc +0 -63
  457. data/ext/v8/upstream/v8/src/inspector.h +0 -62
  458. data/ext/v8/upstream/v8/src/interpreter-irregexp.cc +0 -659
  459. data/ext/v8/upstream/v8/src/interpreter-irregexp.h +0 -49
  460. data/ext/v8/upstream/v8/src/isolate.cc +0 -883
  461. data/ext/v8/upstream/v8/src/isolate.h +0 -1306
  462. data/ext/v8/upstream/v8/src/json.js +0 -342
  463. data/ext/v8/upstream/v8/src/jsregexp.cc +0 -5371
  464. data/ext/v8/upstream/v8/src/jsregexp.h +0 -1483
  465. data/ext/v8/upstream/v8/src/jump-target-heavy-inl.h +0 -51
  466. data/ext/v8/upstream/v8/src/jump-target-heavy.cc +0 -427
  467. data/ext/v8/upstream/v8/src/jump-target-heavy.h +0 -238
  468. data/ext/v8/upstream/v8/src/jump-target-inl.h +0 -48
  469. data/ext/v8/upstream/v8/src/jump-target-light-inl.h +0 -56
  470. data/ext/v8/upstream/v8/src/jump-target-light.cc +0 -111
  471. data/ext/v8/upstream/v8/src/jump-target-light.h +0 -193
  472. data/ext/v8/upstream/v8/src/jump-target.cc +0 -91
  473. data/ext/v8/upstream/v8/src/jump-target.h +0 -90
  474. data/ext/v8/upstream/v8/src/list-inl.h +0 -206
  475. data/ext/v8/upstream/v8/src/list.h +0 -164
  476. data/ext/v8/upstream/v8/src/lithium-allocator-inl.h +0 -142
  477. data/ext/v8/upstream/v8/src/lithium-allocator.cc +0 -2105
  478. data/ext/v8/upstream/v8/src/lithium-allocator.h +0 -630
  479. data/ext/v8/upstream/v8/src/lithium.cc +0 -169
  480. data/ext/v8/upstream/v8/src/lithium.h +0 -592
  481. data/ext/v8/upstream/v8/src/liveedit-debugger.js +0 -1082
  482. data/ext/v8/upstream/v8/src/liveedit.cc +0 -1693
  483. data/ext/v8/upstream/v8/src/liveedit.h +0 -179
  484. data/ext/v8/upstream/v8/src/liveobjectlist-inl.h +0 -126
  485. data/ext/v8/upstream/v8/src/liveobjectlist.cc +0 -2589
  486. data/ext/v8/upstream/v8/src/liveobjectlist.h +0 -322
  487. data/ext/v8/upstream/v8/src/log-inl.h +0 -59
  488. data/ext/v8/upstream/v8/src/log-utils.cc +0 -423
  489. data/ext/v8/upstream/v8/src/log-utils.h +0 -229
  490. data/ext/v8/upstream/v8/src/log.cc +0 -1666
  491. data/ext/v8/upstream/v8/src/log.h +0 -446
  492. data/ext/v8/upstream/v8/src/macro-assembler.h +0 -120
  493. data/ext/v8/upstream/v8/src/macros.py +0 -178
  494. data/ext/v8/upstream/v8/src/mark-compact.cc +0 -3092
  495. data/ext/v8/upstream/v8/src/mark-compact.h +0 -506
  496. data/ext/v8/upstream/v8/src/math.js +0 -264
  497. data/ext/v8/upstream/v8/src/messages.cc +0 -166
  498. data/ext/v8/upstream/v8/src/messages.h +0 -114
  499. data/ext/v8/upstream/v8/src/messages.js +0 -1090
  500. data/ext/v8/upstream/v8/src/mips/assembler-mips-inl.h +0 -335
  501. data/ext/v8/upstream/v8/src/mips/assembler-mips.cc +0 -2093
  502. data/ext/v8/upstream/v8/src/mips/assembler-mips.h +0 -1066
  503. data/ext/v8/upstream/v8/src/mips/builtins-mips.cc +0 -148
  504. data/ext/v8/upstream/v8/src/mips/code-stubs-mips.cc +0 -752
  505. data/ext/v8/upstream/v8/src/mips/code-stubs-mips.h +0 -511
  506. data/ext/v8/upstream/v8/src/mips/codegen-mips-inl.h +0 -64
  507. data/ext/v8/upstream/v8/src/mips/codegen-mips.cc +0 -1213
  508. data/ext/v8/upstream/v8/src/mips/codegen-mips.h +0 -633
  509. data/ext/v8/upstream/v8/src/mips/constants-mips.cc +0 -352
  510. data/ext/v8/upstream/v8/src/mips/constants-mips.h +0 -723
  511. data/ext/v8/upstream/v8/src/mips/cpu-mips.cc +0 -90
  512. data/ext/v8/upstream/v8/src/mips/debug-mips.cc +0 -155
  513. data/ext/v8/upstream/v8/src/mips/deoptimizer-mips.cc +0 -91
  514. data/ext/v8/upstream/v8/src/mips/disasm-mips.cc +0 -1023
  515. data/ext/v8/upstream/v8/src/mips/frames-mips.cc +0 -48
  516. data/ext/v8/upstream/v8/src/mips/frames-mips.h +0 -179
  517. data/ext/v8/upstream/v8/src/mips/full-codegen-mips.cc +0 -727
  518. data/ext/v8/upstream/v8/src/mips/ic-mips.cc +0 -244
  519. data/ext/v8/upstream/v8/src/mips/jump-target-mips.cc +0 -80
  520. data/ext/v8/upstream/v8/src/mips/lithium-codegen-mips.h +0 -65
  521. data/ext/v8/upstream/v8/src/mips/lithium-mips.h +0 -304
  522. data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.cc +0 -3327
  523. data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.h +0 -1058
  524. data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.cc +0 -478
  525. data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.h +0 -250
  526. data/ext/v8/upstream/v8/src/mips/register-allocator-mips-inl.h +0 -134
  527. data/ext/v8/upstream/v8/src/mips/register-allocator-mips.cc +0 -63
  528. data/ext/v8/upstream/v8/src/mips/register-allocator-mips.h +0 -47
  529. data/ext/v8/upstream/v8/src/mips/simulator-mips.cc +0 -2438
  530. data/ext/v8/upstream/v8/src/mips/simulator-mips.h +0 -394
  531. data/ext/v8/upstream/v8/src/mips/stub-cache-mips.cc +0 -601
  532. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips-inl.h +0 -58
  533. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.cc +0 -307
  534. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.h +0 -530
  535. data/ext/v8/upstream/v8/src/mirror-debugger.js +0 -2381
  536. data/ext/v8/upstream/v8/src/mksnapshot.cc +0 -256
  537. data/ext/v8/upstream/v8/src/natives.h +0 -63
  538. data/ext/v8/upstream/v8/src/objects-debug.cc +0 -722
  539. data/ext/v8/upstream/v8/src/objects-inl.h +0 -4166
  540. data/ext/v8/upstream/v8/src/objects-printer.cc +0 -801
  541. data/ext/v8/upstream/v8/src/objects-visiting.cc +0 -142
  542. data/ext/v8/upstream/v8/src/objects-visiting.h +0 -422
  543. data/ext/v8/upstream/v8/src/objects.cc +0 -10296
  544. data/ext/v8/upstream/v8/src/objects.h +0 -6662
  545. data/ext/v8/upstream/v8/src/parser.cc +0 -5168
  546. data/ext/v8/upstream/v8/src/parser.h +0 -823
  547. data/ext/v8/upstream/v8/src/platform-cygwin.cc +0 -811
  548. data/ext/v8/upstream/v8/src/platform-freebsd.cc +0 -854
  549. data/ext/v8/upstream/v8/src/platform-linux.cc +0 -1120
  550. data/ext/v8/upstream/v8/src/platform-macos.cc +0 -865
  551. data/ext/v8/upstream/v8/src/platform-nullos.cc +0 -504
  552. data/ext/v8/upstream/v8/src/platform-openbsd.cc +0 -672
  553. data/ext/v8/upstream/v8/src/platform-posix.cc +0 -424
  554. data/ext/v8/upstream/v8/src/platform-solaris.cc +0 -796
  555. data/ext/v8/upstream/v8/src/platform-tls-mac.h +0 -62
  556. data/ext/v8/upstream/v8/src/platform-tls-win32.h +0 -62
  557. data/ext/v8/upstream/v8/src/platform-tls.h +0 -50
  558. data/ext/v8/upstream/v8/src/platform-win32.cc +0 -2072
  559. data/ext/v8/upstream/v8/src/platform.h +0 -693
  560. data/ext/v8/upstream/v8/src/preparse-data.cc +0 -185
  561. data/ext/v8/upstream/v8/src/preparse-data.h +0 -249
  562. data/ext/v8/upstream/v8/src/preparser-api.cc +0 -219
  563. data/ext/v8/upstream/v8/src/preparser.cc +0 -1205
  564. data/ext/v8/upstream/v8/src/preparser.h +0 -278
  565. data/ext/v8/upstream/v8/src/prettyprinter.cc +0 -1530
  566. data/ext/v8/upstream/v8/src/prettyprinter.h +0 -223
  567. data/ext/v8/upstream/v8/src/profile-generator-inl.h +0 -128
  568. data/ext/v8/upstream/v8/src/profile-generator.cc +0 -3095
  569. data/ext/v8/upstream/v8/src/profile-generator.h +0 -1125
  570. data/ext/v8/upstream/v8/src/property.cc +0 -102
  571. data/ext/v8/upstream/v8/src/property.h +0 -348
  572. data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp-inl.h +0 -78
  573. data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp.cc +0 -470
  574. data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp.h +0 -142
  575. data/ext/v8/upstream/v8/src/regexp-macro-assembler-tracer.cc +0 -373
  576. data/ext/v8/upstream/v8/src/regexp-macro-assembler-tracer.h +0 -104
  577. data/ext/v8/upstream/v8/src/regexp-macro-assembler.cc +0 -266
  578. data/ext/v8/upstream/v8/src/regexp-macro-assembler.h +0 -236
  579. data/ext/v8/upstream/v8/src/regexp-stack.cc +0 -111
  580. data/ext/v8/upstream/v8/src/regexp-stack.h +0 -147
  581. data/ext/v8/upstream/v8/src/regexp.js +0 -483
  582. data/ext/v8/upstream/v8/src/register-allocator-inl.h +0 -141
  583. data/ext/v8/upstream/v8/src/register-allocator.cc +0 -98
  584. data/ext/v8/upstream/v8/src/register-allocator.h +0 -310
  585. data/ext/v8/upstream/v8/src/rewriter.cc +0 -1024
  586. data/ext/v8/upstream/v8/src/rewriter.h +0 -59
  587. data/ext/v8/upstream/v8/src/runtime-profiler.cc +0 -478
  588. data/ext/v8/upstream/v8/src/runtime-profiler.h +0 -192
  589. data/ext/v8/upstream/v8/src/runtime.cc +0 -11949
  590. data/ext/v8/upstream/v8/src/runtime.h +0 -643
  591. data/ext/v8/upstream/v8/src/runtime.js +0 -643
  592. data/ext/v8/upstream/v8/src/safepoint-table.cc +0 -256
  593. data/ext/v8/upstream/v8/src/safepoint-table.h +0 -269
  594. data/ext/v8/upstream/v8/src/scanner-base.cc +0 -964
  595. data/ext/v8/upstream/v8/src/scanner-base.h +0 -664
  596. data/ext/v8/upstream/v8/src/scanner.cc +0 -584
  597. data/ext/v8/upstream/v8/src/scanner.h +0 -196
  598. data/ext/v8/upstream/v8/src/scopeinfo.cc +0 -631
  599. data/ext/v8/upstream/v8/src/scopeinfo.h +0 -249
  600. data/ext/v8/upstream/v8/src/scopes.cc +0 -1093
  601. data/ext/v8/upstream/v8/src/scopes.h +0 -508
  602. data/ext/v8/upstream/v8/src/serialize.cc +0 -1574
  603. data/ext/v8/upstream/v8/src/serialize.h +0 -589
  604. data/ext/v8/upstream/v8/src/shell.h +0 -55
  605. data/ext/v8/upstream/v8/src/simulator.h +0 -43
  606. data/ext/v8/upstream/v8/src/small-pointer-list.h +0 -163
  607. data/ext/v8/upstream/v8/src/smart-pointer.h +0 -109
  608. data/ext/v8/upstream/v8/src/snapshot-common.cc +0 -82
  609. data/ext/v8/upstream/v8/src/snapshot-empty.cc +0 -50
  610. data/ext/v8/upstream/v8/src/snapshot.h +0 -73
  611. data/ext/v8/upstream/v8/src/spaces-inl.h +0 -529
  612. data/ext/v8/upstream/v8/src/spaces.cc +0 -3147
  613. data/ext/v8/upstream/v8/src/spaces.h +0 -2368
  614. data/ext/v8/upstream/v8/src/splay-tree-inl.h +0 -310
  615. data/ext/v8/upstream/v8/src/splay-tree.h +0 -203
  616. data/ext/v8/upstream/v8/src/string-search.cc +0 -41
  617. data/ext/v8/upstream/v8/src/string-search.h +0 -568
  618. data/ext/v8/upstream/v8/src/string-stream.cc +0 -592
  619. data/ext/v8/upstream/v8/src/string-stream.h +0 -191
  620. data/ext/v8/upstream/v8/src/string.js +0 -915
  621. data/ext/v8/upstream/v8/src/strtod.cc +0 -440
  622. data/ext/v8/upstream/v8/src/strtod.h +0 -40
  623. data/ext/v8/upstream/v8/src/stub-cache.cc +0 -1940
  624. data/ext/v8/upstream/v8/src/stub-cache.h +0 -866
  625. data/ext/v8/upstream/v8/src/third_party/valgrind/valgrind.h +0 -3925
  626. data/ext/v8/upstream/v8/src/token.cc +0 -63
  627. data/ext/v8/upstream/v8/src/token.h +0 -288
  628. data/ext/v8/upstream/v8/src/top.cc +0 -983
  629. data/ext/v8/upstream/v8/src/type-info.cc +0 -472
  630. data/ext/v8/upstream/v8/src/type-info.h +0 -290
  631. data/ext/v8/upstream/v8/src/unbound-queue-inl.h +0 -95
  632. data/ext/v8/upstream/v8/src/unbound-queue.h +0 -67
  633. data/ext/v8/upstream/v8/src/unicode-inl.h +0 -238
  634. data/ext/v8/upstream/v8/src/unicode.cc +0 -1624
  635. data/ext/v8/upstream/v8/src/unicode.h +0 -280
  636. data/ext/v8/upstream/v8/src/uri.js +0 -402
  637. data/ext/v8/upstream/v8/src/utils.cc +0 -371
  638. data/ext/v8/upstream/v8/src/utils.h +0 -796
  639. data/ext/v8/upstream/v8/src/v8-counters.cc +0 -62
  640. data/ext/v8/upstream/v8/src/v8-counters.h +0 -311
  641. data/ext/v8/upstream/v8/src/v8.cc +0 -215
  642. data/ext/v8/upstream/v8/src/v8.h +0 -130
  643. data/ext/v8/upstream/v8/src/v8checks.h +0 -64
  644. data/ext/v8/upstream/v8/src/v8dll-main.cc +0 -39
  645. data/ext/v8/upstream/v8/src/v8globals.h +0 -486
  646. data/ext/v8/upstream/v8/src/v8memory.h +0 -82
  647. data/ext/v8/upstream/v8/src/v8natives.js +0 -1293
  648. data/ext/v8/upstream/v8/src/v8preparserdll-main.cc +0 -39
  649. data/ext/v8/upstream/v8/src/v8threads.cc +0 -453
  650. data/ext/v8/upstream/v8/src/v8threads.h +0 -164
  651. data/ext/v8/upstream/v8/src/v8utils.h +0 -317
  652. data/ext/v8/upstream/v8/src/variables.cc +0 -132
  653. data/ext/v8/upstream/v8/src/variables.h +0 -212
  654. data/ext/v8/upstream/v8/src/version.cc +0 -116
  655. data/ext/v8/upstream/v8/src/version.h +0 -68
  656. data/ext/v8/upstream/v8/src/virtual-frame-heavy-inl.h +0 -190
  657. data/ext/v8/upstream/v8/src/virtual-frame-heavy.cc +0 -312
  658. data/ext/v8/upstream/v8/src/virtual-frame-inl.h +0 -39
  659. data/ext/v8/upstream/v8/src/virtual-frame-light-inl.h +0 -171
  660. data/ext/v8/upstream/v8/src/virtual-frame-light.cc +0 -52
  661. data/ext/v8/upstream/v8/src/virtual-frame.cc +0 -49
  662. data/ext/v8/upstream/v8/src/virtual-frame.h +0 -59
  663. data/ext/v8/upstream/v8/src/vm-state-inl.h +0 -138
  664. data/ext/v8/upstream/v8/src/vm-state.h +0 -70
  665. data/ext/v8/upstream/v8/src/win32-headers.h +0 -96
  666. data/ext/v8/upstream/v8/src/x64/assembler-x64-inl.h +0 -456
  667. data/ext/v8/upstream/v8/src/x64/assembler-x64.cc +0 -2954
  668. data/ext/v8/upstream/v8/src/x64/assembler-x64.h +0 -1630
  669. data/ext/v8/upstream/v8/src/x64/builtins-x64.cc +0 -1493
  670. data/ext/v8/upstream/v8/src/x64/code-stubs-x64.cc +0 -5132
  671. data/ext/v8/upstream/v8/src/x64/code-stubs-x64.h +0 -477
  672. data/ext/v8/upstream/v8/src/x64/codegen-x64-inl.h +0 -46
  673. data/ext/v8/upstream/v8/src/x64/codegen-x64.cc +0 -8843
  674. data/ext/v8/upstream/v8/src/x64/codegen-x64.h +0 -753
  675. data/ext/v8/upstream/v8/src/x64/cpu-x64.cc +0 -88
  676. data/ext/v8/upstream/v8/src/x64/debug-x64.cc +0 -318
  677. data/ext/v8/upstream/v8/src/x64/deoptimizer-x64.cc +0 -815
  678. data/ext/v8/upstream/v8/src/x64/disasm-x64.cc +0 -1752
  679. data/ext/v8/upstream/v8/src/x64/frames-x64.cc +0 -45
  680. data/ext/v8/upstream/v8/src/x64/frames-x64.h +0 -130
  681. data/ext/v8/upstream/v8/src/x64/full-codegen-x64.cc +0 -4339
  682. data/ext/v8/upstream/v8/src/x64/ic-x64.cc +0 -1752
  683. data/ext/v8/upstream/v8/src/x64/jump-target-x64.cc +0 -437
  684. data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.cc +0 -3970
  685. data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.h +0 -318
  686. data/ext/v8/upstream/v8/src/x64/lithium-gap-resolver-x64.cc +0 -320
  687. data/ext/v8/upstream/v8/src/x64/lithium-gap-resolver-x64.h +0 -74
  688. data/ext/v8/upstream/v8/src/x64/lithium-x64.cc +0 -2115
  689. data/ext/v8/upstream/v8/src/x64/lithium-x64.h +0 -2161
  690. data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.cc +0 -2911
  691. data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.h +0 -1984
  692. data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.cc +0 -1398
  693. data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.h +0 -282
  694. data/ext/v8/upstream/v8/src/x64/register-allocator-x64-inl.h +0 -87
  695. data/ext/v8/upstream/v8/src/x64/register-allocator-x64.cc +0 -95
  696. data/ext/v8/upstream/v8/src/x64/register-allocator-x64.h +0 -43
  697. data/ext/v8/upstream/v8/src/x64/simulator-x64.cc +0 -27
  698. data/ext/v8/upstream/v8/src/x64/simulator-x64.h +0 -71
  699. data/ext/v8/upstream/v8/src/x64/stub-cache-x64.cc +0 -3460
  700. data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.cc +0 -1296
  701. data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.h +0 -597
  702. data/ext/v8/upstream/v8/src/zone-inl.h +0 -129
  703. data/ext/v8/upstream/v8/src/zone.cc +0 -196
  704. data/ext/v8/upstream/v8/src/zone.h +0 -236
  705. data/ext/v8/upstream/v8/tools/codemap.js +0 -265
  706. data/ext/v8/upstream/v8/tools/consarray.js +0 -93
  707. data/ext/v8/upstream/v8/tools/csvparser.js +0 -78
  708. data/ext/v8/upstream/v8/tools/disasm.py +0 -92
  709. data/ext/v8/upstream/v8/tools/freebsd-tick-processor +0 -10
  710. data/ext/v8/upstream/v8/tools/gc-nvp-trace-processor.py +0 -328
  711. data/ext/v8/upstream/v8/tools/generate-ten-powers.scm +0 -286
  712. data/ext/v8/upstream/v8/tools/grokdump.py +0 -840
  713. data/ext/v8/upstream/v8/tools/gyp/v8.gyp +0 -844
  714. data/ext/v8/upstream/v8/tools/js2c.py +0 -380
  715. data/ext/v8/upstream/v8/tools/jsmin.py +0 -280
  716. data/ext/v8/upstream/v8/tools/linux-tick-processor +0 -35
  717. data/ext/v8/upstream/v8/tools/ll_prof.py +0 -919
  718. data/ext/v8/upstream/v8/tools/logreader.js +0 -185
  719. data/ext/v8/upstream/v8/tools/mac-nm +0 -18
  720. data/ext/v8/upstream/v8/tools/mac-tick-processor +0 -6
  721. data/ext/v8/upstream/v8/tools/oom_dump/README +0 -31
  722. data/ext/v8/upstream/v8/tools/oom_dump/SConstruct +0 -42
  723. data/ext/v8/upstream/v8/tools/oom_dump/oom_dump.cc +0 -288
  724. data/ext/v8/upstream/v8/tools/presubmit.py +0 -305
  725. data/ext/v8/upstream/v8/tools/process-heap-prof.py +0 -120
  726. data/ext/v8/upstream/v8/tools/profile.js +0 -751
  727. data/ext/v8/upstream/v8/tools/profile_view.js +0 -219
  728. data/ext/v8/upstream/v8/tools/run-valgrind.py +0 -77
  729. data/ext/v8/upstream/v8/tools/splaytree.js +0 -316
  730. data/ext/v8/upstream/v8/tools/stats-viewer.py +0 -468
  731. data/ext/v8/upstream/v8/tools/test.py +0 -1490
  732. data/ext/v8/upstream/v8/tools/tickprocessor-driver.js +0 -59
  733. data/ext/v8/upstream/v8/tools/tickprocessor.js +0 -877
  734. data/ext/v8/upstream/v8/tools/utils.py +0 -96
  735. data/ext/v8/upstream/v8/tools/visual_studio/README.txt +0 -70
  736. data/ext/v8/upstream/v8/tools/visual_studio/arm.vsprops +0 -14
  737. data/ext/v8/upstream/v8/tools/visual_studio/common.vsprops +0 -34
  738. data/ext/v8/upstream/v8/tools/visual_studio/d8.vcproj +0 -193
  739. data/ext/v8/upstream/v8/tools/visual_studio/d8_arm.vcproj +0 -193
  740. data/ext/v8/upstream/v8/tools/visual_studio/d8_x64.vcproj +0 -209
  741. data/ext/v8/upstream/v8/tools/visual_studio/d8js2c.cmd +0 -6
  742. data/ext/v8/upstream/v8/tools/visual_studio/debug.vsprops +0 -17
  743. data/ext/v8/upstream/v8/tools/visual_studio/ia32.vsprops +0 -17
  744. data/ext/v8/upstream/v8/tools/visual_studio/js2c.cmd +0 -6
  745. data/ext/v8/upstream/v8/tools/visual_studio/release.vsprops +0 -24
  746. data/ext/v8/upstream/v8/tools/visual_studio/v8.sln +0 -101
  747. data/ext/v8/upstream/v8/tools/visual_studio/v8.vcproj +0 -227
  748. data/ext/v8/upstream/v8/tools/visual_studio/v8_arm.sln +0 -74
  749. data/ext/v8/upstream/v8/tools/visual_studio/v8_arm.vcproj +0 -227
  750. data/ext/v8/upstream/v8/tools/visual_studio/v8_base.vcproj +0 -1308
  751. data/ext/v8/upstream/v8/tools/visual_studio/v8_base_arm.vcproj +0 -1238
  752. data/ext/v8/upstream/v8/tools/visual_studio/v8_base_x64.vcproj +0 -1300
  753. data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest.vcproj +0 -265
  754. data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest_arm.vcproj +0 -249
  755. data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest_x64.vcproj +0 -257
  756. data/ext/v8/upstream/v8/tools/visual_studio/v8_mksnapshot.vcproj +0 -145
  757. data/ext/v8/upstream/v8/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -145
  758. data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample.vcproj +0 -145
  759. data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample_arm.vcproj +0 -145
  760. data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample_x64.vcproj +0 -161
  761. data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample.vcproj +0 -147
  762. data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -147
  763. data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -163
  764. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot.vcproj +0 -142
  765. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_cc.vcproj +0 -92
  766. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -92
  767. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_x64.vcproj +0 -142
  768. data/ext/v8/upstream/v8/tools/visual_studio/v8_x64.sln +0 -101
  769. data/ext/v8/upstream/v8/tools/visual_studio/v8_x64.vcproj +0 -227
  770. data/ext/v8/upstream/v8/tools/visual_studio/x64.vsprops +0 -18
  771. data/ext/v8/upstream/v8/tools/windows-tick-processor.bat +0 -30
@@ -1,1306 +0,0 @@
1
- // Copyright 2010 the V8 project authors. All rights reserved.
2
- // Redistribution and use in source and binary forms, with or without
3
- // modification, are permitted provided that the following conditions are
4
- // met:
5
- //
6
- // * Redistributions of source code must retain the above copyright
7
- // notice, this list of conditions and the following disclaimer.
8
- // * Redistributions in binary form must reproduce the above
9
- // copyright notice, this list of conditions and the following
10
- // disclaimer in the documentation and/or other materials provided
11
- // with the distribution.
12
- // * Neither the name of Google Inc. nor the names of its
13
- // contributors may be used to endorse or promote products derived
14
- // from this software without specific prior written permission.
15
- //
16
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
-
28
- #ifndef V8_ISOLATE_H_
29
- #define V8_ISOLATE_H_
30
-
31
- #include "../include/v8-debug.h"
32
- #include "allocation.h"
33
- #include "apiutils.h"
34
- #include "atomicops.h"
35
- #include "builtins.h"
36
- #include "contexts.h"
37
- #include "execution.h"
38
- #include "frames.h"
39
- #include "global-handles.h"
40
- #include "handles.h"
41
- #include "heap.h"
42
- #include "regexp-stack.h"
43
- #include "runtime-profiler.h"
44
- #include "runtime.h"
45
- #include "zone.h"
46
-
47
- namespace v8 {
48
- namespace internal {
49
-
50
- class AstSentinels;
51
- class Bootstrapper;
52
- class CodeGenerator;
53
- class CodeRange;
54
- class CompilationCache;
55
- class ContextSlotCache;
56
- class ContextSwitcher;
57
- class Counters;
58
- class CpuFeatures;
59
- class CpuProfiler;
60
- class DeoptimizerData;
61
- class Deserializer;
62
- class EmptyStatement;
63
- class ExternalReferenceTable;
64
- class Factory;
65
- class FunctionInfoListener;
66
- class HandleScopeImplementer;
67
- class HeapProfiler;
68
- class InlineRuntimeFunctionsTable;
69
- class NoAllocationStringAllocator;
70
- class PcToCodeCache;
71
- class PreallocatedMemoryThread;
72
- class ProducerHeapProfile;
73
- class RegExpStack;
74
- class SaveContext;
75
- class ScannerConstants;
76
- class StringInputBuffer;
77
- class StringTracker;
78
- class StubCache;
79
- class ThreadManager;
80
- class ThreadState;
81
- class ThreadVisitor; // Defined in v8threads.h
82
- class VMState;
83
-
84
- // 'void function pointer', used to roundtrip the
85
- // ExternalReference::ExternalReferenceRedirector since we can not include
86
- // assembler.h, where it is defined, here.
87
- typedef void* ExternalReferenceRedirectorPointer();
88
-
89
-
90
- #ifdef ENABLE_DEBUGGER_SUPPORT
91
- class Debug;
92
- class Debugger;
93
- class DebuggerAgent;
94
- #endif
95
-
96
- #if !defined(__arm__) && defined(V8_TARGET_ARCH_ARM) || \
97
- !defined(__mips__) && defined(V8_TARGET_ARCH_MIPS)
98
- class Redirection;
99
- class Simulator;
100
- #endif
101
-
102
-
103
- // Static indirection table for handles to constants. If a frame
104
- // element represents a constant, the data contains an index into
105
- // this table of handles to the actual constants.
106
- // Static indirection table for handles to constants. If a Result
107
- // represents a constant, the data contains an index into this table
108
- // of handles to the actual constants.
109
- typedef ZoneList<Handle<Object> > ZoneObjectList;
110
-
111
- #define RETURN_IF_SCHEDULED_EXCEPTION(isolate) \
112
- if (isolate->has_scheduled_exception()) \
113
- return isolate->PromoteScheduledException()
114
-
115
- #define RETURN_IF_EMPTY_HANDLE_VALUE(isolate, call, value) \
116
- if (call.is_null()) { \
117
- ASSERT(isolate->has_pending_exception()); \
118
- return value; \
119
- }
120
-
121
- #define RETURN_IF_EMPTY_HANDLE(isolate, call) \
122
- RETURN_IF_EMPTY_HANDLE_VALUE(isolate, call, Failure::Exception())
123
-
124
- #define ISOLATE_ADDRESS_LIST(C) \
125
- C(handler_address) \
126
- C(c_entry_fp_address) \
127
- C(context_address) \
128
- C(pending_exception_address) \
129
- C(external_caught_exception_address)
130
-
131
- #ifdef ENABLE_LOGGING_AND_PROFILING
132
- #define ISOLATE_ADDRESS_LIST_PROF(C) \
133
- C(js_entry_sp_address)
134
- #else
135
- #define ISOLATE_ADDRESS_LIST_PROF(C)
136
- #endif
137
-
138
-
139
- class ThreadLocalTop BASE_EMBEDDED {
140
- public:
141
- // Initialize the thread data.
142
- void Initialize();
143
-
144
- // Get the top C++ try catch handler or NULL if none are registered.
145
- //
146
- // This method is not guarenteed to return an address that can be
147
- // used for comparison with addresses into the JS stack. If such an
148
- // address is needed, use try_catch_handler_address.
149
- v8::TryCatch* TryCatchHandler();
150
-
151
- // Get the address of the top C++ try catch handler or NULL if
152
- // none are registered.
153
- //
154
- // This method always returns an address that can be compared to
155
- // pointers into the JavaScript stack. When running on actual
156
- // hardware, try_catch_handler_address and TryCatchHandler return
157
- // the same pointer. When running on a simulator with a separate JS
158
- // stack, try_catch_handler_address returns a JS stack address that
159
- // corresponds to the place on the JS stack where the C++ handler
160
- // would have been if the stack were not separate.
161
- inline Address try_catch_handler_address() {
162
- return try_catch_handler_address_;
163
- }
164
-
165
- // Set the address of the top C++ try catch handler.
166
- inline void set_try_catch_handler_address(Address address) {
167
- try_catch_handler_address_ = address;
168
- }
169
-
170
- void Free() {
171
- ASSERT(!has_pending_message_);
172
- ASSERT(!external_caught_exception_);
173
- ASSERT(try_catch_handler_address_ == NULL);
174
- }
175
-
176
- // The context where the current execution method is created and for variable
177
- // lookups.
178
- Context* context_;
179
- int thread_id_;
180
- MaybeObject* pending_exception_;
181
- bool has_pending_message_;
182
- const char* pending_message_;
183
- Object* pending_message_obj_;
184
- Script* pending_message_script_;
185
- int pending_message_start_pos_;
186
- int pending_message_end_pos_;
187
- // Use a separate value for scheduled exceptions to preserve the
188
- // invariants that hold about pending_exception. We may want to
189
- // unify them later.
190
- MaybeObject* scheduled_exception_;
191
- bool external_caught_exception_;
192
- SaveContext* save_context_;
193
- v8::TryCatch* catcher_;
194
-
195
- // Stack.
196
- Address c_entry_fp_; // the frame pointer of the top c entry frame
197
- Address handler_; // try-blocks are chained through the stack
198
-
199
- #ifdef USE_SIMULATOR
200
- #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_MIPS)
201
- Simulator* simulator_;
202
- #endif
203
- #endif // USE_SIMULATOR
204
-
205
- #ifdef ENABLE_LOGGING_AND_PROFILING
206
- Address js_entry_sp_; // the stack pointer of the bottom js entry frame
207
- Address external_callback_; // the external callback we're currently in
208
- #endif
209
-
210
- #ifdef ENABLE_VMSTATE_TRACKING
211
- StateTag current_vm_state_;
212
- #endif
213
-
214
- // Generated code scratch locations.
215
- int32_t formal_count_;
216
-
217
- // Call back function to report unsafe JS accesses.
218
- v8::FailedAccessCheckCallback failed_access_check_callback_;
219
-
220
- private:
221
- Address try_catch_handler_address_;
222
- };
223
-
224
- #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_MIPS)
225
-
226
- #define ISOLATE_PLATFORM_INIT_LIST(V) \
227
- /* VirtualFrame::SpilledScope state */ \
228
- V(bool, is_virtual_frame_in_spilled_scope, false) \
229
- /* CodeGenerator::EmitNamedStore state */ \
230
- V(int, inlined_write_barrier_size, -1)
231
-
232
- #if !defined(__arm__) && !defined(__mips__)
233
- class HashMap;
234
- #endif
235
-
236
- #else
237
-
238
- #define ISOLATE_PLATFORM_INIT_LIST(V)
239
-
240
- #endif
241
-
242
- #ifdef ENABLE_DEBUGGER_SUPPORT
243
-
244
- #define ISOLATE_DEBUGGER_INIT_LIST(V) \
245
- V(uint64_t, enabled_cpu_features, 0) \
246
- V(v8::Debug::EventCallback, debug_event_callback, NULL) \
247
- V(DebuggerAgent*, debugger_agent_instance, NULL)
248
- #else
249
-
250
- #define ISOLATE_DEBUGGER_INIT_LIST(V)
251
-
252
- #endif
253
-
254
- #ifdef DEBUG
255
-
256
- #define ISOLATE_INIT_DEBUG_ARRAY_LIST(V) \
257
- V(CommentStatistic, paged_space_comments_statistics, \
258
- CommentStatistic::kMaxComments + 1)
259
- #else
260
-
261
- #define ISOLATE_INIT_DEBUG_ARRAY_LIST(V)
262
-
263
- #endif
264
-
265
- #ifdef ENABLE_LOGGING_AND_PROFILING
266
-
267
- #define ISOLATE_LOGGING_INIT_LIST(V) \
268
- V(CpuProfiler*, cpu_profiler, NULL) \
269
- V(HeapProfiler*, heap_profiler, NULL)
270
-
271
- #else
272
-
273
- #define ISOLATE_LOGGING_INIT_LIST(V)
274
-
275
- #endif
276
-
277
- #define ISOLATE_INIT_ARRAY_LIST(V) \
278
- /* SerializerDeserializer state. */ \
279
- V(Object*, serialize_partial_snapshot_cache, kPartialSnapshotCacheCapacity) \
280
- V(int, jsregexp_static_offsets_vector, kJSRegexpStaticOffsetsVectorSize) \
281
- V(int, bad_char_shift_table, kUC16AlphabetSize) \
282
- V(int, good_suffix_shift_table, (kBMMaxShift + 1)) \
283
- V(int, suffix_table, (kBMMaxShift + 1)) \
284
- ISOLATE_INIT_DEBUG_ARRAY_LIST(V)
285
-
286
- typedef List<HeapObject*, PreallocatedStorage> DebugObjectCache;
287
-
288
- #define ISOLATE_INIT_LIST(V) \
289
- /* AssertNoZoneAllocation state. */ \
290
- V(bool, zone_allow_allocation, true) \
291
- /* SerializerDeserializer state. */ \
292
- V(int, serialize_partial_snapshot_cache_length, 0) \
293
- /* Assembler state. */ \
294
- /* A previously allocated buffer of kMinimalBufferSize bytes, or NULL. */ \
295
- V(byte*, assembler_spare_buffer, NULL) \
296
- V(FatalErrorCallback, exception_behavior, NULL) \
297
- V(v8::Debug::MessageHandler, message_handler, NULL) \
298
- /* To distinguish the function templates, so that we can find them in the */ \
299
- /* function cache of the global context. */ \
300
- V(int, next_serial_number, 0) \
301
- V(ExternalReferenceRedirectorPointer*, external_reference_redirector, NULL) \
302
- V(bool, always_allow_natives_syntax, false) \
303
- /* Part of the state of liveedit. */ \
304
- V(FunctionInfoListener*, active_function_info_listener, NULL) \
305
- /* State for Relocatable. */ \
306
- V(Relocatable*, relocatable_top, NULL) \
307
- /* State for CodeEntry in profile-generator. */ \
308
- V(CodeGenerator*, current_code_generator, NULL) \
309
- V(bool, jump_target_compiling_deferred_code, false) \
310
- V(DebugObjectCache*, string_stream_debug_object_cache, NULL) \
311
- V(Object*, string_stream_current_security_token, NULL) \
312
- /* TODO(isolates): Release this on destruction? */ \
313
- V(int*, irregexp_interpreter_backtrack_stack_cache, NULL) \
314
- /* Serializer state. */ \
315
- V(ExternalReferenceTable*, external_reference_table, NULL) \
316
- /* AstNode state. */ \
317
- V(unsigned, ast_node_id, 0) \
318
- V(unsigned, ast_node_count, 0) \
319
- /* SafeStackFrameIterator activations count. */ \
320
- V(int, safe_stack_iterator_counter, 0) \
321
- ISOLATE_PLATFORM_INIT_LIST(V) \
322
- ISOLATE_LOGGING_INIT_LIST(V) \
323
- ISOLATE_DEBUGGER_INIT_LIST(V)
324
-
325
- class Isolate {
326
- // These forward declarations are required to make the friend declarations in
327
- // PerIsolateThreadData work on some older versions of gcc.
328
- class ThreadDataTable;
329
- class EntryStackItem;
330
- public:
331
- ~Isolate();
332
-
333
- typedef int ThreadId;
334
-
335
- // A thread has a PerIsolateThreadData instance for each isolate that it has
336
- // entered. That instance is allocated when the isolate is initially entered
337
- // and reused on subsequent entries.
338
- class PerIsolateThreadData {
339
- public:
340
- PerIsolateThreadData(Isolate* isolate, ThreadId thread_id)
341
- : isolate_(isolate),
342
- thread_id_(thread_id),
343
- stack_limit_(0),
344
- thread_state_(NULL),
345
- #if !defined(__arm__) && defined(V8_TARGET_ARCH_ARM) || \
346
- !defined(__mips__) && defined(V8_TARGET_ARCH_MIPS)
347
- simulator_(NULL),
348
- #endif
349
- next_(NULL),
350
- prev_(NULL) { }
351
- Isolate* isolate() const { return isolate_; }
352
- ThreadId thread_id() const { return thread_id_; }
353
- void set_stack_limit(uintptr_t value) { stack_limit_ = value; }
354
- uintptr_t stack_limit() const { return stack_limit_; }
355
- ThreadState* thread_state() const { return thread_state_; }
356
- void set_thread_state(ThreadState* value) { thread_state_ = value; }
357
-
358
- #if !defined(__arm__) && defined(V8_TARGET_ARCH_ARM) || \
359
- !defined(__mips__) && defined(V8_TARGET_ARCH_MIPS)
360
- Simulator* simulator() const { return simulator_; }
361
- void set_simulator(Simulator* simulator) {
362
- simulator_ = simulator;
363
- }
364
- #endif
365
-
366
- bool Matches(Isolate* isolate, ThreadId thread_id) const {
367
- return isolate_ == isolate && thread_id_ == thread_id;
368
- }
369
-
370
- private:
371
- Isolate* isolate_;
372
- ThreadId thread_id_;
373
- uintptr_t stack_limit_;
374
- ThreadState* thread_state_;
375
-
376
- #if !defined(__arm__) && defined(V8_TARGET_ARCH_ARM) || \
377
- !defined(__mips__) && defined(V8_TARGET_ARCH_MIPS)
378
- Simulator* simulator_;
379
- #endif
380
-
381
- PerIsolateThreadData* next_;
382
- PerIsolateThreadData* prev_;
383
-
384
- friend class Isolate;
385
- friend class ThreadDataTable;
386
- friend class EntryStackItem;
387
-
388
- DISALLOW_COPY_AND_ASSIGN(PerIsolateThreadData);
389
- };
390
-
391
-
392
- enum AddressId {
393
- #define C(name) k_##name,
394
- ISOLATE_ADDRESS_LIST(C)
395
- ISOLATE_ADDRESS_LIST_PROF(C)
396
- #undef C
397
- k_isolate_address_count
398
- };
399
-
400
- // Returns the PerIsolateThreadData for the current thread (or NULL if one is
401
- // not currently set).
402
- static PerIsolateThreadData* CurrentPerIsolateThreadData() {
403
- return reinterpret_cast<PerIsolateThreadData*>(
404
- Thread::GetThreadLocal(per_isolate_thread_data_key_));
405
- }
406
-
407
- // Returns the isolate inside which the current thread is running.
408
- INLINE(static Isolate* Current()) {
409
- Isolate* isolate = reinterpret_cast<Isolate*>(
410
- Thread::GetExistingThreadLocal(isolate_key_));
411
- ASSERT(isolate != NULL);
412
- return isolate;
413
- }
414
-
415
- INLINE(static Isolate* UncheckedCurrent()) {
416
- return reinterpret_cast<Isolate*>(Thread::GetThreadLocal(isolate_key_));
417
- }
418
-
419
- bool Init(Deserializer* des);
420
-
421
- bool IsInitialized() { return state_ == INITIALIZED; }
422
-
423
- // True if at least one thread Enter'ed this isolate.
424
- bool IsInUse() { return entry_stack_ != NULL; }
425
-
426
- // Destroys the non-default isolates.
427
- // Sets default isolate into "has_been_disposed" state rather then destroying,
428
- // for legacy API reasons.
429
- void TearDown();
430
-
431
- bool IsDefaultIsolate() const { return this == default_isolate_; }
432
-
433
- // Ensures that process-wide resources and the default isolate have been
434
- // allocated. It is only necessary to call this method in rare casses, for
435
- // example if you are using V8 from within the body of a static initializer.
436
- // Safe to call multiple times.
437
- static void EnsureDefaultIsolate();
438
-
439
- // Get the debugger from the default isolate. Preinitializes the
440
- // default isolate if needed.
441
- static Debugger* GetDefaultIsolateDebugger();
442
-
443
- // Get the stack guard from the default isolate. Preinitializes the
444
- // default isolate if needed.
445
- static StackGuard* GetDefaultIsolateStackGuard();
446
-
447
- // Returns the key used to store the pointer to the current isolate.
448
- // Used internally for V8 threads that do not execute JavaScript but still
449
- // are part of the domain of an isolate (like the context switcher).
450
- static Thread::LocalStorageKey isolate_key() {
451
- return isolate_key_;
452
- }
453
-
454
- // Returns the key used to store process-wide thread IDs.
455
- static Thread::LocalStorageKey thread_id_key() {
456
- return thread_id_key_;
457
- }
458
-
459
- // Atomically allocates a new thread ID.
460
- static ThreadId AllocateThreadId();
461
-
462
- // If a client attempts to create a Locker without specifying an isolate,
463
- // we assume that the client is using legacy behavior. Set up the current
464
- // thread to be inside the implicit isolate (or fail a check if we have
465
- // switched to non-legacy behavior).
466
- static void EnterDefaultIsolate();
467
-
468
- // Debug.
469
- // Mutex for serializing access to break control structures.
470
- Mutex* break_access() { return break_access_; }
471
-
472
- Address get_address_from_id(AddressId id);
473
-
474
- // Access to top context (where the current function object was created).
475
- Context* context() { return thread_local_top_.context_; }
476
- void set_context(Context* context) {
477
- thread_local_top_.context_ = context;
478
- }
479
- Context** context_address() { return &thread_local_top_.context_; }
480
-
481
- SaveContext* save_context() {return thread_local_top_.save_context_; }
482
- void set_save_context(SaveContext* save) {
483
- thread_local_top_.save_context_ = save;
484
- }
485
-
486
- // Access to current thread id.
487
- int thread_id() { return thread_local_top_.thread_id_; }
488
- void set_thread_id(int id) { thread_local_top_.thread_id_ = id; }
489
-
490
- // Interface to pending exception.
491
- MaybeObject* pending_exception() {
492
- ASSERT(has_pending_exception());
493
- return thread_local_top_.pending_exception_;
494
- }
495
- bool external_caught_exception() {
496
- return thread_local_top_.external_caught_exception_;
497
- }
498
- void set_pending_exception(MaybeObject* exception) {
499
- thread_local_top_.pending_exception_ = exception;
500
- }
501
- void clear_pending_exception() {
502
- thread_local_top_.pending_exception_ = heap_.the_hole_value();
503
- }
504
- MaybeObject** pending_exception_address() {
505
- return &thread_local_top_.pending_exception_;
506
- }
507
- bool has_pending_exception() {
508
- return !thread_local_top_.pending_exception_->IsTheHole();
509
- }
510
- void clear_pending_message() {
511
- thread_local_top_.has_pending_message_ = false;
512
- thread_local_top_.pending_message_ = NULL;
513
- thread_local_top_.pending_message_obj_ = heap_.the_hole_value();
514
- thread_local_top_.pending_message_script_ = NULL;
515
- }
516
- v8::TryCatch* try_catch_handler() {
517
- return thread_local_top_.TryCatchHandler();
518
- }
519
- Address try_catch_handler_address() {
520
- return thread_local_top_.try_catch_handler_address();
521
- }
522
- bool* external_caught_exception_address() {
523
- return &thread_local_top_.external_caught_exception_;
524
- }
525
-
526
- MaybeObject** scheduled_exception_address() {
527
- return &thread_local_top_.scheduled_exception_;
528
- }
529
- MaybeObject* scheduled_exception() {
530
- ASSERT(has_scheduled_exception());
531
- return thread_local_top_.scheduled_exception_;
532
- }
533
- bool has_scheduled_exception() {
534
- return !thread_local_top_.scheduled_exception_->IsTheHole();
535
- }
536
- void clear_scheduled_exception() {
537
- thread_local_top_.scheduled_exception_ = heap_.the_hole_value();
538
- }
539
-
540
- bool IsExternallyCaught();
541
-
542
- bool is_catchable_by_javascript(MaybeObject* exception) {
543
- return (exception != Failure::OutOfMemoryException()) &&
544
- (exception != heap()->termination_exception());
545
- }
546
-
547
- // JS execution stack (see frames.h).
548
- static Address c_entry_fp(ThreadLocalTop* thread) {
549
- return thread->c_entry_fp_;
550
- }
551
- static Address handler(ThreadLocalTop* thread) { return thread->handler_; }
552
-
553
- inline Address* c_entry_fp_address() {
554
- return &thread_local_top_.c_entry_fp_;
555
- }
556
- inline Address* handler_address() { return &thread_local_top_.handler_; }
557
-
558
- #ifdef ENABLE_LOGGING_AND_PROFILING
559
- // Bottom JS entry (see StackTracer::Trace in log.cc).
560
- static Address js_entry_sp(ThreadLocalTop* thread) {
561
- return thread->js_entry_sp_;
562
- }
563
- inline Address* js_entry_sp_address() {
564
- return &thread_local_top_.js_entry_sp_;
565
- }
566
- #endif
567
-
568
- // Generated code scratch locations.
569
- void* formal_count_address() { return &thread_local_top_.formal_count_; }
570
-
571
- // Returns the global object of the current context. It could be
572
- // a builtin object, or a js global object.
573
- Handle<GlobalObject> global() {
574
- return Handle<GlobalObject>(context()->global());
575
- }
576
-
577
- // Returns the global proxy object of the current context.
578
- Object* global_proxy() {
579
- return context()->global_proxy();
580
- }
581
-
582
- Handle<JSBuiltinsObject> js_builtins_object() {
583
- return Handle<JSBuiltinsObject>(thread_local_top_.context_->builtins());
584
- }
585
-
586
- static int ArchiveSpacePerThread() { return sizeof(ThreadLocalTop); }
587
- void FreeThreadResources() { thread_local_top_.Free(); }
588
-
589
- // This method is called by the api after operations that may throw
590
- // exceptions. If an exception was thrown and not handled by an external
591
- // handler the exception is scheduled to be rethrown when we return to running
592
- // JavaScript code. If an exception is scheduled true is returned.
593
- bool OptionalRescheduleException(bool is_bottom_call);
594
-
595
- void SetCaptureStackTraceForUncaughtExceptions(
596
- bool capture,
597
- int frame_limit,
598
- StackTrace::StackTraceOptions options);
599
-
600
- // Tells whether the current context has experienced an out of memory
601
- // exception.
602
- bool is_out_of_memory();
603
-
604
- void PrintCurrentStackTrace(FILE* out);
605
- void PrintStackTrace(FILE* out, char* thread_data);
606
- void PrintStack(StringStream* accumulator);
607
- void PrintStack();
608
- Handle<String> StackTraceString();
609
- Handle<JSArray> CaptureCurrentStackTrace(
610
- int frame_limit,
611
- StackTrace::StackTraceOptions options);
612
-
613
- // Returns if the top context may access the given global object. If
614
- // the result is false, the pending exception is guaranteed to be
615
- // set.
616
- bool MayNamedAccess(JSObject* receiver,
617
- Object* key,
618
- v8::AccessType type);
619
- bool MayIndexedAccess(JSObject* receiver,
620
- uint32_t index,
621
- v8::AccessType type);
622
-
623
- void SetFailedAccessCheckCallback(v8::FailedAccessCheckCallback callback);
624
- void ReportFailedAccessCheck(JSObject* receiver, v8::AccessType type);
625
-
626
- // Exception throwing support. The caller should use the result
627
- // of Throw() as its return value.
628
- Failure* Throw(Object* exception, MessageLocation* location = NULL);
629
- // Re-throw an exception. This involves no error reporting since
630
- // error reporting was handled when the exception was thrown
631
- // originally.
632
- Failure* ReThrow(MaybeObject* exception, MessageLocation* location = NULL);
633
- void ScheduleThrow(Object* exception);
634
- void ReportPendingMessages();
635
- Failure* ThrowIllegalOperation();
636
-
637
- // Promote a scheduled exception to pending. Asserts has_scheduled_exception.
638
- Failure* PromoteScheduledException();
639
- void DoThrow(MaybeObject* exception,
640
- MessageLocation* location,
641
- const char* message);
642
- // Checks if exception should be reported and finds out if it's
643
- // caught externally.
644
- bool ShouldReportException(bool* can_be_caught_externally,
645
- bool catchable_by_javascript);
646
-
647
- // Attempts to compute the current source location, storing the
648
- // result in the target out parameter.
649
- void ComputeLocation(MessageLocation* target);
650
-
651
- // Override command line flag.
652
- void TraceException(bool flag);
653
-
654
- // Out of resource exception helpers.
655
- Failure* StackOverflow();
656
- Failure* TerminateExecution();
657
-
658
- // Administration
659
- void Iterate(ObjectVisitor* v);
660
- void Iterate(ObjectVisitor* v, ThreadLocalTop* t);
661
- char* Iterate(ObjectVisitor* v, char* t);
662
- void IterateThread(ThreadVisitor* v);
663
- void IterateThread(ThreadVisitor* v, char* t);
664
-
665
-
666
- // Returns the current global context.
667
- Handle<Context> global_context();
668
-
669
- // Returns the global context of the calling JavaScript code. That
670
- // is, the global context of the top-most JavaScript frame.
671
- Handle<Context> GetCallingGlobalContext();
672
-
673
- void RegisterTryCatchHandler(v8::TryCatch* that);
674
- void UnregisterTryCatchHandler(v8::TryCatch* that);
675
-
676
- char* ArchiveThread(char* to);
677
- char* RestoreThread(char* from);
678
-
679
- static const char* const kStackOverflowMessage;
680
-
681
- static const int kUC16AlphabetSize = 256; // See StringSearchBase.
682
- static const int kBMMaxShift = 250; // See StringSearchBase.
683
-
684
- // Accessors.
685
- #define GLOBAL_ACCESSOR(type, name, initialvalue) \
686
- inline type name() const { \
687
- ASSERT(OFFSET_OF(Isolate, name##_) == name##_debug_offset_); \
688
- return name##_; \
689
- } \
690
- inline void set_##name(type value) { \
691
- ASSERT(OFFSET_OF(Isolate, name##_) == name##_debug_offset_); \
692
- name##_ = value; \
693
- }
694
- ISOLATE_INIT_LIST(GLOBAL_ACCESSOR)
695
- #undef GLOBAL_ACCESSOR
696
-
697
- #define GLOBAL_ARRAY_ACCESSOR(type, name, length) \
698
- inline type* name() { \
699
- ASSERT(OFFSET_OF(Isolate, name##_) == name##_debug_offset_); \
700
- return &(name##_)[0]; \
701
- }
702
- ISOLATE_INIT_ARRAY_LIST(GLOBAL_ARRAY_ACCESSOR)
703
- #undef GLOBAL_ARRAY_ACCESSOR
704
-
705
- #define GLOBAL_CONTEXT_FIELD_ACCESSOR(index, type, name) \
706
- Handle<type> name() { \
707
- return Handle<type>(context()->global_context()->name()); \
708
- }
709
- GLOBAL_CONTEXT_FIELDS(GLOBAL_CONTEXT_FIELD_ACCESSOR)
710
- #undef GLOBAL_CONTEXT_FIELD_ACCESSOR
711
-
712
- Bootstrapper* bootstrapper() { return bootstrapper_; }
713
- Counters* counters() { return counters_; }
714
- CodeRange* code_range() { return code_range_; }
715
- RuntimeProfiler* runtime_profiler() { return runtime_profiler_; }
716
- CompilationCache* compilation_cache() { return compilation_cache_; }
717
- Logger* logger() { return logger_; }
718
- StackGuard* stack_guard() { return &stack_guard_; }
719
- Heap* heap() { return &heap_; }
720
- StatsTable* stats_table() { return stats_table_; }
721
- StubCache* stub_cache() { return stub_cache_; }
722
- DeoptimizerData* deoptimizer_data() { return deoptimizer_data_; }
723
- ThreadLocalTop* thread_local_top() { return &thread_local_top_; }
724
-
725
- TranscendentalCache* transcendental_cache() const {
726
- return transcendental_cache_;
727
- }
728
-
729
- MemoryAllocator* memory_allocator() {
730
- return memory_allocator_;
731
- }
732
-
733
- KeyedLookupCache* keyed_lookup_cache() {
734
- return keyed_lookup_cache_;
735
- }
736
-
737
- ContextSlotCache* context_slot_cache() {
738
- return context_slot_cache_;
739
- }
740
-
741
- DescriptorLookupCache* descriptor_lookup_cache() {
742
- return descriptor_lookup_cache_;
743
- }
744
-
745
- v8::ImplementationUtilities::HandleScopeData* handle_scope_data() {
746
- return &handle_scope_data_;
747
- }
748
- HandleScopeImplementer* handle_scope_implementer() {
749
- ASSERT(handle_scope_implementer_);
750
- return handle_scope_implementer_;
751
- }
752
- Zone* zone() { return &zone_; }
753
-
754
- ScannerConstants* scanner_constants() {
755
- return scanner_constants_;
756
- }
757
-
758
- PcToCodeCache* pc_to_code_cache() { return pc_to_code_cache_; }
759
-
760
- StringInputBuffer* write_input_buffer() { return write_input_buffer_; }
761
-
762
- GlobalHandles* global_handles() { return global_handles_; }
763
-
764
- ThreadManager* thread_manager() { return thread_manager_; }
765
-
766
- ContextSwitcher* context_switcher() { return context_switcher_; }
767
-
768
- void set_context_switcher(ContextSwitcher* switcher) {
769
- context_switcher_ = switcher;
770
- }
771
-
772
- StringTracker* string_tracker() { return string_tracker_; }
773
-
774
- unibrow::Mapping<unibrow::Ecma262UnCanonicalize>* jsregexp_uncanonicalize() {
775
- return &jsregexp_uncanonicalize_;
776
- }
777
-
778
- unibrow::Mapping<unibrow::CanonicalizationRange>* jsregexp_canonrange() {
779
- return &jsregexp_canonrange_;
780
- }
781
-
782
- StringInputBuffer* objects_string_compare_buffer_a() {
783
- return &objects_string_compare_buffer_a_;
784
- }
785
-
786
- StringInputBuffer* objects_string_compare_buffer_b() {
787
- return &objects_string_compare_buffer_b_;
788
- }
789
-
790
- StaticResource<StringInputBuffer>* objects_string_input_buffer() {
791
- return &objects_string_input_buffer_;
792
- }
793
-
794
- AstSentinels* ast_sentinels() { return ast_sentinels_; }
795
-
796
- RuntimeState* runtime_state() { return &runtime_state_; }
797
-
798
- StringInputBuffer* liveedit_compare_substrings_buf1() {
799
- return &liveedit_compare_substrings_buf1_;
800
- }
801
-
802
- StringInputBuffer* liveedit_compare_substrings_buf2() {
803
- return &liveedit_compare_substrings_buf2_;
804
- }
805
-
806
- StaticResource<SafeStringInputBuffer>* compiler_safe_string_input_buffer() {
807
- return &compiler_safe_string_input_buffer_;
808
- }
809
-
810
- Builtins* builtins() { return &builtins_; }
811
-
812
- unibrow::Mapping<unibrow::Ecma262Canonicalize>*
813
- regexp_macro_assembler_canonicalize() {
814
- return &regexp_macro_assembler_canonicalize_;
815
- }
816
-
817
- RegExpStack* regexp_stack() { return regexp_stack_; }
818
-
819
- unibrow::Mapping<unibrow::Ecma262Canonicalize>*
820
- interp_canonicalize_mapping() {
821
- return &interp_canonicalize_mapping_;
822
- }
823
-
824
- ZoneObjectList* frame_element_constant_list() {
825
- return &frame_element_constant_list_;
826
- }
827
-
828
- ZoneObjectList* result_constant_list() {
829
- return &result_constant_list_;
830
- }
831
-
832
- void* PreallocatedStorageNew(size_t size);
833
- void PreallocatedStorageDelete(void* p);
834
- void PreallocatedStorageInit(size_t size);
835
-
836
- #ifdef ENABLE_DEBUGGER_SUPPORT
837
- Debugger* debugger() { return debugger_; }
838
- Debug* debug() { return debug_; }
839
- #endif
840
-
841
- #ifdef ENABLE_LOGGING_AND_PROFILING
842
- ProducerHeapProfile* producer_heap_profile() {
843
- return producer_heap_profile_;
844
- }
845
- #endif
846
-
847
- #ifdef DEBUG
848
- HistogramInfo* heap_histograms() { return heap_histograms_; }
849
-
850
- JSObject::SpillInformation* js_spill_information() {
851
- return &js_spill_information_;
852
- }
853
-
854
- int* code_kind_statistics() { return code_kind_statistics_; }
855
- #endif
856
-
857
- #if defined(V8_TARGET_ARCH_ARM) && !defined(__arm__) || \
858
- defined(V8_TARGET_ARCH_MIPS) && !defined(__mips__)
859
- bool simulator_initialized() { return simulator_initialized_; }
860
- void set_simulator_initialized(bool initialized) {
861
- simulator_initialized_ = initialized;
862
- }
863
-
864
- HashMap* simulator_i_cache() { return simulator_i_cache_; }
865
- void set_simulator_i_cache(HashMap* hash_map) {
866
- simulator_i_cache_ = hash_map;
867
- }
868
-
869
- Redirection* simulator_redirection() {
870
- return simulator_redirection_;
871
- }
872
- void set_simulator_redirection(Redirection* redirection) {
873
- simulator_redirection_ = redirection;
874
- }
875
- #endif
876
-
877
- Factory* factory() { return reinterpret_cast<Factory*>(this); }
878
-
879
- // SerializerDeserializer state.
880
- static const int kPartialSnapshotCacheCapacity = 1400;
881
-
882
- static const int kJSRegexpStaticOffsetsVectorSize = 50;
883
-
884
- #ifdef ENABLE_LOGGING_AND_PROFILING
885
- Address external_callback() {
886
- return thread_local_top_.external_callback_;
887
- }
888
- void set_external_callback(Address callback) {
889
- thread_local_top_.external_callback_ = callback;
890
- }
891
- #endif
892
-
893
- #ifdef ENABLE_VMSTATE_TRACKING
894
- StateTag current_vm_state() {
895
- return thread_local_top_.current_vm_state_;
896
- }
897
-
898
- void SetCurrentVMState(StateTag state) {
899
- if (RuntimeProfiler::IsEnabled()) {
900
- if (state == JS) {
901
- // JS or non-JS -> JS transition.
902
- RuntimeProfiler::IsolateEnteredJS(this);
903
- } else if (thread_local_top_.current_vm_state_ == JS) {
904
- // JS -> non-JS transition.
905
- ASSERT(RuntimeProfiler::IsSomeIsolateInJS());
906
- RuntimeProfiler::IsolateExitedJS(this);
907
- }
908
- }
909
- thread_local_top_.current_vm_state_ = state;
910
- }
911
- #endif
912
-
913
- void ResetEagerOptimizingData();
914
-
915
- private:
916
- Isolate();
917
-
918
- // The per-process lock should be acquired before the ThreadDataTable is
919
- // modified.
920
- class ThreadDataTable {
921
- public:
922
- ThreadDataTable();
923
- ~ThreadDataTable();
924
-
925
- PerIsolateThreadData* Lookup(Isolate* isolate, ThreadId thread_id);
926
- void Insert(PerIsolateThreadData* data);
927
- void Remove(Isolate* isolate, ThreadId thread_id);
928
- void Remove(PerIsolateThreadData* data);
929
-
930
- private:
931
- PerIsolateThreadData* list_;
932
- };
933
-
934
- // These items form a stack synchronously with threads Enter'ing and Exit'ing
935
- // the Isolate. The top of the stack points to a thread which is currently
936
- // running the Isolate. When the stack is empty, the Isolate is considered
937
- // not entered by any thread and can be Disposed.
938
- // If the same thread enters the Isolate more then once, the entry_count_
939
- // is incremented rather then a new item pushed to the stack.
940
- class EntryStackItem {
941
- public:
942
- EntryStackItem(PerIsolateThreadData* previous_thread_data,
943
- Isolate* previous_isolate,
944
- EntryStackItem* previous_item)
945
- : entry_count(1),
946
- previous_thread_data(previous_thread_data),
947
- previous_isolate(previous_isolate),
948
- previous_item(previous_item) { }
949
-
950
- int entry_count;
951
- PerIsolateThreadData* previous_thread_data;
952
- Isolate* previous_isolate;
953
- EntryStackItem* previous_item;
954
-
955
- DISALLOW_COPY_AND_ASSIGN(EntryStackItem);
956
- };
957
-
958
- // This mutex protects highest_thread_id_, thread_data_table_ and
959
- // default_isolate_.
960
- static Mutex* process_wide_mutex_;
961
-
962
- static Thread::LocalStorageKey per_isolate_thread_data_key_;
963
- static Thread::LocalStorageKey isolate_key_;
964
- static Thread::LocalStorageKey thread_id_key_;
965
- static Isolate* default_isolate_;
966
- static ThreadDataTable* thread_data_table_;
967
- static ThreadId highest_thread_id_;
968
-
969
- bool PreInit();
970
-
971
- void Deinit();
972
-
973
- static void SetIsolateThreadLocals(Isolate* isolate,
974
- PerIsolateThreadData* data);
975
-
976
- enum State {
977
- UNINITIALIZED, // Some components may not have been allocated.
978
- PREINITIALIZED, // Components have been allocated but not initialized.
979
- INITIALIZED // All components are fully initialized.
980
- };
981
-
982
- State state_;
983
- EntryStackItem* entry_stack_;
984
-
985
- // Allocate and insert PerIsolateThreadData into the ThreadDataTable
986
- // (regardless of whether such data already exists).
987
- PerIsolateThreadData* AllocatePerIsolateThreadData(ThreadId thread_id);
988
-
989
- // Find the PerThread for this particular (isolate, thread) combination.
990
- // If one does not yet exist, allocate a new one.
991
- PerIsolateThreadData* FindOrAllocatePerThreadDataForThisThread();
992
-
993
- // PreInits and returns a default isolate. Needed when a new thread tries
994
- // to create a Locker for the first time (the lock itself is in the isolate).
995
- static Isolate* GetDefaultIsolateForLocking();
996
-
997
- // Initializes the current thread to run this Isolate.
998
- // Not thread-safe. Multiple threads should not Enter/Exit the same isolate
999
- // at the same time, this should be prevented using external locking.
1000
- void Enter();
1001
-
1002
- // Exits the current thread. The previosuly entered Isolate is restored
1003
- // for the thread.
1004
- // Not thread-safe. Multiple threads should not Enter/Exit the same isolate
1005
- // at the same time, this should be prevented using external locking.
1006
- void Exit();
1007
-
1008
- void PreallocatedMemoryThreadStart();
1009
- void PreallocatedMemoryThreadStop();
1010
- void InitializeThreadLocal();
1011
-
1012
- void PrintStackTrace(FILE* out, ThreadLocalTop* thread);
1013
- void MarkCompactPrologue(bool is_compacting,
1014
- ThreadLocalTop* archived_thread_data);
1015
- void MarkCompactEpilogue(bool is_compacting,
1016
- ThreadLocalTop* archived_thread_data);
1017
-
1018
- void FillCache();
1019
-
1020
- int stack_trace_nesting_level_;
1021
- StringStream* incomplete_message_;
1022
- // The preallocated memory thread singleton.
1023
- PreallocatedMemoryThread* preallocated_memory_thread_;
1024
- Address isolate_addresses_[k_isolate_address_count + 1]; // NOLINT
1025
- NoAllocationStringAllocator* preallocated_message_space_;
1026
-
1027
- Bootstrapper* bootstrapper_;
1028
- RuntimeProfiler* runtime_profiler_;
1029
- CompilationCache* compilation_cache_;
1030
- Counters* counters_;
1031
- CodeRange* code_range_;
1032
- Mutex* break_access_;
1033
- Heap heap_;
1034
- Logger* logger_;
1035
- StackGuard stack_guard_;
1036
- StatsTable* stats_table_;
1037
- StubCache* stub_cache_;
1038
- DeoptimizerData* deoptimizer_data_;
1039
- ThreadLocalTop thread_local_top_;
1040
- bool capture_stack_trace_for_uncaught_exceptions_;
1041
- int stack_trace_for_uncaught_exceptions_frame_limit_;
1042
- StackTrace::StackTraceOptions stack_trace_for_uncaught_exceptions_options_;
1043
- TranscendentalCache* transcendental_cache_;
1044
- MemoryAllocator* memory_allocator_;
1045
- KeyedLookupCache* keyed_lookup_cache_;
1046
- ContextSlotCache* context_slot_cache_;
1047
- DescriptorLookupCache* descriptor_lookup_cache_;
1048
- v8::ImplementationUtilities::HandleScopeData handle_scope_data_;
1049
- HandleScopeImplementer* handle_scope_implementer_;
1050
- ScannerConstants* scanner_constants_;
1051
- Zone zone_;
1052
- PreallocatedStorage in_use_list_;
1053
- PreallocatedStorage free_list_;
1054
- bool preallocated_storage_preallocated_;
1055
- PcToCodeCache* pc_to_code_cache_;
1056
- StringInputBuffer* write_input_buffer_;
1057
- GlobalHandles* global_handles_;
1058
- ContextSwitcher* context_switcher_;
1059
- ThreadManager* thread_manager_;
1060
- AstSentinels* ast_sentinels_;
1061
- RuntimeState runtime_state_;
1062
- StringInputBuffer liveedit_compare_substrings_buf1_;
1063
- StringInputBuffer liveedit_compare_substrings_buf2_;
1064
- StaticResource<SafeStringInputBuffer> compiler_safe_string_input_buffer_;
1065
- Builtins builtins_;
1066
- StringTracker* string_tracker_;
1067
- unibrow::Mapping<unibrow::Ecma262UnCanonicalize> jsregexp_uncanonicalize_;
1068
- unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_;
1069
- StringInputBuffer objects_string_compare_buffer_a_;
1070
- StringInputBuffer objects_string_compare_buffer_b_;
1071
- StaticResource<StringInputBuffer> objects_string_input_buffer_;
1072
- unibrow::Mapping<unibrow::Ecma262Canonicalize>
1073
- regexp_macro_assembler_canonicalize_;
1074
- RegExpStack* regexp_stack_;
1075
- unibrow::Mapping<unibrow::Ecma262Canonicalize> interp_canonicalize_mapping_;
1076
- ZoneObjectList frame_element_constant_list_;
1077
- ZoneObjectList result_constant_list_;
1078
-
1079
- #if defined(V8_TARGET_ARCH_ARM) && !defined(__arm__) || \
1080
- defined(V8_TARGET_ARCH_MIPS) && !defined(__mips__)
1081
- bool simulator_initialized_;
1082
- HashMap* simulator_i_cache_;
1083
- Redirection* simulator_redirection_;
1084
- #endif
1085
-
1086
- #ifdef DEBUG
1087
- // A static array of histogram info for each type.
1088
- HistogramInfo heap_histograms_[LAST_TYPE + 1];
1089
- JSObject::SpillInformation js_spill_information_;
1090
- int code_kind_statistics_[Code::NUMBER_OF_KINDS];
1091
- #endif
1092
-
1093
- #ifdef ENABLE_DEBUGGER_SUPPORT
1094
- Debugger* debugger_;
1095
- Debug* debug_;
1096
- #endif
1097
-
1098
- #ifdef ENABLE_LOGGING_AND_PROFILING
1099
- ProducerHeapProfile* producer_heap_profile_;
1100
- #endif
1101
-
1102
- #define GLOBAL_BACKING_STORE(type, name, initialvalue) \
1103
- type name##_;
1104
- ISOLATE_INIT_LIST(GLOBAL_BACKING_STORE)
1105
- #undef GLOBAL_BACKING_STORE
1106
-
1107
- #define GLOBAL_ARRAY_BACKING_STORE(type, name, length) \
1108
- type name##_[length];
1109
- ISOLATE_INIT_ARRAY_LIST(GLOBAL_ARRAY_BACKING_STORE)
1110
- #undef GLOBAL_ARRAY_BACKING_STORE
1111
-
1112
- #ifdef DEBUG
1113
- // This class is huge and has a number of fields controlled by
1114
- // preprocessor defines. Make sure the offsets of these fields agree
1115
- // between compilation units.
1116
- #define ISOLATE_FIELD_OFFSET(type, name, ignored) \
1117
- static const intptr_t name##_debug_offset_;
1118
- ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET)
1119
- ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET)
1120
- #undef ISOLATE_FIELD_OFFSET
1121
- #endif
1122
-
1123
- friend class ExecutionAccess;
1124
- friend class IsolateInitializer;
1125
- friend class v8::Isolate;
1126
- friend class v8::Locker;
1127
-
1128
- DISALLOW_COPY_AND_ASSIGN(Isolate);
1129
- };
1130
-
1131
-
1132
- // If the GCC version is 4.1.x or 4.2.x an additional field is added to the
1133
- // class as a work around for a bug in the generated code found with these
1134
- // versions of GCC. See V8 issue 122 for details.
1135
- class SaveContext BASE_EMBEDDED {
1136
- public:
1137
- explicit SaveContext(Isolate* isolate) : prev_(isolate->save_context()) {
1138
- if (isolate->context() != NULL) {
1139
- context_ = Handle<Context>(isolate->context());
1140
- #if __GNUC_VERSION__ >= 40100 && __GNUC_VERSION__ < 40300
1141
- dummy_ = Handle<Context>(isolate->context());
1142
- #endif
1143
- }
1144
- isolate->set_save_context(this);
1145
-
1146
- // If there is no JS frame under the current C frame, use the value 0.
1147
- JavaScriptFrameIterator it(isolate);
1148
- js_sp_ = it.done() ? 0 : it.frame()->sp();
1149
- }
1150
-
1151
- ~SaveContext() {
1152
- if (context_.is_null()) {
1153
- Isolate* isolate = Isolate::Current();
1154
- isolate->set_context(NULL);
1155
- isolate->set_save_context(prev_);
1156
- } else {
1157
- Isolate* isolate = context_->GetIsolate();
1158
- isolate->set_context(*context_);
1159
- isolate->set_save_context(prev_);
1160
- }
1161
- }
1162
-
1163
- Handle<Context> context() { return context_; }
1164
- SaveContext* prev() { return prev_; }
1165
-
1166
- // Returns true if this save context is below a given JavaScript frame.
1167
- bool below(JavaScriptFrame* frame) {
1168
- return (js_sp_ == 0) || (frame->sp() < js_sp_);
1169
- }
1170
-
1171
- private:
1172
- Handle<Context> context_;
1173
- #if __GNUC_VERSION__ >= 40100 && __GNUC_VERSION__ < 40300
1174
- Handle<Context> dummy_;
1175
- #endif
1176
- SaveContext* prev_;
1177
- Address js_sp_; // The top JS frame's sp when saving context.
1178
- };
1179
-
1180
-
1181
- class AssertNoContextChange BASE_EMBEDDED {
1182
- #ifdef DEBUG
1183
- public:
1184
- AssertNoContextChange() :
1185
- scope_(Isolate::Current()),
1186
- context_(Isolate::Current()->context(), Isolate::Current()) {
1187
- }
1188
-
1189
- ~AssertNoContextChange() {
1190
- ASSERT(Isolate::Current()->context() == *context_);
1191
- }
1192
-
1193
- private:
1194
- HandleScope scope_;
1195
- Handle<Context> context_;
1196
- #else
1197
- public:
1198
- AssertNoContextChange() { }
1199
- #endif
1200
- };
1201
-
1202
-
1203
- class ExecutionAccess BASE_EMBEDDED {
1204
- public:
1205
- explicit ExecutionAccess(Isolate* isolate) : isolate_(isolate) {
1206
- Lock(isolate);
1207
- }
1208
- ~ExecutionAccess() { Unlock(isolate_); }
1209
-
1210
- static void Lock(Isolate* isolate) { isolate->break_access_->Lock(); }
1211
- static void Unlock(Isolate* isolate) { isolate->break_access_->Unlock(); }
1212
-
1213
- static bool TryLock(Isolate* isolate) {
1214
- return isolate->break_access_->TryLock();
1215
- }
1216
-
1217
- private:
1218
- Isolate* isolate_;
1219
- };
1220
-
1221
-
1222
- // Support for checking for stack-overflows in C++ code.
1223
- class StackLimitCheck BASE_EMBEDDED {
1224
- public:
1225
- explicit StackLimitCheck(Isolate* isolate) : isolate_(isolate) { }
1226
-
1227
- bool HasOverflowed() const {
1228
- StackGuard* stack_guard = isolate_->stack_guard();
1229
- // Stack has overflowed in C++ code only if stack pointer exceeds the C++
1230
- // stack guard and the limits are not set to interrupt values.
1231
- // TODO(214): Stack overflows are ignored if a interrupt is pending. This
1232
- // code should probably always use the initial C++ limit.
1233
- return (reinterpret_cast<uintptr_t>(this) < stack_guard->climit()) &&
1234
- stack_guard->IsStackOverflow();
1235
- }
1236
- private:
1237
- Isolate* isolate_;
1238
- };
1239
-
1240
-
1241
- // Support for temporarily postponing interrupts. When the outermost
1242
- // postpone scope is left the interrupts will be re-enabled and any
1243
- // interrupts that occurred while in the scope will be taken into
1244
- // account.
1245
- class PostponeInterruptsScope BASE_EMBEDDED {
1246
- public:
1247
- explicit PostponeInterruptsScope(Isolate* isolate)
1248
- : stack_guard_(isolate->stack_guard()) {
1249
- stack_guard_->thread_local_.postpone_interrupts_nesting_++;
1250
- stack_guard_->DisableInterrupts();
1251
- }
1252
-
1253
- ~PostponeInterruptsScope() {
1254
- if (--stack_guard_->thread_local_.postpone_interrupts_nesting_ == 0) {
1255
- stack_guard_->EnableInterrupts();
1256
- }
1257
- }
1258
- private:
1259
- StackGuard* stack_guard_;
1260
- };
1261
-
1262
-
1263
- // Temporary macros for accessing current isolate and its subobjects.
1264
- // They provide better readability, especially when used a lot in the code.
1265
- #define HEAP (v8::internal::Isolate::Current()->heap())
1266
- #define FACTORY (v8::internal::Isolate::Current()->factory())
1267
- #define ISOLATE (v8::internal::Isolate::Current())
1268
- #define ZONE (v8::internal::Isolate::Current()->zone())
1269
- #define LOGGER (v8::internal::Isolate::Current()->logger())
1270
-
1271
-
1272
- // Tells whether the global context is marked with out of memory.
1273
- inline bool Context::has_out_of_memory() {
1274
- return global_context()->out_of_memory()->IsTrue();
1275
- }
1276
-
1277
-
1278
- // Mark the global context with out of memory.
1279
- inline void Context::mark_out_of_memory() {
1280
- global_context()->set_out_of_memory(HEAP->true_value());
1281
- }
1282
-
1283
-
1284
- // Temporary macro to be used to flag definitions that are indeed static
1285
- // and not per-isolate. (It would be great to be able to grep for [static]!)
1286
- #define RLYSTC static
1287
-
1288
-
1289
- // Temporary macro to be used to flag classes that should be static.
1290
- #define STATIC_CLASS class
1291
-
1292
-
1293
- // Temporary macro to be used to flag classes that are completely converted
1294
- // to be isolate-friendly. Their mix of static/nonstatic methods/fields is
1295
- // correct.
1296
- #define ISOLATED_CLASS class
1297
-
1298
- } } // namespace v8::internal
1299
-
1300
- // TODO(isolates): Get rid of these -inl.h includes and place them only where
1301
- // they're needed.
1302
- #include "allocation-inl.h"
1303
- #include "zone-inl.h"
1304
- #include "frames-inl.h"
1305
-
1306
- #endif // V8_ISOLATE_H_