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
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
#include "lithium-allocator.h"
|
|
33
33
|
#include "lithium.h"
|
|
34
34
|
#include "safepoint-table.h"
|
|
35
|
+
#include "utils.h"
|
|
35
36
|
|
|
36
37
|
namespace v8 {
|
|
37
38
|
namespace internal {
|
|
@@ -76,17 +77,12 @@ class LCodeGen;
|
|
|
76
77
|
V(ClampDToUint8) \
|
|
77
78
|
V(ClampIToUint8) \
|
|
78
79
|
V(ClampTToUint8) \
|
|
79
|
-
V(ClassOfTest) \
|
|
80
80
|
V(ClassOfTestAndBranch) \
|
|
81
|
-
V(
|
|
81
|
+
V(CmpConstantEqAndBranch) \
|
|
82
82
|
V(CmpIDAndBranch) \
|
|
83
|
-
V(
|
|
84
|
-
V(CmpJSObjectEqAndBranch) \
|
|
83
|
+
V(CmpObjectEqAndBranch) \
|
|
85
84
|
V(CmpMapAndBranch) \
|
|
86
|
-
V(CmpSymbolEq) \
|
|
87
|
-
V(CmpSymbolEqAndBranch) \
|
|
88
85
|
V(CmpT) \
|
|
89
|
-
V(CmpTAndBranch) \
|
|
90
86
|
V(ConstantD) \
|
|
91
87
|
V(ConstantI) \
|
|
92
88
|
V(ConstantT) \
|
|
@@ -95,33 +91,25 @@ class LCodeGen;
|
|
|
95
91
|
V(Deoptimize) \
|
|
96
92
|
V(DivI) \
|
|
97
93
|
V(DoubleToI) \
|
|
98
|
-
V(
|
|
99
|
-
V(
|
|
94
|
+
V(ElementsKind) \
|
|
95
|
+
V(FixedArrayBaseLength) \
|
|
100
96
|
V(FunctionLiteral) \
|
|
101
97
|
V(GetCachedArrayIndex) \
|
|
102
98
|
V(GlobalObject) \
|
|
103
99
|
V(GlobalReceiver) \
|
|
104
100
|
V(Goto) \
|
|
105
|
-
V(HasCachedArrayIndex) \
|
|
106
101
|
V(HasCachedArrayIndexAndBranch) \
|
|
107
|
-
V(HasInstanceType) \
|
|
108
102
|
V(HasInstanceTypeAndBranch) \
|
|
109
103
|
V(In) \
|
|
110
104
|
V(InstanceOf) \
|
|
111
|
-
V(InstanceOfAndBranch) \
|
|
112
105
|
V(InstanceOfKnownGlobal) \
|
|
113
106
|
V(InstructionGap) \
|
|
114
107
|
V(Integer32ToDouble) \
|
|
115
108
|
V(InvokeFunction) \
|
|
116
|
-
V(IsConstructCall) \
|
|
117
109
|
V(IsConstructCallAndBranch) \
|
|
118
|
-
V(IsNull) \
|
|
119
110
|
V(IsNullAndBranch) \
|
|
120
|
-
V(IsObject) \
|
|
121
111
|
V(IsObjectAndBranch) \
|
|
122
|
-
V(IsSmi) \
|
|
123
112
|
V(IsSmiAndBranch) \
|
|
124
|
-
V(IsUndetectable) \
|
|
125
113
|
V(IsUndetectableAndBranch) \
|
|
126
114
|
V(JSArrayLength) \
|
|
127
115
|
V(Label) \
|
|
@@ -132,6 +120,7 @@ class LCodeGen;
|
|
|
132
120
|
V(LoadFunctionPrototype) \
|
|
133
121
|
V(LoadGlobalCell) \
|
|
134
122
|
V(LoadGlobalGeneric) \
|
|
123
|
+
V(LoadKeyedFastDoubleElement) \
|
|
135
124
|
V(LoadKeyedFastElement) \
|
|
136
125
|
V(LoadKeyedGeneric) \
|
|
137
126
|
V(LoadKeyedSpecializedArrayElement) \
|
|
@@ -158,6 +147,7 @@ class LCodeGen;
|
|
|
158
147
|
V(StoreContextSlot) \
|
|
159
148
|
V(StoreGlobalCell) \
|
|
160
149
|
V(StoreGlobalGeneric) \
|
|
150
|
+
V(StoreKeyedFastDoubleElement) \
|
|
161
151
|
V(StoreKeyedFastElement) \
|
|
162
152
|
V(StoreKeyedGeneric) \
|
|
163
153
|
V(StoreKeyedSpecializedArrayElement) \
|
|
@@ -169,10 +159,10 @@ class LCodeGen;
|
|
|
169
159
|
V(StringLength) \
|
|
170
160
|
V(SubI) \
|
|
171
161
|
V(TaggedToI) \
|
|
162
|
+
V(ThisFunction) \
|
|
172
163
|
V(Throw) \
|
|
173
164
|
V(ToFastProperties) \
|
|
174
165
|
V(Typeof) \
|
|
175
|
-
V(TypeofIs) \
|
|
176
166
|
V(TypeofIsAndBranch) \
|
|
177
167
|
V(UnaryMathOperation) \
|
|
178
168
|
V(UnknownOSRValue) \
|
|
@@ -232,7 +222,6 @@ class LInstruction: public ZoneObject {
|
|
|
232
222
|
virtual bool IsGap() const { return false; }
|
|
233
223
|
|
|
234
224
|
virtual bool IsControl() const { return false; }
|
|
235
|
-
virtual void SetBranchTargets(int true_block_id, int false_block_id) { }
|
|
236
225
|
|
|
237
226
|
void set_environment(LEnvironment* env) { environment_ = env; }
|
|
238
227
|
LEnvironment* environment() const { return environment_; }
|
|
@@ -287,37 +276,6 @@ class LInstruction: public ZoneObject {
|
|
|
287
276
|
};
|
|
288
277
|
|
|
289
278
|
|
|
290
|
-
template<typename ElementType, int NumElements>
|
|
291
|
-
class OperandContainer {
|
|
292
|
-
public:
|
|
293
|
-
OperandContainer() {
|
|
294
|
-
for (int i = 0; i < NumElements; i++) elems_[i] = NULL;
|
|
295
|
-
}
|
|
296
|
-
int length() { return NumElements; }
|
|
297
|
-
ElementType& operator[](int i) {
|
|
298
|
-
ASSERT(i < length());
|
|
299
|
-
return elems_[i];
|
|
300
|
-
}
|
|
301
|
-
void PrintOperandsTo(StringStream* stream);
|
|
302
|
-
|
|
303
|
-
private:
|
|
304
|
-
ElementType elems_[NumElements];
|
|
305
|
-
};
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
template<typename ElementType>
|
|
309
|
-
class OperandContainer<ElementType, 0> {
|
|
310
|
-
public:
|
|
311
|
-
int length() { return 0; }
|
|
312
|
-
void PrintOperandsTo(StringStream* stream) { }
|
|
313
|
-
ElementType& operator[](int i) {
|
|
314
|
-
UNREACHABLE();
|
|
315
|
-
static ElementType t = 0;
|
|
316
|
-
return t;
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
|
|
321
279
|
// R = number of result operands (0 or 1).
|
|
322
280
|
// I = number of input operands.
|
|
323
281
|
// T = number of temporary operands.
|
|
@@ -340,9 +298,9 @@ class LTemplateInstruction: public LInstruction {
|
|
|
340
298
|
virtual void PrintOutputOperandTo(StringStream* stream);
|
|
341
299
|
|
|
342
300
|
protected:
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
301
|
+
EmbeddedContainer<LOperand*, R> results_;
|
|
302
|
+
EmbeddedContainer<LOperand*, I> inputs_;
|
|
303
|
+
EmbeddedContainer<LOperand*, T> temps_;
|
|
346
304
|
};
|
|
347
305
|
|
|
348
306
|
|
|
@@ -402,19 +360,16 @@ class LInstructionGap: public LGap {
|
|
|
402
360
|
|
|
403
361
|
class LGoto: public LTemplateInstruction<0, 0, 0> {
|
|
404
362
|
public:
|
|
405
|
-
LGoto(int block_id
|
|
406
|
-
: block_id_(block_id), include_stack_check_(include_stack_check) { }
|
|
363
|
+
explicit LGoto(int block_id) : block_id_(block_id) { }
|
|
407
364
|
|
|
408
365
|
DECLARE_CONCRETE_INSTRUCTION(Goto, "goto")
|
|
409
366
|
virtual void PrintDataTo(StringStream* stream);
|
|
410
367
|
virtual bool IsControl() const { return true; }
|
|
411
368
|
|
|
412
369
|
int block_id() const { return block_id_; }
|
|
413
|
-
bool include_stack_check() const { return include_stack_check_; }
|
|
414
370
|
|
|
415
371
|
private:
|
|
416
372
|
int block_id_;
|
|
417
|
-
bool include_stack_check_;
|
|
418
373
|
};
|
|
419
374
|
|
|
420
375
|
|
|
@@ -490,16 +445,15 @@ class LControlInstruction: public LTemplateInstruction<0, I, T> {
|
|
|
490
445
|
public:
|
|
491
446
|
virtual bool IsControl() const { return true; }
|
|
492
447
|
|
|
493
|
-
int
|
|
494
|
-
int
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
false_block_id_ = false_block_id;
|
|
498
|
-
}
|
|
448
|
+
int SuccessorCount() { return hydrogen()->SuccessorCount(); }
|
|
449
|
+
HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); }
|
|
450
|
+
int true_block_id() { return hydrogen()->SuccessorAt(0)->block_id(); }
|
|
451
|
+
int false_block_id() { return hydrogen()->SuccessorAt(1)->block_id(); }
|
|
499
452
|
|
|
500
453
|
private:
|
|
501
|
-
|
|
502
|
-
|
|
454
|
+
HControlInstruction* hydrogen() {
|
|
455
|
+
return HControlInstruction::cast(this->hydrogen_value());
|
|
456
|
+
}
|
|
503
457
|
};
|
|
504
458
|
|
|
505
459
|
|
|
@@ -598,23 +552,6 @@ class LMulI: public LTemplateInstruction<1, 2, 0> {
|
|
|
598
552
|
};
|
|
599
553
|
|
|
600
554
|
|
|
601
|
-
class LCmpID: public LTemplateInstruction<1, 2, 0> {
|
|
602
|
-
public:
|
|
603
|
-
LCmpID(LOperand* left, LOperand* right) {
|
|
604
|
-
inputs_[0] = left;
|
|
605
|
-
inputs_[1] = right;
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpID, "cmp-id")
|
|
609
|
-
DECLARE_HYDROGEN_ACCESSOR(Compare)
|
|
610
|
-
|
|
611
|
-
Token::Value op() const { return hydrogen()->token(); }
|
|
612
|
-
bool is_double() const {
|
|
613
|
-
return hydrogen()->GetInputRepresentation().IsDouble();
|
|
614
|
-
}
|
|
615
|
-
};
|
|
616
|
-
|
|
617
|
-
|
|
618
555
|
class LCmpIDAndBranch: public LControlInstruction<2, 0> {
|
|
619
556
|
public:
|
|
620
557
|
LCmpIDAndBranch(LOperand* left, LOperand* right) {
|
|
@@ -623,7 +560,7 @@ class LCmpIDAndBranch: public LControlInstruction<2, 0> {
|
|
|
623
560
|
}
|
|
624
561
|
|
|
625
562
|
DECLARE_CONCRETE_INSTRUCTION(CmpIDAndBranch, "cmp-id-and-branch")
|
|
626
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
563
|
+
DECLARE_HYDROGEN_ACCESSOR(CompareIDAndBranch)
|
|
627
564
|
|
|
628
565
|
Token::Value op() const { return hydrogen()->token(); }
|
|
629
566
|
bool is_double() const {
|
|
@@ -648,61 +585,27 @@ class LUnaryMathOperation: public LTemplateInstruction<1, 1, 0> {
|
|
|
648
585
|
};
|
|
649
586
|
|
|
650
587
|
|
|
651
|
-
class
|
|
652
|
-
public:
|
|
653
|
-
LCmpJSObjectEq(LOperand* left, LOperand* right) {
|
|
654
|
-
inputs_[0] = left;
|
|
655
|
-
inputs_[1] = right;
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEq, "cmp-jsobject-eq")
|
|
659
|
-
};
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
class LCmpJSObjectEqAndBranch: public LControlInstruction<2, 0> {
|
|
663
|
-
public:
|
|
664
|
-
LCmpJSObjectEqAndBranch(LOperand* left, LOperand* right) {
|
|
665
|
-
inputs_[0] = left;
|
|
666
|
-
inputs_[1] = right;
|
|
667
|
-
}
|
|
668
|
-
|
|
669
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEqAndBranch,
|
|
670
|
-
"cmp-jsobject-eq-and-branch")
|
|
671
|
-
};
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
class LCmpSymbolEq: public LTemplateInstruction<1, 2, 0> {
|
|
588
|
+
class LCmpObjectEqAndBranch: public LControlInstruction<2, 0> {
|
|
675
589
|
public:
|
|
676
|
-
|
|
590
|
+
LCmpObjectEqAndBranch(LOperand* left, LOperand* right) {
|
|
677
591
|
inputs_[0] = left;
|
|
678
592
|
inputs_[1] = right;
|
|
679
593
|
}
|
|
680
594
|
|
|
681
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
595
|
+
DECLARE_CONCRETE_INSTRUCTION(CmpObjectEqAndBranch,
|
|
596
|
+
"cmp-object-eq-and-branch")
|
|
682
597
|
};
|
|
683
598
|
|
|
684
599
|
|
|
685
|
-
class
|
|
600
|
+
class LCmpConstantEqAndBranch: public LControlInstruction<1, 0> {
|
|
686
601
|
public:
|
|
687
|
-
|
|
602
|
+
explicit LCmpConstantEqAndBranch(LOperand* left) {
|
|
688
603
|
inputs_[0] = left;
|
|
689
|
-
inputs_[1] = right;
|
|
690
604
|
}
|
|
691
605
|
|
|
692
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
class LIsNull: public LTemplateInstruction<1, 1, 0> {
|
|
697
|
-
public:
|
|
698
|
-
explicit LIsNull(LOperand* value) {
|
|
699
|
-
inputs_[0] = value;
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
DECLARE_CONCRETE_INSTRUCTION(IsNull, "is-null")
|
|
703
|
-
DECLARE_HYDROGEN_ACCESSOR(IsNull)
|
|
704
|
-
|
|
705
|
-
bool is_strict() const { return hydrogen()->is_strict(); }
|
|
606
|
+
DECLARE_CONCRETE_INSTRUCTION(CmpConstantEqAndBranch,
|
|
607
|
+
"cmp-constant-eq-and-branch")
|
|
608
|
+
DECLARE_HYDROGEN_ACCESSOR(CompareConstantEqAndBranch)
|
|
706
609
|
};
|
|
707
610
|
|
|
708
611
|
|
|
@@ -714,7 +617,7 @@ class LIsNullAndBranch: public LControlInstruction<1, 1> {
|
|
|
714
617
|
}
|
|
715
618
|
|
|
716
619
|
DECLARE_CONCRETE_INSTRUCTION(IsNullAndBranch, "is-null-and-branch")
|
|
717
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
620
|
+
DECLARE_HYDROGEN_ACCESSOR(IsNullAndBranch)
|
|
718
621
|
|
|
719
622
|
bool is_strict() const { return hydrogen()->is_strict(); }
|
|
720
623
|
|
|
@@ -722,16 +625,6 @@ class LIsNullAndBranch: public LControlInstruction<1, 1> {
|
|
|
722
625
|
};
|
|
723
626
|
|
|
724
627
|
|
|
725
|
-
class LIsObject: public LTemplateInstruction<1, 1, 0> {
|
|
726
|
-
public:
|
|
727
|
-
explicit LIsObject(LOperand* value) {
|
|
728
|
-
inputs_[0] = value;
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
DECLARE_CONCRETE_INSTRUCTION(IsObject, "is-object")
|
|
732
|
-
};
|
|
733
|
-
|
|
734
|
-
|
|
735
628
|
class LIsObjectAndBranch: public LControlInstruction<1, 0> {
|
|
736
629
|
public:
|
|
737
630
|
explicit LIsObjectAndBranch(LOperand* value) {
|
|
@@ -739,22 +632,12 @@ class LIsObjectAndBranch: public LControlInstruction<1, 0> {
|
|
|
739
632
|
}
|
|
740
633
|
|
|
741
634
|
DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch")
|
|
635
|
+
DECLARE_HYDROGEN_ACCESSOR(IsObjectAndBranch)
|
|
742
636
|
|
|
743
637
|
virtual void PrintDataTo(StringStream* stream);
|
|
744
638
|
};
|
|
745
639
|
|
|
746
640
|
|
|
747
|
-
class LIsSmi: public LTemplateInstruction<1, 1, 0> {
|
|
748
|
-
public:
|
|
749
|
-
explicit LIsSmi(LOperand* value) {
|
|
750
|
-
inputs_[0] = value;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is-smi")
|
|
754
|
-
DECLARE_HYDROGEN_ACCESSOR(IsSmi)
|
|
755
|
-
};
|
|
756
|
-
|
|
757
|
-
|
|
758
641
|
class LIsSmiAndBranch: public LControlInstruction<1, 0> {
|
|
759
642
|
public:
|
|
760
643
|
explicit LIsSmiAndBranch(LOperand* value) {
|
|
@@ -762,22 +645,12 @@ class LIsSmiAndBranch: public LControlInstruction<1, 0> {
|
|
|
762
645
|
}
|
|
763
646
|
|
|
764
647
|
DECLARE_CONCRETE_INSTRUCTION(IsSmiAndBranch, "is-smi-and-branch")
|
|
648
|
+
DECLARE_HYDROGEN_ACCESSOR(IsSmiAndBranch)
|
|
765
649
|
|
|
766
650
|
virtual void PrintDataTo(StringStream* stream);
|
|
767
651
|
};
|
|
768
652
|
|
|
769
653
|
|
|
770
|
-
class LIsUndetectable: public LTemplateInstruction<1, 1, 0> {
|
|
771
|
-
public:
|
|
772
|
-
explicit LIsUndetectable(LOperand* value) {
|
|
773
|
-
inputs_[0] = value;
|
|
774
|
-
}
|
|
775
|
-
|
|
776
|
-
DECLARE_CONCRETE_INSTRUCTION(IsUndetectable, "is-undetectable")
|
|
777
|
-
DECLARE_HYDROGEN_ACCESSOR(IsUndetectable)
|
|
778
|
-
};
|
|
779
|
-
|
|
780
|
-
|
|
781
654
|
class LIsUndetectableAndBranch: public LControlInstruction<1, 1> {
|
|
782
655
|
public:
|
|
783
656
|
explicit LIsUndetectableAndBranch(LOperand* value, LOperand* temp) {
|
|
@@ -787,22 +660,12 @@ class LIsUndetectableAndBranch: public LControlInstruction<1, 1> {
|
|
|
787
660
|
|
|
788
661
|
DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch,
|
|
789
662
|
"is-undetectable-and-branch")
|
|
663
|
+
DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch)
|
|
790
664
|
|
|
791
665
|
virtual void PrintDataTo(StringStream* stream);
|
|
792
666
|
};
|
|
793
667
|
|
|
794
668
|
|
|
795
|
-
class LHasInstanceType: public LTemplateInstruction<1, 1, 0> {
|
|
796
|
-
public:
|
|
797
|
-
explicit LHasInstanceType(LOperand* value) {
|
|
798
|
-
inputs_[0] = value;
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
DECLARE_CONCRETE_INSTRUCTION(HasInstanceType, "has-instance-type")
|
|
802
|
-
DECLARE_HYDROGEN_ACCESSOR(HasInstanceType)
|
|
803
|
-
};
|
|
804
|
-
|
|
805
|
-
|
|
806
669
|
class LHasInstanceTypeAndBranch: public LControlInstruction<1, 0> {
|
|
807
670
|
public:
|
|
808
671
|
explicit LHasInstanceTypeAndBranch(LOperand* value) {
|
|
@@ -811,7 +674,7 @@ class LHasInstanceTypeAndBranch: public LControlInstruction<1, 0> {
|
|
|
811
674
|
|
|
812
675
|
DECLARE_CONCRETE_INSTRUCTION(HasInstanceTypeAndBranch,
|
|
813
676
|
"has-instance-type-and-branch")
|
|
814
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
677
|
+
DECLARE_HYDROGEN_ACCESSOR(HasInstanceTypeAndBranch)
|
|
815
678
|
|
|
816
679
|
virtual void PrintDataTo(StringStream* stream);
|
|
817
680
|
};
|
|
@@ -828,17 +691,6 @@ class LGetCachedArrayIndex: public LTemplateInstruction<1, 1, 0> {
|
|
|
828
691
|
};
|
|
829
692
|
|
|
830
693
|
|
|
831
|
-
class LHasCachedArrayIndex: public LTemplateInstruction<1, 1, 0> {
|
|
832
|
-
public:
|
|
833
|
-
explicit LHasCachedArrayIndex(LOperand* value) {
|
|
834
|
-
inputs_[0] = value;
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndex, "has-cached-array-index")
|
|
838
|
-
DECLARE_HYDROGEN_ACCESSOR(HasCachedArrayIndex)
|
|
839
|
-
};
|
|
840
|
-
|
|
841
|
-
|
|
842
694
|
class LHasCachedArrayIndexAndBranch: public LControlInstruction<1, 0> {
|
|
843
695
|
public:
|
|
844
696
|
explicit LHasCachedArrayIndexAndBranch(LOperand* value) {
|
|
@@ -847,19 +699,7 @@ class LHasCachedArrayIndexAndBranch: public LControlInstruction<1, 0> {
|
|
|
847
699
|
|
|
848
700
|
DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndexAndBranch,
|
|
849
701
|
"has-cached-array-index-and-branch")
|
|
850
|
-
|
|
851
|
-
};
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
class LClassOfTest: public LTemplateInstruction<1, 1, 1> {
|
|
855
|
-
public:
|
|
856
|
-
LClassOfTest(LOperand* value, LOperand* temp) {
|
|
857
|
-
inputs_[0] = value;
|
|
858
|
-
temps_[0] = temp;
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
DECLARE_CONCRETE_INSTRUCTION(ClassOfTest, "class-of-test")
|
|
862
|
-
DECLARE_HYDROGEN_ACCESSOR(ClassOfTest)
|
|
702
|
+
DECLARE_HYDROGEN_ACCESSOR(HasCachedArrayIndexAndBranch)
|
|
863
703
|
|
|
864
704
|
virtual void PrintDataTo(StringStream* stream);
|
|
865
705
|
};
|
|
@@ -874,7 +714,7 @@ class LClassOfTestAndBranch: public LControlInstruction<1, 1> {
|
|
|
874
714
|
|
|
875
715
|
DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch,
|
|
876
716
|
"class-of-test-and-branch")
|
|
877
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
717
|
+
DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch)
|
|
878
718
|
|
|
879
719
|
virtual void PrintDataTo(StringStream* stream);
|
|
880
720
|
};
|
|
@@ -888,21 +728,7 @@ class LCmpT: public LTemplateInstruction<1, 2, 0> {
|
|
|
888
728
|
}
|
|
889
729
|
|
|
890
730
|
DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t")
|
|
891
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
892
|
-
|
|
893
|
-
Token::Value op() const { return hydrogen()->token(); }
|
|
894
|
-
};
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
class LCmpTAndBranch: public LControlInstruction<2, 0> {
|
|
898
|
-
public:
|
|
899
|
-
LCmpTAndBranch(LOperand* left, LOperand* right) {
|
|
900
|
-
inputs_[0] = left;
|
|
901
|
-
inputs_[1] = right;
|
|
902
|
-
}
|
|
903
|
-
|
|
904
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpTAndBranch, "cmp-t-and-branch")
|
|
905
|
-
DECLARE_HYDROGEN_ACCESSOR(Compare)
|
|
731
|
+
DECLARE_HYDROGEN_ACCESSOR(CompareGeneric)
|
|
906
732
|
|
|
907
733
|
Token::Value op() const { return hydrogen()->token(); }
|
|
908
734
|
};
|
|
@@ -933,17 +759,6 @@ class LInstanceOf: public LTemplateInstruction<1, 2, 0> {
|
|
|
933
759
|
};
|
|
934
760
|
|
|
935
761
|
|
|
936
|
-
class LInstanceOfAndBranch: public LControlInstruction<2, 0> {
|
|
937
|
-
public:
|
|
938
|
-
LInstanceOfAndBranch(LOperand* left, LOperand* right) {
|
|
939
|
-
inputs_[0] = left;
|
|
940
|
-
inputs_[1] = right;
|
|
941
|
-
}
|
|
942
|
-
|
|
943
|
-
DECLARE_CONCRETE_INSTRUCTION(InstanceOfAndBranch, "instance-of-and-branch")
|
|
944
|
-
};
|
|
945
|
-
|
|
946
|
-
|
|
947
762
|
class LInstanceOfKnownGlobal: public LTemplateInstruction<1, 1, 1> {
|
|
948
763
|
public:
|
|
949
764
|
LInstanceOfKnownGlobal(LOperand* value, LOperand* temp) {
|
|
@@ -1059,7 +874,7 @@ class LBranch: public LControlInstruction<1, 0> {
|
|
|
1059
874
|
}
|
|
1060
875
|
|
|
1061
876
|
DECLARE_CONCRETE_INSTRUCTION(Branch, "branch")
|
|
1062
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
877
|
+
DECLARE_HYDROGEN_ACCESSOR(Branch)
|
|
1063
878
|
|
|
1064
879
|
virtual void PrintDataTo(StringStream* stream);
|
|
1065
880
|
};
|
|
@@ -1097,25 +912,26 @@ class LJSArrayLength: public LTemplateInstruction<1, 1, 0> {
|
|
|
1097
912
|
};
|
|
1098
913
|
|
|
1099
914
|
|
|
1100
|
-
class
|
|
915
|
+
class LFixedArrayBaseLength: public LTemplateInstruction<1, 1, 0> {
|
|
1101
916
|
public:
|
|
1102
|
-
explicit
|
|
917
|
+
explicit LFixedArrayBaseLength(LOperand* value) {
|
|
1103
918
|
inputs_[0] = value;
|
|
1104
919
|
}
|
|
1105
920
|
|
|
1106
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
1107
|
-
|
|
921
|
+
DECLARE_CONCRETE_INSTRUCTION(FixedArrayBaseLength,
|
|
922
|
+
"fixed-array-base-length")
|
|
923
|
+
DECLARE_HYDROGEN_ACCESSOR(FixedArrayBaseLength)
|
|
1108
924
|
};
|
|
1109
925
|
|
|
1110
926
|
|
|
1111
|
-
class
|
|
927
|
+
class LElementsKind: public LTemplateInstruction<1, 1, 0> {
|
|
1112
928
|
public:
|
|
1113
|
-
explicit
|
|
929
|
+
explicit LElementsKind(LOperand* value) {
|
|
1114
930
|
inputs_[0] = value;
|
|
1115
931
|
}
|
|
1116
932
|
|
|
1117
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
1118
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
933
|
+
DECLARE_CONCRETE_INSTRUCTION(ElementsKind, "elements-kind")
|
|
934
|
+
DECLARE_HYDROGEN_ACCESSOR(ElementsKind)
|
|
1119
935
|
};
|
|
1120
936
|
|
|
1121
937
|
|
|
@@ -1309,6 +1125,22 @@ class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> {
|
|
|
1309
1125
|
};
|
|
1310
1126
|
|
|
1311
1127
|
|
|
1128
|
+
class LLoadKeyedFastDoubleElement: public LTemplateInstruction<1, 2, 0> {
|
|
1129
|
+
public:
|
|
1130
|
+
LLoadKeyedFastDoubleElement(LOperand* elements, LOperand* key) {
|
|
1131
|
+
inputs_[0] = elements;
|
|
1132
|
+
inputs_[1] = key;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastDoubleElement,
|
|
1136
|
+
"load-keyed-fast-double-element")
|
|
1137
|
+
DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastDoubleElement)
|
|
1138
|
+
|
|
1139
|
+
LOperand* elements() { return inputs_[0]; }
|
|
1140
|
+
LOperand* key() { return inputs_[1]; }
|
|
1141
|
+
};
|
|
1142
|
+
|
|
1143
|
+
|
|
1312
1144
|
class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> {
|
|
1313
1145
|
public:
|
|
1314
1146
|
LLoadKeyedSpecializedArrayElement(LOperand* external_pointer,
|
|
@@ -1323,8 +1155,8 @@ class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> {
|
|
|
1323
1155
|
|
|
1324
1156
|
LOperand* external_pointer() { return inputs_[0]; }
|
|
1325
1157
|
LOperand* key() { return inputs_[1]; }
|
|
1326
|
-
|
|
1327
|
-
return hydrogen()->
|
|
1158
|
+
JSObject::ElementsKind elements_kind() const {
|
|
1159
|
+
return hydrogen()->elements_kind();
|
|
1328
1160
|
}
|
|
1329
1161
|
};
|
|
1330
1162
|
|
|
@@ -1441,6 +1273,11 @@ class LPushArgument: public LTemplateInstruction<0, 1, 0> {
|
|
|
1441
1273
|
};
|
|
1442
1274
|
|
|
1443
1275
|
|
|
1276
|
+
class LThisFunction: public LTemplateInstruction<1, 0, 0> {
|
|
1277
|
+
DECLARE_CONCRETE_INSTRUCTION(ThisFunction, "this-function")
|
|
1278
|
+
};
|
|
1279
|
+
|
|
1280
|
+
|
|
1444
1281
|
class LContext: public LTemplateInstruction<1, 0, 0> {
|
|
1445
1282
|
public:
|
|
1446
1283
|
DECLARE_CONCRETE_INSTRUCTION(Context, "context")
|
|
@@ -1634,7 +1471,7 @@ class LDoubleToI: public LTemplateInstruction<1, 1, 0> {
|
|
|
1634
1471
|
}
|
|
1635
1472
|
|
|
1636
1473
|
DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i")
|
|
1637
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
1474
|
+
DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
|
|
1638
1475
|
|
|
1639
1476
|
bool truncating() { return hydrogen()->CanTruncateToInt32(); }
|
|
1640
1477
|
};
|
|
@@ -1649,7 +1486,7 @@ class LTaggedToI: public LTemplateInstruction<1, 1, 1> {
|
|
|
1649
1486
|
}
|
|
1650
1487
|
|
|
1651
1488
|
DECLARE_CONCRETE_INSTRUCTION(TaggedToI, "tagged-to-i")
|
|
1652
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
1489
|
+
DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
|
|
1653
1490
|
|
|
1654
1491
|
bool truncating() { return hydrogen()->CanTruncateToInt32(); }
|
|
1655
1492
|
};
|
|
@@ -1672,6 +1509,7 @@ class LNumberUntagD: public LTemplateInstruction<1, 1, 0> {
|
|
|
1672
1509
|
}
|
|
1673
1510
|
|
|
1674
1511
|
DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag")
|
|
1512
|
+
DECLARE_HYDROGEN_ACCESSOR(Change);
|
|
1675
1513
|
};
|
|
1676
1514
|
|
|
1677
1515
|
|
|
@@ -1754,6 +1592,28 @@ class LStoreKeyedFastElement: public LTemplateInstruction<0, 3, 0> {
|
|
|
1754
1592
|
};
|
|
1755
1593
|
|
|
1756
1594
|
|
|
1595
|
+
class LStoreKeyedFastDoubleElement: public LTemplateInstruction<0, 3, 0> {
|
|
1596
|
+
public:
|
|
1597
|
+
LStoreKeyedFastDoubleElement(LOperand* elements,
|
|
1598
|
+
LOperand* key,
|
|
1599
|
+
LOperand* val) {
|
|
1600
|
+
inputs_[0] = elements;
|
|
1601
|
+
inputs_[1] = key;
|
|
1602
|
+
inputs_[2] = val;
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFastDoubleElement,
|
|
1606
|
+
"store-keyed-fast-double-element")
|
|
1607
|
+
DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastDoubleElement)
|
|
1608
|
+
|
|
1609
|
+
virtual void PrintDataTo(StringStream* stream);
|
|
1610
|
+
|
|
1611
|
+
LOperand* elements() { return inputs_[0]; }
|
|
1612
|
+
LOperand* key() { return inputs_[1]; }
|
|
1613
|
+
LOperand* value() { return inputs_[2]; }
|
|
1614
|
+
};
|
|
1615
|
+
|
|
1616
|
+
|
|
1757
1617
|
class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> {
|
|
1758
1618
|
public:
|
|
1759
1619
|
LStoreKeyedSpecializedArrayElement(LOperand* external_pointer,
|
|
@@ -1771,8 +1631,8 @@ class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> {
|
|
|
1771
1631
|
LOperand* external_pointer() { return inputs_[0]; }
|
|
1772
1632
|
LOperand* key() { return inputs_[1]; }
|
|
1773
1633
|
LOperand* value() { return inputs_[2]; }
|
|
1774
|
-
|
|
1775
|
-
return hydrogen()->
|
|
1634
|
+
JSObject::ElementsKind elements_kind() const {
|
|
1635
|
+
return hydrogen()->elements_kind();
|
|
1776
1636
|
}
|
|
1777
1637
|
};
|
|
1778
1638
|
|
|
@@ -2012,21 +1872,6 @@ class LTypeof: public LTemplateInstruction<1, 1, 0> {
|
|
|
2012
1872
|
};
|
|
2013
1873
|
|
|
2014
1874
|
|
|
2015
|
-
class LTypeofIs: public LTemplateInstruction<1, 1, 0> {
|
|
2016
|
-
public:
|
|
2017
|
-
explicit LTypeofIs(LOperand* value) {
|
|
2018
|
-
inputs_[0] = value;
|
|
2019
|
-
}
|
|
2020
|
-
|
|
2021
|
-
DECLARE_CONCRETE_INSTRUCTION(TypeofIs, "typeof-is")
|
|
2022
|
-
DECLARE_HYDROGEN_ACCESSOR(TypeofIs)
|
|
2023
|
-
|
|
2024
|
-
Handle<String> type_literal() { return hydrogen()->type_literal(); }
|
|
2025
|
-
|
|
2026
|
-
virtual void PrintDataTo(StringStream* stream);
|
|
2027
|
-
};
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
1875
|
class LTypeofIsAndBranch: public LControlInstruction<1, 0> {
|
|
2031
1876
|
public:
|
|
2032
1877
|
explicit LTypeofIsAndBranch(LOperand* value) {
|
|
@@ -2034,7 +1879,7 @@ class LTypeofIsAndBranch: public LControlInstruction<1, 0> {
|
|
|
2034
1879
|
}
|
|
2035
1880
|
|
|
2036
1881
|
DECLARE_CONCRETE_INSTRUCTION(TypeofIsAndBranch, "typeof-is-and-branch")
|
|
2037
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
1882
|
+
DECLARE_HYDROGEN_ACCESSOR(TypeofIsAndBranch)
|
|
2038
1883
|
|
|
2039
1884
|
Handle<String> type_literal() { return hydrogen()->type_literal(); }
|
|
2040
1885
|
|
|
@@ -2042,13 +1887,6 @@ class LTypeofIsAndBranch: public LControlInstruction<1, 0> {
|
|
|
2042
1887
|
};
|
|
2043
1888
|
|
|
2044
1889
|
|
|
2045
|
-
class LIsConstructCall: public LTemplateInstruction<1, 0, 0> {
|
|
2046
|
-
public:
|
|
2047
|
-
DECLARE_CONCRETE_INSTRUCTION(IsConstructCall, "is-construct-call")
|
|
2048
|
-
DECLARE_HYDROGEN_ACCESSOR(IsConstructCall)
|
|
2049
|
-
};
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
1890
|
class LIsConstructCallAndBranch: public LControlInstruction<0, 1> {
|
|
2053
1891
|
public:
|
|
2054
1892
|
explicit LIsConstructCallAndBranch(LOperand* temp) {
|
|
@@ -2057,6 +1895,7 @@ class LIsConstructCallAndBranch: public LControlInstruction<0, 1> {
|
|
|
2057
1895
|
|
|
2058
1896
|
DECLARE_CONCRETE_INSTRUCTION(IsConstructCallAndBranch,
|
|
2059
1897
|
"is-construct-call-and-branch")
|
|
1898
|
+
DECLARE_HYDROGEN_ACCESSOR(IsConstructCallAndBranch)
|
|
2060
1899
|
};
|
|
2061
1900
|
|
|
2062
1901
|
|
|
@@ -2100,6 +1939,12 @@ class LOsrEntry: public LTemplateInstruction<0, 0, 0> {
|
|
|
2100
1939
|
class LStackCheck: public LTemplateInstruction<0, 0, 0> {
|
|
2101
1940
|
public:
|
|
2102
1941
|
DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check")
|
|
1942
|
+
DECLARE_HYDROGEN_ACCESSOR(StackCheck)
|
|
1943
|
+
|
|
1944
|
+
Label* done_label() { return &done_label_; }
|
|
1945
|
+
|
|
1946
|
+
private:
|
|
1947
|
+
Label done_label_;
|
|
2103
1948
|
};
|
|
2104
1949
|
|
|
2105
1950
|
|
|
@@ -2279,14 +2124,18 @@ class LChunkBuilder BASE_EMBEDDED {
|
|
|
2279
2124
|
template<int I, int T>
|
|
2280
2125
|
LInstruction* DefineFixedDouble(LTemplateInstruction<1, I, T>* instr,
|
|
2281
2126
|
XMMRegister reg);
|
|
2127
|
+
// Assigns an environment to an instruction. An instruction which can
|
|
2128
|
+
// deoptimize must have an environment.
|
|
2282
2129
|
LInstruction* AssignEnvironment(LInstruction* instr);
|
|
2130
|
+
// Assigns a pointer map to an instruction. An instruction which can
|
|
2131
|
+
// trigger a GC or a lazy deoptimization must have a pointer map.
|
|
2283
2132
|
LInstruction* AssignPointerMap(LInstruction* instr);
|
|
2284
2133
|
|
|
2285
2134
|
enum CanDeoptimize { CAN_DEOPTIMIZE_EAGERLY, CANNOT_DEOPTIMIZE_EAGERLY };
|
|
2286
2135
|
|
|
2287
|
-
//
|
|
2288
|
-
//
|
|
2289
|
-
//
|
|
2136
|
+
// Marks a call for the register allocator. Assigns a pointer map to
|
|
2137
|
+
// support GC and lazy deoptimization. Assigns an environment to support
|
|
2138
|
+
// eager deoptimization if CAN_DEOPTIMIZE_EAGERLY.
|
|
2290
2139
|
LInstruction* MarkAsCall(
|
|
2291
2140
|
LInstruction* instr,
|
|
2292
2141
|
HInstruction* hinstr,
|