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.
- data/lib/libv8/scons/CHANGES.txt +24 -231
- data/lib/libv8/scons/LICENSE.txt +1 -1
- data/lib/libv8/scons/MANIFEST +0 -1
- data/lib/libv8/scons/PKG-INFO +1 -1
- data/lib/libv8/scons/README.txt +9 -9
- data/lib/libv8/scons/RELEASE.txt +75 -77
- data/lib/libv8/scons/engine/SCons/Action.py +6 -22
- data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
- data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
- data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
- data/lib/libv8/scons/engine/SCons/Defaults.py +10 -24
- data/lib/libv8/scons/engine/SCons/Environment.py +19 -118
- data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
- data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
- data/lib/libv8/scons/engine/SCons/Job.py +2 -2
- data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/FS.py +121 -281
- data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/__init__.py +5 -6
- data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/darwin.py +3 -27
- data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
- data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
- data/lib/libv8/scons/engine/SCons/SConsign.py +3 -9
- data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +2 -5
- data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
- data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/Main.py +11 -82
- data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
- data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
- data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
- data/lib/libv8/scons/engine/SCons/Taskmaster.py +2 -10
- data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +2 -19
- data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +6 -9
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +2 -29
- data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
- data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/dmd.py +7 -24
- data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/dvips.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
- data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/install.py +3 -57
- data/lib/libv8/scons/engine/SCons/Tool/intelc.py +25 -65
- data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/jar.py +3 -9
- data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/latex.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/link.py +5 -6
- data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mingw.py +10 -31
- data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mslink.py +9 -61
- data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/msvc.py +11 -21
- data/lib/libv8/scons/engine/SCons/Tool/msvs.py +59 -477
- data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/rmic.py +3 -9
- data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/swig.py +5 -6
- data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/tex.py +43 -96
- data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/yacc.py +2 -12
- data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Util.py +3 -3
- data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
- data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
- data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
- data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
- data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
- data/lib/libv8/scons/engine/SCons/dblite.py +1 -4
- data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
- data/lib/libv8/scons/scons-time.1 +3 -3
- data/lib/libv8/scons/scons.1 +1164 -1170
- data/lib/libv8/scons/sconsign.1 +3 -3
- data/lib/libv8/scons/script/scons +22 -22
- data/lib/libv8/scons/script/scons-time +2 -2
- data/lib/libv8/scons/script/scons.bat +4 -7
- data/lib/libv8/scons/script/sconsign +20 -21
- data/lib/libv8/scons/setup.cfg +1 -0
- data/lib/libv8/scons/setup.py +40 -38
- data/lib/libv8/v8/.gitignore +1 -1
- data/lib/libv8/v8/AUTHORS +2 -0
- data/lib/libv8/v8/ChangeLog +387 -0
- data/lib/libv8/v8/Makefile +171 -0
- data/lib/libv8/v8/SConstruct +124 -51
- data/lib/libv8/v8/build/README.txt +31 -14
- data/lib/libv8/v8/build/all.gyp +11 -4
- data/lib/libv8/v8/build/armu.gypi +6 -2
- data/lib/libv8/v8/build/common.gypi +240 -94
- data/lib/libv8/v8/build/gyp_v8 +32 -4
- data/lib/libv8/v8/build/standalone.gypi +200 -0
- data/lib/libv8/v8/include/v8-debug.h +0 -0
- data/lib/libv8/v8/include/v8-profiler.h +8 -11
- data/lib/libv8/v8/include/v8.h +191 -108
- data/lib/libv8/v8/preparser/SConscript +2 -2
- data/lib/libv8/v8/preparser/preparser-process.cc +3 -3
- data/lib/libv8/v8/preparser/preparser.gyp +42 -0
- data/lib/libv8/v8/src/SConscript +33 -8
- data/lib/libv8/v8/src/accessors.cc +77 -43
- data/lib/libv8/v8/src/api.cc +393 -191
- data/lib/libv8/v8/src/api.h +4 -8
- data/lib/libv8/v8/src/apinatives.js +15 -3
- data/lib/libv8/v8/src/arguments.h +8 -0
- data/lib/libv8/v8/src/arm/assembler-arm.cc +120 -120
- data/lib/libv8/v8/src/arm/assembler-arm.h +92 -43
- data/lib/libv8/v8/src/arm/builtins-arm.cc +32 -39
- data/lib/libv8/v8/src/arm/code-stubs-arm.cc +572 -351
- data/lib/libv8/v8/src/arm/code-stubs-arm.h +8 -77
- data/lib/libv8/v8/src/arm/codegen-arm.h +0 -2
- data/lib/libv8/v8/src/arm/deoptimizer-arm.cc +50 -30
- data/lib/libv8/v8/src/arm/disasm-arm.cc +1 -1
- data/lib/libv8/v8/src/arm/frames-arm.h +9 -5
- data/lib/libv8/v8/src/arm/full-codegen-arm.cc +331 -432
- data/lib/libv8/v8/src/arm/ic-arm.cc +192 -124
- data/lib/libv8/v8/src/arm/lithium-arm.cc +216 -232
- data/lib/libv8/v8/src/arm/lithium-arm.h +106 -259
- data/lib/libv8/v8/src/arm/lithium-codegen-arm.cc +633 -642
- data/lib/libv8/v8/src/arm/lithium-codegen-arm.h +4 -4
- data/lib/libv8/v8/src/arm/lithium-gap-resolver-arm.cc +1 -3
- data/lib/libv8/v8/src/arm/macro-assembler-arm.cc +260 -185
- data/lib/libv8/v8/src/arm/macro-assembler-arm.h +45 -25
- data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.cc +25 -13
- data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.h +3 -0
- data/lib/libv8/v8/src/arm/stub-cache-arm.cc +413 -226
- data/lib/libv8/v8/src/array.js +38 -18
- data/lib/libv8/v8/src/assembler.cc +12 -5
- data/lib/libv8/v8/src/assembler.h +15 -9
- data/lib/libv8/v8/src/ast-inl.h +34 -25
- data/lib/libv8/v8/src/ast.cc +141 -72
- data/lib/libv8/v8/src/ast.h +255 -181
- data/lib/libv8/v8/src/bignum.cc +3 -4
- data/lib/libv8/v8/src/bootstrapper.cc +55 -11
- data/lib/libv8/v8/src/bootstrapper.h +3 -2
- data/lib/libv8/v8/src/builtins.cc +8 -2
- data/lib/libv8/v8/src/builtins.h +4 -0
- data/lib/libv8/v8/src/cached-powers.cc +8 -4
- data/lib/libv8/v8/src/checks.h +3 -3
- data/lib/libv8/v8/src/code-stubs.cc +173 -28
- data/lib/libv8/v8/src/code-stubs.h +104 -148
- data/lib/libv8/v8/src/codegen.cc +8 -8
- data/lib/libv8/v8/src/compilation-cache.cc +2 -47
- data/lib/libv8/v8/src/compilation-cache.h +0 -10
- data/lib/libv8/v8/src/compiler.cc +27 -16
- data/lib/libv8/v8/src/compiler.h +13 -18
- data/lib/libv8/v8/src/contexts.cc +107 -72
- data/lib/libv8/v8/src/contexts.h +70 -34
- data/lib/libv8/v8/src/conversions-inl.h +572 -14
- data/lib/libv8/v8/src/conversions.cc +9 -707
- data/lib/libv8/v8/src/conversions.h +23 -12
- data/lib/libv8/v8/src/cpu-profiler-inl.h +2 -19
- data/lib/libv8/v8/src/cpu-profiler.cc +4 -21
- data/lib/libv8/v8/src/cpu-profiler.h +8 -17
- data/lib/libv8/v8/src/d8-debug.cc +5 -3
- data/lib/libv8/v8/src/d8-debug.h +6 -7
- data/lib/libv8/v8/src/d8-posix.cc +1 -10
- data/lib/libv8/v8/src/d8.cc +721 -219
- data/lib/libv8/v8/src/d8.gyp +37 -12
- data/lib/libv8/v8/src/d8.h +141 -19
- data/lib/libv8/v8/src/d8.js +17 -8
- data/lib/libv8/v8/src/date.js +16 -5
- data/lib/libv8/v8/src/dateparser-inl.h +242 -39
- data/lib/libv8/v8/src/dateparser.cc +38 -4
- data/lib/libv8/v8/src/dateparser.h +170 -28
- data/lib/libv8/v8/src/debug-agent.cc +5 -3
- data/lib/libv8/v8/src/debug-agent.h +11 -7
- data/lib/libv8/v8/src/debug-debugger.js +65 -34
- data/lib/libv8/v8/src/debug.cc +30 -60
- data/lib/libv8/v8/src/debug.h +5 -3
- data/lib/libv8/v8/src/deoptimizer.cc +227 -10
- data/lib/libv8/v8/src/deoptimizer.h +133 -9
- data/lib/libv8/v8/src/disassembler.cc +22 -14
- data/lib/libv8/v8/src/diy-fp.cc +4 -3
- data/lib/libv8/v8/src/diy-fp.h +3 -3
- data/lib/libv8/v8/src/elements.cc +634 -0
- data/lib/libv8/v8/src/elements.h +95 -0
- data/lib/libv8/v8/src/execution.cc +5 -21
- data/lib/libv8/v8/src/extensions/experimental/break-iterator.cc +3 -1
- data/lib/libv8/v8/src/extensions/experimental/break-iterator.h +1 -1
- data/lib/libv8/v8/src/extensions/experimental/collator.cc +6 -2
- data/lib/libv8/v8/src/extensions/experimental/collator.h +1 -2
- data/lib/libv8/v8/src/extensions/experimental/datetime-format.cc +384 -0
- data/lib/libv8/v8/src/extensions/experimental/datetime-format.h +83 -0
- data/lib/libv8/v8/src/extensions/experimental/experimental.gyp +18 -7
- data/lib/libv8/v8/src/extensions/experimental/i18n-extension.cc +12 -16
- data/lib/libv8/v8/src/extensions/experimental/i18n-extension.h +1 -1
- data/lib/libv8/v8/src/extensions/experimental/i18n-js2c.py +126 -0
- data/lib/libv8/v8/src/extensions/experimental/i18n-locale.cc +3 -4
- data/lib/libv8/v8/src/extensions/experimental/i18n-locale.h +1 -1
- data/lib/libv8/v8/src/{shell.h → extensions/experimental/i18n-natives.h} +8 -20
- data/lib/libv8/v8/src/extensions/experimental/i18n-utils.cc +45 -1
- data/lib/libv8/v8/src/extensions/experimental/i18n-utils.h +21 -1
- data/lib/libv8/v8/src/extensions/experimental/i18n.js +211 -11
- data/lib/libv8/v8/src/extensions/experimental/language-matcher.cc +4 -3
- data/lib/libv8/v8/src/extensions/experimental/language-matcher.h +1 -1
- data/lib/libv8/v8/src/extensions/experimental/number-format.cc +374 -0
- data/lib/libv8/v8/src/extensions/experimental/number-format.h +71 -0
- data/lib/libv8/v8/src/factory.cc +89 -18
- data/lib/libv8/v8/src/factory.h +36 -8
- data/lib/libv8/v8/src/flag-definitions.h +11 -44
- data/lib/libv8/v8/src/frames-inl.h +8 -1
- data/lib/libv8/v8/src/frames.cc +39 -3
- data/lib/libv8/v8/src/frames.h +10 -3
- data/lib/libv8/v8/src/full-codegen.cc +311 -293
- data/lib/libv8/v8/src/full-codegen.h +183 -143
- data/lib/libv8/v8/src/func-name-inferrer.cc +29 -15
- data/lib/libv8/v8/src/func-name-inferrer.h +19 -9
- data/lib/libv8/v8/src/gdb-jit.cc +658 -55
- data/lib/libv8/v8/src/gdb-jit.h +6 -2
- data/lib/libv8/v8/src/global-handles.cc +368 -312
- data/lib/libv8/v8/src/global-handles.h +29 -36
- data/lib/libv8/v8/src/globals.h +3 -1
- data/lib/libv8/v8/src/handles.cc +43 -69
- data/lib/libv8/v8/src/handles.h +21 -16
- data/lib/libv8/v8/src/heap-inl.h +11 -13
- data/lib/libv8/v8/src/heap-profiler.cc +0 -999
- data/lib/libv8/v8/src/heap-profiler.h +0 -303
- data/lib/libv8/v8/src/heap.cc +366 -141
- data/lib/libv8/v8/src/heap.h +87 -26
- data/lib/libv8/v8/src/hydrogen-instructions.cc +192 -81
- data/lib/libv8/v8/src/hydrogen-instructions.h +711 -482
- data/lib/libv8/v8/src/hydrogen.cc +1146 -629
- data/lib/libv8/v8/src/hydrogen.h +100 -64
- data/lib/libv8/v8/src/ia32/assembler-ia32.cc +19 -0
- data/lib/libv8/v8/src/ia32/assembler-ia32.h +15 -2
- data/lib/libv8/v8/src/ia32/builtins-ia32.cc +34 -39
- data/lib/libv8/v8/src/ia32/code-stubs-ia32.cc +675 -377
- data/lib/libv8/v8/src/ia32/code-stubs-ia32.h +8 -69
- data/lib/libv8/v8/src/ia32/codegen-ia32.cc +1 -0
- data/lib/libv8/v8/src/ia32/codegen-ia32.h +0 -2
- data/lib/libv8/v8/src/ia32/cpu-ia32.cc +3 -2
- data/lib/libv8/v8/src/ia32/deoptimizer-ia32.cc +28 -3
- data/lib/libv8/v8/src/ia32/disasm-ia32.cc +21 -10
- data/lib/libv8/v8/src/ia32/frames-ia32.h +6 -5
- data/lib/libv8/v8/src/ia32/full-codegen-ia32.cc +459 -465
- data/lib/libv8/v8/src/ia32/ic-ia32.cc +196 -147
- data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.cc +575 -650
- data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.h +19 -21
- data/lib/libv8/v8/src/ia32/lithium-gap-resolver-ia32.cc +7 -2
- data/lib/libv8/v8/src/ia32/lithium-ia32.cc +261 -256
- data/lib/libv8/v8/src/ia32/lithium-ia32.h +234 -335
- data/lib/libv8/v8/src/ia32/macro-assembler-ia32.cc +224 -67
- data/lib/libv8/v8/src/ia32/macro-assembler-ia32.h +63 -19
- data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.cc +22 -8
- data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.h +3 -0
- data/lib/libv8/v8/src/ia32/stub-cache-ia32.cc +380 -239
- data/lib/libv8/v8/src/ic.cc +198 -234
- data/lib/libv8/v8/src/ic.h +32 -30
- data/lib/libv8/v8/src/interpreter-irregexp.cc +6 -4
- data/lib/libv8/v8/src/isolate.cc +112 -95
- data/lib/libv8/v8/src/isolate.h +55 -71
- data/lib/libv8/v8/src/json-parser.h +486 -48
- data/lib/libv8/v8/src/json.js +28 -23
- data/lib/libv8/v8/src/jsregexp.cc +163 -208
- data/lib/libv8/v8/src/jsregexp.h +0 -1
- data/lib/libv8/v8/src/lithium-allocator-inl.h +29 -27
- data/lib/libv8/v8/src/lithium-allocator.cc +22 -17
- data/lib/libv8/v8/src/lithium-allocator.h +8 -8
- data/lib/libv8/v8/src/lithium.cc +16 -11
- data/lib/libv8/v8/src/lithium.h +31 -34
- data/lib/libv8/v8/src/liveedit.cc +111 -15
- data/lib/libv8/v8/src/liveedit.h +3 -4
- data/lib/libv8/v8/src/liveobjectlist.cc +116 -80
- data/lib/libv8/v8/src/liveobjectlist.h +2 -2
- data/lib/libv8/v8/src/log-inl.h +0 -4
- data/lib/libv8/v8/src/log-utils.cc +25 -143
- data/lib/libv8/v8/src/log-utils.h +13 -92
- data/lib/libv8/v8/src/log.cc +26 -249
- data/lib/libv8/v8/src/log.h +6 -17
- data/lib/libv8/v8/src/macros.py +9 -6
- data/lib/libv8/v8/src/mark-compact.cc +276 -56
- data/lib/libv8/v8/src/mark-compact.h +20 -0
- data/lib/libv8/v8/src/messages.js +93 -39
- data/lib/libv8/v8/src/mips/assembler-mips-inl.h +9 -3
- data/lib/libv8/v8/src/mips/assembler-mips.cc +297 -189
- data/lib/libv8/v8/src/mips/assembler-mips.h +121 -54
- data/lib/libv8/v8/src/mips/builtins-mips.cc +23 -24
- data/lib/libv8/v8/src/mips/code-stubs-mips.cc +484 -263
- data/lib/libv8/v8/src/mips/code-stubs-mips.h +8 -83
- data/lib/libv8/v8/src/mips/codegen-mips.h +0 -2
- data/lib/libv8/v8/src/mips/constants-mips.h +37 -11
- data/lib/libv8/v8/src/mips/deoptimizer-mips.cc +6 -1
- data/lib/libv8/v8/src/mips/frames-mips.h +8 -7
- data/lib/libv8/v8/src/mips/full-codegen-mips.cc +258 -419
- data/lib/libv8/v8/src/mips/ic-mips.cc +181 -121
- data/lib/libv8/v8/src/mips/macro-assembler-mips.cc +640 -382
- data/lib/libv8/v8/src/mips/macro-assembler-mips.h +94 -89
- data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.cc +23 -10
- data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.h +6 -1
- data/lib/libv8/v8/src/mips/simulator-mips.cc +249 -49
- data/lib/libv8/v8/src/mips/simulator-mips.h +25 -1
- data/lib/libv8/v8/src/mips/stub-cache-mips.cc +373 -161
- data/lib/libv8/v8/src/mirror-debugger.js +55 -8
- data/lib/libv8/v8/src/misc-intrinsics.h +89 -0
- data/lib/libv8/v8/src/mksnapshot.cc +36 -4
- data/lib/libv8/v8/src/natives.h +5 -2
- data/lib/libv8/v8/src/objects-debug.cc +73 -6
- data/lib/libv8/v8/src/objects-inl.h +529 -164
- data/lib/libv8/v8/src/objects-printer.cc +67 -12
- data/lib/libv8/v8/src/objects-visiting.cc +13 -2
- data/lib/libv8/v8/src/objects-visiting.h +41 -1
- data/lib/libv8/v8/src/objects.cc +2200 -1177
- data/lib/libv8/v8/src/objects.h +912 -283
- data/lib/libv8/v8/src/parser.cc +566 -371
- data/lib/libv8/v8/src/parser.h +35 -33
- data/lib/libv8/v8/src/platform-cygwin.cc +10 -25
- data/lib/libv8/v8/src/platform-freebsd.cc +4 -29
- data/lib/libv8/v8/src/platform-linux.cc +60 -57
- data/lib/libv8/v8/src/platform-macos.cc +4 -27
- data/lib/libv8/v8/src/platform-nullos.cc +3 -16
- data/lib/libv8/v8/src/platform-openbsd.cc +247 -85
- data/lib/libv8/v8/src/platform-posix.cc +43 -1
- data/lib/libv8/v8/src/platform-solaris.cc +151 -112
- data/lib/libv8/v8/src/platform-tls.h +1 -1
- data/lib/libv8/v8/src/platform-win32.cc +65 -39
- data/lib/libv8/v8/src/platform.h +17 -14
- data/lib/libv8/v8/src/preparse-data-format.h +2 -2
- data/lib/libv8/v8/src/preparse-data.h +8 -2
- data/lib/libv8/v8/src/preparser-api.cc +2 -18
- data/lib/libv8/v8/src/preparser.cc +106 -65
- data/lib/libv8/v8/src/preparser.h +26 -5
- data/lib/libv8/v8/src/prettyprinter.cc +25 -43
- data/lib/libv8/v8/src/profile-generator-inl.h +0 -4
- data/lib/libv8/v8/src/profile-generator.cc +213 -34
- data/lib/libv8/v8/src/profile-generator.h +9 -9
- data/lib/libv8/v8/src/property.h +1 -0
- data/lib/libv8/v8/src/proxy.js +74 -4
- data/lib/libv8/v8/src/regexp-macro-assembler.cc +10 -6
- data/lib/libv8/v8/src/regexp.js +16 -11
- data/lib/libv8/v8/src/rewriter.cc +24 -133
- data/lib/libv8/v8/src/runtime-profiler.cc +27 -151
- data/lib/libv8/v8/src/runtime-profiler.h +5 -31
- data/lib/libv8/v8/src/runtime.cc +1450 -681
- data/lib/libv8/v8/src/runtime.h +47 -31
- data/lib/libv8/v8/src/runtime.js +2 -1
- data/lib/libv8/v8/src/scanner-base.cc +358 -220
- data/lib/libv8/v8/src/scanner-base.h +30 -138
- data/lib/libv8/v8/src/scanner.cc +0 -18
- data/lib/libv8/v8/src/scanner.h +0 -15
- data/lib/libv8/v8/src/scopeinfo.cc +3 -1
- data/lib/libv8/v8/src/scopeinfo.h +1 -6
- data/lib/libv8/v8/src/scopes.cc +243 -253
- data/lib/libv8/v8/src/scopes.h +58 -109
- data/lib/libv8/v8/src/serialize.cc +12 -54
- data/lib/libv8/v8/src/serialize.h +47 -0
- data/lib/libv8/v8/src/small-pointer-list.h +25 -0
- data/lib/libv8/v8/src/spaces-inl.h +4 -50
- data/lib/libv8/v8/src/spaces.cc +64 -131
- data/lib/libv8/v8/src/spaces.h +19 -70
- data/lib/libv8/v8/src/string-stream.cc +3 -1
- data/lib/libv8/v8/src/string.js +10 -6
- data/lib/libv8/v8/src/strtod.cc +7 -3
- data/lib/libv8/v8/src/stub-cache.cc +59 -129
- data/lib/libv8/v8/src/stub-cache.h +42 -54
- data/lib/libv8/v8/src/third_party/valgrind/valgrind.h +1447 -1339
- data/lib/libv8/v8/src/token.cc +4 -4
- data/lib/libv8/v8/src/token.h +6 -5
- data/lib/libv8/v8/src/type-info.cc +173 -129
- data/lib/libv8/v8/src/type-info.h +40 -22
- data/lib/libv8/v8/src/utils.cc +25 -304
- data/lib/libv8/v8/src/utils.h +118 -3
- data/lib/libv8/v8/src/v8-counters.h +3 -6
- data/lib/libv8/v8/src/v8.cc +34 -27
- data/lib/libv8/v8/src/v8.h +7 -7
- data/lib/libv8/v8/src/v8conversions.cc +129 -0
- data/lib/libv8/v8/src/v8conversions.h +60 -0
- data/lib/libv8/v8/src/v8globals.h +15 -6
- data/lib/libv8/v8/src/v8natives.js +300 -78
- data/lib/libv8/v8/src/v8threads.cc +14 -6
- data/lib/libv8/v8/src/v8threads.h +4 -1
- data/lib/libv8/v8/src/v8utils.cc +360 -0
- data/lib/libv8/v8/src/v8utils.h +17 -66
- data/lib/libv8/v8/src/variables.cc +7 -12
- data/lib/libv8/v8/src/variables.h +12 -10
- data/lib/libv8/v8/src/version.cc +2 -2
- data/lib/libv8/v8/src/vm-state-inl.h +0 -41
- data/lib/libv8/v8/src/vm-state.h +0 -11
- data/lib/libv8/v8/src/weakmap.js +103 -0
- data/lib/libv8/v8/src/x64/assembler-x64.h +6 -3
- data/lib/libv8/v8/src/x64/builtins-x64.cc +25 -22
- data/lib/libv8/v8/src/x64/code-stubs-x64.cc +523 -250
- data/lib/libv8/v8/src/x64/code-stubs-x64.h +8 -71
- data/lib/libv8/v8/src/x64/codegen-x64.cc +1 -0
- data/lib/libv8/v8/src/x64/codegen-x64.h +0 -2
- data/lib/libv8/v8/src/x64/cpu-x64.cc +2 -1
- data/lib/libv8/v8/src/x64/deoptimizer-x64.cc +40 -8
- data/lib/libv8/v8/src/x64/disasm-x64.cc +12 -10
- data/lib/libv8/v8/src/x64/frames-x64.h +7 -6
- data/lib/libv8/v8/src/x64/full-codegen-x64.cc +310 -415
- data/lib/libv8/v8/src/x64/ic-x64.cc +180 -117
- data/lib/libv8/v8/src/x64/lithium-codegen-x64.cc +411 -523
- data/lib/libv8/v8/src/x64/lithium-codegen-x64.h +11 -6
- data/lib/libv8/v8/src/x64/lithium-x64.cc +191 -216
- data/lib/libv8/v8/src/x64/lithium-x64.h +112 -263
- data/lib/libv8/v8/src/x64/macro-assembler-x64.cc +177 -61
- data/lib/libv8/v8/src/x64/macro-assembler-x64.h +23 -7
- data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.cc +21 -9
- data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.h +6 -0
- data/lib/libv8/v8/src/x64/stub-cache-x64.cc +273 -107
- data/lib/libv8/v8/src/zone.cc +31 -22
- data/lib/libv8/v8/src/zone.h +12 -6
- data/lib/libv8/v8/tools/codemap.js +8 -0
- data/lib/libv8/v8/tools/gcmole/Makefile +43 -0
- data/lib/libv8/v8/tools/gcmole/gcmole.lua +0 -2
- data/lib/libv8/v8/tools/gdb-v8-support.py +154 -0
- data/lib/libv8/v8/tools/grokdump.py +44 -35
- data/lib/libv8/v8/tools/gyp/v8.gyp +94 -248
- data/lib/libv8/v8/tools/js2c.py +83 -52
- data/lib/libv8/v8/tools/linux-tick-processor +4 -6
- data/lib/libv8/v8/tools/ll_prof.py +3 -3
- data/lib/libv8/v8/tools/oom_dump/README +3 -1
- data/lib/libv8/v8/tools/presubmit.py +11 -4
- data/lib/libv8/v8/tools/profile.js +46 -2
- data/lib/libv8/v8/tools/splaytree.js +11 -0
- data/lib/libv8/v8/tools/stats-viewer.py +15 -11
- data/lib/libv8/v8/tools/test-wrapper-gypbuild.py +227 -0
- data/lib/libv8/v8/tools/test.py +28 -8
- data/lib/libv8/v8/tools/tickprocessor.js +0 -16
- data/lib/libv8/version.rb +1 -1
- data/libv8.gemspec +2 -2
- metadata +31 -19
- data/lib/libv8/scons/engine/SCons/Tool/f03.py +0 -63
- data/lib/libv8/v8/src/json-parser.cc +0 -504
data/lib/libv8/v8/build/gyp_v8
CHANGED
|
@@ -38,9 +38,13 @@ import sys
|
|
|
38
38
|
script_dir = os.path.dirname(__file__)
|
|
39
39
|
v8_root = os.path.normpath(os.path.join(script_dir, os.pardir))
|
|
40
40
|
|
|
41
|
+
sys.path.insert(0, os.path.join(v8_root, 'tools'))
|
|
42
|
+
import utils
|
|
43
|
+
|
|
41
44
|
sys.path.insert(0, os.path.join(v8_root, 'build', 'gyp', 'pylib'))
|
|
42
45
|
import gyp
|
|
43
46
|
|
|
47
|
+
|
|
44
48
|
def apply_gyp_environment(file_path=None):
|
|
45
49
|
"""
|
|
46
50
|
Reads in a *.gyp_env file and applies the valid keys to os.environ.
|
|
@@ -68,6 +72,7 @@ def apply_gyp_environment(file_path=None):
|
|
|
68
72
|
else:
|
|
69
73
|
os.environ[var] = val
|
|
70
74
|
|
|
75
|
+
|
|
71
76
|
def additional_include_files(args=[]):
|
|
72
77
|
"""
|
|
73
78
|
Returns a list of additional (.gypi) files to include, without
|
|
@@ -87,8 +92,8 @@ def additional_include_files(args=[]):
|
|
|
87
92
|
if os.path.realpath(path) not in specified_includes:
|
|
88
93
|
result.append(path)
|
|
89
94
|
|
|
90
|
-
# Always include
|
|
91
|
-
AddInclude(os.path.join(script_dir, '
|
|
95
|
+
# Always include standalone.gypi
|
|
96
|
+
AddInclude(os.path.join(script_dir, 'standalone.gypi'))
|
|
92
97
|
|
|
93
98
|
# Optionally add supplemental .gypi files if present.
|
|
94
99
|
supplements = glob.glob(os.path.join(v8_root, '*', 'supplement.gypi'))
|
|
@@ -97,6 +102,14 @@ def additional_include_files(args=[]):
|
|
|
97
102
|
|
|
98
103
|
return result
|
|
99
104
|
|
|
105
|
+
|
|
106
|
+
def run_gyp(args):
|
|
107
|
+
rc = gyp.main(args)
|
|
108
|
+
if rc != 0:
|
|
109
|
+
print 'Error running GYP'
|
|
110
|
+
sys.exit(rc)
|
|
111
|
+
|
|
112
|
+
|
|
100
113
|
if __name__ == '__main__':
|
|
101
114
|
args = sys.argv[1:]
|
|
102
115
|
|
|
@@ -141,5 +154,20 @@ if __name__ == '__main__':
|
|
|
141
154
|
print 'Updating projects from gyp files...'
|
|
142
155
|
sys.stdout.flush()
|
|
143
156
|
|
|
144
|
-
#
|
|
145
|
-
|
|
157
|
+
# Generate for the architectures supported on the given platform.
|
|
158
|
+
gyp_args = list(args)
|
|
159
|
+
gyp_args.append('-Dtarget_arch=ia32')
|
|
160
|
+
if utils.GuessOS() == 'linux':
|
|
161
|
+
gyp_args.append('-S-ia32')
|
|
162
|
+
run_gyp(gyp_args)
|
|
163
|
+
|
|
164
|
+
if utils.GuessOS() == 'linux':
|
|
165
|
+
gyp_args = list(args)
|
|
166
|
+
gyp_args.append('-Dtarget_arch=x64')
|
|
167
|
+
gyp_args.append('-S-x64')
|
|
168
|
+
run_gyp(gyp_args)
|
|
169
|
+
|
|
170
|
+
gyp_args = list(args)
|
|
171
|
+
gyp_args.append('-I' + v8_root + '/build/armu.gypi')
|
|
172
|
+
gyp_args.append('-S-armu')
|
|
173
|
+
run_gyp(gyp_args)
|
|
@@ -0,0 +1,200 @@
|
|
|
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
|
+
# Definitions to be used when building stand-alone V8 binaries.
|
|
29
|
+
|
|
30
|
+
{
|
|
31
|
+
'variables': {
|
|
32
|
+
'library%': 'static_library',
|
|
33
|
+
'component%': 'static_library',
|
|
34
|
+
'visibility%': 'hidden',
|
|
35
|
+
'msvs_multi_core_compile%': '1',
|
|
36
|
+
'variables': {
|
|
37
|
+
'variables': {
|
|
38
|
+
'conditions': [
|
|
39
|
+
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
|
|
40
|
+
# This handles the Linux platforms we generally deal with. Anything
|
|
41
|
+
# else gets passed through, which probably won't work very well; such
|
|
42
|
+
# hosts should pass an explicit target_arch to gyp.
|
|
43
|
+
'host_arch%':
|
|
44
|
+
'<!(uname -m | sed -e "s/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/")',
|
|
45
|
+
}, { # OS!="linux" and OS!="freebsd" and OS!="openbsd"
|
|
46
|
+
'host_arch%': 'ia32',
|
|
47
|
+
}],
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
'host_arch%': '<(host_arch)',
|
|
51
|
+
'target_arch%': '<(host_arch)',
|
|
52
|
+
'v8_target_arch%': '<(target_arch)',
|
|
53
|
+
},
|
|
54
|
+
'host_arch%': '<(host_arch)',
|
|
55
|
+
'target_arch%': '<(target_arch)',
|
|
56
|
+
'v8_target_arch%': '<(v8_target_arch)',
|
|
57
|
+
'conditions': [
|
|
58
|
+
['(v8_target_arch=="arm" and host_arch!="arm") or \
|
|
59
|
+
(v8_target_arch=="x64" and host_arch!="x64")', {
|
|
60
|
+
'want_separate_host_toolset': 1,
|
|
61
|
+
}, {
|
|
62
|
+
'want_separate_host_toolset': 0,
|
|
63
|
+
}],
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
'target_defaults': {
|
|
67
|
+
'default_configuration': 'Debug',
|
|
68
|
+
'configurations': {
|
|
69
|
+
'Debug': {
|
|
70
|
+
'cflags': [ '-g', '-O0' ],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
'conditions': [
|
|
75
|
+
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
|
|
76
|
+
'target_defaults': {
|
|
77
|
+
'cflags': [ '-Wall', '-Werror', '-W', '-Wno-unused-parameter',
|
|
78
|
+
'-Wnon-virtual-dtor', '-pthread', '-fno-rtti',
|
|
79
|
+
'-fno-exceptions', '-pedantic' ],
|
|
80
|
+
'ldflags': [ '-pthread', ],
|
|
81
|
+
'conditions': [
|
|
82
|
+
[ 'target_arch=="ia32"', {
|
|
83
|
+
'cflags': [ '-m32' ],
|
|
84
|
+
'ldflags': [ '-m32' ],
|
|
85
|
+
}],
|
|
86
|
+
[ 'OS=="linux"', {
|
|
87
|
+
'cflags': [ '-ansi' ],
|
|
88
|
+
}],
|
|
89
|
+
[ 'visibility=="hidden"', {
|
|
90
|
+
'cflags': [ '-fvisibility=hidden' ],
|
|
91
|
+
}],
|
|
92
|
+
[ 'component=="shared_library"', {
|
|
93
|
+
'cflags': [ '-fPIC', ],
|
|
94
|
+
}],
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
}], # 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"'
|
|
98
|
+
['OS=="win"', {
|
|
99
|
+
'target_defaults': {
|
|
100
|
+
'defines': [
|
|
101
|
+
'WIN32',
|
|
102
|
+
'_CRT_SECURE_NO_DEPRECATE',
|
|
103
|
+
'_CRT_NONSTDC_NO_DEPRECATE',
|
|
104
|
+
],
|
|
105
|
+
'conditions': [
|
|
106
|
+
['component=="static_library"', {
|
|
107
|
+
'defines': [
|
|
108
|
+
'_HAS_EXCEPTIONS=0',
|
|
109
|
+
],
|
|
110
|
+
}],
|
|
111
|
+
],
|
|
112
|
+
'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'],
|
|
113
|
+
'msvs_disabled_warnings': [4355, 4800],
|
|
114
|
+
'msvs_settings': {
|
|
115
|
+
'VCCLCompilerTool': {
|
|
116
|
+
'MinimalRebuild': 'false',
|
|
117
|
+
'BufferSecurityCheck': 'true',
|
|
118
|
+
'EnableFunctionLevelLinking': 'true',
|
|
119
|
+
'RuntimeTypeInfo': 'false',
|
|
120
|
+
'WarningLevel': '3',
|
|
121
|
+
'WarnAsError': 'true',
|
|
122
|
+
'DebugInformationFormat': '3',
|
|
123
|
+
'Detect64BitPortabilityProblems': 'false',
|
|
124
|
+
'conditions': [
|
|
125
|
+
[ 'msvs_multi_core_compile', {
|
|
126
|
+
'AdditionalOptions': ['/MP'],
|
|
127
|
+
}],
|
|
128
|
+
['component=="shared_library"', {
|
|
129
|
+
'ExceptionHandling': '1', # /EHsc
|
|
130
|
+
}, {
|
|
131
|
+
'ExceptionHandling': '0',
|
|
132
|
+
}],
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
'VCLibrarianTool': {
|
|
136
|
+
'AdditionalOptions': ['/ignore:4221'],
|
|
137
|
+
},
|
|
138
|
+
'VCLinkerTool': {
|
|
139
|
+
'AdditionalDependencies': [
|
|
140
|
+
'ws2_32.lib',
|
|
141
|
+
],
|
|
142
|
+
'GenerateDebugInformation': 'true',
|
|
143
|
+
'MapFileName': '$(OutDir)\\$(TargetName).map',
|
|
144
|
+
'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
|
|
145
|
+
'FixedBaseAddress': '1',
|
|
146
|
+
# LinkIncremental values:
|
|
147
|
+
# 0 == default
|
|
148
|
+
# 1 == /INCREMENTAL:NO
|
|
149
|
+
# 2 == /INCREMENTAL
|
|
150
|
+
'LinkIncremental': '1',
|
|
151
|
+
# SubSystem values:
|
|
152
|
+
# 0 == not set
|
|
153
|
+
# 1 == /SUBSYSTEM:CONSOLE
|
|
154
|
+
# 2 == /SUBSYSTEM:WINDOWS
|
|
155
|
+
'SubSystem': '1',
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
}], # OS=="win"
|
|
160
|
+
['OS=="mac"', {
|
|
161
|
+
'target_defaults': {
|
|
162
|
+
'xcode_settings': {
|
|
163
|
+
'ALWAYS_SEARCH_USER_PATHS': 'NO',
|
|
164
|
+
'GCC_C_LANGUAGE_STANDARD': 'ansi', # -ansi
|
|
165
|
+
'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks
|
|
166
|
+
'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic
|
|
167
|
+
# (Equivalent to -fPIC)
|
|
168
|
+
'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions
|
|
169
|
+
'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti
|
|
170
|
+
'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings
|
|
171
|
+
# GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
|
|
172
|
+
'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
|
|
173
|
+
'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
|
|
174
|
+
'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics
|
|
175
|
+
'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror
|
|
176
|
+
'GCC_VERSION': '4.2',
|
|
177
|
+
'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof
|
|
178
|
+
'MACOSX_DEPLOYMENT_TARGET': '10.4', # -mmacosx-version-min=10.4
|
|
179
|
+
'PREBINDING': 'NO', # No -Wl,-prebind
|
|
180
|
+
'USE_HEADERMAP': 'NO',
|
|
181
|
+
'OTHER_CFLAGS': [
|
|
182
|
+
'-fno-strict-aliasing',
|
|
183
|
+
],
|
|
184
|
+
'WARNING_CFLAGS': [
|
|
185
|
+
'-Wall',
|
|
186
|
+
'-Wendif-labels',
|
|
187
|
+
'-W',
|
|
188
|
+
'-Wno-unused-parameter',
|
|
189
|
+
'-Wnon-virtual-dtor',
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
'target_conditions': [
|
|
193
|
+
['_type!="static_library"', {
|
|
194
|
+
'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
|
|
195
|
+
}],
|
|
196
|
+
], # target_conditions
|
|
197
|
+
}, # target_defaults
|
|
198
|
+
}], # OS=="mac"
|
|
199
|
+
],
|
|
200
|
+
}
|
|
File without changes
|
|
@@ -269,17 +269,10 @@ class V8EXPORT HeapGraphNode {
|
|
|
269
269
|
|
|
270
270
|
/**
|
|
271
271
|
* Returns node id. For the same heap object, the id remains the same
|
|
272
|
-
* across all snapshots.
|
|
273
|
-
* as they only contain aggregated instances.
|
|
272
|
+
* across all snapshots.
|
|
274
273
|
*/
|
|
275
274
|
uint64_t GetId() const;
|
|
276
275
|
|
|
277
|
-
/**
|
|
278
|
-
* Returns the number of instances. Only applicable to aggregated
|
|
279
|
-
* heap snapshots.
|
|
280
|
-
*/
|
|
281
|
-
int GetInstancesCount() const;
|
|
282
|
-
|
|
283
276
|
/** Returns node's own size, in bytes. */
|
|
284
277
|
int GetSelfSize() const;
|
|
285
278
|
|
|
@@ -323,9 +316,7 @@ class V8EXPORT HeapGraphNode {
|
|
|
323
316
|
class V8EXPORT HeapSnapshot {
|
|
324
317
|
public:
|
|
325
318
|
enum Type {
|
|
326
|
-
kFull = 0
|
|
327
|
-
kAggregated = 1 // Snapshot doesn't contain individual heap entries,
|
|
328
|
-
// instead they are grouped by constructor name.
|
|
319
|
+
kFull = 0 // Heap snapshot with all instances and references.
|
|
329
320
|
};
|
|
330
321
|
enum SerializationFormat {
|
|
331
322
|
kJSON = 0 // See format description near 'Serialize' method.
|
|
@@ -346,6 +337,12 @@ class V8EXPORT HeapSnapshot {
|
|
|
346
337
|
/** Returns a node by its id. */
|
|
347
338
|
const HeapGraphNode* GetNodeById(uint64_t id) const;
|
|
348
339
|
|
|
340
|
+
/** Returns total nodes count in the snapshot. */
|
|
341
|
+
int GetNodesCount() const;
|
|
342
|
+
|
|
343
|
+
/** Returns a node by index. */
|
|
344
|
+
const HeapGraphNode* GetNode(int index) const;
|
|
345
|
+
|
|
349
346
|
/**
|
|
350
347
|
* Deletes the snapshot and removes it from HeapProfiler's list.
|
|
351
348
|
* All pointers to nodes, edges and paths previously returned become
|
data/lib/libv8/v8/include/v8.h
CHANGED
|
@@ -80,9 +80,11 @@ namespace v8 {
|
|
|
80
80
|
|
|
81
81
|
class Context;
|
|
82
82
|
class String;
|
|
83
|
+
class StringObject;
|
|
83
84
|
class Value;
|
|
84
85
|
class Utils;
|
|
85
86
|
class Number;
|
|
87
|
+
class NumberObject;
|
|
86
88
|
class Object;
|
|
87
89
|
class Array;
|
|
88
90
|
class Int32;
|
|
@@ -90,6 +92,7 @@ class Uint32;
|
|
|
90
92
|
class External;
|
|
91
93
|
class Primitive;
|
|
92
94
|
class Boolean;
|
|
95
|
+
class BooleanObject;
|
|
93
96
|
class Integer;
|
|
94
97
|
class Function;
|
|
95
98
|
class Date;
|
|
@@ -165,16 +168,15 @@ typedef void (*WeakReferenceCallback)(Persistent<Value> object,
|
|
|
165
168
|
*/
|
|
166
169
|
template <class T> class Handle {
|
|
167
170
|
public:
|
|
168
|
-
|
|
169
171
|
/**
|
|
170
172
|
* Creates an empty handle.
|
|
171
173
|
*/
|
|
172
|
-
inline Handle()
|
|
174
|
+
inline Handle() : val_(0) {}
|
|
173
175
|
|
|
174
176
|
/**
|
|
175
177
|
* Creates a new handle for the specified value.
|
|
176
178
|
*/
|
|
177
|
-
inline explicit Handle(T* val) : val_(val) {
|
|
179
|
+
inline explicit Handle(T* val) : val_(val) {}
|
|
178
180
|
|
|
179
181
|
/**
|
|
180
182
|
* Creates a handle for the contents of the specified handle. This
|
|
@@ -201,14 +203,14 @@ template <class T> class Handle {
|
|
|
201
203
|
*/
|
|
202
204
|
inline bool IsEmpty() const { return val_ == 0; }
|
|
203
205
|
|
|
204
|
-
inline T* operator->() const { return val_; }
|
|
205
|
-
|
|
206
|
-
inline T* operator*() const { return val_; }
|
|
207
|
-
|
|
208
206
|
/**
|
|
209
207
|
* Sets the handle to be empty. IsEmpty() will then return true.
|
|
210
208
|
*/
|
|
211
|
-
inline void Clear() {
|
|
209
|
+
inline void Clear() { val_ = 0; }
|
|
210
|
+
|
|
211
|
+
inline T* operator->() const { return val_; }
|
|
212
|
+
|
|
213
|
+
inline T* operator*() const { return val_; }
|
|
212
214
|
|
|
213
215
|
/**
|
|
214
216
|
* Checks whether two handles are the same.
|
|
@@ -312,7 +314,6 @@ template <class T> class Local : public Handle<T> {
|
|
|
312
314
|
*/
|
|
313
315
|
template <class T> class Persistent : public Handle<T> {
|
|
314
316
|
public:
|
|
315
|
-
|
|
316
317
|
/**
|
|
317
318
|
* Creates an empty persistent handle that doesn't point to any
|
|
318
319
|
* storage cell.
|
|
@@ -586,7 +587,6 @@ class ScriptOrigin {
|
|
|
586
587
|
*/
|
|
587
588
|
class V8EXPORT Script {
|
|
588
589
|
public:
|
|
589
|
-
|
|
590
590
|
/**
|
|
591
591
|
* Compiles the specified script (context-independent).
|
|
592
592
|
*
|
|
@@ -858,7 +858,6 @@ class V8EXPORT StackFrame {
|
|
|
858
858
|
*/
|
|
859
859
|
class Value : public Data {
|
|
860
860
|
public:
|
|
861
|
-
|
|
862
861
|
/**
|
|
863
862
|
* Returns true if this value is the undefined value. See ECMA-262
|
|
864
863
|
* 4.3.10.
|
|
@@ -932,6 +931,26 @@ class Value : public Data {
|
|
|
932
931
|
*/
|
|
933
932
|
V8EXPORT bool IsDate() const;
|
|
934
933
|
|
|
934
|
+
/**
|
|
935
|
+
* Returns true if this value is a Boolean object.
|
|
936
|
+
*/
|
|
937
|
+
V8EXPORT bool IsBooleanObject() const;
|
|
938
|
+
|
|
939
|
+
/**
|
|
940
|
+
* Returns true if this value is a Number object.
|
|
941
|
+
*/
|
|
942
|
+
V8EXPORT bool IsNumberObject() const;
|
|
943
|
+
|
|
944
|
+
/**
|
|
945
|
+
* Returns true if this value is a String object.
|
|
946
|
+
*/
|
|
947
|
+
V8EXPORT bool IsStringObject() const;
|
|
948
|
+
|
|
949
|
+
/**
|
|
950
|
+
* Returns true if this value is a NativeError.
|
|
951
|
+
*/
|
|
952
|
+
V8EXPORT bool IsNativeError() const;
|
|
953
|
+
|
|
935
954
|
/**
|
|
936
955
|
* Returns true if this value is a RegExp.
|
|
937
956
|
*/
|
|
@@ -990,7 +1009,6 @@ class Boolean : public Primitive {
|
|
|
990
1009
|
*/
|
|
991
1010
|
class String : public Primitive {
|
|
992
1011
|
public:
|
|
993
|
-
|
|
994
1012
|
/**
|
|
995
1013
|
* Returns the number of characters in this string.
|
|
996
1014
|
*/
|
|
@@ -1021,29 +1039,30 @@ class String : public Primitive {
|
|
|
1021
1039
|
* \param length The number of characters to copy from the string. For
|
|
1022
1040
|
* WriteUtf8 the number of bytes in the buffer.
|
|
1023
1041
|
* \param nchars_ref The number of characters written, can be NULL.
|
|
1024
|
-
* \param
|
|
1042
|
+
* \param options Various options that might affect performance of this or
|
|
1025
1043
|
* subsequent operations.
|
|
1026
1044
|
* \return The number of characters copied to the buffer excluding the null
|
|
1027
1045
|
* terminator. For WriteUtf8: The number of bytes copied to the buffer
|
|
1028
|
-
* including the null terminator.
|
|
1046
|
+
* including the null terminator (if written).
|
|
1029
1047
|
*/
|
|
1030
|
-
enum
|
|
1031
|
-
|
|
1032
|
-
HINT_MANY_WRITES_EXPECTED = 1
|
|
1048
|
+
enum WriteOptions {
|
|
1049
|
+
NO_OPTIONS = 0,
|
|
1050
|
+
HINT_MANY_WRITES_EXPECTED = 1,
|
|
1051
|
+
NO_NULL_TERMINATION = 2
|
|
1033
1052
|
};
|
|
1034
1053
|
|
|
1035
1054
|
V8EXPORT int Write(uint16_t* buffer,
|
|
1036
1055
|
int start = 0,
|
|
1037
1056
|
int length = -1,
|
|
1038
|
-
|
|
1057
|
+
int options = NO_OPTIONS) const; // UTF-16
|
|
1039
1058
|
V8EXPORT int WriteAscii(char* buffer,
|
|
1040
1059
|
int start = 0,
|
|
1041
1060
|
int length = -1,
|
|
1042
|
-
|
|
1061
|
+
int options = NO_OPTIONS) const; // ASCII
|
|
1043
1062
|
V8EXPORT int WriteUtf8(char* buffer,
|
|
1044
1063
|
int length = -1,
|
|
1045
1064
|
int* nchars_ref = NULL,
|
|
1046
|
-
|
|
1065
|
+
int options = NO_OPTIONS) const; // UTF-8
|
|
1047
1066
|
|
|
1048
1067
|
/**
|
|
1049
1068
|
* A zero length string.
|
|
@@ -1317,7 +1336,7 @@ class Number : public Primitive {
|
|
|
1317
1336
|
static inline Number* Cast(v8::Value* obj);
|
|
1318
1337
|
private:
|
|
1319
1338
|
V8EXPORT Number();
|
|
1320
|
-
static void CheckCast(v8::Value* obj);
|
|
1339
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
|
1321
1340
|
};
|
|
1322
1341
|
|
|
1323
1342
|
|
|
@@ -1440,6 +1459,13 @@ class Object : public Value {
|
|
|
1440
1459
|
|
|
1441
1460
|
V8EXPORT Local<Value> Get(uint32_t index);
|
|
1442
1461
|
|
|
1462
|
+
/**
|
|
1463
|
+
* Gets the property attributes of a property which can be None or
|
|
1464
|
+
* any combination of ReadOnly, DontEnum and DontDelete. Returns
|
|
1465
|
+
* None when the property doesn't exist.
|
|
1466
|
+
*/
|
|
1467
|
+
V8EXPORT PropertyAttribute GetPropertyAttributes(Handle<Value> key);
|
|
1468
|
+
|
|
1443
1469
|
// TODO(1245389): Replace the type-specific versions of these
|
|
1444
1470
|
// functions with generic ones that accept a Handle<Value> key.
|
|
1445
1471
|
V8EXPORT bool Has(Handle<String> key);
|
|
@@ -1469,6 +1495,13 @@ class Object : public Value {
|
|
|
1469
1495
|
*/
|
|
1470
1496
|
V8EXPORT Local<Array> GetPropertyNames();
|
|
1471
1497
|
|
|
1498
|
+
/**
|
|
1499
|
+
* This function has the same functionality as GetPropertyNames but
|
|
1500
|
+
* the returned array doesn't contain the names of properties from
|
|
1501
|
+
* prototype objects.
|
|
1502
|
+
*/
|
|
1503
|
+
V8EXPORT Local<Array> GetOwnPropertyNames();
|
|
1504
|
+
|
|
1472
1505
|
/**
|
|
1473
1506
|
* Get the prototype object. This does not skip objects marked to
|
|
1474
1507
|
* be skipped by __proto__ and it does not consult the security
|
|
@@ -1640,6 +1673,7 @@ class Object : public Value {
|
|
|
1640
1673
|
|
|
1641
1674
|
V8EXPORT static Local<Object> New();
|
|
1642
1675
|
static inline Object* Cast(Value* obj);
|
|
1676
|
+
|
|
1643
1677
|
private:
|
|
1644
1678
|
V8EXPORT Object();
|
|
1645
1679
|
V8EXPORT static void CheckCast(Value* obj);
|
|
@@ -1676,7 +1710,7 @@ class Array : public Object {
|
|
|
1676
1710
|
static inline Array* Cast(Value* obj);
|
|
1677
1711
|
private:
|
|
1678
1712
|
V8EXPORT Array();
|
|
1679
|
-
static void CheckCast(Value* obj);
|
|
1713
|
+
V8EXPORT static void CheckCast(Value* obj);
|
|
1680
1714
|
};
|
|
1681
1715
|
|
|
1682
1716
|
|
|
@@ -1741,6 +1775,63 @@ class Date : public Object {
|
|
|
1741
1775
|
};
|
|
1742
1776
|
|
|
1743
1777
|
|
|
1778
|
+
/**
|
|
1779
|
+
* A Number object (ECMA-262, 4.3.21).
|
|
1780
|
+
*/
|
|
1781
|
+
class NumberObject : public Object {
|
|
1782
|
+
public:
|
|
1783
|
+
V8EXPORT static Local<Value> New(double value);
|
|
1784
|
+
|
|
1785
|
+
/**
|
|
1786
|
+
* Returns the Number held by the object.
|
|
1787
|
+
*/
|
|
1788
|
+
V8EXPORT double NumberValue() const;
|
|
1789
|
+
|
|
1790
|
+
static inline NumberObject* Cast(v8::Value* obj);
|
|
1791
|
+
|
|
1792
|
+
private:
|
|
1793
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
|
1794
|
+
};
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
/**
|
|
1798
|
+
* A Boolean object (ECMA-262, 4.3.15).
|
|
1799
|
+
*/
|
|
1800
|
+
class BooleanObject : public Object {
|
|
1801
|
+
public:
|
|
1802
|
+
V8EXPORT static Local<Value> New(bool value);
|
|
1803
|
+
|
|
1804
|
+
/**
|
|
1805
|
+
* Returns the Boolean held by the object.
|
|
1806
|
+
*/
|
|
1807
|
+
V8EXPORT bool BooleanValue() const;
|
|
1808
|
+
|
|
1809
|
+
static inline BooleanObject* Cast(v8::Value* obj);
|
|
1810
|
+
|
|
1811
|
+
private:
|
|
1812
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
|
1813
|
+
};
|
|
1814
|
+
|
|
1815
|
+
|
|
1816
|
+
/**
|
|
1817
|
+
* A String object (ECMA-262, 4.3.18).
|
|
1818
|
+
*/
|
|
1819
|
+
class StringObject : public Object {
|
|
1820
|
+
public:
|
|
1821
|
+
V8EXPORT static Local<Value> New(Handle<String> value);
|
|
1822
|
+
|
|
1823
|
+
/**
|
|
1824
|
+
* Returns the String held by the object.
|
|
1825
|
+
*/
|
|
1826
|
+
V8EXPORT Local<String> StringValue() const;
|
|
1827
|
+
|
|
1828
|
+
static inline StringObject* Cast(v8::Value* obj);
|
|
1829
|
+
|
|
1830
|
+
private:
|
|
1831
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
|
1832
|
+
};
|
|
1833
|
+
|
|
1834
|
+
|
|
1744
1835
|
/**
|
|
1745
1836
|
* An instance of the built-in RegExp constructor (ECMA-262, 15.10).
|
|
1746
1837
|
*/
|
|
@@ -2140,6 +2231,12 @@ class V8EXPORT FunctionTemplate : public Template {
|
|
|
2140
2231
|
*/
|
|
2141
2232
|
void SetHiddenPrototype(bool value);
|
|
2142
2233
|
|
|
2234
|
+
/**
|
|
2235
|
+
* Sets the ReadOnly flag in the attributes of the 'prototype' property
|
|
2236
|
+
* of functions created from this FunctionTemplate to true.
|
|
2237
|
+
*/
|
|
2238
|
+
void ReadOnlyPrototype();
|
|
2239
|
+
|
|
2143
2240
|
/**
|
|
2144
2241
|
* Returns true if the given object is an instance of this function
|
|
2145
2242
|
* template.
|
|
@@ -2547,23 +2644,6 @@ typedef void (*GCEpilogueCallback)(GCType type, GCCallbackFlags flags);
|
|
|
2547
2644
|
typedef void (*GCCallback)();
|
|
2548
2645
|
|
|
2549
2646
|
|
|
2550
|
-
/**
|
|
2551
|
-
* Profiler modules.
|
|
2552
|
-
*
|
|
2553
|
-
* In V8, profiler consists of several modules: CPU profiler, and different
|
|
2554
|
-
* kinds of heap profiling. Each can be turned on / off independently.
|
|
2555
|
-
* When PROFILER_MODULE_HEAP_SNAPSHOT flag is passed to ResumeProfilerEx,
|
|
2556
|
-
* modules are enabled only temporarily for making a snapshot of the heap.
|
|
2557
|
-
*/
|
|
2558
|
-
enum ProfilerModules {
|
|
2559
|
-
PROFILER_MODULE_NONE = 0,
|
|
2560
|
-
PROFILER_MODULE_CPU = 1,
|
|
2561
|
-
PROFILER_MODULE_HEAP_STATS = 1 << 1,
|
|
2562
|
-
PROFILER_MODULE_JS_CONSTRUCTORS = 1 << 2,
|
|
2563
|
-
PROFILER_MODULE_HEAP_SNAPSHOT = 1 << 16
|
|
2564
|
-
};
|
|
2565
|
-
|
|
2566
|
-
|
|
2567
2647
|
/**
|
|
2568
2648
|
* Collection of V8 heap information.
|
|
2569
2649
|
*
|
|
@@ -2682,7 +2762,6 @@ class V8EXPORT Isolate {
|
|
|
2682
2762
|
void* GetData();
|
|
2683
2763
|
|
|
2684
2764
|
private:
|
|
2685
|
-
|
|
2686
2765
|
Isolate();
|
|
2687
2766
|
Isolate(const Isolate&);
|
|
2688
2767
|
~Isolate();
|
|
@@ -2704,6 +2783,38 @@ class StartupData {
|
|
|
2704
2783
|
int raw_size;
|
|
2705
2784
|
};
|
|
2706
2785
|
|
|
2786
|
+
|
|
2787
|
+
/**
|
|
2788
|
+
* A helper class for driving V8 startup data decompression. It is based on
|
|
2789
|
+
* "CompressedStartupData" API functions from the V8 class. It isn't mandatory
|
|
2790
|
+
* for an embedder to use this class, instead, API functions can be used
|
|
2791
|
+
* directly.
|
|
2792
|
+
*
|
|
2793
|
+
* For an example of the class usage, see the "shell.cc" sample application.
|
|
2794
|
+
*/
|
|
2795
|
+
class V8EXPORT StartupDataDecompressor { // NOLINT
|
|
2796
|
+
public:
|
|
2797
|
+
StartupDataDecompressor();
|
|
2798
|
+
virtual ~StartupDataDecompressor();
|
|
2799
|
+
int Decompress();
|
|
2800
|
+
|
|
2801
|
+
protected:
|
|
2802
|
+
virtual int DecompressData(char* raw_data,
|
|
2803
|
+
int* raw_data_size,
|
|
2804
|
+
const char* compressed_data,
|
|
2805
|
+
int compressed_data_size) = 0;
|
|
2806
|
+
|
|
2807
|
+
private:
|
|
2808
|
+
char** raw_data;
|
|
2809
|
+
};
|
|
2810
|
+
|
|
2811
|
+
|
|
2812
|
+
/**
|
|
2813
|
+
* EntropySource is used as a callback function when v8 needs a source
|
|
2814
|
+
* of entropy.
|
|
2815
|
+
*/
|
|
2816
|
+
typedef bool (*EntropySource)(unsigned char* buffer, size_t length);
|
|
2817
|
+
|
|
2707
2818
|
/**
|
|
2708
2819
|
* Container class for static utility functions.
|
|
2709
2820
|
*/
|
|
@@ -2753,6 +2864,10 @@ class V8EXPORT V8 {
|
|
|
2753
2864
|
* v8::V8::SetDecompressedStartupData(compressed_data);
|
|
2754
2865
|
* ... now V8 can be initialized
|
|
2755
2866
|
* ... make sure the decompressed data stays valid until V8 shutdown
|
|
2867
|
+
*
|
|
2868
|
+
* A helper class StartupDataDecompressor is provided. It implements
|
|
2869
|
+
* the protocol of the interaction described above, and can be used in
|
|
2870
|
+
* most cases instead of calling these API functions directly.
|
|
2756
2871
|
*/
|
|
2757
2872
|
static StartupData::CompressionAlgorithm GetCompressedStartupDataAlgorithm();
|
|
2758
2873
|
static int GetCompressedStartupDataCount();
|
|
@@ -2924,6 +3039,12 @@ class V8EXPORT V8 {
|
|
|
2924
3039
|
*/
|
|
2925
3040
|
static bool Initialize();
|
|
2926
3041
|
|
|
3042
|
+
/**
|
|
3043
|
+
* Allows the host application to provide a callback which can be used
|
|
3044
|
+
* as a source of entropy for random number generators.
|
|
3045
|
+
*/
|
|
3046
|
+
static void SetEntropySource(EntropySource source);
|
|
3047
|
+
|
|
2927
3048
|
/**
|
|
2928
3049
|
* Adjusts the amount of registered external memory. Used to give
|
|
2929
3050
|
* V8 an indication of the amount of externally allocated memory
|
|
@@ -2962,65 +3083,6 @@ class V8EXPORT V8 {
|
|
|
2962
3083
|
*/
|
|
2963
3084
|
static bool IsProfilerPaused();
|
|
2964
3085
|
|
|
2965
|
-
/**
|
|
2966
|
-
* Resumes specified profiler modules. Can be called several times to
|
|
2967
|
-
* mark the opening of a profiler events block with the given tag.
|
|
2968
|
-
*
|
|
2969
|
-
* "ResumeProfiler" is equivalent to "ResumeProfilerEx(PROFILER_MODULE_CPU)".
|
|
2970
|
-
* See ProfilerModules enum.
|
|
2971
|
-
*
|
|
2972
|
-
* \param flags Flags specifying profiler modules.
|
|
2973
|
-
* \param tag Profile tag.
|
|
2974
|
-
*/
|
|
2975
|
-
static void ResumeProfilerEx(int flags, int tag = 0);
|
|
2976
|
-
|
|
2977
|
-
/**
|
|
2978
|
-
* Pauses specified profiler modules. Each call to "PauseProfilerEx" closes
|
|
2979
|
-
* a block of profiler events opened by a call to "ResumeProfilerEx" with the
|
|
2980
|
-
* same tag value. There is no need for blocks to be properly nested.
|
|
2981
|
-
* The profiler is paused when the last opened block is closed.
|
|
2982
|
-
*
|
|
2983
|
-
* "PauseProfiler" is equivalent to "PauseProfilerEx(PROFILER_MODULE_CPU)".
|
|
2984
|
-
* See ProfilerModules enum.
|
|
2985
|
-
*
|
|
2986
|
-
* \param flags Flags specifying profiler modules.
|
|
2987
|
-
* \param tag Profile tag.
|
|
2988
|
-
*/
|
|
2989
|
-
static void PauseProfilerEx(int flags, int tag = 0);
|
|
2990
|
-
|
|
2991
|
-
/**
|
|
2992
|
-
* Returns active (resumed) profiler modules.
|
|
2993
|
-
* See ProfilerModules enum.
|
|
2994
|
-
*
|
|
2995
|
-
* \returns active profiler modules.
|
|
2996
|
-
*/
|
|
2997
|
-
static int GetActiveProfilerModules();
|
|
2998
|
-
|
|
2999
|
-
/**
|
|
3000
|
-
* If logging is performed into a memory buffer (via --logfile=*), allows to
|
|
3001
|
-
* retrieve previously written messages. This can be used for retrieving
|
|
3002
|
-
* profiler log data in the application. This function is thread-safe.
|
|
3003
|
-
*
|
|
3004
|
-
* Caller provides a destination buffer that must exist during GetLogLines
|
|
3005
|
-
* call. Only whole log lines are copied into the buffer.
|
|
3006
|
-
*
|
|
3007
|
-
* \param from_pos specified a point in a buffer to read from, 0 is the
|
|
3008
|
-
* beginning of a buffer. It is assumed that caller updates its current
|
|
3009
|
-
* position using returned size value from the previous call.
|
|
3010
|
-
* \param dest_buf destination buffer for log data.
|
|
3011
|
-
* \param max_size size of the destination buffer.
|
|
3012
|
-
* \returns actual size of log data copied into buffer.
|
|
3013
|
-
*/
|
|
3014
|
-
static int GetLogLines(int from_pos, char* dest_buf, int max_size);
|
|
3015
|
-
|
|
3016
|
-
/**
|
|
3017
|
-
* The minimum allowed size for a log lines buffer. If the size of
|
|
3018
|
-
* the buffer given will not be enough to hold a line of the maximum
|
|
3019
|
-
* length, an attempt to find a log line end in GetLogLines will
|
|
3020
|
-
* fail, and an empty result will be returned.
|
|
3021
|
-
*/
|
|
3022
|
-
static const int kMinimumSizeForLogLinesBuffer = 2048;
|
|
3023
|
-
|
|
3024
3086
|
/**
|
|
3025
3087
|
* Retrieve the V8 thread id of the calling thread.
|
|
3026
3088
|
*
|
|
@@ -3074,8 +3136,10 @@ class V8EXPORT V8 {
|
|
|
3074
3136
|
* because of a call to TerminateExecution. In that case there are
|
|
3075
3137
|
* still JavaScript frames on the stack and the termination
|
|
3076
3138
|
* exception is still active.
|
|
3139
|
+
*
|
|
3140
|
+
* \param isolate The isolate in which to check.
|
|
3077
3141
|
*/
|
|
3078
|
-
static bool IsExecutionTerminating();
|
|
3142
|
+
static bool IsExecutionTerminating(Isolate* isolate = NULL);
|
|
3079
3143
|
|
|
3080
3144
|
/**
|
|
3081
3145
|
* Releases any resources used by v8 and stops any utility threads
|
|
@@ -3144,7 +3208,6 @@ class V8EXPORT V8 {
|
|
|
3144
3208
|
*/
|
|
3145
3209
|
class V8EXPORT TryCatch {
|
|
3146
3210
|
public:
|
|
3147
|
-
|
|
3148
3211
|
/**
|
|
3149
3212
|
* Creates a new try/catch block and registers it with v8.
|
|
3150
3213
|
*/
|
|
@@ -3236,6 +3299,7 @@ class V8EXPORT TryCatch {
|
|
|
3236
3299
|
void SetCaptureMessage(bool value);
|
|
3237
3300
|
|
|
3238
3301
|
private:
|
|
3302
|
+
v8::internal::Isolate* isolate_;
|
|
3239
3303
|
void* next_;
|
|
3240
3304
|
void* exception_;
|
|
3241
3305
|
void* message_;
|
|
@@ -3543,7 +3607,7 @@ class V8EXPORT Locker {
|
|
|
3543
3607
|
/**
|
|
3544
3608
|
* Returns whether v8::Locker is being used by this V8 instance.
|
|
3545
3609
|
*/
|
|
3546
|
-
static bool IsActive()
|
|
3610
|
+
static bool IsActive();
|
|
3547
3611
|
|
|
3548
3612
|
private:
|
|
3549
3613
|
bool has_lock_;
|
|
@@ -3690,7 +3754,6 @@ template <> struct InternalConstants<8> {
|
|
|
3690
3754
|
*/
|
|
3691
3755
|
class Internals {
|
|
3692
3756
|
public:
|
|
3693
|
-
|
|
3694
3757
|
// These values match non-compiler-dependent values defined within
|
|
3695
3758
|
// the implementation of v8.
|
|
3696
3759
|
static const int kHeapObjectMapOffset = 0;
|
|
@@ -3703,7 +3766,7 @@ class Internals {
|
|
|
3703
3766
|
static const int kFullStringRepresentationMask = 0x07;
|
|
3704
3767
|
static const int kExternalTwoByteRepresentationTag = 0x02;
|
|
3705
3768
|
|
|
3706
|
-
static const int kJSObjectType =
|
|
3769
|
+
static const int kJSObjectType = 0xa3;
|
|
3707
3770
|
static const int kFirstNonstringType = 0x80;
|
|
3708
3771
|
static const int kForeignType = 0x85;
|
|
3709
3772
|
|
|
@@ -3764,10 +3827,6 @@ class Internals {
|
|
|
3764
3827
|
} // namespace internal
|
|
3765
3828
|
|
|
3766
3829
|
|
|
3767
|
-
template <class T>
|
|
3768
|
-
Handle<T>::Handle() : val_(0) { }
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
3830
|
template <class T>
|
|
3772
3831
|
Local<T>::Local() : Handle<T>() { }
|
|
3773
3832
|
|
|
@@ -4047,6 +4106,30 @@ Date* Date::Cast(v8::Value* value) {
|
|
|
4047
4106
|
}
|
|
4048
4107
|
|
|
4049
4108
|
|
|
4109
|
+
StringObject* StringObject::Cast(v8::Value* value) {
|
|
4110
|
+
#ifdef V8_ENABLE_CHECKS
|
|
4111
|
+
CheckCast(value);
|
|
4112
|
+
#endif
|
|
4113
|
+
return static_cast<StringObject*>(value);
|
|
4114
|
+
}
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
NumberObject* NumberObject::Cast(v8::Value* value) {
|
|
4118
|
+
#ifdef V8_ENABLE_CHECKS
|
|
4119
|
+
CheckCast(value);
|
|
4120
|
+
#endif
|
|
4121
|
+
return static_cast<NumberObject*>(value);
|
|
4122
|
+
}
|
|
4123
|
+
|
|
4124
|
+
|
|
4125
|
+
BooleanObject* BooleanObject::Cast(v8::Value* value) {
|
|
4126
|
+
#ifdef V8_ENABLE_CHECKS
|
|
4127
|
+
CheckCast(value);
|
|
4128
|
+
#endif
|
|
4129
|
+
return static_cast<BooleanObject*>(value);
|
|
4130
|
+
}
|
|
4131
|
+
|
|
4132
|
+
|
|
4050
4133
|
RegExp* RegExp::Cast(v8::Value* value) {
|
|
4051
4134
|
#ifdef V8_ENABLE_CHECKS
|
|
4052
4135
|
CheckCast(value);
|