libv8 3.3.10.4 → 3.5.10.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/libv8/scons/CHANGES.txt +24 -231
- data/lib/libv8/scons/LICENSE.txt +1 -1
- data/lib/libv8/scons/MANIFEST +0 -1
- data/lib/libv8/scons/PKG-INFO +1 -1
- data/lib/libv8/scons/README.txt +9 -9
- data/lib/libv8/scons/RELEASE.txt +75 -77
- data/lib/libv8/scons/engine/SCons/Action.py +6 -22
- data/lib/libv8/scons/engine/SCons/Builder.py +2 -2
- data/lib/libv8/scons/engine/SCons/CacheDir.py +2 -2
- data/lib/libv8/scons/engine/SCons/Debug.py +2 -2
- data/lib/libv8/scons/engine/SCons/Defaults.py +10 -24
- data/lib/libv8/scons/engine/SCons/Environment.py +19 -118
- data/lib/libv8/scons/engine/SCons/Errors.py +2 -2
- data/lib/libv8/scons/engine/SCons/Executor.py +2 -2
- data/lib/libv8/scons/engine/SCons/Job.py +2 -2
- data/lib/libv8/scons/engine/SCons/Memoize.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/Alias.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/FS.py +121 -281
- data/lib/libv8/scons/engine/SCons/Node/Python.py +2 -2
- data/lib/libv8/scons/engine/SCons/Node/__init__.py +5 -6
- data/lib/libv8/scons/engine/SCons/Options/BoolOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/EnumOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/ListOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/PackageOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/PathOption.py +2 -2
- data/lib/libv8/scons/engine/SCons/Options/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/PathList.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/aix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/cygwin.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/darwin.py +3 -27
- data/lib/libv8/scons/engine/SCons/Platform/hpux.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/irix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/os2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/posix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/sunos.py +2 -2
- data/lib/libv8/scons/engine/SCons/Platform/win32.py +2 -2
- data/lib/libv8/scons/engine/SCons/SConf.py +2 -2
- data/lib/libv8/scons/engine/SCons/SConsign.py +3 -9
- data/lib/libv8/scons/engine/SCons/Scanner/C.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/D.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/Dir.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/Fortran.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/IDL.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/LaTeX.py +2 -5
- data/lib/libv8/scons/engine/SCons/Scanner/Prog.py +2 -2
- data/lib/libv8/scons/engine/SCons/Scanner/RC.py +3 -3
- data/lib/libv8/scons/engine/SCons/Scanner/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/Interactive.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/Main.py +11 -82
- data/lib/libv8/scons/engine/SCons/Script/SConsOptions.py +5 -5
- data/lib/libv8/scons/engine/SCons/Script/SConscript.py +2 -2
- data/lib/libv8/scons/engine/SCons/Script/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Sig.py +2 -2
- data/lib/libv8/scons/engine/SCons/Subst.py +2 -2
- data/lib/libv8/scons/engine/SCons/Taskmaster.py +2 -10
- data/lib/libv8/scons/engine/SCons/Tool/386asm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/BitKeeper.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/CVS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/FortranCommon.py +2 -19
- data/lib/libv8/scons/engine/SCons/Tool/JavaCommon.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/arch.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/common.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/netframework.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/sdk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vc.py +6 -9
- data/lib/libv8/scons/engine/SCons/Tool/MSCommon/vs.py +2 -29
- data/lib/libv8/scons/engine/SCons/Tool/Perforce.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/PharLapCommon.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/RCS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/SCCS.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/Subversion.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/__init__.py +3 -3
- data/lib/libv8/scons/engine/SCons/Tool/aixc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixf77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/aixlink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/applelink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/as.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/bcc32.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/c++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/cc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/cvf.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/default.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/dmd.py +7 -24
- data/lib/libv8/scons/engine/SCons/Tool/dvi.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/dvipdf.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/dvips.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/f77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/f90.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/f95.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/filesystem.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/fortran.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/g++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/g77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gas.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/gfortran.py +3 -3
- data/lib/libv8/scons/engine/SCons/Tool/gnulink.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/gs.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hpc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hpcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/hplink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/icc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/icl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ifl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ifort.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ilink.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/ilink32.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/install.py +3 -57
- data/lib/libv8/scons/engine/SCons/Tool/intelc.py +25 -65
- data/lib/libv8/scons/engine/SCons/Tool/ipkg.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/jar.py +3 -9
- data/lib/libv8/scons/engine/SCons/Tool/javac.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/javah.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/latex.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/lex.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/link.py +5 -6
- data/lib/libv8/scons/engine/SCons/Tool/linkloc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/m4.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/masm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/midl.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mingw.py +10 -31
- data/lib/libv8/scons/engine/SCons/Tool/mslib.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mslink.py +9 -61
- data/lib/libv8/scons/engine/SCons/Tool/mssdk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/msvc.py +11 -21
- data/lib/libv8/scons/engine/SCons/Tool/msvs.py +59 -477
- data/lib/libv8/scons/engine/SCons/Tool/mwcc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/mwld.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/nasm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/ipk.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/msi.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/rpm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_tarbz2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_targz.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/src_zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/tarbz2.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/targz.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/packaging/zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/pdf.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/pdflatex.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/pdftex.py +2 -3
- data/lib/libv8/scons/engine/SCons/Tool/qt.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/rmic.py +3 -9
- data/lib/libv8/scons/engine/SCons/Tool/rpcgen.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/rpm.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgiar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgic++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgicc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sgilink.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunc++.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/suncc.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf77.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf90.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunf95.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/sunlink.py +3 -2
- data/lib/libv8/scons/engine/SCons/Tool/swig.py +5 -6
- data/lib/libv8/scons/engine/SCons/Tool/tar.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/tex.py +43 -96
- data/lib/libv8/scons/engine/SCons/Tool/textfile.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/tlib.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/wix.py +2 -2
- data/lib/libv8/scons/engine/SCons/Tool/yacc.py +2 -12
- data/lib/libv8/scons/engine/SCons/Tool/zip.py +2 -2
- data/lib/libv8/scons/engine/SCons/Util.py +3 -3
- data/lib/libv8/scons/engine/SCons/Variables/BoolVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/EnumVariable.py +3 -3
- data/lib/libv8/scons/engine/SCons/Variables/ListVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/PackageVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/PathVariable.py +2 -2
- data/lib/libv8/scons/engine/SCons/Variables/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/Warnings.py +2 -2
- data/lib/libv8/scons/engine/SCons/__init__.py +6 -6
- data/lib/libv8/scons/engine/SCons/compat/__init__.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_builtins.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_collections.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_dbm.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_hashlib.py +2 -2
- data/lib/libv8/scons/engine/SCons/compat/_scons_io.py +2 -2
- data/lib/libv8/scons/engine/SCons/cpp.py +2 -2
- data/lib/libv8/scons/engine/SCons/dblite.py +1 -4
- data/lib/libv8/scons/engine/SCons/exitfuncs.py +2 -2
- data/lib/libv8/scons/scons-time.1 +3 -3
- data/lib/libv8/scons/scons.1 +1164 -1170
- data/lib/libv8/scons/sconsign.1 +3 -3
- data/lib/libv8/scons/script/scons +22 -22
- data/lib/libv8/scons/script/scons-time +2 -2
- data/lib/libv8/scons/script/scons.bat +4 -7
- data/lib/libv8/scons/script/sconsign +20 -21
- data/lib/libv8/scons/setup.cfg +1 -0
- data/lib/libv8/scons/setup.py +40 -38
- data/lib/libv8/v8/.gitignore +1 -1
- data/lib/libv8/v8/AUTHORS +2 -0
- data/lib/libv8/v8/ChangeLog +387 -0
- data/lib/libv8/v8/Makefile +171 -0
- data/lib/libv8/v8/SConstruct +124 -51
- data/lib/libv8/v8/build/README.txt +31 -14
- data/lib/libv8/v8/build/all.gyp +11 -4
- data/lib/libv8/v8/build/armu.gypi +6 -2
- data/lib/libv8/v8/build/common.gypi +240 -94
- data/lib/libv8/v8/build/gyp_v8 +32 -4
- data/lib/libv8/v8/build/standalone.gypi +200 -0
- data/lib/libv8/v8/include/v8-debug.h +0 -0
- data/lib/libv8/v8/include/v8-profiler.h +8 -11
- data/lib/libv8/v8/include/v8.h +191 -108
- data/lib/libv8/v8/preparser/SConscript +2 -2
- data/lib/libv8/v8/preparser/preparser-process.cc +3 -3
- data/lib/libv8/v8/preparser/preparser.gyp +42 -0
- data/lib/libv8/v8/src/SConscript +33 -8
- data/lib/libv8/v8/src/accessors.cc +77 -43
- data/lib/libv8/v8/src/api.cc +393 -191
- data/lib/libv8/v8/src/api.h +4 -8
- data/lib/libv8/v8/src/apinatives.js +15 -3
- data/lib/libv8/v8/src/arguments.h +8 -0
- data/lib/libv8/v8/src/arm/assembler-arm.cc +120 -120
- data/lib/libv8/v8/src/arm/assembler-arm.h +92 -43
- data/lib/libv8/v8/src/arm/builtins-arm.cc +32 -39
- data/lib/libv8/v8/src/arm/code-stubs-arm.cc +572 -351
- data/lib/libv8/v8/src/arm/code-stubs-arm.h +8 -77
- data/lib/libv8/v8/src/arm/codegen-arm.h +0 -2
- data/lib/libv8/v8/src/arm/deoptimizer-arm.cc +50 -30
- data/lib/libv8/v8/src/arm/disasm-arm.cc +1 -1
- data/lib/libv8/v8/src/arm/frames-arm.h +9 -5
- data/lib/libv8/v8/src/arm/full-codegen-arm.cc +331 -432
- data/lib/libv8/v8/src/arm/ic-arm.cc +192 -124
- data/lib/libv8/v8/src/arm/lithium-arm.cc +216 -232
- data/lib/libv8/v8/src/arm/lithium-arm.h +106 -259
- data/lib/libv8/v8/src/arm/lithium-codegen-arm.cc +633 -642
- data/lib/libv8/v8/src/arm/lithium-codegen-arm.h +4 -4
- data/lib/libv8/v8/src/arm/lithium-gap-resolver-arm.cc +1 -3
- data/lib/libv8/v8/src/arm/macro-assembler-arm.cc +260 -185
- data/lib/libv8/v8/src/arm/macro-assembler-arm.h +45 -25
- data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.cc +25 -13
- data/lib/libv8/v8/src/arm/regexp-macro-assembler-arm.h +3 -0
- data/lib/libv8/v8/src/arm/stub-cache-arm.cc +413 -226
- data/lib/libv8/v8/src/array.js +38 -18
- data/lib/libv8/v8/src/assembler.cc +12 -5
- data/lib/libv8/v8/src/assembler.h +15 -9
- data/lib/libv8/v8/src/ast-inl.h +34 -25
- data/lib/libv8/v8/src/ast.cc +141 -72
- data/lib/libv8/v8/src/ast.h +255 -181
- data/lib/libv8/v8/src/bignum.cc +3 -4
- data/lib/libv8/v8/src/bootstrapper.cc +55 -11
- data/lib/libv8/v8/src/bootstrapper.h +3 -2
- data/lib/libv8/v8/src/builtins.cc +8 -2
- data/lib/libv8/v8/src/builtins.h +4 -0
- data/lib/libv8/v8/src/cached-powers.cc +8 -4
- data/lib/libv8/v8/src/checks.h +3 -3
- data/lib/libv8/v8/src/code-stubs.cc +173 -28
- data/lib/libv8/v8/src/code-stubs.h +104 -148
- data/lib/libv8/v8/src/codegen.cc +8 -8
- data/lib/libv8/v8/src/compilation-cache.cc +2 -47
- data/lib/libv8/v8/src/compilation-cache.h +0 -10
- data/lib/libv8/v8/src/compiler.cc +27 -16
- data/lib/libv8/v8/src/compiler.h +13 -18
- data/lib/libv8/v8/src/contexts.cc +107 -72
- data/lib/libv8/v8/src/contexts.h +70 -34
- data/lib/libv8/v8/src/conversions-inl.h +572 -14
- data/lib/libv8/v8/src/conversions.cc +9 -707
- data/lib/libv8/v8/src/conversions.h +23 -12
- data/lib/libv8/v8/src/cpu-profiler-inl.h +2 -19
- data/lib/libv8/v8/src/cpu-profiler.cc +4 -21
- data/lib/libv8/v8/src/cpu-profiler.h +8 -17
- data/lib/libv8/v8/src/d8-debug.cc +5 -3
- data/lib/libv8/v8/src/d8-debug.h +6 -7
- data/lib/libv8/v8/src/d8-posix.cc +1 -10
- data/lib/libv8/v8/src/d8.cc +721 -219
- data/lib/libv8/v8/src/d8.gyp +37 -12
- data/lib/libv8/v8/src/d8.h +141 -19
- data/lib/libv8/v8/src/d8.js +17 -8
- data/lib/libv8/v8/src/date.js +16 -5
- data/lib/libv8/v8/src/dateparser-inl.h +242 -39
- data/lib/libv8/v8/src/dateparser.cc +38 -4
- data/lib/libv8/v8/src/dateparser.h +170 -28
- data/lib/libv8/v8/src/debug-agent.cc +5 -3
- data/lib/libv8/v8/src/debug-agent.h +11 -7
- data/lib/libv8/v8/src/debug-debugger.js +65 -34
- data/lib/libv8/v8/src/debug.cc +30 -60
- data/lib/libv8/v8/src/debug.h +5 -3
- data/lib/libv8/v8/src/deoptimizer.cc +227 -10
- data/lib/libv8/v8/src/deoptimizer.h +133 -9
- data/lib/libv8/v8/src/disassembler.cc +22 -14
- data/lib/libv8/v8/src/diy-fp.cc +4 -3
- data/lib/libv8/v8/src/diy-fp.h +3 -3
- data/lib/libv8/v8/src/elements.cc +634 -0
- data/lib/libv8/v8/src/elements.h +95 -0
- data/lib/libv8/v8/src/execution.cc +5 -21
- data/lib/libv8/v8/src/extensions/experimental/break-iterator.cc +3 -1
- data/lib/libv8/v8/src/extensions/experimental/break-iterator.h +1 -1
- data/lib/libv8/v8/src/extensions/experimental/collator.cc +6 -2
- data/lib/libv8/v8/src/extensions/experimental/collator.h +1 -2
- data/lib/libv8/v8/src/extensions/experimental/datetime-format.cc +384 -0
- data/lib/libv8/v8/src/extensions/experimental/datetime-format.h +83 -0
- data/lib/libv8/v8/src/extensions/experimental/experimental.gyp +18 -7
- data/lib/libv8/v8/src/extensions/experimental/i18n-extension.cc +12 -16
- data/lib/libv8/v8/src/extensions/experimental/i18n-extension.h +1 -1
- data/lib/libv8/v8/src/extensions/experimental/i18n-js2c.py +126 -0
- data/lib/libv8/v8/src/extensions/experimental/i18n-locale.cc +3 -4
- data/lib/libv8/v8/src/extensions/experimental/i18n-locale.h +1 -1
- data/lib/libv8/v8/src/{shell.h → extensions/experimental/i18n-natives.h} +8 -20
- data/lib/libv8/v8/src/extensions/experimental/i18n-utils.cc +45 -1
- data/lib/libv8/v8/src/extensions/experimental/i18n-utils.h +21 -1
- data/lib/libv8/v8/src/extensions/experimental/i18n.js +211 -11
- data/lib/libv8/v8/src/extensions/experimental/language-matcher.cc +4 -3
- data/lib/libv8/v8/src/extensions/experimental/language-matcher.h +1 -1
- data/lib/libv8/v8/src/extensions/experimental/number-format.cc +374 -0
- data/lib/libv8/v8/src/extensions/experimental/number-format.h +71 -0
- data/lib/libv8/v8/src/factory.cc +89 -18
- data/lib/libv8/v8/src/factory.h +36 -8
- data/lib/libv8/v8/src/flag-definitions.h +11 -44
- data/lib/libv8/v8/src/frames-inl.h +8 -1
- data/lib/libv8/v8/src/frames.cc +39 -3
- data/lib/libv8/v8/src/frames.h +10 -3
- data/lib/libv8/v8/src/full-codegen.cc +311 -293
- data/lib/libv8/v8/src/full-codegen.h +183 -143
- data/lib/libv8/v8/src/func-name-inferrer.cc +29 -15
- data/lib/libv8/v8/src/func-name-inferrer.h +19 -9
- data/lib/libv8/v8/src/gdb-jit.cc +658 -55
- data/lib/libv8/v8/src/gdb-jit.h +6 -2
- data/lib/libv8/v8/src/global-handles.cc +368 -312
- data/lib/libv8/v8/src/global-handles.h +29 -36
- data/lib/libv8/v8/src/globals.h +3 -1
- data/lib/libv8/v8/src/handles.cc +43 -69
- data/lib/libv8/v8/src/handles.h +21 -16
- data/lib/libv8/v8/src/heap-inl.h +11 -13
- data/lib/libv8/v8/src/heap-profiler.cc +0 -999
- data/lib/libv8/v8/src/heap-profiler.h +0 -303
- data/lib/libv8/v8/src/heap.cc +366 -141
- data/lib/libv8/v8/src/heap.h +87 -26
- data/lib/libv8/v8/src/hydrogen-instructions.cc +192 -81
- data/lib/libv8/v8/src/hydrogen-instructions.h +711 -482
- data/lib/libv8/v8/src/hydrogen.cc +1146 -629
- data/lib/libv8/v8/src/hydrogen.h +100 -64
- data/lib/libv8/v8/src/ia32/assembler-ia32.cc +19 -0
- data/lib/libv8/v8/src/ia32/assembler-ia32.h +15 -2
- data/lib/libv8/v8/src/ia32/builtins-ia32.cc +34 -39
- data/lib/libv8/v8/src/ia32/code-stubs-ia32.cc +675 -377
- data/lib/libv8/v8/src/ia32/code-stubs-ia32.h +8 -69
- data/lib/libv8/v8/src/ia32/codegen-ia32.cc +1 -0
- data/lib/libv8/v8/src/ia32/codegen-ia32.h +0 -2
- data/lib/libv8/v8/src/ia32/cpu-ia32.cc +3 -2
- data/lib/libv8/v8/src/ia32/deoptimizer-ia32.cc +28 -3
- data/lib/libv8/v8/src/ia32/disasm-ia32.cc +21 -10
- data/lib/libv8/v8/src/ia32/frames-ia32.h +6 -5
- data/lib/libv8/v8/src/ia32/full-codegen-ia32.cc +459 -465
- data/lib/libv8/v8/src/ia32/ic-ia32.cc +196 -147
- data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.cc +575 -650
- data/lib/libv8/v8/src/ia32/lithium-codegen-ia32.h +19 -21
- data/lib/libv8/v8/src/ia32/lithium-gap-resolver-ia32.cc +7 -2
- data/lib/libv8/v8/src/ia32/lithium-ia32.cc +261 -256
- data/lib/libv8/v8/src/ia32/lithium-ia32.h +234 -335
- data/lib/libv8/v8/src/ia32/macro-assembler-ia32.cc +224 -67
- data/lib/libv8/v8/src/ia32/macro-assembler-ia32.h +63 -19
- data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.cc +22 -8
- data/lib/libv8/v8/src/ia32/regexp-macro-assembler-ia32.h +3 -0
- data/lib/libv8/v8/src/ia32/stub-cache-ia32.cc +380 -239
- data/lib/libv8/v8/src/ic.cc +198 -234
- data/lib/libv8/v8/src/ic.h +32 -30
- data/lib/libv8/v8/src/interpreter-irregexp.cc +6 -4
- data/lib/libv8/v8/src/isolate.cc +112 -95
- data/lib/libv8/v8/src/isolate.h +55 -71
- data/lib/libv8/v8/src/json-parser.h +486 -48
- data/lib/libv8/v8/src/json.js +28 -23
- data/lib/libv8/v8/src/jsregexp.cc +163 -208
- data/lib/libv8/v8/src/jsregexp.h +0 -1
- data/lib/libv8/v8/src/lithium-allocator-inl.h +29 -27
- data/lib/libv8/v8/src/lithium-allocator.cc +22 -17
- data/lib/libv8/v8/src/lithium-allocator.h +8 -8
- data/lib/libv8/v8/src/lithium.cc +16 -11
- data/lib/libv8/v8/src/lithium.h +31 -34
- data/lib/libv8/v8/src/liveedit.cc +111 -15
- data/lib/libv8/v8/src/liveedit.h +3 -4
- data/lib/libv8/v8/src/liveobjectlist.cc +116 -80
- data/lib/libv8/v8/src/liveobjectlist.h +2 -2
- data/lib/libv8/v8/src/log-inl.h +0 -4
- data/lib/libv8/v8/src/log-utils.cc +25 -143
- data/lib/libv8/v8/src/log-utils.h +13 -92
- data/lib/libv8/v8/src/log.cc +26 -249
- data/lib/libv8/v8/src/log.h +6 -17
- data/lib/libv8/v8/src/macros.py +9 -6
- data/lib/libv8/v8/src/mark-compact.cc +276 -56
- data/lib/libv8/v8/src/mark-compact.h +20 -0
- data/lib/libv8/v8/src/messages.js +93 -39
- data/lib/libv8/v8/src/mips/assembler-mips-inl.h +9 -3
- data/lib/libv8/v8/src/mips/assembler-mips.cc +297 -189
- data/lib/libv8/v8/src/mips/assembler-mips.h +121 -54
- data/lib/libv8/v8/src/mips/builtins-mips.cc +23 -24
- data/lib/libv8/v8/src/mips/code-stubs-mips.cc +484 -263
- data/lib/libv8/v8/src/mips/code-stubs-mips.h +8 -83
- data/lib/libv8/v8/src/mips/codegen-mips.h +0 -2
- data/lib/libv8/v8/src/mips/constants-mips.h +37 -11
- data/lib/libv8/v8/src/mips/deoptimizer-mips.cc +6 -1
- data/lib/libv8/v8/src/mips/frames-mips.h +8 -7
- data/lib/libv8/v8/src/mips/full-codegen-mips.cc +258 -419
- data/lib/libv8/v8/src/mips/ic-mips.cc +181 -121
- data/lib/libv8/v8/src/mips/macro-assembler-mips.cc +640 -382
- data/lib/libv8/v8/src/mips/macro-assembler-mips.h +94 -89
- data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.cc +23 -10
- data/lib/libv8/v8/src/mips/regexp-macro-assembler-mips.h +6 -1
- data/lib/libv8/v8/src/mips/simulator-mips.cc +249 -49
- data/lib/libv8/v8/src/mips/simulator-mips.h +25 -1
- data/lib/libv8/v8/src/mips/stub-cache-mips.cc +373 -161
- data/lib/libv8/v8/src/mirror-debugger.js +55 -8
- data/lib/libv8/v8/src/misc-intrinsics.h +89 -0
- data/lib/libv8/v8/src/mksnapshot.cc +36 -4
- data/lib/libv8/v8/src/natives.h +5 -2
- data/lib/libv8/v8/src/objects-debug.cc +73 -6
- data/lib/libv8/v8/src/objects-inl.h +529 -164
- data/lib/libv8/v8/src/objects-printer.cc +67 -12
- data/lib/libv8/v8/src/objects-visiting.cc +13 -2
- data/lib/libv8/v8/src/objects-visiting.h +41 -1
- data/lib/libv8/v8/src/objects.cc +2200 -1177
- data/lib/libv8/v8/src/objects.h +912 -283
- data/lib/libv8/v8/src/parser.cc +566 -371
- data/lib/libv8/v8/src/parser.h +35 -33
- data/lib/libv8/v8/src/platform-cygwin.cc +10 -25
- data/lib/libv8/v8/src/platform-freebsd.cc +4 -29
- data/lib/libv8/v8/src/platform-linux.cc +60 -57
- data/lib/libv8/v8/src/platform-macos.cc +4 -27
- data/lib/libv8/v8/src/platform-nullos.cc +3 -16
- data/lib/libv8/v8/src/platform-openbsd.cc +247 -85
- data/lib/libv8/v8/src/platform-posix.cc +43 -1
- data/lib/libv8/v8/src/platform-solaris.cc +151 -112
- data/lib/libv8/v8/src/platform-tls.h +1 -1
- data/lib/libv8/v8/src/platform-win32.cc +65 -39
- data/lib/libv8/v8/src/platform.h +17 -14
- data/lib/libv8/v8/src/preparse-data-format.h +2 -2
- data/lib/libv8/v8/src/preparse-data.h +8 -2
- data/lib/libv8/v8/src/preparser-api.cc +2 -18
- data/lib/libv8/v8/src/preparser.cc +106 -65
- data/lib/libv8/v8/src/preparser.h +26 -5
- data/lib/libv8/v8/src/prettyprinter.cc +25 -43
- data/lib/libv8/v8/src/profile-generator-inl.h +0 -4
- data/lib/libv8/v8/src/profile-generator.cc +213 -34
- data/lib/libv8/v8/src/profile-generator.h +9 -9
- data/lib/libv8/v8/src/property.h +1 -0
- data/lib/libv8/v8/src/proxy.js +74 -4
- data/lib/libv8/v8/src/regexp-macro-assembler.cc +10 -6
- data/lib/libv8/v8/src/regexp.js +16 -11
- data/lib/libv8/v8/src/rewriter.cc +24 -133
- data/lib/libv8/v8/src/runtime-profiler.cc +27 -151
- data/lib/libv8/v8/src/runtime-profiler.h +5 -31
- data/lib/libv8/v8/src/runtime.cc +1450 -681
- data/lib/libv8/v8/src/runtime.h +47 -31
- data/lib/libv8/v8/src/runtime.js +2 -1
- data/lib/libv8/v8/src/scanner-base.cc +358 -220
- data/lib/libv8/v8/src/scanner-base.h +30 -138
- data/lib/libv8/v8/src/scanner.cc +0 -18
- data/lib/libv8/v8/src/scanner.h +0 -15
- data/lib/libv8/v8/src/scopeinfo.cc +3 -1
- data/lib/libv8/v8/src/scopeinfo.h +1 -6
- data/lib/libv8/v8/src/scopes.cc +243 -253
- data/lib/libv8/v8/src/scopes.h +58 -109
- data/lib/libv8/v8/src/serialize.cc +12 -54
- data/lib/libv8/v8/src/serialize.h +47 -0
- data/lib/libv8/v8/src/small-pointer-list.h +25 -0
- data/lib/libv8/v8/src/spaces-inl.h +4 -50
- data/lib/libv8/v8/src/spaces.cc +64 -131
- data/lib/libv8/v8/src/spaces.h +19 -70
- data/lib/libv8/v8/src/string-stream.cc +3 -1
- data/lib/libv8/v8/src/string.js +10 -6
- data/lib/libv8/v8/src/strtod.cc +7 -3
- data/lib/libv8/v8/src/stub-cache.cc +59 -129
- data/lib/libv8/v8/src/stub-cache.h +42 -54
- data/lib/libv8/v8/src/third_party/valgrind/valgrind.h +1447 -1339
- data/lib/libv8/v8/src/token.cc +4 -4
- data/lib/libv8/v8/src/token.h +6 -5
- data/lib/libv8/v8/src/type-info.cc +173 -129
- data/lib/libv8/v8/src/type-info.h +40 -22
- data/lib/libv8/v8/src/utils.cc +25 -304
- data/lib/libv8/v8/src/utils.h +118 -3
- data/lib/libv8/v8/src/v8-counters.h +3 -6
- data/lib/libv8/v8/src/v8.cc +34 -27
- data/lib/libv8/v8/src/v8.h +7 -7
- data/lib/libv8/v8/src/v8conversions.cc +129 -0
- data/lib/libv8/v8/src/v8conversions.h +60 -0
- data/lib/libv8/v8/src/v8globals.h +15 -6
- data/lib/libv8/v8/src/v8natives.js +300 -78
- data/lib/libv8/v8/src/v8threads.cc +14 -6
- data/lib/libv8/v8/src/v8threads.h +4 -1
- data/lib/libv8/v8/src/v8utils.cc +360 -0
- data/lib/libv8/v8/src/v8utils.h +17 -66
- data/lib/libv8/v8/src/variables.cc +7 -12
- data/lib/libv8/v8/src/variables.h +12 -10
- data/lib/libv8/v8/src/version.cc +2 -2
- data/lib/libv8/v8/src/vm-state-inl.h +0 -41
- data/lib/libv8/v8/src/vm-state.h +0 -11
- data/lib/libv8/v8/src/weakmap.js +103 -0
- data/lib/libv8/v8/src/x64/assembler-x64.h +6 -3
- data/lib/libv8/v8/src/x64/builtins-x64.cc +25 -22
- data/lib/libv8/v8/src/x64/code-stubs-x64.cc +523 -250
- data/lib/libv8/v8/src/x64/code-stubs-x64.h +8 -71
- data/lib/libv8/v8/src/x64/codegen-x64.cc +1 -0
- data/lib/libv8/v8/src/x64/codegen-x64.h +0 -2
- data/lib/libv8/v8/src/x64/cpu-x64.cc +2 -1
- data/lib/libv8/v8/src/x64/deoptimizer-x64.cc +40 -8
- data/lib/libv8/v8/src/x64/disasm-x64.cc +12 -10
- data/lib/libv8/v8/src/x64/frames-x64.h +7 -6
- data/lib/libv8/v8/src/x64/full-codegen-x64.cc +310 -415
- data/lib/libv8/v8/src/x64/ic-x64.cc +180 -117
- data/lib/libv8/v8/src/x64/lithium-codegen-x64.cc +411 -523
- data/lib/libv8/v8/src/x64/lithium-codegen-x64.h +11 -6
- data/lib/libv8/v8/src/x64/lithium-x64.cc +191 -216
- data/lib/libv8/v8/src/x64/lithium-x64.h +112 -263
- data/lib/libv8/v8/src/x64/macro-assembler-x64.cc +177 -61
- data/lib/libv8/v8/src/x64/macro-assembler-x64.h +23 -7
- data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.cc +21 -9
- data/lib/libv8/v8/src/x64/regexp-macro-assembler-x64.h +6 -0
- data/lib/libv8/v8/src/x64/stub-cache-x64.cc +273 -107
- data/lib/libv8/v8/src/zone.cc +31 -22
- data/lib/libv8/v8/src/zone.h +12 -6
- data/lib/libv8/v8/tools/codemap.js +8 -0
- data/lib/libv8/v8/tools/gcmole/Makefile +43 -0
- data/lib/libv8/v8/tools/gcmole/gcmole.lua +0 -2
- data/lib/libv8/v8/tools/gdb-v8-support.py +154 -0
- data/lib/libv8/v8/tools/grokdump.py +44 -35
- data/lib/libv8/v8/tools/gyp/v8.gyp +94 -248
- data/lib/libv8/v8/tools/js2c.py +83 -52
- data/lib/libv8/v8/tools/linux-tick-processor +4 -6
- data/lib/libv8/v8/tools/ll_prof.py +3 -3
- data/lib/libv8/v8/tools/oom_dump/README +3 -1
- data/lib/libv8/v8/tools/presubmit.py +11 -4
- data/lib/libv8/v8/tools/profile.js +46 -2
- data/lib/libv8/v8/tools/splaytree.js +11 -0
- data/lib/libv8/v8/tools/stats-viewer.py +15 -11
- data/lib/libv8/v8/tools/test-wrapper-gypbuild.py +227 -0
- data/lib/libv8/v8/tools/test.py +28 -8
- data/lib/libv8/v8/tools/tickprocessor.js +0 -16
- data/lib/libv8/version.rb +1 -1
- data/libv8.gemspec +2 -2
- metadata +31 -19
- data/lib/libv8/scons/engine/SCons/Tool/f03.py +0 -63
- data/lib/libv8/v8/src/json-parser.cc +0 -504
data/lib/libv8/v8/src/heap.h
CHANGED
|
@@ -65,7 +65,9 @@ inline Heap* _inline_get_heap_();
|
|
|
65
65
|
V(Map, heap_number_map, HeapNumberMap) \
|
|
66
66
|
V(Map, global_context_map, GlobalContextMap) \
|
|
67
67
|
V(Map, fixed_array_map, FixedArrayMap) \
|
|
68
|
+
V(Map, serialized_scope_info_map, SerializedScopeInfoMap) \
|
|
68
69
|
V(Map, fixed_cow_array_map, FixedCOWArrayMap) \
|
|
70
|
+
V(Map, fixed_double_array_map, FixedDoubleArrayMap) \
|
|
69
71
|
V(Object, no_interceptor_result_sentinel, NoInterceptorResultSentinel) \
|
|
70
72
|
V(Map, meta_map, MetaMap) \
|
|
71
73
|
V(Map, hash_table_map, HashTableMap) \
|
|
@@ -78,6 +80,7 @@ inline Heap* _inline_get_heap_();
|
|
|
78
80
|
V(Object, termination_exception, TerminationException) \
|
|
79
81
|
V(FixedArray, empty_fixed_array, EmptyFixedArray) \
|
|
80
82
|
V(ByteArray, empty_byte_array, EmptyByteArray) \
|
|
83
|
+
V(FixedDoubleArray, empty_fixed_double_array, EmptyFixedDoubleArray) \
|
|
81
84
|
V(String, empty_string, EmptyString) \
|
|
82
85
|
V(DescriptorArray, empty_descriptor_array, EmptyDescriptorArray) \
|
|
83
86
|
V(Map, string_map, StringMap) \
|
|
@@ -85,6 +88,8 @@ inline Heap* _inline_get_heap_();
|
|
|
85
88
|
V(Map, symbol_map, SymbolMap) \
|
|
86
89
|
V(Map, cons_string_map, ConsStringMap) \
|
|
87
90
|
V(Map, cons_ascii_string_map, ConsAsciiStringMap) \
|
|
91
|
+
V(Map, sliced_string_map, SlicedStringMap) \
|
|
92
|
+
V(Map, sliced_ascii_string_map, SlicedAsciiStringMap) \
|
|
88
93
|
V(Map, ascii_symbol_map, AsciiSymbolMap) \
|
|
89
94
|
V(Map, cons_symbol_map, ConsSymbolMap) \
|
|
90
95
|
V(Map, cons_ascii_symbol_map, ConsAsciiSymbolMap) \
|
|
@@ -105,8 +110,11 @@ inline Heap* _inline_get_heap_();
|
|
|
105
110
|
V(Map, external_unsigned_int_array_map, ExternalUnsignedIntArrayMap) \
|
|
106
111
|
V(Map, external_float_array_map, ExternalFloatArrayMap) \
|
|
107
112
|
V(Map, external_double_array_map, ExternalDoubleArrayMap) \
|
|
108
|
-
V(Map,
|
|
113
|
+
V(Map, non_strict_arguments_elements_map, NonStrictArgumentsElementsMap) \
|
|
114
|
+
V(Map, function_context_map, FunctionContextMap) \
|
|
109
115
|
V(Map, catch_context_map, CatchContextMap) \
|
|
116
|
+
V(Map, with_context_map, WithContextMap) \
|
|
117
|
+
V(Map, block_context_map, BlockContextMap) \
|
|
110
118
|
V(Map, code_map, CodeMap) \
|
|
111
119
|
V(Map, oddball_map, OddballMap) \
|
|
112
120
|
V(Map, global_property_cell_map, GlobalPropertyCellMap) \
|
|
@@ -120,6 +128,7 @@ inline Heap* _inline_get_heap_();
|
|
|
120
128
|
V(Foreign, prototype_accessors, PrototypeAccessors) \
|
|
121
129
|
V(NumberDictionary, code_stubs, CodeStubs) \
|
|
122
130
|
V(NumberDictionary, non_monomorphic_cache, NonMonomorphicCache) \
|
|
131
|
+
V(PolymorphicCodeCache, polymorphic_code_cache, PolymorphicCodeCache) \
|
|
123
132
|
V(Code, js_entry_code, JsEntryCode) \
|
|
124
133
|
V(Code, js_construct_entry_code, JsConstructEntryCode) \
|
|
125
134
|
V(FixedArray, natives_source_cache, NativesSourceCache) \
|
|
@@ -139,7 +148,6 @@ inline Heap* _inline_get_heap_();
|
|
|
139
148
|
V(StringImpl_symbol, "StringImpl") \
|
|
140
149
|
V(arguments_symbol, "arguments") \
|
|
141
150
|
V(Arguments_symbol, "Arguments") \
|
|
142
|
-
V(arguments_shadow_symbol, ".arguments") \
|
|
143
151
|
V(call_symbol, "call") \
|
|
144
152
|
V(apply_symbol, "apply") \
|
|
145
153
|
V(caller_symbol, "caller") \
|
|
@@ -155,6 +163,8 @@ inline Heap* _inline_get_heap_();
|
|
|
155
163
|
V(function_symbol, "function") \
|
|
156
164
|
V(length_symbol, "length") \
|
|
157
165
|
V(name_symbol, "name") \
|
|
166
|
+
V(native_symbol, "native") \
|
|
167
|
+
V(null_symbol, "null") \
|
|
158
168
|
V(number_symbol, "number") \
|
|
159
169
|
V(Number_symbol, "Number") \
|
|
160
170
|
V(nan_symbol, "NaN") \
|
|
@@ -178,14 +188,14 @@ inline Heap* _inline_get_heap_();
|
|
|
178
188
|
V(value_of_symbol, "valueOf") \
|
|
179
189
|
V(InitializeVarGlobal_symbol, "InitializeVarGlobal") \
|
|
180
190
|
V(InitializeConstGlobal_symbol, "InitializeConstGlobal") \
|
|
181
|
-
V(
|
|
182
|
-
"
|
|
183
|
-
V(
|
|
184
|
-
"
|
|
185
|
-
V(
|
|
186
|
-
"
|
|
187
|
-
V(
|
|
188
|
-
"
|
|
191
|
+
V(KeyedLoadElementMonomorphic_symbol, \
|
|
192
|
+
"KeyedLoadElementMonomorphic") \
|
|
193
|
+
V(KeyedLoadElementPolymorphic_symbol, \
|
|
194
|
+
"KeyedLoadElementPolymorphic") \
|
|
195
|
+
V(KeyedStoreElementMonomorphic_symbol, \
|
|
196
|
+
"KeyedStoreElementMonomorphic") \
|
|
197
|
+
V(KeyedStoreElementPolymorphic_symbol, \
|
|
198
|
+
"KeyedStoreElementPolymorphic") \
|
|
189
199
|
V(stack_overflow_symbol, "kStackOverflowBoilerplate") \
|
|
190
200
|
V(illegal_access_symbol, "illegal access") \
|
|
191
201
|
V(out_of_memory_symbol, "out-of-memory") \
|
|
@@ -213,7 +223,10 @@ inline Heap* _inline_get_heap_();
|
|
|
213
223
|
V(global_eval_symbol, "GlobalEval") \
|
|
214
224
|
V(identity_hash_symbol, "v8::IdentityHash") \
|
|
215
225
|
V(closure_symbol, "(closure)") \
|
|
216
|
-
V(use_strict, "use strict")
|
|
226
|
+
V(use_strict, "use strict") \
|
|
227
|
+
V(dot_symbol, ".") \
|
|
228
|
+
V(anonymous_function_symbol, "(anonymous function)") \
|
|
229
|
+
V(block_scope_symbol, ".block")
|
|
217
230
|
|
|
218
231
|
// Forward declarations.
|
|
219
232
|
class GCTracer;
|
|
@@ -402,12 +415,6 @@ class Heap {
|
|
|
402
415
|
// Uncommit unused semi space.
|
|
403
416
|
bool UncommitFromSpace() { return new_space_.UncommitFromSpace(); }
|
|
404
417
|
|
|
405
|
-
#ifdef ENABLE_HEAP_PROTECTION
|
|
406
|
-
// Protect/unprotect the heap by marking all spaces read-only/writable.
|
|
407
|
-
void Protect();
|
|
408
|
-
void Unprotect();
|
|
409
|
-
#endif
|
|
410
|
-
|
|
411
418
|
// Allocates and initializes a new JavaScript object based on a
|
|
412
419
|
// constructor.
|
|
413
420
|
// Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
|
@@ -440,6 +447,11 @@ class Heap {
|
|
|
440
447
|
MUST_USE_RESULT MaybeObject* AllocateJSProxy(Object* handler,
|
|
441
448
|
Object* prototype);
|
|
442
449
|
|
|
450
|
+
// Reinitialize a JSProxy into an (empty) JSObject. The receiver
|
|
451
|
+
// must have the same size as an empty object. The object is reinitialized
|
|
452
|
+
// and behaves as an object that has been freshly allocated.
|
|
453
|
+
MUST_USE_RESULT MaybeObject* ReinitializeJSProxyAsJSObject(JSProxy* object);
|
|
454
|
+
|
|
443
455
|
// Reinitialize an JSGlobalProxy based on a constructor. The object
|
|
444
456
|
// must have the same size as objects allocated using the
|
|
445
457
|
// constructor. The object is reinitialized and behaves as an
|
|
@@ -477,6 +489,12 @@ class Heap {
|
|
|
477
489
|
// Allocates an empty code cache.
|
|
478
490
|
MUST_USE_RESULT MaybeObject* AllocateCodeCache();
|
|
479
491
|
|
|
492
|
+
// Allocates a serialized scope info.
|
|
493
|
+
MUST_USE_RESULT MaybeObject* AllocateSerializedScopeInfo(int length);
|
|
494
|
+
|
|
495
|
+
// Allocates an empty PolymorphicCodeCache.
|
|
496
|
+
MUST_USE_RESULT MaybeObject* AllocatePolymorphicCodeCache();
|
|
497
|
+
|
|
480
498
|
// Clear the Instanceof cache (used when a prototype changes).
|
|
481
499
|
inline void ClearInstanceofCache();
|
|
482
500
|
|
|
@@ -608,6 +626,16 @@ class Heap {
|
|
|
608
626
|
// Failure::RetryAfterGC(requested_bytes, space) if the allocation failed.
|
|
609
627
|
MUST_USE_RESULT MaybeObject* CopyFixedArrayWithMap(FixedArray* src, Map* map);
|
|
610
628
|
|
|
629
|
+
// Make a copy of src and return it. Returns
|
|
630
|
+
// Failure::RetryAfterGC(requested_bytes, space) if the allocation failed.
|
|
631
|
+
MUST_USE_RESULT inline MaybeObject* CopyFixedDoubleArray(
|
|
632
|
+
FixedDoubleArray* src);
|
|
633
|
+
|
|
634
|
+
// Make a copy of src, set the map, and return the copy. Returns
|
|
635
|
+
// Failure::RetryAfterGC(requested_bytes, space) if the allocation failed.
|
|
636
|
+
MUST_USE_RESULT MaybeObject* CopyFixedDoubleArrayWithMap(
|
|
637
|
+
FixedDoubleArray* src, Map* map);
|
|
638
|
+
|
|
611
639
|
// Allocates a fixed array initialized with the hole values.
|
|
612
640
|
// Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
|
613
641
|
// failed.
|
|
@@ -616,6 +644,17 @@ class Heap {
|
|
|
616
644
|
int length,
|
|
617
645
|
PretenureFlag pretenure = NOT_TENURED);
|
|
618
646
|
|
|
647
|
+
MUST_USE_RESULT MaybeObject* AllocateRawFixedDoubleArray(
|
|
648
|
+
int length,
|
|
649
|
+
PretenureFlag pretenure);
|
|
650
|
+
|
|
651
|
+
// Allocates a fixed double array with uninitialized values. Returns
|
|
652
|
+
// Failure::RetryAfterGC(requested_bytes, space) if the allocation failed.
|
|
653
|
+
// Please note this does not perform a garbage collection.
|
|
654
|
+
MUST_USE_RESULT MaybeObject* AllocateUninitializedFixedDoubleArray(
|
|
655
|
+
int length,
|
|
656
|
+
PretenureFlag pretenure = NOT_TENURED);
|
|
657
|
+
|
|
619
658
|
// AllocateHashTable is identical to AllocateFixedArray except
|
|
620
659
|
// that the resulting object has hash_table_map as map.
|
|
621
660
|
MUST_USE_RESULT MaybeObject* AllocateHashTable(
|
|
@@ -626,12 +665,22 @@ class Heap {
|
|
|
626
665
|
|
|
627
666
|
// Allocate a function context.
|
|
628
667
|
MUST_USE_RESULT MaybeObject* AllocateFunctionContext(int length,
|
|
629
|
-
JSFunction*
|
|
668
|
+
JSFunction* function);
|
|
630
669
|
|
|
670
|
+
// Allocate a catch context.
|
|
671
|
+
MUST_USE_RESULT MaybeObject* AllocateCatchContext(JSFunction* function,
|
|
672
|
+
Context* previous,
|
|
673
|
+
String* name,
|
|
674
|
+
Object* thrown_object);
|
|
631
675
|
// Allocate a 'with' context.
|
|
632
|
-
MUST_USE_RESULT MaybeObject* AllocateWithContext(
|
|
633
|
-
|
|
634
|
-
|
|
676
|
+
MUST_USE_RESULT MaybeObject* AllocateWithContext(JSFunction* function,
|
|
677
|
+
Context* previous,
|
|
678
|
+
JSObject* extension);
|
|
679
|
+
|
|
680
|
+
// Allocate a block context.
|
|
681
|
+
MUST_USE_RESULT MaybeObject* AllocateBlockContext(JSFunction* function,
|
|
682
|
+
Context* previous,
|
|
683
|
+
SerializedScopeInfo* info);
|
|
635
684
|
|
|
636
685
|
// Allocates a new utility object in the old generation.
|
|
637
686
|
MUST_USE_RESULT MaybeObject* AllocateStruct(InstanceType type);
|
|
@@ -1026,10 +1075,8 @@ class Heap {
|
|
|
1026
1075
|
void ZapFromSpace();
|
|
1027
1076
|
#endif
|
|
1028
1077
|
|
|
1029
|
-
#if defined(ENABLE_LOGGING_AND_PROFILING)
|
|
1030
1078
|
// Print short heap statistics.
|
|
1031
1079
|
void PrintShortHeapStatistics();
|
|
1032
|
-
#endif
|
|
1033
1080
|
|
|
1034
1081
|
// Makes a new symbol object
|
|
1035
1082
|
// Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
|
@@ -1054,6 +1101,8 @@ class Heap {
|
|
|
1054
1101
|
enum HeapState { NOT_IN_GC, SCAVENGE, MARK_COMPACT };
|
|
1055
1102
|
inline HeapState gc_state() { return gc_state_; }
|
|
1056
1103
|
|
|
1104
|
+
inline bool IsInGCPostProcessing() { return gc_post_processing_depth_ > 0; }
|
|
1105
|
+
|
|
1057
1106
|
#ifdef DEBUG
|
|
1058
1107
|
bool IsAllocationAllowed() { return allocation_allowed_; }
|
|
1059
1108
|
inline bool allow_allocation(bool enable);
|
|
@@ -1228,6 +1277,11 @@ class Heap {
|
|
|
1228
1277
|
return &external_string_table_;
|
|
1229
1278
|
}
|
|
1230
1279
|
|
|
1280
|
+
// Returns the current sweep generation.
|
|
1281
|
+
int sweep_generation() {
|
|
1282
|
+
return sweep_generation_;
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1231
1285
|
inline Isolate* isolate();
|
|
1232
1286
|
bool is_safe_to_read_maps() { return is_safe_to_read_maps_; }
|
|
1233
1287
|
|
|
@@ -1257,6 +1311,9 @@ class Heap {
|
|
|
1257
1311
|
// scavenge since last new space expansion.
|
|
1258
1312
|
int survived_since_last_expansion_;
|
|
1259
1313
|
|
|
1314
|
+
// For keeping track on when to flush RegExp code.
|
|
1315
|
+
int sweep_generation_;
|
|
1316
|
+
|
|
1260
1317
|
int always_allocate_scope_depth_;
|
|
1261
1318
|
int linear_allocation_scope_depth_;
|
|
1262
1319
|
|
|
@@ -1277,6 +1334,7 @@ class Heap {
|
|
|
1277
1334
|
CellSpace* cell_space_;
|
|
1278
1335
|
LargeObjectSpace* lo_space_;
|
|
1279
1336
|
HeapState gc_state_;
|
|
1337
|
+
int gc_post_processing_depth_;
|
|
1280
1338
|
|
|
1281
1339
|
// Returns the size of object residing in non new spaces.
|
|
1282
1340
|
intptr_t PromotedSpaceSize();
|
|
@@ -1453,6 +1511,9 @@ class Heap {
|
|
|
1453
1511
|
// Allocate empty fixed array.
|
|
1454
1512
|
MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray();
|
|
1455
1513
|
|
|
1514
|
+
// Allocate empty fixed double array.
|
|
1515
|
+
MUST_USE_RESULT MaybeObject* AllocateEmptyFixedDoubleArray();
|
|
1516
|
+
|
|
1456
1517
|
void SwitchScavengingVisitorsTableIfProfilingWasEnabled();
|
|
1457
1518
|
|
|
1458
1519
|
// Performs a minor collection in new generation.
|
|
@@ -1474,11 +1535,9 @@ class Heap {
|
|
|
1474
1535
|
// around a GC).
|
|
1475
1536
|
inline void CompletelyClearInstanceofCache();
|
|
1476
1537
|
|
|
1477
|
-
#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING)
|
|
1478
1538
|
// Record statistics before and after garbage collection.
|
|
1479
1539
|
void ReportStatisticsBeforeGC();
|
|
1480
1540
|
void ReportStatisticsAfterGC();
|
|
1481
|
-
#endif
|
|
1482
1541
|
|
|
1483
1542
|
// Slow part of scavenge object.
|
|
1484
1543
|
static void ScavengeObjectSlow(HeapObject** p, HeapObject* object);
|
|
@@ -1601,6 +1660,7 @@ class Heap {
|
|
|
1601
1660
|
friend class Page;
|
|
1602
1661
|
friend class Isolate;
|
|
1603
1662
|
friend class MarkCompactCollector;
|
|
1663
|
+
friend class StaticMarkingVisitor;
|
|
1604
1664
|
friend class MapCompact;
|
|
1605
1665
|
|
|
1606
1666
|
DISALLOW_COPY_AND_ASSIGN(Heap);
|
|
@@ -1630,7 +1690,7 @@ class HeapStats {
|
|
|
1630
1690
|
int* weak_global_handle_count; // 15
|
|
1631
1691
|
int* pending_global_handle_count; // 16
|
|
1632
1692
|
int* near_death_global_handle_count; // 17
|
|
1633
|
-
int*
|
|
1693
|
+
int* free_global_handle_count; // 18
|
|
1634
1694
|
intptr_t* memory_allocator_size; // 19
|
|
1635
1695
|
intptr_t* memory_allocator_capacity; // 20
|
|
1636
1696
|
int* objects_per_type; // 21
|
|
@@ -1898,6 +1958,7 @@ class DescriptorLookupCache {
|
|
|
1898
1958
|
void Clear();
|
|
1899
1959
|
|
|
1900
1960
|
static const int kAbsent = -2;
|
|
1961
|
+
|
|
1901
1962
|
private:
|
|
1902
1963
|
DescriptorLookupCache() {
|
|
1903
1964
|
for (int i = 0; i < kLength; ++i) {
|
|
@@ -635,6 +635,13 @@ void HBinaryCall::PrintDataTo(StringStream* stream) {
|
|
|
635
635
|
}
|
|
636
636
|
|
|
637
637
|
|
|
638
|
+
void HBoundsCheck::PrintDataTo(StringStream* stream) {
|
|
639
|
+
index()->PrintNameTo(stream);
|
|
640
|
+
stream->Add(" ");
|
|
641
|
+
length()->PrintNameTo(stream);
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
|
|
638
645
|
void HCallConstantFunction::PrintDataTo(StringStream* stream) {
|
|
639
646
|
if (IsApplyFunction()) {
|
|
640
647
|
stream->Add("optimized apply ");
|
|
@@ -669,7 +676,7 @@ void HCallRuntime::PrintDataTo(StringStream* stream) {
|
|
|
669
676
|
}
|
|
670
677
|
|
|
671
678
|
|
|
672
|
-
void
|
|
679
|
+
void HClassOfTestAndBranch::PrintDataTo(StringStream* stream) {
|
|
673
680
|
stream->Add("class_of_test(");
|
|
674
681
|
value()->PrintNameTo(stream);
|
|
675
682
|
stream->Add(", \"%o\")", *class_name());
|
|
@@ -686,15 +693,13 @@ void HAccessArgumentsAt::PrintDataTo(StringStream* stream) {
|
|
|
686
693
|
|
|
687
694
|
|
|
688
695
|
void HControlInstruction::PrintDataTo(StringStream* stream) {
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
int second_id = SecondSuccessor()->block_id();
|
|
695
|
-
stream->Add(" goto (B%d, B%d)", first_id, second_id);
|
|
696
|
-
}
|
|
696
|
+
stream->Add(" goto (");
|
|
697
|
+
bool first_block = true;
|
|
698
|
+
for (HSuccessorIterator it(this); !it.Done(); it.Advance()) {
|
|
699
|
+
stream->Add(first_block ? "B%d" : ", B%d", it.Current()->block_id());
|
|
700
|
+
first_block = false;
|
|
697
701
|
}
|
|
702
|
+
stream->Add(")");
|
|
698
703
|
}
|
|
699
704
|
|
|
700
705
|
|
|
@@ -704,6 +709,11 @@ void HUnaryControlInstruction::PrintDataTo(StringStream* stream) {
|
|
|
704
709
|
}
|
|
705
710
|
|
|
706
711
|
|
|
712
|
+
void HReturn::PrintDataTo(StringStream* stream) {
|
|
713
|
+
value()->PrintNameTo(stream);
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
|
|
707
717
|
void HCompareMap::PrintDataTo(StringStream* stream) {
|
|
708
718
|
value()->PrintNameTo(stream);
|
|
709
719
|
stream->Add(" (%p)", *map());
|
|
@@ -744,10 +754,10 @@ void HUnaryOperation::PrintDataTo(StringStream* stream) {
|
|
|
744
754
|
}
|
|
745
755
|
|
|
746
756
|
|
|
747
|
-
void
|
|
757
|
+
void HHasInstanceTypeAndBranch::PrintDataTo(StringStream* stream) {
|
|
748
758
|
value()->PrintNameTo(stream);
|
|
749
759
|
switch (from_) {
|
|
750
|
-
case
|
|
760
|
+
case FIRST_JS_RECEIVER_TYPE:
|
|
751
761
|
if (to_ == LAST_TYPE) stream->Add(" spec_object");
|
|
752
762
|
break;
|
|
753
763
|
case JS_REGEXP_TYPE:
|
|
@@ -765,10 +775,10 @@ void HHasInstanceType::PrintDataTo(StringStream* stream) {
|
|
|
765
775
|
}
|
|
766
776
|
|
|
767
777
|
|
|
768
|
-
void
|
|
778
|
+
void HTypeofIsAndBranch::PrintDataTo(StringStream* stream) {
|
|
769
779
|
value()->PrintNameTo(stream);
|
|
770
780
|
stream->Add(" == ");
|
|
771
|
-
stream->Add(type_literal_->ToAsciiVector());
|
|
781
|
+
stream->Add(type_literal_->GetFlatContent().ToAsciiVector());
|
|
772
782
|
}
|
|
773
783
|
|
|
774
784
|
|
|
@@ -781,14 +791,28 @@ void HChange::PrintDataTo(StringStream* stream) {
|
|
|
781
791
|
}
|
|
782
792
|
|
|
783
793
|
|
|
794
|
+
HValue* HCheckInstanceType::Canonicalize() {
|
|
795
|
+
if (check_ == IS_STRING &&
|
|
796
|
+
!value()->type().IsUninitialized() &&
|
|
797
|
+
value()->type().IsString()) {
|
|
798
|
+
return NULL;
|
|
799
|
+
}
|
|
800
|
+
if (check_ == IS_SYMBOL &&
|
|
801
|
+
value()->IsConstant() &&
|
|
802
|
+
HConstant::cast(value())->handle()->IsSymbol()) {
|
|
803
|
+
return NULL;
|
|
804
|
+
}
|
|
805
|
+
return this;
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
|
|
784
809
|
void HCheckInstanceType::GetCheckInterval(InstanceType* first,
|
|
785
810
|
InstanceType* last) {
|
|
786
811
|
ASSERT(is_interval_check());
|
|
787
812
|
switch (check_) {
|
|
788
|
-
case
|
|
789
|
-
|
|
790
|
-
*
|
|
791
|
-
*last = JS_FUNCTION_TYPE;
|
|
813
|
+
case IS_SPEC_OBJECT:
|
|
814
|
+
*first = FIRST_SPEC_OBJECT_TYPE;
|
|
815
|
+
*last = LAST_SPEC_OBJECT_TYPE;
|
|
792
816
|
return;
|
|
793
817
|
case IS_JS_ARRAY:
|
|
794
818
|
*first = *last = JS_ARRAY_TYPE;
|
|
@@ -845,19 +869,25 @@ void HInstanceOf::PrintDataTo(StringStream* stream) {
|
|
|
845
869
|
|
|
846
870
|
|
|
847
871
|
Range* HValue::InferRange() {
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
872
|
+
// Untagged integer32 cannot be -0, all other representations can.
|
|
873
|
+
Range* result = new Range();
|
|
874
|
+
result->set_can_be_minus_zero(!representation().IsInteger32());
|
|
875
|
+
return result;
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
Range* HChange::InferRange() {
|
|
880
|
+
Range* input_range = value()->range();
|
|
881
|
+
if (from().IsInteger32() &&
|
|
882
|
+
to().IsTagged() &&
|
|
883
|
+
input_range != NULL && input_range->IsInSmiRange()) {
|
|
884
|
+
set_type(HType::Smi());
|
|
860
885
|
}
|
|
886
|
+
Range* result = (input_range != NULL)
|
|
887
|
+
? input_range->Copy()
|
|
888
|
+
: HValue::InferRange();
|
|
889
|
+
if (to().IsInteger32()) result->set_can_be_minus_zero(false);
|
|
890
|
+
return result;
|
|
861
891
|
}
|
|
862
892
|
|
|
863
893
|
|
|
@@ -1084,6 +1114,16 @@ void HSimulate::PrintDataTo(StringStream* stream) {
|
|
|
1084
1114
|
}
|
|
1085
1115
|
|
|
1086
1116
|
|
|
1117
|
+
void HDeoptimize::PrintDataTo(StringStream* stream) {
|
|
1118
|
+
if (OperandCount() == 0) return;
|
|
1119
|
+
OperandAt(0)->PrintNameTo(stream);
|
|
1120
|
+
for (int i = 1; i < OperandCount(); ++i) {
|
|
1121
|
+
stream->Add(" ");
|
|
1122
|
+
OperandAt(i)->PrintNameTo(stream);
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
|
|
1087
1127
|
void HEnterInlined::PrintDataTo(StringStream* stream) {
|
|
1088
1128
|
SmartPointer<char> name = function()->debug_name()->ToCString();
|
|
1089
1129
|
stream->Add("%s, id=%d", *name, function()->id());
|
|
@@ -1196,6 +1236,7 @@ Range* HSar::InferRange() {
|
|
|
1196
1236
|
? left()->range()->Copy()
|
|
1197
1237
|
: new Range();
|
|
1198
1238
|
result->Sar(c->Integer32Value());
|
|
1239
|
+
result->set_can_be_minus_zero(false);
|
|
1199
1240
|
return result;
|
|
1200
1241
|
}
|
|
1201
1242
|
}
|
|
@@ -1203,6 +1244,31 @@ Range* HSar::InferRange() {
|
|
|
1203
1244
|
}
|
|
1204
1245
|
|
|
1205
1246
|
|
|
1247
|
+
Range* HShr::InferRange() {
|
|
1248
|
+
if (right()->IsConstant()) {
|
|
1249
|
+
HConstant* c = HConstant::cast(right());
|
|
1250
|
+
if (c->HasInteger32Value()) {
|
|
1251
|
+
int shift_count = c->Integer32Value() & 0x1f;
|
|
1252
|
+
if (left()->range()->CanBeNegative()) {
|
|
1253
|
+
// Only compute bounds if the result always fits into an int32.
|
|
1254
|
+
return (shift_count >= 1)
|
|
1255
|
+
? new Range(0, static_cast<uint32_t>(0xffffffff) >> shift_count)
|
|
1256
|
+
: new Range();
|
|
1257
|
+
} else {
|
|
1258
|
+
// For positive inputs we can use the >> operator.
|
|
1259
|
+
Range* result = (left()->range() != NULL)
|
|
1260
|
+
? left()->range()->Copy()
|
|
1261
|
+
: new Range();
|
|
1262
|
+
result->Sar(c->Integer32Value());
|
|
1263
|
+
result->set_can_be_minus_zero(false);
|
|
1264
|
+
return result;
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
return HValue::InferRange();
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
|
|
1206
1272
|
Range* HShl::InferRange() {
|
|
1207
1273
|
if (right()->IsConstant()) {
|
|
1208
1274
|
HConstant* c = HConstant::cast(right());
|
|
@@ -1211,6 +1277,7 @@ Range* HShl::InferRange() {
|
|
|
1211
1277
|
? left()->range()->Copy()
|
|
1212
1278
|
: new Range();
|
|
1213
1279
|
result->Shl(c->Integer32Value());
|
|
1280
|
+
result->set_can_be_minus_zero(false);
|
|
1214
1281
|
return result;
|
|
1215
1282
|
}
|
|
1216
1283
|
}
|
|
@@ -1219,21 +1286,28 @@ Range* HShl::InferRange() {
|
|
|
1219
1286
|
|
|
1220
1287
|
|
|
1221
1288
|
|
|
1222
|
-
void
|
|
1289
|
+
void HCompareGeneric::PrintDataTo(StringStream* stream) {
|
|
1223
1290
|
stream->Add(Token::Name(token()));
|
|
1224
1291
|
stream->Add(" ");
|
|
1225
1292
|
HBinaryOperation::PrintDataTo(stream);
|
|
1226
1293
|
}
|
|
1227
1294
|
|
|
1228
1295
|
|
|
1229
|
-
void
|
|
1296
|
+
void HCompareIDAndBranch::PrintDataTo(StringStream* stream) {
|
|
1297
|
+
stream->Add(Token::Name(token()));
|
|
1298
|
+
stream->Add(" ");
|
|
1299
|
+
left()->PrintNameTo(stream);
|
|
1300
|
+
stream->Add(" ");
|
|
1301
|
+
right()->PrintNameTo(stream);
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
|
|
1305
|
+
void HCompareIDAndBranch::SetInputRepresentation(Representation r) {
|
|
1230
1306
|
input_representation_ = r;
|
|
1231
|
-
if (r.
|
|
1232
|
-
|
|
1233
|
-
ClearFlag(kUseGVN);
|
|
1307
|
+
if (r.IsDouble()) {
|
|
1308
|
+
SetFlag(kDeoptimizeOnUndefined);
|
|
1234
1309
|
} else {
|
|
1235
|
-
|
|
1236
|
-
SetFlag(kUseGVN);
|
|
1310
|
+
ASSERT(r.IsInteger32());
|
|
1237
1311
|
}
|
|
1238
1312
|
}
|
|
1239
1313
|
|
|
@@ -1249,13 +1323,15 @@ void HLoadNamedField::PrintDataTo(StringStream* stream) {
|
|
|
1249
1323
|
}
|
|
1250
1324
|
|
|
1251
1325
|
|
|
1252
|
-
HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue*
|
|
1253
|
-
|
|
1326
|
+
HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context,
|
|
1327
|
+
HValue* object,
|
|
1328
|
+
SmallMapList* types,
|
|
1254
1329
|
Handle<String> name)
|
|
1255
|
-
:
|
|
1256
|
-
types_(Min(types->length(), kMaxLoadPolymorphism)),
|
|
1330
|
+
: types_(Min(types->length(), kMaxLoadPolymorphism)),
|
|
1257
1331
|
name_(name),
|
|
1258
1332
|
need_generic_(false) {
|
|
1333
|
+
SetOperandAt(0, context);
|
|
1334
|
+
SetOperandAt(1, object);
|
|
1259
1335
|
set_representation(Representation::Tagged());
|
|
1260
1336
|
SetFlag(kDependsOnMaps);
|
|
1261
1337
|
for (int i = 0;
|
|
@@ -1313,6 +1389,20 @@ bool HLoadNamedFieldPolymorphic::DataEquals(HValue* value) {
|
|
|
1313
1389
|
}
|
|
1314
1390
|
|
|
1315
1391
|
|
|
1392
|
+
void HLoadNamedFieldPolymorphic::PrintDataTo(StringStream* stream) {
|
|
1393
|
+
object()->PrintNameTo(stream);
|
|
1394
|
+
stream->Add(" .");
|
|
1395
|
+
stream->Add(*String::cast(*name())->ToCString());
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
|
|
1399
|
+
void HLoadNamedGeneric::PrintDataTo(StringStream* stream) {
|
|
1400
|
+
object()->PrintNameTo(stream);
|
|
1401
|
+
stream->Add(" .");
|
|
1402
|
+
stream->Add(*String::cast(*name())->ToCString());
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
|
|
1316
1406
|
void HLoadKeyedFastElement::PrintDataTo(StringStream* stream) {
|
|
1317
1407
|
object()->PrintNameTo(stream);
|
|
1318
1408
|
stream->Add("[");
|
|
@@ -1330,6 +1420,19 @@ bool HLoadKeyedFastElement::RequiresHoleCheck() const {
|
|
|
1330
1420
|
}
|
|
1331
1421
|
|
|
1332
1422
|
|
|
1423
|
+
void HLoadKeyedFastDoubleElement::PrintDataTo(StringStream* stream) {
|
|
1424
|
+
elements()->PrintNameTo(stream);
|
|
1425
|
+
stream->Add("[");
|
|
1426
|
+
key()->PrintNameTo(stream);
|
|
1427
|
+
stream->Add("]");
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
bool HLoadKeyedFastDoubleElement::RequiresHoleCheck() const {
|
|
1432
|
+
return true;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
|
|
1333
1436
|
void HLoadKeyedGeneric::PrintDataTo(StringStream* stream) {
|
|
1334
1437
|
object()->PrintNameTo(stream);
|
|
1335
1438
|
stream->Add("[");
|
|
@@ -1342,34 +1445,40 @@ void HLoadKeyedSpecializedArrayElement::PrintDataTo(
|
|
|
1342
1445
|
StringStream* stream) {
|
|
1343
1446
|
external_pointer()->PrintNameTo(stream);
|
|
1344
1447
|
stream->Add(".");
|
|
1345
|
-
switch (
|
|
1346
|
-
case
|
|
1448
|
+
switch (elements_kind()) {
|
|
1449
|
+
case JSObject::EXTERNAL_BYTE_ELEMENTS:
|
|
1347
1450
|
stream->Add("byte");
|
|
1348
1451
|
break;
|
|
1349
|
-
case
|
|
1452
|
+
case JSObject::EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
|
|
1350
1453
|
stream->Add("u_byte");
|
|
1351
1454
|
break;
|
|
1352
|
-
case
|
|
1455
|
+
case JSObject::EXTERNAL_SHORT_ELEMENTS:
|
|
1353
1456
|
stream->Add("short");
|
|
1354
1457
|
break;
|
|
1355
|
-
case
|
|
1458
|
+
case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
|
|
1356
1459
|
stream->Add("u_short");
|
|
1357
1460
|
break;
|
|
1358
|
-
case
|
|
1461
|
+
case JSObject::EXTERNAL_INT_ELEMENTS:
|
|
1359
1462
|
stream->Add("int");
|
|
1360
1463
|
break;
|
|
1361
|
-
case
|
|
1464
|
+
case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS:
|
|
1362
1465
|
stream->Add("u_int");
|
|
1363
1466
|
break;
|
|
1364
|
-
case
|
|
1467
|
+
case JSObject::EXTERNAL_FLOAT_ELEMENTS:
|
|
1365
1468
|
stream->Add("float");
|
|
1366
1469
|
break;
|
|
1367
|
-
case
|
|
1470
|
+
case JSObject::EXTERNAL_DOUBLE_ELEMENTS:
|
|
1368
1471
|
stream->Add("double");
|
|
1369
1472
|
break;
|
|
1370
|
-
case
|
|
1473
|
+
case JSObject::EXTERNAL_PIXEL_ELEMENTS:
|
|
1371
1474
|
stream->Add("pixel");
|
|
1372
1475
|
break;
|
|
1476
|
+
case JSObject::FAST_ELEMENTS:
|
|
1477
|
+
case JSObject::FAST_DOUBLE_ELEMENTS:
|
|
1478
|
+
case JSObject::DICTIONARY_ELEMENTS:
|
|
1479
|
+
case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS:
|
|
1480
|
+
UNREACHABLE();
|
|
1481
|
+
break;
|
|
1373
1482
|
}
|
|
1374
1483
|
stream->Add("[");
|
|
1375
1484
|
key()->PrintNameTo(stream);
|
|
@@ -1409,6 +1518,15 @@ void HStoreKeyedFastElement::PrintDataTo(StringStream* stream) {
|
|
|
1409
1518
|
}
|
|
1410
1519
|
|
|
1411
1520
|
|
|
1521
|
+
void HStoreKeyedFastDoubleElement::PrintDataTo(StringStream* stream) {
|
|
1522
|
+
elements()->PrintNameTo(stream);
|
|
1523
|
+
stream->Add("[");
|
|
1524
|
+
key()->PrintNameTo(stream);
|
|
1525
|
+
stream->Add("] = ");
|
|
1526
|
+
value()->PrintNameTo(stream);
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
|
|
1412
1530
|
void HStoreKeyedGeneric::PrintDataTo(StringStream* stream) {
|
|
1413
1531
|
object()->PrintNameTo(stream);
|
|
1414
1532
|
stream->Add("[");
|
|
@@ -1422,34 +1540,40 @@ void HStoreKeyedSpecializedArrayElement::PrintDataTo(
|
|
|
1422
1540
|
StringStream* stream) {
|
|
1423
1541
|
external_pointer()->PrintNameTo(stream);
|
|
1424
1542
|
stream->Add(".");
|
|
1425
|
-
switch (
|
|
1426
|
-
case
|
|
1543
|
+
switch (elements_kind()) {
|
|
1544
|
+
case JSObject::EXTERNAL_BYTE_ELEMENTS:
|
|
1427
1545
|
stream->Add("byte");
|
|
1428
1546
|
break;
|
|
1429
|
-
case
|
|
1547
|
+
case JSObject::EXTERNAL_UNSIGNED_BYTE_ELEMENTS:
|
|
1430
1548
|
stream->Add("u_byte");
|
|
1431
1549
|
break;
|
|
1432
|
-
case
|
|
1550
|
+
case JSObject::EXTERNAL_SHORT_ELEMENTS:
|
|
1433
1551
|
stream->Add("short");
|
|
1434
1552
|
break;
|
|
1435
|
-
case
|
|
1553
|
+
case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
|
|
1436
1554
|
stream->Add("u_short");
|
|
1437
1555
|
break;
|
|
1438
|
-
case
|
|
1556
|
+
case JSObject::EXTERNAL_INT_ELEMENTS:
|
|
1439
1557
|
stream->Add("int");
|
|
1440
1558
|
break;
|
|
1441
|
-
case
|
|
1559
|
+
case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS:
|
|
1442
1560
|
stream->Add("u_int");
|
|
1443
1561
|
break;
|
|
1444
|
-
case
|
|
1562
|
+
case JSObject::EXTERNAL_FLOAT_ELEMENTS:
|
|
1445
1563
|
stream->Add("float");
|
|
1446
1564
|
break;
|
|
1447
|
-
case
|
|
1565
|
+
case JSObject::EXTERNAL_DOUBLE_ELEMENTS:
|
|
1448
1566
|
stream->Add("double");
|
|
1449
1567
|
break;
|
|
1450
|
-
case
|
|
1568
|
+
case JSObject::EXTERNAL_PIXEL_ELEMENTS:
|
|
1451
1569
|
stream->Add("pixel");
|
|
1452
1570
|
break;
|
|
1571
|
+
case JSObject::FAST_ELEMENTS:
|
|
1572
|
+
case JSObject::FAST_DOUBLE_ELEMENTS:
|
|
1573
|
+
case JSObject::DICTIONARY_ELEMENTS:
|
|
1574
|
+
case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS:
|
|
1575
|
+
UNREACHABLE();
|
|
1576
|
+
break;
|
|
1453
1577
|
}
|
|
1454
1578
|
stream->Add("[");
|
|
1455
1579
|
key()->PrintNameTo(stream);
|
|
@@ -1538,17 +1662,22 @@ HType HConstant::CalculateInferredType() {
|
|
|
1538
1662
|
}
|
|
1539
1663
|
|
|
1540
1664
|
|
|
1541
|
-
HType
|
|
1665
|
+
HType HCompareGeneric::CalculateInferredType() {
|
|
1542
1666
|
return HType::Boolean();
|
|
1543
1667
|
}
|
|
1544
1668
|
|
|
1545
1669
|
|
|
1546
|
-
HType
|
|
1670
|
+
HType HInstanceOf::CalculateInferredType() {
|
|
1547
1671
|
return HType::Boolean();
|
|
1548
1672
|
}
|
|
1549
1673
|
|
|
1550
1674
|
|
|
1551
|
-
HType
|
|
1675
|
+
HType HDeleteProperty::CalculateInferredType() {
|
|
1676
|
+
return HType::Boolean();
|
|
1677
|
+
}
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
HType HInstanceOfKnownGlobal::CalculateInferredType() {
|
|
1552
1681
|
return HType::Boolean();
|
|
1553
1682
|
}
|
|
1554
1683
|
|
|
@@ -1723,12 +1852,6 @@ void HSimulate::Verify() {
|
|
|
1723
1852
|
}
|
|
1724
1853
|
|
|
1725
1854
|
|
|
1726
|
-
void HBoundsCheck::Verify() {
|
|
1727
|
-
HInstruction::Verify();
|
|
1728
|
-
ASSERT(HasNoUses());
|
|
1729
|
-
}
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
1855
|
void HCheckSmi::Verify() {
|
|
1733
1856
|
HInstruction::Verify();
|
|
1734
1857
|
ASSERT(HasNoUses());
|
|
@@ -1741,18 +1864,6 @@ void HCheckNonSmi::Verify() {
|
|
|
1741
1864
|
}
|
|
1742
1865
|
|
|
1743
1866
|
|
|
1744
|
-
void HCheckInstanceType::Verify() {
|
|
1745
|
-
HInstruction::Verify();
|
|
1746
|
-
ASSERT(HasNoUses());
|
|
1747
|
-
}
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
void HCheckMap::Verify() {
|
|
1751
|
-
HInstruction::Verify();
|
|
1752
|
-
ASSERT(HasNoUses());
|
|
1753
|
-
}
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
1867
|
void HCheckFunction::Verify() {
|
|
1757
1868
|
HInstruction::Verify();
|
|
1758
1869
|
ASSERT(HasNoUses());
|