therubyracer-heroku 0.8.1.pre2 → 0.8.1.pre3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1239) hide show
  1. data/ext/v8/upstream/build/v8/libv8.a +0 -0
  2. data/lib/v8/version.rb +1 -1
  3. metadata +3 -1238
  4. data/ext/v8/upstream/build/scons/CHANGES.txt +0 -5183
  5. data/ext/v8/upstream/build/scons/LICENSE.txt +0 -20
  6. data/ext/v8/upstream/build/scons/MANIFEST +0 -202
  7. data/ext/v8/upstream/build/scons/PKG-INFO +0 -13
  8. data/ext/v8/upstream/build/scons/README.txt +0 -273
  9. data/ext/v8/upstream/build/scons/RELEASE.txt +0 -1040
  10. data/ext/v8/upstream/build/scons/build/lib/SCons/Action.py +0 -1256
  11. data/ext/v8/upstream/build/scons/build/lib/SCons/Builder.py +0 -868
  12. data/ext/v8/upstream/build/scons/build/lib/SCons/CacheDir.py +0 -217
  13. data/ext/v8/upstream/build/scons/build/lib/SCons/Conftest.py +0 -794
  14. data/ext/v8/upstream/build/scons/build/lib/SCons/Debug.py +0 -237
  15. data/ext/v8/upstream/build/scons/build/lib/SCons/Defaults.py +0 -485
  16. data/ext/v8/upstream/build/scons/build/lib/SCons/Environment.py +0 -2327
  17. data/ext/v8/upstream/build/scons/build/lib/SCons/Errors.py +0 -207
  18. data/ext/v8/upstream/build/scons/build/lib/SCons/Executor.py +0 -636
  19. data/ext/v8/upstream/build/scons/build/lib/SCons/Job.py +0 -435
  20. data/ext/v8/upstream/build/scons/build/lib/SCons/Memoize.py +0 -292
  21. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/Alias.py +0 -153
  22. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/FS.py +0 -3220
  23. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/Python.py +0 -128
  24. data/ext/v8/upstream/build/scons/build/lib/SCons/Node/__init__.py +0 -1341
  25. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/BoolOption.py +0 -50
  26. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/EnumOption.py +0 -50
  27. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/ListOption.py +0 -50
  28. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/PackageOption.py +0 -50
  29. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/PathOption.py +0 -76
  30. data/ext/v8/upstream/build/scons/build/lib/SCons/Options/__init__.py +0 -74
  31. data/ext/v8/upstream/build/scons/build/lib/SCons/PathList.py +0 -232
  32. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/__init__.py +0 -236
  33. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/aix.py +0 -70
  34. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/cygwin.py +0 -55
  35. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/darwin.py +0 -46
  36. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/hpux.py +0 -46
  37. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/irix.py +0 -44
  38. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/os2.py +0 -58
  39. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/posix.py +0 -264
  40. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/sunos.py +0 -50
  41. data/ext/v8/upstream/build/scons/build/lib/SCons/Platform/win32.py +0 -386
  42. data/ext/v8/upstream/build/scons/build/lib/SCons/SConf.py +0 -1038
  43. data/ext/v8/upstream/build/scons/build/lib/SCons/SConsign.py +0 -381
  44. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/C.py +0 -132
  45. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/D.py +0 -74
  46. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/Dir.py +0 -111
  47. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/Fortran.py +0 -320
  48. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/IDL.py +0 -48
  49. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/LaTeX.py +0 -378
  50. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/Prog.py +0 -103
  51. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/RC.py +0 -55
  52. data/ext/v8/upstream/build/scons/build/lib/SCons/Scanner/__init__.py +0 -415
  53. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/Interactive.py +0 -386
  54. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/Main.py +0 -1360
  55. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/SConsOptions.py +0 -944
  56. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/SConscript.py +0 -642
  57. data/ext/v8/upstream/build/scons/build/lib/SCons/Script/__init__.py +0 -414
  58. data/ext/v8/upstream/build/scons/build/lib/SCons/Sig.py +0 -63
  59. data/ext/v8/upstream/build/scons/build/lib/SCons/Subst.py +0 -911
  60. data/ext/v8/upstream/build/scons/build/lib/SCons/Taskmaster.py +0 -1030
  61. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/386asm.py +0 -61
  62. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/BitKeeper.py +0 -65
  63. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/CVS.py +0 -73
  64. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/FortranCommon.py +0 -247
  65. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/JavaCommon.py +0 -324
  66. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/__init__.py +0 -56
  67. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/arch.py +0 -61
  68. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/common.py +0 -210
  69. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/netframework.py +0 -84
  70. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/sdk.py +0 -321
  71. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/vc.py +0 -367
  72. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/MSCommon/vs.py +0 -497
  73. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/Perforce.py +0 -104
  74. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/PharLapCommon.py +0 -138
  75. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/RCS.py +0 -64
  76. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/SCCS.py +0 -64
  77. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/Subversion.py +0 -71
  78. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/__init__.py +0 -675
  79. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixc++.py +0 -82
  80. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixcc.py +0 -74
  81. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixf77.py +0 -80
  82. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/aixlink.py +0 -76
  83. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/applelink.py +0 -71
  84. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ar.py +0 -63
  85. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/as.py +0 -78
  86. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/bcc32.py +0 -82
  87. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/c++.py +0 -99
  88. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/cc.py +0 -114
  89. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/cvf.py +0 -58
  90. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/default.py +0 -50
  91. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dmd.py +0 -224
  92. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dvi.py +0 -64
  93. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dvipdf.py +0 -125
  94. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/dvips.py +0 -94
  95. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/f77.py +0 -62
  96. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/f90.py +0 -62
  97. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/f95.py +0 -63
  98. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/filesystem.py +0 -98
  99. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/fortran.py +0 -63
  100. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/g++.py +0 -90
  101. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/g77.py +0 -73
  102. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gas.py +0 -53
  103. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gcc.py +0 -80
  104. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gfortran.py +0 -64
  105. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gnulink.py +0 -63
  106. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/gs.py +0 -81
  107. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/hpc++.py +0 -85
  108. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/hpcc.py +0 -53
  109. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/hplink.py +0 -77
  110. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/icc.py +0 -59
  111. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/icl.py +0 -52
  112. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ifl.py +0 -72
  113. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ifort.py +0 -90
  114. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ilink.py +0 -59
  115. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ilink32.py +0 -60
  116. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/install.py +0 -229
  117. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/intelc.py +0 -490
  118. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/ipkg.py +0 -71
  119. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/jar.py +0 -110
  120. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/javac.py +0 -234
  121. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/javah.py +0 -138
  122. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/latex.py +0 -79
  123. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/lex.py +0 -99
  124. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/link.py +0 -121
  125. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/linkloc.py +0 -112
  126. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/m4.py +0 -63
  127. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/masm.py +0 -77
  128. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/midl.py +0 -90
  129. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mingw.py +0 -159
  130. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mslib.py +0 -64
  131. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mslink.py +0 -266
  132. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mssdk.py +0 -50
  133. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/msvc.py +0 -269
  134. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/msvs.py +0 -1439
  135. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mwcc.py +0 -208
  136. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/mwld.py +0 -107
  137. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/nasm.py +0 -72
  138. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/__init__.py +0 -314
  139. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/ipk.py +0 -185
  140. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/msi.py +0 -526
  141. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/rpm.py +0 -367
  142. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/src_tarbz2.py +0 -43
  143. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/src_targz.py +0 -43
  144. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/src_zip.py +0 -43
  145. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/tarbz2.py +0 -44
  146. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/targz.py +0 -44
  147. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/packaging/zip.py +0 -44
  148. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/pdf.py +0 -78
  149. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/pdflatex.py +0 -83
  150. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/pdftex.py +0 -108
  151. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/qt.py +0 -336
  152. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/rmic.py +0 -121
  153. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/rpcgen.py +0 -70
  154. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/rpm.py +0 -132
  155. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgiar.py +0 -68
  156. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgic++.py +0 -58
  157. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgicc.py +0 -53
  158. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sgilink.py +0 -63
  159. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunar.py +0 -67
  160. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunc++.py +0 -142
  161. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/suncc.py +0 -58
  162. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunf77.py +0 -63
  163. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunf90.py +0 -64
  164. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunf95.py +0 -64
  165. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/sunlink.py +0 -77
  166. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/swig.py +0 -186
  167. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/tar.py +0 -73
  168. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/tex.py +0 -805
  169. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/textfile.py +0 -175
  170. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/tlib.py +0 -53
  171. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/wix.py +0 -100
  172. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/yacc.py +0 -131
  173. data/ext/v8/upstream/build/scons/build/lib/SCons/Tool/zip.py +0 -100
  174. data/ext/v8/upstream/build/scons/build/lib/SCons/Util.py +0 -1645
  175. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/BoolVariable.py +0 -91
  176. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/EnumVariable.py +0 -107
  177. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/ListVariable.py +0 -139
  178. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/PackageVariable.py +0 -109
  179. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/PathVariable.py +0 -147
  180. data/ext/v8/upstream/build/scons/build/lib/SCons/Variables/__init__.py +0 -317
  181. data/ext/v8/upstream/build/scons/build/lib/SCons/Warnings.py +0 -228
  182. data/ext/v8/upstream/build/scons/build/lib/SCons/__init__.py +0 -49
  183. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/__init__.py +0 -302
  184. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_UserString.py +0 -98
  185. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_hashlib.py +0 -91
  186. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_itertools.py +0 -124
  187. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_optparse.py +0 -1725
  188. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_sets.py +0 -583
  189. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_sets15.py +0 -176
  190. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_shlex.py +0 -325
  191. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_subprocess.py +0 -1296
  192. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/_scons_textwrap.py +0 -382
  193. data/ext/v8/upstream/build/scons/build/lib/SCons/compat/builtins.py +0 -187
  194. data/ext/v8/upstream/build/scons/build/lib/SCons/cpp.py +0 -598
  195. data/ext/v8/upstream/build/scons/build/lib/SCons/dblite.py +0 -248
  196. data/ext/v8/upstream/build/scons/build/lib/SCons/exitfuncs.py +0 -77
  197. data/ext/v8/upstream/build/scons/build/scripts/scons +0 -184
  198. data/ext/v8/upstream/build/scons/build/scripts/scons-time +0 -1529
  199. data/ext/v8/upstream/build/scons/build/scripts/scons.bat +0 -31
  200. data/ext/v8/upstream/build/scons/build/scripts/sconsign +0 -508
  201. data/ext/v8/upstream/build/scons/engine/SCons/Action.py +0 -1256
  202. data/ext/v8/upstream/build/scons/engine/SCons/Builder.py +0 -868
  203. data/ext/v8/upstream/build/scons/engine/SCons/CacheDir.py +0 -217
  204. data/ext/v8/upstream/build/scons/engine/SCons/Conftest.py +0 -794
  205. data/ext/v8/upstream/build/scons/engine/SCons/Debug.py +0 -237
  206. data/ext/v8/upstream/build/scons/engine/SCons/Defaults.py +0 -485
  207. data/ext/v8/upstream/build/scons/engine/SCons/Environment.py +0 -2327
  208. data/ext/v8/upstream/build/scons/engine/SCons/Errors.py +0 -207
  209. data/ext/v8/upstream/build/scons/engine/SCons/Executor.py +0 -636
  210. data/ext/v8/upstream/build/scons/engine/SCons/Job.py +0 -435
  211. data/ext/v8/upstream/build/scons/engine/SCons/Memoize.py +0 -292
  212. data/ext/v8/upstream/build/scons/engine/SCons/Node/Alias.py +0 -153
  213. data/ext/v8/upstream/build/scons/engine/SCons/Node/FS.py +0 -3220
  214. data/ext/v8/upstream/build/scons/engine/SCons/Node/Python.py +0 -128
  215. data/ext/v8/upstream/build/scons/engine/SCons/Node/__init__.py +0 -1341
  216. data/ext/v8/upstream/build/scons/engine/SCons/Options/BoolOption.py +0 -50
  217. data/ext/v8/upstream/build/scons/engine/SCons/Options/EnumOption.py +0 -50
  218. data/ext/v8/upstream/build/scons/engine/SCons/Options/ListOption.py +0 -50
  219. data/ext/v8/upstream/build/scons/engine/SCons/Options/PackageOption.py +0 -50
  220. data/ext/v8/upstream/build/scons/engine/SCons/Options/PathOption.py +0 -76
  221. data/ext/v8/upstream/build/scons/engine/SCons/Options/__init__.py +0 -74
  222. data/ext/v8/upstream/build/scons/engine/SCons/PathList.py +0 -232
  223. data/ext/v8/upstream/build/scons/engine/SCons/Platform/__init__.py +0 -236
  224. data/ext/v8/upstream/build/scons/engine/SCons/Platform/aix.py +0 -70
  225. data/ext/v8/upstream/build/scons/engine/SCons/Platform/cygwin.py +0 -55
  226. data/ext/v8/upstream/build/scons/engine/SCons/Platform/darwin.py +0 -46
  227. data/ext/v8/upstream/build/scons/engine/SCons/Platform/hpux.py +0 -46
  228. data/ext/v8/upstream/build/scons/engine/SCons/Platform/irix.py +0 -44
  229. data/ext/v8/upstream/build/scons/engine/SCons/Platform/os2.py +0 -58
  230. data/ext/v8/upstream/build/scons/engine/SCons/Platform/posix.py +0 -264
  231. data/ext/v8/upstream/build/scons/engine/SCons/Platform/sunos.py +0 -50
  232. data/ext/v8/upstream/build/scons/engine/SCons/Platform/win32.py +0 -386
  233. data/ext/v8/upstream/build/scons/engine/SCons/SConf.py +0 -1038
  234. data/ext/v8/upstream/build/scons/engine/SCons/SConsign.py +0 -381
  235. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/C.py +0 -132
  236. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/D.py +0 -74
  237. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/Dir.py +0 -111
  238. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/Fortran.py +0 -320
  239. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/IDL.py +0 -48
  240. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/LaTeX.py +0 -378
  241. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/Prog.py +0 -103
  242. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/RC.py +0 -55
  243. data/ext/v8/upstream/build/scons/engine/SCons/Scanner/__init__.py +0 -415
  244. data/ext/v8/upstream/build/scons/engine/SCons/Script/Interactive.py +0 -386
  245. data/ext/v8/upstream/build/scons/engine/SCons/Script/Main.py +0 -1360
  246. data/ext/v8/upstream/build/scons/engine/SCons/Script/SConsOptions.py +0 -944
  247. data/ext/v8/upstream/build/scons/engine/SCons/Script/SConscript.py +0 -642
  248. data/ext/v8/upstream/build/scons/engine/SCons/Script/__init__.py +0 -414
  249. data/ext/v8/upstream/build/scons/engine/SCons/Sig.py +0 -63
  250. data/ext/v8/upstream/build/scons/engine/SCons/Subst.py +0 -911
  251. data/ext/v8/upstream/build/scons/engine/SCons/Taskmaster.py +0 -1030
  252. data/ext/v8/upstream/build/scons/engine/SCons/Tool/386asm.py +0 -61
  253. data/ext/v8/upstream/build/scons/engine/SCons/Tool/BitKeeper.py +0 -65
  254. data/ext/v8/upstream/build/scons/engine/SCons/Tool/CVS.py +0 -73
  255. data/ext/v8/upstream/build/scons/engine/SCons/Tool/FortranCommon.py +0 -247
  256. data/ext/v8/upstream/build/scons/engine/SCons/Tool/JavaCommon.py +0 -324
  257. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/__init__.py +0 -56
  258. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/arch.py +0 -61
  259. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/common.py +0 -210
  260. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/netframework.py +0 -84
  261. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/sdk.py +0 -321
  262. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/vc.py +0 -367
  263. data/ext/v8/upstream/build/scons/engine/SCons/Tool/MSCommon/vs.py +0 -497
  264. data/ext/v8/upstream/build/scons/engine/SCons/Tool/Perforce.py +0 -104
  265. data/ext/v8/upstream/build/scons/engine/SCons/Tool/PharLapCommon.py +0 -138
  266. data/ext/v8/upstream/build/scons/engine/SCons/Tool/RCS.py +0 -64
  267. data/ext/v8/upstream/build/scons/engine/SCons/Tool/SCCS.py +0 -64
  268. data/ext/v8/upstream/build/scons/engine/SCons/Tool/Subversion.py +0 -71
  269. data/ext/v8/upstream/build/scons/engine/SCons/Tool/__init__.py +0 -675
  270. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixc++.py +0 -82
  271. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixcc.py +0 -74
  272. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixf77.py +0 -80
  273. data/ext/v8/upstream/build/scons/engine/SCons/Tool/aixlink.py +0 -76
  274. data/ext/v8/upstream/build/scons/engine/SCons/Tool/applelink.py +0 -71
  275. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ar.py +0 -63
  276. data/ext/v8/upstream/build/scons/engine/SCons/Tool/as.py +0 -78
  277. data/ext/v8/upstream/build/scons/engine/SCons/Tool/bcc32.py +0 -82
  278. data/ext/v8/upstream/build/scons/engine/SCons/Tool/c++.py +0 -99
  279. data/ext/v8/upstream/build/scons/engine/SCons/Tool/cc.py +0 -114
  280. data/ext/v8/upstream/build/scons/engine/SCons/Tool/cvf.py +0 -58
  281. data/ext/v8/upstream/build/scons/engine/SCons/Tool/default.py +0 -50
  282. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dmd.py +0 -224
  283. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dvi.py +0 -64
  284. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dvipdf.py +0 -125
  285. data/ext/v8/upstream/build/scons/engine/SCons/Tool/dvips.py +0 -94
  286. data/ext/v8/upstream/build/scons/engine/SCons/Tool/f77.py +0 -62
  287. data/ext/v8/upstream/build/scons/engine/SCons/Tool/f90.py +0 -62
  288. data/ext/v8/upstream/build/scons/engine/SCons/Tool/f95.py +0 -63
  289. data/ext/v8/upstream/build/scons/engine/SCons/Tool/filesystem.py +0 -98
  290. data/ext/v8/upstream/build/scons/engine/SCons/Tool/fortran.py +0 -63
  291. data/ext/v8/upstream/build/scons/engine/SCons/Tool/g++.py +0 -90
  292. data/ext/v8/upstream/build/scons/engine/SCons/Tool/g77.py +0 -73
  293. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gas.py +0 -53
  294. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gcc.py +0 -80
  295. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gfortran.py +0 -64
  296. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gnulink.py +0 -63
  297. data/ext/v8/upstream/build/scons/engine/SCons/Tool/gs.py +0 -81
  298. data/ext/v8/upstream/build/scons/engine/SCons/Tool/hpc++.py +0 -85
  299. data/ext/v8/upstream/build/scons/engine/SCons/Tool/hpcc.py +0 -53
  300. data/ext/v8/upstream/build/scons/engine/SCons/Tool/hplink.py +0 -77
  301. data/ext/v8/upstream/build/scons/engine/SCons/Tool/icc.py +0 -59
  302. data/ext/v8/upstream/build/scons/engine/SCons/Tool/icl.py +0 -52
  303. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ifl.py +0 -72
  304. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ifort.py +0 -90
  305. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ilink.py +0 -59
  306. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ilink32.py +0 -60
  307. data/ext/v8/upstream/build/scons/engine/SCons/Tool/install.py +0 -229
  308. data/ext/v8/upstream/build/scons/engine/SCons/Tool/intelc.py +0 -490
  309. data/ext/v8/upstream/build/scons/engine/SCons/Tool/ipkg.py +0 -71
  310. data/ext/v8/upstream/build/scons/engine/SCons/Tool/jar.py +0 -110
  311. data/ext/v8/upstream/build/scons/engine/SCons/Tool/javac.py +0 -234
  312. data/ext/v8/upstream/build/scons/engine/SCons/Tool/javah.py +0 -138
  313. data/ext/v8/upstream/build/scons/engine/SCons/Tool/latex.py +0 -79
  314. data/ext/v8/upstream/build/scons/engine/SCons/Tool/lex.py +0 -99
  315. data/ext/v8/upstream/build/scons/engine/SCons/Tool/link.py +0 -121
  316. data/ext/v8/upstream/build/scons/engine/SCons/Tool/linkloc.py +0 -112
  317. data/ext/v8/upstream/build/scons/engine/SCons/Tool/m4.py +0 -63
  318. data/ext/v8/upstream/build/scons/engine/SCons/Tool/masm.py +0 -77
  319. data/ext/v8/upstream/build/scons/engine/SCons/Tool/midl.py +0 -90
  320. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mingw.py +0 -159
  321. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mslib.py +0 -64
  322. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mslink.py +0 -266
  323. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mssdk.py +0 -50
  324. data/ext/v8/upstream/build/scons/engine/SCons/Tool/msvc.py +0 -269
  325. data/ext/v8/upstream/build/scons/engine/SCons/Tool/msvs.py +0 -1439
  326. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mwcc.py +0 -208
  327. data/ext/v8/upstream/build/scons/engine/SCons/Tool/mwld.py +0 -107
  328. data/ext/v8/upstream/build/scons/engine/SCons/Tool/nasm.py +0 -72
  329. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/__init__.py +0 -314
  330. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/ipk.py +0 -185
  331. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/msi.py +0 -526
  332. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/rpm.py +0 -367
  333. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/src_tarbz2.py +0 -43
  334. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/src_targz.py +0 -43
  335. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/src_zip.py +0 -43
  336. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/tarbz2.py +0 -44
  337. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/targz.py +0 -44
  338. data/ext/v8/upstream/build/scons/engine/SCons/Tool/packaging/zip.py +0 -44
  339. data/ext/v8/upstream/build/scons/engine/SCons/Tool/pdf.py +0 -78
  340. data/ext/v8/upstream/build/scons/engine/SCons/Tool/pdflatex.py +0 -83
  341. data/ext/v8/upstream/build/scons/engine/SCons/Tool/pdftex.py +0 -108
  342. data/ext/v8/upstream/build/scons/engine/SCons/Tool/qt.py +0 -336
  343. data/ext/v8/upstream/build/scons/engine/SCons/Tool/rmic.py +0 -121
  344. data/ext/v8/upstream/build/scons/engine/SCons/Tool/rpcgen.py +0 -70
  345. data/ext/v8/upstream/build/scons/engine/SCons/Tool/rpm.py +0 -132
  346. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgiar.py +0 -68
  347. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgic++.py +0 -58
  348. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgicc.py +0 -53
  349. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sgilink.py +0 -63
  350. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunar.py +0 -67
  351. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunc++.py +0 -142
  352. data/ext/v8/upstream/build/scons/engine/SCons/Tool/suncc.py +0 -58
  353. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunf77.py +0 -63
  354. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunf90.py +0 -64
  355. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunf95.py +0 -64
  356. data/ext/v8/upstream/build/scons/engine/SCons/Tool/sunlink.py +0 -77
  357. data/ext/v8/upstream/build/scons/engine/SCons/Tool/swig.py +0 -186
  358. data/ext/v8/upstream/build/scons/engine/SCons/Tool/tar.py +0 -73
  359. data/ext/v8/upstream/build/scons/engine/SCons/Tool/tex.py +0 -805
  360. data/ext/v8/upstream/build/scons/engine/SCons/Tool/textfile.py +0 -175
  361. data/ext/v8/upstream/build/scons/engine/SCons/Tool/tlib.py +0 -53
  362. data/ext/v8/upstream/build/scons/engine/SCons/Tool/wix.py +0 -100
  363. data/ext/v8/upstream/build/scons/engine/SCons/Tool/yacc.py +0 -131
  364. data/ext/v8/upstream/build/scons/engine/SCons/Tool/zip.py +0 -100
  365. data/ext/v8/upstream/build/scons/engine/SCons/Util.py +0 -1645
  366. data/ext/v8/upstream/build/scons/engine/SCons/Variables/BoolVariable.py +0 -91
  367. data/ext/v8/upstream/build/scons/engine/SCons/Variables/EnumVariable.py +0 -107
  368. data/ext/v8/upstream/build/scons/engine/SCons/Variables/ListVariable.py +0 -139
  369. data/ext/v8/upstream/build/scons/engine/SCons/Variables/PackageVariable.py +0 -109
  370. data/ext/v8/upstream/build/scons/engine/SCons/Variables/PathVariable.py +0 -147
  371. data/ext/v8/upstream/build/scons/engine/SCons/Variables/__init__.py +0 -317
  372. data/ext/v8/upstream/build/scons/engine/SCons/Warnings.py +0 -228
  373. data/ext/v8/upstream/build/scons/engine/SCons/__init__.py +0 -49
  374. data/ext/v8/upstream/build/scons/engine/SCons/compat/__init__.py +0 -302
  375. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_UserString.py +0 -98
  376. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_hashlib.py +0 -91
  377. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_itertools.py +0 -124
  378. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_optparse.py +0 -1725
  379. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_sets.py +0 -583
  380. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_sets15.py +0 -176
  381. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_shlex.py +0 -325
  382. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_subprocess.py +0 -1296
  383. data/ext/v8/upstream/build/scons/engine/SCons/compat/_scons_textwrap.py +0 -382
  384. data/ext/v8/upstream/build/scons/engine/SCons/compat/builtins.py +0 -187
  385. data/ext/v8/upstream/build/scons/engine/SCons/cpp.py +0 -598
  386. data/ext/v8/upstream/build/scons/engine/SCons/dblite.py +0 -248
  387. data/ext/v8/upstream/build/scons/engine/SCons/exitfuncs.py +0 -77
  388. data/ext/v8/upstream/build/scons/install/bin/scons +0 -184
  389. data/ext/v8/upstream/build/scons/install/bin/scons-1.2.0.d20100117 +0 -184
  390. data/ext/v8/upstream/build/scons/install/bin/scons-time +0 -1529
  391. data/ext/v8/upstream/build/scons/install/bin/scons-time-1.2.0.d20100117 +0 -1529
  392. data/ext/v8/upstream/build/scons/install/bin/sconsign +0 -508
  393. data/ext/v8/upstream/build/scons/install/bin/sconsign-1.2.0.d20100117 +0 -508
  394. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Action.py +0 -1256
  395. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Action.pyc +0 -0
  396. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Builder.py +0 -868
  397. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Builder.pyc +0 -0
  398. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/CacheDir.py +0 -217
  399. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/CacheDir.pyc +0 -0
  400. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Conftest.py +0 -794
  401. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Conftest.pyc +0 -0
  402. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Debug.py +0 -237
  403. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Debug.pyc +0 -0
  404. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Defaults.py +0 -485
  405. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Defaults.pyc +0 -0
  406. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Environment.py +0 -2327
  407. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Environment.pyc +0 -0
  408. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Errors.py +0 -207
  409. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Errors.pyc +0 -0
  410. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Executor.py +0 -636
  411. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Executor.pyc +0 -0
  412. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Job.py +0 -435
  413. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Job.pyc +0 -0
  414. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Memoize.py +0 -292
  415. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Memoize.pyc +0 -0
  416. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Alias.py +0 -153
  417. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Alias.pyc +0 -0
  418. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/FS.py +0 -3220
  419. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/FS.pyc +0 -0
  420. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Python.py +0 -128
  421. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/Python.pyc +0 -0
  422. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/__init__.py +0 -1341
  423. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Node/__init__.pyc +0 -0
  424. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/BoolOption.py +0 -50
  425. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/BoolOption.pyc +0 -0
  426. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/EnumOption.py +0 -50
  427. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/EnumOption.pyc +0 -0
  428. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/ListOption.py +0 -50
  429. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/ListOption.pyc +0 -0
  430. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PackageOption.py +0 -50
  431. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PackageOption.pyc +0 -0
  432. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PathOption.py +0 -76
  433. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/PathOption.pyc +0 -0
  434. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/__init__.py +0 -74
  435. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Options/__init__.pyc +0 -0
  436. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/PathList.py +0 -232
  437. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/PathList.pyc +0 -0
  438. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/__init__.py +0 -236
  439. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/__init__.pyc +0 -0
  440. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/aix.py +0 -70
  441. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/aix.pyc +0 -0
  442. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/cygwin.py +0 -55
  443. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/cygwin.pyc +0 -0
  444. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/darwin.py +0 -46
  445. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/darwin.pyc +0 -0
  446. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/hpux.py +0 -46
  447. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/hpux.pyc +0 -0
  448. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/irix.py +0 -44
  449. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/irix.pyc +0 -0
  450. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/os2.py +0 -58
  451. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/os2.pyc +0 -0
  452. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/posix.py +0 -264
  453. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/posix.pyc +0 -0
  454. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/sunos.py +0 -50
  455. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/sunos.pyc +0 -0
  456. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/win32.py +0 -386
  457. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Platform/win32.pyc +0 -0
  458. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConf.py +0 -1038
  459. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConf.pyc +0 -0
  460. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConsign.py +0 -381
  461. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/SConsign.pyc +0 -0
  462. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/C.py +0 -132
  463. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/C.pyc +0 -0
  464. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/D.py +0 -74
  465. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/D.pyc +0 -0
  466. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Dir.py +0 -111
  467. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Dir.pyc +0 -0
  468. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Fortran.py +0 -320
  469. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Fortran.pyc +0 -0
  470. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/IDL.py +0 -48
  471. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/IDL.pyc +0 -0
  472. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/LaTeX.py +0 -378
  473. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/LaTeX.pyc +0 -0
  474. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Prog.py +0 -103
  475. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/Prog.pyc +0 -0
  476. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/RC.py +0 -55
  477. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/RC.pyc +0 -0
  478. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/__init__.py +0 -415
  479. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Scanner/__init__.pyc +0 -0
  480. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Interactive.py +0 -386
  481. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Interactive.pyc +0 -0
  482. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Main.py +0 -1360
  483. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/Main.pyc +0 -0
  484. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConsOptions.py +0 -944
  485. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConsOptions.pyc +0 -0
  486. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConscript.py +0 -642
  487. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/SConscript.pyc +0 -0
  488. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/__init__.py +0 -414
  489. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Script/__init__.pyc +0 -0
  490. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Sig.py +0 -63
  491. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Sig.pyc +0 -0
  492. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Subst.py +0 -911
  493. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Subst.pyc +0 -0
  494. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Taskmaster.py +0 -1030
  495. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Taskmaster.pyc +0 -0
  496. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/386asm.py +0 -61
  497. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/386asm.pyc +0 -0
  498. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/BitKeeper.py +0 -65
  499. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/BitKeeper.pyc +0 -0
  500. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/CVS.py +0 -73
  501. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/CVS.pyc +0 -0
  502. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/FortranCommon.py +0 -247
  503. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/FortranCommon.pyc +0 -0
  504. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/JavaCommon.py +0 -324
  505. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/JavaCommon.pyc +0 -0
  506. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/__init__.py +0 -56
  507. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/__init__.pyc +0 -0
  508. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/arch.py +0 -61
  509. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/arch.pyc +0 -0
  510. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/common.py +0 -210
  511. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/common.pyc +0 -0
  512. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/netframework.py +0 -84
  513. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/netframework.pyc +0 -0
  514. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/sdk.py +0 -321
  515. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/sdk.pyc +0 -0
  516. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vc.py +0 -367
  517. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vc.pyc +0 -0
  518. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vs.py +0 -497
  519. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/MSCommon/vs.pyc +0 -0
  520. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Perforce.py +0 -104
  521. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Perforce.pyc +0 -0
  522. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/PharLapCommon.py +0 -138
  523. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/PharLapCommon.pyc +0 -0
  524. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/RCS.py +0 -64
  525. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/RCS.pyc +0 -0
  526. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/SCCS.py +0 -64
  527. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/SCCS.pyc +0 -0
  528. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Subversion.py +0 -71
  529. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/Subversion.pyc +0 -0
  530. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/__init__.py +0 -675
  531. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/__init__.pyc +0 -0
  532. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixc++.py +0 -82
  533. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixc++.pyc +0 -0
  534. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixcc.py +0 -74
  535. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixcc.pyc +0 -0
  536. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixf77.py +0 -80
  537. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixf77.pyc +0 -0
  538. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixlink.py +0 -76
  539. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/aixlink.pyc +0 -0
  540. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/applelink.py +0 -71
  541. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/applelink.pyc +0 -0
  542. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ar.py +0 -63
  543. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ar.pyc +0 -0
  544. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/as.py +0 -78
  545. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/as.pyc +0 -0
  546. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/bcc32.py +0 -82
  547. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/bcc32.pyc +0 -0
  548. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/c++.py +0 -99
  549. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/c++.pyc +0 -0
  550. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cc.py +0 -114
  551. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cc.pyc +0 -0
  552. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cvf.py +0 -58
  553. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/cvf.pyc +0 -0
  554. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/default.py +0 -50
  555. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/default.pyc +0 -0
  556. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dmd.py +0 -224
  557. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dmd.pyc +0 -0
  558. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvi.py +0 -64
  559. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvi.pyc +0 -0
  560. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvipdf.py +0 -125
  561. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvipdf.pyc +0 -0
  562. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvips.py +0 -94
  563. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/dvips.pyc +0 -0
  564. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f77.py +0 -62
  565. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f77.pyc +0 -0
  566. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f90.py +0 -62
  567. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f90.pyc +0 -0
  568. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f95.py +0 -63
  569. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/f95.pyc +0 -0
  570. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/filesystem.py +0 -98
  571. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/filesystem.pyc +0 -0
  572. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/fortran.py +0 -63
  573. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/fortran.pyc +0 -0
  574. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g++.py +0 -90
  575. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g++.pyc +0 -0
  576. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g77.py +0 -73
  577. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/g77.pyc +0 -0
  578. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gas.py +0 -53
  579. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gas.pyc +0 -0
  580. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gcc.py +0 -80
  581. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gcc.pyc +0 -0
  582. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gfortran.py +0 -64
  583. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gfortran.pyc +0 -0
  584. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gnulink.py +0 -63
  585. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gnulink.pyc +0 -0
  586. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gs.py +0 -81
  587. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/gs.pyc +0 -0
  588. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpc++.py +0 -85
  589. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpc++.pyc +0 -0
  590. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpcc.py +0 -53
  591. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hpcc.pyc +0 -0
  592. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hplink.py +0 -77
  593. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/hplink.pyc +0 -0
  594. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icc.py +0 -59
  595. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icc.pyc +0 -0
  596. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icl.py +0 -52
  597. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/icl.pyc +0 -0
  598. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifl.py +0 -72
  599. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifl.pyc +0 -0
  600. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifort.py +0 -90
  601. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ifort.pyc +0 -0
  602. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink.py +0 -59
  603. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink.pyc +0 -0
  604. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink32.py +0 -60
  605. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ilink32.pyc +0 -0
  606. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/install.py +0 -229
  607. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/install.pyc +0 -0
  608. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/intelc.py +0 -490
  609. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/intelc.pyc +0 -0
  610. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ipkg.py +0 -71
  611. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/ipkg.pyc +0 -0
  612. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/jar.py +0 -110
  613. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/jar.pyc +0 -0
  614. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javac.py +0 -234
  615. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javac.pyc +0 -0
  616. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javah.py +0 -138
  617. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/javah.pyc +0 -0
  618. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/latex.py +0 -79
  619. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/latex.pyc +0 -0
  620. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/lex.py +0 -99
  621. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/lex.pyc +0 -0
  622. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/link.py +0 -121
  623. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/link.pyc +0 -0
  624. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/linkloc.py +0 -112
  625. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/linkloc.pyc +0 -0
  626. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/m4.py +0 -63
  627. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/m4.pyc +0 -0
  628. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/masm.py +0 -77
  629. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/masm.pyc +0 -0
  630. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/midl.py +0 -90
  631. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/midl.pyc +0 -0
  632. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mingw.py +0 -159
  633. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mingw.pyc +0 -0
  634. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslib.py +0 -64
  635. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslib.pyc +0 -0
  636. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslink.py +0 -266
  637. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mslink.pyc +0 -0
  638. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mssdk.py +0 -50
  639. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mssdk.pyc +0 -0
  640. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvc.py +0 -269
  641. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvc.pyc +0 -0
  642. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvs.py +0 -1439
  643. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/msvs.pyc +0 -0
  644. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwcc.py +0 -208
  645. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwcc.pyc +0 -0
  646. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwld.py +0 -107
  647. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/mwld.pyc +0 -0
  648. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/nasm.py +0 -72
  649. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/nasm.pyc +0 -0
  650. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/__init__.py +0 -314
  651. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/__init__.pyc +0 -0
  652. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/ipk.py +0 -185
  653. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/ipk.pyc +0 -0
  654. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/msi.py +0 -526
  655. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/msi.pyc +0 -0
  656. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/rpm.py +0 -367
  657. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/rpm.pyc +0 -0
  658. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_tarbz2.py +0 -43
  659. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_tarbz2.pyc +0 -0
  660. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_targz.py +0 -43
  661. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_targz.pyc +0 -0
  662. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_zip.py +0 -43
  663. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/src_zip.pyc +0 -0
  664. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/tarbz2.py +0 -44
  665. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/tarbz2.pyc +0 -0
  666. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/targz.py +0 -44
  667. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/targz.pyc +0 -0
  668. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/zip.py +0 -44
  669. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/packaging/zip.pyc +0 -0
  670. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdf.py +0 -78
  671. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdf.pyc +0 -0
  672. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdflatex.py +0 -83
  673. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdflatex.pyc +0 -0
  674. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdftex.py +0 -108
  675. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/pdftex.pyc +0 -0
  676. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/qt.py +0 -336
  677. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/qt.pyc +0 -0
  678. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rmic.py +0 -121
  679. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rmic.pyc +0 -0
  680. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpcgen.py +0 -70
  681. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpcgen.pyc +0 -0
  682. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpm.py +0 -132
  683. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/rpm.pyc +0 -0
  684. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgiar.py +0 -68
  685. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgiar.pyc +0 -0
  686. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgic++.py +0 -58
  687. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgic++.pyc +0 -0
  688. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgicc.py +0 -53
  689. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgicc.pyc +0 -0
  690. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgilink.py +0 -63
  691. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sgilink.pyc +0 -0
  692. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunar.py +0 -67
  693. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunar.pyc +0 -0
  694. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunc++.py +0 -142
  695. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunc++.pyc +0 -0
  696. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/suncc.py +0 -58
  697. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/suncc.pyc +0 -0
  698. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf77.py +0 -63
  699. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf77.pyc +0 -0
  700. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf90.py +0 -64
  701. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf90.pyc +0 -0
  702. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf95.py +0 -64
  703. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunf95.pyc +0 -0
  704. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunlink.py +0 -77
  705. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/sunlink.pyc +0 -0
  706. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/swig.py +0 -186
  707. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/swig.pyc +0 -0
  708. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tar.py +0 -73
  709. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tar.pyc +0 -0
  710. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tex.py +0 -805
  711. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tex.pyc +0 -0
  712. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/textfile.py +0 -175
  713. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/textfile.pyc +0 -0
  714. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tlib.py +0 -53
  715. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/tlib.pyc +0 -0
  716. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/wix.py +0 -100
  717. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/wix.pyc +0 -0
  718. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/yacc.py +0 -131
  719. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/yacc.pyc +0 -0
  720. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/zip.py +0 -100
  721. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Tool/zip.pyc +0 -0
  722. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Util.py +0 -1645
  723. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Util.pyc +0 -0
  724. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/BoolVariable.py +0 -91
  725. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/BoolVariable.pyc +0 -0
  726. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/EnumVariable.py +0 -107
  727. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/EnumVariable.pyc +0 -0
  728. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/ListVariable.py +0 -139
  729. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/ListVariable.pyc +0 -0
  730. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PackageVariable.py +0 -109
  731. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PackageVariable.pyc +0 -0
  732. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PathVariable.py +0 -147
  733. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/PathVariable.pyc +0 -0
  734. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/__init__.py +0 -317
  735. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Variables/__init__.pyc +0 -0
  736. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Warnings.py +0 -228
  737. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/Warnings.pyc +0 -0
  738. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/__init__.py +0 -49
  739. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/__init__.pyc +0 -0
  740. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/__init__.py +0 -302
  741. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/__init__.pyc +0 -0
  742. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_UserString.py +0 -98
  743. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_UserString.pyc +0 -0
  744. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_hashlib.py +0 -91
  745. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_hashlib.pyc +0 -0
  746. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_itertools.py +0 -124
  747. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_itertools.pyc +0 -0
  748. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_optparse.py +0 -1725
  749. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_optparse.pyc +0 -0
  750. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets.py +0 -583
  751. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets.pyc +0 -0
  752. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets15.py +0 -176
  753. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_sets15.pyc +0 -0
  754. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_shlex.py +0 -325
  755. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_shlex.pyc +0 -0
  756. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_subprocess.py +0 -1296
  757. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_subprocess.pyc +0 -0
  758. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_textwrap.py +0 -382
  759. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/_scons_textwrap.pyc +0 -0
  760. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/builtins.py +0 -187
  761. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/compat/builtins.pyc +0 -0
  762. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/cpp.py +0 -598
  763. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/cpp.pyc +0 -0
  764. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/dblite.py +0 -248
  765. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/dblite.pyc +0 -0
  766. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/exitfuncs.py +0 -77
  767. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/SCons/exitfuncs.pyc +0 -0
  768. data/ext/v8/upstream/build/scons/install/lib/scons-1.2.0.d20100117/scons-1.2.0.d20100117.egg-info +0 -13
  769. data/ext/v8/upstream/build/scons/install/man/man1/scons-time.1 +0 -1017
  770. data/ext/v8/upstream/build/scons/install/man/man1/scons.1 +0 -15179
  771. data/ext/v8/upstream/build/scons/install/man/man1/sconsign.1 +0 -208
  772. data/ext/v8/upstream/build/scons/os_spawnv_fix.diff +0 -83
  773. data/ext/v8/upstream/build/scons/scons-time.1 +0 -1017
  774. data/ext/v8/upstream/build/scons/scons.1 +0 -15179
  775. data/ext/v8/upstream/build/scons/sconsign.1 +0 -208
  776. data/ext/v8/upstream/build/scons/script/scons +0 -184
  777. data/ext/v8/upstream/build/scons/script/scons-time +0 -1529
  778. data/ext/v8/upstream/build/scons/script/scons.bat +0 -31
  779. data/ext/v8/upstream/build/scons/script/sconsign +0 -508
  780. data/ext/v8/upstream/build/scons/setup.cfg +0 -6
  781. data/ext/v8/upstream/build/scons/setup.py +0 -427
  782. data/ext/v8/upstream/build/v8/.gitignore +0 -26
  783. data/ext/v8/upstream/build/v8/AUTHORS +0 -31
  784. data/ext/v8/upstream/build/v8/ChangeLog +0 -1916
  785. data/ext/v8/upstream/build/v8/LICENSE +0 -55
  786. data/ext/v8/upstream/build/v8/SConstruct +0 -1158
  787. data/ext/v8/upstream/build/v8/SConstruct.orig +0 -1154
  788. data/ext/v8/upstream/build/v8/include/v8-debug.h +0 -381
  789. data/ext/v8/upstream/build/v8/include/v8-profiler.h +0 -353
  790. data/ext/v8/upstream/build/v8/src/SConscript +0 -330
  791. data/ext/v8/upstream/build/v8/src/accessors.cc +0 -661
  792. data/ext/v8/upstream/build/v8/src/accessors.h +0 -114
  793. data/ext/v8/upstream/build/v8/src/allocation.cc +0 -198
  794. data/ext/v8/upstream/build/v8/src/allocation.h +0 -169
  795. data/ext/v8/upstream/build/v8/src/api.cc +0 -4795
  796. data/ext/v8/upstream/build/v8/src/api.h +0 -485
  797. data/ext/v8/upstream/build/v8/src/apinatives.js +0 -110
  798. data/ext/v8/upstream/build/v8/src/apiutils.h +0 -69
  799. data/ext/v8/upstream/build/v8/src/arguments.h +0 -96
  800. data/ext/v8/upstream/build/v8/src/arm/assembler-arm-inl.h +0 -305
  801. data/ext/v8/upstream/build/v8/src/arm/assembler-arm.cc +0 -2580
  802. data/ext/v8/upstream/build/v8/src/arm/assembler-arm.h +0 -1275
  803. data/ext/v8/upstream/build/v8/src/arm/builtins-arm.cc +0 -1320
  804. data/ext/v8/upstream/build/v8/src/arm/codegen-arm-inl.h +0 -48
  805. data/ext/v8/upstream/build/v8/src/arm/codegen-arm.cc +0 -11398
  806. data/ext/v8/upstream/build/v8/src/arm/codegen-arm.h +0 -1102
  807. data/ext/v8/upstream/build/v8/src/arm/constants-arm.cc +0 -154
  808. data/ext/v8/upstream/build/v8/src/arm/constants-arm.h +0 -388
  809. data/ext/v8/upstream/build/v8/src/arm/cpu-arm.cc +0 -142
  810. data/ext/v8/upstream/build/v8/src/arm/debug-arm.cc +0 -309
  811. data/ext/v8/upstream/build/v8/src/arm/disasm-arm.cc +0 -1459
  812. data/ext/v8/upstream/build/v8/src/arm/fast-codegen-arm.cc +0 -241
  813. data/ext/v8/upstream/build/v8/src/arm/frames-arm.cc +0 -123
  814. data/ext/v8/upstream/build/v8/src/arm/frames-arm.h +0 -162
  815. data/ext/v8/upstream/build/v8/src/arm/full-codegen-arm.cc +0 -3178
  816. data/ext/v8/upstream/build/v8/src/arm/ic-arm.cc +0 -2258
  817. data/ext/v8/upstream/build/v8/src/arm/jump-target-arm.cc +0 -164
  818. data/ext/v8/upstream/build/v8/src/arm/macro-assembler-arm.cc +0 -1892
  819. data/ext/v8/upstream/build/v8/src/arm/macro-assembler-arm.h +0 -727
  820. data/ext/v8/upstream/build/v8/src/arm/regexp-macro-assembler-arm.cc +0 -1261
  821. data/ext/v8/upstream/build/v8/src/arm/regexp-macro-assembler-arm.h +0 -266
  822. data/ext/v8/upstream/build/v8/src/arm/register-allocator-arm-inl.h +0 -100
  823. data/ext/v8/upstream/build/v8/src/arm/register-allocator-arm.cc +0 -63
  824. data/ext/v8/upstream/build/v8/src/arm/register-allocator-arm.h +0 -44
  825. data/ext/v8/upstream/build/v8/src/arm/simulator-arm.cc +0 -2822
  826. data/ext/v8/upstream/build/v8/src/arm/simulator-arm.h +0 -361
  827. data/ext/v8/upstream/build/v8/src/arm/stub-cache-arm.cc +0 -2387
  828. data/ext/v8/upstream/build/v8/src/arm/virtual-frame-arm-inl.h +0 -59
  829. data/ext/v8/upstream/build/v8/src/arm/virtual-frame-arm.cc +0 -834
  830. data/ext/v8/upstream/build/v8/src/arm/virtual-frame-arm.h +0 -519
  831. data/ext/v8/upstream/build/v8/src/array.js +0 -1127
  832. data/ext/v8/upstream/build/v8/src/assembler.cc +0 -801
  833. data/ext/v8/upstream/build/v8/src/assembler.h +0 -573
  834. data/ext/v8/upstream/build/v8/src/ast-inl.h +0 -81
  835. data/ext/v8/upstream/build/v8/src/ast.cc +0 -1152
  836. data/ext/v8/upstream/build/v8/src/ast.h +0 -2106
  837. data/ext/v8/upstream/build/v8/src/bootstrapper.cc +0 -1819
  838. data/ext/v8/upstream/build/v8/src/bootstrapper.h +0 -118
  839. data/ext/v8/upstream/build/v8/src/builtins.cc +0 -1529
  840. data/ext/v8/upstream/build/v8/src/builtins.h +0 -263
  841. data/ext/v8/upstream/build/v8/src/bytecodes-irregexp.h +0 -104
  842. data/ext/v8/upstream/build/v8/src/cached-powers.h +0 -119
  843. data/ext/v8/upstream/build/v8/src/char-predicates-inl.h +0 -86
  844. data/ext/v8/upstream/build/v8/src/char-predicates.h +0 -65
  845. data/ext/v8/upstream/build/v8/src/checks.cc +0 -100
  846. data/ext/v8/upstream/build/v8/src/checks.h +0 -310
  847. data/ext/v8/upstream/build/v8/src/circular-queue-inl.h +0 -53
  848. data/ext/v8/upstream/build/v8/src/circular-queue.cc +0 -121
  849. data/ext/v8/upstream/build/v8/src/circular-queue.h +0 -103
  850. data/ext/v8/upstream/build/v8/src/code-stubs.cc +0 -177
  851. data/ext/v8/upstream/build/v8/src/code-stubs.h +0 -177
  852. data/ext/v8/upstream/build/v8/src/code.h +0 -68
  853. data/ext/v8/upstream/build/v8/src/codegen-inl.h +0 -60
  854. data/ext/v8/upstream/build/v8/src/codegen.cc +0 -516
  855. data/ext/v8/upstream/build/v8/src/codegen.h +0 -897
  856. data/ext/v8/upstream/build/v8/src/compilation-cache.cc +0 -562
  857. data/ext/v8/upstream/build/v8/src/compilation-cache.h +0 -102
  858. data/ext/v8/upstream/build/v8/src/compiler.cc +0 -654
  859. data/ext/v8/upstream/build/v8/src/compiler.h +0 -299
  860. data/ext/v8/upstream/build/v8/src/contexts.cc +0 -256
  861. data/ext/v8/upstream/build/v8/src/contexts.h +0 -342
  862. data/ext/v8/upstream/build/v8/src/conversions-inl.h +0 -110
  863. data/ext/v8/upstream/build/v8/src/conversions.cc +0 -1119
  864. data/ext/v8/upstream/build/v8/src/conversions.h +0 -123
  865. data/ext/v8/upstream/build/v8/src/counters.cc +0 -78
  866. data/ext/v8/upstream/build/v8/src/counters.h +0 -239
  867. data/ext/v8/upstream/build/v8/src/cpu-profiler-inl.h +0 -100
  868. data/ext/v8/upstream/build/v8/src/cpu-profiler.cc +0 -538
  869. data/ext/v8/upstream/build/v8/src/cpu-profiler.h +0 -285
  870. data/ext/v8/upstream/build/v8/src/cpu.h +0 -65
  871. data/ext/v8/upstream/build/v8/src/d8-debug.cc +0 -356
  872. data/ext/v8/upstream/build/v8/src/d8-debug.h +0 -155
  873. data/ext/v8/upstream/build/v8/src/d8-posix.cc +0 -693
  874. data/ext/v8/upstream/build/v8/src/d8-readline.cc +0 -128
  875. data/ext/v8/upstream/build/v8/src/d8-windows.cc +0 -42
  876. data/ext/v8/upstream/build/v8/src/d8.cc +0 -783
  877. data/ext/v8/upstream/build/v8/src/d8.h +0 -227
  878. data/ext/v8/upstream/build/v8/src/d8.js +0 -1683
  879. data/ext/v8/upstream/build/v8/src/data-flow.cc +0 -758
  880. data/ext/v8/upstream/build/v8/src/data-flow.h +0 -278
  881. data/ext/v8/upstream/build/v8/src/date.js +0 -1059
  882. data/ext/v8/upstream/build/v8/src/dateparser-inl.h +0 -123
  883. data/ext/v8/upstream/build/v8/src/dateparser.cc +0 -178
  884. data/ext/v8/upstream/build/v8/src/dateparser.h +0 -244
  885. data/ext/v8/upstream/build/v8/src/debug-agent.cc +0 -427
  886. data/ext/v8/upstream/build/v8/src/debug-agent.h +0 -129
  887. data/ext/v8/upstream/build/v8/src/debug-debugger.js +0 -2227
  888. data/ext/v8/upstream/build/v8/src/debug.cc +0 -3005
  889. data/ext/v8/upstream/build/v8/src/debug.h +0 -993
  890. data/ext/v8/upstream/build/v8/src/disasm.h +0 -77
  891. data/ext/v8/upstream/build/v8/src/disassembler.cc +0 -312
  892. data/ext/v8/upstream/build/v8/src/disassembler.h +0 -56
  893. data/ext/v8/upstream/build/v8/src/diy-fp.cc +0 -58
  894. data/ext/v8/upstream/build/v8/src/diy-fp.h +0 -117
  895. data/ext/v8/upstream/build/v8/src/double.h +0 -169
  896. data/ext/v8/upstream/build/v8/src/dtoa-config.c +0 -92
  897. data/ext/v8/upstream/build/v8/src/dtoa.cc +0 -77
  898. data/ext/v8/upstream/build/v8/src/dtoa.h +0 -81
  899. data/ext/v8/upstream/build/v8/src/execution.cc +0 -809
  900. data/ext/v8/upstream/build/v8/src/execution.h +0 -336
  901. data/ext/v8/upstream/build/v8/src/factory.cc +0 -1003
  902. data/ext/v8/upstream/build/v8/src/factory.h +0 -410
  903. data/ext/v8/upstream/build/v8/src/fast-codegen.cc +0 -746
  904. data/ext/v8/upstream/build/v8/src/fast-codegen.h +0 -161
  905. data/ext/v8/upstream/build/v8/src/fast-dtoa.cc +0 -505
  906. data/ext/v8/upstream/build/v8/src/fast-dtoa.h +0 -58
  907. data/ext/v8/upstream/build/v8/src/fixed-dtoa.cc +0 -405
  908. data/ext/v8/upstream/build/v8/src/fixed-dtoa.h +0 -55
  909. data/ext/v8/upstream/build/v8/src/flag-definitions.h +0 -455
  910. data/ext/v8/upstream/build/v8/src/flags.cc +0 -551
  911. data/ext/v8/upstream/build/v8/src/flags.h +0 -81
  912. data/ext/v8/upstream/build/v8/src/flow-graph.cc +0 -763
  913. data/ext/v8/upstream/build/v8/src/flow-graph.h +0 -180
  914. data/ext/v8/upstream/build/v8/src/frame-element.cc +0 -42
  915. data/ext/v8/upstream/build/v8/src/frame-element.h +0 -273
  916. data/ext/v8/upstream/build/v8/src/frames-inl.h +0 -217
  917. data/ext/v8/upstream/build/v8/src/frames.cc +0 -826
  918. data/ext/v8/upstream/build/v8/src/frames.h +0 -682
  919. data/ext/v8/upstream/build/v8/src/full-codegen.cc +0 -1443
  920. data/ext/v8/upstream/build/v8/src/full-codegen.h +0 -548
  921. data/ext/v8/upstream/build/v8/src/func-name-inferrer.cc +0 -76
  922. data/ext/v8/upstream/build/v8/src/func-name-inferrer.h +0 -135
  923. data/ext/v8/upstream/build/v8/src/global-handles.cc +0 -520
  924. data/ext/v8/upstream/build/v8/src/global-handles.h +0 -180
  925. data/ext/v8/upstream/build/v8/src/globals.h +0 -669
  926. data/ext/v8/upstream/build/v8/src/handles-inl.h +0 -76
  927. data/ext/v8/upstream/build/v8/src/handles.cc +0 -825
  928. data/ext/v8/upstream/build/v8/src/handles.h +0 -393
  929. data/ext/v8/upstream/build/v8/src/hashmap.cc +0 -226
  930. data/ext/v8/upstream/build/v8/src/hashmap.h +0 -120
  931. data/ext/v8/upstream/build/v8/src/heap-inl.h +0 -493
  932. data/ext/v8/upstream/build/v8/src/heap-profiler.cc +0 -779
  933. data/ext/v8/upstream/build/v8/src/heap-profiler.h +0 -323
  934. data/ext/v8/upstream/build/v8/src/heap.cc +0 -4994
  935. data/ext/v8/upstream/build/v8/src/heap.h +0 -1984
  936. data/ext/v8/upstream/build/v8/src/ia32/assembler-ia32-inl.h +0 -360
  937. data/ext/v8/upstream/build/v8/src/ia32/assembler-ia32.cc +0 -2600
  938. data/ext/v8/upstream/build/v8/src/ia32/assembler-ia32.h +0 -969
  939. data/ext/v8/upstream/build/v8/src/ia32/builtins-ia32.cc +0 -1261
  940. data/ext/v8/upstream/build/v8/src/ia32/codegen-ia32-inl.h +0 -46
  941. data/ext/v8/upstream/build/v8/src/ia32/codegen-ia32.cc +0 -13968
  942. data/ext/v8/upstream/build/v8/src/ia32/codegen-ia32.h +0 -1097
  943. data/ext/v8/upstream/build/v8/src/ia32/cpu-ia32.cc +0 -83
  944. data/ext/v8/upstream/build/v8/src/ia32/debug-ia32.cc +0 -309
  945. data/ext/v8/upstream/build/v8/src/ia32/disasm-ia32.cc +0 -1471
  946. data/ext/v8/upstream/build/v8/src/ia32/fast-codegen-ia32.cc +0 -954
  947. data/ext/v8/upstream/build/v8/src/ia32/fast-codegen-ia32.h +0 -155
  948. data/ext/v8/upstream/build/v8/src/ia32/frames-ia32.cc +0 -115
  949. data/ext/v8/upstream/build/v8/src/ia32/frames-ia32.h +0 -135
  950. data/ext/v8/upstream/build/v8/src/ia32/full-codegen-ia32.cc +0 -3281
  951. data/ext/v8/upstream/build/v8/src/ia32/ic-ia32.cc +0 -1966
  952. data/ext/v8/upstream/build/v8/src/ia32/jump-target-ia32.cc +0 -437
  953. data/ext/v8/upstream/build/v8/src/ia32/macro-assembler-ia32.cc +0 -1610
  954. data/ext/v8/upstream/build/v8/src/ia32/macro-assembler-ia32.h +0 -610
  955. data/ext/v8/upstream/build/v8/src/ia32/regexp-macro-assembler-ia32.cc +0 -1247
  956. data/ext/v8/upstream/build/v8/src/ia32/regexp-macro-assembler-ia32.h +0 -214
  957. data/ext/v8/upstream/build/v8/src/ia32/register-allocator-ia32-inl.h +0 -82
  958. data/ext/v8/upstream/build/v8/src/ia32/register-allocator-ia32.cc +0 -157
  959. data/ext/v8/upstream/build/v8/src/ia32/register-allocator-ia32.h +0 -43
  960. data/ext/v8/upstream/build/v8/src/ia32/simulator-ia32.cc +0 -30
  961. data/ext/v8/upstream/build/v8/src/ia32/simulator-ia32.h +0 -62
  962. data/ext/v8/upstream/build/v8/src/ia32/stub-cache-ia32.cc +0 -2750
  963. data/ext/v8/upstream/build/v8/src/ia32/virtual-frame-ia32.cc +0 -1334
  964. data/ext/v8/upstream/build/v8/src/ia32/virtual-frame-ia32.h +0 -627
  965. data/ext/v8/upstream/build/v8/src/ic-inl.h +0 -120
  966. data/ext/v8/upstream/build/v8/src/ic.cc +0 -1827
  967. data/ext/v8/upstream/build/v8/src/ic.h +0 -515
  968. data/ext/v8/upstream/build/v8/src/interpreter-irregexp.cc +0 -646
  969. data/ext/v8/upstream/build/v8/src/interpreter-irregexp.h +0 -48
  970. data/ext/v8/upstream/build/v8/src/json.js +0 -268
  971. data/ext/v8/upstream/build/v8/src/jsregexp.cc +0 -5283
  972. data/ext/v8/upstream/build/v8/src/jsregexp.h +0 -1463
  973. data/ext/v8/upstream/build/v8/src/jump-target-heavy-inl.h +0 -51
  974. data/ext/v8/upstream/build/v8/src/jump-target-heavy.cc +0 -429
  975. data/ext/v8/upstream/build/v8/src/jump-target-heavy.h +0 -244
  976. data/ext/v8/upstream/build/v8/src/jump-target-inl.h +0 -48
  977. data/ext/v8/upstream/build/v8/src/jump-target-light-inl.h +0 -56
  978. data/ext/v8/upstream/build/v8/src/jump-target-light.cc +0 -110
  979. data/ext/v8/upstream/build/v8/src/jump-target-light.h +0 -192
  980. data/ext/v8/upstream/build/v8/src/jump-target.cc +0 -91
  981. data/ext/v8/upstream/build/v8/src/jump-target.h +0 -90
  982. data/ext/v8/upstream/build/v8/src/list-inl.h +0 -166
  983. data/ext/v8/upstream/build/v8/src/list.h +0 -159
  984. data/ext/v8/upstream/build/v8/src/liveedit-debugger.js +0 -1057
  985. data/ext/v8/upstream/build/v8/src/liveedit.cc +0 -1480
  986. data/ext/v8/upstream/build/v8/src/liveedit.h +0 -170
  987. data/ext/v8/upstream/build/v8/src/log-inl.h +0 -59
  988. data/ext/v8/upstream/build/v8/src/log-utils.cc +0 -497
  989. data/ext/v8/upstream/build/v8/src/log-utils.h +0 -289
  990. data/ext/v8/upstream/build/v8/src/log.cc +0 -1561
  991. data/ext/v8/upstream/build/v8/src/log.h +0 -384
  992. data/ext/v8/upstream/build/v8/src/macro-assembler.h +0 -86
  993. data/ext/v8/upstream/build/v8/src/macros.py +0 -177
  994. data/ext/v8/upstream/build/v8/src/mark-compact.cc +0 -2330
  995. data/ext/v8/upstream/build/v8/src/mark-compact.h +0 -451
  996. data/ext/v8/upstream/build/v8/src/math.js +0 -264
  997. data/ext/v8/upstream/build/v8/src/memory.h +0 -74
  998. data/ext/v8/upstream/build/v8/src/messages.cc +0 -183
  999. data/ext/v8/upstream/build/v8/src/messages.h +0 -113
  1000. data/ext/v8/upstream/build/v8/src/messages.js +0 -982
  1001. data/ext/v8/upstream/build/v8/src/mips/assembler-mips-inl.h +0 -215
  1002. data/ext/v8/upstream/build/v8/src/mips/assembler-mips.cc +0 -1219
  1003. data/ext/v8/upstream/build/v8/src/mips/assembler-mips.h +0 -668
  1004. data/ext/v8/upstream/build/v8/src/mips/builtins-mips.cc +0 -205
  1005. data/ext/v8/upstream/build/v8/src/mips/codegen-mips-inl.h +0 -70
  1006. data/ext/v8/upstream/build/v8/src/mips/codegen-mips.cc +0 -1437
  1007. data/ext/v8/upstream/build/v8/src/mips/codegen-mips.h +0 -434
  1008. data/ext/v8/upstream/build/v8/src/mips/constants-mips.cc +0 -328
  1009. data/ext/v8/upstream/build/v8/src/mips/constants-mips.h +0 -525
  1010. data/ext/v8/upstream/build/v8/src/mips/cpu-mips.cc +0 -73
  1011. data/ext/v8/upstream/build/v8/src/mips/debug-mips.cc +0 -131
  1012. data/ext/v8/upstream/build/v8/src/mips/disasm-mips.cc +0 -787
  1013. data/ext/v8/upstream/build/v8/src/mips/fast-codegen-mips.cc +0 -77
  1014. data/ext/v8/upstream/build/v8/src/mips/frames-mips.cc +0 -102
  1015. data/ext/v8/upstream/build/v8/src/mips/frames-mips.h +0 -164
  1016. data/ext/v8/upstream/build/v8/src/mips/full-codegen-mips.cc +0 -277
  1017. data/ext/v8/upstream/build/v8/src/mips/ic-mips.cc +0 -220
  1018. data/ext/v8/upstream/build/v8/src/mips/jump-target-mips.cc +0 -175
  1019. data/ext/v8/upstream/build/v8/src/mips/macro-assembler-mips.cc +0 -1326
  1020. data/ext/v8/upstream/build/v8/src/mips/macro-assembler-mips.h +0 -461
  1021. data/ext/v8/upstream/build/v8/src/mips/register-allocator-mips-inl.h +0 -137
  1022. data/ext/v8/upstream/build/v8/src/mips/register-allocator-mips.cc +0 -63
  1023. data/ext/v8/upstream/build/v8/src/mips/register-allocator-mips.h +0 -46
  1024. data/ext/v8/upstream/build/v8/src/mips/simulator-mips.cc +0 -1651
  1025. data/ext/v8/upstream/build/v8/src/mips/simulator-mips.h +0 -311
  1026. data/ext/v8/upstream/build/v8/src/mips/stub-cache-mips.cc +0 -403
  1027. data/ext/v8/upstream/build/v8/src/mips/virtual-frame-mips.cc +0 -319
  1028. data/ext/v8/upstream/build/v8/src/mips/virtual-frame-mips.h +0 -548
  1029. data/ext/v8/upstream/build/v8/src/mirror-debugger.js +0 -2380
  1030. data/ext/v8/upstream/build/v8/src/mksnapshot.cc +0 -256
  1031. data/ext/v8/upstream/build/v8/src/natives.h +0 -63
  1032. data/ext/v8/upstream/build/v8/src/objects-debug.cc +0 -1366
  1033. data/ext/v8/upstream/build/v8/src/objects-inl.h +0 -3333
  1034. data/ext/v8/upstream/build/v8/src/objects.cc +0 -8820
  1035. data/ext/v8/upstream/build/v8/src/objects.h +0 -5373
  1036. data/ext/v8/upstream/build/v8/src/oprofile-agent.cc +0 -108
  1037. data/ext/v8/upstream/build/v8/src/oprofile-agent.h +0 -77
  1038. data/ext/v8/upstream/build/v8/src/parser.cc +0 -5207
  1039. data/ext/v8/upstream/build/v8/src/parser.h +0 -197
  1040. data/ext/v8/upstream/build/v8/src/platform-freebsd.cc +0 -667
  1041. data/ext/v8/upstream/build/v8/src/platform-linux.cc +0 -862
  1042. data/ext/v8/upstream/build/v8/src/platform-macos.cc +0 -665
  1043. data/ext/v8/upstream/build/v8/src/platform-nullos.cc +0 -454
  1044. data/ext/v8/upstream/build/v8/src/platform-openbsd.cc +0 -622
  1045. data/ext/v8/upstream/build/v8/src/platform-posix.cc +0 -362
  1046. data/ext/v8/upstream/build/v8/src/platform-solaris.cc +0 -653
  1047. data/ext/v8/upstream/build/v8/src/platform-win32.cc +0 -1911
  1048. data/ext/v8/upstream/build/v8/src/platform.h +0 -577
  1049. data/ext/v8/upstream/build/v8/src/powers-ten.h +0 -2461
  1050. data/ext/v8/upstream/build/v8/src/prettyprinter.cc +0 -1531
  1051. data/ext/v8/upstream/build/v8/src/prettyprinter.h +0 -221
  1052. data/ext/v8/upstream/build/v8/src/profile-generator-inl.h +0 -148
  1053. data/ext/v8/upstream/build/v8/src/profile-generator.cc +0 -1830
  1054. data/ext/v8/upstream/build/v8/src/profile-generator.h +0 -853
  1055. data/ext/v8/upstream/build/v8/src/property.cc +0 -96
  1056. data/ext/v8/upstream/build/v8/src/property.h +0 -315
  1057. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-irregexp-inl.h +0 -78
  1058. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-irregexp.cc +0 -464
  1059. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-irregexp.h +0 -141
  1060. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-tracer.cc +0 -356
  1061. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler-tracer.h +0 -103
  1062. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler.cc +0 -261
  1063. data/ext/v8/upstream/build/v8/src/regexp-macro-assembler.h +0 -228
  1064. data/ext/v8/upstream/build/v8/src/regexp-stack.cc +0 -103
  1065. data/ext/v8/upstream/build/v8/src/regexp-stack.h +0 -123
  1066. data/ext/v8/upstream/build/v8/src/regexp.js +0 -549
  1067. data/ext/v8/upstream/build/v8/src/register-allocator-inl.h +0 -141
  1068. data/ext/v8/upstream/build/v8/src/register-allocator.cc +0 -104
  1069. data/ext/v8/upstream/build/v8/src/register-allocator.h +0 -320
  1070. data/ext/v8/upstream/build/v8/src/rewriter.cc +0 -1038
  1071. data/ext/v8/upstream/build/v8/src/rewriter.h +0 -54
  1072. data/ext/v8/upstream/build/v8/src/runtime.cc +0 -10599
  1073. data/ext/v8/upstream/build/v8/src/runtime.h +0 -459
  1074. data/ext/v8/upstream/build/v8/src/runtime.js +0 -629
  1075. data/ext/v8/upstream/build/v8/src/scanner.cc +0 -1346
  1076. data/ext/v8/upstream/build/v8/src/scanner.h +0 -503
  1077. data/ext/v8/upstream/build/v8/src/scopeinfo.cc +0 -637
  1078. data/ext/v8/upstream/build/v8/src/scopeinfo.h +0 -233
  1079. data/ext/v8/upstream/build/v8/src/scopes.cc +0 -962
  1080. data/ext/v8/upstream/build/v8/src/scopes.h +0 -400
  1081. data/ext/v8/upstream/build/v8/src/serialize.cc +0 -1461
  1082. data/ext/v8/upstream/build/v8/src/serialize.h +0 -581
  1083. data/ext/v8/upstream/build/v8/src/shell.h +0 -55
  1084. data/ext/v8/upstream/build/v8/src/simulator.h +0 -43
  1085. data/ext/v8/upstream/build/v8/src/smart-pointer.h +0 -109
  1086. data/ext/v8/upstream/build/v8/src/snapshot-common.cc +0 -82
  1087. data/ext/v8/upstream/build/v8/src/snapshot-empty.cc +0 -50
  1088. data/ext/v8/upstream/build/v8/src/snapshot.h +0 -71
  1089. data/ext/v8/upstream/build/v8/src/spaces-inl.h +0 -483
  1090. data/ext/v8/upstream/build/v8/src/spaces.cc +0 -2901
  1091. data/ext/v8/upstream/build/v8/src/spaces.h +0 -2197
  1092. data/ext/v8/upstream/build/v8/src/splay-tree-inl.h +0 -310
  1093. data/ext/v8/upstream/build/v8/src/splay-tree.h +0 -203
  1094. data/ext/v8/upstream/build/v8/src/string-stream.cc +0 -584
  1095. data/ext/v8/upstream/build/v8/src/string-stream.h +0 -189
  1096. data/ext/v8/upstream/build/v8/src/string.js +0 -1006
  1097. data/ext/v8/upstream/build/v8/src/stub-cache.cc +0 -1379
  1098. data/ext/v8/upstream/build/v8/src/stub-cache.h +0 -756
  1099. data/ext/v8/upstream/build/v8/src/third_party/dtoa/COPYING +0 -15
  1100. data/ext/v8/upstream/build/v8/src/third_party/dtoa/dtoa.c +0 -3334
  1101. data/ext/v8/upstream/build/v8/src/third_party/valgrind/valgrind.h +0 -3925
  1102. data/ext/v8/upstream/build/v8/src/token.cc +0 -56
  1103. data/ext/v8/upstream/build/v8/src/token.h +0 -270
  1104. data/ext/v8/upstream/build/v8/src/top.cc +0 -1067
  1105. data/ext/v8/upstream/build/v8/src/top.h +0 -463
  1106. data/ext/v8/upstream/build/v8/src/type-info.cc +0 -53
  1107. data/ext/v8/upstream/build/v8/src/type-info.h +0 -244
  1108. data/ext/v8/upstream/build/v8/src/unbound-queue-inl.h +0 -95
  1109. data/ext/v8/upstream/build/v8/src/unbound-queue.h +0 -67
  1110. data/ext/v8/upstream/build/v8/src/unicode-inl.h +0 -238
  1111. data/ext/v8/upstream/build/v8/src/unicode.cc +0 -749
  1112. data/ext/v8/upstream/build/v8/src/unicode.h +0 -279
  1113. data/ext/v8/upstream/build/v8/src/uri.js +0 -415
  1114. data/ext/v8/upstream/build/v8/src/utils.cc +0 -285
  1115. data/ext/v8/upstream/build/v8/src/utils.h +0 -745
  1116. data/ext/v8/upstream/build/v8/src/v8-counters.cc +0 -55
  1117. data/ext/v8/upstream/build/v8/src/v8-counters.h +0 -250
  1118. data/ext/v8/upstream/build/v8/src/v8.cc +0 -228
  1119. data/ext/v8/upstream/build/v8/src/v8.h +0 -121
  1120. data/ext/v8/upstream/build/v8/src/v8dll-main.cc +0 -39
  1121. data/ext/v8/upstream/build/v8/src/v8natives.js +0 -1188
  1122. data/ext/v8/upstream/build/v8/src/v8threads.cc +0 -461
  1123. data/ext/v8/upstream/build/v8/src/v8threads.h +0 -159
  1124. data/ext/v8/upstream/build/v8/src/variables.cc +0 -119
  1125. data/ext/v8/upstream/build/v8/src/variables.h +0 -205
  1126. data/ext/v8/upstream/build/v8/src/version.cc +0 -88
  1127. data/ext/v8/upstream/build/v8/src/version.h +0 -64
  1128. data/ext/v8/upstream/build/v8/src/virtual-frame-heavy-inl.h +0 -192
  1129. data/ext/v8/upstream/build/v8/src/virtual-frame-heavy.cc +0 -312
  1130. data/ext/v8/upstream/build/v8/src/virtual-frame-inl.h +0 -39
  1131. data/ext/v8/upstream/build/v8/src/virtual-frame-light-inl.h +0 -170
  1132. data/ext/v8/upstream/build/v8/src/virtual-frame-light.cc +0 -52
  1133. data/ext/v8/upstream/build/v8/src/virtual-frame.cc +0 -49
  1134. data/ext/v8/upstream/build/v8/src/virtual-frame.h +0 -46
  1135. data/ext/v8/upstream/build/v8/src/vm-state-inl.h +0 -137
  1136. data/ext/v8/upstream/build/v8/src/vm-state.cc +0 -39
  1137. data/ext/v8/upstream/build/v8/src/vm-state.h +0 -77
  1138. data/ext/v8/upstream/build/v8/src/x64/assembler-x64-inl.h +0 -400
  1139. data/ext/v8/upstream/build/v8/src/x64/assembler-x64.cc +0 -2963
  1140. data/ext/v8/upstream/build/v8/src/x64/assembler-x64.h +0 -1438
  1141. data/ext/v8/upstream/build/v8/src/x64/builtins-x64.cc +0 -1296
  1142. data/ext/v8/upstream/build/v8/src/x64/codegen-x64-inl.h +0 -46
  1143. data/ext/v8/upstream/build/v8/src/x64/codegen-x64.cc +0 -12491
  1144. data/ext/v8/upstream/build/v8/src/x64/codegen-x64.h +0 -1090
  1145. data/ext/v8/upstream/build/v8/src/x64/cpu-x64.cc +0 -83
  1146. data/ext/v8/upstream/build/v8/src/x64/debug-x64.cc +0 -267
  1147. data/ext/v8/upstream/build/v8/src/x64/disasm-x64.cc +0 -1696
  1148. data/ext/v8/upstream/build/v8/src/x64/fast-codegen-x64.cc +0 -250
  1149. data/ext/v8/upstream/build/v8/src/x64/frames-x64.cc +0 -113
  1150. data/ext/v8/upstream/build/v8/src/x64/frames-x64.h +0 -125
  1151. data/ext/v8/upstream/build/v8/src/x64/full-codegen-x64.cc +0 -3270
  1152. data/ext/v8/upstream/build/v8/src/x64/ic-x64.cc +0 -1907
  1153. data/ext/v8/upstream/build/v8/src/x64/jump-target-x64.cc +0 -437
  1154. data/ext/v8/upstream/build/v8/src/x64/macro-assembler-x64.cc +0 -2793
  1155. data/ext/v8/upstream/build/v8/src/x64/macro-assembler-x64.h +0 -916
  1156. data/ext/v8/upstream/build/v8/src/x64/regexp-macro-assembler-x64.cc +0 -1374
  1157. data/ext/v8/upstream/build/v8/src/x64/regexp-macro-assembler-x64.h +0 -277
  1158. data/ext/v8/upstream/build/v8/src/x64/register-allocator-x64-inl.h +0 -87
  1159. data/ext/v8/upstream/build/v8/src/x64/register-allocator-x64.cc +0 -91
  1160. data/ext/v8/upstream/build/v8/src/x64/register-allocator-x64.h +0 -43
  1161. data/ext/v8/upstream/build/v8/src/x64/simulator-x64.cc +0 -27
  1162. data/ext/v8/upstream/build/v8/src/x64/simulator-x64.h +0 -63
  1163. data/ext/v8/upstream/build/v8/src/x64/stub-cache-x64.cc +0 -2560
  1164. data/ext/v8/upstream/build/v8/src/x64/virtual-frame-x64.cc +0 -1264
  1165. data/ext/v8/upstream/build/v8/src/x64/virtual-frame-x64.h +0 -590
  1166. data/ext/v8/upstream/build/v8/src/zone-inl.h +0 -82
  1167. data/ext/v8/upstream/build/v8/src/zone.cc +0 -194
  1168. data/ext/v8/upstream/build/v8/src/zone.h +0 -221
  1169. data/ext/v8/upstream/build/v8/tools/codemap.js +0 -270
  1170. data/ext/v8/upstream/build/v8/tools/consarray.js +0 -93
  1171. data/ext/v8/upstream/build/v8/tools/csvparser.js +0 -83
  1172. data/ext/v8/upstream/build/v8/tools/gc-nvp-trace-processor.py +0 -317
  1173. data/ext/v8/upstream/build/v8/tools/generate-ten-powers.scm +0 -286
  1174. data/ext/v8/upstream/build/v8/tools/gyp/v8.gyp +0 -749
  1175. data/ext/v8/upstream/build/v8/tools/js2c.py +0 -380
  1176. data/ext/v8/upstream/build/v8/tools/jsmin.py +0 -280
  1177. data/ext/v8/upstream/build/v8/tools/linux-tick-processor +0 -33
  1178. data/ext/v8/upstream/build/v8/tools/linux-tick-processor.py +0 -78
  1179. data/ext/v8/upstream/build/v8/tools/logreader.js +0 -338
  1180. data/ext/v8/upstream/build/v8/tools/mac-nm +0 -18
  1181. data/ext/v8/upstream/build/v8/tools/mac-tick-processor +0 -6
  1182. data/ext/v8/upstream/build/v8/tools/oprofile/annotate +0 -7
  1183. data/ext/v8/upstream/build/v8/tools/oprofile/common +0 -19
  1184. data/ext/v8/upstream/build/v8/tools/oprofile/dump +0 -7
  1185. data/ext/v8/upstream/build/v8/tools/oprofile/report +0 -7
  1186. data/ext/v8/upstream/build/v8/tools/oprofile/reset +0 -7
  1187. data/ext/v8/upstream/build/v8/tools/oprofile/run +0 -14
  1188. data/ext/v8/upstream/build/v8/tools/oprofile/shutdown +0 -7
  1189. data/ext/v8/upstream/build/v8/tools/oprofile/start +0 -7
  1190. data/ext/v8/upstream/build/v8/tools/presubmit.py +0 -299
  1191. data/ext/v8/upstream/build/v8/tools/process-heap-prof.py +0 -120
  1192. data/ext/v8/upstream/build/v8/tools/profile.js +0 -691
  1193. data/ext/v8/upstream/build/v8/tools/profile_view.js +0 -224
  1194. data/ext/v8/upstream/build/v8/tools/run-valgrind.py +0 -77
  1195. data/ext/v8/upstream/build/v8/tools/splaytree.js +0 -322
  1196. data/ext/v8/upstream/build/v8/tools/splaytree.py +0 -226
  1197. data/ext/v8/upstream/build/v8/tools/stats-viewer.py +0 -468
  1198. data/ext/v8/upstream/build/v8/tools/tickprocessor-driver.js +0 -59
  1199. data/ext/v8/upstream/build/v8/tools/tickprocessor.js +0 -862
  1200. data/ext/v8/upstream/build/v8/tools/tickprocessor.py +0 -571
  1201. data/ext/v8/upstream/build/v8/tools/utils.py +0 -88
  1202. data/ext/v8/upstream/build/v8/tools/visual_studio/README.txt +0 -71
  1203. data/ext/v8/upstream/build/v8/tools/visual_studio/arm.vsprops +0 -14
  1204. data/ext/v8/upstream/build/v8/tools/visual_studio/common.vsprops +0 -34
  1205. data/ext/v8/upstream/build/v8/tools/visual_studio/d8.vcproj +0 -193
  1206. data/ext/v8/upstream/build/v8/tools/visual_studio/d8_arm.vcproj +0 -193
  1207. data/ext/v8/upstream/build/v8/tools/visual_studio/d8_x64.vcproj +0 -209
  1208. data/ext/v8/upstream/build/v8/tools/visual_studio/d8js2c.cmd +0 -6
  1209. data/ext/v8/upstream/build/v8/tools/visual_studio/debug.vsprops +0 -17
  1210. data/ext/v8/upstream/build/v8/tools/visual_studio/ia32.vsprops +0 -17
  1211. data/ext/v8/upstream/build/v8/tools/visual_studio/js2c.cmd +0 -6
  1212. data/ext/v8/upstream/build/v8/tools/visual_studio/release.vsprops +0 -24
  1213. data/ext/v8/upstream/build/v8/tools/visual_studio/v8.sln +0 -101
  1214. data/ext/v8/upstream/build/v8/tools/visual_studio/v8.vcproj +0 -227
  1215. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_arm.sln +0 -74
  1216. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_arm.vcproj +0 -227
  1217. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_base.vcproj +0 -1143
  1218. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_base_arm.vcproj +0 -1115
  1219. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_base_x64.vcproj +0 -1096
  1220. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_cctest.vcproj +0 -265
  1221. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_cctest_arm.vcproj +0 -249
  1222. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_cctest_x64.vcproj +0 -257
  1223. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_mksnapshot.vcproj +0 -145
  1224. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -145
  1225. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_process_sample.vcproj +0 -145
  1226. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_process_sample_arm.vcproj +0 -145
  1227. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_process_sample_x64.vcproj +0 -161
  1228. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_shell_sample.vcproj +0 -145
  1229. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -145
  1230. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -161
  1231. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot.vcproj +0 -142
  1232. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot_cc.vcproj +0 -92
  1233. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -92
  1234. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_snapshot_x64.vcproj +0 -142
  1235. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_x64.sln +0 -101
  1236. data/ext/v8/upstream/build/v8/tools/visual_studio/v8_x64.vcproj +0 -227
  1237. data/ext/v8/upstream/build/v8/tools/visual_studio/x64.vsprops +0 -17
  1238. data/ext/v8/upstream/build/v8/tools/windows-tick-processor.bat +0 -29
  1239. data/ext/v8/upstream/build/v8/tools/windows-tick-processor.py +0 -137
