libv8 3.3.10.4 → 3.5.10.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. data/lib/libv8/scons/CHANGES.txt +24 -231
  2. data/lib/libv8/scons/LICENSE.txt +1 -1
  3. data/lib/libv8/scons/MANIFEST +0 -1
  4. data/lib/libv8/scons/PKG-INFO +1 -1
  5. data/lib/libv8/scons/README.txt +9 -9
  6. data/lib/libv8/scons/RELEASE.txt +75 -77
  7. data/lib/libv8/scons/engine/SCons/Action.py +6 -22
  8. data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
  9. data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
  10. data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
  11. data/lib/libv8/scons/engine/SCons/Defaults.py +10 -24
  12. data/lib/libv8/scons/engine/SCons/Environment.py +19 -118
  13. data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
  14. data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
  15. data/lib/libv8/scons/engine/SCons/Job.py +2 -2
  16. data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
  17. data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
  18. data/lib/libv8/scons/engine/SCons/Node/FS.py +121 -281
  19. data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
  20. data/lib/libv8/scons/engine/SCons/Node/__init__.py +5 -6
  21. data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
  22. data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
  23. data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
  24. data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
  25. data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
  26. data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
  27. data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
  28. data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
  29. data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
  30. data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
  31. data/lib/libv8/scons/engine/SCons/Platform/darwin.py +3 -27
  32. data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
  33. data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
  34. data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
  35. data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
  36. data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
  37. data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
  38. data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
  39. data/lib/libv8/scons/engine/SCons/SConsign.py +3 -9
  40. data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
  41. data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
  42. data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
  43. data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
  44. data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
  45. data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +2 -5
  46. data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
  47. data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
  48. data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
  49. data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
  50. data/lib/libv8/scons/engine/SCons/Script/Main.py +11 -82
  51. data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
  52. data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
  53. data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
  54. data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
  55. data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
  56. data/lib/libv8/scons/engine/SCons/Taskmaster.py +2 -10
  57. data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
  58. data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
  59. data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
  60. data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +2 -19
  61. data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
  62. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
  63. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
  64. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
  65. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
  66. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
  67. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +6 -9
  68. data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +2 -29
  69. data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
  70. data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
  71. data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
  72. data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
  73. data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
  74. data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
  75. data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
  76. data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
  77. data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
  78. data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
  79. data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
  80. data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
  81. data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
  82. data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
  83. data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
  84. data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
  85. data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
  86. data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
  87. data/lib/libv8/scons/engine/SCons/Tool/dmd.py +7 -24
  88. data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
  89. data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +2 -3
  90. data/lib/libv8/scons/engine/SCons/Tool/dvips.py +2 -3
  91. data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
  92. data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
  93. data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
  94. data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
  95. data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
  96. data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
  97. data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
  98. data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
  99. data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
  100. data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
  101. data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +3 -2
  102. data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
  103. data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
  104. data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
  105. data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
  106. data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
  107. data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
  108. data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
  109. data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
  110. data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
  111. data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
  112. data/lib/libv8/scons/engine/SCons/Tool/install.py +3 -57
  113. data/lib/libv8/scons/engine/SCons/Tool/intelc.py +25 -65
  114. data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
  115. data/lib/libv8/scons/engine/SCons/Tool/jar.py +3 -9
  116. data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
  117. data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
  118. data/lib/libv8/scons/engine/SCons/Tool/latex.py +2 -3
  119. data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
  120. data/lib/libv8/scons/engine/SCons/Tool/link.py +5 -6
  121. data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
  122. data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
  123. data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
  124. data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
  125. data/lib/libv8/scons/engine/SCons/Tool/mingw.py +10 -31
  126. data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
  127. data/lib/libv8/scons/engine/SCons/Tool/mslink.py +9 -61
  128. data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
  129. data/lib/libv8/scons/engine/SCons/Tool/msvc.py +11 -21
  130. data/lib/libv8/scons/engine/SCons/Tool/msvs.py +59 -477
  131. data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
  132. data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
  133. data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
  134. data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
  135. data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
  136. data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
  137. data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
  138. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
  139. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
  140. data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
  141. data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
  142. data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
  143. data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
  144. data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
  145. data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +2 -3
  146. data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +2 -3
  147. data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
  148. data/lib/libv8/scons/engine/SCons/Tool/rmic.py +3 -9
  149. data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
  150. data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
  151. data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
  152. data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
  153. data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
  154. data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +3 -2
  155. data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
  156. data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
  157. data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
  158. data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
  159. data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
  160. data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
  161. data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +3 -2
  162. data/lib/libv8/scons/engine/SCons/Tool/swig.py +5 -6
  163. data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
  164. data/lib/libv8/scons/engine/SCons/Tool/tex.py +43 -96
  165. data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
  166. data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
  167. data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
  168. data/lib/libv8/scons/engine/SCons/Tool/yacc.py +2 -12
  169. data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
  170. data/lib/libv8/scons/engine/SCons/Util.py +3 -3
  171. data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
  172. data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
  173. data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
  174. data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
  175. data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
  176. data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
  177. data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
  178. data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
  179. data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
  180. data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
  181. data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
  182. data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
  183. data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
  184. data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
  185. data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
  186. data/lib/libv8/scons/engine/SCons/dblite.py +1 -4
  187. data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
  188. data/lib/libv8/scons/scons-time.1 +3 -3
  189. data/lib/libv8/scons/scons.1 +1164 -1170
  190. data/lib/libv8/scons/sconsign.1 +3 -3
  191. data/lib/libv8/scons/script/scons +22 -22
  192. data/lib/libv8/scons/script/scons-time +2 -2
  193. data/lib/libv8/scons/script/scons.bat +4 -7
  194. data/lib/libv8/scons/script/sconsign +20 -21
  195. data/lib/libv8/scons/setup.cfg +1 -0
  196. data/lib/libv8/scons/setup.py +40 -38
  197. data/lib/libv8/v8/.gitignore +1 -1
  198. data/lib/libv8/v8/AUTHORS +2 -0
  199. data/lib/libv8/v8/ChangeLog +387 -0
  200. data/lib/libv8/v8/Makefile +171 -0
  201. data/lib/libv8/v8/SConstruct +124 -51
  202. data/lib/libv8/v8/build/README.txt +31 -14
  203. data/lib/libv8/v8/build/all.gyp +11 -4
  204. data/lib/libv8/v8/build/armu.gypi +6 -2
  205. data/lib/libv8/v8/build/common.gypi +240 -94
  206. data/lib/libv8/v8/build/gyp_v8 +32 -4
  207. data/lib/libv8/v8/build/standalone.gypi +200 -0
  208. data/lib/libv8/v8/include/v8-debug.h +0 -0
  209. data/lib/libv8/v8/include/v8-profiler.h +8 -11
  210. data/lib/libv8/v8/include/v8.h +191 -108
  211. data/lib/libv8/v8/preparser/SConscript +2 -2
  212. data/lib/libv8/v8/preparser/preparser-process.cc +3 -3
  213. data/lib/libv8/v8/preparser/preparser.gyp +42 -0
  214. data/lib/libv8/v8/src/SConscript +33 -8
  215. data/lib/libv8/v8/src/accessors.cc +77 -43
  216. data/lib/libv8/v8/src/api.cc +393 -191
  217. data/lib/libv8/v8/src/api.h +4 -8
  218. data/lib/libv8/v8/src/apinatives.js +15 -3
  219. data/lib/libv8/v8/src/arguments.h +8 -0
  220. data/lib/libv8/v8/src/arm/assembler-arm.cc +120 -120
  221. data/lib/libv8/v8/src/arm/assembler-arm.h +92 -43
  222. data/lib/libv8/v8/src/arm/builtins-arm.cc +32 -39
  223. data/lib/libv8/v8/src/arm/code-stubs-arm.cc +572 -351
  224. data/lib/libv8/v8/src/arm/code-stubs-arm.h +8 -77
  225. data/lib/libv8/v8/src/arm/codegen-arm.h +0 -2
  226. data/lib/libv8/v8/src/arm/deoptimizer-arm.cc +50 -30
  227. data/lib/libv8/v8/src/arm/disasm-arm.cc +1 -1
  228. data/lib/libv8/v8/src/arm/frames-arm.h +9 -5
  229. data/lib/libv8/v8/src/arm/full-codegen-arm.cc +331 -432
  230. data/lib/libv8/v8/src/arm/ic-arm.cc +192 -124
  231. data/lib/libv8/v8/src/arm/lithium-arm.cc +216 -232
  232. data/lib/libv8/v8/src/arm/lithium-arm.h +106 -259
  233. data/lib/libv8/v8/src/arm/lithium-codegen-arm.cc +633 -642
  234. data/lib/libv8/v8/src/arm/lithium-codegen-arm.h +4 -4
  235. data/lib/libv8/v8/src/arm/lithium-gap-resolver-arm.cc +1 -3
  236. data/lib/libv8/v8/src/arm/macro-assembler-arm.cc +260 -185
  237. data/lib/libv8/v8/src/arm/macro-assembler-arm.h +45 -25
  238. data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.cc +25 -13
  239. data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.h +3 -0
  240. data/lib/libv8/v8/src/arm/stub-cache-arm.cc +413 -226
  241. data/lib/libv8/v8/src/array.js +38 -18
  242. data/lib/libv8/v8/src/assembler.cc +12 -5
  243. data/lib/libv8/v8/src/assembler.h +15 -9
  244. data/lib/libv8/v8/src/ast-inl.h +34 -25
  245. data/lib/libv8/v8/src/ast.cc +141 -72
  246. data/lib/libv8/v8/src/ast.h +255 -181
  247. data/lib/libv8/v8/src/bignum.cc +3 -4
  248. data/lib/libv8/v8/src/bootstrapper.cc +55 -11
  249. data/lib/libv8/v8/src/bootstrapper.h +3 -2
  250. data/lib/libv8/v8/src/builtins.cc +8 -2
  251. data/lib/libv8/v8/src/builtins.h +4 -0
  252. data/lib/libv8/v8/src/cached-powers.cc +8 -4
  253. data/lib/libv8/v8/src/checks.h +3 -3
  254. data/lib/libv8/v8/src/code-stubs.cc +173 -28
  255. data/lib/libv8/v8/src/code-stubs.h +104 -148
  256. data/lib/libv8/v8/src/codegen.cc +8 -8
  257. data/lib/libv8/v8/src/compilation-cache.cc +2 -47
  258. data/lib/libv8/v8/src/compilation-cache.h +0 -10
  259. data/lib/libv8/v8/src/compiler.cc +27 -16
  260. data/lib/libv8/v8/src/compiler.h +13 -18
  261. data/lib/libv8/v8/src/contexts.cc +107 -72
  262. data/lib/libv8/v8/src/contexts.h +70 -34
  263. data/lib/libv8/v8/src/conversions-inl.h +572 -14
  264. data/lib/libv8/v8/src/conversions.cc +9 -707
  265. data/lib/libv8/v8/src/conversions.h +23 -12
  266. data/lib/libv8/v8/src/cpu-profiler-inl.h +2 -19
  267. data/lib/libv8/v8/src/cpu-profiler.cc +4 -21
  268. data/lib/libv8/v8/src/cpu-profiler.h +8 -17
  269. data/lib/libv8/v8/src/d8-debug.cc +5 -3
  270. data/lib/libv8/v8/src/d8-debug.h +6 -7
  271. data/lib/libv8/v8/src/d8-posix.cc +1 -10
  272. data/lib/libv8/v8/src/d8.cc +721 -219
  273. data/lib/libv8/v8/src/d8.gyp +37 -12
  274. data/lib/libv8/v8/src/d8.h +141 -19
  275. data/lib/libv8/v8/src/d8.js +17 -8
  276. data/lib/libv8/v8/src/date.js +16 -5
  277. data/lib/libv8/v8/src/dateparser-inl.h +242 -39
  278. data/lib/libv8/v8/src/dateparser.cc +38 -4
  279. data/lib/libv8/v8/src/dateparser.h +170 -28
  280. data/lib/libv8/v8/src/debug-agent.cc +5 -3
  281. data/lib/libv8/v8/src/debug-agent.h +11 -7
  282. data/lib/libv8/v8/src/debug-debugger.js +65 -34
  283. data/lib/libv8/v8/src/debug.cc +30 -60
  284. data/lib/libv8/v8/src/debug.h +5 -3
  285. data/lib/libv8/v8/src/deoptimizer.cc +227 -10
  286. data/lib/libv8/v8/src/deoptimizer.h +133 -9
  287. data/lib/libv8/v8/src/disassembler.cc +22 -14
  288. data/lib/libv8/v8/src/diy-fp.cc +4 -3
  289. data/lib/libv8/v8/src/diy-fp.h +3 -3
  290. data/lib/libv8/v8/src/elements.cc +634 -0
  291. data/lib/libv8/v8/src/elements.h +95 -0
  292. data/lib/libv8/v8/src/execution.cc +5 -21
  293. data/lib/libv8/v8/src/extensions/experimental/break-iterator.cc +3 -1
  294. data/lib/libv8/v8/src/extensions/experimental/break-iterator.h +1 -1
  295. data/lib/libv8/v8/src/extensions/experimental/collator.cc +6 -2
  296. data/lib/libv8/v8/src/extensions/experimental/collator.h +1 -2
  297. data/lib/libv8/v8/src/extensions/experimental/datetime-format.cc +384 -0
  298. data/lib/libv8/v8/src/extensions/experimental/datetime-format.h +83 -0
  299. data/lib/libv8/v8/src/extensions/experimental/experimental.gyp +18 -7
  300. data/lib/libv8/v8/src/extensions/experimental/i18n-extension.cc +12 -16
  301. data/lib/libv8/v8/src/extensions/experimental/i18n-extension.h +1 -1
  302. data/lib/libv8/v8/src/extensions/experimental/i18n-js2c.py +126 -0
  303. data/lib/libv8/v8/src/extensions/experimental/i18n-locale.cc +3 -4
  304. data/lib/libv8/v8/src/extensions/experimental/i18n-locale.h +1 -1
  305. data/lib/libv8/v8/src/{shell.h → extensions/experimental/i18n-natives.h} +8 -20
  306. data/lib/libv8/v8/src/extensions/experimental/i18n-utils.cc +45 -1
  307. data/lib/libv8/v8/src/extensions/experimental/i18n-utils.h +21 -1
  308. data/lib/libv8/v8/src/extensions/experimental/i18n.js +211 -11
  309. data/lib/libv8/v8/src/extensions/experimental/language-matcher.cc +4 -3
  310. data/lib/libv8/v8/src/extensions/experimental/language-matcher.h +1 -1
  311. data/lib/libv8/v8/src/extensions/experimental/number-format.cc +374 -0
  312. data/lib/libv8/v8/src/extensions/experimental/number-format.h +71 -0
  313. data/lib/libv8/v8/src/factory.cc +89 -18
  314. data/lib/libv8/v8/src/factory.h +36 -8
  315. data/lib/libv8/v8/src/flag-definitions.h +11 -44
  316. data/lib/libv8/v8/src/frames-inl.h +8 -1
  317. data/lib/libv8/v8/src/frames.cc +39 -3
  318. data/lib/libv8/v8/src/frames.h +10 -3
  319. data/lib/libv8/v8/src/full-codegen.cc +311 -293
  320. data/lib/libv8/v8/src/full-codegen.h +183 -143
  321. data/lib/libv8/v8/src/func-name-inferrer.cc +29 -15
  322. data/lib/libv8/v8/src/func-name-inferrer.h +19 -9
  323. data/lib/libv8/v8/src/gdb-jit.cc +658 -55
  324. data/lib/libv8/v8/src/gdb-jit.h +6 -2
  325. data/lib/libv8/v8/src/global-handles.cc +368 -312
  326. data/lib/libv8/v8/src/global-handles.h +29 -36
  327. data/lib/libv8/v8/src/globals.h +3 -1
  328. data/lib/libv8/v8/src/handles.cc +43 -69
  329. data/lib/libv8/v8/src/handles.h +21 -16
  330. data/lib/libv8/v8/src/heap-inl.h +11 -13
  331. data/lib/libv8/v8/src/heap-profiler.cc +0 -999
  332. data/lib/libv8/v8/src/heap-profiler.h +0 -303
  333. data/lib/libv8/v8/src/heap.cc +366 -141
  334. data/lib/libv8/v8/src/heap.h +87 -26
  335. data/lib/libv8/v8/src/hydrogen-instructions.cc +192 -81
  336. data/lib/libv8/v8/src/hydrogen-instructions.h +711 -482
  337. data/lib/libv8/v8/src/hydrogen.cc +1146 -629
  338. data/lib/libv8/v8/src/hydrogen.h +100 -64
  339. data/lib/libv8/v8/src/ia32/assembler-ia32.cc +19 -0
  340. data/lib/libv8/v8/src/ia32/assembler-ia32.h +15 -2
  341. data/lib/libv8/v8/src/ia32/builtins-ia32.cc +34 -39
  342. data/lib/libv8/v8/src/ia32/code-stubs-ia32.cc +675 -377
  343. data/lib/libv8/v8/src/ia32/code-stubs-ia32.h +8 -69
  344. data/lib/libv8/v8/src/ia32/codegen-ia32.cc +1 -0
  345. data/lib/libv8/v8/src/ia32/codegen-ia32.h +0 -2
  346. data/lib/libv8/v8/src/ia32/cpu-ia32.cc +3 -2
  347. data/lib/libv8/v8/src/ia32/deoptimizer-ia32.cc +28 -3
  348. data/lib/libv8/v8/src/ia32/disasm-ia32.cc +21 -10
  349. data/lib/libv8/v8/src/ia32/frames-ia32.h +6 -5
  350. data/lib/libv8/v8/src/ia32/full-codegen-ia32.cc +459 -465
  351. data/lib/libv8/v8/src/ia32/ic-ia32.cc +196 -147
  352. data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.cc +575 -650
  353. data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.h +19 -21
  354. data/lib/libv8/v8/src/ia32/lithium-gap-resolver-ia32.cc +7 -2
  355. data/lib/libv8/v8/src/ia32/lithium-ia32.cc +261 -256
  356. data/lib/libv8/v8/src/ia32/lithium-ia32.h +234 -335
  357. data/lib/libv8/v8/src/ia32/macro-assembler-ia32.cc +224 -67
  358. data/lib/libv8/v8/src/ia32/macro-assembler-ia32.h +63 -19
  359. data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.cc +22 -8
  360. data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.h +3 -0
  361. data/lib/libv8/v8/src/ia32/stub-cache-ia32.cc +380 -239
  362. data/lib/libv8/v8/src/ic.cc +198 -234
  363. data/lib/libv8/v8/src/ic.h +32 -30
  364. data/lib/libv8/v8/src/interpreter-irregexp.cc +6 -4
  365. data/lib/libv8/v8/src/isolate.cc +112 -95
  366. data/lib/libv8/v8/src/isolate.h +55 -71
  367. data/lib/libv8/v8/src/json-parser.h +486 -48
  368. data/lib/libv8/v8/src/json.js +28 -23
  369. data/lib/libv8/v8/src/jsregexp.cc +163 -208
  370. data/lib/libv8/v8/src/jsregexp.h +0 -1
  371. data/lib/libv8/v8/src/lithium-allocator-inl.h +29 -27
  372. data/lib/libv8/v8/src/lithium-allocator.cc +22 -17
  373. data/lib/libv8/v8/src/lithium-allocator.h +8 -8
  374. data/lib/libv8/v8/src/lithium.cc +16 -11
  375. data/lib/libv8/v8/src/lithium.h +31 -34
  376. data/lib/libv8/v8/src/liveedit.cc +111 -15
  377. data/lib/libv8/v8/src/liveedit.h +3 -4
  378. data/lib/libv8/v8/src/liveobjectlist.cc +116 -80
  379. data/lib/libv8/v8/src/liveobjectlist.h +2 -2
  380. data/lib/libv8/v8/src/log-inl.h +0 -4
  381. data/lib/libv8/v8/src/log-utils.cc +25 -143
  382. data/lib/libv8/v8/src/log-utils.h +13 -92
  383. data/lib/libv8/v8/src/log.cc +26 -249
  384. data/lib/libv8/v8/src/log.h +6 -17
  385. data/lib/libv8/v8/src/macros.py +9 -6
  386. data/lib/libv8/v8/src/mark-compact.cc +276 -56
  387. data/lib/libv8/v8/src/mark-compact.h +20 -0
  388. data/lib/libv8/v8/src/messages.js +93 -39
  389. data/lib/libv8/v8/src/mips/assembler-mips-inl.h +9 -3
  390. data/lib/libv8/v8/src/mips/assembler-mips.cc +297 -189
  391. data/lib/libv8/v8/src/mips/assembler-mips.h +121 -54
  392. data/lib/libv8/v8/src/mips/builtins-mips.cc +23 -24
  393. data/lib/libv8/v8/src/mips/code-stubs-mips.cc +484 -263
  394. data/lib/libv8/v8/src/mips/code-stubs-mips.h +8 -83
  395. data/lib/libv8/v8/src/mips/codegen-mips.h +0 -2
  396. data/lib/libv8/v8/src/mips/constants-mips.h +37 -11
  397. data/lib/libv8/v8/src/mips/deoptimizer-mips.cc +6 -1
  398. data/lib/libv8/v8/src/mips/frames-mips.h +8 -7
  399. data/lib/libv8/v8/src/mips/full-codegen-mips.cc +258 -419
  400. data/lib/libv8/v8/src/mips/ic-mips.cc +181 -121
  401. data/lib/libv8/v8/src/mips/macro-assembler-mips.cc +640 -382
  402. data/lib/libv8/v8/src/mips/macro-assembler-mips.h +94 -89
  403. data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.cc +23 -10
  404. data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.h +6 -1
  405. data/lib/libv8/v8/src/mips/simulator-mips.cc +249 -49
  406. data/lib/libv8/v8/src/mips/simulator-mips.h +25 -1
  407. data/lib/libv8/v8/src/mips/stub-cache-mips.cc +373 -161
  408. data/lib/libv8/v8/src/mirror-debugger.js +55 -8
  409. data/lib/libv8/v8/src/misc-intrinsics.h +89 -0
  410. data/lib/libv8/v8/src/mksnapshot.cc +36 -4
  411. data/lib/libv8/v8/src/natives.h +5 -2
  412. data/lib/libv8/v8/src/objects-debug.cc +73 -6
  413. data/lib/libv8/v8/src/objects-inl.h +529 -164
  414. data/lib/libv8/v8/src/objects-printer.cc +67 -12
  415. data/lib/libv8/v8/src/objects-visiting.cc +13 -2
  416. data/lib/libv8/v8/src/objects-visiting.h +41 -1
  417. data/lib/libv8/v8/src/objects.cc +2200 -1177
  418. data/lib/libv8/v8/src/objects.h +912 -283
  419. data/lib/libv8/v8/src/parser.cc +566 -371
  420. data/lib/libv8/v8/src/parser.h +35 -33
  421. data/lib/libv8/v8/src/platform-cygwin.cc +10 -25
  422. data/lib/libv8/v8/src/platform-freebsd.cc +4 -29
  423. data/lib/libv8/v8/src/platform-linux.cc +60 -57
  424. data/lib/libv8/v8/src/platform-macos.cc +4 -27
  425. data/lib/libv8/v8/src/platform-nullos.cc +3 -16
  426. data/lib/libv8/v8/src/platform-openbsd.cc +247 -85
  427. data/lib/libv8/v8/src/platform-posix.cc +43 -1
  428. data/lib/libv8/v8/src/platform-solaris.cc +151 -112
  429. data/lib/libv8/v8/src/platform-tls.h +1 -1
  430. data/lib/libv8/v8/src/platform-win32.cc +65 -39
  431. data/lib/libv8/v8/src/platform.h +17 -14
  432. data/lib/libv8/v8/src/preparse-data-format.h +2 -2
  433. data/lib/libv8/v8/src/preparse-data.h +8 -2
  434. data/lib/libv8/v8/src/preparser-api.cc +2 -18
  435. data/lib/libv8/v8/src/preparser.cc +106 -65
  436. data/lib/libv8/v8/src/preparser.h +26 -5
  437. data/lib/libv8/v8/src/prettyprinter.cc +25 -43
  438. data/lib/libv8/v8/src/profile-generator-inl.h +0 -4
  439. data/lib/libv8/v8/src/profile-generator.cc +213 -34
  440. data/lib/libv8/v8/src/profile-generator.h +9 -9
  441. data/lib/libv8/v8/src/property.h +1 -0
  442. data/lib/libv8/v8/src/proxy.js +74 -4
  443. data/lib/libv8/v8/src/regexp-macro-assembler.cc +10 -6
  444. data/lib/libv8/v8/src/regexp.js +16 -11
  445. data/lib/libv8/v8/src/rewriter.cc +24 -133
  446. data/lib/libv8/v8/src/runtime-profiler.cc +27 -151
  447. data/lib/libv8/v8/src/runtime-profiler.h +5 -31
  448. data/lib/libv8/v8/src/runtime.cc +1450 -681
  449. data/lib/libv8/v8/src/runtime.h +47 -31
  450. data/lib/libv8/v8/src/runtime.js +2 -1
  451. data/lib/libv8/v8/src/scanner-base.cc +358 -220
  452. data/lib/libv8/v8/src/scanner-base.h +30 -138
  453. data/lib/libv8/v8/src/scanner.cc +0 -18
  454. data/lib/libv8/v8/src/scanner.h +0 -15
  455. data/lib/libv8/v8/src/scopeinfo.cc +3 -1
  456. data/lib/libv8/v8/src/scopeinfo.h +1 -6
  457. data/lib/libv8/v8/src/scopes.cc +243 -253
  458. data/lib/libv8/v8/src/scopes.h +58 -109
  459. data/lib/libv8/v8/src/serialize.cc +12 -54
  460. data/lib/libv8/v8/src/serialize.h +47 -0
  461. data/lib/libv8/v8/src/small-pointer-list.h +25 -0
  462. data/lib/libv8/v8/src/spaces-inl.h +4 -50
  463. data/lib/libv8/v8/src/spaces.cc +64 -131
  464. data/lib/libv8/v8/src/spaces.h +19 -70
  465. data/lib/libv8/v8/src/string-stream.cc +3 -1
  466. data/lib/libv8/v8/src/string.js +10 -6
  467. data/lib/libv8/v8/src/strtod.cc +7 -3
  468. data/lib/libv8/v8/src/stub-cache.cc +59 -129
  469. data/lib/libv8/v8/src/stub-cache.h +42 -54
  470. data/lib/libv8/v8/src/third_party/valgrind/valgrind.h +1447 -1339
  471. data/lib/libv8/v8/src/token.cc +4 -4
  472. data/lib/libv8/v8/src/token.h +6 -5
  473. data/lib/libv8/v8/src/type-info.cc +173 -129
  474. data/lib/libv8/v8/src/type-info.h +40 -22
  475. data/lib/libv8/v8/src/utils.cc +25 -304
  476. data/lib/libv8/v8/src/utils.h +118 -3
  477. data/lib/libv8/v8/src/v8-counters.h +3 -6
  478. data/lib/libv8/v8/src/v8.cc +34 -27
  479. data/lib/libv8/v8/src/v8.h +7 -7
  480. data/lib/libv8/v8/src/v8conversions.cc +129 -0
  481. data/lib/libv8/v8/src/v8conversions.h +60 -0
  482. data/lib/libv8/v8/src/v8globals.h +15 -6
  483. data/lib/libv8/v8/src/v8natives.js +300 -78
  484. data/lib/libv8/v8/src/v8threads.cc +14 -6
  485. data/lib/libv8/v8/src/v8threads.h +4 -1
  486. data/lib/libv8/v8/src/v8utils.cc +360 -0
  487. data/lib/libv8/v8/src/v8utils.h +17 -66
  488. data/lib/libv8/v8/src/variables.cc +7 -12
  489. data/lib/libv8/v8/src/variables.h +12 -10
  490. data/lib/libv8/v8/src/version.cc +2 -2
  491. data/lib/libv8/v8/src/vm-state-inl.h +0 -41
  492. data/lib/libv8/v8/src/vm-state.h +0 -11
  493. data/lib/libv8/v8/src/weakmap.js +103 -0
  494. data/lib/libv8/v8/src/x64/assembler-x64.h +6 -3
  495. data/lib/libv8/v8/src/x64/builtins-x64.cc +25 -22
  496. data/lib/libv8/v8/src/x64/code-stubs-x64.cc +523 -250
  497. data/lib/libv8/v8/src/x64/code-stubs-x64.h +8 -71
  498. data/lib/libv8/v8/src/x64/codegen-x64.cc +1 -0
  499. data/lib/libv8/v8/src/x64/codegen-x64.h +0 -2
  500. data/lib/libv8/v8/src/x64/cpu-x64.cc +2 -1
  501. data/lib/libv8/v8/src/x64/deoptimizer-x64.cc +40 -8
  502. data/lib/libv8/v8/src/x64/disasm-x64.cc +12 -10
  503. data/lib/libv8/v8/src/x64/frames-x64.h +7 -6
  504. data/lib/libv8/v8/src/x64/full-codegen-x64.cc +310 -415
  505. data/lib/libv8/v8/src/x64/ic-x64.cc +180 -117
  506. data/lib/libv8/v8/src/x64/lithium-codegen-x64.cc +411 -523
  507. data/lib/libv8/v8/src/x64/lithium-codegen-x64.h +11 -6
  508. data/lib/libv8/v8/src/x64/lithium-x64.cc +191 -216
  509. data/lib/libv8/v8/src/x64/lithium-x64.h +112 -263
  510. data/lib/libv8/v8/src/x64/macro-assembler-x64.cc +177 -61
  511. data/lib/libv8/v8/src/x64/macro-assembler-x64.h +23 -7
  512. data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.cc +21 -9
  513. data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.h +6 -0
  514. data/lib/libv8/v8/src/x64/stub-cache-x64.cc +273 -107
  515. data/lib/libv8/v8/src/zone.cc +31 -22
  516. data/lib/libv8/v8/src/zone.h +12 -6
  517. data/lib/libv8/v8/tools/codemap.js +8 -0
  518. data/lib/libv8/v8/tools/gcmole/Makefile +43 -0
  519. data/lib/libv8/v8/tools/gcmole/gcmole.lua +0 -2
  520. data/lib/libv8/v8/tools/gdb-v8-support.py +154 -0
  521. data/lib/libv8/v8/tools/grokdump.py +44 -35
  522. data/lib/libv8/v8/tools/gyp/v8.gyp +94 -248
  523. data/lib/libv8/v8/tools/js2c.py +83 -52
  524. data/lib/libv8/v8/tools/linux-tick-processor +4 -6
  525. data/lib/libv8/v8/tools/ll_prof.py +3 -3
  526. data/lib/libv8/v8/tools/oom_dump/README +3 -1
  527. data/lib/libv8/v8/tools/presubmit.py +11 -4
  528. data/lib/libv8/v8/tools/profile.js +46 -2
  529. data/lib/libv8/v8/tools/splaytree.js +11 -0
  530. data/lib/libv8/v8/tools/stats-viewer.py +15 -11
  531. data/lib/libv8/v8/tools/test-wrapper-gypbuild.py +227 -0
  532. data/lib/libv8/v8/tools/test.py +28 -8
  533. data/lib/libv8/v8/tools/tickprocessor.js +0 -16
  534. data/lib/libv8/version.rb +1 -1
  535. data/libv8.gemspec +2 -2
  536. metadata +31 -19
  537. data/lib/libv8/scons/engine/SCons/Tool/f03.py +0 -63
  538. data/lib/libv8/v8/src/json-parser.cc +0 -504
