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/ic.h
CHANGED
|
@@ -59,14 +59,14 @@ namespace internal {
|
|
|
59
59
|
ICU(StoreInterceptorProperty) \
|
|
60
60
|
ICU(UnaryOp_Patch) \
|
|
61
61
|
ICU(BinaryOp_Patch) \
|
|
62
|
-
ICU(CompareIC_Miss)
|
|
62
|
+
ICU(CompareIC_Miss) \
|
|
63
|
+
ICU(ToBoolean_Patch)
|
|
63
64
|
//
|
|
64
65
|
// IC is the base class for LoadIC, StoreIC, CallIC, KeyedLoadIC,
|
|
65
66
|
// and KeyedStoreIC.
|
|
66
67
|
//
|
|
67
68
|
class IC {
|
|
68
69
|
public:
|
|
69
|
-
|
|
70
70
|
// The ids for utility called from the generated code.
|
|
71
71
|
enum UtilityId {
|
|
72
72
|
#define CONST_NAME(name) k##name,
|
|
@@ -284,6 +284,7 @@ class KeyedCallIC: public CallICBase {
|
|
|
284
284
|
static void GenerateMiss(MacroAssembler* masm, int argc);
|
|
285
285
|
static void GenerateMegamorphic(MacroAssembler* masm, int argc);
|
|
286
286
|
static void GenerateNormal(MacroAssembler* masm, int argc);
|
|
287
|
+
static void GenerateNonStrictArguments(MacroAssembler* masm, int argc);
|
|
287
288
|
};
|
|
288
289
|
|
|
289
290
|
|
|
@@ -345,13 +346,9 @@ class KeyedIC: public IC {
|
|
|
345
346
|
explicit KeyedIC(Isolate* isolate) : IC(NO_EXTRA_FRAME, isolate) {}
|
|
346
347
|
virtual ~KeyedIC() {}
|
|
347
348
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
bool is_js_array) = 0;
|
|
352
|
-
|
|
353
|
-
virtual MaybeObject* GetExternalArrayStubWithoutMapCheck(
|
|
354
|
-
ExternalArrayType array_type) = 0;
|
|
349
|
+
virtual MaybeObject* GetElementStubWithoutMapCheck(
|
|
350
|
+
bool is_js_array,
|
|
351
|
+
JSObject::ElementsKind elements_kind) = 0;
|
|
355
352
|
|
|
356
353
|
protected:
|
|
357
354
|
virtual Code* string_stub() {
|
|
@@ -360,8 +357,6 @@ class KeyedIC: public IC {
|
|
|
360
357
|
|
|
361
358
|
virtual Code::Kind kind() const = 0;
|
|
362
359
|
|
|
363
|
-
virtual String* GetStubNameForCache(IC::State ic_state) = 0;
|
|
364
|
-
|
|
365
360
|
MaybeObject* ComputeStub(JSObject* receiver,
|
|
366
361
|
bool is_store,
|
|
367
362
|
StrictModeFlag strict_mode,
|
|
@@ -377,8 +372,7 @@ class KeyedIC: public IC {
|
|
|
377
372
|
|
|
378
373
|
MaybeObject* ComputeMonomorphicStubWithoutMapCheck(
|
|
379
374
|
Map* receiver_map,
|
|
380
|
-
StrictModeFlag strict_mode
|
|
381
|
-
Code* generic_stub);
|
|
375
|
+
StrictModeFlag strict_mode);
|
|
382
376
|
|
|
383
377
|
MaybeObject* ComputeMonomorphicStub(JSObject* receiver,
|
|
384
378
|
bool is_store,
|
|
@@ -409,8 +403,8 @@ class KeyedLoadIC: public KeyedIC {
|
|
|
409
403
|
}
|
|
410
404
|
static void GenerateGeneric(MacroAssembler* masm);
|
|
411
405
|
static void GenerateString(MacroAssembler* masm);
|
|
412
|
-
|
|
413
406
|
static void GenerateIndexedInterceptor(MacroAssembler* masm);
|
|
407
|
+
static void GenerateNonStrictArguments(MacroAssembler* masm);
|
|
414
408
|
|
|
415
409
|
// Bit mask to be tested against bit field for the cases when
|
|
416
410
|
// generic stub should go into slow case.
|
|
@@ -419,17 +413,13 @@ class KeyedLoadIC: public KeyedIC {
|
|
|
419
413
|
static const int kSlowCaseBitFieldMask =
|
|
420
414
|
(1 << Map::kIsAccessCheckNeeded) | (1 << Map::kHasIndexedInterceptor);
|
|
421
415
|
|
|
422
|
-
virtual MaybeObject*
|
|
423
|
-
bool is_js_array
|
|
424
|
-
|
|
425
|
-
virtual MaybeObject* GetExternalArrayStubWithoutMapCheck(
|
|
426
|
-
ExternalArrayType array_type);
|
|
416
|
+
virtual MaybeObject* GetElementStubWithoutMapCheck(
|
|
417
|
+
bool is_js_array,
|
|
418
|
+
JSObject::ElementsKind elements_kind);
|
|
427
419
|
|
|
428
420
|
protected:
|
|
429
421
|
virtual Code::Kind kind() const { return Code::KEYED_LOAD_IC; }
|
|
430
422
|
|
|
431
|
-
virtual String* GetStubNameForCache(IC::State ic_state);
|
|
432
|
-
|
|
433
423
|
virtual MaybeObject* ConstructMegamorphicStub(
|
|
434
424
|
MapList* receiver_maps,
|
|
435
425
|
CodeList* targets,
|
|
@@ -468,6 +458,10 @@ class KeyedLoadIC: public KeyedIC {
|
|
|
468
458
|
return isolate()->builtins()->builtin(
|
|
469
459
|
Builtins::kKeyedLoadIC_IndexedInterceptor);
|
|
470
460
|
}
|
|
461
|
+
Code* non_strict_arguments_stub() {
|
|
462
|
+
return isolate()->builtins()->builtin(
|
|
463
|
+
Builtins::kKeyedLoadIC_NonStrictArguments);
|
|
464
|
+
}
|
|
471
465
|
|
|
472
466
|
static void Clear(Address address, Code* target);
|
|
473
467
|
|
|
@@ -568,18 +562,15 @@ class KeyedStoreIC: public KeyedIC {
|
|
|
568
562
|
static void GenerateRuntimeSetProperty(MacroAssembler* masm,
|
|
569
563
|
StrictModeFlag strict_mode);
|
|
570
564
|
static void GenerateGeneric(MacroAssembler* masm, StrictModeFlag strict_mode);
|
|
565
|
+
static void GenerateNonStrictArguments(MacroAssembler* masm);
|
|
571
566
|
|
|
572
|
-
virtual MaybeObject*
|
|
573
|
-
bool is_js_array
|
|
574
|
-
|
|
575
|
-
virtual MaybeObject* GetExternalArrayStubWithoutMapCheck(
|
|
576
|
-
ExternalArrayType array_type);
|
|
567
|
+
virtual MaybeObject* GetElementStubWithoutMapCheck(
|
|
568
|
+
bool is_js_array,
|
|
569
|
+
JSObject::ElementsKind elements_kind);
|
|
577
570
|
|
|
578
571
|
protected:
|
|
579
572
|
virtual Code::Kind kind() const { return Code::KEYED_STORE_IC; }
|
|
580
573
|
|
|
581
|
-
virtual String* GetStubNameForCache(IC::State ic_state);
|
|
582
|
-
|
|
583
574
|
virtual MaybeObject* ConstructMegamorphicStub(
|
|
584
575
|
MapList* receiver_maps,
|
|
585
576
|
CodeList* targets,
|
|
@@ -626,6 +617,10 @@ class KeyedStoreIC: public KeyedIC {
|
|
|
626
617
|
return isolate()->builtins()->builtin(
|
|
627
618
|
Builtins::kKeyedStoreIC_Generic_Strict);
|
|
628
619
|
}
|
|
620
|
+
Code* non_strict_arguments_stub() {
|
|
621
|
+
return isolate()->builtins()->builtin(
|
|
622
|
+
Builtins::kKeyedStoreIC_NonStrictArguments);
|
|
623
|
+
}
|
|
629
624
|
|
|
630
625
|
static void Clear(Address address, Code* target);
|
|
631
626
|
|
|
@@ -635,7 +630,6 @@ class KeyedStoreIC: public KeyedIC {
|
|
|
635
630
|
|
|
636
631
|
class UnaryOpIC: public IC {
|
|
637
632
|
public:
|
|
638
|
-
|
|
639
633
|
// sorted: increasingly more unspecific (ignoring UNINITIALIZED)
|
|
640
634
|
// TODO(svenpanne) Using enums+switch is an antipattern, use a class instead.
|
|
641
635
|
enum TypeInfo {
|
|
@@ -662,7 +656,6 @@ class UnaryOpIC: public IC {
|
|
|
662
656
|
// Type Recording BinaryOpIC, that records the types of the inputs and outputs.
|
|
663
657
|
class BinaryOpIC: public IC {
|
|
664
658
|
public:
|
|
665
|
-
|
|
666
659
|
enum TypeInfo {
|
|
667
660
|
UNINITIALIZED,
|
|
668
661
|
SMI,
|
|
@@ -728,6 +721,15 @@ class CompareIC: public IC {
|
|
|
728
721
|
Token::Value op_;
|
|
729
722
|
};
|
|
730
723
|
|
|
724
|
+
|
|
725
|
+
class ToBooleanIC: public IC {
|
|
726
|
+
public:
|
|
727
|
+
explicit ToBooleanIC(Isolate* isolate) : IC(NO_EXTRA_FRAME, isolate) { }
|
|
728
|
+
|
|
729
|
+
void patch(Code* code);
|
|
730
|
+
};
|
|
731
|
+
|
|
732
|
+
|
|
731
733
|
// Helper for BinaryOpIC and CompareIC.
|
|
732
734
|
void PatchInlinedSmiCode(Address address);
|
|
733
735
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2011 the V8 project authors. All rights reserved.
|
|
2
2
|
// Redistribution and use in source and binary forms, with or without
|
|
3
3
|
// modification, are permitted provided that the following conditions are
|
|
4
4
|
// met:
|
|
@@ -635,8 +635,9 @@ bool IrregexpInterpreter::Match(Isolate* isolate,
|
|
|
635
635
|
AssertNoAllocation a;
|
|
636
636
|
const byte* code_base = code_array->GetDataStartAddress();
|
|
637
637
|
uc16 previous_char = '\n';
|
|
638
|
-
|
|
639
|
-
|
|
638
|
+
String::FlatContent subject_content = subject->GetFlatContent();
|
|
639
|
+
if (subject_content.IsAscii()) {
|
|
640
|
+
Vector<const char> subject_vector = subject_content.ToAsciiVector();
|
|
640
641
|
if (start_position != 0) previous_char = subject_vector[start_position - 1];
|
|
641
642
|
return RawMatch(isolate,
|
|
642
643
|
code_base,
|
|
@@ -645,7 +646,8 @@ bool IrregexpInterpreter::Match(Isolate* isolate,
|
|
|
645
646
|
start_position,
|
|
646
647
|
previous_char);
|
|
647
648
|
} else {
|
|
648
|
-
|
|
649
|
+
ASSERT(subject_content.IsTwoByte());
|
|
650
|
+
Vector<const uc16> subject_vector = subject_content.ToUC16Vector();
|
|
649
651
|
if (start_position != 0) previous_char = subject_vector[start_position - 1];
|
|
650
652
|
return RawMatch(isolate,
|
|
651
653
|
code_base,
|
data/lib/libv8/v8/src/isolate.cc
CHANGED
|
@@ -76,6 +76,10 @@ int ThreadId::GetCurrentThreadId() {
|
|
|
76
76
|
|
|
77
77
|
ThreadLocalTop::ThreadLocalTop() {
|
|
78
78
|
InitializeInternal();
|
|
79
|
+
// This flag may be set using v8::V8::IgnoreOutOfMemoryException()
|
|
80
|
+
// before an isolate is initialized. The initialize methods below do
|
|
81
|
+
// not touch it to preserve its value.
|
|
82
|
+
ignore_out_of_memory_ = false;
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
|
|
@@ -85,13 +89,9 @@ void ThreadLocalTop::InitializeInternal() {
|
|
|
85
89
|
#ifdef USE_SIMULATOR
|
|
86
90
|
simulator_ = NULL;
|
|
87
91
|
#endif
|
|
88
|
-
#ifdef ENABLE_LOGGING_AND_PROFILING
|
|
89
92
|
js_entry_sp_ = NULL;
|
|
90
93
|
external_callback_ = NULL;
|
|
91
|
-
#endif
|
|
92
|
-
#ifdef ENABLE_VMSTATE_TRACKING
|
|
93
94
|
current_vm_state_ = EXTERNAL;
|
|
94
|
-
#endif
|
|
95
95
|
try_catch_handler_address_ = NULL;
|
|
96
96
|
context_ = NULL;
|
|
97
97
|
thread_id_ = ThreadId::Invalid();
|
|
@@ -190,8 +190,8 @@ class PreallocatedMemoryThread: public Thread {
|
|
|
190
190
|
|
|
191
191
|
|
|
192
192
|
private:
|
|
193
|
-
|
|
194
|
-
: Thread(
|
|
193
|
+
PreallocatedMemoryThread()
|
|
194
|
+
: Thread("v8:PreallocMem"),
|
|
195
195
|
keep_running_(true),
|
|
196
196
|
wait_for_ever_semaphore_(OS::CreateSemaphore(0)),
|
|
197
197
|
data_ready_semaphore_(OS::CreateSemaphore(0)),
|
|
@@ -219,7 +219,7 @@ class PreallocatedMemoryThread: public Thread {
|
|
|
219
219
|
|
|
220
220
|
void Isolate::PreallocatedMemoryThreadStart() {
|
|
221
221
|
if (preallocated_memory_thread_ != NULL) return;
|
|
222
|
-
preallocated_memory_thread_ = new PreallocatedMemoryThread(
|
|
222
|
+
preallocated_memory_thread_ = new PreallocatedMemoryThread();
|
|
223
223
|
preallocated_memory_thread_->Start();
|
|
224
224
|
}
|
|
225
225
|
|
|
@@ -386,7 +386,6 @@ void Isolate::EnsureDefaultIsolate() {
|
|
|
386
386
|
if (Thread::GetThreadLocal(isolate_key_) == NULL) {
|
|
387
387
|
Thread::SetThreadLocal(isolate_key_, default_isolate_);
|
|
388
388
|
}
|
|
389
|
-
CHECK(default_isolate_->PreInit());
|
|
390
389
|
}
|
|
391
390
|
|
|
392
391
|
|
|
@@ -658,6 +657,7 @@ void Isolate::PrintStack() {
|
|
|
658
657
|
incomplete_message_ = &accumulator;
|
|
659
658
|
PrintStack(&accumulator);
|
|
660
659
|
accumulator.OutputToStdOut();
|
|
660
|
+
InitializeLoggingAndCounters();
|
|
661
661
|
accumulator.Log();
|
|
662
662
|
incomplete_message_ = NULL;
|
|
663
663
|
stack_trace_nesting_level_ = 0;
|
|
@@ -1304,6 +1304,7 @@ char* Isolate::RestoreThread(char* from) {
|
|
|
1304
1304
|
if (RuntimeProfiler::IsEnabled() && current_vm_state() == JS) {
|
|
1305
1305
|
RuntimeProfiler::IsolateEnteredJS(this);
|
|
1306
1306
|
}
|
|
1307
|
+
ASSERT(context() == NULL || context()->IsContext());
|
|
1307
1308
|
return from + sizeof(ThreadLocalTop);
|
|
1308
1309
|
}
|
|
1309
1310
|
|
|
@@ -1334,6 +1335,7 @@ void Isolate::ThreadDataTable::Remove(PerIsolateThreadData* data) {
|
|
|
1334
1335
|
if (list_ == data) list_ = data->next_;
|
|
1335
1336
|
if (data->next_ != NULL) data->next_->prev_ = data->prev_;
|
|
1336
1337
|
if (data->prev_ != NULL) data->prev_->next_ = data->next_;
|
|
1338
|
+
delete data;
|
|
1337
1339
|
}
|
|
1338
1340
|
|
|
1339
1341
|
|
|
@@ -1346,6 +1348,16 @@ void Isolate::ThreadDataTable::Remove(Isolate* isolate,
|
|
|
1346
1348
|
}
|
|
1347
1349
|
|
|
1348
1350
|
|
|
1351
|
+
void Isolate::ThreadDataTable::RemoveAllThreads(Isolate* isolate) {
|
|
1352
|
+
PerIsolateThreadData* data = list_;
|
|
1353
|
+
while (data != NULL) {
|
|
1354
|
+
PerIsolateThreadData* next = data->next_;
|
|
1355
|
+
if (data->isolate() == isolate) Remove(data);
|
|
1356
|
+
data = next;
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
|
|
1349
1361
|
#ifdef DEBUG
|
|
1350
1362
|
#define TRACE_ISOLATE(tag) \
|
|
1351
1363
|
do { \
|
|
@@ -1368,11 +1380,15 @@ Isolate::Isolate()
|
|
|
1368
1380
|
bootstrapper_(NULL),
|
|
1369
1381
|
runtime_profiler_(NULL),
|
|
1370
1382
|
compilation_cache_(NULL),
|
|
1371
|
-
counters_(
|
|
1383
|
+
counters_(NULL),
|
|
1372
1384
|
code_range_(NULL),
|
|
1385
|
+
// Must be initialized early to allow v8::SetResourceConstraints calls.
|
|
1373
1386
|
break_access_(OS::CreateMutex()),
|
|
1374
|
-
|
|
1375
|
-
|
|
1387
|
+
debugger_initialized_(false),
|
|
1388
|
+
// Must be initialized early to allow v8::Debug calls.
|
|
1389
|
+
debugger_access_(OS::CreateMutex()),
|
|
1390
|
+
logger_(NULL),
|
|
1391
|
+
stats_table_(NULL),
|
|
1376
1392
|
stub_cache_(NULL),
|
|
1377
1393
|
deoptimizer_data_(NULL),
|
|
1378
1394
|
capture_stack_trace_for_uncaught_exceptions_(false),
|
|
@@ -1396,8 +1412,6 @@ Isolate::Isolate()
|
|
|
1396
1412
|
ast_sentinels_(NULL),
|
|
1397
1413
|
string_tracker_(NULL),
|
|
1398
1414
|
regexp_stack_(NULL),
|
|
1399
|
-
frame_element_constant_list_(0),
|
|
1400
|
-
result_constant_list_(0),
|
|
1401
1415
|
embedder_data_(NULL) {
|
|
1402
1416
|
TRACE_ISOLATE(constructor);
|
|
1403
1417
|
|
|
@@ -1432,10 +1446,6 @@ Isolate::Isolate()
|
|
|
1432
1446
|
debugger_ = NULL;
|
|
1433
1447
|
#endif
|
|
1434
1448
|
|
|
1435
|
-
#ifdef ENABLE_LOGGING_AND_PROFILING
|
|
1436
|
-
producer_heap_profile_ = NULL;
|
|
1437
|
-
#endif
|
|
1438
|
-
|
|
1439
1449
|
handle_scope_data_.Initialize();
|
|
1440
1450
|
|
|
1441
1451
|
#define ISOLATE_INIT_EXECUTE(type, name, initial_value) \
|
|
@@ -1462,6 +1472,10 @@ void Isolate::TearDown() {
|
|
|
1462
1472
|
|
|
1463
1473
|
Deinit();
|
|
1464
1474
|
|
|
1475
|
+
{ ScopedLock lock(process_wide_mutex_);
|
|
1476
|
+
thread_data_table_->RemoveAllThreads(this);
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1465
1479
|
if (!IsDefaultIsolate()) {
|
|
1466
1480
|
delete this;
|
|
1467
1481
|
}
|
|
@@ -1505,7 +1519,7 @@ void Isolate::Deinit() {
|
|
|
1505
1519
|
logger_->TearDown();
|
|
1506
1520
|
|
|
1507
1521
|
// The default isolate is re-initializable due to legacy API.
|
|
1508
|
-
state_ =
|
|
1522
|
+
state_ = UNINITIALIZED;
|
|
1509
1523
|
}
|
|
1510
1524
|
}
|
|
1511
1525
|
|
|
@@ -1520,10 +1534,11 @@ void Isolate::SetIsolateThreadLocals(Isolate* isolate,
|
|
|
1520
1534
|
Isolate::~Isolate() {
|
|
1521
1535
|
TRACE_ISOLATE(destructor);
|
|
1522
1536
|
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1537
|
+
// Has to be called while counters_ are still alive.
|
|
1538
|
+
zone_.DeleteKeptSegment();
|
|
1539
|
+
|
|
1540
|
+
delete[] assembler_spare_buffer_;
|
|
1541
|
+
assembler_spare_buffer_ = NULL;
|
|
1527
1542
|
|
|
1528
1543
|
delete unicode_cache_;
|
|
1529
1544
|
unicode_cache_ = NULL;
|
|
@@ -1558,6 +1573,8 @@ Isolate::~Isolate() {
|
|
|
1558
1573
|
handle_scope_implementer_ = NULL;
|
|
1559
1574
|
delete break_access_;
|
|
1560
1575
|
break_access_ = NULL;
|
|
1576
|
+
delete debugger_access_;
|
|
1577
|
+
debugger_access_ = NULL;
|
|
1561
1578
|
|
|
1562
1579
|
delete compilation_cache_;
|
|
1563
1580
|
compilation_cache_ = NULL;
|
|
@@ -1583,6 +1600,9 @@ Isolate::~Isolate() {
|
|
|
1583
1600
|
delete global_handles_;
|
|
1584
1601
|
global_handles_ = NULL;
|
|
1585
1602
|
|
|
1603
|
+
delete external_reference_table_;
|
|
1604
|
+
external_reference_table_ = NULL;
|
|
1605
|
+
|
|
1586
1606
|
#ifdef ENABLE_DEBUGGER_SUPPORT
|
|
1587
1607
|
delete debugger_;
|
|
1588
1608
|
debugger_ = NULL;
|
|
@@ -1592,65 +1612,6 @@ Isolate::~Isolate() {
|
|
|
1592
1612
|
}
|
|
1593
1613
|
|
|
1594
1614
|
|
|
1595
|
-
bool Isolate::PreInit() {
|
|
1596
|
-
if (state_ != UNINITIALIZED) return true;
|
|
1597
|
-
|
|
1598
|
-
TRACE_ISOLATE(preinit);
|
|
1599
|
-
|
|
1600
|
-
ASSERT(Isolate::Current() == this);
|
|
1601
|
-
#ifdef ENABLE_DEBUGGER_SUPPORT
|
|
1602
|
-
debug_ = new Debug(this);
|
|
1603
|
-
debugger_ = new Debugger();
|
|
1604
|
-
debugger_->isolate_ = this;
|
|
1605
|
-
#endif
|
|
1606
|
-
|
|
1607
|
-
memory_allocator_ = new MemoryAllocator();
|
|
1608
|
-
memory_allocator_->isolate_ = this;
|
|
1609
|
-
code_range_ = new CodeRange();
|
|
1610
|
-
code_range_->isolate_ = this;
|
|
1611
|
-
|
|
1612
|
-
// Safe after setting Heap::isolate_, initializing StackGuard and
|
|
1613
|
-
// ensuring that Isolate::Current() == this.
|
|
1614
|
-
heap_.SetStackLimits();
|
|
1615
|
-
|
|
1616
|
-
#ifdef DEBUG
|
|
1617
|
-
DisallowAllocationFailure disallow_allocation_failure;
|
|
1618
|
-
#endif
|
|
1619
|
-
|
|
1620
|
-
#define C(name) isolate_addresses_[Isolate::k_##name] = \
|
|
1621
|
-
reinterpret_cast<Address>(name());
|
|
1622
|
-
ISOLATE_ADDRESS_LIST(C)
|
|
1623
|
-
ISOLATE_ADDRESS_LIST_PROF(C)
|
|
1624
|
-
#undef C
|
|
1625
|
-
|
|
1626
|
-
string_tracker_ = new StringTracker();
|
|
1627
|
-
string_tracker_->isolate_ = this;
|
|
1628
|
-
compilation_cache_ = new CompilationCache(this);
|
|
1629
|
-
transcendental_cache_ = new TranscendentalCache();
|
|
1630
|
-
keyed_lookup_cache_ = new KeyedLookupCache();
|
|
1631
|
-
context_slot_cache_ = new ContextSlotCache();
|
|
1632
|
-
descriptor_lookup_cache_ = new DescriptorLookupCache();
|
|
1633
|
-
unicode_cache_ = new UnicodeCache();
|
|
1634
|
-
pc_to_code_cache_ = new PcToCodeCache(this);
|
|
1635
|
-
write_input_buffer_ = new StringInputBuffer();
|
|
1636
|
-
global_handles_ = new GlobalHandles(this);
|
|
1637
|
-
bootstrapper_ = new Bootstrapper();
|
|
1638
|
-
handle_scope_implementer_ = new HandleScopeImplementer(this);
|
|
1639
|
-
stub_cache_ = new StubCache(this);
|
|
1640
|
-
ast_sentinels_ = new AstSentinels();
|
|
1641
|
-
regexp_stack_ = new RegExpStack();
|
|
1642
|
-
regexp_stack_->isolate_ = this;
|
|
1643
|
-
|
|
1644
|
-
#ifdef ENABLE_LOGGING_AND_PROFILING
|
|
1645
|
-
producer_heap_profile_ = new ProducerHeapProfile();
|
|
1646
|
-
producer_heap_profile_->isolate_ = this;
|
|
1647
|
-
#endif
|
|
1648
|
-
|
|
1649
|
-
state_ = PREINITIALIZED;
|
|
1650
|
-
return true;
|
|
1651
|
-
}
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
1615
|
void Isolate::InitializeThreadLocal() {
|
|
1655
1616
|
thread_local_top_.isolate_ = this;
|
|
1656
1617
|
thread_local_top_.Initialize();
|
|
@@ -1687,19 +1648,71 @@ void Isolate::PropagatePendingExceptionToExternalTryCatch() {
|
|
|
1687
1648
|
}
|
|
1688
1649
|
|
|
1689
1650
|
|
|
1651
|
+
void Isolate::InitializeLoggingAndCounters() {
|
|
1652
|
+
if (logger_ == NULL) {
|
|
1653
|
+
logger_ = new Logger;
|
|
1654
|
+
}
|
|
1655
|
+
if (counters_ == NULL) {
|
|
1656
|
+
counters_ = new Counters;
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
void Isolate::InitializeDebugger() {
|
|
1662
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
|
1663
|
+
ScopedLock lock(debugger_access_);
|
|
1664
|
+
if (NoBarrier_Load(&debugger_initialized_)) return;
|
|
1665
|
+
InitializeLoggingAndCounters();
|
|
1666
|
+
debug_ = new Debug(this);
|
|
1667
|
+
debugger_ = new Debugger(this);
|
|
1668
|
+
Release_Store(&debugger_initialized_, true);
|
|
1669
|
+
#endif
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
|
|
1690
1673
|
bool Isolate::Init(Deserializer* des) {
|
|
1691
1674
|
ASSERT(state_ != INITIALIZED);
|
|
1692
|
-
|
|
1675
|
+
ASSERT(Isolate::Current() == this);
|
|
1693
1676
|
TRACE_ISOLATE(init);
|
|
1694
1677
|
|
|
1695
|
-
bool create_heap_objects = des == NULL;
|
|
1696
|
-
|
|
1697
1678
|
#ifdef DEBUG
|
|
1698
1679
|
// The initialization process does not handle memory exhaustion.
|
|
1699
1680
|
DisallowAllocationFailure disallow_allocation_failure;
|
|
1700
1681
|
#endif
|
|
1701
1682
|
|
|
1702
|
-
|
|
1683
|
+
InitializeLoggingAndCounters();
|
|
1684
|
+
|
|
1685
|
+
InitializeDebugger();
|
|
1686
|
+
|
|
1687
|
+
memory_allocator_ = new MemoryAllocator(this);
|
|
1688
|
+
code_range_ = new CodeRange(this);
|
|
1689
|
+
|
|
1690
|
+
// Safe after setting Heap::isolate_, initializing StackGuard and
|
|
1691
|
+
// ensuring that Isolate::Current() == this.
|
|
1692
|
+
heap_.SetStackLimits();
|
|
1693
|
+
|
|
1694
|
+
#define C(name) isolate_addresses_[Isolate::k_##name] = \
|
|
1695
|
+
reinterpret_cast<Address>(name());
|
|
1696
|
+
ISOLATE_ADDRESS_LIST(C)
|
|
1697
|
+
#undef C
|
|
1698
|
+
|
|
1699
|
+
string_tracker_ = new StringTracker();
|
|
1700
|
+
string_tracker_->isolate_ = this;
|
|
1701
|
+
compilation_cache_ = new CompilationCache(this);
|
|
1702
|
+
transcendental_cache_ = new TranscendentalCache();
|
|
1703
|
+
keyed_lookup_cache_ = new KeyedLookupCache();
|
|
1704
|
+
context_slot_cache_ = new ContextSlotCache();
|
|
1705
|
+
descriptor_lookup_cache_ = new DescriptorLookupCache();
|
|
1706
|
+
unicode_cache_ = new UnicodeCache();
|
|
1707
|
+
pc_to_code_cache_ = new PcToCodeCache(this);
|
|
1708
|
+
write_input_buffer_ = new StringInputBuffer();
|
|
1709
|
+
global_handles_ = new GlobalHandles(this);
|
|
1710
|
+
bootstrapper_ = new Bootstrapper();
|
|
1711
|
+
handle_scope_implementer_ = new HandleScopeImplementer(this);
|
|
1712
|
+
stub_cache_ = new StubCache(this);
|
|
1713
|
+
ast_sentinels_ = new AstSentinels();
|
|
1714
|
+
regexp_stack_ = new RegExpStack();
|
|
1715
|
+
regexp_stack_->isolate_ = this;
|
|
1703
1716
|
|
|
1704
1717
|
// Enable logging before setting up the heap
|
|
1705
1718
|
logger_->Setup();
|
|
@@ -1722,18 +1735,19 @@ bool Isolate::Init(Deserializer* des) {
|
|
|
1722
1735
|
stack_guard_.InitThread(lock);
|
|
1723
1736
|
}
|
|
1724
1737
|
|
|
1725
|
-
// Setup the object heap
|
|
1738
|
+
// Setup the object heap.
|
|
1739
|
+
const bool create_heap_objects = (des == NULL);
|
|
1726
1740
|
ASSERT(!heap_.HasBeenSetup());
|
|
1727
1741
|
if (!heap_.Setup(create_heap_objects)) {
|
|
1728
1742
|
V8::SetFatalError();
|
|
1729
1743
|
return false;
|
|
1730
1744
|
}
|
|
1731
1745
|
|
|
1746
|
+
InitializeThreadLocal();
|
|
1747
|
+
|
|
1732
1748
|
bootstrapper_->Initialize(create_heap_objects);
|
|
1733
1749
|
builtins_.Setup(create_heap_objects);
|
|
1734
1750
|
|
|
1735
|
-
InitializeThreadLocal();
|
|
1736
|
-
|
|
1737
1751
|
// Only preallocate on the first initialization.
|
|
1738
1752
|
if (FLAG_preallocate_message_memory && preallocated_message_space_ == NULL) {
|
|
1739
1753
|
// Start the thread which will set aside some memory.
|
|
@@ -1782,6 +1796,16 @@ bool Isolate::Init(Deserializer* des) {
|
|
|
1782
1796
|
}
|
|
1783
1797
|
|
|
1784
1798
|
|
|
1799
|
+
// Initialized lazily to allow early
|
|
1800
|
+
// v8::V8::SetAddHistogramSampleFunction calls.
|
|
1801
|
+
StatsTable* Isolate::stats_table() {
|
|
1802
|
+
if (stats_table_ == NULL) {
|
|
1803
|
+
stats_table_ = new StatsTable;
|
|
1804
|
+
}
|
|
1805
|
+
return stats_table_;
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1808
|
+
|
|
1785
1809
|
void Isolate::Enter() {
|
|
1786
1810
|
Isolate* current_isolate = NULL;
|
|
1787
1811
|
PerIsolateThreadData* current_data = CurrentPerIsolateThreadData();
|
|
@@ -1821,8 +1845,6 @@ void Isolate::Enter() {
|
|
|
1821
1845
|
|
|
1822
1846
|
SetIsolateThreadLocals(this, data);
|
|
1823
1847
|
|
|
1824
|
-
CHECK(PreInit());
|
|
1825
|
-
|
|
1826
1848
|
// In case it's the first time some thread enters the isolate.
|
|
1827
1849
|
set_thread_id(data->thread_id());
|
|
1828
1850
|
}
|
|
@@ -1853,11 +1875,6 @@ void Isolate::Exit() {
|
|
|
1853
1875
|
}
|
|
1854
1876
|
|
|
1855
1877
|
|
|
1856
|
-
void Isolate::ResetEagerOptimizingData() {
|
|
1857
|
-
compilation_cache_->ResetEagerOptimizingData();
|
|
1858
|
-
}
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
1878
|
#ifdef DEBUG
|
|
1862
1879
|
#define ISOLATE_FIELD_OFFSET(type, name, ignored) \
|
|
1863
1880
|
const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_);
|