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) \
|
|
@@ -231,7 +221,6 @@ class LInstruction: public ZoneObject {
|
|
|
231
221
|
virtual bool IsGap() const { return false; }
|
|
232
222
|
|
|
233
223
|
virtual bool IsControl() const { return false; }
|
|
234
|
-
virtual void SetBranchTargets(int true_block_id, int false_block_id) { }
|
|
235
224
|
|
|
236
225
|
void set_environment(LEnvironment* env) { environment_ = env; }
|
|
237
226
|
LEnvironment* environment() const { return environment_; }
|
|
@@ -286,37 +275,6 @@ class LInstruction: public ZoneObject {
|
|
|
286
275
|
};
|
|
287
276
|
|
|
288
277
|
|
|
289
|
-
template<typename ElementType, int NumElements>
|
|
290
|
-
class OperandContainer {
|
|
291
|
-
public:
|
|
292
|
-
OperandContainer() {
|
|
293
|
-
for (int i = 0; i < NumElements; i++) elems_[i] = NULL;
|
|
294
|
-
}
|
|
295
|
-
int length() { return NumElements; }
|
|
296
|
-
ElementType& operator[](int i) {
|
|
297
|
-
ASSERT(i < length());
|
|
298
|
-
return elems_[i];
|
|
299
|
-
}
|
|
300
|
-
void PrintOperandsTo(StringStream* stream);
|
|
301
|
-
|
|
302
|
-
private:
|
|
303
|
-
ElementType elems_[NumElements];
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
template<typename ElementType>
|
|
308
|
-
class OperandContainer<ElementType, 0> {
|
|
309
|
-
public:
|
|
310
|
-
int length() { return 0; }
|
|
311
|
-
void PrintOperandsTo(StringStream* stream) { }
|
|
312
|
-
ElementType& operator[](int i) {
|
|
313
|
-
UNREACHABLE();
|
|
314
|
-
static ElementType t = 0;
|
|
315
|
-
return t;
|
|
316
|
-
}
|
|
317
|
-
};
|
|
318
|
-
|
|
319
|
-
|
|
320
278
|
// R = number of result operands (0 or 1).
|
|
321
279
|
// I = number of input operands.
|
|
322
280
|
// T = number of temporary operands.
|
|
@@ -339,9 +297,9 @@ class LTemplateInstruction: public LInstruction {
|
|
|
339
297
|
virtual void PrintOutputOperandTo(StringStream* stream);
|
|
340
298
|
|
|
341
299
|
protected:
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
300
|
+
EmbeddedContainer<LOperand*, R> results_;
|
|
301
|
+
EmbeddedContainer<LOperand*, I> inputs_;
|
|
302
|
+
EmbeddedContainer<LOperand*, T> temps_;
|
|
345
303
|
};
|
|
346
304
|
|
|
347
305
|
|
|
@@ -401,19 +359,16 @@ class LInstructionGap: public LGap {
|
|
|
401
359
|
|
|
402
360
|
class LGoto: public LTemplateInstruction<0, 0, 0> {
|
|
403
361
|
public:
|
|
404
|
-
LGoto(int block_id
|
|
405
|
-
: block_id_(block_id), include_stack_check_(include_stack_check) { }
|
|
362
|
+
explicit LGoto(int block_id) : block_id_(block_id) { }
|
|
406
363
|
|
|
407
364
|
DECLARE_CONCRETE_INSTRUCTION(Goto, "goto")
|
|
408
365
|
virtual void PrintDataTo(StringStream* stream);
|
|
409
366
|
virtual bool IsControl() const { return true; }
|
|
410
367
|
|
|
411
368
|
int block_id() const { return block_id_; }
|
|
412
|
-
bool include_stack_check() const { return include_stack_check_; }
|
|
413
369
|
|
|
414
370
|
private:
|
|
415
371
|
int block_id_;
|
|
416
|
-
bool include_stack_check_;
|
|
417
372
|
};
|
|
418
373
|
|
|
419
374
|
|
|
@@ -489,16 +444,15 @@ class LControlInstruction: public LTemplateInstruction<0, I, T> {
|
|
|
489
444
|
public:
|
|
490
445
|
virtual bool IsControl() const { return true; }
|
|
491
446
|
|
|
492
|
-
int
|
|
493
|
-
int
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
false_block_id_ = false_block_id;
|
|
497
|
-
}
|
|
447
|
+
int SuccessorCount() { return hydrogen()->SuccessorCount(); }
|
|
448
|
+
HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); }
|
|
449
|
+
int true_block_id() { return hydrogen()->SuccessorAt(0)->block_id(); }
|
|
450
|
+
int false_block_id() { return hydrogen()->SuccessorAt(1)->block_id(); }
|
|
498
451
|
|
|
499
452
|
private:
|
|
500
|
-
|
|
501
|
-
|
|
453
|
+
HControlInstruction* hydrogen() {
|
|
454
|
+
return HControlInstruction::cast(this->hydrogen_value());
|
|
455
|
+
}
|
|
502
456
|
};
|
|
503
457
|
|
|
504
458
|
|
|
@@ -614,23 +568,6 @@ class LMulI: public LTemplateInstruction<1, 2, 1> {
|
|
|
614
568
|
};
|
|
615
569
|
|
|
616
570
|
|
|
617
|
-
class LCmpID: public LTemplateInstruction<1, 2, 0> {
|
|
618
|
-
public:
|
|
619
|
-
LCmpID(LOperand* left, LOperand* right) {
|
|
620
|
-
inputs_[0] = left;
|
|
621
|
-
inputs_[1] = right;
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpID, "cmp-id")
|
|
625
|
-
DECLARE_HYDROGEN_ACCESSOR(Compare)
|
|
626
|
-
|
|
627
|
-
Token::Value op() const { return hydrogen()->token(); }
|
|
628
|
-
bool is_double() const {
|
|
629
|
-
return hydrogen()->GetInputRepresentation().IsDouble();
|
|
630
|
-
}
|
|
631
|
-
};
|
|
632
|
-
|
|
633
|
-
|
|
634
571
|
class LCmpIDAndBranch: public LControlInstruction<2, 0> {
|
|
635
572
|
public:
|
|
636
573
|
LCmpIDAndBranch(LOperand* left, LOperand* right) {
|
|
@@ -639,7 +576,7 @@ class LCmpIDAndBranch: public LControlInstruction<2, 0> {
|
|
|
639
576
|
}
|
|
640
577
|
|
|
641
578
|
DECLARE_CONCRETE_INSTRUCTION(CmpIDAndBranch, "cmp-id-and-branch")
|
|
642
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
579
|
+
DECLARE_HYDROGEN_ACCESSOR(CompareIDAndBranch)
|
|
643
580
|
|
|
644
581
|
Token::Value op() const { return hydrogen()->token(); }
|
|
645
582
|
bool is_double() const {
|
|
@@ -665,63 +602,31 @@ class LUnaryMathOperation: public LTemplateInstruction<1, 1, 1> {
|
|
|
665
602
|
};
|
|
666
603
|
|
|
667
604
|
|
|
668
|
-
class
|
|
669
|
-
public:
|
|
670
|
-
LCmpJSObjectEq(LOperand* left, LOperand* right) {
|
|
671
|
-
inputs_[0] = left;
|
|
672
|
-
inputs_[1] = right;
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEq, "cmp-jsobject-eq")
|
|
676
|
-
};
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
class LCmpJSObjectEqAndBranch: public LControlInstruction<2, 0> {
|
|
680
|
-
public:
|
|
681
|
-
LCmpJSObjectEqAndBranch(LOperand* left, LOperand* right) {
|
|
682
|
-
inputs_[0] = left;
|
|
683
|
-
inputs_[1] = right;
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpJSObjectEqAndBranch,
|
|
687
|
-
"cmp-jsobject-eq-and-branch")
|
|
688
|
-
};
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
class LCmpSymbolEq: public LTemplateInstruction<1, 2, 0> {
|
|
605
|
+
class LCmpObjectEqAndBranch: public LControlInstruction<2, 0> {
|
|
692
606
|
public:
|
|
693
|
-
|
|
607
|
+
LCmpObjectEqAndBranch(LOperand* left, LOperand* right) {
|
|
694
608
|
inputs_[0] = left;
|
|
695
609
|
inputs_[1] = right;
|
|
696
610
|
}
|
|
697
611
|
|
|
698
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
612
|
+
DECLARE_CONCRETE_INSTRUCTION(CmpObjectEqAndBranch,
|
|
613
|
+
"cmp-object-eq-and-branch")
|
|
614
|
+
DECLARE_HYDROGEN_ACCESSOR(CompareObjectEqAndBranch)
|
|
699
615
|
};
|
|
700
616
|
|
|
701
617
|
|
|
702
|
-
class
|
|
618
|
+
class LCmpConstantEqAndBranch: public LControlInstruction<1, 0> {
|
|
703
619
|
public:
|
|
704
|
-
|
|
620
|
+
explicit LCmpConstantEqAndBranch(LOperand* left) {
|
|
705
621
|
inputs_[0] = left;
|
|
706
|
-
inputs_[1] = right;
|
|
707
622
|
}
|
|
708
623
|
|
|
709
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
624
|
+
DECLARE_CONCRETE_INSTRUCTION(CmpConstantEqAndBranch,
|
|
625
|
+
"cmp-constant-eq-and-branch")
|
|
626
|
+
DECLARE_HYDROGEN_ACCESSOR(CompareConstantEqAndBranch)
|
|
710
627
|
};
|
|
711
628
|
|
|
712
629
|
|
|
713
|
-
class LIsNull: public LTemplateInstruction<1, 1, 0> {
|
|
714
|
-
public:
|
|
715
|
-
explicit LIsNull(LOperand* value) {
|
|
716
|
-
inputs_[0] = value;
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
DECLARE_CONCRETE_INSTRUCTION(IsNull, "is-null")
|
|
720
|
-
DECLARE_HYDROGEN_ACCESSOR(IsNull)
|
|
721
|
-
|
|
722
|
-
bool is_strict() const { return hydrogen()->is_strict(); }
|
|
723
|
-
};
|
|
724
|
-
|
|
725
630
|
class LIsNullAndBranch: public LControlInstruction<1, 0> {
|
|
726
631
|
public:
|
|
727
632
|
explicit LIsNullAndBranch(LOperand* value) {
|
|
@@ -729,7 +634,7 @@ class LIsNullAndBranch: public LControlInstruction<1, 0> {
|
|
|
729
634
|
}
|
|
730
635
|
|
|
731
636
|
DECLARE_CONCRETE_INSTRUCTION(IsNullAndBranch, "is-null-and-branch")
|
|
732
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
637
|
+
DECLARE_HYDROGEN_ACCESSOR(IsNullAndBranch)
|
|
733
638
|
|
|
734
639
|
bool is_strict() const { return hydrogen()->is_strict(); }
|
|
735
640
|
|
|
@@ -737,17 +642,7 @@ class LIsNullAndBranch: public LControlInstruction<1, 0> {
|
|
|
737
642
|
};
|
|
738
643
|
|
|
739
644
|
|
|
740
|
-
class
|
|
741
|
-
public:
|
|
742
|
-
explicit LIsObject(LOperand* value) {
|
|
743
|
-
inputs_[0] = value;
|
|
744
|
-
}
|
|
745
|
-
|
|
746
|
-
DECLARE_CONCRETE_INSTRUCTION(IsObject, "is-object")
|
|
747
|
-
};
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
class LIsObjectAndBranch: public LControlInstruction<1, 2> {
|
|
645
|
+
class LIsObjectAndBranch: public LControlInstruction<1, 1> {
|
|
751
646
|
public:
|
|
752
647
|
LIsObjectAndBranch(LOperand* value, LOperand* temp) {
|
|
753
648
|
inputs_[0] = value;
|
|
@@ -755,22 +650,12 @@ class LIsObjectAndBranch: public LControlInstruction<1, 2> {
|
|
|
755
650
|
}
|
|
756
651
|
|
|
757
652
|
DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch")
|
|
653
|
+
DECLARE_HYDROGEN_ACCESSOR(IsObjectAndBranch)
|
|
758
654
|
|
|
759
655
|
virtual void PrintDataTo(StringStream* stream);
|
|
760
656
|
};
|
|
761
657
|
|
|
762
658
|
|
|
763
|
-
class LIsSmi: public LTemplateInstruction<1, 1, 0> {
|
|
764
|
-
public:
|
|
765
|
-
explicit LIsSmi(LOperand* value) {
|
|
766
|
-
inputs_[0] = value;
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
DECLARE_CONCRETE_INSTRUCTION(IsSmi, "is-smi")
|
|
770
|
-
DECLARE_HYDROGEN_ACCESSOR(IsSmi)
|
|
771
|
-
};
|
|
772
|
-
|
|
773
|
-
|
|
774
659
|
class LIsSmiAndBranch: public LControlInstruction<1, 0> {
|
|
775
660
|
public:
|
|
776
661
|
explicit LIsSmiAndBranch(LOperand* value) {
|
|
@@ -778,22 +663,12 @@ class LIsSmiAndBranch: public LControlInstruction<1, 0> {
|
|
|
778
663
|
}
|
|
779
664
|
|
|
780
665
|
DECLARE_CONCRETE_INSTRUCTION(IsSmiAndBranch, "is-smi-and-branch")
|
|
666
|
+
DECLARE_HYDROGEN_ACCESSOR(IsSmiAndBranch)
|
|
781
667
|
|
|
782
668
|
virtual void PrintDataTo(StringStream* stream);
|
|
783
669
|
};
|
|
784
670
|
|
|
785
671
|
|
|
786
|
-
class LIsUndetectable: public LTemplateInstruction<1, 1, 0> {
|
|
787
|
-
public:
|
|
788
|
-
explicit LIsUndetectable(LOperand* value) {
|
|
789
|
-
inputs_[0] = value;
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
DECLARE_CONCRETE_INSTRUCTION(IsUndetectable, "is-undetectable")
|
|
793
|
-
DECLARE_HYDROGEN_ACCESSOR(IsUndetectable)
|
|
794
|
-
};
|
|
795
|
-
|
|
796
|
-
|
|
797
672
|
class LIsUndetectableAndBranch: public LControlInstruction<1, 1> {
|
|
798
673
|
public:
|
|
799
674
|
explicit LIsUndetectableAndBranch(LOperand* value, LOperand* temp) {
|
|
@@ -803,22 +678,12 @@ class LIsUndetectableAndBranch: public LControlInstruction<1, 1> {
|
|
|
803
678
|
|
|
804
679
|
DECLARE_CONCRETE_INSTRUCTION(IsUndetectableAndBranch,
|
|
805
680
|
"is-undetectable-and-branch")
|
|
681
|
+
DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch)
|
|
806
682
|
|
|
807
683
|
virtual void PrintDataTo(StringStream* stream);
|
|
808
684
|
};
|
|
809
685
|
|
|
810
686
|
|
|
811
|
-
class LHasInstanceType: public LTemplateInstruction<1, 1, 0> {
|
|
812
|
-
public:
|
|
813
|
-
explicit LHasInstanceType(LOperand* value) {
|
|
814
|
-
inputs_[0] = value;
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
DECLARE_CONCRETE_INSTRUCTION(HasInstanceType, "has-instance-type")
|
|
818
|
-
DECLARE_HYDROGEN_ACCESSOR(HasInstanceType)
|
|
819
|
-
};
|
|
820
|
-
|
|
821
|
-
|
|
822
687
|
class LHasInstanceTypeAndBranch: public LControlInstruction<1, 0> {
|
|
823
688
|
public:
|
|
824
689
|
explicit LHasInstanceTypeAndBranch(LOperand* value) {
|
|
@@ -827,7 +692,7 @@ class LHasInstanceTypeAndBranch: public LControlInstruction<1, 0> {
|
|
|
827
692
|
|
|
828
693
|
DECLARE_CONCRETE_INSTRUCTION(HasInstanceTypeAndBranch,
|
|
829
694
|
"has-instance-type-and-branch")
|
|
830
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
695
|
+
DECLARE_HYDROGEN_ACCESSOR(HasInstanceTypeAndBranch)
|
|
831
696
|
|
|
832
697
|
virtual void PrintDataTo(StringStream* stream);
|
|
833
698
|
};
|
|
@@ -844,17 +709,6 @@ class LGetCachedArrayIndex: public LTemplateInstruction<1, 1, 0> {
|
|
|
844
709
|
};
|
|
845
710
|
|
|
846
711
|
|
|
847
|
-
class LHasCachedArrayIndex: public LTemplateInstruction<1, 1, 0> {
|
|
848
|
-
public:
|
|
849
|
-
explicit LHasCachedArrayIndex(LOperand* value) {
|
|
850
|
-
inputs_[0] = value;
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndex, "has-cached-array-index")
|
|
854
|
-
DECLARE_HYDROGEN_ACCESSOR(HasCachedArrayIndex)
|
|
855
|
-
};
|
|
856
|
-
|
|
857
|
-
|
|
858
712
|
class LHasCachedArrayIndexAndBranch: public LControlInstruction<1, 0> {
|
|
859
713
|
public:
|
|
860
714
|
explicit LHasCachedArrayIndexAndBranch(LOperand* value) {
|
|
@@ -863,18 +717,7 @@ class LHasCachedArrayIndexAndBranch: public LControlInstruction<1, 0> {
|
|
|
863
717
|
|
|
864
718
|
DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndexAndBranch,
|
|
865
719
|
"has-cached-array-index-and-branch")
|
|
866
|
-
|
|
867
|
-
};
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
class LClassOfTest: public LTemplateInstruction<1, 1, 0> {
|
|
871
|
-
public:
|
|
872
|
-
explicit LClassOfTest(LOperand* value) {
|
|
873
|
-
inputs_[0] = value;
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
DECLARE_CONCRETE_INSTRUCTION(ClassOfTest, "class-of-test")
|
|
877
|
-
DECLARE_HYDROGEN_ACCESSOR(ClassOfTest)
|
|
720
|
+
DECLARE_HYDROGEN_ACCESSOR(HasCachedArrayIndexAndBranch)
|
|
878
721
|
|
|
879
722
|
virtual void PrintDataTo(StringStream* stream);
|
|
880
723
|
};
|
|
@@ -889,7 +732,7 @@ class LClassOfTestAndBranch: public LControlInstruction<1, 1> {
|
|
|
889
732
|
|
|
890
733
|
DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch,
|
|
891
734
|
"class-of-test-and-branch")
|
|
892
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
735
|
+
DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch)
|
|
893
736
|
|
|
894
737
|
virtual void PrintDataTo(StringStream* stream);
|
|
895
738
|
};
|
|
@@ -903,21 +746,7 @@ class LCmpT: public LTemplateInstruction<1, 2, 0> {
|
|
|
903
746
|
}
|
|
904
747
|
|
|
905
748
|
DECLARE_CONCRETE_INSTRUCTION(CmpT, "cmp-t")
|
|
906
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
907
|
-
|
|
908
|
-
Token::Value op() const { return hydrogen()->token(); }
|
|
909
|
-
};
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
class LCmpTAndBranch: public LControlInstruction<2, 0> {
|
|
913
|
-
public:
|
|
914
|
-
LCmpTAndBranch(LOperand* left, LOperand* right) {
|
|
915
|
-
inputs_[0] = left;
|
|
916
|
-
inputs_[1] = right;
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
DECLARE_CONCRETE_INSTRUCTION(CmpTAndBranch, "cmp-t-and-branch")
|
|
920
|
-
DECLARE_HYDROGEN_ACCESSOR(Compare)
|
|
749
|
+
DECLARE_HYDROGEN_ACCESSOR(CompareGeneric)
|
|
921
750
|
|
|
922
751
|
Token::Value op() const { return hydrogen()->token(); }
|
|
923
752
|
};
|
|
@@ -934,17 +763,6 @@ class LInstanceOf: public LTemplateInstruction<1, 2, 0> {
|
|
|
934
763
|
};
|
|
935
764
|
|
|
936
765
|
|
|
937
|
-
class LInstanceOfAndBranch: public LControlInstruction<2, 0> {
|
|
938
|
-
public:
|
|
939
|
-
LInstanceOfAndBranch(LOperand* left, LOperand* right) {
|
|
940
|
-
inputs_[0] = left;
|
|
941
|
-
inputs_[1] = right;
|
|
942
|
-
}
|
|
943
|
-
|
|
944
|
-
DECLARE_CONCRETE_INSTRUCTION(InstanceOfAndBranch, "instance-of-and-branch")
|
|
945
|
-
};
|
|
946
|
-
|
|
947
|
-
|
|
948
766
|
class LInstanceOfKnownGlobal: public LTemplateInstruction<1, 1, 1> {
|
|
949
767
|
public:
|
|
950
768
|
LInstanceOfKnownGlobal(LOperand* value, LOperand* temp) {
|
|
@@ -1057,7 +875,7 @@ class LBranch: public LControlInstruction<1, 0> {
|
|
|
1057
875
|
}
|
|
1058
876
|
|
|
1059
877
|
DECLARE_CONCRETE_INSTRUCTION(Branch, "branch")
|
|
1060
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
878
|
+
DECLARE_HYDROGEN_ACCESSOR(Branch)
|
|
1061
879
|
|
|
1062
880
|
virtual void PrintDataTo(StringStream* stream);
|
|
1063
881
|
};
|
|
@@ -1096,25 +914,26 @@ class LJSArrayLength: public LTemplateInstruction<1, 1, 0> {
|
|
|
1096
914
|
};
|
|
1097
915
|
|
|
1098
916
|
|
|
1099
|
-
class
|
|
917
|
+
class LFixedArrayBaseLength: public LTemplateInstruction<1, 1, 0> {
|
|
1100
918
|
public:
|
|
1101
|
-
explicit
|
|
919
|
+
explicit LFixedArrayBaseLength(LOperand* value) {
|
|
1102
920
|
inputs_[0] = value;
|
|
1103
921
|
}
|
|
1104
922
|
|
|
1105
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
1106
|
-
|
|
923
|
+
DECLARE_CONCRETE_INSTRUCTION(FixedArrayBaseLength,
|
|
924
|
+
"fixed-array-base-length")
|
|
925
|
+
DECLARE_HYDROGEN_ACCESSOR(FixedArrayBaseLength)
|
|
1107
926
|
};
|
|
1108
927
|
|
|
1109
928
|
|
|
1110
|
-
class
|
|
929
|
+
class LElementsKind: public LTemplateInstruction<1, 1, 0> {
|
|
1111
930
|
public:
|
|
1112
|
-
explicit
|
|
931
|
+
explicit LElementsKind(LOperand* value) {
|
|
1113
932
|
inputs_[0] = value;
|
|
1114
933
|
}
|
|
1115
934
|
|
|
1116
|
-
DECLARE_CONCRETE_INSTRUCTION(
|
|
1117
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
935
|
+
DECLARE_CONCRETE_INSTRUCTION(ElementsKind, "elements-kind")
|
|
936
|
+
DECLARE_HYDROGEN_ACCESSOR(ElementsKind)
|
|
1118
937
|
};
|
|
1119
938
|
|
|
1120
939
|
|
|
@@ -1309,6 +1128,22 @@ class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> {
|
|
|
1309
1128
|
};
|
|
1310
1129
|
|
|
1311
1130
|
|
|
1131
|
+
class LLoadKeyedFastDoubleElement: public LTemplateInstruction<1, 2, 0> {
|
|
1132
|
+
public:
|
|
1133
|
+
LLoadKeyedFastDoubleElement(LOperand* elements, LOperand* key) {
|
|
1134
|
+
inputs_[0] = elements;
|
|
1135
|
+
inputs_[1] = key;
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
DECLARE_CONCRETE_INSTRUCTION(LoadKeyedFastDoubleElement,
|
|
1139
|
+
"load-keyed-fast-double-element")
|
|
1140
|
+
DECLARE_HYDROGEN_ACCESSOR(LoadKeyedFastDoubleElement)
|
|
1141
|
+
|
|
1142
|
+
LOperand* elements() { return inputs_[0]; }
|
|
1143
|
+
LOperand* key() { return inputs_[1]; }
|
|
1144
|
+
};
|
|
1145
|
+
|
|
1146
|
+
|
|
1312
1147
|
class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> {
|
|
1313
1148
|
public:
|
|
1314
1149
|
LLoadKeyedSpecializedArrayElement(LOperand* external_pointer,
|
|
@@ -1323,8 +1158,8 @@ class LLoadKeyedSpecializedArrayElement: public LTemplateInstruction<1, 2, 0> {
|
|
|
1323
1158
|
|
|
1324
1159
|
LOperand* external_pointer() { return inputs_[0]; }
|
|
1325
1160
|
LOperand* key() { return inputs_[1]; }
|
|
1326
|
-
|
|
1327
|
-
return hydrogen()->
|
|
1161
|
+
JSObject::ElementsKind elements_kind() const {
|
|
1162
|
+
return hydrogen()->elements_kind();
|
|
1328
1163
|
}
|
|
1329
1164
|
};
|
|
1330
1165
|
|
|
@@ -1440,6 +1275,11 @@ class LPushArgument: public LTemplateInstruction<0, 1, 0> {
|
|
|
1440
1275
|
};
|
|
1441
1276
|
|
|
1442
1277
|
|
|
1278
|
+
class LThisFunction: public LTemplateInstruction<1, 0, 0> {
|
|
1279
|
+
DECLARE_CONCRETE_INSTRUCTION(ThisFunction, "this-function")
|
|
1280
|
+
};
|
|
1281
|
+
|
|
1282
|
+
|
|
1443
1283
|
class LContext: public LTemplateInstruction<1, 0, 0> {
|
|
1444
1284
|
public:
|
|
1445
1285
|
DECLARE_CONCRETE_INSTRUCTION(Context, "context")
|
|
@@ -1639,7 +1479,7 @@ class LDoubleToI: public LTemplateInstruction<1, 1, 2> {
|
|
|
1639
1479
|
}
|
|
1640
1480
|
|
|
1641
1481
|
DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i")
|
|
1642
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
1482
|
+
DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
|
|
1643
1483
|
|
|
1644
1484
|
bool truncating() { return hydrogen()->CanTruncateToInt32(); }
|
|
1645
1485
|
};
|
|
@@ -1659,7 +1499,7 @@ class LTaggedToI: public LTemplateInstruction<1, 1, 3> {
|
|
|
1659
1499
|
}
|
|
1660
1500
|
|
|
1661
1501
|
DECLARE_CONCRETE_INSTRUCTION(TaggedToI, "tagged-to-i")
|
|
1662
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
1502
|
+
DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
|
|
1663
1503
|
|
|
1664
1504
|
bool truncating() { return hydrogen()->CanTruncateToInt32(); }
|
|
1665
1505
|
};
|
|
@@ -1682,6 +1522,7 @@ class LNumberUntagD: public LTemplateInstruction<1, 1, 0> {
|
|
|
1682
1522
|
}
|
|
1683
1523
|
|
|
1684
1524
|
DECLARE_CONCRETE_INSTRUCTION(NumberUntagD, "double-untag")
|
|
1525
|
+
DECLARE_HYDROGEN_ACCESSOR(Change)
|
|
1685
1526
|
};
|
|
1686
1527
|
|
|
1687
1528
|
|
|
@@ -1763,6 +1604,28 @@ class LStoreKeyedFastElement: public LTemplateInstruction<0, 3, 0> {
|
|
|
1763
1604
|
};
|
|
1764
1605
|
|
|
1765
1606
|
|
|
1607
|
+
class LStoreKeyedFastDoubleElement: public LTemplateInstruction<0, 3, 0> {
|
|
1608
|
+
public:
|
|
1609
|
+
LStoreKeyedFastDoubleElement(LOperand* elements,
|
|
1610
|
+
LOperand* key,
|
|
1611
|
+
LOperand* val) {
|
|
1612
|
+
inputs_[0] = elements;
|
|
1613
|
+
inputs_[1] = key;
|
|
1614
|
+
inputs_[2] = val;
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
DECLARE_CONCRETE_INSTRUCTION(StoreKeyedFastDoubleElement,
|
|
1618
|
+
"store-keyed-fast-double-element")
|
|
1619
|
+
DECLARE_HYDROGEN_ACCESSOR(StoreKeyedFastDoubleElement)
|
|
1620
|
+
|
|
1621
|
+
virtual void PrintDataTo(StringStream* stream);
|
|
1622
|
+
|
|
1623
|
+
LOperand* elements() { return inputs_[0]; }
|
|
1624
|
+
LOperand* key() { return inputs_[1]; }
|
|
1625
|
+
LOperand* value() { return inputs_[2]; }
|
|
1626
|
+
};
|
|
1627
|
+
|
|
1628
|
+
|
|
1766
1629
|
class LStoreKeyedGeneric: public LTemplateInstruction<0, 3, 0> {
|
|
1767
1630
|
public:
|
|
1768
1631
|
LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* val) {
|
|
@@ -1799,8 +1662,8 @@ class LStoreKeyedSpecializedArrayElement: public LTemplateInstruction<0, 3, 0> {
|
|
|
1799
1662
|
LOperand* external_pointer() { return inputs_[0]; }
|
|
1800
1663
|
LOperand* key() { return inputs_[1]; }
|
|
1801
1664
|
LOperand* value() { return inputs_[2]; }
|
|
1802
|
-
|
|
1803
|
-
return hydrogen()->
|
|
1665
|
+
JSObject::ElementsKind elements_kind() const {
|
|
1666
|
+
return hydrogen()->elements_kind();
|
|
1804
1667
|
}
|
|
1805
1668
|
};
|
|
1806
1669
|
|
|
@@ -2019,21 +1882,6 @@ class LTypeof: public LTemplateInstruction<1, 1, 0> {
|
|
|
2019
1882
|
};
|
|
2020
1883
|
|
|
2021
1884
|
|
|
2022
|
-
class LTypeofIs: public LTemplateInstruction<1, 1, 0> {
|
|
2023
|
-
public:
|
|
2024
|
-
explicit LTypeofIs(LOperand* value) {
|
|
2025
|
-
inputs_[0] = value;
|
|
2026
|
-
}
|
|
2027
|
-
|
|
2028
|
-
DECLARE_CONCRETE_INSTRUCTION(TypeofIs, "typeof-is")
|
|
2029
|
-
DECLARE_HYDROGEN_ACCESSOR(TypeofIs)
|
|
2030
|
-
|
|
2031
|
-
Handle<String> type_literal() { return hydrogen()->type_literal(); }
|
|
2032
|
-
|
|
2033
|
-
virtual void PrintDataTo(StringStream* stream);
|
|
2034
|
-
};
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
1885
|
class LTypeofIsAndBranch: public LControlInstruction<1, 0> {
|
|
2038
1886
|
public:
|
|
2039
1887
|
explicit LTypeofIsAndBranch(LOperand* value) {
|
|
@@ -2041,7 +1889,7 @@ class LTypeofIsAndBranch: public LControlInstruction<1, 0> {
|
|
|
2041
1889
|
}
|
|
2042
1890
|
|
|
2043
1891
|
DECLARE_CONCRETE_INSTRUCTION(TypeofIsAndBranch, "typeof-is-and-branch")
|
|
2044
|
-
DECLARE_HYDROGEN_ACCESSOR(
|
|
1892
|
+
DECLARE_HYDROGEN_ACCESSOR(TypeofIsAndBranch)
|
|
2045
1893
|
|
|
2046
1894
|
Handle<String> type_literal() { return hydrogen()->type_literal(); }
|
|
2047
1895
|
|
|
@@ -2049,13 +1897,6 @@ class LTypeofIsAndBranch: public LControlInstruction<1, 0> {
|
|
|
2049
1897
|
};
|
|
2050
1898
|
|
|
2051
1899
|
|
|
2052
|
-
class LIsConstructCall: public LTemplateInstruction<1, 0, 0> {
|
|
2053
|
-
public:
|
|
2054
|
-
DECLARE_CONCRETE_INSTRUCTION(IsConstructCall, "is-construct-call")
|
|
2055
|
-
DECLARE_HYDROGEN_ACCESSOR(IsConstructCall)
|
|
2056
|
-
};
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
1900
|
class LIsConstructCallAndBranch: public LControlInstruction<0, 1> {
|
|
2060
1901
|
public:
|
|
2061
1902
|
explicit LIsConstructCallAndBranch(LOperand* temp) {
|
|
@@ -2107,6 +1948,12 @@ class LOsrEntry: public LTemplateInstruction<0, 0, 0> {
|
|
|
2107
1948
|
class LStackCheck: public LTemplateInstruction<0, 0, 0> {
|
|
2108
1949
|
public:
|
|
2109
1950
|
DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check")
|
|
1951
|
+
DECLARE_HYDROGEN_ACCESSOR(StackCheck)
|
|
1952
|
+
|
|
1953
|
+
Label* done_label() { return &done_label_; }
|
|
1954
|
+
|
|
1955
|
+
private:
|
|
1956
|
+
Label done_label_;
|
|
2110
1957
|
};
|
|
2111
1958
|
|
|
2112
1959
|
|