@@ -0,0 +1,171 @@
1
+ # Copyright 2011 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
+
29
+ # Variable default definitions. Override them by exporting them in your shell.
30
+ CXX ?= "g++" # For distcc: export CXX="distcc g++"
31
+ LINK ?= "g++"
32
+ OUTDIR ?= out
33
+ TESTJOBS ?= -j16
34
+ GYPFLAGS ?=
35
+
36
+ # Special build flags. Use them like this: "make library=shared"
37
+
38
+ # library=shared || component=shared_library
39
+ ifeq ($(library), shared)
40
+ GYPFLAGS += -Dcomponent=shared_library
41
+ endif
42
+ ifdef component
43
+ GYPFLAGS += -Dcomponent=$(component)
44
+ endif
45
+ # console=readline
46
+ ifdef console
47
+ GYPFLAGS += -Dconsole=$(console)
48
+ endif
49
+ # disassembler=on
50
+ ifeq ($(disassembler), on)
51
+ GYPFLAGS += -Dv8_enable_disassembler=1
52
+ endif
53
+ # snapshot=off
54
+ ifeq ($(snapshot), off)
55
+ GYPFLAGS += -Dv8_use_snapshot='false'
56
+ endif
57
+ # gdbjit=on
58
+ ifeq ($(gdbjit), on)
59
+ GYPFLAGS += -Dv8_enable_gdbjit=1
60
+ endif
61
+ # liveobjectlist=on
62
+ ifeq ($(liveobjectlist), on)
63
+ GYPFLAGS += -Dv8_use_liveobjectlist=true
64
+ endif
65
+ # vfp3=off
66
+ ifeq ($(vfp3), off)
67
+ GYPFLAGS += -Dv8_can_use_vfp_instructions=false
68
+ else
69
+ GYPFLAGS += -Dv8_can_use_vfp_instructions=true
70
+ endif
71
+
72
+ # ----------------- available targets: --------------------
73
+ # - any arch listed in ARCHES (see below)
74
+ # - any mode listed in MODES
75
+ # - every combination <arch>.<mode>, e.g. "ia32.release"
76
+ # - any of the above with .check appended, e.g. "ia32.release.check"
77
+ # - default (no target specified): build all ARCHES and MODES
78
+ # - "check": build all targets and run all tests
79
+ # - "<arch>.clean" for any <arch> in ARCHES
80
+ # - "clean": clean all ARCHES
81
+
82
+ # ----------------- internal stuff ------------------------
83
+
84
+ # Architectures and modes to be compiled. Consider these to be internal
85
+ # variables, don't override them (use the targets instead).
86
+ ARCHES = ia32 x64 arm
87
+ MODES = release debug
88
+
89
+ # List of files that trigger Makefile regeneration:
90
+ GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \
91
+ preparser/preparser.gyp samples/samples.gyp src/d8.gyp \
92
+ test/cctest/cctest.gyp tools/gyp/v8.gyp
93
+
94
+ # Generates all combinations of ARCHES and MODES, e.g. "ia32.release".
95
+ BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES)))
96
+ # Generates corresponding test targets, e.g. "ia32.release.check".
97
+ CHECKS = $(addsuffix .check,$(BUILDS))
98
+ # File where previously used GYPFLAGS are stored.
99
+ ENVFILE = $(OUTDIR)/environment
100
+
101
+ .PHONY: all clean $(ENVFILE).new \
102
+ $(ARCHES) $(MODES) $(BUILDS) $(addsuffix .clean,$(ARCHES))
103
+
104
+ # Target definitions. "all" is the default.
105
+ all: $(MODES)
106
+
107
+ # Compile targets. MODES and ARCHES are convenience targets.
108
+ .SECONDEXPANSION:
109
+ $(MODES): $(addsuffix .$$@,$(ARCHES))
110
+
111
+ $(ARCHES): $(addprefix $$@.,$(MODES))
112
+
113
+ # Defines how to build a particular target (e.g. ia32.release).
114
+ $(BUILDS): $(OUTDIR)/Makefile-$$(basename $$@)
115
+ @$(MAKE) -C "$(OUTDIR)" -f Makefile-$(basename $@) \
116
+ CXX="$(CXX)" LINK="$(LINK)" \
117
+ BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
118
+ python -c "print raw_input().capitalize()") \
119
+ builddir="$(shell pwd)/$(OUTDIR)/$@"
120
+
121
+ # Test targets.
122
+ check: all
123
+ @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR)
124
+
125
+ $(addsuffix .check,$(MODES)): $$(basename $$@)
126
+ @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
127
+ --mode=$(basename $@)
128
+
129
+ $(addsuffix .check,$(ARCHES)): $$(basename $$@)
130
+ @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
131
+ --arch=$(basename $@)
132
+
133
+ $(CHECKS): $$(basename $$@)
134
+ @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
135
+ --arch-and-mode=$(basename $@)
136
+
137
+ # Clean targets. You can clean each architecture individually, or everything.
138
+ $(addsuffix .clean,$(ARCHES)):
139
+ rm -f $(OUTDIR)/Makefile-$(basename $@)
140
+ rm -rf $(OUTDIR)/$(basename $@).release
141
+ rm -rf $(OUTDIR)/$(basename $@).debug
142
+ find $(OUTDIR) -regex '.*\(host\|target\)-$(basename $@)\.mk' -delete
143
+
144
+ clean: $(addsuffix .clean,$(ARCHES))
145
+
146
+ # GYP file generation targets.
147
+ $(OUTDIR)/Makefile-ia32: $(GYPFILES) $(ENVFILE)
148
+ build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
149
+ -Ibuild/standalone.gypi --depth=. -Dtarget_arch=ia32 \
150
+ -S-ia32 $(GYPFLAGS)
151
+
152
+ $(OUTDIR)/Makefile-x64: $(GYPFILES) $(ENVFILE)
153
+ build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
154
+ -Ibuild/standalone.gypi --depth=. -Dtarget_arch=x64 \
155
+ -S-x64 $(GYPFLAGS)
156
+
157
+ $(OUTDIR)/Makefile-arm: $(GYPFILES) $(ENVFILE)
158
+ build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
159
+ -Ibuild/standalone.gypi --depth=. -Ibuild/armu.gypi \
160
+ -S-arm $(GYPFLAGS)
161
+
162
+ # Replaces the old with the new environment file if they're different, which
163
+ # will trigger GYP to regenerate Makefiles.
164
+ $(ENVFILE): $(ENVFILE).new
165
+ @if test -r $(ENVFILE) && cmp $(ENVFILE).new $(ENVFILE) >/dev/null; \
166
+ then rm $(ENVFILE).new; \
167
+ else mv $(ENVFILE).new $(ENVFILE); fi
168
+
169
+ # Stores current GYPFLAGS in a file.
170
+ $(ENVFILE).new:
171
+ @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new;
@@ -60,26 +60,17 @@ LIBRARY_FLAGS = {
60
60
  'mode:debug': {
61
61
  'CPPDEFINES': ['V8_ENABLE_CHECKS', 'OBJECT_PRINT']
62
62
  },
63
- 'vmstate:on': {
64
- 'CPPDEFINES': ['ENABLE_VMSTATE_TRACKING'],
65
- },
66
63
  'objectprint:on': {
67
64
  'CPPDEFINES': ['OBJECT_PRINT'],
68
65
  },
69
- 'protectheap:on': {
70
- 'CPPDEFINES': ['ENABLE_VMSTATE_TRACKING', 'ENABLE_HEAP_PROTECTION'],
71
- },
72
- 'profilingsupport:on': {
73
- 'CPPDEFINES': ['ENABLE_VMSTATE_TRACKING', 'ENABLE_LOGGING_AND_PROFILING'],
74
- },
75
66
  'debuggersupport:on': {
76
67
  'CPPDEFINES': ['ENABLE_DEBUGGER_SUPPORT'],
77
68
  },
78
69
  'inspector:on': {
79
70
  'CPPDEFINES': ['INSPECTOR'],
80
71
  },
81
- 'fasttls:on': {
82
- 'CPPDEFINES': ['V8_FAST_TLS'],
72
+ 'fasttls:off': {
73
+ 'CPPDEFINES': ['V8_NO_FAST_TLS'],
83
74
  },
84
75
  'liveobjectlist:on': {
85
76
  'CPPDEFINES': ['ENABLE_DEBUGGER_SUPPORT', 'INSPECTOR',
@@ -89,7 +80,7 @@ LIBRARY_FLAGS = {
89
80
  'gcc': {
90
81
  'all': {
91
82
  'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'],
92
- 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'],
83
+ 'CXXFLAGS': ['-fno-rtti', '-fno-exceptions'],
93
84
  },
94
85
  'visibility:hidden': {
95
86
  # Use visibility=default to disable this.
@@ -162,13 +153,19 @@ LIBRARY_FLAGS = {
162
153
  }
163
154
  },
164
155
  'armeabi:softfp' : {
165
- 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0', 'CAN_USE_VFP_INSTRUCTIONS'],
156
+ 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0'],
157
+ 'vfp3:on': {
158
+ 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
159
+ },
166
160
  'simulator:none': {
167
161
  'CCFLAGS': ['-mfloat-abi=softfp'],
168
162
  }
169
163
  },
170
164
  'armeabi:hard' : {
171
- 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=1', 'CAN_USE_VFP_INSTRUCTIONS'],
165
+ 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=1'],
166
+ 'vfp3:on': {
167
+ 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
168
+ },
172
169
  'simulator:none': {
173
170
  'CCFLAGS': ['-mfloat-abi=hard'],
174
171
  }
@@ -230,7 +227,7 @@ LIBRARY_FLAGS = {
230
227
  'msvc': {
231
228
  'all': {
232
229
  'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'],
233
- 'CXXFLAGS': ['$CCFLAGS', '/GR-', '/Gy'],
230
+ 'CXXFLAGS': ['/GR-', '/Gy'],
234
231
  'CPPDEFINES': ['WIN32'],
235
232
  'LINKFLAGS': ['/INCREMENTAL:NO', '/NXCOMPAT', '/IGNORE:4221'],
236
233
  'CCPDBFLAGS': ['/Zi']
@@ -400,16 +397,20 @@ DTOA_EXTRA_FLAGS = {
400
397
  CCTEST_EXTRA_FLAGS = {
401
398
  'all': {
402
399
  'CPPPATH': [join(root_dir, 'src')],
400
+ 'library:shared': {
401
+ 'CPPDEFINES': ['USING_V8_SHARED']
402
+ },
403
403
  },
404
404
  'gcc': {
405
405
  'all': {
406
406
  'LIBPATH': [abspath('.')],
407
407
  'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'],
408
- 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'],
408
+ 'CXXFLAGS': ['-fno-rtti', '-fno-exceptions'],
409
409
  'LINKFLAGS': ['$CCFLAGS'],
410
410
  },
411
411
  'os:linux': {
412
412
  'LIBS': ['pthread'],
413
+ 'CCFLAGS': ['-Wno-unused-but-set-variable'],
413
414
  },
414
415
  'os:macos': {
415
416
  'LIBS': ['pthread'],
@@ -436,15 +437,12 @@ CCTEST_EXTRA_FLAGS = {
436
437
  'CPPDEFINES': ['_HAS_EXCEPTIONS=0'],
437
438
  'LIBS': ['winmm', 'ws2_32']
438
439
  },
439
- 'library:shared': {
440
- 'CPPDEFINES': ['USING_V8_SHARED']
441
- },
442
440
  'arch:ia32': {
443
441
  'CPPDEFINES': ['V8_TARGET_ARCH_IA32']
444
442
  },
445
443
  'arch:x64': {
446
444
  'CPPDEFINES': ['V8_TARGET_ARCH_X64'],
447
- 'LINKFLAGS': ['/STACK:2091752']
445
+ 'LINKFLAGS': ['/STACK:2097152']
448
446
  },
449
447
  }
450
448
  }
@@ -453,12 +451,15 @@ CCTEST_EXTRA_FLAGS = {
453
451
  SAMPLE_FLAGS = {
454
452
  'all': {
455
453
  'CPPPATH': [join(abspath('.'), 'include')],
454
+ 'library:shared': {
455
+ 'CPPDEFINES': ['USING_V8_SHARED']
456
+ },
456
457
  },
457
458
  'gcc': {
458
459
  'all': {
459
460
  'LIBPATH': ['.'],
460
461
  'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'],
461
- 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'],
462
+ 'CXXFLAGS': ['-fno-rtti', '-fno-exceptions'],
462
463
  'LINKFLAGS': ['$CCFLAGS'],
463
464
  },
464
465
  'os:linux': {
@@ -472,6 +473,9 @@ SAMPLE_FLAGS = {
472
473
  'LIBS': ['execinfo', 'pthread']
473
474
  },
474
475
  'os:solaris': {
476
+ # On Solaris, to get isinf, INFINITY, fpclassify and other macros one
477
+ # needs to define __C99FEATURES__.
478
+ 'CPPDEFINES': ['__C99FEATURES__'],
475
479
  'LIBPATH' : ['/usr/local/lib'],
476
480
  'LIBS': ['m', 'pthread', 'socket', 'nsl', 'rt'],
477
481
  'LINKFLAGS': ['-mt']
@@ -498,7 +502,10 @@ SAMPLE_FLAGS = {
498
502
  }
499
503
  },
500
504
  'armeabi:hard' : {
501
- 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=1', 'CAN_USE_VFP_INSTRUCTIONS'],
505
+ 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=1'],
506
+ 'vfp3:on': {
507
+ 'CPPDEFINES' : ['CAN_USE_VFP_INSTRUCTIONS']
508
+ },
502
509
  'simulator:none': {
503
510
  'CCFLAGS': ['-mfloat-abi=hard'],
504
511
  }
@@ -572,9 +579,6 @@ SAMPLE_FLAGS = {
572
579
  'verbose:on': {
573
580
  'LINKFLAGS': ['/VERBOSE']
574
581
  },
575
- 'library:shared': {
576
- 'CPPDEFINES': ['USING_V8_SHARED']
577
- },
578
582
  'prof:on': {
579
583
  'LINKFLAGS': ['/MAP']
580
584
  },
@@ -606,7 +610,7 @@ SAMPLE_FLAGS = {
606
610
  },
607
611
  'arch:x64': {
608
612
  'CPPDEFINES': ['V8_TARGET_ARCH_X64', 'WIN32'],
609
- 'LINKFLAGS': ['/MACHINE:X64', '/STACK:2091752']
613
+ 'LINKFLAGS': ['/MACHINE:X64', '/STACK:2097152']
610
614
  },
611
615
  'mode:debug': {
612
616
  'CCFLAGS': ['/Od'],
@@ -625,13 +629,16 @@ SAMPLE_FLAGS = {
625
629
 
626
630
  PREPARSER_FLAGS = {
627
631
  'all': {
628
- 'CPPPATH': [join(abspath('.'), 'include'), join(abspath('.'), 'src')]
632
+ 'CPPPATH': [join(abspath('.'), 'include'), join(abspath('.'), 'src')],
633
+ 'library:shared': {
634
+ 'CPPDEFINES': ['USING_V8_SHARED']
635
+ },
629
636
  },
630
637
  'gcc': {
631
638
  'all': {
632
639
  'LIBPATH': ['.'],
633
640
  'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'],
634
- 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'],
641
+ 'CXXFLAGS': ['-fno-rtti', '-fno-exceptions'],
635
642
  'LINKFLAGS': ['$CCFLAGS'],
636
643
  },
637
644
  'os:win32': {
@@ -712,6 +719,9 @@ PREPARSER_FLAGS = {
712
719
  'CCFLAGS': ['-g', '-O0'],
713
720
  'CPPDEFINES': ['DEBUG']
714
721
  },
722
+ 'os:freebsd': {
723
+ 'LIBPATH' : ['/usr/local/lib'],
724
+ },
715
725
  },
716
726
  'msvc': {
717
727
  'all': {
@@ -724,9 +734,6 @@ PREPARSER_FLAGS = {
724
734
  'verbose:on': {
725
735
  'LINKFLAGS': ['/VERBOSE']
726
736
  },
727
- 'library:shared': {
728
- 'CPPDEFINES': ['USING_V8_SHARED']
729
- },
730
737
  'prof:on': {
731
738
  'LINKFLAGS': ['/MAP']
732
739
  },
@@ -758,7 +765,7 @@ PREPARSER_FLAGS = {
758
765
  },
759
766
  'arch:x64': {
760
767
  'CPPDEFINES': ['V8_TARGET_ARCH_X64', 'WIN32'],
761
- 'LINKFLAGS': ['/MACHINE:X64', '/STACK:2091752']
768
+ 'LINKFLAGS': ['/MACHINE:X64', '/STACK:2097152']
762
769
  },
763
770
  'mode:debug': {
764
771
  'CCFLAGS': ['/Od'],
@@ -776,10 +783,17 @@ PREPARSER_FLAGS = {
776
783
 
777
784
 
778
785
  D8_FLAGS = {
786
+ 'all': {
787
+ 'library:shared': {
788
+ 'CPPDEFINES': ['V8_SHARED'],
789
+ 'LIBS': ['v8'],
790
+ 'LIBPATH': ['.']
791
+ },
792
+ },
779
793
  'gcc': {
780
794
  'all': {
781
795
  'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'],
782
- 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'],
796
+ 'CXXFLAGS': ['-fno-rtti', '-fno-exceptions'],
783
797
  'LINKFLAGS': ['$CCFLAGS'],
784
798
  },
785
799
  'console:readline': {
@@ -807,10 +821,67 @@ D8_FLAGS = {
807
821
  'arch:arm': {
808
822
  'LINKFLAGS': ARM_LINK_FLAGS
809
823
  },
824
+ 'compress_startup_data:bz2': {
825
+ 'CPPDEFINES': ['COMPRESS_STARTUP_DATA_BZ2'],
826
+ 'os:linux': {
827
+ 'LIBS': ['bz2']
828
+ }
829
+ }
810
830
  },
811
831
  'msvc': {
812
832
  'all': {
813
833
  'LIBS': ['winmm', 'ws2_32']
834
+ },
835
+ 'verbose:off': {
836
+ 'CCFLAGS': ['/nologo'],
837
+ 'LINKFLAGS': ['/NOLOGO']
838
+ },
839
+ 'verbose:on': {
840
+ 'LINKFLAGS': ['/VERBOSE']
841
+ },
842
+ 'prof:on': {
843
+ 'LINKFLAGS': ['/MAP']
844
+ },
845
+ 'mode:release': {
846
+ 'CCFLAGS': ['/O2'],
847
+ 'LINKFLAGS': ['/OPT:REF', '/OPT:ICF'],
848
+ 'msvcrt:static': {
849
+ 'CCFLAGS': ['/MT']
850
+ },
851
+ 'msvcrt:shared': {
852
+ 'CCFLAGS': ['/MD']
853
+ },
854
+ 'msvcltcg:on': {
855
+ 'CCFLAGS': ['/GL'],
856
+ 'pgo:off': {
857
+ 'LINKFLAGS': ['/LTCG'],
858
+ },
859
+ },
860
+ 'pgo:instrument': {
861
+ 'LINKFLAGS': ['/LTCG:PGI']
862
+ },
863
+ 'pgo:optimize': {
864
+ 'LINKFLAGS': ['/LTCG:PGO']
865
+ }
866
+ },
867
+ 'arch:ia32': {
868
+ 'CPPDEFINES': ['V8_TARGET_ARCH_IA32', 'WIN32'],
869
+ 'LINKFLAGS': ['/MACHINE:X86']
870
+ },
871
+ 'arch:x64': {
872
+ 'CPPDEFINES': ['V8_TARGET_ARCH_X64', 'WIN32'],
873
+ 'LINKFLAGS': ['/MACHINE:X64', '/STACK:2097152']
874
+ },
875
+ 'mode:debug': {
876
+ 'CCFLAGS': ['/Od'],
877
+ 'LINKFLAGS': ['/DEBUG'],
878
+ 'CPPDEFINES': ['DEBUG'],
879
+ 'msvcrt:static': {
880
+ 'CCFLAGS': ['/MTd']
881
+ },
882
+ 'msvcrt:shared': {
883
+ 'CCFLAGS': ['/MDd']
884
+ }
814
885
  }
815
886
  }
816
887
  }
@@ -917,21 +988,11 @@ SIMPLE_OPTIONS = {
917
988
  'default': 'static',
918
989
  'help': 'the type of library to produce'
919
990
  },
920
- 'vmstate': {
921
- 'values': ['on', 'off'],
922
- 'default': 'off',
923
- 'help': 'enable VM state tracking'
924
- },
925
991
  'objectprint': {
926
992
  'values': ['on', 'off'],
927
993
  'default': 'off',
928
994
  'help': 'enable object printing'
929
995
  },
930
- 'protectheap': {
931
- 'values': ['on', 'off'],
932
- 'default': 'off',
933
- 'help': 'enable heap protection'
934
- },
935
996
  'profilingsupport': {
936
997
  'values': ['on', 'off'],
937
998
  'default': 'on',
@@ -1038,6 +1099,12 @@ SIMPLE_OPTIONS = {
1038
1099
  'default': 'off',
1039
1100
  'help': 'compress startup data (snapshot) [Linux only]'
1040
1101
  },
1102
+ 'vfp3': {
1103
+ 'values': ['on', 'off'],
1104
+ 'default': 'on',
1105
+ 'help': 'use vfp3 instructions when building the snapshot [Arm only]'
1106
+ },
1107
+
1041
1108
  }
1042
1109
 
1043
1110
  ALL_OPTIONS = dict(PLATFORM_OPTIONS, **SIMPLE_OPTIONS)
@@ -1146,8 +1213,8 @@ def VerifyOptions(env):
1146
1213
  return False
1147
1214
  if env['os'] == 'win32' and env['library'] == 'shared' and env['prof'] == 'on':
1148
1215
  Abort("Profiling on windows only supported for static library.")
1149
- if env['gdbjit'] == 'on' and (env['os'] != 'linux' or (env['arch'] != 'ia32' and env['arch'] != 'x64' and env['arch'] != 'arm')):
1150
- Abort("GDBJIT interface is supported only for Intel-compatible (ia32 or x64) Linux target.")
1216
+ if env['gdbjit'] == 'on' and ((env['os'] != 'linux' and env['os'] != 'macos') or (env['arch'] != 'ia32' and env['arch'] != 'x64' and env['arch'] != 'arm')):
1217
+ Abort("GDBJIT interface is supported only for Intel-compatible (ia32 or x64) Linux/OSX target.")
1151
1218
  if env['os'] == 'win32' and env['soname'] == 'on':
1152
1219
  Abort("Shared Object soname not applicable for Windows.")
1153
1220
  if env['soname'] == 'on' and env['library'] == 'static':
@@ -1342,10 +1409,12 @@ def BuildSpecific(env, mode, env_overrides, tools):
1342
1409
  env['SONAME'] = soname
1343
1410
 
1344
1411
  # Build the object files by invoking SCons recursively.
1412
+ d8_env = Environment(tools=tools)
1413
+ d8_env.Replace(**context.flags['d8'])
1345
1414
  (object_files, shell_files, mksnapshot, preparser_files) = env.SConscript(
1346
1415
  join('src', 'SConscript'),
1347
1416
  build_dir=join('obj', target_id),
1348
- exports='context tools',
1417
+ exports='context tools d8_env',
1349
1418
  duplicate=False
1350
1419
  )
1351
1420
 
@@ -1366,16 +1435,20 @@ def BuildSpecific(env, mode, env_overrides, tools):
1366
1435
  pdb_name = library_name + '.dll.pdb'
1367
1436
  library = env.SharedLibrary(library_name, object_files, PDB=pdb_name)
1368
1437
  preparser_pdb_name = preparser_library_name + '.dll.pdb';
1438
+ preparser_soname = 'lib' + preparser_library_name + '.so';
1369
1439
  preparser_library = env.SharedLibrary(preparser_library_name,
1370
1440
  preparser_files,
1371
- PDB=preparser_pdb_name)
1441
+ PDB=preparser_pdb_name,
1442
+ SONAME=preparser_soname)
1372
1443
  context.library_targets.append(library)
1373
1444
  context.library_targets.append(preparser_library)
1374
1445
 
1375
- d8_env = Environment(tools=tools)
1376
- d8_env.Replace(**context.flags['d8'])
1377
1446
  context.ApplyEnvOverrides(d8_env)
1378
- shell = d8_env.Program('d8' + suffix, object_files + shell_files)
1447
+ if context.options['library'] == 'static':
1448
+ shell = d8_env.Program('d8' + suffix, object_files + shell_files)
1449
+ else:
1450
+ shell = d8_env.Program('d8' + suffix, shell_files)
1451
+ d8_env.Depends(shell, library)
1379
1452
  context.d8_targets.append(shell)
1380
1453
 
1381
1454
  for sample in context.samples:
@@ -1411,7 +1484,7 @@ def BuildSpecific(env, mode, env_overrides, tools):
1411
1484
  preparser_object = preparser_env.SConscript(
1412
1485
  join('preparser', 'SConscript'),
1413
1486
  build_dir=join('obj', 'preparser', target_id),
1414
- exports='context',
1487
+ exports='context tools',
1415
1488
  duplicate=False
1416
1489
  )
1417
1490
  preparser_name = join('obj', 'preparser', target_id, 'preparser')