@@ -1,1907 +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
- #include "v8.h"
29
-
30
- #if defined(V8_TARGET_ARCH_X64)
31
-
32
- #include "codegen-inl.h"
33
- #include "ic-inl.h"
34
- #include "runtime.h"
35
- #include "stub-cache.h"
36
- #include "utils.h"
37
-
38
- namespace v8 {
39
- namespace internal {
40
-
41
- // ----------------------------------------------------------------------------
42
- // Static IC stub generators.
43
- //
44
-
45
- #define __ ACCESS_MASM(masm)
46
-
47
-
48
- static void GenerateGlobalInstanceTypeCheck(MacroAssembler* masm,
49
- Register type,
50
- Label* global_object) {
51
- // Register usage:
52
- // type: holds the receiver instance type on entry.
53
- __ cmpb(type, Immediate(JS_GLOBAL_OBJECT_TYPE));
54
- __ j(equal, global_object);
55
- __ cmpb(type, Immediate(JS_BUILTINS_OBJECT_TYPE));
56
- __ j(equal, global_object);
57
- __ cmpb(type, Immediate(JS_GLOBAL_PROXY_TYPE));
58
- __ j(equal, global_object);
59
- }
60
-
61
-
62
- // Generated code falls through if the receiver is a regular non-global
63
- // JS object with slow properties and no interceptors.
64
- static void GenerateStringDictionaryReceiverCheck(MacroAssembler* masm,
65
- Register receiver,
66
- Register r0,
67
- Register r1,
68
- Label* miss) {
69
- // Register usage:
70
- // receiver: holds the receiver on entry and is unchanged.
71
- // r0: used to hold receiver instance type.
72
- // Holds the property dictionary on fall through.
73
- // r1: used to hold receivers map.
74
-
75
- __ JumpIfSmi(receiver, miss);
76
-
77
- // Check that the receiver is a valid JS object.
78
- __ movq(r1, FieldOperand(receiver, HeapObject::kMapOffset));
79
- __ movb(r0, FieldOperand(r1, Map::kInstanceTypeOffset));
80
- __ cmpb(r0, Immediate(FIRST_JS_OBJECT_TYPE));
81
- __ j(below, miss);
82
-
83
- // If this assert fails, we have to check upper bound too.
84
- ASSERT(LAST_TYPE == JS_FUNCTION_TYPE);
85
-
86
- GenerateGlobalInstanceTypeCheck(masm, r0, miss);
87
-
88
- // Check for non-global object that requires access check.
89
- __ testb(FieldOperand(r1, Map::kBitFieldOffset),
90
- Immediate((1 << Map::kIsAccessCheckNeeded) |
91
- (1 << Map::kHasNamedInterceptor)));
92
- __ j(not_zero, miss);
93
-
94
- __ movq(r0, FieldOperand(receiver, JSObject::kPropertiesOffset));
95
- __ CompareRoot(FieldOperand(r0, HeapObject::kMapOffset),
96
- Heap::kHashTableMapRootIndex);
97
- __ j(not_equal, miss);
98
- }
99
-
100
-
101
- // Probe the string dictionary in the |elements| register. Jump to the
102
- // |done| label if a property with the given name is found leaving the
103
- // index into the dictionary in |r1|. Jump to the |miss| label
104
- // otherwise.
105
- static void GenerateStringDictionaryProbes(MacroAssembler* masm,
106
- Label* miss,
107
- Label* done,
108
- Register elements,
109
- Register name,
110
- Register r0,
111
- Register r1) {
112
- // Compute the capacity mask.
113
- const int kCapacityOffset =
114
- StringDictionary::kHeaderSize +
115
- StringDictionary::kCapacityIndex * kPointerSize;
116
- __ SmiToInteger32(r0, FieldOperand(elements, kCapacityOffset));
117
- __ decl(r0);
118
-
119
- // Generate an unrolled loop that performs a few probes before
120
- // giving up. Measurements done on Gmail indicate that 2 probes
121
- // cover ~93% of loads from dictionaries.
122
- static const int kProbes = 4;
123
- const int kElementsStartOffset =
124
- StringDictionary::kHeaderSize +
125
- StringDictionary::kElementsStartIndex * kPointerSize;
126
- for (int i = 0; i < kProbes; i++) {
127
- // Compute the masked index: (hash + i + i * i) & mask.
128
- __ movl(r1, FieldOperand(name, String::kHashFieldOffset));
129
- __ shrl(r1, Immediate(String::kHashShift));
130
- if (i > 0) {
131
- __ addl(r1, Immediate(StringDictionary::GetProbeOffset(i)));
132
- }
133
- __ and_(r1, r0);
134
-
135
- // Scale the index by multiplying by the entry size.
136
- ASSERT(StringDictionary::kEntrySize == 3);
137
- __ lea(r1, Operand(r1, r1, times_2, 0)); // r1 = r1 * 3
138
-
139
- // Check if the key is identical to the name.
140
- __ cmpq(name, Operand(elements, r1, times_pointer_size,
141
- kElementsStartOffset - kHeapObjectTag));
142
- if (i != kProbes - 1) {
143
- __ j(equal, done);
144
- } else {
145
- __ j(not_equal, miss);
146
- }
147
- }
148
- }
149
-
150
-
151
- // Helper function used to load a property from a dictionary backing storage.
152
- // This function may return false negatives, so miss_label
153
- // must always call a backup property load that is complete.
154
- // This function is safe to call if name is not a symbol, and will jump to
155
- // the miss_label in that case.
156
- // The generated code assumes that the receiver has slow properties,
157
- // is not a global object and does not have interceptors.
158
- static void GenerateDictionaryLoad(MacroAssembler* masm,
159
- Label* miss_label,
160
- Register elements,
161
- Register name,
162
- Register r0,
163
- Register r1,
164
- Register result) {
165
- // Register use:
166
- //
167
- // elements - holds the property dictionary on entry and is unchanged.
168
- //
169
- // name - holds the name of the property on entry and is unchanged.
170
- //
171
- // r0 - used to hold the capacity of the property dictionary.
172
- //
173
- // r1 - used to hold the index into the property dictionary.
174
- //
175
- // result - holds the result on exit if the load succeeded.
176
-
177
- Label done;
178
-
179
- // Probe the dictionary.
180
- GenerateStringDictionaryProbes(masm,
181
- miss_label,
182
- &done,
183
- elements,
184
- name,
185
- r0,
186
- r1);
187
-
188
- // If probing finds an entry in the dictionary, r0 contains the
189
- // index into the dictionary. Check that the value is a normal
190
- // property.
191
- __ bind(&done);
192
- const int kElementsStartOffset =
193
- StringDictionary::kHeaderSize +
194
- StringDictionary::kElementsStartIndex * kPointerSize;
195
- const int kDetailsOffset = kElementsStartOffset + 2 * kPointerSize;
196
- __ Test(Operand(elements, r1, times_pointer_size,
197
- kDetailsOffset - kHeapObjectTag),
198
- Smi::FromInt(PropertyDetails::TypeField::mask()));
199
- __ j(not_zero, miss_label);
200
-
201
- // Get the value at the masked, scaled index.
202
- const int kValueOffset = kElementsStartOffset + kPointerSize;
203
- __ movq(result,
204
- Operand(elements, r1, times_pointer_size,
205
- kValueOffset - kHeapObjectTag));
206
- }
207
-
208
-
209
- // Helper function used to store a property to a dictionary backing
210
- // storage. This function may fail to store a property even though it
211
- // is in the dictionary, so code at miss_label must always call a
212
- // backup property store that is complete. This function is safe to
213
- // call if name is not a symbol, and will jump to the miss_label in
214
- // that case. The generated code assumes that the receiver has slow
215
- // properties, is not a global object and does not have interceptors.
216
- static void GenerateDictionaryStore(MacroAssembler* masm,
217
- Label* miss_label,
218
- Register elements,
219
- Register name,
220
- Register value,
221
- Register scratch0,
222
- Register scratch1) {
223
- // Register use:
224
- //
225
- // elements - holds the property dictionary on entry and is clobbered.
226
- //
227
- // name - holds the name of the property on entry and is unchanged.
228
- //
229
- // value - holds the value to store and is unchanged.
230
- //
231
- // scratch0 - used for index into the property dictionary and is clobbered.
232
- //
233
- // scratch1 - used to hold the capacity of the property dictionary and is
234
- // clobbered.
235
- Label done;
236
-
237
- // Probe the dictionary.
238
- GenerateStringDictionaryProbes(masm,
239
- miss_label,
240
- &done,
241
- elements,
242
- name,
243
- scratch0,
244
- scratch1);
245
-
246
- // If probing finds an entry in the dictionary, scratch0 contains the
247
- // index into the dictionary. Check that the value is a normal
248
- // property that is not read only.
249
- __ bind(&done);
250
- const int kElementsStartOffset =
251
- StringDictionary::kHeaderSize +
252
- StringDictionary::kElementsStartIndex * kPointerSize;
253
- const int kDetailsOffset = kElementsStartOffset + 2 * kPointerSize;
254
- const int kTypeAndReadOnlyMask
255
- = (PropertyDetails::TypeField::mask() |
256
- PropertyDetails::AttributesField::encode(READ_ONLY)) << kSmiTagSize;
257
- __ Test(Operand(elements,
258
- scratch1,
259
- times_pointer_size,
260
- kDetailsOffset - kHeapObjectTag),
261
- Smi::FromInt(kTypeAndReadOnlyMask));
262
- __ j(not_zero, miss_label);
263
-
264
- // Store the value at the masked, scaled index.
265
- const int kValueOffset = kElementsStartOffset + kPointerSize;
266
- __ lea(scratch1, Operand(elements,
267
- scratch1,
268
- times_pointer_size,
269
- kValueOffset - kHeapObjectTag));
270
- __ movq(Operand(scratch1, 0), value);
271
-
272
- // Update write barrier. Make sure not to clobber the value.
273
- __ movq(scratch0, value);
274
- __ RecordWrite(elements, scratch1, scratch0);
275
- }
276
-
277
-
278
- static void GenerateNumberDictionaryLoad(MacroAssembler* masm,
279
- Label* miss,
280
- Register elements,
281
- Register key,
282
- Register r0,
283
- Register r1,
284
- Register r2,
285
- Register result) {
286
- // Register use:
287
- //
288
- // elements - holds the slow-case elements of the receiver on entry.
289
- // Unchanged unless 'result' is the same register.
290
- //
291
- // key - holds the smi key on entry.
292
- // Unchanged unless 'result' is the same register.
293
- //
294
- // Scratch registers:
295
- //
296
- // r0 - holds the untagged key on entry and holds the hash once computed.
297
- //
298
- // r1 - used to hold the capacity mask of the dictionary
299
- //
300
- // r2 - used for the index into the dictionary.
301
- //
302
- // result - holds the result on exit if the load succeeded.
303
- // Allowed to be the same as 'key' or 'result'.
304
- // Unchanged on bailout so 'key' or 'result' can be used
305
- // in further computation.
306
-
307
- Label done;
308
-
309
- // Compute the hash code from the untagged key. This must be kept in sync
310
- // with ComputeIntegerHash in utils.h.
311
- //
312
- // hash = ~hash + (hash << 15);
313
- __ movl(r1, r0);
314
- __ notl(r0);
315
- __ shll(r1, Immediate(15));
316
- __ addl(r0, r1);
317
- // hash = hash ^ (hash >> 12);
318
- __ movl(r1, r0);
319
- __ shrl(r1, Immediate(12));
320
- __ xorl(r0, r1);
321
- // hash = hash + (hash << 2);
322
- __ leal(r0, Operand(r0, r0, times_4, 0));
323
- // hash = hash ^ (hash >> 4);
324
- __ movl(r1, r0);
325
- __ shrl(r1, Immediate(4));
326
- __ xorl(r0, r1);
327
- // hash = hash * 2057;
328
- __ imull(r0, r0, Immediate(2057));
329
- // hash = hash ^ (hash >> 16);
330
- __ movl(r1, r0);
331
- __ shrl(r1, Immediate(16));
332
- __ xorl(r0, r1);
333
-
334
- // Compute capacity mask.
335
- __ SmiToInteger32(r1,
336
- FieldOperand(elements, NumberDictionary::kCapacityOffset));
337
- __ decl(r1);
338
-
339
- // Generate an unrolled loop that performs a few probes before giving up.
340
- const int kProbes = 4;
341
- for (int i = 0; i < kProbes; i++) {
342
- // Use r2 for index calculations and keep the hash intact in r0.
343
- __ movq(r2, r0);
344
- // Compute the masked index: (hash + i + i * i) & mask.
345
- if (i > 0) {
346
- __ addl(r2, Immediate(NumberDictionary::GetProbeOffset(i)));
347
- }
348
- __ and_(r2, r1);
349
-
350
- // Scale the index by multiplying by the entry size.
351
- ASSERT(NumberDictionary::kEntrySize == 3);
352
- __ lea(r2, Operand(r2, r2, times_2, 0)); // r2 = r2 * 3
353
-
354
- // Check if the key matches.
355
- __ cmpq(key, FieldOperand(elements,
356
- r2,
357
- times_pointer_size,
358
- NumberDictionary::kElementsStartOffset));
359
- if (i != (kProbes - 1)) {
360
- __ j(equal, &done);
361
- } else {
362
- __ j(not_equal, miss);
363
- }
364
- }
365
-
366
- __ bind(&done);
367
- // Check that the value is a normal propety.
368
- const int kDetailsOffset =
369
- NumberDictionary::kElementsStartOffset + 2 * kPointerSize;
370
- ASSERT_EQ(NORMAL, 0);
371
- __ Test(FieldOperand(elements, r2, times_pointer_size, kDetailsOffset),
372
- Smi::FromInt(PropertyDetails::TypeField::mask()));
373
- __ j(not_zero, miss);
374
-
375
- // Get the value at the masked, scaled index.
376
- const int kValueOffset =
377
- NumberDictionary::kElementsStartOffset + kPointerSize;
378
- __ movq(result, FieldOperand(elements, r2, times_pointer_size, kValueOffset));
379
- }
380
-
381
-
382
- // One byte opcode for test rax,0xXXXXXXXX.
383
- static const byte kTestEaxByte = 0xA9;
384
-
385
-
386
- static bool PatchInlinedMapCheck(Address address, Object* map) {
387
- // Arguments are address of start of call sequence that called
388
- // the IC,
389
- Address test_instruction_address =
390
- address + Assembler::kCallTargetAddressOffset;
391
- // The keyed load has a fast inlined case if the IC call instruction
392
- // is immediately followed by a test instruction.
393
- if (*test_instruction_address != kTestEaxByte) return false;
394
-
395
- // Fetch the offset from the test instruction to the map compare
396
- // instructions (starting with the 64-bit immediate mov of the map
397
- // address). This offset is stored in the last 4 bytes of the 5
398
- // byte test instruction.
399
- Address delta_address = test_instruction_address + 1;
400
- int delta = *reinterpret_cast<int*>(delta_address);
401
- // Compute the map address. The map address is in the last 8 bytes
402
- // of the 10-byte immediate mov instruction (incl. REX prefix), so we add 2
403
- // to the offset to get the map address.
404
- Address map_address = test_instruction_address + delta + 2;
405
- // Patch the map check.
406
- *(reinterpret_cast<Object**>(map_address)) = map;
407
- return true;
408
- }
409
-
410
-
411
- bool KeyedLoadIC::PatchInlinedLoad(Address address, Object* map) {
412
- return PatchInlinedMapCheck(address, map);
413
- }
414
-
415
-
416
- bool KeyedStoreIC::PatchInlinedStore(Address address, Object* map) {
417
- return PatchInlinedMapCheck(address, map);
418
- }
419
-
420
-
421
- void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
422
- // ----------- S t a t e -------------
423
- // -- rax : key
424
- // -- rdx : receiver
425
- // -- rsp[0] : return address
426
- // -----------------------------------
427
-
428
- __ IncrementCounter(&Counters::keyed_load_miss, 1);
429
-
430
- __ pop(rbx);
431
- __ push(rdx); // receiver
432
- __ push(rax); // name
433
- __ push(rbx); // return address
434
-
435
- // Perform tail call to the entry.
436
- ExternalReference ref = ExternalReference(IC_Utility(kKeyedLoadIC_Miss));
437
- __ TailCallExternalReference(ref, 2, 1);
438
- }
439
-
440
-
441
- void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
442
- // ----------- S t a t e -------------
443
- // -- rax : key
444
- // -- rdx : receiver
445
- // -- rsp[0] : return address
446
- // -----------------------------------
447
-
448
- __ pop(rbx);
449
- __ push(rdx); // receiver
450
- __ push(rax); // name
451
- __ push(rbx); // return address
452
-
453
- // Perform tail call to the entry.
454
- __ TailCallRuntime(Runtime::kKeyedGetProperty, 2, 1);
455
- }
456
-
457
-
458
- // Checks the receiver for special cases (value type, slow case bits).
459
- // Falls through for regular JS object.
460
- static void GenerateKeyedLoadReceiverCheck(MacroAssembler* masm,
461
- Register receiver,
462
- Register map,
463
- int interceptor_bit,
464
- Label* slow) {
465
- // Register use:
466
- // receiver - holds the receiver and is unchanged.
467
- // Scratch registers:
468
- // map - used to hold the map of the receiver.
469
-
470
- // Check that the object isn't a smi.
471
- __ JumpIfSmi(receiver, slow);
472
-
473
- // Check that the object is some kind of JS object EXCEPT JS Value type.
474
- // In the case that the object is a value-wrapper object,
475
- // we enter the runtime system to make sure that indexing
476
- // into string objects work as intended.
477
- ASSERT(JS_OBJECT_TYPE > JS_VALUE_TYPE);
478
- __ CmpObjectType(receiver, JS_OBJECT_TYPE, map);
479
- __ j(below, slow);
480
-
481
- // Check bit field.
482
- __ testb(FieldOperand(map, Map::kBitFieldOffset),
483
- Immediate((1 << Map::kIsAccessCheckNeeded) |
484
- (1 << interceptor_bit)));
485
- __ j(not_zero, slow);
486
- }
487
-
488
-
489
- // Loads an indexed element from a fast case array.
490
- static void GenerateFastArrayLoad(MacroAssembler* masm,
491
- Register receiver,
492
- Register key,
493
- Register elements,
494
- Register scratch,
495
- Register result,
496
- Label* not_fast_array,
497
- Label* out_of_range) {
498
- // Register use:
499
- //
500
- // receiver - holds the receiver on entry.
501
- // Unchanged unless 'result' is the same register.
502
- //
503
- // key - holds the smi key on entry.
504
- // Unchanged unless 'result' is the same register.
505
- //
506
- // elements - holds the elements of the receiver on exit.
507
- //
508
- // result - holds the result on exit if the load succeeded.
509
- // Allowed to be the the same as 'receiver' or 'key'.
510
- // Unchanged on bailout so 'receiver' and 'key' can be safely
511
- // used by further computation.
512
- //
513
- // Scratch registers:
514
- //
515
- // scratch - used to hold elements of the receiver and the loaded value.
516
-
517
- __ movq(elements, FieldOperand(receiver, JSObject::kElementsOffset));
518
- // Check that the object is in fast mode (not dictionary).
519
- __ CompareRoot(FieldOperand(elements, HeapObject::kMapOffset),
520
- Heap::kFixedArrayMapRootIndex);
521
- __ j(not_equal, not_fast_array);
522
- // Check that the key (index) is within bounds.
523
- __ SmiCompare(key, FieldOperand(elements, FixedArray::kLengthOffset));
524
- // Unsigned comparison rejects negative indices.
525
- __ j(above_equal, out_of_range);
526
- // Fast case: Do the load.
527
- SmiIndex index = masm->SmiToIndex(scratch, key, kPointerSizeLog2);
528
- __ movq(scratch, FieldOperand(elements,
529
- index.reg,
530
- index.scale,
531
- FixedArray::kHeaderSize));
532
- __ CompareRoot(scratch, Heap::kTheHoleValueRootIndex);
533
- // In case the loaded value is the_hole we have to consult GetProperty
534
- // to ensure the prototype chain is searched.
535
- __ j(equal, out_of_range);
536
- if (!result.is(scratch)) {
537
- __ movq(result, scratch);
538
- }
539
- }
540
-
541
-
542
- // Checks whether a key is an array index string or a symbol string.
543
- // Falls through if the key is a symbol.
544
- static void GenerateKeyStringCheck(MacroAssembler* masm,
545
- Register key,
546
- Register map,
547
- Register hash,
548
- Label* index_string,
549
- Label* not_symbol) {
550
- // Register use:
551
- // key - holds the key and is unchanged. Assumed to be non-smi.
552
- // Scratch registers:
553
- // map - used to hold the map of the key.
554
- // hash - used to hold the hash of the key.
555
- __ CmpObjectType(key, FIRST_NONSTRING_TYPE, map);
556
- __ j(above_equal, not_symbol);
557
- // Is the string an array index, with cached numeric value?
558
- __ movl(hash, FieldOperand(key, String::kHashFieldOffset));
559
- __ testl(hash, Immediate(String::kContainsCachedArrayIndexMask));
560
- __ j(zero, index_string); // The value in hash is used at jump target.
561
-
562
- // Is the string a symbol?
563
- ASSERT(kSymbolTag != 0);
564
- __ testb(FieldOperand(map, Map::kInstanceTypeOffset),
565
- Immediate(kIsSymbolMask));
566
- __ j(zero, not_symbol);
567
- }
568
-
569
-
570
- // Picks out an array index from the hash field.
571
- static void GenerateIndexFromHash(MacroAssembler* masm,
572
- Register key,
573
- Register hash) {
574
- // Register use:
575
- // key - holds the overwritten key on exit.
576
- // hash - holds the key's hash. Clobbered.
577
-
578
- // The assert checks that the constants for the maximum number of digits
579
- // for an array index cached in the hash field and the number of bits
580
- // reserved for it does not conflict.
581
- ASSERT(TenToThe(String::kMaxCachedArrayIndexLength) <
582
- (1 << String::kArrayIndexValueBits));
583
- // We want the smi-tagged index in key. Even if we subsequently go to
584
- // the slow case, converting the key to a smi is always valid.
585
- // key: string key
586
- // hash: key's hash field, including its array index value.
587
- __ and_(hash, Immediate(String::kArrayIndexValueMask));
588
- __ shr(hash, Immediate(String::kHashShift));
589
- // Here we actually clobber the key which will be used if calling into
590
- // runtime later. However as the new key is the numeric value of a string key
591
- // there is no difference in using either key.
592
- __ Integer32ToSmi(key, hash);
593
- }
594
-
595
-
596
- void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) {
597
- // ----------- S t a t e -------------
598
- // -- rax : key
599
- // -- rdx : receiver
600
- // -- rsp[0] : return address
601
- // -----------------------------------
602
- Label slow, check_string, index_smi, index_string;
603
- Label check_pixel_array, probe_dictionary, check_number_dictionary;
604
-
605
- // Check that the key is a smi.
606
- __ JumpIfNotSmi(rax, &check_string);
607
- __ bind(&index_smi);
608
- // Now the key is known to be a smi. This place is also jumped to from below
609
- // where a numeric string is converted to a smi.
610
-
611
- GenerateKeyedLoadReceiverCheck(
612
- masm, rdx, rcx, Map::kHasIndexedInterceptor, &slow);
613
-
614
- GenerateFastArrayLoad(masm,
615
- rdx,
616
- rax,
617
- rcx,
618
- rbx,
619
- rax,
620
- &check_pixel_array,
621
- &slow);
622
- __ IncrementCounter(&Counters::keyed_load_generic_smi, 1);
623
- __ ret(0);
624
-
625
- __ bind(&check_pixel_array);
626
- // Check whether the elements object is a pixel array.
627
- // rdx: receiver
628
- // rax: key
629
- // rcx: elements array
630
- __ SmiToInteger32(rbx, rax); // Used on both directions of next branch.
631
- __ CompareRoot(FieldOperand(rcx, HeapObject::kMapOffset),
632
- Heap::kPixelArrayMapRootIndex);
633
- __ j(not_equal, &check_number_dictionary);
634
- __ cmpl(rbx, FieldOperand(rcx, PixelArray::kLengthOffset));
635
- __ j(above_equal, &slow);
636
- __ movq(rax, FieldOperand(rcx, PixelArray::kExternalPointerOffset));
637
- __ movzxbq(rax, Operand(rax, rbx, times_1, 0));
638
- __ Integer32ToSmi(rax, rax);
639
- __ ret(0);
640
-
641
- __ bind(&check_number_dictionary);
642
- // Check whether the elements is a number dictionary.
643
- // rdx: receiver
644
- // rax: key
645
- // rbx: key as untagged int32
646
- // rcx: elements
647
- __ CompareRoot(FieldOperand(rcx, HeapObject::kMapOffset),
648
- Heap::kHashTableMapRootIndex);
649
- __ j(not_equal, &slow);
650
- GenerateNumberDictionaryLoad(masm, &slow, rcx, rax, rbx, r9, rdi, rax);
651
- __ ret(0);
652
-
653
- __ bind(&slow);
654
- // Slow case: Jump to runtime.
655
- // rdx: receiver
656
- // rax: key
657
- __ IncrementCounter(&Counters::keyed_load_generic_slow, 1);
658
- GenerateRuntimeGetProperty(masm);
659
-
660
- __ bind(&check_string);
661
- GenerateKeyStringCheck(masm, rax, rcx, rbx, &index_string, &slow);
662
-
663
- GenerateKeyedLoadReceiverCheck(
664
- masm, rdx, rcx, Map::kHasNamedInterceptor, &slow);
665
-
666
- // If the receiver is a fast-case object, check the keyed lookup
667
- // cache. Otherwise probe the dictionary leaving result in rcx.
668
- __ movq(rbx, FieldOperand(rdx, JSObject::kPropertiesOffset));
669
- __ CompareRoot(FieldOperand(rbx, HeapObject::kMapOffset),
670
- Heap::kHashTableMapRootIndex);
671
- __ j(equal, &probe_dictionary);
672
-
673
- // Load the map of the receiver, compute the keyed lookup cache hash
674
- // based on 32 bits of the map pointer and the string hash.
675
- __ movq(rbx, FieldOperand(rdx, HeapObject::kMapOffset));
676
- __ movl(rcx, rbx);
677
- __ shr(rcx, Immediate(KeyedLookupCache::kMapHashShift));
678
- __ movl(rdi, FieldOperand(rax, String::kHashFieldOffset));
679
- __ shr(rdi, Immediate(String::kHashShift));
680
- __ xor_(rcx, rdi);
681
- __ and_(rcx, Immediate(KeyedLookupCache::kCapacityMask));
682
-
683
- // Load the key (consisting of map and symbol) from the cache and
684
- // check for match.
685
- ExternalReference cache_keys
686
- = ExternalReference::keyed_lookup_cache_keys();
687
- __ movq(rdi, rcx);
688
- __ shl(rdi, Immediate(kPointerSizeLog2 + 1));
689
- __ movq(kScratchRegister, cache_keys);
690
- __ cmpq(rbx, Operand(kScratchRegister, rdi, times_1, 0));
691
- __ j(not_equal, &slow);
692
- __ cmpq(rax, Operand(kScratchRegister, rdi, times_1, kPointerSize));
693
- __ j(not_equal, &slow);
694
-
695
- // Get field offset which is a 32-bit integer and check that it is
696
- // an in-object property.
697
- ExternalReference cache_field_offsets
698
- = ExternalReference::keyed_lookup_cache_field_offsets();
699
- __ movq(kScratchRegister, cache_field_offsets);
700
- __ movl(rdi, Operand(kScratchRegister, rcx, times_4, 0));
701
- __ movzxbq(rcx, FieldOperand(rbx, Map::kInObjectPropertiesOffset));
702
- __ subq(rdi, rcx);
703
- __ j(above_equal, &slow);
704
-
705
- // Load in-object property.
706
- __ movzxbq(rcx, FieldOperand(rbx, Map::kInstanceSizeOffset));
707
- __ addq(rcx, rdi);
708
- __ movq(rax, FieldOperand(rdx, rcx, times_pointer_size, 0));
709
- __ IncrementCounter(&Counters::keyed_load_generic_lookup_cache, 1);
710
- __ ret(0);
711
-
712
- // Do a quick inline probe of the receiver's dictionary, if it
713
- // exists.
714
- __ bind(&probe_dictionary);
715
- // rdx: receiver
716
- // rax: key
717
- // rbx: elements
718
-
719
- __ movq(rcx, FieldOperand(rdx, JSObject::kMapOffset));
720
- __ movb(rcx, FieldOperand(rcx, Map::kInstanceTypeOffset));
721
- GenerateGlobalInstanceTypeCheck(masm, rcx, &slow);
722
-
723
- GenerateDictionaryLoad(masm, &slow, rbx, rax, rcx, rdi, rax);
724
- __ IncrementCounter(&Counters::keyed_load_generic_symbol, 1);
725
- __ ret(0);
726
-
727
- __ bind(&index_string);
728
- GenerateIndexFromHash(masm, rax, rbx);
729
- __ jmp(&index_smi);
730
- }
731
-
732
-
733
- void KeyedLoadIC::GenerateString(MacroAssembler* masm) {
734
- // ----------- S t a t e -------------
735
- // -- rax : key
736
- // -- rdx : receiver
737
- // -- rsp[0] : return address
738
- // -----------------------------------
739
- Label miss;
740
- Label index_out_of_range;
741
-
742
- Register receiver = rdx;
743
- Register index = rax;
744
- Register scratch1 = rbx;
745
- Register scratch2 = rcx;
746
- Register result = rax;
747
-
748
- StringCharAtGenerator char_at_generator(receiver,
749
- index,
750
- scratch1,
751
- scratch2,
752
- result,
753
- &miss, // When not a string.
754
- &miss, // When not a number.
755
- &index_out_of_range,
756
- STRING_INDEX_IS_ARRAY_INDEX);
757
- char_at_generator.GenerateFast(masm);
758
- __ ret(0);
759
-
760
- ICRuntimeCallHelper call_helper;
761
- char_at_generator.GenerateSlow(masm, call_helper);
762
-
763
- __ bind(&index_out_of_range);
764
- __ LoadRoot(rax, Heap::kUndefinedValueRootIndex);
765
- __ ret(0);
766
-
767
- __ bind(&miss);
768
- GenerateMiss(masm);
769
- }
770
-
771
-
772
- void KeyedLoadIC::GenerateExternalArray(MacroAssembler* masm,
773
- ExternalArrayType array_type) {
774
- // ----------- S t a t e -------------
775
- // -- rax : key
776
- // -- rdx : receiver
777
- // -- rsp[0] : return address
778
- // -----------------------------------
779
- Label slow;
780
-
781
- // Check that the object isn't a smi.
782
- __ JumpIfSmi(rdx, &slow);
783
-
784
- // Check that the key is a smi.
785
- __ JumpIfNotSmi(rax, &slow);
786
-
787
- // Check that the object is a JS object.
788
- __ CmpObjectType(rdx, JS_OBJECT_TYPE, rcx);
789
- __ j(not_equal, &slow);
790
- // Check that the receiver does not require access checks. We need
791
- // to check this explicitly since this generic stub does not perform
792
- // map checks. The map is already in rdx.
793
- __ testb(FieldOperand(rcx, Map::kBitFieldOffset),
794
- Immediate(1 << Map::kIsAccessCheckNeeded));
795
- __ j(not_zero, &slow);
796
-
797
- // Check that the elements array is the appropriate type of
798
- // ExternalArray.
799
- // rax: index (as a smi)
800
- // rdx: JSObject
801
- __ movq(rbx, FieldOperand(rdx, JSObject::kElementsOffset));
802
- __ CompareRoot(FieldOperand(rbx, HeapObject::kMapOffset),
803
- Heap::RootIndexForExternalArrayType(array_type));
804
- __ j(not_equal, &slow);
805
-
806
- // Check that the index is in range.
807
- __ SmiToInteger32(rcx, rax);
808
- __ cmpl(rcx, FieldOperand(rbx, ExternalArray::kLengthOffset));
809
- // Unsigned comparison catches both negative and too-large values.
810
- __ j(above_equal, &slow);
811
-
812
- // rax: index (as a smi)
813
- // rdx: receiver (JSObject)
814
- // rcx: untagged index
815
- // rbx: elements array
816
- __ movq(rbx, FieldOperand(rbx, ExternalArray::kExternalPointerOffset));
817
- // rbx: base pointer of external storage
818
- switch (array_type) {
819
- case kExternalByteArray:
820
- __ movsxbq(rcx, Operand(rbx, rcx, times_1, 0));
821
- break;
822
- case kExternalUnsignedByteArray:
823
- __ movzxbq(rcx, Operand(rbx, rcx, times_1, 0));
824
- break;
825
- case kExternalShortArray:
826
- __ movsxwq(rcx, Operand(rbx, rcx, times_2, 0));
827
- break;
828
- case kExternalUnsignedShortArray:
829
- __ movzxwq(rcx, Operand(rbx, rcx, times_2, 0));
830
- break;
831
- case kExternalIntArray:
832
- __ movsxlq(rcx, Operand(rbx, rcx, times_4, 0));
833
- break;
834
- case kExternalUnsignedIntArray:
835
- __ movl(rcx, Operand(rbx, rcx, times_4, 0));
836
- break;
837
- case kExternalFloatArray:
838
- __ cvtss2sd(xmm0, Operand(rbx, rcx, times_4, 0));
839
- break;
840
- default:
841
- UNREACHABLE();
842
- break;
843
- }
844
-
845
- // rax: index
846
- // rdx: receiver
847
- // For integer array types:
848
- // rcx: value
849
- // For floating-point array type:
850
- // xmm0: value as double.
851
-
852
- ASSERT(kSmiValueSize == 32);
853
- if (array_type == kExternalUnsignedIntArray) {
854
- // For the UnsignedInt array type, we need to see whether
855
- // the value can be represented in a Smi. If not, we need to convert
856
- // it to a HeapNumber.
857
- Label box_int;
858
-
859
- __ JumpIfUIntNotValidSmiValue(rcx, &box_int);
860
-
861
- __ Integer32ToSmi(rax, rcx);
862
- __ ret(0);
863
-
864
- __ bind(&box_int);
865
-
866
- // Allocate a HeapNumber for the int and perform int-to-double
867
- // conversion.
868
- // The value is zero-extended since we loaded the value from memory
869
- // with movl.
870
- __ cvtqsi2sd(xmm0, rcx);
871
-
872
- __ AllocateHeapNumber(rcx, rbx, &slow);
873
- // Set the value.
874
- __ movsd(FieldOperand(rcx, HeapNumber::kValueOffset), xmm0);
875
- __ movq(rax, rcx);
876
- __ ret(0);
877
- } else if (array_type == kExternalFloatArray) {
878
- // For the floating-point array type, we need to always allocate a
879
- // HeapNumber.
880
- __ AllocateHeapNumber(rcx, rbx, &slow);
881
- // Set the value.
882
- __ movsd(FieldOperand(rcx, HeapNumber::kValueOffset), xmm0);
883
- __ movq(rax, rcx);
884
- __ ret(0);
885
- } else {
886
- __ Integer32ToSmi(rax, rcx);
887
- __ ret(0);
888
- }
889
-
890
- // Slow case: Jump to runtime.
891
- __ bind(&slow);
892
- __ IncrementCounter(&Counters::keyed_load_external_array_slow, 1);
893
- GenerateRuntimeGetProperty(masm);
894
- }
895
-
896
-
897
- void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) {
898
- // ----------- S t a t e -------------
899
- // -- rax : key
900
- // -- rdx : receiver
901
- // -- rsp[0] : return address
902
- // -----------------------------------
903
- Label slow;
904
-
905
- // Check that the receiver isn't a smi.
906
- __ JumpIfSmi(rdx, &slow);
907
-
908
- // Check that the key is a smi.
909
- __ JumpIfNotSmi(rax, &slow);
910
-
911
- // Get the map of the receiver.
912
- __ movq(rcx, FieldOperand(rdx, HeapObject::kMapOffset));
913
-
914
- // Check that it has indexed interceptor and access checks
915
- // are not enabled for this object.
916
- __ movb(rcx, FieldOperand(rcx, Map::kBitFieldOffset));
917
- __ andb(rcx, Immediate(kSlowCaseBitFieldMask));
918
- __ cmpb(rcx, Immediate(1 << Map::kHasIndexedInterceptor));
919
- __ j(not_zero, &slow);
920
-
921
- // Everything is fine, call runtime.
922
- __ pop(rcx);
923
- __ push(rdx); // receiver
924
- __ push(rax); // key
925
- __ push(rcx); // return address
926
-
927
- // Perform tail call to the entry.
928
- __ TailCallExternalReference(ExternalReference(
929
- IC_Utility(kKeyedLoadPropertyWithInterceptor)), 2, 1);
930
-
931
- __ bind(&slow);
932
- GenerateMiss(masm);
933
- }
934
-
935
-
936
- void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
937
- // ----------- S t a t e -------------
938
- // -- rax : value
939
- // -- rcx : key
940
- // -- rdx : receiver
941
- // -- rsp[0] : return address
942
- // -----------------------------------
943
-
944
- __ pop(rbx);
945
- __ push(rdx); // receiver
946
- __ push(rcx); // key
947
- __ push(rax); // value
948
- __ push(rbx); // return address
949
-
950
- // Do tail-call to runtime routine.
951
- ExternalReference ref = ExternalReference(IC_Utility(kKeyedStoreIC_Miss));
952
- __ TailCallExternalReference(ref, 3, 1);
953
- }
954
-
955
-
956
- void KeyedStoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm) {
957
- // ----------- S t a t e -------------
958
- // -- rax : value
959
- // -- rcx : key
960
- // -- rdx : receiver
961
- // -- rsp[0] : return address
962
- // -----------------------------------
963
-
964
- __ pop(rbx);
965
- __ push(rdx); // receiver
966
- __ push(rcx); // key
967
- __ push(rax); // value
968
- __ push(rbx); // return address
969
-
970
- // Do tail-call to runtime routine.
971
- __ TailCallRuntime(Runtime::kSetProperty, 3, 1);
972
- }
973
-
974
-
975
- void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm) {
976
- // ----------- S t a t e -------------
977
- // -- rax : value
978
- // -- rcx : key
979
- // -- rdx : receiver
980
- // -- rsp[0] : return address
981
- // -----------------------------------
982
- Label slow, slow_with_tagged_index, fast, array, extra, check_pixel_array;
983
-
984
- // Check that the object isn't a smi.
985
- __ JumpIfSmi(rdx, &slow_with_tagged_index);
986
- // Get the map from the receiver.
987
- __ movq(rbx, FieldOperand(rdx, HeapObject::kMapOffset));
988
- // Check that the receiver does not require access checks. We need
989
- // to do this because this generic stub does not perform map checks.
990
- __ testb(FieldOperand(rbx, Map::kBitFieldOffset),
991
- Immediate(1 << Map::kIsAccessCheckNeeded));
992
- __ j(not_zero, &slow_with_tagged_index);
993
- // Check that the key is a smi.
994
- __ JumpIfNotSmi(rcx, &slow_with_tagged_index);
995
- __ SmiToInteger32(rcx, rcx);
996
-
997
- __ CmpInstanceType(rbx, JS_ARRAY_TYPE);
998
- __ j(equal, &array);
999
- // Check that the object is some kind of JS object.
1000
- __ CmpInstanceType(rbx, FIRST_JS_OBJECT_TYPE);
1001
- __ j(below, &slow);
1002
-
1003
- // Object case: Check key against length in the elements array.
1004
- // rax: value
1005
- // rdx: JSObject
1006
- // rcx: index
1007
- __ movq(rbx, FieldOperand(rdx, JSObject::kElementsOffset));
1008
- // Check that the object is in fast mode (not dictionary).
1009
- __ CompareRoot(FieldOperand(rbx, HeapObject::kMapOffset),
1010
- Heap::kFixedArrayMapRootIndex);
1011
- __ j(not_equal, &check_pixel_array);
1012
- __ SmiCompareInteger32(FieldOperand(rbx, FixedArray::kLengthOffset), rcx);
1013
- // rax: value
1014
- // rbx: FixedArray
1015
- // rcx: index
1016
- __ j(above, &fast);
1017
-
1018
- // Slow case: call runtime.
1019
- __ bind(&slow);
1020
- __ Integer32ToSmi(rcx, rcx);
1021
- __ bind(&slow_with_tagged_index);
1022
- GenerateRuntimeSetProperty(masm);
1023
- // Never returns to here.
1024
-
1025
- // Check whether the elements is a pixel array.
1026
- // rax: value
1027
- // rdx: receiver
1028
- // rbx: receiver's elements array
1029
- // rcx: index, zero-extended.
1030
- __ bind(&check_pixel_array);
1031
- __ CompareRoot(FieldOperand(rbx, HeapObject::kMapOffset),
1032
- Heap::kPixelArrayMapRootIndex);
1033
- __ j(not_equal, &slow);
1034
- // Check that the value is a smi. If a conversion is needed call into the
1035
- // runtime to convert and clamp.
1036
- __ JumpIfNotSmi(rax, &slow);
1037
- __ cmpl(rcx, FieldOperand(rbx, PixelArray::kLengthOffset));
1038
- __ j(above_equal, &slow);
1039
- // No more bailouts to slow case on this path, so key not needed.
1040
- __ SmiToInteger32(rdi, rax);
1041
- { // Clamp the value to [0..255].
1042
- Label done;
1043
- __ testl(rdi, Immediate(0xFFFFFF00));
1044
- __ j(zero, &done);
1045
- __ setcc(negative, rdi); // 1 if negative, 0 if positive.
1046
- __ decb(rdi); // 0 if negative, 255 if positive.
1047
- __ bind(&done);
1048
- }
1049
- __ movq(rbx, FieldOperand(rbx, PixelArray::kExternalPointerOffset));
1050
- __ movb(Operand(rbx, rcx, times_1, 0), rdi);
1051
- __ ret(0);
1052
-
1053
- // Extra capacity case: Check if there is extra capacity to
1054
- // perform the store and update the length. Used for adding one
1055
- // element to the array by writing to array[array.length].
1056
- __ bind(&extra);
1057
- // rax: value
1058
- // rdx: receiver (a JSArray)
1059
- // rbx: receiver's elements array (a FixedArray)
1060
- // rcx: index
1061
- // flags: smicompare (rdx.length(), rbx)
1062
- __ j(not_equal, &slow); // do not leave holes in the array
1063
- __ SmiCompareInteger32(FieldOperand(rbx, FixedArray::kLengthOffset), rcx);
1064
- __ j(below_equal, &slow);
1065
- // Increment index to get new length.
1066
- __ leal(rdi, Operand(rcx, 1));
1067
- __ Integer32ToSmiField(FieldOperand(rdx, JSArray::kLengthOffset), rdi);
1068
- __ jmp(&fast);
1069
-
1070
- // Array case: Get the length and the elements array from the JS
1071
- // array. Check that the array is in fast mode; if it is the
1072
- // length is always a smi.
1073
- __ bind(&array);
1074
- // rax: value
1075
- // rdx: receiver (a JSArray)
1076
- // rcx: index
1077
- __ movq(rbx, FieldOperand(rdx, JSObject::kElementsOffset));
1078
- __ CompareRoot(FieldOperand(rbx, HeapObject::kMapOffset),
1079
- Heap::kFixedArrayMapRootIndex);
1080
- __ j(not_equal, &slow);
1081
-
1082
- // Check the key against the length in the array, compute the
1083
- // address to store into and fall through to fast case.
1084
- __ SmiCompareInteger32(FieldOperand(rdx, JSArray::kLengthOffset), rcx);
1085
- __ j(below_equal, &extra);
1086
-
1087
- // Fast case: Do the store.
1088
- __ bind(&fast);
1089
- // rax: value
1090
- // rbx: receiver's elements array (a FixedArray)
1091
- // rcx: index
1092
- Label non_smi_value;
1093
- __ movq(FieldOperand(rbx, rcx, times_pointer_size, FixedArray::kHeaderSize),
1094
- rax);
1095
- __ JumpIfNotSmi(rax, &non_smi_value);
1096
- __ ret(0);
1097
- __ bind(&non_smi_value);
1098
- // Slow case that needs to retain rcx for use by RecordWrite.
1099
- // Update write barrier for the elements array address.
1100
- __ movq(rdx, rax);
1101
- __ RecordWriteNonSmi(rbx, 0, rdx, rcx);
1102
- __ ret(0);
1103
- }
1104
-
1105
-
1106
- void KeyedStoreIC::GenerateExternalArray(MacroAssembler* masm,
1107
- ExternalArrayType array_type) {
1108
- // ----------- S t a t e -------------
1109
- // -- rax : value
1110
- // -- rcx : key
1111
- // -- rdx : receiver
1112
- // -- rsp[0] : return address
1113
- // -----------------------------------
1114
- Label slow, check_heap_number;
1115
-
1116
- // Check that the object isn't a smi.
1117
- __ JumpIfSmi(rdx, &slow);
1118
- // Get the map from the receiver.
1119
- __ movq(rbx, FieldOperand(rdx, HeapObject::kMapOffset));
1120
- // Check that the receiver does not require access checks. We need
1121
- // to do this because this generic stub does not perform map checks.
1122
- __ testb(FieldOperand(rbx, Map::kBitFieldOffset),
1123
- Immediate(1 << Map::kIsAccessCheckNeeded));
1124
- __ j(not_zero, &slow);
1125
- // Check that the key is a smi.
1126
- __ JumpIfNotSmi(rcx, &slow);
1127
-
1128
- // Check that the object is a JS object.
1129
- __ CmpInstanceType(rbx, JS_OBJECT_TYPE);
1130
- __ j(not_equal, &slow);
1131
-
1132
- // Check that the elements array is the appropriate type of
1133
- // ExternalArray.
1134
- // rax: value
1135
- // rcx: key (a smi)
1136
- // rdx: receiver (a JSObject)
1137
- __ movq(rbx, FieldOperand(rdx, JSObject::kElementsOffset));
1138
- __ CompareRoot(FieldOperand(rbx, HeapObject::kMapOffset),
1139
- Heap::RootIndexForExternalArrayType(array_type));
1140
- __ j(not_equal, &slow);
1141
-
1142
- // Check that the index is in range.
1143
- __ SmiToInteger32(rdi, rcx); // Untag the index.
1144
- __ cmpl(rdi, FieldOperand(rbx, ExternalArray::kLengthOffset));
1145
- // Unsigned comparison catches both negative and too-large values.
1146
- __ j(above_equal, &slow);
1147
-
1148
- // Handle both smis and HeapNumbers in the fast path. Go to the
1149
- // runtime for all other kinds of values.
1150
- // rax: value
1151
- // rcx: key (a smi)
1152
- // rdx: receiver (a JSObject)
1153
- // rbx: elements array
1154
- // rdi: untagged key
1155
- __ JumpIfNotSmi(rax, &check_heap_number);
1156
- // No more branches to slow case on this path. Key and receiver not needed.
1157
- __ SmiToInteger32(rdx, rax);
1158
- __ movq(rbx, FieldOperand(rbx, ExternalArray::kExternalPointerOffset));
1159
- // rbx: base pointer of external storage
1160
- switch (array_type) {
1161
- case kExternalByteArray:
1162
- case kExternalUnsignedByteArray:
1163
- __ movb(Operand(rbx, rdi, times_1, 0), rdx);
1164
- break;
1165
- case kExternalShortArray:
1166
- case kExternalUnsignedShortArray:
1167
- __ movw(Operand(rbx, rdi, times_2, 0), rdx);
1168
- break;
1169
- case kExternalIntArray:
1170
- case kExternalUnsignedIntArray:
1171
- __ movl(Operand(rbx, rdi, times_4, 0), rdx);
1172
- break;
1173
- case kExternalFloatArray:
1174
- // Need to perform int-to-float conversion.
1175
- __ cvtlsi2ss(xmm0, rdx);
1176
- __ movss(Operand(rbx, rdi, times_4, 0), xmm0);
1177
- break;
1178
- default:
1179
- UNREACHABLE();
1180
- break;
1181
- }
1182
- __ ret(0);
1183
-
1184
- __ bind(&check_heap_number);
1185
- // rax: value
1186
- // rcx: key (a smi)
1187
- // rdx: receiver (a JSObject)
1188
- // rbx: elements array
1189
- // rdi: untagged key
1190
- __ CmpObjectType(rax, HEAP_NUMBER_TYPE, kScratchRegister);
1191
- __ j(not_equal, &slow);
1192
- // No more branches to slow case on this path.
1193
-
1194
- // The WebGL specification leaves the behavior of storing NaN and
1195
- // +/-Infinity into integer arrays basically undefined. For more
1196
- // reproducible behavior, convert these to zero.
1197
- __ movsd(xmm0, FieldOperand(rax, HeapNumber::kValueOffset));
1198
- __ movq(rbx, FieldOperand(rbx, ExternalArray::kExternalPointerOffset));
1199
- // rdi: untagged index
1200
- // rbx: base pointer of external storage
1201
- // top of FPU stack: value
1202
- if (array_type == kExternalFloatArray) {
1203
- __ cvtsd2ss(xmm0, xmm0);
1204
- __ movss(Operand(rbx, rdi, times_4, 0), xmm0);
1205
- __ ret(0);
1206
- } else {
1207
- // Need to perform float-to-int conversion.
1208
- // Test the value for NaN.
1209
-
1210
- // Convert to int32 and store the low byte/word.
1211
- // If the value is NaN or +/-infinity, the result is 0x80000000,
1212
- // which is automatically zero when taken mod 2^n, n < 32.
1213
- // rdx: value (converted to an untagged integer)
1214
- // rdi: untagged index
1215
- // rbx: base pointer of external storage
1216
- switch (array_type) {
1217
- case kExternalByteArray:
1218
- case kExternalUnsignedByteArray:
1219
- __ cvtsd2si(rdx, xmm0);
1220
- __ movb(Operand(rbx, rdi, times_1, 0), rdx);
1221
- break;
1222
- case kExternalShortArray:
1223
- case kExternalUnsignedShortArray:
1224
- __ cvtsd2si(rdx, xmm0);
1225
- __ movw(Operand(rbx, rdi, times_2, 0), rdx);
1226
- break;
1227
- case kExternalIntArray:
1228
- case kExternalUnsignedIntArray: {
1229
- // Convert to int64, so that NaN and infinities become
1230
- // 0x8000000000000000, which is zero mod 2^32.
1231
- __ cvtsd2siq(rdx, xmm0);
1232
- __ movl(Operand(rbx, rdi, times_4, 0), rdx);
1233
- break;
1234
- }
1235
- default:
1236
- UNREACHABLE();
1237
- break;
1238
- }
1239
- __ ret(0);
1240
- }
1241
-
1242
- // Slow case: call runtime.
1243
- __ bind(&slow);
1244
- GenerateRuntimeSetProperty(masm);
1245
- }
1246
-
1247
-
1248
- // Defined in ic.cc.
1249
- Object* CallIC_Miss(Arguments args);
1250
-
1251
-
1252
- static void GenerateCallMiss(MacroAssembler* masm, int argc, IC::UtilityId id) {
1253
- // ----------- S t a t e -------------
1254
- // rcx : function name
1255
- // rsp[0] : return address
1256
- // rsp[8] : argument argc
1257
- // rsp[16] : argument argc - 1
1258
- // ...
1259
- // rsp[argc * 8] : argument 1
1260
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1261
- // -----------------------------------
1262
-
1263
- if (id == IC::kCallIC_Miss) {
1264
- __ IncrementCounter(&Counters::call_miss, 1);
1265
- } else {
1266
- __ IncrementCounter(&Counters::keyed_call_miss, 1);
1267
- }
1268
-
1269
- // Get the receiver of the function from the stack; 1 ~ return address.
1270
- __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
1271
-
1272
- // Enter an internal frame.
1273
- __ EnterInternalFrame();
1274
-
1275
- // Push the receiver and the name of the function.
1276
- __ push(rdx);
1277
- __ push(rcx);
1278
-
1279
- // Call the entry.
1280
- CEntryStub stub(1);
1281
- __ movq(rax, Immediate(2));
1282
- __ movq(rbx, ExternalReference(IC_Utility(id)));
1283
- __ CallStub(&stub);
1284
-
1285
- // Move result to rdi and exit the internal frame.
1286
- __ movq(rdi, rax);
1287
- __ LeaveInternalFrame();
1288
-
1289
- // Check if the receiver is a global object of some sort.
1290
- // This can happen only for regular CallIC but not KeyedCallIC.
1291
- if (id == IC::kCallIC_Miss) {
1292
- Label invoke, global;
1293
- __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize)); // receiver
1294
- __ JumpIfSmi(rdx, &invoke);
1295
- __ CmpObjectType(rdx, JS_GLOBAL_OBJECT_TYPE, rcx);
1296
- __ j(equal, &global);
1297
- __ CmpInstanceType(rcx, JS_BUILTINS_OBJECT_TYPE);
1298
- __ j(not_equal, &invoke);
1299
-
1300
- // Patch the receiver on the stack.
1301
- __ bind(&global);
1302
- __ movq(rdx, FieldOperand(rdx, GlobalObject::kGlobalReceiverOffset));
1303
- __ movq(Operand(rsp, (argc + 1) * kPointerSize), rdx);
1304
- __ bind(&invoke);
1305
- }
1306
-
1307
- // Invoke the function.
1308
- ParameterCount actual(argc);
1309
- __ InvokeFunction(rdi, actual, JUMP_FUNCTION);
1310
- }
1311
-
1312
-
1313
- // The generated code does not accept smi keys.
1314
- // The generated code falls through if both probes miss.
1315
- static void GenerateMonomorphicCacheProbe(MacroAssembler* masm,
1316
- int argc,
1317
- Code::Kind kind) {
1318
- // ----------- S t a t e -------------
1319
- // rcx : function name
1320
- // rdx : receiver
1321
- // -----------------------------------
1322
- Label number, non_number, non_string, boolean, probe, miss;
1323
-
1324
- // Probe the stub cache.
1325
- Code::Flags flags =
1326
- Code::ComputeFlags(kind, NOT_IN_LOOP, MONOMORPHIC, NORMAL, argc);
1327
- StubCache::GenerateProbe(masm, flags, rdx, rcx, rbx, rax);
1328
-
1329
- // If the stub cache probing failed, the receiver might be a value.
1330
- // For value objects, we use the map of the prototype objects for
1331
- // the corresponding JSValue for the cache and that is what we need
1332
- // to probe.
1333
- //
1334
- // Check for number.
1335
- __ JumpIfSmi(rdx, &number);
1336
- __ CmpObjectType(rdx, HEAP_NUMBER_TYPE, rbx);
1337
- __ j(not_equal, &non_number);
1338
- __ bind(&number);
1339
- StubCompiler::GenerateLoadGlobalFunctionPrototype(
1340
- masm, Context::NUMBER_FUNCTION_INDEX, rdx);
1341
- __ jmp(&probe);
1342
-
1343
- // Check for string.
1344
- __ bind(&non_number);
1345
- __ CmpInstanceType(rbx, FIRST_NONSTRING_TYPE);
1346
- __ j(above_equal, &non_string);
1347
- StubCompiler::GenerateLoadGlobalFunctionPrototype(
1348
- masm, Context::STRING_FUNCTION_INDEX, rdx);
1349
- __ jmp(&probe);
1350
-
1351
- // Check for boolean.
1352
- __ bind(&non_string);
1353
- __ CompareRoot(rdx, Heap::kTrueValueRootIndex);
1354
- __ j(equal, &boolean);
1355
- __ CompareRoot(rdx, Heap::kFalseValueRootIndex);
1356
- __ j(not_equal, &miss);
1357
- __ bind(&boolean);
1358
- StubCompiler::GenerateLoadGlobalFunctionPrototype(
1359
- masm, Context::BOOLEAN_FUNCTION_INDEX, rdx);
1360
-
1361
- // Probe the stub cache for the value object.
1362
- __ bind(&probe);
1363
- StubCache::GenerateProbe(masm, flags, rdx, rcx, rbx, no_reg);
1364
-
1365
- __ bind(&miss);
1366
- }
1367
-
1368
-
1369
- static void GenerateFunctionTailCall(MacroAssembler* masm,
1370
- int argc,
1371
- Label* miss) {
1372
- // ----------- S t a t e -------------
1373
- // rcx : function name
1374
- // rdi : function
1375
- // rsp[0] : return address
1376
- // rsp[8] : argument argc
1377
- // rsp[16] : argument argc - 1
1378
- // ...
1379
- // rsp[argc * 8] : argument 1
1380
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1381
- // -----------------------------------
1382
- __ JumpIfSmi(rdi, miss);
1383
- // Check that the value is a JavaScript function.
1384
- __ CmpObjectType(rdi, JS_FUNCTION_TYPE, rdx);
1385
- __ j(not_equal, miss);
1386
-
1387
- // Invoke the function.
1388
- ParameterCount actual(argc);
1389
- __ InvokeFunction(rdi, actual, JUMP_FUNCTION);
1390
- }
1391
-
1392
-
1393
- // The generated code falls through if the call should be handled by runtime.
1394
- static void GenerateCallNormal(MacroAssembler* masm, int argc) {
1395
- // ----------- S t a t e -------------
1396
- // rcx : function name
1397
- // rsp[0] : return address
1398
- // rsp[8] : argument argc
1399
- // rsp[16] : argument argc - 1
1400
- // ...
1401
- // rsp[argc * 8] : argument 1
1402
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1403
- // -----------------------------------
1404
- Label miss;
1405
-
1406
- // Get the receiver of the function from the stack.
1407
- __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
1408
-
1409
- GenerateStringDictionaryReceiverCheck(masm, rdx, rax, rbx, &miss);
1410
-
1411
- // rax: elements
1412
- // Search the dictionary placing the result in rdi.
1413
- GenerateDictionaryLoad(masm, &miss, rax, rcx, rbx, rdi, rdi);
1414
-
1415
- GenerateFunctionTailCall(masm, argc, &miss);
1416
-
1417
- __ bind(&miss);
1418
- }
1419
-
1420
-
1421
- void CallIC::GenerateMiss(MacroAssembler* masm, int argc) {
1422
- // ----------- S t a t e -------------
1423
- // rcx : function name
1424
- // rsp[0] : return address
1425
- // rsp[8] : argument argc
1426
- // rsp[16] : argument argc - 1
1427
- // ...
1428
- // rsp[argc * 8] : argument 1
1429
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1430
- // -----------------------------------
1431
- GenerateCallMiss(masm, argc, IC::kCallIC_Miss);
1432
- }
1433
-
1434
-
1435
- void CallIC::GenerateMegamorphic(MacroAssembler* masm, int argc) {
1436
- // ----------- S t a t e -------------
1437
- // rcx : function name
1438
- // rsp[0] : return address
1439
- // rsp[8] : argument argc
1440
- // rsp[16] : argument argc - 1
1441
- // ...
1442
- // rsp[argc * 8] : argument 1
1443
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1444
- // -----------------------------------
1445
-
1446
- // Get the receiver of the function from the stack; 1 ~ return address.
1447
- __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
1448
- GenerateMonomorphicCacheProbe(masm, argc, Code::CALL_IC);
1449
- GenerateMiss(masm, argc);
1450
- }
1451
-
1452
-
1453
- void CallIC::GenerateNormal(MacroAssembler* masm, int argc) {
1454
- // ----------- S t a t e -------------
1455
- // rcx : function name
1456
- // rsp[0] : return address
1457
- // rsp[8] : argument argc
1458
- // rsp[16] : argument argc - 1
1459
- // ...
1460
- // rsp[argc * 8] : argument 1
1461
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1462
- // -----------------------------------
1463
-
1464
- GenerateCallNormal(masm, argc);
1465
- GenerateMiss(masm, argc);
1466
- }
1467
-
1468
-
1469
- void KeyedCallIC::GenerateMiss(MacroAssembler* masm, int argc) {
1470
- // ----------- S t a t e -------------
1471
- // rcx : function name
1472
- // rsp[0] : return address
1473
- // rsp[8] : argument argc
1474
- // rsp[16] : argument argc - 1
1475
- // ...
1476
- // rsp[argc * 8] : argument 1
1477
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1478
- // -----------------------------------
1479
-
1480
- GenerateCallMiss(masm, argc, IC::kKeyedCallIC_Miss);
1481
- }
1482
-
1483
-
1484
- void KeyedCallIC::GenerateMegamorphic(MacroAssembler* masm, int argc) {
1485
- // ----------- S t a t e -------------
1486
- // rcx : function name
1487
- // rsp[0] : return address
1488
- // rsp[8] : argument argc
1489
- // rsp[16] : argument argc - 1
1490
- // ...
1491
- // rsp[argc * 8] : argument 1
1492
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1493
- // -----------------------------------
1494
-
1495
- // Get the receiver of the function from the stack; 1 ~ return address.
1496
- __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
1497
-
1498
- Label do_call, slow_call, slow_load, slow_reload_receiver;
1499
- Label check_number_dictionary, check_string, lookup_monomorphic_cache;
1500
- Label index_smi, index_string;
1501
-
1502
- // Check that the key is a smi.
1503
- __ JumpIfNotSmi(rcx, &check_string);
1504
-
1505
- __ bind(&index_smi);
1506
- // Now the key is known to be a smi. This place is also jumped to from below
1507
- // where a numeric string is converted to a smi.
1508
-
1509
- GenerateKeyedLoadReceiverCheck(
1510
- masm, rdx, rax, Map::kHasIndexedInterceptor, &slow_call);
1511
-
1512
- GenerateFastArrayLoad(
1513
- masm, rdx, rcx, rax, rbx, rdi, &check_number_dictionary, &slow_load);
1514
- __ IncrementCounter(&Counters::keyed_call_generic_smi_fast, 1);
1515
-
1516
- __ bind(&do_call);
1517
- // receiver in rdx is not used after this point.
1518
- // rcx: key
1519
- // rdi: function
1520
- GenerateFunctionTailCall(masm, argc, &slow_call);
1521
-
1522
- __ bind(&check_number_dictionary);
1523
- // rax: elements
1524
- // rcx: smi key
1525
- // Check whether the elements is a number dictionary.
1526
- __ CompareRoot(FieldOperand(rax, HeapObject::kMapOffset),
1527
- Heap::kHashTableMapRootIndex);
1528
- __ j(not_equal, &slow_load);
1529
- __ SmiToInteger32(rbx, rcx);
1530
- // ebx: untagged index
1531
- GenerateNumberDictionaryLoad(masm, &slow_load, rax, rcx, rbx, r9, rdi, rdi);
1532
- __ IncrementCounter(&Counters::keyed_call_generic_smi_dict, 1);
1533
- __ jmp(&do_call);
1534
-
1535
- __ bind(&slow_load);
1536
- // This branch is taken when calling KeyedCallIC_Miss is neither required
1537
- // nor beneficial.
1538
- __ IncrementCounter(&Counters::keyed_call_generic_slow_load, 1);
1539
- __ EnterInternalFrame();
1540
- __ push(rcx); // save the key
1541
- __ push(rdx); // pass the receiver
1542
- __ push(rcx); // pass the key
1543
- __ CallRuntime(Runtime::kKeyedGetProperty, 2);
1544
- __ pop(rcx); // restore the key
1545
- __ LeaveInternalFrame();
1546
- __ movq(rdi, rax);
1547
- __ jmp(&do_call);
1548
-
1549
- __ bind(&check_string);
1550
- GenerateKeyStringCheck(masm, rcx, rax, rbx, &index_string, &slow_call);
1551
-
1552
- // The key is known to be a symbol.
1553
- // If the receiver is a regular JS object with slow properties then do
1554
- // a quick inline probe of the receiver's dictionary.
1555
- // Otherwise do the monomorphic cache probe.
1556
- GenerateKeyedLoadReceiverCheck(
1557
- masm, rdx, rax, Map::kHasNamedInterceptor, &lookup_monomorphic_cache);
1558
-
1559
- __ movq(rbx, FieldOperand(rdx, JSObject::kPropertiesOffset));
1560
- __ CompareRoot(FieldOperand(rbx, HeapObject::kMapOffset),
1561
- Heap::kHashTableMapRootIndex);
1562
- __ j(not_equal, &lookup_monomorphic_cache);
1563
-
1564
- GenerateDictionaryLoad(masm, &slow_load, rbx, rcx, rax, rdi, rdi);
1565
- __ IncrementCounter(&Counters::keyed_call_generic_lookup_dict, 1);
1566
- __ jmp(&do_call);
1567
-
1568
- __ bind(&lookup_monomorphic_cache);
1569
- __ IncrementCounter(&Counters::keyed_call_generic_lookup_cache, 1);
1570
- GenerateMonomorphicCacheProbe(masm, argc, Code::KEYED_CALL_IC);
1571
- // Fall through on miss.
1572
-
1573
- __ bind(&slow_call);
1574
- // This branch is taken if:
1575
- // - the receiver requires boxing or access check,
1576
- // - the key is neither smi nor symbol,
1577
- // - the value loaded is not a function,
1578
- // - there is hope that the runtime will create a monomorphic call stub
1579
- // that will get fetched next time.
1580
- __ IncrementCounter(&Counters::keyed_call_generic_slow, 1);
1581
- GenerateMiss(masm, argc);
1582
-
1583
- __ bind(&index_string);
1584
- GenerateIndexFromHash(masm, rcx, rbx);
1585
- // Now jump to the place where smi keys are handled.
1586
- __ jmp(&index_smi);
1587
- }
1588
-
1589
-
1590
- void KeyedCallIC::GenerateNormal(MacroAssembler* masm, int argc) {
1591
- // ----------- S t a t e -------------
1592
- // rcx : function name
1593
- // rsp[0] : return address
1594
- // rsp[8] : argument argc
1595
- // rsp[16] : argument argc - 1
1596
- // ...
1597
- // rsp[argc * 8] : argument 1
1598
- // rsp[(argc + 1) * 8] : argument 0 = receiver
1599
- // -----------------------------------
1600
-
1601
- GenerateCallNormal(masm, argc);
1602
- GenerateMiss(masm, argc);
1603
- }
1604
-
1605
-
1606
- // The offset from the inlined patch site to the start of the inlined
1607
- // load instruction.
1608
- const int LoadIC::kOffsetToLoadInstruction = 20;
1609
-
1610
-
1611
- void LoadIC::GenerateMiss(MacroAssembler* masm) {
1612
- // ----------- S t a t e -------------
1613
- // -- rax : receiver
1614
- // -- rcx : name
1615
- // -- rsp[0] : return address
1616
- // -----------------------------------
1617
-
1618
- __ IncrementCounter(&Counters::load_miss, 1);
1619
-
1620
- __ pop(rbx);
1621
- __ push(rax); // receiver
1622
- __ push(rcx); // name
1623
- __ push(rbx); // return address
1624
-
1625
- // Perform tail call to the entry.
1626
- ExternalReference ref = ExternalReference(IC_Utility(kLoadIC_Miss));
1627
- __ TailCallExternalReference(ref, 2, 1);
1628
- }
1629
-
1630
-
1631
- void LoadIC::GenerateArrayLength(MacroAssembler* masm) {
1632
- // ----------- S t a t e -------------
1633
- // -- rax : receiver
1634
- // -- rcx : name
1635
- // -- rsp[0] : return address
1636
- // -----------------------------------
1637
- Label miss;
1638
-
1639
- StubCompiler::GenerateLoadArrayLength(masm, rax, rdx, &miss);
1640
- __ bind(&miss);
1641
- StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
1642
- }
1643
-
1644
-
1645
- void LoadIC::GenerateFunctionPrototype(MacroAssembler* masm) {
1646
- // ----------- S t a t e -------------
1647
- // -- rax : receiver
1648
- // -- rcx : name
1649
- // -- rsp[0] : return address
1650
- // -----------------------------------
1651
- Label miss;
1652
-
1653
- StubCompiler::GenerateLoadFunctionPrototype(masm, rax, rdx, rbx, &miss);
1654
- __ bind(&miss);
1655
- StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
1656
- }
1657
-
1658
-
1659
- void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
1660
- // ----------- S t a t e -------------
1661
- // -- rax : receiver
1662
- // -- rcx : name
1663
- // -- rsp[0] : return address
1664
- // -----------------------------------
1665
-
1666
- // Probe the stub cache.
1667
- Code::Flags flags = Code::ComputeFlags(Code::LOAD_IC,
1668
- NOT_IN_LOOP,
1669
- MONOMORPHIC);
1670
- StubCache::GenerateProbe(masm, flags, rax, rcx, rbx, rdx);
1671
-
1672
- // Cache miss: Jump to runtime.
1673
- StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
1674
- }
1675
-
1676
-
1677
- void LoadIC::GenerateNormal(MacroAssembler* masm) {
1678
- // ----------- S t a t e -------------
1679
- // -- rax : receiver
1680
- // -- rcx : name
1681
- // -- rsp[0] : return address
1682
- // -----------------------------------
1683
- Label miss;
1684
-
1685
- GenerateStringDictionaryReceiverCheck(masm, rax, rdx, rbx, &miss);
1686
-
1687
- // rdx: elements
1688
- // Search the dictionary placing the result in rax.
1689
- GenerateDictionaryLoad(masm, &miss, rdx, rcx, rbx, rdi, rax);
1690
- __ ret(0);
1691
-
1692
- // Cache miss: Jump to runtime.
1693
- __ bind(&miss);
1694
- GenerateMiss(masm);
1695
- }
1696
-
1697
-
1698
- void LoadIC::GenerateStringLength(MacroAssembler* masm) {
1699
- // ----------- S t a t e -------------
1700
- // -- rax : receiver
1701
- // -- rcx : name
1702
- // -- rsp[0] : return address
1703
- // -----------------------------------
1704
- Label miss;
1705
-
1706
- StubCompiler::GenerateLoadStringLength(masm, rax, rdx, rbx, &miss);
1707
- __ bind(&miss);
1708
- StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
1709
- }
1710
-
1711
-
1712
- bool LoadIC::PatchInlinedLoad(Address address, Object* map, int offset) {
1713
- // The address of the instruction following the call.
1714
- Address test_instruction_address =
1715
- address + Assembler::kCallTargetAddressOffset;
1716
- // If the instruction following the call is not a test rax, nothing
1717
- // was inlined.
1718
- if (*test_instruction_address != kTestEaxByte) return false;
1719
-
1720
- Address delta_address = test_instruction_address + 1;
1721
- // The delta to the start of the map check instruction.
1722
- int delta = *reinterpret_cast<int*>(delta_address);
1723
-
1724
- // The map address is the last 8 bytes of the 10-byte
1725
- // immediate move instruction, so we add 2 to get the
1726
- // offset to the last 8 bytes.
1727
- Address map_address = test_instruction_address + delta + 2;
1728
- *(reinterpret_cast<Object**>(map_address)) = map;
1729
-
1730
- // The offset is in the 32-bit displacement of a seven byte
1731
- // memory-to-register move instruction (REX.W 0x88 ModR/M disp32),
1732
- // so we add 3 to get the offset of the displacement.
1733
- Address offset_address =
1734
- test_instruction_address + delta + kOffsetToLoadInstruction + 3;
1735
- *reinterpret_cast<int*>(offset_address) = offset - kHeapObjectTag;
1736
- return true;
1737
- }
1738
-
1739
-
1740
- // The offset from the inlined patch site to the start of the inlined
1741
- // store instruction.
1742
- const int StoreIC::kOffsetToStoreInstruction = 20;
1743
-
1744
-
1745
- bool StoreIC::PatchInlinedStore(Address address, Object* map, int offset) {
1746
- // The address of the instruction following the call.
1747
- Address test_instruction_address =
1748
- address + Assembler::kCallTargetAddressOffset;
1749
-
1750
- // If the instruction following the call is not a test rax, nothing
1751
- // was inlined.
1752
- if (*test_instruction_address != kTestEaxByte) return false;
1753
-
1754
- // Extract the encoded deltas from the test rax instruction.
1755
- Address encoded_offsets_address = test_instruction_address + 1;
1756
- int encoded_offsets = *reinterpret_cast<int*>(encoded_offsets_address);
1757
- int delta_to_map_check = -(encoded_offsets & 0xFFFF);
1758
- int delta_to_record_write = encoded_offsets >> 16;
1759
-
1760
- // Patch the map to check. The map address is the last 8 bytes of
1761
- // the 10-byte immediate move instruction.
1762
- Address map_check_address = test_instruction_address + delta_to_map_check;
1763
- Address map_address = map_check_address + 2;
1764
- *(reinterpret_cast<Object**>(map_address)) = map;
1765
-
1766
- // Patch the offset in the store instruction. The offset is in the
1767
- // last 4 bytes of a 7 byte register-to-memory move instruction.
1768
- Address offset_address =
1769
- map_check_address + StoreIC::kOffsetToStoreInstruction + 3;
1770
- // The offset should have initial value (kMaxInt - 1), cleared value
1771
- // (-1) or we should be clearing the inlined version.
1772
- ASSERT(*reinterpret_cast<int*>(offset_address) == kMaxInt - 1 ||
1773
- *reinterpret_cast<int*>(offset_address) == -1 ||
1774
- (offset == 0 && map == Heap::null_value()));
1775
- *reinterpret_cast<int*>(offset_address) = offset - kHeapObjectTag;
1776
-
1777
- // Patch the offset in the write-barrier code. The offset is the
1778
- // last 4 bytes of a 7 byte lea instruction.
1779
- offset_address = map_check_address + delta_to_record_write + 3;
1780
- // The offset should have initial value (kMaxInt), cleared value
1781
- // (-1) or we should be clearing the inlined version.
1782
- ASSERT(*reinterpret_cast<int*>(offset_address) == kMaxInt ||
1783
- *reinterpret_cast<int*>(offset_address) == -1 ||
1784
- (offset == 0 && map == Heap::null_value()));
1785
- *reinterpret_cast<int*>(offset_address) = offset - kHeapObjectTag;
1786
-
1787
- return true;
1788
- }
1789
-
1790
-
1791
- void StoreIC::GenerateMiss(MacroAssembler* masm) {
1792
- // ----------- S t a t e -------------
1793
- // -- rax : value
1794
- // -- rcx : name
1795
- // -- rdx : receiver
1796
- // -- rsp[0] : return address
1797
- // -----------------------------------
1798
-
1799
- __ pop(rbx);
1800
- __ push(rdx); // receiver
1801
- __ push(rcx); // name
1802
- __ push(rax); // value
1803
- __ push(rbx); // return address
1804
-
1805
- // Perform tail call to the entry.
1806
- ExternalReference ref = ExternalReference(IC_Utility(kStoreIC_Miss));
1807
- __ TailCallExternalReference(ref, 3, 1);
1808
- }
1809
-
1810
-
1811
- void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
1812
- // ----------- S t a t e -------------
1813
- // -- rax : value
1814
- // -- rcx : name
1815
- // -- rdx : receiver
1816
- // -- rsp[0] : return address
1817
- // -----------------------------------
1818
-
1819
- // Get the receiver from the stack and probe the stub cache.
1820
- Code::Flags flags = Code::ComputeFlags(Code::STORE_IC,
1821
- NOT_IN_LOOP,
1822
- MONOMORPHIC);
1823
- StubCache::GenerateProbe(masm, flags, rdx, rcx, rbx, no_reg);
1824
-
1825
- // Cache miss: Jump to runtime.
1826
- GenerateMiss(masm);
1827
- }
1828
-
1829
-
1830
- void StoreIC::GenerateArrayLength(MacroAssembler* masm) {
1831
- // ----------- S t a t e -------------
1832
- // -- rax : value
1833
- // -- rcx : name
1834
- // -- rdx : receiver
1835
- // -- rsp[0] : return address
1836
- // -----------------------------------
1837
- //
1838
- // This accepts as a receiver anything JSObject::SetElementsLength accepts
1839
- // (currently anything except for external and pixel arrays which means
1840
- // anything with elements of FixedArray type.), but currently is restricted
1841
- // to JSArray.
1842
- // Value must be a number, but only smis are accepted as the most common case.
1843
-
1844
- Label miss;
1845
-
1846
- Register receiver = rdx;
1847
- Register value = rax;
1848
- Register scratch = rbx;
1849
-
1850
- // Check that the receiver isn't a smi.
1851
- __ JumpIfSmi(receiver, &miss);
1852
-
1853
- // Check that the object is a JS array.
1854
- __ CmpObjectType(receiver, JS_ARRAY_TYPE, scratch);
1855
- __ j(not_equal, &miss);
1856
-
1857
- // Check that elements are FixedArray.
1858
- __ movq(scratch, FieldOperand(receiver, JSArray::kElementsOffset));
1859
- __ CmpObjectType(scratch, FIXED_ARRAY_TYPE, scratch);
1860
- __ j(not_equal, &miss);
1861
-
1862
- // Check that value is a smi.
1863
- __ JumpIfNotSmi(value, &miss);
1864
-
1865
- // Prepare tail call to StoreIC_ArrayLength.
1866
- __ pop(scratch);
1867
- __ push(receiver);
1868
- __ push(value);
1869
- __ push(scratch); // return address
1870
-
1871
- ExternalReference ref = ExternalReference(IC_Utility(kStoreIC_ArrayLength));
1872
- __ TailCallExternalReference(ref, 2, 1);
1873
-
1874
- __ bind(&miss);
1875
-
1876
- GenerateMiss(masm);
1877
- }
1878
-
1879
-
1880
- void StoreIC::GenerateNormal(MacroAssembler* masm) {
1881
- // ----------- S t a t e -------------
1882
- // -- rax : value
1883
- // -- rcx : name
1884
- // -- rdx : receiver
1885
- // -- rsp[0] : return address
1886
- // -----------------------------------
1887
-
1888
- Label miss, restore_miss;
1889
-
1890
- GenerateStringDictionaryReceiverCheck(masm, rdx, rbx, rdi, &miss);
1891
-
1892
- GenerateDictionaryStore(masm, &miss, rbx, rcx, rax, r8, r9);
1893
- __ IncrementCounter(&Counters::store_normal_hit, 1);
1894
- __ ret(0);
1895
-
1896
- __ bind(&miss);
1897
- __ IncrementCounter(&Counters::store_normal_miss, 1);
1898
- GenerateMiss(masm);
1899
- }
1900
-
1901
-
1902
- #undef __
1903
-
1904
-
1905
- } } // namespace v8::internal
1906
-
1907
- #endif // V8_TARGET_ARCH_X64