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
|
@@ -34,8 +34,7 @@
|
|
|
34
34
|
namespace v8 {
|
|
35
35
|
namespace internal {
|
|
36
36
|
|
|
37
|
-
// List of code stubs used on all platforms.
|
|
38
|
-
// as only the stubs up to and including Instanceof allows nested stub calls.
|
|
37
|
+
// List of code stubs used on all platforms.
|
|
39
38
|
#define CODE_STUB_LIST_ALL_PLATFORMS(V) \
|
|
40
39
|
V(CallFunction) \
|
|
41
40
|
V(UnaryOp) \
|
|
@@ -43,12 +42,18 @@ namespace internal {
|
|
|
43
42
|
V(StringAdd) \
|
|
44
43
|
V(SubString) \
|
|
45
44
|
V(StringCompare) \
|
|
46
|
-
V(SmiOp) \
|
|
47
45
|
V(Compare) \
|
|
48
46
|
V(CompareIC) \
|
|
49
47
|
V(MathPow) \
|
|
50
48
|
V(TranscendentalCache) \
|
|
51
49
|
V(Instanceof) \
|
|
50
|
+
/* All stubs above this line only exist in a few versions, which are */ \
|
|
51
|
+
/* generated ahead of time. Therefore compiling a call to one of */ \
|
|
52
|
+
/* them can't cause a new stub to be compiled, so compiling a call to */ \
|
|
53
|
+
/* them is GC safe. The ones below this line exist in many variants */ \
|
|
54
|
+
/* so code compiling a call to one can cause a GC. This means they */ \
|
|
55
|
+
/* can't be called from other stubs, since stub generation code is */ \
|
|
56
|
+
/* not GC safe. */ \
|
|
52
57
|
V(ConvertToDouble) \
|
|
53
58
|
V(WriteInt32ToHeapNumber) \
|
|
54
59
|
V(StackCheck) \
|
|
@@ -65,10 +70,8 @@ namespace internal {
|
|
|
65
70
|
V(NumberToString) \
|
|
66
71
|
V(CEntry) \
|
|
67
72
|
V(JSEntry) \
|
|
68
|
-
V(
|
|
69
|
-
V(
|
|
70
|
-
V(KeyedLoadExternalArray) \
|
|
71
|
-
V(KeyedStoreExternalArray) \
|
|
73
|
+
V(KeyedLoadElement) \
|
|
74
|
+
V(KeyedStoreElement) \
|
|
72
75
|
V(DebuggerStatement) \
|
|
73
76
|
V(StringDictionaryNegativeLookup)
|
|
74
77
|
|
|
@@ -178,16 +181,15 @@ class CodeStub BASE_EMBEDDED {
|
|
|
178
181
|
}
|
|
179
182
|
|
|
180
183
|
// Returns a name for logging/debugging purposes.
|
|
181
|
-
|
|
184
|
+
SmartPointer<const char> GetName();
|
|
185
|
+
virtual void PrintName(StringStream* stream) {
|
|
186
|
+
stream->Add("%s", MajorName(MajorKey(), false));
|
|
187
|
+
}
|
|
182
188
|
|
|
183
189
|
// Returns whether the code generated for this stub needs to be allocated as
|
|
184
190
|
// a fixed (non-moveable) code object.
|
|
185
191
|
virtual bool NeedsImmovableCode() { return false; }
|
|
186
192
|
|
|
187
|
-
#ifdef DEBUG
|
|
188
|
-
virtual void Print() { PrintF("%s\n", GetName()); }
|
|
189
|
-
#endif
|
|
190
|
-
|
|
191
193
|
// Computes the key based on major and minor.
|
|
192
194
|
uint32_t GetKey() {
|
|
193
195
|
ASSERT(static_cast<int>(MajorKey()) < NUMBER_OF_IDS);
|
|
@@ -195,6 +197,7 @@ class CodeStub BASE_EMBEDDED {
|
|
|
195
197
|
MajorKeyBits::encode(MajorKey());
|
|
196
198
|
}
|
|
197
199
|
|
|
200
|
+
// See comment above, where Instanceof is defined.
|
|
198
201
|
bool AllowsStubCalls() { return MajorKey() <= Instanceof; }
|
|
199
202
|
|
|
200
203
|
class MajorKeyBits: public BitField<uint32_t, 0, kMajorBits> {};
|
|
@@ -268,9 +271,6 @@ class StackCheckStub : public CodeStub {
|
|
|
268
271
|
void Generate(MacroAssembler* masm);
|
|
269
272
|
|
|
270
273
|
private:
|
|
271
|
-
|
|
272
|
-
const char* GetName() { return "StackCheckStub"; }
|
|
273
|
-
|
|
274
274
|
Major MajorKey() { return StackCheck; }
|
|
275
275
|
int MinorKey() { return 0; }
|
|
276
276
|
};
|
|
@@ -285,7 +285,6 @@ class ToNumberStub: public CodeStub {
|
|
|
285
285
|
private:
|
|
286
286
|
Major MajorKey() { return ToNumber; }
|
|
287
287
|
int MinorKey() { return 0; }
|
|
288
|
-
const char* GetName() { return "ToNumberStub"; }
|
|
289
288
|
};
|
|
290
289
|
|
|
291
290
|
|
|
@@ -297,7 +296,6 @@ class FastNewClosureStub : public CodeStub {
|
|
|
297
296
|
void Generate(MacroAssembler* masm);
|
|
298
297
|
|
|
299
298
|
private:
|
|
300
|
-
const char* GetName() { return "FastNewClosureStub"; }
|
|
301
299
|
Major MajorKey() { return FastNewClosure; }
|
|
302
300
|
int MinorKey() { return strict_mode_; }
|
|
303
301
|
|
|
@@ -318,7 +316,6 @@ class FastNewContextStub : public CodeStub {
|
|
|
318
316
|
private:
|
|
319
317
|
int slots_;
|
|
320
318
|
|
|
321
|
-
const char* GetName() { return "FastNewContextStub"; }
|
|
322
319
|
Major MajorKey() { return FastNewContext; }
|
|
323
320
|
int MinorKey() { return slots_; }
|
|
324
321
|
};
|
|
@@ -347,7 +344,6 @@ class FastCloneShallowArrayStub : public CodeStub {
|
|
|
347
344
|
Mode mode_;
|
|
348
345
|
int length_;
|
|
349
346
|
|
|
350
|
-
const char* GetName() { return "FastCloneShallowArrayStub"; }
|
|
351
347
|
Major MajorKey() { return FastCloneShallowArray; }
|
|
352
348
|
int MinorKey() {
|
|
353
349
|
ASSERT(mode_ == 0 || mode_ == 1);
|
|
@@ -365,7 +361,7 @@ class InstanceofStub: public CodeStub {
|
|
|
365
361
|
kReturnTrueFalseObject = 1 << 2
|
|
366
362
|
};
|
|
367
363
|
|
|
368
|
-
explicit InstanceofStub(Flags flags) : flags_(flags)
|
|
364
|
+
explicit InstanceofStub(Flags flags) : flags_(flags) { }
|
|
369
365
|
|
|
370
366
|
static Register left();
|
|
371
367
|
static Register right();
|
|
@@ -388,10 +384,9 @@ class InstanceofStub: public CodeStub {
|
|
|
388
384
|
return (flags_ & kReturnTrueFalseObject) != 0;
|
|
389
385
|
}
|
|
390
386
|
|
|
391
|
-
|
|
387
|
+
virtual void PrintName(StringStream* stream);
|
|
392
388
|
|
|
393
389
|
Flags flags_;
|
|
394
|
-
char* name_;
|
|
395
390
|
};
|
|
396
391
|
|
|
397
392
|
|
|
@@ -403,8 +398,6 @@ class MathPowStub: public CodeStub {
|
|
|
403
398
|
private:
|
|
404
399
|
virtual CodeStub::Major MajorKey() { return MathPow; }
|
|
405
400
|
virtual int MinorKey() { return 0; }
|
|
406
|
-
|
|
407
|
-
const char* GetName() { return "MathPowStub"; }
|
|
408
401
|
};
|
|
409
402
|
|
|
410
403
|
|
|
@@ -471,8 +464,7 @@ class CompareStub: public CodeStub {
|
|
|
471
464
|
include_number_compare_((flags & NO_NUMBER_COMPARE_IN_STUB) == 0),
|
|
472
465
|
include_smi_compare_((flags & NO_SMI_COMPARE_IN_STUB) == 0),
|
|
473
466
|
lhs_(lhs),
|
|
474
|
-
rhs_(rhs)
|
|
475
|
-
name_(NULL) { }
|
|
467
|
+
rhs_(rhs) { }
|
|
476
468
|
|
|
477
469
|
CompareStub(Condition cc,
|
|
478
470
|
bool strict,
|
|
@@ -483,8 +475,7 @@ class CompareStub: public CodeStub {
|
|
|
483
475
|
include_number_compare_((flags & NO_NUMBER_COMPARE_IN_STUB) == 0),
|
|
484
476
|
include_smi_compare_((flags & NO_SMI_COMPARE_IN_STUB) == 0),
|
|
485
477
|
lhs_(no_reg),
|
|
486
|
-
rhs_(no_reg)
|
|
487
|
-
name_(NULL) { }
|
|
478
|
+
rhs_(no_reg) { }
|
|
488
479
|
|
|
489
480
|
void Generate(MacroAssembler* masm);
|
|
490
481
|
|
|
@@ -538,26 +529,7 @@ class CompareStub: public CodeStub {
|
|
|
538
529
|
|
|
539
530
|
// Unfortunately you have to run without snapshots to see most of these
|
|
540
531
|
// names in the profile since most compare stubs end up in the snapshot.
|
|
541
|
-
|
|
542
|
-
const char* GetName();
|
|
543
|
-
#ifdef DEBUG
|
|
544
|
-
void Print() {
|
|
545
|
-
PrintF("CompareStub (minor %d) (cc %d), (strict %s), "
|
|
546
|
-
"(never_nan_nan %s), (smi_compare %s) (number_compare %s) ",
|
|
547
|
-
MinorKey(),
|
|
548
|
-
static_cast<int>(cc_),
|
|
549
|
-
strict_ ? "true" : "false",
|
|
550
|
-
never_nan_nan_ ? "true" : "false",
|
|
551
|
-
include_smi_compare_ ? "inluded" : "not included",
|
|
552
|
-
include_number_compare_ ? "included" : "not included");
|
|
553
|
-
|
|
554
|
-
if (!lhs_.is(no_reg) && !rhs_.is(no_reg)) {
|
|
555
|
-
PrintF("(lhs r%d), (rhs r%d)\n", lhs_.code(), rhs_.code());
|
|
556
|
-
} else {
|
|
557
|
-
PrintF("\n");
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
#endif
|
|
532
|
+
virtual void PrintName(StringStream* stream);
|
|
561
533
|
};
|
|
562
534
|
|
|
563
535
|
|
|
@@ -588,8 +560,6 @@ class CEntryStub : public CodeStub {
|
|
|
588
560
|
int MinorKey();
|
|
589
561
|
|
|
590
562
|
bool NeedsImmovableCode();
|
|
591
|
-
|
|
592
|
-
const char* GetName() { return "CEntryStub"; }
|
|
593
563
|
};
|
|
594
564
|
|
|
595
565
|
|
|
@@ -605,8 +575,6 @@ class JSEntryStub : public CodeStub {
|
|
|
605
575
|
private:
|
|
606
576
|
Major MajorKey() { return JSEntry; }
|
|
607
577
|
int MinorKey() { return 0; }
|
|
608
|
-
|
|
609
|
-
const char* GetName() { return "JSEntryStub"; }
|
|
610
578
|
};
|
|
611
579
|
|
|
612
580
|
|
|
@@ -619,7 +587,9 @@ class JSConstructEntryStub : public JSEntryStub {
|
|
|
619
587
|
private:
|
|
620
588
|
int MinorKey() { return 1; }
|
|
621
589
|
|
|
622
|
-
|
|
590
|
+
virtual void PrintName(StringStream* stream) {
|
|
591
|
+
stream->Add("JSConstructEntryStub");
|
|
592
|
+
}
|
|
623
593
|
};
|
|
624
594
|
|
|
625
595
|
|
|
@@ -627,7 +597,8 @@ class ArgumentsAccessStub: public CodeStub {
|
|
|
627
597
|
public:
|
|
628
598
|
enum Type {
|
|
629
599
|
READ_ELEMENT,
|
|
630
|
-
|
|
600
|
+
NEW_NON_STRICT_FAST,
|
|
601
|
+
NEW_NON_STRICT_SLOW,
|
|
631
602
|
NEW_STRICT
|
|
632
603
|
};
|
|
633
604
|
|
|
@@ -641,28 +612,11 @@ class ArgumentsAccessStub: public CodeStub {
|
|
|
641
612
|
|
|
642
613
|
void Generate(MacroAssembler* masm);
|
|
643
614
|
void GenerateReadElement(MacroAssembler* masm);
|
|
644
|
-
void
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
return (type_ == NEW_STRICT)
|
|
648
|
-
? Context::STRICT_MODE_ARGUMENTS_BOILERPLATE_INDEX
|
|
649
|
-
: Context::ARGUMENTS_BOILERPLATE_INDEX;
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
int GetArgumentsObjectSize() const {
|
|
653
|
-
if (type_ == NEW_STRICT)
|
|
654
|
-
return Heap::kArgumentsObjectSizeStrict;
|
|
655
|
-
else
|
|
656
|
-
return Heap::kArgumentsObjectSize;
|
|
657
|
-
}
|
|
615
|
+
void GenerateNewStrict(MacroAssembler* masm);
|
|
616
|
+
void GenerateNewNonStrictFast(MacroAssembler* masm);
|
|
617
|
+
void GenerateNewNonStrictSlow(MacroAssembler* masm);
|
|
658
618
|
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
#ifdef DEBUG
|
|
662
|
-
void Print() {
|
|
663
|
-
PrintF("ArgumentsAccessStub (type %d)\n", type_);
|
|
664
|
-
}
|
|
665
|
-
#endif
|
|
619
|
+
virtual void PrintName(StringStream* stream);
|
|
666
620
|
};
|
|
667
621
|
|
|
668
622
|
|
|
@@ -675,14 +629,6 @@ class RegExpExecStub: public CodeStub {
|
|
|
675
629
|
int MinorKey() { return 0; }
|
|
676
630
|
|
|
677
631
|
void Generate(MacroAssembler* masm);
|
|
678
|
-
|
|
679
|
-
const char* GetName() { return "RegExpExecStub"; }
|
|
680
|
-
|
|
681
|
-
#ifdef DEBUG
|
|
682
|
-
void Print() {
|
|
683
|
-
PrintF("RegExpExecStub\n");
|
|
684
|
-
}
|
|
685
|
-
#endif
|
|
686
632
|
};
|
|
687
633
|
|
|
688
634
|
|
|
@@ -695,14 +641,6 @@ class RegExpConstructResultStub: public CodeStub {
|
|
|
695
641
|
int MinorKey() { return 0; }
|
|
696
642
|
|
|
697
643
|
void Generate(MacroAssembler* masm);
|
|
698
|
-
|
|
699
|
-
const char* GetName() { return "RegExpConstructResultStub"; }
|
|
700
|
-
|
|
701
|
-
#ifdef DEBUG
|
|
702
|
-
void Print() {
|
|
703
|
-
PrintF("RegExpConstructResultStub\n");
|
|
704
|
-
}
|
|
705
|
-
#endif
|
|
706
644
|
};
|
|
707
645
|
|
|
708
646
|
|
|
@@ -722,14 +660,7 @@ class CallFunctionStub: public CodeStub {
|
|
|
722
660
|
InLoopFlag in_loop_;
|
|
723
661
|
CallFunctionFlags flags_;
|
|
724
662
|
|
|
725
|
-
|
|
726
|
-
void Print() {
|
|
727
|
-
PrintF("CallFunctionStub (args %d, in_loop %d, flags %d)\n",
|
|
728
|
-
argc_,
|
|
729
|
-
static_cast<int>(in_loop_),
|
|
730
|
-
static_cast<int>(flags_));
|
|
731
|
-
}
|
|
732
|
-
#endif
|
|
663
|
+
virtual void PrintName(StringStream* stream);
|
|
733
664
|
|
|
734
665
|
// Minor key encoding in 32 bits with Bitfield <Type, shift, size>.
|
|
735
666
|
class InLoopBits: public BitField<InLoopFlag, 0, 1> {};
|
|
@@ -926,85 +857,110 @@ class AllowStubCallsScope {
|
|
|
926
857
|
DISALLOW_COPY_AND_ASSIGN(AllowStubCallsScope);
|
|
927
858
|
};
|
|
928
859
|
|
|
929
|
-
#ifdef DEBUG
|
|
930
|
-
#define DECLARE_ARRAY_STUB_PRINT(name) void Print() { PrintF(#name); }
|
|
931
|
-
#else
|
|
932
|
-
#define DECLARE_ARRAY_STUB_PRINT(name)
|
|
933
|
-
#endif
|
|
934
|
-
|
|
935
860
|
|
|
936
|
-
class
|
|
861
|
+
class KeyedLoadElementStub : public CodeStub {
|
|
937
862
|
public:
|
|
938
|
-
explicit
|
|
939
|
-
|
|
863
|
+
explicit KeyedLoadElementStub(JSObject::ElementsKind elements_kind)
|
|
864
|
+
: elements_kind_(elements_kind)
|
|
865
|
+
{ }
|
|
940
866
|
|
|
941
|
-
Major MajorKey() { return
|
|
942
|
-
int MinorKey() { return
|
|
867
|
+
Major MajorKey() { return KeyedLoadElement; }
|
|
868
|
+
int MinorKey() { return elements_kind_; }
|
|
943
869
|
|
|
944
870
|
void Generate(MacroAssembler* masm);
|
|
945
871
|
|
|
946
|
-
|
|
872
|
+
private:
|
|
873
|
+
JSObject::ElementsKind elements_kind_;
|
|
947
874
|
|
|
948
|
-
|
|
875
|
+
DISALLOW_COPY_AND_ASSIGN(KeyedLoadElementStub);
|
|
949
876
|
};
|
|
950
877
|
|
|
951
878
|
|
|
952
|
-
class
|
|
879
|
+
class KeyedStoreElementStub : public CodeStub {
|
|
953
880
|
public:
|
|
954
|
-
|
|
955
|
-
|
|
881
|
+
KeyedStoreElementStub(bool is_js_array,
|
|
882
|
+
JSObject::ElementsKind elements_kind)
|
|
883
|
+
: is_js_array_(is_js_array),
|
|
884
|
+
elements_kind_(elements_kind) { }
|
|
956
885
|
|
|
957
|
-
Major MajorKey() { return
|
|
958
|
-
int MinorKey() {
|
|
886
|
+
Major MajorKey() { return KeyedStoreElement; }
|
|
887
|
+
int MinorKey() {
|
|
888
|
+
return (is_js_array_ ? 0 : JSObject::kElementsKindCount) + elements_kind_;
|
|
889
|
+
}
|
|
959
890
|
|
|
960
891
|
void Generate(MacroAssembler* masm);
|
|
961
892
|
|
|
962
|
-
const char* GetName() { return "KeyedStoreFastElementStub"; }
|
|
963
|
-
|
|
964
|
-
DECLARE_ARRAY_STUB_PRINT(KeyedStoreFastElementStub)
|
|
965
|
-
|
|
966
893
|
private:
|
|
967
894
|
bool is_js_array_;
|
|
895
|
+
JSObject::ElementsKind elements_kind_;
|
|
896
|
+
|
|
897
|
+
DISALLOW_COPY_AND_ASSIGN(KeyedStoreElementStub);
|
|
968
898
|
};
|
|
969
899
|
|
|
970
900
|
|
|
971
|
-
class
|
|
901
|
+
class ToBooleanStub: public CodeStub {
|
|
972
902
|
public:
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
DECLARE_ARRAY_STUB_PRINT(KeyedLoadExternalArrayStub)
|
|
984
|
-
|
|
985
|
-
protected:
|
|
986
|
-
ExternalArrayType array_type_;
|
|
987
|
-
};
|
|
903
|
+
enum Type {
|
|
904
|
+
UNDEFINED,
|
|
905
|
+
BOOLEAN,
|
|
906
|
+
NULL_TYPE,
|
|
907
|
+
SMI,
|
|
908
|
+
SPEC_OBJECT,
|
|
909
|
+
STRING,
|
|
910
|
+
HEAP_NUMBER,
|
|
911
|
+
NUMBER_OF_TYPES
|
|
912
|
+
};
|
|
988
913
|
|
|
914
|
+
// At most 8 different types can be distinguished, because the Code object
|
|
915
|
+
// only has room for a single byte to hold a set of these types. :-P
|
|
916
|
+
STATIC_ASSERT(NUMBER_OF_TYPES <= 8);
|
|
917
|
+
|
|
918
|
+
class Types {
|
|
919
|
+
public:
|
|
920
|
+
Types() {}
|
|
921
|
+
explicit Types(byte bits) : set_(bits) {}
|
|
922
|
+
|
|
923
|
+
bool IsEmpty() const { return set_.IsEmpty(); }
|
|
924
|
+
bool Contains(Type type) const { return set_.Contains(type); }
|
|
925
|
+
void Add(Type type) { set_.Add(type); }
|
|
926
|
+
byte ToByte() const { return set_.ToIntegral(); }
|
|
927
|
+
void Print(StringStream* stream) const;
|
|
928
|
+
void TraceTransition(Types to) const;
|
|
929
|
+
bool Record(Handle<Object> object);
|
|
930
|
+
bool NeedsMap() const;
|
|
931
|
+
bool CanBeUndetectable() const;
|
|
932
|
+
|
|
933
|
+
private:
|
|
934
|
+
EnumSet<Type, byte> set_;
|
|
935
|
+
};
|
|
989
936
|
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
explicit KeyedStoreExternalArrayStub(ExternalArrayType array_type)
|
|
993
|
-
: array_type_(array_type) { }
|
|
937
|
+
static Types no_types() { return Types(); }
|
|
938
|
+
static Types all_types() { return Types((1 << NUMBER_OF_TYPES) - 1); }
|
|
994
939
|
|
|
995
|
-
|
|
996
|
-
|
|
940
|
+
explicit ToBooleanStub(Register tos, Types types = Types())
|
|
941
|
+
: tos_(tos), types_(types) { }
|
|
997
942
|
|
|
998
943
|
void Generate(MacroAssembler* masm);
|
|
944
|
+
virtual int GetCodeKind() { return Code::TO_BOOLEAN_IC; }
|
|
945
|
+
virtual void PrintName(StringStream* stream);
|
|
999
946
|
|
|
1000
|
-
|
|
947
|
+
private:
|
|
948
|
+
Major MajorKey() { return ToBoolean; }
|
|
949
|
+
int MinorKey() { return (tos_.code() << NUMBER_OF_TYPES) | types_.ToByte(); }
|
|
1001
950
|
|
|
1002
|
-
|
|
951
|
+
virtual void FinishCode(Code* code) {
|
|
952
|
+
code->set_to_boolean_state(types_.ToByte());
|
|
953
|
+
}
|
|
1003
954
|
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
955
|
+
void CheckOddball(MacroAssembler* masm,
|
|
956
|
+
Type type,
|
|
957
|
+
Heap::RootListIndex value,
|
|
958
|
+
bool result);
|
|
959
|
+
void GenerateTypeTransition(MacroAssembler* masm);
|
|
1007
960
|
|
|
961
|
+
Register tos_;
|
|
962
|
+
Types types_;
|
|
963
|
+
};
|
|
1008
964
|
|
|
1009
965
|
} } // namespace v8::internal
|
|
1010
966
|
|