therubyracer 0.9.0beta4 → 0.9.0beta5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of therubyracer might be problematic. Click here for more details.
- data/.gitignore +1 -0
- data/Rakefile +0 -11
- data/ext/v8/extconf.rb +9 -9
- data/ext/v8/v8_external.cpp +40 -10
- data/lib/v8/cli.rb +2 -1
- data/lib/v8/version.rb +1 -1
- data/spec/redjs/.gitignore +1 -0
- data/therubyracer.gemspec +2 -3
- metadata +33 -779
- data/ext/v8/upstream/Makefile +0 -38
- data/ext/v8/upstream/detect_cpu.rb +0 -27
- data/ext/v8/upstream/fpic-on-linux-amd64.patch +0 -13
- data/ext/v8/upstream/scons/CHANGES.txt +0 -5183
- data/ext/v8/upstream/scons/LICENSE.txt +0 -20
- data/ext/v8/upstream/scons/MANIFEST +0 -202
- data/ext/v8/upstream/scons/PKG-INFO +0 -13
- data/ext/v8/upstream/scons/README.txt +0 -273
- data/ext/v8/upstream/scons/RELEASE.txt +0 -1040
- data/ext/v8/upstream/scons/engine/SCons/Action.py +0 -1256
- data/ext/v8/upstream/scons/engine/SCons/Builder.py +0 -868
- data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +0 -217
- data/ext/v8/upstream/scons/engine/SCons/Conftest.py +0 -794
- data/ext/v8/upstream/scons/engine/SCons/Debug.py +0 -237
- data/ext/v8/upstream/scons/engine/SCons/Defaults.py +0 -485
- data/ext/v8/upstream/scons/engine/SCons/Environment.py +0 -2327
- data/ext/v8/upstream/scons/engine/SCons/Errors.py +0 -207
- data/ext/v8/upstream/scons/engine/SCons/Executor.py +0 -636
- data/ext/v8/upstream/scons/engine/SCons/Job.py +0 -435
- data/ext/v8/upstream/scons/engine/SCons/Memoize.py +0 -292
- data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +0 -153
- data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +0 -3220
- data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +0 -128
- data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +0 -1341
- data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +0 -76
- data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +0 -74
- data/ext/v8/upstream/scons/engine/SCons/PathList.py +0 -232
- data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +0 -236
- data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +0 -70
- data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +0 -55
- data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +0 -46
- data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +0 -46
- data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +0 -264
- data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +0 -386
- data/ext/v8/upstream/scons/engine/SCons/SConf.py +0 -1038
- data/ext/v8/upstream/scons/engine/SCons/SConsign.py +0 -381
- data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +0 -132
- data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +0 -74
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +0 -111
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +0 -320
- data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +0 -48
- data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +0 -378
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +0 -103
- data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +0 -55
- data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +0 -415
- data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +0 -386
- data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +0 -1360
- data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +0 -944
- data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +0 -642
- data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +0 -414
- data/ext/v8/upstream/scons/engine/SCons/Sig.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Subst.py +0 -911
- data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +0 -1030
- data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +0 -61
- data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +0 -65
- data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +0 -73
- data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +0 -247
- data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +0 -324
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +0 -56
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +0 -61
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +0 -210
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +0 -84
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +0 -321
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +0 -367
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +0 -497
- data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +0 -104
- data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +0 -138
- data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +0 -71
- data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +0 -675
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +0 -82
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +0 -74
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +0 -80
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +0 -76
- data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +0 -71
- data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +0 -78
- data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +0 -82
- data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +0 -99
- data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +0 -114
- data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +0 -224
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +0 -125
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +0 -94
- data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +0 -62
- data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +0 -62
- data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +0 -98
- data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +0 -90
- data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +0 -73
- data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +0 -80
- data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +0 -81
- data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +0 -85
- data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +0 -77
- data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +0 -59
- data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +0 -52
- data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +0 -72
- data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +0 -90
- data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +0 -59
- data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +0 -60
- data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +0 -229
- data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +0 -490
- data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +0 -71
- data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +0 -110
- data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +0 -234
- data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +0 -138
- data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +0 -79
- data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +0 -99
- data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +0 -121
- data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +0 -112
- data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +0 -77
- data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +0 -90
- data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +0 -159
- data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +0 -266
- data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +0 -50
- data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +0 -269
- data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +0 -1439
- data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +0 -208
- data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +0 -107
- data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +0 -72
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +0 -314
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +0 -185
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +0 -526
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +0 -367
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +0 -43
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +0 -43
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +0 -43
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +0 -44
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +0 -78
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +0 -83
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +0 -108
- data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +0 -336
- data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +0 -121
- data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +0 -70
- data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +0 -132
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +0 -68
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +0 -67
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +0 -142
- data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +0 -58
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +0 -63
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +0 -64
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +0 -77
- data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +0 -186
- data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +0 -73
- data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +0 -805
- data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +0 -175
- data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +0 -53
- data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +0 -100
- data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +0 -131
- data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +0 -100
- data/ext/v8/upstream/scons/engine/SCons/Util.py +0 -1645
- data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +0 -91
- data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +0 -107
- data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +0 -139
- data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +0 -109
- data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +0 -147
- data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +0 -317
- data/ext/v8/upstream/scons/engine/SCons/Warnings.py +0 -228
- data/ext/v8/upstream/scons/engine/SCons/__init__.py +0 -49
- data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +0 -302
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +0 -98
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +0 -91
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +0 -124
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +0 -1725
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +0 -583
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +0 -176
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +0 -325
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +0 -1296
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +0 -382
- data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +0 -187
- data/ext/v8/upstream/scons/engine/SCons/cpp.py +0 -598
- data/ext/v8/upstream/scons/engine/SCons/dblite.py +0 -248
- data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +0 -77
- data/ext/v8/upstream/scons/os_spawnv_fix.diff +0 -83
- data/ext/v8/upstream/scons/scons-time.1 +0 -1017
- data/ext/v8/upstream/scons/scons.1 +0 -15179
- data/ext/v8/upstream/scons/sconsign.1 +0 -208
- data/ext/v8/upstream/scons/script/scons +0 -184
- data/ext/v8/upstream/scons/script/scons-time +0 -1529
- data/ext/v8/upstream/scons/script/scons.bat +0 -31
- data/ext/v8/upstream/scons/script/sconsign +0 -508
- data/ext/v8/upstream/scons/setup.cfg +0 -6
- data/ext/v8/upstream/scons/setup.py +0 -427
- data/ext/v8/upstream/v8/.gitignore +0 -33
- data/ext/v8/upstream/v8/AUTHORS +0 -42
- data/ext/v8/upstream/v8/ChangeLog +0 -2663
- data/ext/v8/upstream/v8/LICENSE +0 -52
- data/ext/v8/upstream/v8/LICENSE.strongtalk +0 -29
- data/ext/v8/upstream/v8/LICENSE.v8 +0 -26
- data/ext/v8/upstream/v8/LICENSE.valgrind +0 -45
- data/ext/v8/upstream/v8/SConstruct +0 -1473
- data/ext/v8/upstream/v8/build/README.txt +0 -25
- data/ext/v8/upstream/v8/build/all.gyp +0 -18
- data/ext/v8/upstream/v8/build/armu.gypi +0 -32
- data/ext/v8/upstream/v8/build/common.gypi +0 -82
- data/ext/v8/upstream/v8/build/gyp_v8 +0 -145
- data/ext/v8/upstream/v8/include/v8-debug.h +0 -394
- data/ext/v8/upstream/v8/include/v8-preparser.h +0 -116
- data/ext/v8/upstream/v8/include/v8-profiler.h +0 -505
- data/ext/v8/upstream/v8/include/v8-testing.h +0 -104
- data/ext/v8/upstream/v8/include/v8.h +0 -4000
- data/ext/v8/upstream/v8/include/v8stdint.h +0 -53
- data/ext/v8/upstream/v8/preparser/SConscript +0 -38
- data/ext/v8/upstream/v8/preparser/preparser-process.cc +0 -169
- data/ext/v8/upstream/v8/src/SConscript +0 -380
- data/ext/v8/upstream/v8/src/accessors.cc +0 -766
- data/ext/v8/upstream/v8/src/accessors.h +0 -121
- data/ext/v8/upstream/v8/src/allocation-inl.h +0 -49
- data/ext/v8/upstream/v8/src/allocation.cc +0 -122
- data/ext/v8/upstream/v8/src/allocation.h +0 -143
- data/ext/v8/upstream/v8/src/api.cc +0 -5678
- data/ext/v8/upstream/v8/src/api.h +0 -572
- data/ext/v8/upstream/v8/src/apinatives.js +0 -110
- data/ext/v8/upstream/v8/src/apiutils.h +0 -73
- data/ext/v8/upstream/v8/src/arguments.h +0 -116
- data/ext/v8/upstream/v8/src/arm/assembler-arm-inl.h +0 -353
- data/ext/v8/upstream/v8/src/arm/assembler-arm.cc +0 -2877
- data/ext/v8/upstream/v8/src/arm/assembler-arm.h +0 -1382
- data/ext/v8/upstream/v8/src/arm/builtins-arm.cc +0 -1634
- data/ext/v8/upstream/v8/src/arm/code-stubs-arm.cc +0 -6917
- data/ext/v8/upstream/v8/src/arm/code-stubs-arm.h +0 -623
- data/ext/v8/upstream/v8/src/arm/codegen-arm-inl.h +0 -48
- data/ext/v8/upstream/v8/src/arm/codegen-arm.cc +0 -7437
- data/ext/v8/upstream/v8/src/arm/codegen-arm.h +0 -595
- data/ext/v8/upstream/v8/src/arm/constants-arm.cc +0 -152
- data/ext/v8/upstream/v8/src/arm/constants-arm.h +0 -778
- data/ext/v8/upstream/v8/src/arm/cpu-arm.cc +0 -149
- data/ext/v8/upstream/v8/src/arm/debug-arm.cc +0 -317
- data/ext/v8/upstream/v8/src/arm/deoptimizer-arm.cc +0 -737
- data/ext/v8/upstream/v8/src/arm/disasm-arm.cc +0 -1503
- data/ext/v8/upstream/v8/src/arm/frames-arm.cc +0 -45
- data/ext/v8/upstream/v8/src/arm/frames-arm.h +0 -168
- data/ext/v8/upstream/v8/src/arm/full-codegen-arm.cc +0 -4374
- data/ext/v8/upstream/v8/src/arm/ic-arm.cc +0 -1793
- data/ext/v8/upstream/v8/src/arm/jump-target-arm.cc +0 -174
- data/ext/v8/upstream/v8/src/arm/lithium-arm.cc +0 -2120
- data/ext/v8/upstream/v8/src/arm/lithium-arm.h +0 -2179
- data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.cc +0 -4132
- data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.h +0 -329
- data/ext/v8/upstream/v8/src/arm/lithium-gap-resolver-arm.cc +0 -305
- data/ext/v8/upstream/v8/src/arm/lithium-gap-resolver-arm.h +0 -84
- data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.cc +0 -2939
- data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.h +0 -1071
- data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.cc +0 -1287
- data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.h +0 -253
- data/ext/v8/upstream/v8/src/arm/register-allocator-arm-inl.h +0 -100
- data/ext/v8/upstream/v8/src/arm/register-allocator-arm.cc +0 -63
- data/ext/v8/upstream/v8/src/arm/register-allocator-arm.h +0 -44
- data/ext/v8/upstream/v8/src/arm/simulator-arm.cc +0 -3288
- data/ext/v8/upstream/v8/src/arm/simulator-arm.h +0 -413
- data/ext/v8/upstream/v8/src/arm/stub-cache-arm.cc +0 -4034
- data/ext/v8/upstream/v8/src/arm/virtual-frame-arm-inl.h +0 -59
- data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.cc +0 -843
- data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.h +0 -523
- data/ext/v8/upstream/v8/src/array.js +0 -1249
- data/ext/v8/upstream/v8/src/assembler.cc +0 -1067
- data/ext/v8/upstream/v8/src/assembler.h +0 -823
- data/ext/v8/upstream/v8/src/ast-inl.h +0 -112
- data/ext/v8/upstream/v8/src/ast.cc +0 -1078
- data/ext/v8/upstream/v8/src/ast.h +0 -2234
- data/ext/v8/upstream/v8/src/atomicops.h +0 -167
- data/ext/v8/upstream/v8/src/atomicops_internals_arm_gcc.h +0 -145
- data/ext/v8/upstream/v8/src/atomicops_internals_mips_gcc.h +0 -169
- data/ext/v8/upstream/v8/src/atomicops_internals_x86_gcc.cc +0 -126
- data/ext/v8/upstream/v8/src/atomicops_internals_x86_gcc.h +0 -287
- data/ext/v8/upstream/v8/src/atomicops_internals_x86_macosx.h +0 -301
- data/ext/v8/upstream/v8/src/atomicops_internals_x86_msvc.h +0 -203
- data/ext/v8/upstream/v8/src/bignum-dtoa.cc +0 -655
- data/ext/v8/upstream/v8/src/bignum-dtoa.h +0 -81
- data/ext/v8/upstream/v8/src/bignum.cc +0 -768
- data/ext/v8/upstream/v8/src/bignum.h +0 -140
- data/ext/v8/upstream/v8/src/bootstrapper.cc +0 -2138
- data/ext/v8/upstream/v8/src/bootstrapper.h +0 -185
- data/ext/v8/upstream/v8/src/builtins.cc +0 -1708
- data/ext/v8/upstream/v8/src/builtins.h +0 -368
- data/ext/v8/upstream/v8/src/bytecodes-irregexp.h +0 -105
- data/ext/v8/upstream/v8/src/cached-powers.cc +0 -177
- data/ext/v8/upstream/v8/src/cached-powers.h +0 -65
- data/ext/v8/upstream/v8/src/char-predicates-inl.h +0 -94
- data/ext/v8/upstream/v8/src/char-predicates.h +0 -65
- data/ext/v8/upstream/v8/src/checks.cc +0 -110
- data/ext/v8/upstream/v8/src/checks.h +0 -296
- data/ext/v8/upstream/v8/src/circular-queue-inl.h +0 -53
- data/ext/v8/upstream/v8/src/circular-queue.cc +0 -122
- data/ext/v8/upstream/v8/src/circular-queue.h +0 -103
- data/ext/v8/upstream/v8/src/code-stubs.cc +0 -240
- data/ext/v8/upstream/v8/src/code-stubs.h +0 -971
- data/ext/v8/upstream/v8/src/code.h +0 -68
- data/ext/v8/upstream/v8/src/codegen-inl.h +0 -68
- data/ext/v8/upstream/v8/src/codegen.cc +0 -505
- data/ext/v8/upstream/v8/src/codegen.h +0 -245
- data/ext/v8/upstream/v8/src/compilation-cache.cc +0 -540
- data/ext/v8/upstream/v8/src/compilation-cache.h +0 -287
- data/ext/v8/upstream/v8/src/compiler.cc +0 -792
- data/ext/v8/upstream/v8/src/compiler.h +0 -307
- data/ext/v8/upstream/v8/src/contexts.cc +0 -327
- data/ext/v8/upstream/v8/src/contexts.h +0 -382
- data/ext/v8/upstream/v8/src/conversions-inl.h +0 -110
- data/ext/v8/upstream/v8/src/conversions.cc +0 -1125
- data/ext/v8/upstream/v8/src/conversions.h +0 -122
- data/ext/v8/upstream/v8/src/counters.cc +0 -93
- data/ext/v8/upstream/v8/src/counters.h +0 -254
- data/ext/v8/upstream/v8/src/cpu-profiler-inl.h +0 -101
- data/ext/v8/upstream/v8/src/cpu-profiler.cc +0 -606
- data/ext/v8/upstream/v8/src/cpu-profiler.h +0 -305
- data/ext/v8/upstream/v8/src/cpu.h +0 -67
- data/ext/v8/upstream/v8/src/d8-debug.cc +0 -367
- data/ext/v8/upstream/v8/src/d8-debug.h +0 -158
- data/ext/v8/upstream/v8/src/d8-posix.cc +0 -695
- data/ext/v8/upstream/v8/src/d8-readline.cc +0 -128
- data/ext/v8/upstream/v8/src/d8-windows.cc +0 -42
- data/ext/v8/upstream/v8/src/d8.cc +0 -796
- data/ext/v8/upstream/v8/src/d8.gyp +0 -88
- data/ext/v8/upstream/v8/src/d8.h +0 -231
- data/ext/v8/upstream/v8/src/d8.js +0 -2798
- data/ext/v8/upstream/v8/src/data-flow.cc +0 -545
- data/ext/v8/upstream/v8/src/data-flow.h +0 -379
- data/ext/v8/upstream/v8/src/date.js +0 -1103
- data/ext/v8/upstream/v8/src/dateparser-inl.h +0 -125
- data/ext/v8/upstream/v8/src/dateparser.cc +0 -178
- data/ext/v8/upstream/v8/src/dateparser.h +0 -265
- data/ext/v8/upstream/v8/src/debug-agent.cc +0 -447
- data/ext/v8/upstream/v8/src/debug-agent.h +0 -129
- data/ext/v8/upstream/v8/src/debug-debugger.js +0 -2569
- data/ext/v8/upstream/v8/src/debug.cc +0 -3188
- data/ext/v8/upstream/v8/src/debug.h +0 -1055
- data/ext/v8/upstream/v8/src/deoptimizer.cc +0 -1296
- data/ext/v8/upstream/v8/src/deoptimizer.h +0 -629
- data/ext/v8/upstream/v8/src/disasm.h +0 -80
- data/ext/v8/upstream/v8/src/disassembler.cc +0 -339
- data/ext/v8/upstream/v8/src/disassembler.h +0 -56
- data/ext/v8/upstream/v8/src/diy-fp.cc +0 -58
- data/ext/v8/upstream/v8/src/diy-fp.h +0 -117
- data/ext/v8/upstream/v8/src/double.h +0 -238
- data/ext/v8/upstream/v8/src/dtoa.cc +0 -103
- data/ext/v8/upstream/v8/src/dtoa.h +0 -85
- data/ext/v8/upstream/v8/src/execution.cc +0 -791
- data/ext/v8/upstream/v8/src/execution.h +0 -291
- data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.cc +0 -250
- data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.h +0 -89
- data/ext/v8/upstream/v8/src/extensions/experimental/experimental.gyp +0 -55
- data/ext/v8/upstream/v8/src/extensions/experimental/i18n-extension.cc +0 -284
- data/ext/v8/upstream/v8/src/extensions/experimental/i18n-extension.h +0 -64
- data/ext/v8/upstream/v8/src/extensions/externalize-string-extension.cc +0 -141
- data/ext/v8/upstream/v8/src/extensions/externalize-string-extension.h +0 -50
- data/ext/v8/upstream/v8/src/extensions/gc-extension.cc +0 -58
- data/ext/v8/upstream/v8/src/extensions/gc-extension.h +0 -49
- data/ext/v8/upstream/v8/src/factory.cc +0 -1194
- data/ext/v8/upstream/v8/src/factory.h +0 -436
- data/ext/v8/upstream/v8/src/fast-dtoa.cc +0 -736
- data/ext/v8/upstream/v8/src/fast-dtoa.h +0 -83
- data/ext/v8/upstream/v8/src/fixed-dtoa.cc +0 -405
- data/ext/v8/upstream/v8/src/fixed-dtoa.h +0 -55
- data/ext/v8/upstream/v8/src/flag-definitions.h +0 -556
- data/ext/v8/upstream/v8/src/flags.cc +0 -551
- data/ext/v8/upstream/v8/src/flags.h +0 -79
- data/ext/v8/upstream/v8/src/frame-element.cc +0 -37
- data/ext/v8/upstream/v8/src/frame-element.h +0 -269
- data/ext/v8/upstream/v8/src/frames-inl.h +0 -236
- data/ext/v8/upstream/v8/src/frames.cc +0 -1273
- data/ext/v8/upstream/v8/src/frames.h +0 -854
- data/ext/v8/upstream/v8/src/full-codegen.cc +0 -1385
- data/ext/v8/upstream/v8/src/full-codegen.h +0 -753
- data/ext/v8/upstream/v8/src/func-name-inferrer.cc +0 -91
- data/ext/v8/upstream/v8/src/func-name-inferrer.h +0 -111
- data/ext/v8/upstream/v8/src/gdb-jit.cc +0 -1548
- data/ext/v8/upstream/v8/src/gdb-jit.h +0 -138
- data/ext/v8/upstream/v8/src/global-handles.cc +0 -596
- data/ext/v8/upstream/v8/src/global-handles.h +0 -239
- data/ext/v8/upstream/v8/src/globals.h +0 -325
- data/ext/v8/upstream/v8/src/handles-inl.h +0 -177
- data/ext/v8/upstream/v8/src/handles.cc +0 -965
- data/ext/v8/upstream/v8/src/handles.h +0 -372
- data/ext/v8/upstream/v8/src/hashmap.cc +0 -230
- data/ext/v8/upstream/v8/src/hashmap.h +0 -121
- data/ext/v8/upstream/v8/src/heap-inl.h +0 -703
- data/ext/v8/upstream/v8/src/heap-profiler.cc +0 -1173
- data/ext/v8/upstream/v8/src/heap-profiler.h +0 -396
- data/ext/v8/upstream/v8/src/heap.cc +0 -5856
- data/ext/v8/upstream/v8/src/heap.h +0 -2264
- data/ext/v8/upstream/v8/src/hydrogen-instructions.cc +0 -1639
- data/ext/v8/upstream/v8/src/hydrogen-instructions.h +0 -3657
- data/ext/v8/upstream/v8/src/hydrogen.cc +0 -6011
- data/ext/v8/upstream/v8/src/hydrogen.h +0 -1137
- data/ext/v8/upstream/v8/src/ia32/assembler-ia32-inl.h +0 -430
- data/ext/v8/upstream/v8/src/ia32/assembler-ia32.cc +0 -2846
- data/ext/v8/upstream/v8/src/ia32/assembler-ia32.h +0 -1159
- data/ext/v8/upstream/v8/src/ia32/builtins-ia32.cc +0 -1596
- data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.cc +0 -6549
- data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.h +0 -495
- data/ext/v8/upstream/v8/src/ia32/codegen-ia32-inl.h +0 -46
- data/ext/v8/upstream/v8/src/ia32/codegen-ia32.cc +0 -10385
- data/ext/v8/upstream/v8/src/ia32/codegen-ia32.h +0 -801
- data/ext/v8/upstream/v8/src/ia32/cpu-ia32.cc +0 -88
- data/ext/v8/upstream/v8/src/ia32/debug-ia32.cc +0 -312
- data/ext/v8/upstream/v8/src/ia32/deoptimizer-ia32.cc +0 -774
- data/ext/v8/upstream/v8/src/ia32/disasm-ia32.cc +0 -1620
- data/ext/v8/upstream/v8/src/ia32/frames-ia32.cc +0 -45
- data/ext/v8/upstream/v8/src/ia32/frames-ia32.h +0 -140
- data/ext/v8/upstream/v8/src/ia32/full-codegen-ia32.cc +0 -4357
- data/ext/v8/upstream/v8/src/ia32/ic-ia32.cc +0 -1779
- data/ext/v8/upstream/v8/src/ia32/jump-target-ia32.cc +0 -437
- data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.cc +0 -4158
- data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.h +0 -318
- data/ext/v8/upstream/v8/src/ia32/lithium-gap-resolver-ia32.cc +0 -466
- data/ext/v8/upstream/v8/src/ia32/lithium-gap-resolver-ia32.h +0 -110
- data/ext/v8/upstream/v8/src/ia32/lithium-ia32.cc +0 -2181
- data/ext/v8/upstream/v8/src/ia32/lithium-ia32.h +0 -2235
- data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.cc +0 -2056
- data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.h +0 -807
- data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.cc +0 -1264
- data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.h +0 -216
- data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32-inl.h +0 -82
- data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32.cc +0 -157
- data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32.h +0 -43
- data/ext/v8/upstream/v8/src/ia32/simulator-ia32.cc +0 -30
- data/ext/v8/upstream/v8/src/ia32/simulator-ia32.h +0 -72
- data/ext/v8/upstream/v8/src/ia32/stub-cache-ia32.cc +0 -3711
- data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.cc +0 -1366
- data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.h +0 -650
- data/ext/v8/upstream/v8/src/ic-inl.h +0 -130
- data/ext/v8/upstream/v8/src/ic.cc +0 -2389
- data/ext/v8/upstream/v8/src/ic.h +0 -675
- data/ext/v8/upstream/v8/src/inspector.cc +0 -63
- data/ext/v8/upstream/v8/src/inspector.h +0 -62
- data/ext/v8/upstream/v8/src/interpreter-irregexp.cc +0 -659
- data/ext/v8/upstream/v8/src/interpreter-irregexp.h +0 -49
- data/ext/v8/upstream/v8/src/isolate.cc +0 -883
- data/ext/v8/upstream/v8/src/isolate.h +0 -1306
- data/ext/v8/upstream/v8/src/json.js +0 -342
- data/ext/v8/upstream/v8/src/jsregexp.cc +0 -5371
- data/ext/v8/upstream/v8/src/jsregexp.h +0 -1483
- data/ext/v8/upstream/v8/src/jump-target-heavy-inl.h +0 -51
- data/ext/v8/upstream/v8/src/jump-target-heavy.cc +0 -427
- data/ext/v8/upstream/v8/src/jump-target-heavy.h +0 -238
- data/ext/v8/upstream/v8/src/jump-target-inl.h +0 -48
- data/ext/v8/upstream/v8/src/jump-target-light-inl.h +0 -56
- data/ext/v8/upstream/v8/src/jump-target-light.cc +0 -111
- data/ext/v8/upstream/v8/src/jump-target-light.h +0 -193
- data/ext/v8/upstream/v8/src/jump-target.cc +0 -91
- data/ext/v8/upstream/v8/src/jump-target.h +0 -90
- data/ext/v8/upstream/v8/src/list-inl.h +0 -206
- data/ext/v8/upstream/v8/src/list.h +0 -164
- data/ext/v8/upstream/v8/src/lithium-allocator-inl.h +0 -142
- data/ext/v8/upstream/v8/src/lithium-allocator.cc +0 -2105
- data/ext/v8/upstream/v8/src/lithium-allocator.h +0 -630
- data/ext/v8/upstream/v8/src/lithium.cc +0 -169
- data/ext/v8/upstream/v8/src/lithium.h +0 -592
- data/ext/v8/upstream/v8/src/liveedit-debugger.js +0 -1082
- data/ext/v8/upstream/v8/src/liveedit.cc +0 -1693
- data/ext/v8/upstream/v8/src/liveedit.h +0 -179
- data/ext/v8/upstream/v8/src/liveobjectlist-inl.h +0 -126
- data/ext/v8/upstream/v8/src/liveobjectlist.cc +0 -2589
- data/ext/v8/upstream/v8/src/liveobjectlist.h +0 -322
- data/ext/v8/upstream/v8/src/log-inl.h +0 -59
- data/ext/v8/upstream/v8/src/log-utils.cc +0 -423
- data/ext/v8/upstream/v8/src/log-utils.h +0 -229
- data/ext/v8/upstream/v8/src/log.cc +0 -1666
- data/ext/v8/upstream/v8/src/log.h +0 -446
- data/ext/v8/upstream/v8/src/macro-assembler.h +0 -120
- data/ext/v8/upstream/v8/src/macros.py +0 -178
- data/ext/v8/upstream/v8/src/mark-compact.cc +0 -3092
- data/ext/v8/upstream/v8/src/mark-compact.h +0 -506
- data/ext/v8/upstream/v8/src/math.js +0 -264
- data/ext/v8/upstream/v8/src/messages.cc +0 -166
- data/ext/v8/upstream/v8/src/messages.h +0 -114
- data/ext/v8/upstream/v8/src/messages.js +0 -1090
- data/ext/v8/upstream/v8/src/mips/assembler-mips-inl.h +0 -335
- data/ext/v8/upstream/v8/src/mips/assembler-mips.cc +0 -2093
- data/ext/v8/upstream/v8/src/mips/assembler-mips.h +0 -1066
- data/ext/v8/upstream/v8/src/mips/builtins-mips.cc +0 -148
- data/ext/v8/upstream/v8/src/mips/code-stubs-mips.cc +0 -752
- data/ext/v8/upstream/v8/src/mips/code-stubs-mips.h +0 -511
- data/ext/v8/upstream/v8/src/mips/codegen-mips-inl.h +0 -64
- data/ext/v8/upstream/v8/src/mips/codegen-mips.cc +0 -1213
- data/ext/v8/upstream/v8/src/mips/codegen-mips.h +0 -633
- data/ext/v8/upstream/v8/src/mips/constants-mips.cc +0 -352
- data/ext/v8/upstream/v8/src/mips/constants-mips.h +0 -723
- data/ext/v8/upstream/v8/src/mips/cpu-mips.cc +0 -90
- data/ext/v8/upstream/v8/src/mips/debug-mips.cc +0 -155
- data/ext/v8/upstream/v8/src/mips/deoptimizer-mips.cc +0 -91
- data/ext/v8/upstream/v8/src/mips/disasm-mips.cc +0 -1023
- data/ext/v8/upstream/v8/src/mips/frames-mips.cc +0 -48
- data/ext/v8/upstream/v8/src/mips/frames-mips.h +0 -179
- data/ext/v8/upstream/v8/src/mips/full-codegen-mips.cc +0 -727
- data/ext/v8/upstream/v8/src/mips/ic-mips.cc +0 -244
- data/ext/v8/upstream/v8/src/mips/jump-target-mips.cc +0 -80
- data/ext/v8/upstream/v8/src/mips/lithium-codegen-mips.h +0 -65
- data/ext/v8/upstream/v8/src/mips/lithium-mips.h +0 -304
- data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.cc +0 -3327
- data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.h +0 -1058
- data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.cc +0 -478
- data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.h +0 -250
- data/ext/v8/upstream/v8/src/mips/register-allocator-mips-inl.h +0 -134
- data/ext/v8/upstream/v8/src/mips/register-allocator-mips.cc +0 -63
- data/ext/v8/upstream/v8/src/mips/register-allocator-mips.h +0 -47
- data/ext/v8/upstream/v8/src/mips/simulator-mips.cc +0 -2438
- data/ext/v8/upstream/v8/src/mips/simulator-mips.h +0 -394
- data/ext/v8/upstream/v8/src/mips/stub-cache-mips.cc +0 -601
- data/ext/v8/upstream/v8/src/mips/virtual-frame-mips-inl.h +0 -58
- data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.cc +0 -307
- data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.h +0 -530
- data/ext/v8/upstream/v8/src/mirror-debugger.js +0 -2381
- data/ext/v8/upstream/v8/src/mksnapshot.cc +0 -256
- data/ext/v8/upstream/v8/src/natives.h +0 -63
- data/ext/v8/upstream/v8/src/objects-debug.cc +0 -722
- data/ext/v8/upstream/v8/src/objects-inl.h +0 -4166
- data/ext/v8/upstream/v8/src/objects-printer.cc +0 -801
- data/ext/v8/upstream/v8/src/objects-visiting.cc +0 -142
- data/ext/v8/upstream/v8/src/objects-visiting.h +0 -422
- data/ext/v8/upstream/v8/src/objects.cc +0 -10296
- data/ext/v8/upstream/v8/src/objects.h +0 -6662
- data/ext/v8/upstream/v8/src/parser.cc +0 -5168
- data/ext/v8/upstream/v8/src/parser.h +0 -823
- data/ext/v8/upstream/v8/src/platform-cygwin.cc +0 -811
- data/ext/v8/upstream/v8/src/platform-freebsd.cc +0 -854
- data/ext/v8/upstream/v8/src/platform-linux.cc +0 -1120
- data/ext/v8/upstream/v8/src/platform-macos.cc +0 -865
- data/ext/v8/upstream/v8/src/platform-nullos.cc +0 -504
- data/ext/v8/upstream/v8/src/platform-openbsd.cc +0 -672
- data/ext/v8/upstream/v8/src/platform-posix.cc +0 -424
- data/ext/v8/upstream/v8/src/platform-solaris.cc +0 -796
- data/ext/v8/upstream/v8/src/platform-tls-mac.h +0 -62
- data/ext/v8/upstream/v8/src/platform-tls-win32.h +0 -62
- data/ext/v8/upstream/v8/src/platform-tls.h +0 -50
- data/ext/v8/upstream/v8/src/platform-win32.cc +0 -2072
- data/ext/v8/upstream/v8/src/platform.h +0 -693
- data/ext/v8/upstream/v8/src/preparse-data.cc +0 -185
- data/ext/v8/upstream/v8/src/preparse-data.h +0 -249
- data/ext/v8/upstream/v8/src/preparser-api.cc +0 -219
- data/ext/v8/upstream/v8/src/preparser.cc +0 -1205
- data/ext/v8/upstream/v8/src/preparser.h +0 -278
- data/ext/v8/upstream/v8/src/prettyprinter.cc +0 -1530
- data/ext/v8/upstream/v8/src/prettyprinter.h +0 -223
- data/ext/v8/upstream/v8/src/profile-generator-inl.h +0 -128
- data/ext/v8/upstream/v8/src/profile-generator.cc +0 -3095
- data/ext/v8/upstream/v8/src/profile-generator.h +0 -1125
- data/ext/v8/upstream/v8/src/property.cc +0 -102
- data/ext/v8/upstream/v8/src/property.h +0 -348
- data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp-inl.h +0 -78
- data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp.cc +0 -470
- data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp.h +0 -142
- data/ext/v8/upstream/v8/src/regexp-macro-assembler-tracer.cc +0 -373
- data/ext/v8/upstream/v8/src/regexp-macro-assembler-tracer.h +0 -104
- data/ext/v8/upstream/v8/src/regexp-macro-assembler.cc +0 -266
- data/ext/v8/upstream/v8/src/regexp-macro-assembler.h +0 -236
- data/ext/v8/upstream/v8/src/regexp-stack.cc +0 -111
- data/ext/v8/upstream/v8/src/regexp-stack.h +0 -147
- data/ext/v8/upstream/v8/src/regexp.js +0 -483
- data/ext/v8/upstream/v8/src/register-allocator-inl.h +0 -141
- data/ext/v8/upstream/v8/src/register-allocator.cc +0 -98
- data/ext/v8/upstream/v8/src/register-allocator.h +0 -310
- data/ext/v8/upstream/v8/src/rewriter.cc +0 -1024
- data/ext/v8/upstream/v8/src/rewriter.h +0 -59
- data/ext/v8/upstream/v8/src/runtime-profiler.cc +0 -478
- data/ext/v8/upstream/v8/src/runtime-profiler.h +0 -192
- data/ext/v8/upstream/v8/src/runtime.cc +0 -11949
- data/ext/v8/upstream/v8/src/runtime.h +0 -643
- data/ext/v8/upstream/v8/src/runtime.js +0 -643
- data/ext/v8/upstream/v8/src/safepoint-table.cc +0 -256
- data/ext/v8/upstream/v8/src/safepoint-table.h +0 -269
- data/ext/v8/upstream/v8/src/scanner-base.cc +0 -964
- data/ext/v8/upstream/v8/src/scanner-base.h +0 -664
- data/ext/v8/upstream/v8/src/scanner.cc +0 -584
- data/ext/v8/upstream/v8/src/scanner.h +0 -196
- data/ext/v8/upstream/v8/src/scopeinfo.cc +0 -631
- data/ext/v8/upstream/v8/src/scopeinfo.h +0 -249
- data/ext/v8/upstream/v8/src/scopes.cc +0 -1093
- data/ext/v8/upstream/v8/src/scopes.h +0 -508
- data/ext/v8/upstream/v8/src/serialize.cc +0 -1574
- data/ext/v8/upstream/v8/src/serialize.h +0 -589
- data/ext/v8/upstream/v8/src/shell.h +0 -55
- data/ext/v8/upstream/v8/src/simulator.h +0 -43
- data/ext/v8/upstream/v8/src/small-pointer-list.h +0 -163
- data/ext/v8/upstream/v8/src/smart-pointer.h +0 -109
- data/ext/v8/upstream/v8/src/snapshot-common.cc +0 -82
- data/ext/v8/upstream/v8/src/snapshot-empty.cc +0 -50
- data/ext/v8/upstream/v8/src/snapshot.h +0 -73
- data/ext/v8/upstream/v8/src/spaces-inl.h +0 -529
- data/ext/v8/upstream/v8/src/spaces.cc +0 -3147
- data/ext/v8/upstream/v8/src/spaces.h +0 -2368
- data/ext/v8/upstream/v8/src/splay-tree-inl.h +0 -310
- data/ext/v8/upstream/v8/src/splay-tree.h +0 -203
- data/ext/v8/upstream/v8/src/string-search.cc +0 -41
- data/ext/v8/upstream/v8/src/string-search.h +0 -568
- data/ext/v8/upstream/v8/src/string-stream.cc +0 -592
- data/ext/v8/upstream/v8/src/string-stream.h +0 -191
- data/ext/v8/upstream/v8/src/string.js +0 -915
- data/ext/v8/upstream/v8/src/strtod.cc +0 -440
- data/ext/v8/upstream/v8/src/strtod.h +0 -40
- data/ext/v8/upstream/v8/src/stub-cache.cc +0 -1940
- data/ext/v8/upstream/v8/src/stub-cache.h +0 -866
- data/ext/v8/upstream/v8/src/third_party/valgrind/valgrind.h +0 -3925
- data/ext/v8/upstream/v8/src/token.cc +0 -63
- data/ext/v8/upstream/v8/src/token.h +0 -288
- data/ext/v8/upstream/v8/src/top.cc +0 -983
- data/ext/v8/upstream/v8/src/type-info.cc +0 -472
- data/ext/v8/upstream/v8/src/type-info.h +0 -290
- data/ext/v8/upstream/v8/src/unbound-queue-inl.h +0 -95
- data/ext/v8/upstream/v8/src/unbound-queue.h +0 -67
- data/ext/v8/upstream/v8/src/unicode-inl.h +0 -238
- data/ext/v8/upstream/v8/src/unicode.cc +0 -1624
- data/ext/v8/upstream/v8/src/unicode.h +0 -280
- data/ext/v8/upstream/v8/src/uri.js +0 -402
- data/ext/v8/upstream/v8/src/utils.cc +0 -371
- data/ext/v8/upstream/v8/src/utils.h +0 -796
- data/ext/v8/upstream/v8/src/v8-counters.cc +0 -62
- data/ext/v8/upstream/v8/src/v8-counters.h +0 -311
- data/ext/v8/upstream/v8/src/v8.cc +0 -215
- data/ext/v8/upstream/v8/src/v8.h +0 -130
- data/ext/v8/upstream/v8/src/v8checks.h +0 -64
- data/ext/v8/upstream/v8/src/v8dll-main.cc +0 -39
- data/ext/v8/upstream/v8/src/v8globals.h +0 -486
- data/ext/v8/upstream/v8/src/v8memory.h +0 -82
- data/ext/v8/upstream/v8/src/v8natives.js +0 -1293
- data/ext/v8/upstream/v8/src/v8preparserdll-main.cc +0 -39
- data/ext/v8/upstream/v8/src/v8threads.cc +0 -453
- data/ext/v8/upstream/v8/src/v8threads.h +0 -164
- data/ext/v8/upstream/v8/src/v8utils.h +0 -317
- data/ext/v8/upstream/v8/src/variables.cc +0 -132
- data/ext/v8/upstream/v8/src/variables.h +0 -212
- data/ext/v8/upstream/v8/src/version.cc +0 -116
- data/ext/v8/upstream/v8/src/version.h +0 -68
- data/ext/v8/upstream/v8/src/virtual-frame-heavy-inl.h +0 -190
- data/ext/v8/upstream/v8/src/virtual-frame-heavy.cc +0 -312
- data/ext/v8/upstream/v8/src/virtual-frame-inl.h +0 -39
- data/ext/v8/upstream/v8/src/virtual-frame-light-inl.h +0 -171
- data/ext/v8/upstream/v8/src/virtual-frame-light.cc +0 -52
- data/ext/v8/upstream/v8/src/virtual-frame.cc +0 -49
- data/ext/v8/upstream/v8/src/virtual-frame.h +0 -59
- data/ext/v8/upstream/v8/src/vm-state-inl.h +0 -138
- data/ext/v8/upstream/v8/src/vm-state.h +0 -70
- data/ext/v8/upstream/v8/src/win32-headers.h +0 -96
- data/ext/v8/upstream/v8/src/x64/assembler-x64-inl.h +0 -456
- data/ext/v8/upstream/v8/src/x64/assembler-x64.cc +0 -2954
- data/ext/v8/upstream/v8/src/x64/assembler-x64.h +0 -1630
- data/ext/v8/upstream/v8/src/x64/builtins-x64.cc +0 -1493
- data/ext/v8/upstream/v8/src/x64/code-stubs-x64.cc +0 -5132
- data/ext/v8/upstream/v8/src/x64/code-stubs-x64.h +0 -477
- data/ext/v8/upstream/v8/src/x64/codegen-x64-inl.h +0 -46
- data/ext/v8/upstream/v8/src/x64/codegen-x64.cc +0 -8843
- data/ext/v8/upstream/v8/src/x64/codegen-x64.h +0 -753
- data/ext/v8/upstream/v8/src/x64/cpu-x64.cc +0 -88
- data/ext/v8/upstream/v8/src/x64/debug-x64.cc +0 -318
- data/ext/v8/upstream/v8/src/x64/deoptimizer-x64.cc +0 -815
- data/ext/v8/upstream/v8/src/x64/disasm-x64.cc +0 -1752
- data/ext/v8/upstream/v8/src/x64/frames-x64.cc +0 -45
- data/ext/v8/upstream/v8/src/x64/frames-x64.h +0 -130
- data/ext/v8/upstream/v8/src/x64/full-codegen-x64.cc +0 -4339
- data/ext/v8/upstream/v8/src/x64/ic-x64.cc +0 -1752
- data/ext/v8/upstream/v8/src/x64/jump-target-x64.cc +0 -437
- data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.cc +0 -3970
- data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.h +0 -318
- data/ext/v8/upstream/v8/src/x64/lithium-gap-resolver-x64.cc +0 -320
- data/ext/v8/upstream/v8/src/x64/lithium-gap-resolver-x64.h +0 -74
- data/ext/v8/upstream/v8/src/x64/lithium-x64.cc +0 -2115
- data/ext/v8/upstream/v8/src/x64/lithium-x64.h +0 -2161
- data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.cc +0 -2911
- data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.h +0 -1984
- data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.cc +0 -1398
- data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.h +0 -282
- data/ext/v8/upstream/v8/src/x64/register-allocator-x64-inl.h +0 -87
- data/ext/v8/upstream/v8/src/x64/register-allocator-x64.cc +0 -95
- data/ext/v8/upstream/v8/src/x64/register-allocator-x64.h +0 -43
- data/ext/v8/upstream/v8/src/x64/simulator-x64.cc +0 -27
- data/ext/v8/upstream/v8/src/x64/simulator-x64.h +0 -71
- data/ext/v8/upstream/v8/src/x64/stub-cache-x64.cc +0 -3460
- data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.cc +0 -1296
- data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.h +0 -597
- data/ext/v8/upstream/v8/src/zone-inl.h +0 -129
- data/ext/v8/upstream/v8/src/zone.cc +0 -196
- data/ext/v8/upstream/v8/src/zone.h +0 -236
- data/ext/v8/upstream/v8/tools/codemap.js +0 -265
- data/ext/v8/upstream/v8/tools/consarray.js +0 -93
- data/ext/v8/upstream/v8/tools/csvparser.js +0 -78
- data/ext/v8/upstream/v8/tools/disasm.py +0 -92
- data/ext/v8/upstream/v8/tools/freebsd-tick-processor +0 -10
- data/ext/v8/upstream/v8/tools/gc-nvp-trace-processor.py +0 -328
- data/ext/v8/upstream/v8/tools/generate-ten-powers.scm +0 -286
- data/ext/v8/upstream/v8/tools/grokdump.py +0 -840
- data/ext/v8/upstream/v8/tools/gyp/v8.gyp +0 -844
- data/ext/v8/upstream/v8/tools/js2c.py +0 -380
- data/ext/v8/upstream/v8/tools/jsmin.py +0 -280
- data/ext/v8/upstream/v8/tools/linux-tick-processor +0 -35
- data/ext/v8/upstream/v8/tools/ll_prof.py +0 -919
- data/ext/v8/upstream/v8/tools/logreader.js +0 -185
- data/ext/v8/upstream/v8/tools/mac-nm +0 -18
- data/ext/v8/upstream/v8/tools/mac-tick-processor +0 -6
- data/ext/v8/upstream/v8/tools/oom_dump/README +0 -31
- data/ext/v8/upstream/v8/tools/oom_dump/SConstruct +0 -42
- data/ext/v8/upstream/v8/tools/oom_dump/oom_dump.cc +0 -288
- data/ext/v8/upstream/v8/tools/presubmit.py +0 -305
- data/ext/v8/upstream/v8/tools/process-heap-prof.py +0 -120
- data/ext/v8/upstream/v8/tools/profile.js +0 -751
- data/ext/v8/upstream/v8/tools/profile_view.js +0 -219
- data/ext/v8/upstream/v8/tools/run-valgrind.py +0 -77
- data/ext/v8/upstream/v8/tools/splaytree.js +0 -316
- data/ext/v8/upstream/v8/tools/stats-viewer.py +0 -468
- data/ext/v8/upstream/v8/tools/test.py +0 -1490
- data/ext/v8/upstream/v8/tools/tickprocessor-driver.js +0 -59
- data/ext/v8/upstream/v8/tools/tickprocessor.js +0 -877
- data/ext/v8/upstream/v8/tools/utils.py +0 -96
- data/ext/v8/upstream/v8/tools/visual_studio/README.txt +0 -70
- data/ext/v8/upstream/v8/tools/visual_studio/arm.vsprops +0 -14
- data/ext/v8/upstream/v8/tools/visual_studio/common.vsprops +0 -34
- data/ext/v8/upstream/v8/tools/visual_studio/d8.vcproj +0 -193
- data/ext/v8/upstream/v8/tools/visual_studio/d8_arm.vcproj +0 -193
- data/ext/v8/upstream/v8/tools/visual_studio/d8_x64.vcproj +0 -209
- data/ext/v8/upstream/v8/tools/visual_studio/d8js2c.cmd +0 -6
- data/ext/v8/upstream/v8/tools/visual_studio/debug.vsprops +0 -17
- data/ext/v8/upstream/v8/tools/visual_studio/ia32.vsprops +0 -17
- data/ext/v8/upstream/v8/tools/visual_studio/js2c.cmd +0 -6
- data/ext/v8/upstream/v8/tools/visual_studio/release.vsprops +0 -24
- data/ext/v8/upstream/v8/tools/visual_studio/v8.sln +0 -101
- data/ext/v8/upstream/v8/tools/visual_studio/v8.vcproj +0 -227
- data/ext/v8/upstream/v8/tools/visual_studio/v8_arm.sln +0 -74
- data/ext/v8/upstream/v8/tools/visual_studio/v8_arm.vcproj +0 -227
- data/ext/v8/upstream/v8/tools/visual_studio/v8_base.vcproj +0 -1308
- data/ext/v8/upstream/v8/tools/visual_studio/v8_base_arm.vcproj +0 -1238
- data/ext/v8/upstream/v8/tools/visual_studio/v8_base_x64.vcproj +0 -1300
- data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest.vcproj +0 -265
- data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest_arm.vcproj +0 -249
- data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest_x64.vcproj +0 -257
- data/ext/v8/upstream/v8/tools/visual_studio/v8_mksnapshot.vcproj +0 -145
- data/ext/v8/upstream/v8/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -145
- data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample.vcproj +0 -145
- data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample_arm.vcproj +0 -145
- data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample_x64.vcproj +0 -161
- data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample.vcproj +0 -147
- data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -147
- data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -163
- data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot.vcproj +0 -142
- data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_cc.vcproj +0 -92
- data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -92
- data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_x64.vcproj +0 -142
- data/ext/v8/upstream/v8/tools/visual_studio/v8_x64.sln +0 -101
- data/ext/v8/upstream/v8/tools/visual_studio/v8_x64.vcproj +0 -227
- data/ext/v8/upstream/v8/tools/visual_studio/x64.vsprops +0 -18
- data/ext/v8/upstream/v8/tools/windows-tick-processor.bat +0 -30
@@ -1,866 +0,0 @@
|
|
1
|
-
// Copyright 2006-2008 the V8 project authors. All rights reserved.
|
2
|
-
// Redistribution and use in source and binary forms, with or without
|
3
|
-
// modification, are permitted provided that the following conditions are
|
4
|
-
// met:
|
5
|
-
//
|
6
|
-
// * Redistributions of source code must retain the above copyright
|
7
|
-
// notice, this list of conditions and the following disclaimer.
|
8
|
-
// * Redistributions in binary form must reproduce the above
|
9
|
-
// copyright notice, this list of conditions and the following
|
10
|
-
// disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
// * Neither the name of Google Inc. nor the names of its
|
13
|
-
// contributors may be used to endorse or promote products derived
|
14
|
-
// from this software without specific prior written permission.
|
15
|
-
//
|
16
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
-
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
-
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
-
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
-
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
-
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
-
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
-
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
-
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
-
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
-
|
28
|
-
#ifndef V8_STUB_CACHE_H_
|
29
|
-
#define V8_STUB_CACHE_H_
|
30
|
-
|
31
|
-
#include "arguments.h"
|
32
|
-
#include "macro-assembler.h"
|
33
|
-
#include "zone-inl.h"
|
34
|
-
|
35
|
-
namespace v8 {
|
36
|
-
namespace internal {
|
37
|
-
|
38
|
-
|
39
|
-
// The stub cache is used for megamorphic calls and property accesses.
|
40
|
-
// It maps (map, name, type)->Code*
|
41
|
-
|
42
|
-
// The design of the table uses the inline cache stubs used for
|
43
|
-
// mono-morphic calls. The beauty of this, we do not have to
|
44
|
-
// invalidate the cache whenever a prototype map is changed. The stub
|
45
|
-
// validates the map chain as in the mono-morphic case.
|
46
|
-
|
47
|
-
class StubCache;
|
48
|
-
|
49
|
-
class SCTableReference {
|
50
|
-
public:
|
51
|
-
Address address() const { return address_; }
|
52
|
-
|
53
|
-
private:
|
54
|
-
explicit SCTableReference(Address address) : address_(address) {}
|
55
|
-
|
56
|
-
Address address_;
|
57
|
-
|
58
|
-
friend class StubCache;
|
59
|
-
};
|
60
|
-
|
61
|
-
|
62
|
-
class StubCache {
|
63
|
-
public:
|
64
|
-
struct Entry {
|
65
|
-
String* key;
|
66
|
-
Code* value;
|
67
|
-
};
|
68
|
-
|
69
|
-
void Initialize(bool create_heap_objects);
|
70
|
-
|
71
|
-
|
72
|
-
// Computes the right stub matching. Inserts the result in the
|
73
|
-
// cache before returning. This might compile a stub if needed.
|
74
|
-
MUST_USE_RESULT MaybeObject* ComputeLoadNonexistent(
|
75
|
-
String* name,
|
76
|
-
JSObject* receiver);
|
77
|
-
|
78
|
-
MUST_USE_RESULT MaybeObject* ComputeLoadField(String* name,
|
79
|
-
JSObject* receiver,
|
80
|
-
JSObject* holder,
|
81
|
-
int field_index);
|
82
|
-
|
83
|
-
MUST_USE_RESULT MaybeObject* ComputeLoadCallback(
|
84
|
-
String* name,
|
85
|
-
JSObject* receiver,
|
86
|
-
JSObject* holder,
|
87
|
-
AccessorInfo* callback);
|
88
|
-
|
89
|
-
MUST_USE_RESULT MaybeObject* ComputeLoadConstant(String* name,
|
90
|
-
JSObject* receiver,
|
91
|
-
JSObject* holder,
|
92
|
-
Object* value);
|
93
|
-
|
94
|
-
MUST_USE_RESULT MaybeObject* ComputeLoadInterceptor(
|
95
|
-
String* name,
|
96
|
-
JSObject* receiver,
|
97
|
-
JSObject* holder);
|
98
|
-
|
99
|
-
MUST_USE_RESULT MaybeObject* ComputeLoadNormal();
|
100
|
-
|
101
|
-
|
102
|
-
MUST_USE_RESULT MaybeObject* ComputeLoadGlobal(
|
103
|
-
String* name,
|
104
|
-
JSObject* receiver,
|
105
|
-
GlobalObject* holder,
|
106
|
-
JSGlobalPropertyCell* cell,
|
107
|
-
bool is_dont_delete);
|
108
|
-
|
109
|
-
|
110
|
-
// ---
|
111
|
-
|
112
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadField(String* name,
|
113
|
-
JSObject* receiver,
|
114
|
-
JSObject* holder,
|
115
|
-
int field_index);
|
116
|
-
|
117
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadCallback(
|
118
|
-
String* name,
|
119
|
-
JSObject* receiver,
|
120
|
-
JSObject* holder,
|
121
|
-
AccessorInfo* callback);
|
122
|
-
|
123
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadConstant(
|
124
|
-
String* name,
|
125
|
-
JSObject* receiver,
|
126
|
-
JSObject* holder,
|
127
|
-
Object* value);
|
128
|
-
|
129
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadInterceptor(
|
130
|
-
String* name,
|
131
|
-
JSObject* receiver,
|
132
|
-
JSObject* holder);
|
133
|
-
|
134
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadArrayLength(
|
135
|
-
String* name,
|
136
|
-
JSArray* receiver);
|
137
|
-
|
138
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadStringLength(
|
139
|
-
String* name,
|
140
|
-
String* receiver);
|
141
|
-
|
142
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadFunctionPrototype(
|
143
|
-
String* name,
|
144
|
-
JSFunction* receiver);
|
145
|
-
|
146
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadSpecialized(
|
147
|
-
JSObject* receiver);
|
148
|
-
|
149
|
-
// ---
|
150
|
-
|
151
|
-
MUST_USE_RESULT MaybeObject* ComputeStoreField(
|
152
|
-
String* name,
|
153
|
-
JSObject* receiver,
|
154
|
-
int field_index,
|
155
|
-
Map* transition,
|
156
|
-
StrictModeFlag strict_mode);
|
157
|
-
|
158
|
-
MUST_USE_RESULT MaybeObject* ComputeStoreNormal(
|
159
|
-
StrictModeFlag strict_mode);
|
160
|
-
|
161
|
-
MUST_USE_RESULT MaybeObject* ComputeStoreGlobal(
|
162
|
-
String* name,
|
163
|
-
GlobalObject* receiver,
|
164
|
-
JSGlobalPropertyCell* cell,
|
165
|
-
StrictModeFlag strict_mode);
|
166
|
-
|
167
|
-
MUST_USE_RESULT MaybeObject* ComputeStoreCallback(
|
168
|
-
String* name,
|
169
|
-
JSObject* receiver,
|
170
|
-
AccessorInfo* callback,
|
171
|
-
StrictModeFlag strict_mode);
|
172
|
-
|
173
|
-
MUST_USE_RESULT MaybeObject* ComputeStoreInterceptor(
|
174
|
-
String* name,
|
175
|
-
JSObject* receiver,
|
176
|
-
StrictModeFlag strict_mode);
|
177
|
-
|
178
|
-
// ---
|
179
|
-
|
180
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedStoreField(
|
181
|
-
String* name,
|
182
|
-
JSObject* receiver,
|
183
|
-
int field_index,
|
184
|
-
Map* transition,
|
185
|
-
StrictModeFlag strict_mode);
|
186
|
-
|
187
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedStoreSpecialized(
|
188
|
-
JSObject* receiver,
|
189
|
-
StrictModeFlag strict_mode);
|
190
|
-
|
191
|
-
|
192
|
-
MUST_USE_RESULT MaybeObject* ComputeKeyedLoadOrStoreExternalArray(
|
193
|
-
JSObject* receiver,
|
194
|
-
bool is_store,
|
195
|
-
StrictModeFlag strict_mode);
|
196
|
-
|
197
|
-
// ---
|
198
|
-
|
199
|
-
MUST_USE_RESULT MaybeObject* ComputeCallField(int argc,
|
200
|
-
InLoopFlag in_loop,
|
201
|
-
Code::Kind,
|
202
|
-
String* name,
|
203
|
-
Object* object,
|
204
|
-
JSObject* holder,
|
205
|
-
int index);
|
206
|
-
|
207
|
-
MUST_USE_RESULT MaybeObject* ComputeCallConstant(
|
208
|
-
int argc,
|
209
|
-
InLoopFlag in_loop,
|
210
|
-
Code::Kind,
|
211
|
-
Code::ExtraICState extra_ic_state,
|
212
|
-
String* name,
|
213
|
-
Object* object,
|
214
|
-
JSObject* holder,
|
215
|
-
JSFunction* function);
|
216
|
-
|
217
|
-
MUST_USE_RESULT MaybeObject* ComputeCallNormal(int argc,
|
218
|
-
InLoopFlag in_loop,
|
219
|
-
Code::Kind,
|
220
|
-
String* name,
|
221
|
-
JSObject* receiver);
|
222
|
-
|
223
|
-
MUST_USE_RESULT MaybeObject* ComputeCallInterceptor(int argc,
|
224
|
-
Code::Kind,
|
225
|
-
String* name,
|
226
|
-
Object* object,
|
227
|
-
JSObject* holder);
|
228
|
-
|
229
|
-
MUST_USE_RESULT MaybeObject* ComputeCallGlobal(
|
230
|
-
int argc,
|
231
|
-
InLoopFlag in_loop,
|
232
|
-
Code::Kind,
|
233
|
-
String* name,
|
234
|
-
JSObject* receiver,
|
235
|
-
GlobalObject* holder,
|
236
|
-
JSGlobalPropertyCell* cell,
|
237
|
-
JSFunction* function);
|
238
|
-
|
239
|
-
// ---
|
240
|
-
|
241
|
-
MUST_USE_RESULT MaybeObject* ComputeCallInitialize(int argc,
|
242
|
-
InLoopFlag in_loop,
|
243
|
-
Code::Kind kind);
|
244
|
-
|
245
|
-
Handle<Code> ComputeCallInitialize(int argc, InLoopFlag in_loop);
|
246
|
-
|
247
|
-
Handle<Code> ComputeKeyedCallInitialize(int argc, InLoopFlag in_loop);
|
248
|
-
|
249
|
-
MUST_USE_RESULT MaybeObject* ComputeCallPreMonomorphic(
|
250
|
-
int argc,
|
251
|
-
InLoopFlag in_loop,
|
252
|
-
Code::Kind kind);
|
253
|
-
|
254
|
-
MUST_USE_RESULT MaybeObject* ComputeCallNormal(int argc,
|
255
|
-
InLoopFlag in_loop,
|
256
|
-
Code::Kind kind);
|
257
|
-
|
258
|
-
MUST_USE_RESULT MaybeObject* ComputeCallMegamorphic(int argc,
|
259
|
-
InLoopFlag in_loop,
|
260
|
-
Code::Kind kind);
|
261
|
-
|
262
|
-
MUST_USE_RESULT MaybeObject* ComputeCallMiss(int argc, Code::Kind kind);
|
263
|
-
|
264
|
-
// Finds the Code object stored in the Heap::non_monomorphic_cache().
|
265
|
-
MUST_USE_RESULT Code* FindCallInitialize(int argc,
|
266
|
-
InLoopFlag in_loop,
|
267
|
-
Code::Kind kind);
|
268
|
-
|
269
|
-
#ifdef ENABLE_DEBUGGER_SUPPORT
|
270
|
-
MUST_USE_RESULT MaybeObject* ComputeCallDebugBreak(int argc, Code::Kind kind);
|
271
|
-
|
272
|
-
MUST_USE_RESULT MaybeObject* ComputeCallDebugPrepareStepIn(int argc,
|
273
|
-
Code::Kind kind);
|
274
|
-
#endif
|
275
|
-
|
276
|
-
// Update cache for entry hash(name, map).
|
277
|
-
Code* Set(String* name, Map* map, Code* code);
|
278
|
-
|
279
|
-
// Clear the lookup table (@ mark compact collection).
|
280
|
-
void Clear();
|
281
|
-
|
282
|
-
// Collect all maps that match the name and flags.
|
283
|
-
void CollectMatchingMaps(ZoneMapList* types,
|
284
|
-
String* name,
|
285
|
-
Code::Flags flags);
|
286
|
-
|
287
|
-
// Generate code for probing the stub cache table.
|
288
|
-
// Arguments extra and extra2 may be used to pass additional scratch
|
289
|
-
// registers. Set to no_reg if not needed.
|
290
|
-
void GenerateProbe(MacroAssembler* masm,
|
291
|
-
Code::Flags flags,
|
292
|
-
Register receiver,
|
293
|
-
Register name,
|
294
|
-
Register scratch,
|
295
|
-
Register extra,
|
296
|
-
Register extra2 = no_reg);
|
297
|
-
|
298
|
-
enum Table {
|
299
|
-
kPrimary,
|
300
|
-
kSecondary
|
301
|
-
};
|
302
|
-
|
303
|
-
|
304
|
-
SCTableReference key_reference(StubCache::Table table) {
|
305
|
-
return SCTableReference(
|
306
|
-
reinterpret_cast<Address>(&first_entry(table)->key));
|
307
|
-
}
|
308
|
-
|
309
|
-
|
310
|
-
SCTableReference value_reference(StubCache::Table table) {
|
311
|
-
return SCTableReference(
|
312
|
-
reinterpret_cast<Address>(&first_entry(table)->value));
|
313
|
-
}
|
314
|
-
|
315
|
-
|
316
|
-
StubCache::Entry* first_entry(StubCache::Table table) {
|
317
|
-
switch (table) {
|
318
|
-
case StubCache::kPrimary: return StubCache::primary_;
|
319
|
-
case StubCache::kSecondary: return StubCache::secondary_;
|
320
|
-
}
|
321
|
-
UNREACHABLE();
|
322
|
-
return NULL;
|
323
|
-
}
|
324
|
-
|
325
|
-
Isolate* isolate() { return isolate_; }
|
326
|
-
Heap* heap() { return isolate()->heap(); }
|
327
|
-
|
328
|
-
private:
|
329
|
-
explicit StubCache(Isolate* isolate);
|
330
|
-
|
331
|
-
friend class Isolate;
|
332
|
-
friend class SCTableReference;
|
333
|
-
static const int kPrimaryTableSize = 2048;
|
334
|
-
static const int kSecondaryTableSize = 512;
|
335
|
-
Entry primary_[kPrimaryTableSize];
|
336
|
-
Entry secondary_[kSecondaryTableSize];
|
337
|
-
|
338
|
-
// Computes the hashed offsets for primary and secondary caches.
|
339
|
-
RLYSTC int PrimaryOffset(String* name, Code::Flags flags, Map* map) {
|
340
|
-
// This works well because the heap object tag size and the hash
|
341
|
-
// shift are equal. Shifting down the length field to get the
|
342
|
-
// hash code would effectively throw away two bits of the hash
|
343
|
-
// code.
|
344
|
-
ASSERT(kHeapObjectTagSize == String::kHashShift);
|
345
|
-
// Compute the hash of the name (use entire hash field).
|
346
|
-
ASSERT(name->HasHashCode());
|
347
|
-
uint32_t field = name->hash_field();
|
348
|
-
// Using only the low bits in 64-bit mode is unlikely to increase the
|
349
|
-
// risk of collision even if the heap is spread over an area larger than
|
350
|
-
// 4Gb (and not at all if it isn't).
|
351
|
-
uint32_t map_low32bits =
|
352
|
-
static_cast<uint32_t>(reinterpret_cast<uintptr_t>(map));
|
353
|
-
// We always set the in_loop bit to zero when generating the lookup code
|
354
|
-
// so do it here too so the hash codes match.
|
355
|
-
uint32_t iflags =
|
356
|
-
(static_cast<uint32_t>(flags) & ~Code::kFlagsNotUsedInLookup);
|
357
|
-
// Base the offset on a simple combination of name, flags, and map.
|
358
|
-
uint32_t key = (map_low32bits + field) ^ iflags;
|
359
|
-
return key & ((kPrimaryTableSize - 1) << kHeapObjectTagSize);
|
360
|
-
}
|
361
|
-
|
362
|
-
RLYSTC int SecondaryOffset(String* name, Code::Flags flags, int seed) {
|
363
|
-
// Use the seed from the primary cache in the secondary cache.
|
364
|
-
uint32_t string_low32bits =
|
365
|
-
static_cast<uint32_t>(reinterpret_cast<uintptr_t>(name));
|
366
|
-
// We always set the in_loop bit to zero when generating the lookup code
|
367
|
-
// so do it here too so the hash codes match.
|
368
|
-
uint32_t iflags =
|
369
|
-
(static_cast<uint32_t>(flags) & ~Code::kFlagsICInLoopMask);
|
370
|
-
uint32_t key = seed - string_low32bits + iflags;
|
371
|
-
return key & ((kSecondaryTableSize - 1) << kHeapObjectTagSize);
|
372
|
-
}
|
373
|
-
|
374
|
-
// Compute the entry for a given offset in exactly the same way as
|
375
|
-
// we do in generated code. We generate an hash code that already
|
376
|
-
// ends in String::kHashShift 0s. Then we shift it so it is a multiple
|
377
|
-
// of sizeof(Entry). This makes it easier to avoid making mistakes
|
378
|
-
// in the hashed offset computations.
|
379
|
-
RLYSTC Entry* entry(Entry* table, int offset) {
|
380
|
-
const int shift_amount = kPointerSizeLog2 + 1 - String::kHashShift;
|
381
|
-
return reinterpret_cast<Entry*>(
|
382
|
-
reinterpret_cast<Address>(table) + (offset << shift_amount));
|
383
|
-
}
|
384
|
-
|
385
|
-
Isolate* isolate_;
|
386
|
-
|
387
|
-
DISALLOW_COPY_AND_ASSIGN(StubCache);
|
388
|
-
};
|
389
|
-
|
390
|
-
|
391
|
-
// ------------------------------------------------------------------------
|
392
|
-
|
393
|
-
|
394
|
-
// Support functions for IC stubs for callbacks.
|
395
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, LoadCallbackProperty);
|
396
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreCallbackProperty);
|
397
|
-
|
398
|
-
|
399
|
-
// Support functions for IC stubs for interceptors.
|
400
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, LoadPropertyWithInterceptorOnly);
|
401
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, LoadPropertyWithInterceptorForLoad);
|
402
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, LoadPropertyWithInterceptorForCall);
|
403
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreInterceptorProperty);
|
404
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, CallInterceptorProperty);
|
405
|
-
DECLARE_RUNTIME_FUNCTION(MaybeObject*, KeyedLoadPropertyWithInterceptor);
|
406
|
-
|
407
|
-
|
408
|
-
// The stub compiler compiles stubs for the stub cache.
|
409
|
-
class StubCompiler BASE_EMBEDDED {
|
410
|
-
public:
|
411
|
-
StubCompiler()
|
412
|
-
: scope_(), masm_(Isolate::Current(), NULL, 256), failure_(NULL) { }
|
413
|
-
|
414
|
-
MUST_USE_RESULT MaybeObject* CompileCallInitialize(Code::Flags flags);
|
415
|
-
MUST_USE_RESULT MaybeObject* CompileCallPreMonomorphic(Code::Flags flags);
|
416
|
-
MUST_USE_RESULT MaybeObject* CompileCallNormal(Code::Flags flags);
|
417
|
-
MUST_USE_RESULT MaybeObject* CompileCallMegamorphic(Code::Flags flags);
|
418
|
-
MUST_USE_RESULT MaybeObject* CompileCallMiss(Code::Flags flags);
|
419
|
-
#ifdef ENABLE_DEBUGGER_SUPPORT
|
420
|
-
MUST_USE_RESULT MaybeObject* CompileCallDebugBreak(Code::Flags flags);
|
421
|
-
MUST_USE_RESULT MaybeObject* CompileCallDebugPrepareStepIn(Code::Flags flags);
|
422
|
-
#endif
|
423
|
-
|
424
|
-
// Static functions for generating parts of stubs.
|
425
|
-
static void GenerateLoadGlobalFunctionPrototype(MacroAssembler* masm,
|
426
|
-
int index,
|
427
|
-
Register prototype);
|
428
|
-
|
429
|
-
// Generates prototype loading code that uses the objects from the
|
430
|
-
// context we were in when this function was called. If the context
|
431
|
-
// has changed, a jump to miss is performed. This ties the generated
|
432
|
-
// code to a particular context and so must not be used in cases
|
433
|
-
// where the generated code is not allowed to have references to
|
434
|
-
// objects from a context.
|
435
|
-
static void GenerateDirectLoadGlobalFunctionPrototype(MacroAssembler* masm,
|
436
|
-
int index,
|
437
|
-
Register prototype,
|
438
|
-
Label* miss);
|
439
|
-
|
440
|
-
static void GenerateFastPropertyLoad(MacroAssembler* masm,
|
441
|
-
Register dst, Register src,
|
442
|
-
JSObject* holder, int index);
|
443
|
-
|
444
|
-
static void GenerateLoadArrayLength(MacroAssembler* masm,
|
445
|
-
Register receiver,
|
446
|
-
Register scratch,
|
447
|
-
Label* miss_label);
|
448
|
-
|
449
|
-
static void GenerateLoadStringLength(MacroAssembler* masm,
|
450
|
-
Register receiver,
|
451
|
-
Register scratch1,
|
452
|
-
Register scratch2,
|
453
|
-
Label* miss_label,
|
454
|
-
bool support_wrappers);
|
455
|
-
|
456
|
-
static void GenerateLoadFunctionPrototype(MacroAssembler* masm,
|
457
|
-
Register receiver,
|
458
|
-
Register scratch1,
|
459
|
-
Register scratch2,
|
460
|
-
Label* miss_label);
|
461
|
-
|
462
|
-
static void GenerateStoreField(MacroAssembler* masm,
|
463
|
-
JSObject* object,
|
464
|
-
int index,
|
465
|
-
Map* transition,
|
466
|
-
Register receiver_reg,
|
467
|
-
Register name_reg,
|
468
|
-
Register scratch,
|
469
|
-
Label* miss_label);
|
470
|
-
|
471
|
-
static void GenerateLoadMiss(MacroAssembler* masm, Code::Kind kind);
|
472
|
-
|
473
|
-
// Generates code that verifies that the property holder has not changed
|
474
|
-
// (checking maps of objects in the prototype chain for fast and global
|
475
|
-
// objects or doing negative lookup for slow objects, ensures that the
|
476
|
-
// property cells for global objects are still empty) and checks that the map
|
477
|
-
// of the holder has not changed. If necessary the function also generates
|
478
|
-
// code for security check in case of global object holders. Helps to make
|
479
|
-
// sure that the current IC is still valid.
|
480
|
-
//
|
481
|
-
// The scratch and holder registers are always clobbered, but the object
|
482
|
-
// register is only clobbered if it the same as the holder register. The
|
483
|
-
// function returns a register containing the holder - either object_reg or
|
484
|
-
// holder_reg.
|
485
|
-
// The function can optionally (when save_at_depth !=
|
486
|
-
// kInvalidProtoDepth) save the object at the given depth by moving
|
487
|
-
// it to [esp + kPointerSize].
|
488
|
-
|
489
|
-
Register CheckPrototypes(JSObject* object,
|
490
|
-
Register object_reg,
|
491
|
-
JSObject* holder,
|
492
|
-
Register holder_reg,
|
493
|
-
Register scratch1,
|
494
|
-
Register scratch2,
|
495
|
-
String* name,
|
496
|
-
Label* miss) {
|
497
|
-
return CheckPrototypes(object, object_reg, holder, holder_reg, scratch1,
|
498
|
-
scratch2, name, kInvalidProtoDepth, miss);
|
499
|
-
}
|
500
|
-
|
501
|
-
Register CheckPrototypes(JSObject* object,
|
502
|
-
Register object_reg,
|
503
|
-
JSObject* holder,
|
504
|
-
Register holder_reg,
|
505
|
-
Register scratch1,
|
506
|
-
Register scratch2,
|
507
|
-
String* name,
|
508
|
-
int save_at_depth,
|
509
|
-
Label* miss);
|
510
|
-
|
511
|
-
protected:
|
512
|
-
MaybeObject* GetCodeWithFlags(Code::Flags flags, const char* name);
|
513
|
-
MaybeObject* GetCodeWithFlags(Code::Flags flags, String* name);
|
514
|
-
|
515
|
-
MacroAssembler* masm() { return &masm_; }
|
516
|
-
void set_failure(Failure* failure) { failure_ = failure; }
|
517
|
-
|
518
|
-
void GenerateLoadField(JSObject* object,
|
519
|
-
JSObject* holder,
|
520
|
-
Register receiver,
|
521
|
-
Register scratch1,
|
522
|
-
Register scratch2,
|
523
|
-
Register scratch3,
|
524
|
-
int index,
|
525
|
-
String* name,
|
526
|
-
Label* miss);
|
527
|
-
|
528
|
-
MaybeObject* GenerateLoadCallback(JSObject* object,
|
529
|
-
JSObject* holder,
|
530
|
-
Register receiver,
|
531
|
-
Register name_reg,
|
532
|
-
Register scratch1,
|
533
|
-
Register scratch2,
|
534
|
-
Register scratch3,
|
535
|
-
AccessorInfo* callback,
|
536
|
-
String* name,
|
537
|
-
Label* miss);
|
538
|
-
|
539
|
-
void GenerateLoadConstant(JSObject* object,
|
540
|
-
JSObject* holder,
|
541
|
-
Register receiver,
|
542
|
-
Register scratch1,
|
543
|
-
Register scratch2,
|
544
|
-
Register scratch3,
|
545
|
-
Object* value,
|
546
|
-
String* name,
|
547
|
-
Label* miss);
|
548
|
-
|
549
|
-
void GenerateLoadInterceptor(JSObject* object,
|
550
|
-
JSObject* holder,
|
551
|
-
LookupResult* lookup,
|
552
|
-
Register receiver,
|
553
|
-
Register name_reg,
|
554
|
-
Register scratch1,
|
555
|
-
Register scratch2,
|
556
|
-
Register scratch3,
|
557
|
-
String* name,
|
558
|
-
Label* miss);
|
559
|
-
|
560
|
-
static void LookupPostInterceptor(JSObject* holder,
|
561
|
-
String* name,
|
562
|
-
LookupResult* lookup);
|
563
|
-
|
564
|
-
Isolate* isolate() { return scope_.isolate(); }
|
565
|
-
Heap* heap() { return isolate()->heap(); }
|
566
|
-
Factory* factory() { return isolate()->factory(); }
|
567
|
-
|
568
|
-
private:
|
569
|
-
HandleScope scope_;
|
570
|
-
MacroAssembler masm_;
|
571
|
-
Failure* failure_;
|
572
|
-
};
|
573
|
-
|
574
|
-
|
575
|
-
class LoadStubCompiler: public StubCompiler {
|
576
|
-
public:
|
577
|
-
MUST_USE_RESULT MaybeObject* CompileLoadNonexistent(String* name,
|
578
|
-
JSObject* object,
|
579
|
-
JSObject* last);
|
580
|
-
|
581
|
-
MUST_USE_RESULT MaybeObject* CompileLoadField(JSObject* object,
|
582
|
-
JSObject* holder,
|
583
|
-
int index,
|
584
|
-
String* name);
|
585
|
-
|
586
|
-
MUST_USE_RESULT MaybeObject* CompileLoadCallback(String* name,
|
587
|
-
JSObject* object,
|
588
|
-
JSObject* holder,
|
589
|
-
AccessorInfo* callback);
|
590
|
-
|
591
|
-
MUST_USE_RESULT MaybeObject* CompileLoadConstant(JSObject* object,
|
592
|
-
JSObject* holder,
|
593
|
-
Object* value,
|
594
|
-
String* name);
|
595
|
-
|
596
|
-
MUST_USE_RESULT MaybeObject* CompileLoadInterceptor(JSObject* object,
|
597
|
-
JSObject* holder,
|
598
|
-
String* name);
|
599
|
-
|
600
|
-
MUST_USE_RESULT MaybeObject* CompileLoadGlobal(JSObject* object,
|
601
|
-
GlobalObject* holder,
|
602
|
-
JSGlobalPropertyCell* cell,
|
603
|
-
String* name,
|
604
|
-
bool is_dont_delete);
|
605
|
-
|
606
|
-
private:
|
607
|
-
MUST_USE_RESULT MaybeObject* GetCode(PropertyType type, String* name);
|
608
|
-
};
|
609
|
-
|
610
|
-
|
611
|
-
class KeyedLoadStubCompiler: public StubCompiler {
|
612
|
-
public:
|
613
|
-
MUST_USE_RESULT MaybeObject* CompileLoadField(String* name,
|
614
|
-
JSObject* object,
|
615
|
-
JSObject* holder,
|
616
|
-
int index);
|
617
|
-
|
618
|
-
MUST_USE_RESULT MaybeObject* CompileLoadCallback(String* name,
|
619
|
-
JSObject* object,
|
620
|
-
JSObject* holder,
|
621
|
-
AccessorInfo* callback);
|
622
|
-
|
623
|
-
MUST_USE_RESULT MaybeObject* CompileLoadConstant(String* name,
|
624
|
-
JSObject* object,
|
625
|
-
JSObject* holder,
|
626
|
-
Object* value);
|
627
|
-
|
628
|
-
MUST_USE_RESULT MaybeObject* CompileLoadInterceptor(JSObject* object,
|
629
|
-
JSObject* holder,
|
630
|
-
String* name);
|
631
|
-
|
632
|
-
MUST_USE_RESULT MaybeObject* CompileLoadArrayLength(String* name);
|
633
|
-
MUST_USE_RESULT MaybeObject* CompileLoadStringLength(String* name);
|
634
|
-
MUST_USE_RESULT MaybeObject* CompileLoadFunctionPrototype(String* name);
|
635
|
-
|
636
|
-
MUST_USE_RESULT MaybeObject* CompileLoadSpecialized(JSObject* receiver);
|
637
|
-
|
638
|
-
private:
|
639
|
-
MaybeObject* GetCode(PropertyType type, String* name);
|
640
|
-
};
|
641
|
-
|
642
|
-
|
643
|
-
class StoreStubCompiler: public StubCompiler {
|
644
|
-
public:
|
645
|
-
explicit StoreStubCompiler(StrictModeFlag strict_mode)
|
646
|
-
: strict_mode_(strict_mode) { }
|
647
|
-
|
648
|
-
MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object,
|
649
|
-
int index,
|
650
|
-
Map* transition,
|
651
|
-
String* name);
|
652
|
-
|
653
|
-
MUST_USE_RESULT MaybeObject* CompileStoreCallback(JSObject* object,
|
654
|
-
AccessorInfo* callbacks,
|
655
|
-
String* name);
|
656
|
-
MUST_USE_RESULT MaybeObject* CompileStoreInterceptor(JSObject* object,
|
657
|
-
String* name);
|
658
|
-
MUST_USE_RESULT MaybeObject* CompileStoreGlobal(GlobalObject* object,
|
659
|
-
JSGlobalPropertyCell* holder,
|
660
|
-
String* name);
|
661
|
-
|
662
|
-
|
663
|
-
private:
|
664
|
-
MaybeObject* GetCode(PropertyType type, String* name);
|
665
|
-
|
666
|
-
StrictModeFlag strict_mode_;
|
667
|
-
};
|
668
|
-
|
669
|
-
|
670
|
-
class KeyedStoreStubCompiler: public StubCompiler {
|
671
|
-
public:
|
672
|
-
explicit KeyedStoreStubCompiler(StrictModeFlag strict_mode)
|
673
|
-
: strict_mode_(strict_mode) { }
|
674
|
-
|
675
|
-
MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object,
|
676
|
-
int index,
|
677
|
-
Map* transition,
|
678
|
-
String* name);
|
679
|
-
|
680
|
-
MUST_USE_RESULT MaybeObject* CompileStoreSpecialized(JSObject* receiver);
|
681
|
-
|
682
|
-
private:
|
683
|
-
MaybeObject* GetCode(PropertyType type, String* name);
|
684
|
-
|
685
|
-
StrictModeFlag strict_mode_;
|
686
|
-
};
|
687
|
-
|
688
|
-
|
689
|
-
// Subset of FUNCTIONS_WITH_ID_LIST with custom constant/global call
|
690
|
-
// IC stubs.
|
691
|
-
#define CUSTOM_CALL_IC_GENERATORS(V) \
|
692
|
-
V(ArrayPush) \
|
693
|
-
V(ArrayPop) \
|
694
|
-
V(StringCharCodeAt) \
|
695
|
-
V(StringCharAt) \
|
696
|
-
V(StringFromCharCode) \
|
697
|
-
V(MathFloor) \
|
698
|
-
V(MathAbs)
|
699
|
-
|
700
|
-
|
701
|
-
class CallOptimization;
|
702
|
-
|
703
|
-
class CallStubCompiler: public StubCompiler {
|
704
|
-
public:
|
705
|
-
CallStubCompiler(int argc,
|
706
|
-
InLoopFlag in_loop,
|
707
|
-
Code::Kind kind,
|
708
|
-
Code::ExtraICState extra_ic_state,
|
709
|
-
InlineCacheHolderFlag cache_holder);
|
710
|
-
|
711
|
-
MUST_USE_RESULT MaybeObject* CompileCallField(JSObject* object,
|
712
|
-
JSObject* holder,
|
713
|
-
int index,
|
714
|
-
String* name);
|
715
|
-
MUST_USE_RESULT MaybeObject* CompileCallConstant(Object* object,
|
716
|
-
JSObject* holder,
|
717
|
-
JSFunction* function,
|
718
|
-
String* name,
|
719
|
-
CheckType check);
|
720
|
-
MUST_USE_RESULT MaybeObject* CompileCallInterceptor(JSObject* object,
|
721
|
-
JSObject* holder,
|
722
|
-
String* name);
|
723
|
-
MUST_USE_RESULT MaybeObject* CompileCallGlobal(JSObject* object,
|
724
|
-
GlobalObject* holder,
|
725
|
-
JSGlobalPropertyCell* cell,
|
726
|
-
JSFunction* function,
|
727
|
-
String* name);
|
728
|
-
|
729
|
-
static bool HasCustomCallGenerator(JSFunction* function);
|
730
|
-
|
731
|
-
private:
|
732
|
-
// Compiles a custom call constant/global IC. For constant calls
|
733
|
-
// cell is NULL. Returns undefined if there is no custom call code
|
734
|
-
// for the given function or it can't be generated.
|
735
|
-
MUST_USE_RESULT MaybeObject* CompileCustomCall(Object* object,
|
736
|
-
JSObject* holder,
|
737
|
-
JSGlobalPropertyCell* cell,
|
738
|
-
JSFunction* function,
|
739
|
-
String* name);
|
740
|
-
|
741
|
-
#define DECLARE_CALL_GENERATOR(name) \
|
742
|
-
MUST_USE_RESULT MaybeObject* Compile##name##Call(Object* object, \
|
743
|
-
JSObject* holder, \
|
744
|
-
JSGlobalPropertyCell* cell, \
|
745
|
-
JSFunction* function, \
|
746
|
-
String* fname);
|
747
|
-
CUSTOM_CALL_IC_GENERATORS(DECLARE_CALL_GENERATOR)
|
748
|
-
#undef DECLARE_CALL_GENERATOR
|
749
|
-
|
750
|
-
MUST_USE_RESULT MaybeObject* CompileFastApiCall(
|
751
|
-
const CallOptimization& optimization,
|
752
|
-
Object* object,
|
753
|
-
JSObject* holder,
|
754
|
-
JSGlobalPropertyCell* cell,
|
755
|
-
JSFunction* function,
|
756
|
-
String* name);
|
757
|
-
|
758
|
-
const ParameterCount arguments_;
|
759
|
-
const InLoopFlag in_loop_;
|
760
|
-
const Code::Kind kind_;
|
761
|
-
const Code::ExtraICState extra_ic_state_;
|
762
|
-
const InlineCacheHolderFlag cache_holder_;
|
763
|
-
|
764
|
-
const ParameterCount& arguments() { return arguments_; }
|
765
|
-
|
766
|
-
MUST_USE_RESULT MaybeObject* GetCode(PropertyType type, String* name);
|
767
|
-
|
768
|
-
// Convenience function. Calls GetCode above passing
|
769
|
-
// CONSTANT_FUNCTION type and the name of the given function.
|
770
|
-
MUST_USE_RESULT MaybeObject* GetCode(JSFunction* function);
|
771
|
-
|
772
|
-
void GenerateNameCheck(String* name, Label* miss);
|
773
|
-
|
774
|
-
void GenerateGlobalReceiverCheck(JSObject* object,
|
775
|
-
JSObject* holder,
|
776
|
-
String* name,
|
777
|
-
Label* miss);
|
778
|
-
|
779
|
-
// Generates code to load the function from the cell checking that
|
780
|
-
// it still contains the same function.
|
781
|
-
void GenerateLoadFunctionFromCell(JSGlobalPropertyCell* cell,
|
782
|
-
JSFunction* function,
|
783
|
-
Label* miss);
|
784
|
-
|
785
|
-
// Generates a jump to CallIC miss stub. Returns Failure if the jump cannot
|
786
|
-
// be generated.
|
787
|
-
MUST_USE_RESULT MaybeObject* GenerateMissBranch();
|
788
|
-
};
|
789
|
-
|
790
|
-
|
791
|
-
class ConstructStubCompiler: public StubCompiler {
|
792
|
-
public:
|
793
|
-
explicit ConstructStubCompiler() {}
|
794
|
-
|
795
|
-
MUST_USE_RESULT MaybeObject* CompileConstructStub(JSFunction* function);
|
796
|
-
|
797
|
-
private:
|
798
|
-
MaybeObject* GetCode();
|
799
|
-
};
|
800
|
-
|
801
|
-
|
802
|
-
// Holds information about possible function call optimizations.
|
803
|
-
class CallOptimization BASE_EMBEDDED {
|
804
|
-
public:
|
805
|
-
explicit CallOptimization(LookupResult* lookup);
|
806
|
-
|
807
|
-
explicit CallOptimization(JSFunction* function);
|
808
|
-
|
809
|
-
bool is_constant_call() const {
|
810
|
-
return constant_function_ != NULL;
|
811
|
-
}
|
812
|
-
|
813
|
-
JSFunction* constant_function() const {
|
814
|
-
ASSERT(constant_function_ != NULL);
|
815
|
-
return constant_function_;
|
816
|
-
}
|
817
|
-
|
818
|
-
bool is_simple_api_call() const {
|
819
|
-
return is_simple_api_call_;
|
820
|
-
}
|
821
|
-
|
822
|
-
FunctionTemplateInfo* expected_receiver_type() const {
|
823
|
-
ASSERT(is_simple_api_call_);
|
824
|
-
return expected_receiver_type_;
|
825
|
-
}
|
826
|
-
|
827
|
-
CallHandlerInfo* api_call_info() const {
|
828
|
-
ASSERT(is_simple_api_call_);
|
829
|
-
return api_call_info_;
|
830
|
-
}
|
831
|
-
|
832
|
-
// Returns the depth of the object having the expected type in the
|
833
|
-
// prototype chain between the two arguments.
|
834
|
-
int GetPrototypeDepthOfExpectedType(JSObject* object,
|
835
|
-
JSObject* holder) const;
|
836
|
-
|
837
|
-
private:
|
838
|
-
void Initialize(JSFunction* function);
|
839
|
-
|
840
|
-
// Determines whether the given function can be called using the
|
841
|
-
// fast api call builtin.
|
842
|
-
void AnalyzePossibleApiFunction(JSFunction* function);
|
843
|
-
|
844
|
-
JSFunction* constant_function_;
|
845
|
-
bool is_simple_api_call_;
|
846
|
-
FunctionTemplateInfo* expected_receiver_type_;
|
847
|
-
CallHandlerInfo* api_call_info_;
|
848
|
-
};
|
849
|
-
|
850
|
-
class ExternalArrayStubCompiler: public StubCompiler {
|
851
|
-
public:
|
852
|
-
explicit ExternalArrayStubCompiler() {}
|
853
|
-
|
854
|
-
MUST_USE_RESULT MaybeObject* CompileKeyedLoadStub(
|
855
|
-
JSObject* receiver, ExternalArrayType array_type, Code::Flags flags);
|
856
|
-
|
857
|
-
MUST_USE_RESULT MaybeObject* CompileKeyedStoreStub(
|
858
|
-
JSObject* receiver, ExternalArrayType array_type, Code::Flags flags);
|
859
|
-
|
860
|
-
private:
|
861
|
-
MaybeObject* GetCode(Code::Flags flags);
|
862
|
-
};
|
863
|
-
|
864
|
-
} } // namespace v8::internal
|
865
|
-
|
866
|
-
#endif // V8_STUB_CACHE_H_
|