libv8 3.3.10.4 → 3.5.10.beta1

Sign up to get free protection for your applications and to get access to all the features.
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')