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
|
@@ -162,9 +162,6 @@ class GlobalHandles {
|
|
|
162
162
|
// Iterates over all strong handles.
|
|
163
163
|
void IterateStrongRoots(ObjectVisitor* v);
|
|
164
164
|
|
|
165
|
-
// Iterates over all strong and dependent handles.
|
|
166
|
-
void IterateStrongAndDependentRoots(ObjectVisitor* v);
|
|
167
|
-
|
|
168
165
|
// Iterates over all handles.
|
|
169
166
|
void IterateAllRoots(ObjectVisitor* v);
|
|
170
167
|
|
|
@@ -174,9 +171,6 @@ class GlobalHandles {
|
|
|
174
171
|
// Iterates over all weak roots in heap.
|
|
175
172
|
void IterateWeakRoots(ObjectVisitor* v);
|
|
176
173
|
|
|
177
|
-
// Iterates over all weak independent roots in heap.
|
|
178
|
-
void IterateWeakIndependentRoots(ObjectVisitor* v);
|
|
179
|
-
|
|
180
174
|
// Iterates over weak roots that are bound to a given callback.
|
|
181
175
|
void IterateWeakRoots(WeakReferenceGuest f,
|
|
182
176
|
WeakReferenceCallback callback);
|
|
@@ -185,9 +179,20 @@ class GlobalHandles {
|
|
|
185
179
|
// them as pending.
|
|
186
180
|
void IdentifyWeakHandles(WeakSlotCallback f);
|
|
187
181
|
|
|
188
|
-
//
|
|
189
|
-
//
|
|
190
|
-
|
|
182
|
+
// NOTE: Three ...NewSpace... functions below are used during
|
|
183
|
+
// scavenge collections and iterate over sets of handles that are
|
|
184
|
+
// guaranteed to contain all handles holding new space objects (but
|
|
185
|
+
// may also include old space objects).
|
|
186
|
+
|
|
187
|
+
// Iterates over strong and dependent handles. See the node above.
|
|
188
|
+
void IterateNewSpaceStrongAndDependentRoots(ObjectVisitor* v);
|
|
189
|
+
|
|
190
|
+
// Finds weak independent handles satisfying the callback predicate
|
|
191
|
+
// and marks them as pending. See the note above.
|
|
192
|
+
void IdentifyNewSpaceWeakIndependentHandles(WeakSlotCallbackWithHeap f);
|
|
193
|
+
|
|
194
|
+
// Iterates over weak independent handles. See the note above.
|
|
195
|
+
void IterateNewSpaceWeakIndependentRoots(ObjectVisitor* v);
|
|
191
196
|
|
|
192
197
|
// Add an object group.
|
|
193
198
|
// Should be only used in GC callback function before a collection.
|
|
@@ -224,12 +229,14 @@ class GlobalHandles {
|
|
|
224
229
|
void PrintStats();
|
|
225
230
|
void Print();
|
|
226
231
|
#endif
|
|
227
|
-
|
|
232
|
+
|
|
228
233
|
private:
|
|
229
234
|
explicit GlobalHandles(Isolate* isolate);
|
|
230
235
|
|
|
231
|
-
// Internal node
|
|
236
|
+
// Internal node structures.
|
|
232
237
|
class Node;
|
|
238
|
+
class NodeBlock;
|
|
239
|
+
class NodeIterator;
|
|
233
240
|
|
|
234
241
|
Isolate* isolate_;
|
|
235
242
|
|
|
@@ -241,35 +248,21 @@ class GlobalHandles {
|
|
|
241
248
|
// number_of_weak_handles_.
|
|
242
249
|
int number_of_global_object_weak_handles_;
|
|
243
250
|
|
|
244
|
-
//
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
251
|
+
// List of all allocated node blocks.
|
|
252
|
+
NodeBlock* first_block_;
|
|
253
|
+
|
|
254
|
+
// List of node blocks with used nodes.
|
|
255
|
+
NodeBlock* first_used_block_;
|
|
248
256
|
|
|
249
|
-
// Free list
|
|
257
|
+
// Free list of nodes.
|
|
250
258
|
Node* first_free_;
|
|
251
|
-
Node* first_free() { return first_free_; }
|
|
252
|
-
void set_first_free(Node* value) { first_free_ = value; }
|
|
253
|
-
|
|
254
|
-
// List of deallocated nodes.
|
|
255
|
-
// Deallocated nodes form a prefix of all the nodes and
|
|
256
|
-
// |first_deallocated| points to last deallocated node before
|
|
257
|
-
// |head|. Those deallocated nodes are additionally linked
|
|
258
|
-
// by |next_free|:
|
|
259
|
-
// 1st deallocated head
|
|
260
|
-
// | |
|
|
261
|
-
// V V
|
|
262
|
-
// node node ... node node
|
|
263
|
-
// .next -> .next -> .next ->
|
|
264
|
-
// <- .next_free <- .next_free <- .next_free
|
|
265
|
-
Node* first_deallocated_;
|
|
266
|
-
Node* first_deallocated() { return first_deallocated_; }
|
|
267
|
-
void set_first_deallocated(Node* value) {
|
|
268
|
-
first_deallocated_ = value;
|
|
269
|
-
}
|
|
270
259
|
|
|
271
|
-
|
|
260
|
+
// Contains all nodes holding new space objects. Note: when the list
|
|
261
|
+
// is accessed, some of the objects may have been promoted already.
|
|
262
|
+
List<Node*> new_space_nodes_;
|
|
263
|
+
|
|
272
264
|
int post_gc_processing_count_;
|
|
265
|
+
|
|
273
266
|
List<ObjectGroup*> object_groups_;
|
|
274
267
|
List<ImplicitRefGroup*> implicit_ref_groups_;
|
|
275
268
|
|
data/lib/libv8/v8/src/globals.h
CHANGED
|
@@ -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:
|
|
@@ -199,6 +199,8 @@ const int kDoubleSize = sizeof(double); // NOLINT
|
|
|
199
199
|
const int kIntptrSize = sizeof(intptr_t); // NOLINT
|
|
200
200
|
const int kPointerSize = sizeof(void*); // NOLINT
|
|
201
201
|
|
|
202
|
+
const int kDoubleSizeLog2 = 3;
|
|
203
|
+
|
|
202
204
|
#if V8_HOST_ARCH_64_BIT
|
|
203
205
|
const int kPointerSizeLog2 = 3;
|
|
204
206
|
const intptr_t kIntptrSignBit = V8_INT64_C(0x8000000000000000);
|
data/lib/libv8/v8/src/handles.cc
CHANGED
|
@@ -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:
|
|
@@ -214,9 +214,10 @@ void NormalizeProperties(Handle<JSObject> object,
|
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
217
|
+
Handle<NumberDictionary> NormalizeElements(Handle<JSObject> object) {
|
|
218
|
+
CALL_HEAP_FUNCTION(object->GetIsolate(),
|
|
219
|
+
object->NormalizeElements(),
|
|
220
|
+
NumberDictionary);
|
|
220
221
|
}
|
|
221
222
|
|
|
222
223
|
|
|
@@ -228,12 +229,14 @@ void TransformToFastProperties(Handle<JSObject> object,
|
|
|
228
229
|
}
|
|
229
230
|
|
|
230
231
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
232
|
+
Handle<NumberDictionary> NumberDictionarySet(
|
|
233
|
+
Handle<NumberDictionary> dictionary,
|
|
234
|
+
uint32_t index,
|
|
235
|
+
Handle<Object> value,
|
|
236
|
+
PropertyDetails details) {
|
|
237
|
+
CALL_HEAP_FUNCTION(dictionary->GetIsolate(),
|
|
238
|
+
dictionary->Set(index, *value, details),
|
|
239
|
+
NumberDictionary);
|
|
237
240
|
}
|
|
238
241
|
|
|
239
242
|
|
|
@@ -258,7 +261,7 @@ Handle<Object> SetPrototype(Handle<JSFunction> function,
|
|
|
258
261
|
}
|
|
259
262
|
|
|
260
263
|
|
|
261
|
-
Handle<Object> SetProperty(Handle<
|
|
264
|
+
Handle<Object> SetProperty(Handle<JSReceiver> object,
|
|
262
265
|
Handle<String> key,
|
|
263
266
|
Handle<Object> value,
|
|
264
267
|
PropertyAttributes attributes,
|
|
@@ -353,7 +356,7 @@ Handle<Object> SetPropertyWithInterceptor(Handle<JSObject> object,
|
|
|
353
356
|
}
|
|
354
357
|
|
|
355
358
|
|
|
356
|
-
Handle<Object> GetProperty(Handle<
|
|
359
|
+
Handle<Object> GetProperty(Handle<JSReceiver> obj,
|
|
357
360
|
const char* name) {
|
|
358
361
|
Isolate* isolate = obj->GetIsolate();
|
|
359
362
|
Handle<String> str = isolate->factory()->LookupAsciiSymbol(name);
|
|
@@ -361,17 +364,6 @@ Handle<Object> GetProperty(Handle<JSObject> obj,
|
|
|
361
364
|
}
|
|
362
365
|
|
|
363
366
|
|
|
364
|
-
Handle<Object> GetProperty(Handle<Object> obj,
|
|
365
|
-
const char* name,
|
|
366
|
-
LookupResult* result) {
|
|
367
|
-
Isolate* isolate = Isolate::Current();
|
|
368
|
-
Handle<String> str = isolate->factory()->LookupAsciiSymbol(name);
|
|
369
|
-
PropertyAttributes attributes;
|
|
370
|
-
CALL_HEAP_FUNCTION(
|
|
371
|
-
isolate, obj->GetProperty(*obj, result, *str, &attributes), Object);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
|
|
375
367
|
Handle<Object> GetProperty(Handle<Object> obj,
|
|
376
368
|
Handle<Object> key) {
|
|
377
369
|
Isolate* isolate = Isolate::Current();
|
|
@@ -380,7 +372,7 @@ Handle<Object> GetProperty(Handle<Object> obj,
|
|
|
380
372
|
}
|
|
381
373
|
|
|
382
374
|
|
|
383
|
-
Handle<Object> GetProperty(Handle<
|
|
375
|
+
Handle<Object> GetProperty(Handle<JSReceiver> obj,
|
|
384
376
|
Handle<String> name,
|
|
385
377
|
LookupResult* result) {
|
|
386
378
|
PropertyAttributes attributes;
|
|
@@ -430,43 +422,18 @@ Handle<Object> PreventExtensions(Handle<JSObject> object) {
|
|
|
430
422
|
|
|
431
423
|
|
|
432
424
|
Handle<Object> GetHiddenProperties(Handle<JSObject> obj,
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
if (obj->HasFastProperties()) {
|
|
440
|
-
// If the object has fast properties, check whether the first slot
|
|
441
|
-
// in the descriptor array matches the hidden symbol. Since the
|
|
442
|
-
// hidden symbols hash code is zero (and no other string has hash
|
|
443
|
-
// code zero) it will always occupy the first entry if present.
|
|
444
|
-
DescriptorArray* descriptors = obj->map()->instance_descriptors();
|
|
445
|
-
if ((descriptors->number_of_descriptors() > 0) &&
|
|
446
|
-
(descriptors->GetKey(0) == isolate->heap()->hidden_symbol()) &&
|
|
447
|
-
descriptors->IsProperty(0)) {
|
|
448
|
-
ASSERT(descriptors->GetType(0) == FIELD);
|
|
449
|
-
return Handle<Object>(obj->FastPropertyAt(descriptors->GetFieldIndex(0)),
|
|
450
|
-
isolate);
|
|
451
|
-
}
|
|
452
|
-
}
|
|
425
|
+
JSObject::HiddenPropertiesFlag flag) {
|
|
426
|
+
CALL_HEAP_FUNCTION(obj->GetIsolate(),
|
|
427
|
+
obj->GetHiddenProperties(flag),
|
|
428
|
+
Object);
|
|
429
|
+
}
|
|
453
430
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
if (create_if_needed) {
|
|
461
|
-
Handle<Object> hidden_obj =
|
|
462
|
-
isolate->factory()->NewJSObject(isolate->object_function());
|
|
463
|
-
CALL_HEAP_FUNCTION(isolate,
|
|
464
|
-
obj->SetHiddenPropertiesObject(*hidden_obj), Object);
|
|
465
|
-
} else {
|
|
466
|
-
return isolate->factory()->undefined_value();
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
return Handle<Object>(obj->GetHiddenPropertiesObject(), isolate);
|
|
431
|
+
|
|
432
|
+
int GetIdentityHash(Handle<JSObject> obj) {
|
|
433
|
+
CALL_AND_RETRY(obj->GetIsolate(),
|
|
434
|
+
obj->GetIdentityHash(JSObject::ALLOW_CREATION),
|
|
435
|
+
return Smi::cast(__object__)->value(),
|
|
436
|
+
return 0);
|
|
470
437
|
}
|
|
471
438
|
|
|
472
439
|
|
|
@@ -516,7 +483,8 @@ Handle<Object> SetElement(Handle<JSObject> object,
|
|
|
516
483
|
}
|
|
517
484
|
}
|
|
518
485
|
CALL_HEAP_FUNCTION(object->GetIsolate(),
|
|
519
|
-
object->SetElement(index, *value, strict_mode
|
|
486
|
+
object->SetElement(index, *value, strict_mode, true),
|
|
487
|
+
Object);
|
|
520
488
|
}
|
|
521
489
|
|
|
522
490
|
|
|
@@ -550,11 +518,6 @@ Handle<Object> SetAccessor(Handle<JSObject> obj, Handle<AccessorInfo> info) {
|
|
|
550
518
|
// associated with the wrapper and get rid of both the wrapper and the
|
|
551
519
|
// handle.
|
|
552
520
|
static void ClearWrapperCache(Persistent<v8::Value> handle, void*) {
|
|
553
|
-
#ifdef ENABLE_HEAP_PROTECTION
|
|
554
|
-
// Weak reference callbacks are called as if from outside V8. We
|
|
555
|
-
// need to reeenter to unprotect the heap.
|
|
556
|
-
VMState state(OTHER);
|
|
557
|
-
#endif
|
|
558
521
|
Handle<Object> cache = Utils::OpenHandle(*handle);
|
|
559
522
|
JSValue* wrapper = JSValue::cast(*cache);
|
|
560
523
|
Foreign* foreign = Script::cast(wrapper->value())->wrapper();
|
|
@@ -654,15 +617,17 @@ Handle<FixedArray> CalculateLineEnds(Handle<String> src,
|
|
|
654
617
|
{
|
|
655
618
|
AssertNoAllocation no_heap_allocation; // ensure vectors stay valid.
|
|
656
619
|
// Dispatch on type of strings.
|
|
657
|
-
|
|
620
|
+
String::FlatContent content = src->GetFlatContent();
|
|
621
|
+
ASSERT(content.IsFlat());
|
|
622
|
+
if (content.IsAscii()) {
|
|
658
623
|
CalculateLineEnds(isolate,
|
|
659
624
|
&line_ends,
|
|
660
|
-
|
|
625
|
+
content.ToAsciiVector(),
|
|
661
626
|
with_last_line);
|
|
662
627
|
} else {
|
|
663
628
|
CalculateLineEnds(isolate,
|
|
664
629
|
&line_ends,
|
|
665
|
-
|
|
630
|
+
content.ToUC16Vector(),
|
|
666
631
|
with_last_line);
|
|
667
632
|
}
|
|
668
633
|
}
|
|
@@ -920,6 +885,15 @@ Handle<FixedArray> GetEnumPropertyKeys(Handle<JSObject> object,
|
|
|
920
885
|
}
|
|
921
886
|
|
|
922
887
|
|
|
888
|
+
Handle<ObjectHashTable> PutIntoObjectHashTable(Handle<ObjectHashTable> table,
|
|
889
|
+
Handle<JSObject> key,
|
|
890
|
+
Handle<Object> value) {
|
|
891
|
+
CALL_HEAP_FUNCTION(table->GetIsolate(),
|
|
892
|
+
table->Put(*key, *value),
|
|
893
|
+
ObjectHashTable);
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
|
|
923
897
|
bool EnsureCompiled(Handle<SharedFunctionInfo> shared,
|
|
924
898
|
ClearExceptionFlag flag) {
|
|
925
899
|
return shared->is_compiled() || CompileLazyShared(shared, flag);
|
data/lib/libv8/v8/src/handles.h
CHANGED
|
@@ -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:
|
|
@@ -170,13 +170,14 @@ class HandleScope {
|
|
|
170
170
|
void NormalizeProperties(Handle<JSObject> object,
|
|
171
171
|
PropertyNormalizationMode mode,
|
|
172
172
|
int expected_additional_properties);
|
|
173
|
-
|
|
173
|
+
Handle<NumberDictionary> NormalizeElements(Handle<JSObject> object);
|
|
174
174
|
void TransformToFastProperties(Handle<JSObject> object,
|
|
175
175
|
int unused_property_fields);
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
176
|
+
MUST_USE_RESULT Handle<NumberDictionary> NumberDictionarySet(
|
|
177
|
+
Handle<NumberDictionary> dictionary,
|
|
178
|
+
uint32_t index,
|
|
179
|
+
Handle<Object> value,
|
|
180
|
+
PropertyDetails details);
|
|
180
181
|
|
|
181
182
|
// Flattens a string.
|
|
182
183
|
void FlattenString(Handle<String> str);
|
|
@@ -185,7 +186,7 @@ void FlattenString(Handle<String> str);
|
|
|
185
186
|
// string.
|
|
186
187
|
Handle<String> FlattenGetString(Handle<String> str);
|
|
187
188
|
|
|
188
|
-
Handle<Object> SetProperty(Handle<
|
|
189
|
+
Handle<Object> SetProperty(Handle<JSReceiver> object,
|
|
189
190
|
Handle<String> key,
|
|
190
191
|
Handle<Object> value,
|
|
191
192
|
PropertyAttributes attributes,
|
|
@@ -239,17 +240,13 @@ Handle<Object> SetOwnElement(Handle<JSObject> object,
|
|
|
239
240
|
Handle<Object> value,
|
|
240
241
|
StrictModeFlag strict_mode);
|
|
241
242
|
|
|
242
|
-
Handle<Object> GetProperty(Handle<
|
|
243
|
+
Handle<Object> GetProperty(Handle<JSReceiver> obj,
|
|
243
244
|
const char* name);
|
|
244
245
|
|
|
245
|
-
Handle<Object> GetProperty(Handle<Object> obj,
|
|
246
|
-
const char* name,
|
|
247
|
-
LookupResult* result);
|
|
248
|
-
|
|
249
246
|
Handle<Object> GetProperty(Handle<Object> obj,
|
|
250
247
|
Handle<Object> key);
|
|
251
248
|
|
|
252
|
-
Handle<Object> GetProperty(Handle<
|
|
249
|
+
Handle<Object> GetProperty(Handle<JSReceiver> obj,
|
|
253
250
|
Handle<String> name,
|
|
254
251
|
LookupResult* result);
|
|
255
252
|
|
|
@@ -267,9 +264,13 @@ Handle<Object> GetPrototype(Handle<Object> obj);
|
|
|
267
264
|
Handle<Object> SetPrototype(Handle<JSObject> obj, Handle<Object> value);
|
|
268
265
|
|
|
269
266
|
// Return the object's hidden properties object. If the object has no hidden
|
|
270
|
-
// properties and
|
|
271
|
-
// will be allocated. Otherwise
|
|
272
|
-
|
|
267
|
+
// properties and HiddenPropertiesFlag::ALLOW_CREATION is passed, then a new
|
|
268
|
+
// hidden property object will be allocated. Otherwise Heap::undefined_value
|
|
269
|
+
// is returned.
|
|
270
|
+
Handle<Object> GetHiddenProperties(Handle<JSObject> obj,
|
|
271
|
+
JSObject::HiddenPropertiesFlag flag);
|
|
272
|
+
|
|
273
|
+
int GetIdentityHash(Handle<JSObject> obj);
|
|
273
274
|
|
|
274
275
|
Handle<Object> DeleteElement(Handle<JSObject> obj, uint32_t index);
|
|
275
276
|
Handle<Object> DeleteProperty(Handle<JSObject> obj, Handle<String> prop);
|
|
@@ -346,6 +347,10 @@ Handle<Object> SetPrototype(Handle<JSFunction> function,
|
|
|
346
347
|
|
|
347
348
|
Handle<Object> PreventExtensions(Handle<JSObject> object);
|
|
348
349
|
|
|
350
|
+
Handle<ObjectHashTable> PutIntoObjectHashTable(Handle<ObjectHashTable> table,
|
|
351
|
+
Handle<JSObject> key,
|
|
352
|
+
Handle<Object> value);
|
|
353
|
+
|
|
349
354
|
// Does lazy compilation of the given function. Returns true on success and
|
|
350
355
|
// false if the compilation resulted in a stack overflow.
|
|
351
356
|
enum ClearExceptionFlag { KEEP_EXCEPTION, CLEAR_EXCEPTION };
|
data/lib/libv8/v8/src/heap-inl.h
CHANGED
|
@@ -142,6 +142,11 @@ MaybeObject* Heap::CopyFixedArray(FixedArray* src) {
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
|
|
145
|
+
MaybeObject* Heap::CopyFixedDoubleArray(FixedDoubleArray* src) {
|
|
146
|
+
return CopyFixedDoubleArrayWithMap(src, src->map());
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
|
|
145
150
|
MaybeObject* Heap::AllocateRaw(int size_in_bytes,
|
|
146
151
|
AllocationSpace space,
|
|
147
152
|
AllocationSpace retry_space) {
|
|
@@ -318,10 +323,10 @@ AllocationSpace Heap::TargetSpaceId(InstanceType type) {
|
|
|
318
323
|
ASSERT(type != JS_GLOBAL_PROPERTY_CELL_TYPE);
|
|
319
324
|
|
|
320
325
|
if (type < FIRST_NONSTRING_TYPE) {
|
|
321
|
-
// There are
|
|
322
|
-
// strings, and
|
|
323
|
-
// non-map-word pointers to heap objects.
|
|
324
|
-
return ((type &
|
|
326
|
+
// There are four string representations: sequential strings, external
|
|
327
|
+
// strings, cons strings, and sliced strings.
|
|
328
|
+
// Only the latter two contain non-map-word pointers to heap objects.
|
|
329
|
+
return ((type & kIsIndirectStringMask) == kIsIndirectStringTag)
|
|
325
330
|
? OLD_POINTER_SPACE
|
|
326
331
|
: OLD_DATA_SPACE;
|
|
327
332
|
} else {
|
|
@@ -368,11 +373,7 @@ void Heap::MoveBlock(Address dst, Address src, int byte_size) {
|
|
|
368
373
|
|
|
369
374
|
int size_in_words = byte_size / kPointerSize;
|
|
370
375
|
|
|
371
|
-
if ((dst < src) || (dst >= (src +
|
|
372
|
-
ASSERT((dst >= (src + size_in_words)) ||
|
|
373
|
-
((OffsetFrom(reinterpret_cast<Address>(src)) -
|
|
374
|
-
OffsetFrom(reinterpret_cast<Address>(dst))) >= kPointerSize));
|
|
375
|
-
|
|
376
|
+
if ((dst < src) || (dst >= (src + byte_size))) {
|
|
376
377
|
Object** src_slot = reinterpret_cast<Object**>(src);
|
|
377
378
|
Object** dst_slot = reinterpret_cast<Object**>(dst);
|
|
378
379
|
Object** end_slot = src_slot + size_in_words;
|
|
@@ -390,8 +391,7 @@ void Heap::MoveBlockToOldSpaceAndUpdateRegionMarks(Address dst,
|
|
|
390
391
|
Address src,
|
|
391
392
|
int byte_size) {
|
|
392
393
|
ASSERT(IsAligned(byte_size, kPointerSize));
|
|
393
|
-
ASSERT((dst >= (src + byte_size))
|
|
394
|
-
((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize));
|
|
394
|
+
ASSERT((dst < src) || (dst >= (src + byte_size)));
|
|
395
395
|
|
|
396
396
|
CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
|
|
397
397
|
}
|
|
@@ -531,8 +531,6 @@ Isolate* Heap::isolate() {
|
|
|
531
531
|
} while (false)
|
|
532
532
|
|
|
533
533
|
|
|
534
|
-
// TODO(isolates): cache isolate: either accept as a parameter or
|
|
535
|
-
// set to some known symbol (__CUR_ISOLATE__?)
|
|
536
534
|
#define CALL_HEAP_FUNCTION(ISOLATE, FUNCTION_CALL, TYPE) \
|
|
537
535
|
CALL_AND_RETRY(ISOLATE, \
|
|
538
536
|
FUNCTION_CALL, \
|