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,379 +0,0 @@
|
|
1
|
-
// Copyright 2010 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_DATAFLOW_H_
|
29
|
-
#define V8_DATAFLOW_H_
|
30
|
-
|
31
|
-
#include "v8.h"
|
32
|
-
|
33
|
-
#include "ast.h"
|
34
|
-
#include "compiler.h"
|
35
|
-
#include "zone-inl.h"
|
36
|
-
|
37
|
-
namespace v8 {
|
38
|
-
namespace internal {
|
39
|
-
|
40
|
-
// Forward declarations.
|
41
|
-
class Node;
|
42
|
-
|
43
|
-
class BitVector: public ZoneObject {
|
44
|
-
public:
|
45
|
-
// Iterator for the elements of this BitVector.
|
46
|
-
class Iterator BASE_EMBEDDED {
|
47
|
-
public:
|
48
|
-
explicit Iterator(BitVector* target)
|
49
|
-
: target_(target),
|
50
|
-
current_index_(0),
|
51
|
-
current_value_(target->data_[0]),
|
52
|
-
current_(-1) {
|
53
|
-
ASSERT(target->data_length_ > 0);
|
54
|
-
Advance();
|
55
|
-
}
|
56
|
-
~Iterator() { }
|
57
|
-
|
58
|
-
bool Done() const { return current_index_ >= target_->data_length_; }
|
59
|
-
void Advance();
|
60
|
-
|
61
|
-
int Current() const {
|
62
|
-
ASSERT(!Done());
|
63
|
-
return current_;
|
64
|
-
}
|
65
|
-
|
66
|
-
private:
|
67
|
-
uint32_t SkipZeroBytes(uint32_t val) {
|
68
|
-
while ((val & 0xFF) == 0) {
|
69
|
-
val >>= 8;
|
70
|
-
current_ += 8;
|
71
|
-
}
|
72
|
-
return val;
|
73
|
-
}
|
74
|
-
uint32_t SkipZeroBits(uint32_t val) {
|
75
|
-
while ((val & 0x1) == 0) {
|
76
|
-
val >>= 1;
|
77
|
-
current_++;
|
78
|
-
}
|
79
|
-
return val;
|
80
|
-
}
|
81
|
-
|
82
|
-
BitVector* target_;
|
83
|
-
int current_index_;
|
84
|
-
uint32_t current_value_;
|
85
|
-
int current_;
|
86
|
-
|
87
|
-
friend class BitVector;
|
88
|
-
};
|
89
|
-
|
90
|
-
explicit BitVector(int length)
|
91
|
-
: length_(length),
|
92
|
-
data_length_(SizeFor(length)),
|
93
|
-
data_(ZONE->NewArray<uint32_t>(data_length_)) {
|
94
|
-
ASSERT(length > 0);
|
95
|
-
Clear();
|
96
|
-
}
|
97
|
-
|
98
|
-
BitVector(const BitVector& other)
|
99
|
-
: length_(other.length()),
|
100
|
-
data_length_(SizeFor(length_)),
|
101
|
-
data_(ZONE->NewArray<uint32_t>(data_length_)) {
|
102
|
-
CopyFrom(other);
|
103
|
-
}
|
104
|
-
|
105
|
-
static int SizeFor(int length) {
|
106
|
-
return 1 + ((length - 1) / 32);
|
107
|
-
}
|
108
|
-
|
109
|
-
BitVector& operator=(const BitVector& rhs) {
|
110
|
-
if (this != &rhs) CopyFrom(rhs);
|
111
|
-
return *this;
|
112
|
-
}
|
113
|
-
|
114
|
-
void CopyFrom(const BitVector& other) {
|
115
|
-
ASSERT(other.length() <= length());
|
116
|
-
for (int i = 0; i < other.data_length_; i++) {
|
117
|
-
data_[i] = other.data_[i];
|
118
|
-
}
|
119
|
-
for (int i = other.data_length_; i < data_length_; i++) {
|
120
|
-
data_[i] = 0;
|
121
|
-
}
|
122
|
-
}
|
123
|
-
|
124
|
-
bool Contains(int i) const {
|
125
|
-
ASSERT(i >= 0 && i < length());
|
126
|
-
uint32_t block = data_[i / 32];
|
127
|
-
return (block & (1U << (i % 32))) != 0;
|
128
|
-
}
|
129
|
-
|
130
|
-
void Add(int i) {
|
131
|
-
ASSERT(i >= 0 && i < length());
|
132
|
-
data_[i / 32] |= (1U << (i % 32));
|
133
|
-
}
|
134
|
-
|
135
|
-
void Remove(int i) {
|
136
|
-
ASSERT(i >= 0 && i < length());
|
137
|
-
data_[i / 32] &= ~(1U << (i % 32));
|
138
|
-
}
|
139
|
-
|
140
|
-
void Union(const BitVector& other) {
|
141
|
-
ASSERT(other.length() == length());
|
142
|
-
for (int i = 0; i < data_length_; i++) {
|
143
|
-
data_[i] |= other.data_[i];
|
144
|
-
}
|
145
|
-
}
|
146
|
-
|
147
|
-
bool UnionIsChanged(const BitVector& other) {
|
148
|
-
ASSERT(other.length() == length());
|
149
|
-
bool changed = false;
|
150
|
-
for (int i = 0; i < data_length_; i++) {
|
151
|
-
uint32_t old_data = data_[i];
|
152
|
-
data_[i] |= other.data_[i];
|
153
|
-
if (data_[i] != old_data) changed = true;
|
154
|
-
}
|
155
|
-
return changed;
|
156
|
-
}
|
157
|
-
|
158
|
-
void Intersect(const BitVector& other) {
|
159
|
-
ASSERT(other.length() == length());
|
160
|
-
for (int i = 0; i < data_length_; i++) {
|
161
|
-
data_[i] &= other.data_[i];
|
162
|
-
}
|
163
|
-
}
|
164
|
-
|
165
|
-
void Subtract(const BitVector& other) {
|
166
|
-
ASSERT(other.length() == length());
|
167
|
-
for (int i = 0; i < data_length_; i++) {
|
168
|
-
data_[i] &= ~other.data_[i];
|
169
|
-
}
|
170
|
-
}
|
171
|
-
|
172
|
-
void Clear() {
|
173
|
-
for (int i = 0; i < data_length_; i++) {
|
174
|
-
data_[i] = 0;
|
175
|
-
}
|
176
|
-
}
|
177
|
-
|
178
|
-
bool IsEmpty() const {
|
179
|
-
for (int i = 0; i < data_length_; i++) {
|
180
|
-
if (data_[i] != 0) return false;
|
181
|
-
}
|
182
|
-
return true;
|
183
|
-
}
|
184
|
-
|
185
|
-
bool Equals(const BitVector& other) {
|
186
|
-
for (int i = 0; i < data_length_; i++) {
|
187
|
-
if (data_[i] != other.data_[i]) return false;
|
188
|
-
}
|
189
|
-
return true;
|
190
|
-
}
|
191
|
-
|
192
|
-
int length() const { return length_; }
|
193
|
-
|
194
|
-
#ifdef DEBUG
|
195
|
-
void Print();
|
196
|
-
#endif
|
197
|
-
|
198
|
-
private:
|
199
|
-
int length_;
|
200
|
-
int data_length_;
|
201
|
-
uint32_t* data_;
|
202
|
-
};
|
203
|
-
|
204
|
-
|
205
|
-
// An implementation of a sparse set whose elements are drawn from integers
|
206
|
-
// in the range [0..universe_size[. It supports constant-time Contains,
|
207
|
-
// destructive Add, and destructuve Remove operations and linear-time (in
|
208
|
-
// the number of elements) destructive Union.
|
209
|
-
class SparseSet: public ZoneObject {
|
210
|
-
public:
|
211
|
-
// Iterator for sparse set elements. Elements should not be added or
|
212
|
-
// removed during iteration.
|
213
|
-
class Iterator BASE_EMBEDDED {
|
214
|
-
public:
|
215
|
-
explicit Iterator(SparseSet* target) : target_(target), current_(0) {
|
216
|
-
ASSERT(++target->iterator_count_ > 0);
|
217
|
-
}
|
218
|
-
~Iterator() {
|
219
|
-
ASSERT(target_->iterator_count_-- > 0);
|
220
|
-
}
|
221
|
-
bool Done() const { return current_ >= target_->dense_.length(); }
|
222
|
-
void Advance() {
|
223
|
-
ASSERT(!Done());
|
224
|
-
++current_;
|
225
|
-
}
|
226
|
-
int Current() {
|
227
|
-
ASSERT(!Done());
|
228
|
-
return target_->dense_[current_];
|
229
|
-
}
|
230
|
-
|
231
|
-
private:
|
232
|
-
SparseSet* target_;
|
233
|
-
int current_;
|
234
|
-
|
235
|
-
friend class SparseSet;
|
236
|
-
};
|
237
|
-
|
238
|
-
explicit SparseSet(int universe_size)
|
239
|
-
: dense_(4),
|
240
|
-
sparse_(ZONE->NewArray<int>(universe_size)) {
|
241
|
-
#ifdef DEBUG
|
242
|
-
size_ = universe_size;
|
243
|
-
iterator_count_ = 0;
|
244
|
-
#endif
|
245
|
-
}
|
246
|
-
|
247
|
-
bool Contains(int n) const {
|
248
|
-
ASSERT(0 <= n && n < size_);
|
249
|
-
int dense_index = sparse_[n];
|
250
|
-
return (0 <= dense_index) &&
|
251
|
-
(dense_index < dense_.length()) &&
|
252
|
-
(dense_[dense_index] == n);
|
253
|
-
}
|
254
|
-
|
255
|
-
void Add(int n) {
|
256
|
-
ASSERT(0 <= n && n < size_);
|
257
|
-
ASSERT(iterator_count_ == 0);
|
258
|
-
if (!Contains(n)) {
|
259
|
-
sparse_[n] = dense_.length();
|
260
|
-
dense_.Add(n);
|
261
|
-
}
|
262
|
-
}
|
263
|
-
|
264
|
-
void Remove(int n) {
|
265
|
-
ASSERT(0 <= n && n < size_);
|
266
|
-
ASSERT(iterator_count_ == 0);
|
267
|
-
if (Contains(n)) {
|
268
|
-
int dense_index = sparse_[n];
|
269
|
-
int last = dense_.RemoveLast();
|
270
|
-
if (dense_index < dense_.length()) {
|
271
|
-
dense_[dense_index] = last;
|
272
|
-
sparse_[last] = dense_index;
|
273
|
-
}
|
274
|
-
}
|
275
|
-
}
|
276
|
-
|
277
|
-
void Union(const SparseSet& other) {
|
278
|
-
for (int i = 0; i < other.dense_.length(); ++i) {
|
279
|
-
Add(other.dense_[i]);
|
280
|
-
}
|
281
|
-
}
|
282
|
-
|
283
|
-
private:
|
284
|
-
// The set is implemented as a pair of a growable dense list and an
|
285
|
-
// uninitialized sparse array.
|
286
|
-
ZoneList<int> dense_;
|
287
|
-
int* sparse_;
|
288
|
-
#ifdef DEBUG
|
289
|
-
int size_;
|
290
|
-
int iterator_count_;
|
291
|
-
#endif
|
292
|
-
};
|
293
|
-
|
294
|
-
|
295
|
-
// Simple fixed-capacity list-based worklist (managed as a queue) of
|
296
|
-
// pointers to T.
|
297
|
-
template<typename T>
|
298
|
-
class WorkList BASE_EMBEDDED {
|
299
|
-
public:
|
300
|
-
// The worklist cannot grow bigger than size. We keep one item empty to
|
301
|
-
// distinguish between empty and full.
|
302
|
-
explicit WorkList(int size)
|
303
|
-
: capacity_(size + 1), head_(0), tail_(0), queue_(capacity_) {
|
304
|
-
for (int i = 0; i < capacity_; i++) queue_.Add(NULL);
|
305
|
-
}
|
306
|
-
|
307
|
-
bool is_empty() { return head_ == tail_; }
|
308
|
-
|
309
|
-
bool is_full() {
|
310
|
-
// The worklist is full if head is at 0 and tail is at capacity - 1:
|
311
|
-
// head == 0 && tail == capacity-1 ==> tail - head == capacity - 1
|
312
|
-
// or if tail is immediately to the left of head:
|
313
|
-
// tail+1 == head ==> tail - head == -1
|
314
|
-
int diff = tail_ - head_;
|
315
|
-
return (diff == -1 || diff == capacity_ - 1);
|
316
|
-
}
|
317
|
-
|
318
|
-
void Insert(T* item) {
|
319
|
-
ASSERT(!is_full());
|
320
|
-
queue_[tail_++] = item;
|
321
|
-
if (tail_ == capacity_) tail_ = 0;
|
322
|
-
}
|
323
|
-
|
324
|
-
T* Remove() {
|
325
|
-
ASSERT(!is_empty());
|
326
|
-
T* item = queue_[head_++];
|
327
|
-
if (head_ == capacity_) head_ = 0;
|
328
|
-
return item;
|
329
|
-
}
|
330
|
-
|
331
|
-
private:
|
332
|
-
int capacity_; // Including one empty slot.
|
333
|
-
int head_; // Where the first item is.
|
334
|
-
int tail_; // Where the next inserted item will go.
|
335
|
-
List<T*> queue_;
|
336
|
-
};
|
337
|
-
|
338
|
-
|
339
|
-
// Computes the set of assigned variables and annotates variables proxies
|
340
|
-
// that are trivial sub-expressions and for-loops where the loop variable
|
341
|
-
// is guaranteed to be a smi.
|
342
|
-
class AssignedVariablesAnalyzer : public AstVisitor {
|
343
|
-
public:
|
344
|
-
static bool Analyze(CompilationInfo* info);
|
345
|
-
|
346
|
-
private:
|
347
|
-
AssignedVariablesAnalyzer(CompilationInfo* info, int bits);
|
348
|
-
bool Analyze();
|
349
|
-
|
350
|
-
Variable* FindSmiLoopVariable(ForStatement* stmt);
|
351
|
-
|
352
|
-
int BitIndex(Variable* var);
|
353
|
-
|
354
|
-
void RecordAssignedVar(Variable* var);
|
355
|
-
|
356
|
-
void MarkIfTrivial(Expression* expr);
|
357
|
-
|
358
|
-
// Visits an expression saving the accumulator before, clearing
|
359
|
-
// it before visting and restoring it after visiting.
|
360
|
-
void ProcessExpression(Expression* expr);
|
361
|
-
|
362
|
-
// AST node visit functions.
|
363
|
-
#define DECLARE_VISIT(type) virtual void Visit##type(type* node);
|
364
|
-
AST_NODE_LIST(DECLARE_VISIT)
|
365
|
-
#undef DECLARE_VISIT
|
366
|
-
|
367
|
-
CompilationInfo* info_;
|
368
|
-
|
369
|
-
// Accumulator for assigned variables set.
|
370
|
-
BitVector av_;
|
371
|
-
|
372
|
-
DISALLOW_COPY_AND_ASSIGN(AssignedVariablesAnalyzer);
|
373
|
-
};
|
374
|
-
|
375
|
-
|
376
|
-
} } // namespace v8::internal
|
377
|
-
|
378
|
-
|
379
|
-
#endif // V8_DATAFLOW_H_
|
@@ -1,1103 +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
|
-
|
29
|
-
// This file relies on the fact that the following declarations have been made
|
30
|
-
// in v8natives.js:
|
31
|
-
// const $isFinite = GlobalIsFinite;
|
32
|
-
|
33
|
-
// -------------------------------------------------------------------
|
34
|
-
|
35
|
-
// This file contains date support implemented in JavaScript.
|
36
|
-
|
37
|
-
|
38
|
-
// Keep reference to original values of some global properties. This
|
39
|
-
// has the added benefit that the code in this file is isolated from
|
40
|
-
// changes to these properties.
|
41
|
-
const $Date = global.Date;
|
42
|
-
|
43
|
-
// Helper function to throw error.
|
44
|
-
function ThrowDateTypeError() {
|
45
|
-
throw new $TypeError('this is not a Date object.');
|
46
|
-
}
|
47
|
-
|
48
|
-
// ECMA 262 - 5.2
|
49
|
-
function Modulo(value, remainder) {
|
50
|
-
var mod = value % remainder;
|
51
|
-
// Guard against returning -0.
|
52
|
-
if (mod == 0) return 0;
|
53
|
-
return mod >= 0 ? mod : mod + remainder;
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
|
-
function TimeWithinDay(time) {
|
58
|
-
return Modulo(time, msPerDay);
|
59
|
-
}
|
60
|
-
|
61
|
-
|
62
|
-
// ECMA 262 - 15.9.1.3
|
63
|
-
function DaysInYear(year) {
|
64
|
-
if (year % 4 != 0) return 365;
|
65
|
-
if ((year % 100 == 0) && (year % 400 != 0)) return 365;
|
66
|
-
return 366;
|
67
|
-
}
|
68
|
-
|
69
|
-
|
70
|
-
function DayFromYear(year) {
|
71
|
-
return 365 * (year-1970)
|
72
|
-
+ FLOOR((year-1969)/4)
|
73
|
-
- FLOOR((year-1901)/100)
|
74
|
-
+ FLOOR((year-1601)/400);
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
function TimeFromYear(year) {
|
79
|
-
return msPerDay * DayFromYear(year);
|
80
|
-
}
|
81
|
-
|
82
|
-
|
83
|
-
function InLeapYear(time) {
|
84
|
-
return DaysInYear(YearFromTime(time)) - 365; // Returns 1 or 0.
|
85
|
-
}
|
86
|
-
|
87
|
-
|
88
|
-
// ECMA 262 - 15.9.1.9
|
89
|
-
function EquivalentYear(year) {
|
90
|
-
// Returns an equivalent year in the range [2008-2035] matching
|
91
|
-
// - leap year.
|
92
|
-
// - week day of first day.
|
93
|
-
var time = TimeFromYear(year);
|
94
|
-
var recent_year = (InLeapYear(time) == 0 ? 1967 : 1956) +
|
95
|
-
(WeekDay(time) * 12) % 28;
|
96
|
-
// Find the year in the range 2008..2037 that is equivalent mod 28.
|
97
|
-
// Add 3*28 to give a positive argument to the modulus operator.
|
98
|
-
return 2008 + (recent_year + 3*28 - 2008) % 28;
|
99
|
-
}
|
100
|
-
|
101
|
-
|
102
|
-
function EquivalentTime(t) {
|
103
|
-
// The issue here is that some library calls don't work right for dates
|
104
|
-
// that cannot be represented using a non-negative signed 32 bit integer
|
105
|
-
// (measured in whole seconds based on the 1970 epoch).
|
106
|
-
// We solve this by mapping the time to a year with same leap-year-ness
|
107
|
-
// and same starting day for the year. The ECMAscript specification says
|
108
|
-
// we must do this, but for compatibility with other browsers, we use
|
109
|
-
// the actual year if it is in the range 1970..2037
|
110
|
-
if (t >= 0 && t <= 2.1e12) return t;
|
111
|
-
|
112
|
-
var day = MakeDay(EquivalentYear(YearFromTime(t)),
|
113
|
-
MonthFromTime(t),
|
114
|
-
DateFromTime(t));
|
115
|
-
return MakeDate(day, TimeWithinDay(t));
|
116
|
-
}
|
117
|
-
|
118
|
-
|
119
|
-
// local_time_offset is initialized when the DST_offset_cache is missed.
|
120
|
-
// It must not be used until after a call to DaylightSavingsOffset().
|
121
|
-
// In this way, only one check, for a DST cache miss, is needed.
|
122
|
-
var local_time_offset;
|
123
|
-
|
124
|
-
|
125
|
-
// Because computing the DST offset is an expensive operation,
|
126
|
-
// we keep a cache of the last computed DST offset along with a time interval
|
127
|
-
// where we know the cache is valid.
|
128
|
-
// When the cache is valid, local_time_offset is also valid.
|
129
|
-
var DST_offset_cache = {
|
130
|
-
// Cached DST offset.
|
131
|
-
offset: 0,
|
132
|
-
// Time interval where the cached offset is valid.
|
133
|
-
start: 0, end: -1,
|
134
|
-
// Size of next interval expansion.
|
135
|
-
increment: 0,
|
136
|
-
initial_increment: 19 * msPerDay
|
137
|
-
};
|
138
|
-
|
139
|
-
|
140
|
-
// NOTE: The implementation relies on the fact that no time zones have
|
141
|
-
// more than one daylight savings offset change per 19 days.
|
142
|
-
//
|
143
|
-
// In Egypt in 2010 they decided to suspend DST during Ramadan. This
|
144
|
-
// led to a short interval where DST is in effect from September 10 to
|
145
|
-
// September 30.
|
146
|
-
//
|
147
|
-
// If this function is called with NaN it returns NaN.
|
148
|
-
function DaylightSavingsOffset(t) {
|
149
|
-
// Load the cache object from the builtins object.
|
150
|
-
var cache = DST_offset_cache;
|
151
|
-
|
152
|
-
// Cache the start and the end in local variables for fast access.
|
153
|
-
var start = cache.start;
|
154
|
-
var end = cache.end;
|
155
|
-
|
156
|
-
if (start <= t) {
|
157
|
-
// If the time fits in the cached interval, return the cached offset.
|
158
|
-
if (t <= end) return cache.offset;
|
159
|
-
|
160
|
-
// If the cache misses, the local_time_offset may not be initialized.
|
161
|
-
if (IS_UNDEFINED(local_time_offset)) {
|
162
|
-
local_time_offset = %DateLocalTimeOffset();
|
163
|
-
}
|
164
|
-
|
165
|
-
// Compute a possible new interval end.
|
166
|
-
var new_end = end + cache.increment;
|
167
|
-
|
168
|
-
if (t <= new_end) {
|
169
|
-
var end_offset = %DateDaylightSavingsOffset(EquivalentTime(new_end));
|
170
|
-
if (cache.offset == end_offset) {
|
171
|
-
// If the offset at the end of the new interval still matches
|
172
|
-
// the offset in the cache, we grow the cached time interval
|
173
|
-
// and return the offset.
|
174
|
-
cache.end = new_end;
|
175
|
-
cache.increment = cache.initial_increment;
|
176
|
-
return end_offset;
|
177
|
-
} else {
|
178
|
-
var offset = %DateDaylightSavingsOffset(EquivalentTime(t));
|
179
|
-
if (offset == end_offset) {
|
180
|
-
// The offset at the given time is equal to the offset at the
|
181
|
-
// new end of the interval, so that means that we've just skipped
|
182
|
-
// the point in time where the DST offset change occurred. Updated
|
183
|
-
// the interval to reflect this and reset the increment.
|
184
|
-
cache.start = t;
|
185
|
-
cache.end = new_end;
|
186
|
-
cache.increment = cache.initial_increment;
|
187
|
-
} else {
|
188
|
-
// The interval contains a DST offset change and the given time is
|
189
|
-
// before it. Adjust the increment to avoid a linear search for
|
190
|
-
// the offset change point and change the end of the interval.
|
191
|
-
cache.increment /= 3;
|
192
|
-
cache.end = t;
|
193
|
-
}
|
194
|
-
// Update the offset in the cache and return it.
|
195
|
-
cache.offset = offset;
|
196
|
-
return offset;
|
197
|
-
}
|
198
|
-
}
|
199
|
-
}
|
200
|
-
|
201
|
-
// If the cache misses, the local_time_offset may not be initialized.
|
202
|
-
if (IS_UNDEFINED(local_time_offset)) {
|
203
|
-
local_time_offset = %DateLocalTimeOffset();
|
204
|
-
}
|
205
|
-
// Compute the DST offset for the time and shrink the cache interval
|
206
|
-
// to only contain the time. This allows fast repeated DST offset
|
207
|
-
// computations for the same time.
|
208
|
-
var offset = %DateDaylightSavingsOffset(EquivalentTime(t));
|
209
|
-
cache.offset = offset;
|
210
|
-
cache.start = cache.end = t;
|
211
|
-
cache.increment = cache.initial_increment;
|
212
|
-
return offset;
|
213
|
-
}
|
214
|
-
|
215
|
-
|
216
|
-
var timezone_cache_time = $NaN;
|
217
|
-
var timezone_cache_timezone;
|
218
|
-
|
219
|
-
function LocalTimezone(t) {
|
220
|
-
if (NUMBER_IS_NAN(t)) return "";
|
221
|
-
if (t == timezone_cache_time) {
|
222
|
-
return timezone_cache_timezone;
|
223
|
-
}
|
224
|
-
var timezone = %DateLocalTimezone(EquivalentTime(t));
|
225
|
-
timezone_cache_time = t;
|
226
|
-
timezone_cache_timezone = timezone;
|
227
|
-
return timezone;
|
228
|
-
}
|
229
|
-
|
230
|
-
|
231
|
-
function WeekDay(time) {
|
232
|
-
return Modulo(DAY(time) + 4, 7);
|
233
|
-
}
|
234
|
-
|
235
|
-
|
236
|
-
function LocalTime(time) {
|
237
|
-
if (NUMBER_IS_NAN(time)) return time;
|
238
|
-
// DaylightSavingsOffset called before local_time_offset used.
|
239
|
-
return time + DaylightSavingsOffset(time) + local_time_offset;
|
240
|
-
}
|
241
|
-
|
242
|
-
|
243
|
-
var ltcache = {
|
244
|
-
key: null,
|
245
|
-
val: null
|
246
|
-
};
|
247
|
-
|
248
|
-
function LocalTimeNoCheck(time) {
|
249
|
-
var ltc = ltcache;
|
250
|
-
if (%_ObjectEquals(time, ltc.key)) return ltc.val;
|
251
|
-
|
252
|
-
// Inline the DST offset cache checks for speed.
|
253
|
-
// The cache is hit, or DaylightSavingsOffset is called,
|
254
|
-
// before local_time_offset is used.
|
255
|
-
var cache = DST_offset_cache;
|
256
|
-
if (cache.start <= time && time <= cache.end) {
|
257
|
-
var dst_offset = cache.offset;
|
258
|
-
} else {
|
259
|
-
var dst_offset = DaylightSavingsOffset(time);
|
260
|
-
}
|
261
|
-
ltc.key = time;
|
262
|
-
return (ltc.val = time + local_time_offset + dst_offset);
|
263
|
-
}
|
264
|
-
|
265
|
-
|
266
|
-
function UTC(time) {
|
267
|
-
if (NUMBER_IS_NAN(time)) return time;
|
268
|
-
// local_time_offset is needed before the call to DaylightSavingsOffset,
|
269
|
-
// so it may be uninitialized.
|
270
|
-
if (IS_UNDEFINED(local_time_offset)) {
|
271
|
-
local_time_offset = %DateLocalTimeOffset();
|
272
|
-
}
|
273
|
-
var tmp = time - local_time_offset;
|
274
|
-
return tmp - DaylightSavingsOffset(tmp);
|
275
|
-
}
|
276
|
-
|
277
|
-
|
278
|
-
// ECMA 262 - 15.9.1.11
|
279
|
-
function MakeTime(hour, min, sec, ms) {
|
280
|
-
if (!$isFinite(hour)) return $NaN;
|
281
|
-
if (!$isFinite(min)) return $NaN;
|
282
|
-
if (!$isFinite(sec)) return $NaN;
|
283
|
-
if (!$isFinite(ms)) return $NaN;
|
284
|
-
return TO_INTEGER(hour) * msPerHour
|
285
|
-
+ TO_INTEGER(min) * msPerMinute
|
286
|
-
+ TO_INTEGER(sec) * msPerSecond
|
287
|
-
+ TO_INTEGER(ms);
|
288
|
-
}
|
289
|
-
|
290
|
-
|
291
|
-
// ECMA 262 - 15.9.1.12
|
292
|
-
function TimeInYear(year) {
|
293
|
-
return DaysInYear(year) * msPerDay;
|
294
|
-
}
|
295
|
-
|
296
|
-
|
297
|
-
var ymd_from_time_cache = [$NaN, $NaN, $NaN];
|
298
|
-
var ymd_from_time_cached_time = $NaN;
|
299
|
-
|
300
|
-
function YearFromTime(t) {
|
301
|
-
if (t !== ymd_from_time_cached_time) {
|
302
|
-
if (!$isFinite(t)) {
|
303
|
-
return $NaN;
|
304
|
-
}
|
305
|
-
|
306
|
-
%DateYMDFromTime(t, ymd_from_time_cache);
|
307
|
-
ymd_from_time_cached_time = t
|
308
|
-
}
|
309
|
-
|
310
|
-
return ymd_from_time_cache[0];
|
311
|
-
}
|
312
|
-
|
313
|
-
function MonthFromTime(t) {
|
314
|
-
if (t !== ymd_from_time_cached_time) {
|
315
|
-
if (!$isFinite(t)) {
|
316
|
-
return $NaN;
|
317
|
-
}
|
318
|
-
%DateYMDFromTime(t, ymd_from_time_cache);
|
319
|
-
ymd_from_time_cached_time = t
|
320
|
-
}
|
321
|
-
|
322
|
-
return ymd_from_time_cache[1];
|
323
|
-
}
|
324
|
-
|
325
|
-
function DateFromTime(t) {
|
326
|
-
if (t !== ymd_from_time_cached_time) {
|
327
|
-
if (!$isFinite(t)) {
|
328
|
-
return $NaN;
|
329
|
-
}
|
330
|
-
|
331
|
-
%DateYMDFromTime(t, ymd_from_time_cache);
|
332
|
-
ymd_from_time_cached_time = t
|
333
|
-
}
|
334
|
-
|
335
|
-
return ymd_from_time_cache[2];
|
336
|
-
}
|
337
|
-
|
338
|
-
|
339
|
-
// Compute number of days given a year, month, date.
|
340
|
-
// Note that month and date can lie outside the normal range.
|
341
|
-
// For example:
|
342
|
-
// MakeDay(2007, -4, 20) --> MakeDay(2006, 8, 20)
|
343
|
-
// MakeDay(2007, -33, 1) --> MakeDay(2004, 3, 1)
|
344
|
-
// MakeDay(2007, 14, -50) --> MakeDay(2007, 8, 11)
|
345
|
-
function MakeDay(year, month, date) {
|
346
|
-
if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) return $NaN;
|
347
|
-
|
348
|
-
// Convert to integer and map -0 to 0.
|
349
|
-
year = TO_INTEGER_MAP_MINUS_ZERO(year);
|
350
|
-
month = TO_INTEGER_MAP_MINUS_ZERO(month);
|
351
|
-
date = TO_INTEGER_MAP_MINUS_ZERO(date);
|
352
|
-
|
353
|
-
if (year < kMinYear || year > kMaxYear ||
|
354
|
-
month < kMinMonth || month > kMaxMonth ||
|
355
|
-
date < kMinDate || date > kMaxDate) {
|
356
|
-
return $NaN;
|
357
|
-
}
|
358
|
-
|
359
|
-
// Now we rely on year, month and date being SMIs.
|
360
|
-
return %DateMakeDay(year, month, date);
|
361
|
-
}
|
362
|
-
|
363
|
-
|
364
|
-
// ECMA 262 - 15.9.1.13
|
365
|
-
function MakeDate(day, time) {
|
366
|
-
var time = day * msPerDay + time;
|
367
|
-
// Some of our runtime funtions for computing UTC(time) rely on
|
368
|
-
// times not being significantly larger than MAX_TIME_MS. If there
|
369
|
-
// is no way that the time can be within range even after UTC
|
370
|
-
// conversion we return NaN immediately instead of relying on
|
371
|
-
// TimeClip to do it.
|
372
|
-
if ($abs(time) > MAX_TIME_BEFORE_UTC) return $NaN;
|
373
|
-
return time;
|
374
|
-
}
|
375
|
-
|
376
|
-
|
377
|
-
// ECMA 262 - 15.9.1.14
|
378
|
-
function TimeClip(time) {
|
379
|
-
if (!$isFinite(time)) return $NaN;
|
380
|
-
if ($abs(time) > MAX_TIME_MS) return $NaN;
|
381
|
-
return TO_INTEGER(time);
|
382
|
-
}
|
383
|
-
|
384
|
-
|
385
|
-
// The Date cache is used to limit the cost of parsing the same Date
|
386
|
-
// strings over and over again.
|
387
|
-
var Date_cache = {
|
388
|
-
// Cached time value.
|
389
|
-
time: $NaN,
|
390
|
-
// Cached year when interpreting the time as a local time. Only
|
391
|
-
// valid when the time matches cached time.
|
392
|
-
year: $NaN,
|
393
|
-
// String input for which the cached time is valid.
|
394
|
-
string: null
|
395
|
-
};
|
396
|
-
|
397
|
-
|
398
|
-
%SetCode($Date, function(year, month, date, hours, minutes, seconds, ms) {
|
399
|
-
if (!%_IsConstructCall()) {
|
400
|
-
// ECMA 262 - 15.9.2
|
401
|
-
return (new $Date()).toString();
|
402
|
-
}
|
403
|
-
|
404
|
-
// ECMA 262 - 15.9.3
|
405
|
-
var argc = %_ArgumentsLength();
|
406
|
-
var value;
|
407
|
-
if (argc == 0) {
|
408
|
-
value = %DateCurrentTime();
|
409
|
-
|
410
|
-
} else if (argc == 1) {
|
411
|
-
if (IS_NUMBER(year)) {
|
412
|
-
value = TimeClip(year);
|
413
|
-
|
414
|
-
} else if (IS_STRING(year)) {
|
415
|
-
// Probe the Date cache. If we already have a time value for the
|
416
|
-
// given time, we re-use that instead of parsing the string again.
|
417
|
-
var cache = Date_cache;
|
418
|
-
if (cache.string === year) {
|
419
|
-
value = cache.time;
|
420
|
-
} else {
|
421
|
-
value = DateParse(year);
|
422
|
-
if (!NUMBER_IS_NAN(value)) {
|
423
|
-
cache.time = value;
|
424
|
-
cache.year = YearFromTime(LocalTimeNoCheck(value));
|
425
|
-
cache.string = year;
|
426
|
-
}
|
427
|
-
}
|
428
|
-
|
429
|
-
} else {
|
430
|
-
// According to ECMA 262, no hint should be given for this
|
431
|
-
// conversion. However, ToPrimitive defaults to STRING_HINT for
|
432
|
-
// Date objects which will lose precision when the Date
|
433
|
-
// constructor is called with another Date object as its
|
434
|
-
// argument. We therefore use NUMBER_HINT for the conversion,
|
435
|
-
// which is the default for everything else than Date objects.
|
436
|
-
// This makes us behave like KJS and SpiderMonkey.
|
437
|
-
var time = ToPrimitive(year, NUMBER_HINT);
|
438
|
-
value = IS_STRING(time) ? DateParse(time) : TimeClip(ToNumber(time));
|
439
|
-
}
|
440
|
-
|
441
|
-
} else {
|
442
|
-
year = ToNumber(year);
|
443
|
-
month = ToNumber(month);
|
444
|
-
date = argc > 2 ? ToNumber(date) : 1;
|
445
|
-
hours = argc > 3 ? ToNumber(hours) : 0;
|
446
|
-
minutes = argc > 4 ? ToNumber(minutes) : 0;
|
447
|
-
seconds = argc > 5 ? ToNumber(seconds) : 0;
|
448
|
-
ms = argc > 6 ? ToNumber(ms) : 0;
|
449
|
-
year = (!NUMBER_IS_NAN(year) && 0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
|
450
|
-
? 1900 + TO_INTEGER(year) : year;
|
451
|
-
var day = MakeDay(year, month, date);
|
452
|
-
var time = MakeTime(hours, minutes, seconds, ms);
|
453
|
-
value = TimeClip(UTC(MakeDate(day, time)));
|
454
|
-
}
|
455
|
-
%_SetValueOf(this, value);
|
456
|
-
});
|
457
|
-
|
458
|
-
|
459
|
-
%FunctionSetPrototype($Date, new $Date($NaN));
|
460
|
-
|
461
|
-
|
462
|
-
var WeekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
463
|
-
var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
464
|
-
|
465
|
-
|
466
|
-
function TwoDigitString(value) {
|
467
|
-
return value < 10 ? "0" + value : "" + value;
|
468
|
-
}
|
469
|
-
|
470
|
-
|
471
|
-
function DateString(time) {
|
472
|
-
return WeekDays[WeekDay(time)] + ' '
|
473
|
-
+ Months[MonthFromTime(time)] + ' '
|
474
|
-
+ TwoDigitString(DateFromTime(time)) + ' '
|
475
|
-
+ YearFromTime(time);
|
476
|
-
}
|
477
|
-
|
478
|
-
|
479
|
-
var LongWeekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
480
|
-
var LongMonths = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
481
|
-
|
482
|
-
|
483
|
-
function LongDateString(time) {
|
484
|
-
return LongWeekDays[WeekDay(time)] + ', '
|
485
|
-
+ LongMonths[MonthFromTime(time)] + ' '
|
486
|
-
+ TwoDigitString(DateFromTime(time)) + ', '
|
487
|
-
+ YearFromTime(time);
|
488
|
-
}
|
489
|
-
|
490
|
-
|
491
|
-
function TimeString(time) {
|
492
|
-
return TwoDigitString(HOUR_FROM_TIME(time)) + ':'
|
493
|
-
+ TwoDigitString(MIN_FROM_TIME(time)) + ':'
|
494
|
-
+ TwoDigitString(SEC_FROM_TIME(time));
|
495
|
-
}
|
496
|
-
|
497
|
-
|
498
|
-
function LocalTimezoneString(time) {
|
499
|
-
var old_timezone = timezone_cache_timezone;
|
500
|
-
var timezone = LocalTimezone(time);
|
501
|
-
if (old_timezone && timezone != old_timezone) {
|
502
|
-
// If the timezone string has changed from the one that we cached,
|
503
|
-
// the local time offset may now be wrong. So we need to update it
|
504
|
-
// and try again.
|
505
|
-
local_time_offset = %DateLocalTimeOffset();
|
506
|
-
// We also need to invalidate the DST cache as the new timezone may have
|
507
|
-
// different DST times.
|
508
|
-
var dst_cache = DST_offset_cache;
|
509
|
-
dst_cache.start = 0;
|
510
|
-
dst_cache.end = -1;
|
511
|
-
}
|
512
|
-
|
513
|
-
var timezoneOffset =
|
514
|
-
(DaylightSavingsOffset(time) + local_time_offset) / msPerMinute;
|
515
|
-
var sign = (timezoneOffset >= 0) ? 1 : -1;
|
516
|
-
var hours = FLOOR((sign * timezoneOffset)/60);
|
517
|
-
var min = FLOOR((sign * timezoneOffset)%60);
|
518
|
-
var gmt = ' GMT' + ((sign == 1) ? '+' : '-') +
|
519
|
-
TwoDigitString(hours) + TwoDigitString(min);
|
520
|
-
return gmt + ' (' + timezone + ')';
|
521
|
-
}
|
522
|
-
|
523
|
-
|
524
|
-
function DatePrintString(time) {
|
525
|
-
return DateString(time) + ' ' + TimeString(time);
|
526
|
-
}
|
527
|
-
|
528
|
-
// -------------------------------------------------------------------
|
529
|
-
|
530
|
-
// Reused output buffer. Used when parsing date strings.
|
531
|
-
var parse_buffer = $Array(8);
|
532
|
-
|
533
|
-
// ECMA 262 - 15.9.4.2
|
534
|
-
function DateParse(string) {
|
535
|
-
var arr = %DateParseString(ToString(string), parse_buffer);
|
536
|
-
if (IS_NULL(arr)) return $NaN;
|
537
|
-
|
538
|
-
var day = MakeDay(arr[0], arr[1], arr[2]);
|
539
|
-
var time = MakeTime(arr[3], arr[4], arr[5], arr[6]);
|
540
|
-
var date = MakeDate(day, time);
|
541
|
-
|
542
|
-
if (IS_NULL(arr[7])) {
|
543
|
-
return TimeClip(UTC(date));
|
544
|
-
} else {
|
545
|
-
return TimeClip(date - arr[7] * 1000);
|
546
|
-
}
|
547
|
-
}
|
548
|
-
|
549
|
-
|
550
|
-
// ECMA 262 - 15.9.4.3
|
551
|
-
function DateUTC(year, month, date, hours, minutes, seconds, ms) {
|
552
|
-
year = ToNumber(year);
|
553
|
-
month = ToNumber(month);
|
554
|
-
var argc = %_ArgumentsLength();
|
555
|
-
date = argc > 2 ? ToNumber(date) : 1;
|
556
|
-
hours = argc > 3 ? ToNumber(hours) : 0;
|
557
|
-
minutes = argc > 4 ? ToNumber(minutes) : 0;
|
558
|
-
seconds = argc > 5 ? ToNumber(seconds) : 0;
|
559
|
-
ms = argc > 6 ? ToNumber(ms) : 0;
|
560
|
-
year = (!NUMBER_IS_NAN(year) && 0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
|
561
|
-
? 1900 + TO_INTEGER(year) : year;
|
562
|
-
var day = MakeDay(year, month, date);
|
563
|
-
var time = MakeTime(hours, minutes, seconds, ms);
|
564
|
-
return %_SetValueOf(this, TimeClip(MakeDate(day, time)));
|
565
|
-
}
|
566
|
-
|
567
|
-
|
568
|
-
// Mozilla-specific extension. Returns the number of milliseconds
|
569
|
-
// elapsed since 1 January 1970 00:00:00 UTC.
|
570
|
-
function DateNow() {
|
571
|
-
return %DateCurrentTime();
|
572
|
-
}
|
573
|
-
|
574
|
-
|
575
|
-
// ECMA 262 - 15.9.5.2
|
576
|
-
function DateToString() {
|
577
|
-
var t = DATE_VALUE(this);
|
578
|
-
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
579
|
-
var time_zone_string = LocalTimezoneString(t); // May update local offset.
|
580
|
-
return DatePrintString(LocalTimeNoCheck(t)) + time_zone_string;
|
581
|
-
}
|
582
|
-
|
583
|
-
|
584
|
-
// ECMA 262 - 15.9.5.3
|
585
|
-
function DateToDateString() {
|
586
|
-
var t = DATE_VALUE(this);
|
587
|
-
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
588
|
-
return DateString(LocalTimeNoCheck(t));
|
589
|
-
}
|
590
|
-
|
591
|
-
|
592
|
-
// ECMA 262 - 15.9.5.4
|
593
|
-
function DateToTimeString() {
|
594
|
-
var t = DATE_VALUE(this);
|
595
|
-
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
596
|
-
var time_zone_string = LocalTimezoneString(t); // May update local offset.
|
597
|
-
return TimeString(LocalTimeNoCheck(t)) + time_zone_string;
|
598
|
-
}
|
599
|
-
|
600
|
-
|
601
|
-
// ECMA 262 - 15.9.5.5
|
602
|
-
function DateToLocaleString() {
|
603
|
-
return %_CallFunction(this, DateToString);
|
604
|
-
}
|
605
|
-
|
606
|
-
|
607
|
-
// ECMA 262 - 15.9.5.6
|
608
|
-
function DateToLocaleDateString() {
|
609
|
-
var t = DATE_VALUE(this);
|
610
|
-
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
611
|
-
return LongDateString(LocalTimeNoCheck(t));
|
612
|
-
}
|
613
|
-
|
614
|
-
|
615
|
-
// ECMA 262 - 15.9.5.7
|
616
|
-
function DateToLocaleTimeString() {
|
617
|
-
var t = DATE_VALUE(this);
|
618
|
-
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
619
|
-
var lt = LocalTimeNoCheck(t);
|
620
|
-
return TimeString(lt);
|
621
|
-
}
|
622
|
-
|
623
|
-
|
624
|
-
// ECMA 262 - 15.9.5.8
|
625
|
-
function DateValueOf() {
|
626
|
-
return DATE_VALUE(this);
|
627
|
-
}
|
628
|
-
|
629
|
-
|
630
|
-
// ECMA 262 - 15.9.5.9
|
631
|
-
function DateGetTime() {
|
632
|
-
return DATE_VALUE(this);
|
633
|
-
}
|
634
|
-
|
635
|
-
|
636
|
-
// ECMA 262 - 15.9.5.10
|
637
|
-
function DateGetFullYear() {
|
638
|
-
var t = DATE_VALUE(this);
|
639
|
-
if (NUMBER_IS_NAN(t)) return t;
|
640
|
-
var cache = Date_cache;
|
641
|
-
if (cache.time === t) return cache.year;
|
642
|
-
return YearFromTime(LocalTimeNoCheck(t));
|
643
|
-
}
|
644
|
-
|
645
|
-
|
646
|
-
// ECMA 262 - 15.9.5.11
|
647
|
-
function DateGetUTCFullYear() {
|
648
|
-
var t = DATE_VALUE(this);
|
649
|
-
if (NUMBER_IS_NAN(t)) return t;
|
650
|
-
return YearFromTime(t);
|
651
|
-
}
|
652
|
-
|
653
|
-
|
654
|
-
// ECMA 262 - 15.9.5.12
|
655
|
-
function DateGetMonth() {
|
656
|
-
var t = DATE_VALUE(this);
|
657
|
-
if (NUMBER_IS_NAN(t)) return t;
|
658
|
-
return MonthFromTime(LocalTimeNoCheck(t));
|
659
|
-
}
|
660
|
-
|
661
|
-
|
662
|
-
// ECMA 262 - 15.9.5.13
|
663
|
-
function DateGetUTCMonth() {
|
664
|
-
var t = DATE_VALUE(this);
|
665
|
-
if (NUMBER_IS_NAN(t)) return t;
|
666
|
-
return MonthFromTime(t);
|
667
|
-
}
|
668
|
-
|
669
|
-
|
670
|
-
// ECMA 262 - 15.9.5.14
|
671
|
-
function DateGetDate() {
|
672
|
-
var t = DATE_VALUE(this);
|
673
|
-
if (NUMBER_IS_NAN(t)) return t;
|
674
|
-
return DateFromTime(LocalTimeNoCheck(t));
|
675
|
-
}
|
676
|
-
|
677
|
-
|
678
|
-
// ECMA 262 - 15.9.5.15
|
679
|
-
function DateGetUTCDate() {
|
680
|
-
var t = DATE_VALUE(this);
|
681
|
-
return NAN_OR_DATE_FROM_TIME(t);
|
682
|
-
}
|
683
|
-
|
684
|
-
|
685
|
-
// ECMA 262 - 15.9.5.16
|
686
|
-
function DateGetDay() {
|
687
|
-
var t = %_ValueOf(this);
|
688
|
-
if (NUMBER_IS_NAN(t)) return t;
|
689
|
-
return WeekDay(LocalTimeNoCheck(t));
|
690
|
-
}
|
691
|
-
|
692
|
-
|
693
|
-
// ECMA 262 - 15.9.5.17
|
694
|
-
function DateGetUTCDay() {
|
695
|
-
var t = %_ValueOf(this);
|
696
|
-
if (NUMBER_IS_NAN(t)) return t;
|
697
|
-
return WeekDay(t);
|
698
|
-
}
|
699
|
-
|
700
|
-
|
701
|
-
// ECMA 262 - 15.9.5.18
|
702
|
-
function DateGetHours() {
|
703
|
-
var t = DATE_VALUE(this);
|
704
|
-
if (NUMBER_IS_NAN(t)) return t;
|
705
|
-
return HOUR_FROM_TIME(LocalTimeNoCheck(t));
|
706
|
-
}
|
707
|
-
|
708
|
-
|
709
|
-
// ECMA 262 - 15.9.5.19
|
710
|
-
function DateGetUTCHours() {
|
711
|
-
var t = DATE_VALUE(this);
|
712
|
-
if (NUMBER_IS_NAN(t)) return t;
|
713
|
-
return HOUR_FROM_TIME(t);
|
714
|
-
}
|
715
|
-
|
716
|
-
|
717
|
-
// ECMA 262 - 15.9.5.20
|
718
|
-
function DateGetMinutes() {
|
719
|
-
var t = DATE_VALUE(this);
|
720
|
-
if (NUMBER_IS_NAN(t)) return t;
|
721
|
-
return MIN_FROM_TIME(LocalTimeNoCheck(t));
|
722
|
-
}
|
723
|
-
|
724
|
-
|
725
|
-
// ECMA 262 - 15.9.5.21
|
726
|
-
function DateGetUTCMinutes() {
|
727
|
-
var t = DATE_VALUE(this);
|
728
|
-
return NAN_OR_MIN_FROM_TIME(t);
|
729
|
-
}
|
730
|
-
|
731
|
-
|
732
|
-
// ECMA 262 - 15.9.5.22
|
733
|
-
function DateGetSeconds() {
|
734
|
-
var t = DATE_VALUE(this);
|
735
|
-
if (NUMBER_IS_NAN(t)) return t;
|
736
|
-
return SEC_FROM_TIME(LocalTimeNoCheck(t));
|
737
|
-
}
|
738
|
-
|
739
|
-
|
740
|
-
// ECMA 262 - 15.9.5.23
|
741
|
-
function DateGetUTCSeconds() {
|
742
|
-
var t = DATE_VALUE(this);
|
743
|
-
return NAN_OR_SEC_FROM_TIME(t);
|
744
|
-
}
|
745
|
-
|
746
|
-
|
747
|
-
// ECMA 262 - 15.9.5.24
|
748
|
-
function DateGetMilliseconds() {
|
749
|
-
var t = DATE_VALUE(this);
|
750
|
-
if (NUMBER_IS_NAN(t)) return t;
|
751
|
-
return MS_FROM_TIME(LocalTimeNoCheck(t));
|
752
|
-
}
|
753
|
-
|
754
|
-
|
755
|
-
// ECMA 262 - 15.9.5.25
|
756
|
-
function DateGetUTCMilliseconds() {
|
757
|
-
var t = DATE_VALUE(this);
|
758
|
-
return NAN_OR_MS_FROM_TIME(t);
|
759
|
-
}
|
760
|
-
|
761
|
-
|
762
|
-
// ECMA 262 - 15.9.5.26
|
763
|
-
function DateGetTimezoneOffset() {
|
764
|
-
var t = DATE_VALUE(this);
|
765
|
-
if (NUMBER_IS_NAN(t)) return t;
|
766
|
-
return (t - LocalTimeNoCheck(t)) / msPerMinute;
|
767
|
-
}
|
768
|
-
|
769
|
-
|
770
|
-
// ECMA 262 - 15.9.5.27
|
771
|
-
function DateSetTime(ms) {
|
772
|
-
if (!IS_DATE(this)) ThrowDateTypeError();
|
773
|
-
return %_SetValueOf(this, TimeClip(ToNumber(ms)));
|
774
|
-
}
|
775
|
-
|
776
|
-
|
777
|
-
// ECMA 262 - 15.9.5.28
|
778
|
-
function DateSetMilliseconds(ms) {
|
779
|
-
var t = LocalTime(DATE_VALUE(this));
|
780
|
-
ms = ToNumber(ms);
|
781
|
-
var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), SEC_FROM_TIME(t), ms);
|
782
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
|
783
|
-
}
|
784
|
-
|
785
|
-
|
786
|
-
// ECMA 262 - 15.9.5.29
|
787
|
-
function DateSetUTCMilliseconds(ms) {
|
788
|
-
var t = DATE_VALUE(this);
|
789
|
-
ms = ToNumber(ms);
|
790
|
-
var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), SEC_FROM_TIME(t), ms);
|
791
|
-
return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
|
792
|
-
}
|
793
|
-
|
794
|
-
|
795
|
-
// ECMA 262 - 15.9.5.30
|
796
|
-
function DateSetSeconds(sec, ms) {
|
797
|
-
var t = LocalTime(DATE_VALUE(this));
|
798
|
-
sec = ToNumber(sec);
|
799
|
-
ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
|
800
|
-
var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
|
801
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
|
802
|
-
}
|
803
|
-
|
804
|
-
|
805
|
-
// ECMA 262 - 15.9.5.31
|
806
|
-
function DateSetUTCSeconds(sec, ms) {
|
807
|
-
var t = DATE_VALUE(this);
|
808
|
-
sec = ToNumber(sec);
|
809
|
-
ms = %_ArgumentsLength() < 2 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
|
810
|
-
var time = MakeTime(HOUR_FROM_TIME(t), MIN_FROM_TIME(t), sec, ms);
|
811
|
-
return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
|
812
|
-
}
|
813
|
-
|
814
|
-
|
815
|
-
// ECMA 262 - 15.9.5.33
|
816
|
-
function DateSetMinutes(min, sec, ms) {
|
817
|
-
var t = LocalTime(DATE_VALUE(this));
|
818
|
-
min = ToNumber(min);
|
819
|
-
var argc = %_ArgumentsLength();
|
820
|
-
sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
|
821
|
-
ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
|
822
|
-
var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
|
823
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
|
824
|
-
}
|
825
|
-
|
826
|
-
|
827
|
-
// ECMA 262 - 15.9.5.34
|
828
|
-
function DateSetUTCMinutes(min, sec, ms) {
|
829
|
-
var t = DATE_VALUE(this);
|
830
|
-
min = ToNumber(min);
|
831
|
-
var argc = %_ArgumentsLength();
|
832
|
-
sec = argc < 2 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
|
833
|
-
ms = argc < 3 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
|
834
|
-
var time = MakeTime(HOUR_FROM_TIME(t), min, sec, ms);
|
835
|
-
return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
|
836
|
-
}
|
837
|
-
|
838
|
-
|
839
|
-
// ECMA 262 - 15.9.5.35
|
840
|
-
function DateSetHours(hour, min, sec, ms) {
|
841
|
-
var t = LocalTime(DATE_VALUE(this));
|
842
|
-
hour = ToNumber(hour);
|
843
|
-
var argc = %_ArgumentsLength();
|
844
|
-
min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
|
845
|
-
sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
|
846
|
-
ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
|
847
|
-
var time = MakeTime(hour, min, sec, ms);
|
848
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(DAY(t), time))));
|
849
|
-
}
|
850
|
-
|
851
|
-
|
852
|
-
// ECMA 262 - 15.9.5.34
|
853
|
-
function DateSetUTCHours(hour, min, sec, ms) {
|
854
|
-
var t = DATE_VALUE(this);
|
855
|
-
hour = ToNumber(hour);
|
856
|
-
var argc = %_ArgumentsLength();
|
857
|
-
min = argc < 2 ? NAN_OR_MIN_FROM_TIME(t) : ToNumber(min);
|
858
|
-
sec = argc < 3 ? NAN_OR_SEC_FROM_TIME(t) : ToNumber(sec);
|
859
|
-
ms = argc < 4 ? NAN_OR_MS_FROM_TIME(t) : ToNumber(ms);
|
860
|
-
var time = MakeTime(hour, min, sec, ms);
|
861
|
-
return %_SetValueOf(this, TimeClip(MakeDate(DAY(t), time)));
|
862
|
-
}
|
863
|
-
|
864
|
-
|
865
|
-
// ECMA 262 - 15.9.5.36
|
866
|
-
function DateSetDate(date) {
|
867
|
-
var t = LocalTime(DATE_VALUE(this));
|
868
|
-
date = ToNumber(date);
|
869
|
-
var day = MakeDay(YearFromTime(t), MonthFromTime(t), date);
|
870
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
|
871
|
-
}
|
872
|
-
|
873
|
-
|
874
|
-
// ECMA 262 - 15.9.5.37
|
875
|
-
function DateSetUTCDate(date) {
|
876
|
-
var t = DATE_VALUE(this);
|
877
|
-
date = ToNumber(date);
|
878
|
-
var day = MakeDay(YearFromTime(t), MonthFromTime(t), date);
|
879
|
-
return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
|
880
|
-
}
|
881
|
-
|
882
|
-
|
883
|
-
// ECMA 262 - 15.9.5.38
|
884
|
-
function DateSetMonth(month, date) {
|
885
|
-
var t = LocalTime(DATE_VALUE(this));
|
886
|
-
month = ToNumber(month);
|
887
|
-
date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
|
888
|
-
var day = MakeDay(YearFromTime(t), month, date);
|
889
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
|
890
|
-
}
|
891
|
-
|
892
|
-
|
893
|
-
// ECMA 262 - 15.9.5.39
|
894
|
-
function DateSetUTCMonth(month, date) {
|
895
|
-
var t = DATE_VALUE(this);
|
896
|
-
month = ToNumber(month);
|
897
|
-
date = %_ArgumentsLength() < 2 ? NAN_OR_DATE_FROM_TIME(t) : ToNumber(date);
|
898
|
-
var day = MakeDay(YearFromTime(t), month, date);
|
899
|
-
return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
|
900
|
-
}
|
901
|
-
|
902
|
-
|
903
|
-
// ECMA 262 - 15.9.5.40
|
904
|
-
function DateSetFullYear(year, month, date) {
|
905
|
-
var t = DATE_VALUE(this);
|
906
|
-
t = NUMBER_IS_NAN(t) ? 0 : LocalTimeNoCheck(t);
|
907
|
-
year = ToNumber(year);
|
908
|
-
var argc = %_ArgumentsLength();
|
909
|
-
month = argc < 2 ? MonthFromTime(t) : ToNumber(month);
|
910
|
-
date = argc < 3 ? DateFromTime(t) : ToNumber(date);
|
911
|
-
var day = MakeDay(year, month, date);
|
912
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
|
913
|
-
}
|
914
|
-
|
915
|
-
|
916
|
-
// ECMA 262 - 15.9.5.41
|
917
|
-
function DateSetUTCFullYear(year, month, date) {
|
918
|
-
var t = DATE_VALUE(this);
|
919
|
-
if (NUMBER_IS_NAN(t)) t = 0;
|
920
|
-
var argc = %_ArgumentsLength();
|
921
|
-
year = ToNumber(year);
|
922
|
-
month = argc < 2 ? MonthFromTime(t) : ToNumber(month);
|
923
|
-
date = argc < 3 ? DateFromTime(t) : ToNumber(date);
|
924
|
-
var day = MakeDay(year, month, date);
|
925
|
-
return %_SetValueOf(this, TimeClip(MakeDate(day, TimeWithinDay(t))));
|
926
|
-
}
|
927
|
-
|
928
|
-
|
929
|
-
// ECMA 262 - 15.9.5.42
|
930
|
-
function DateToUTCString() {
|
931
|
-
var t = DATE_VALUE(this);
|
932
|
-
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
933
|
-
// Return UTC string of the form: Sat, 31 Jan 1970 23:00:00 GMT
|
934
|
-
return WeekDays[WeekDay(t)] + ', '
|
935
|
-
+ TwoDigitString(DateFromTime(t)) + ' '
|
936
|
-
+ Months[MonthFromTime(t)] + ' '
|
937
|
-
+ YearFromTime(t) + ' '
|
938
|
-
+ TimeString(t) + ' GMT';
|
939
|
-
}
|
940
|
-
|
941
|
-
|
942
|
-
// ECMA 262 - B.2.4
|
943
|
-
function DateGetYear() {
|
944
|
-
var t = DATE_VALUE(this);
|
945
|
-
if (NUMBER_IS_NAN(t)) return $NaN;
|
946
|
-
return YearFromTime(LocalTimeNoCheck(t)) - 1900;
|
947
|
-
}
|
948
|
-
|
949
|
-
|
950
|
-
// ECMA 262 - B.2.5
|
951
|
-
function DateSetYear(year) {
|
952
|
-
var t = LocalTime(DATE_VALUE(this));
|
953
|
-
if (NUMBER_IS_NAN(t)) t = 0;
|
954
|
-
year = ToNumber(year);
|
955
|
-
if (NUMBER_IS_NAN(year)) return %_SetValueOf(this, $NaN);
|
956
|
-
year = (0 <= TO_INTEGER(year) && TO_INTEGER(year) <= 99)
|
957
|
-
? 1900 + TO_INTEGER(year) : year;
|
958
|
-
var day = MakeDay(year, MonthFromTime(t), DateFromTime(t));
|
959
|
-
return %_SetValueOf(this, TimeClip(UTC(MakeDate(day, TimeWithinDay(t)))));
|
960
|
-
}
|
961
|
-
|
962
|
-
|
963
|
-
// ECMA 262 - B.2.6
|
964
|
-
//
|
965
|
-
// Notice that this does not follow ECMA 262 completely. ECMA 262
|
966
|
-
// says that toGMTString should be the same Function object as
|
967
|
-
// toUTCString. JSC does not do this, so for compatibility we do not
|
968
|
-
// do that either. Instead, we create a new function whose name
|
969
|
-
// property will return toGMTString.
|
970
|
-
function DateToGMTString() {
|
971
|
-
return %_CallFunction(this, DateToUTCString);
|
972
|
-
}
|
973
|
-
|
974
|
-
|
975
|
-
function PadInt(n, digits) {
|
976
|
-
if (digits == 1) return n;
|
977
|
-
return n < MathPow(10, digits - 1) ? '0' + PadInt(n, digits - 1) : n;
|
978
|
-
}
|
979
|
-
|
980
|
-
|
981
|
-
function DateToISOString() {
|
982
|
-
var t = DATE_VALUE(this);
|
983
|
-
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
984
|
-
return this.getUTCFullYear() +
|
985
|
-
'-' + PadInt(this.getUTCMonth() + 1, 2) +
|
986
|
-
'-' + PadInt(this.getUTCDate(), 2) +
|
987
|
-
'T' + PadInt(this.getUTCHours(), 2) +
|
988
|
-
':' + PadInt(this.getUTCMinutes(), 2) +
|
989
|
-
':' + PadInt(this.getUTCSeconds(), 2) +
|
990
|
-
'.' + PadInt(this.getUTCMilliseconds(), 3) +
|
991
|
-
'Z';
|
992
|
-
}
|
993
|
-
|
994
|
-
|
995
|
-
function DateToJSON(key) {
|
996
|
-
var o = ToObject(this);
|
997
|
-
var tv = DefaultNumber(o);
|
998
|
-
if (IS_NUMBER(tv) && !NUMBER_IS_FINITE(tv)) {
|
999
|
-
return null;
|
1000
|
-
}
|
1001
|
-
return o.toISOString();
|
1002
|
-
}
|
1003
|
-
|
1004
|
-
|
1005
|
-
function ResetDateCache() {
|
1006
|
-
|
1007
|
-
// Reset the local_time_offset:
|
1008
|
-
local_time_offset = %DateLocalTimeOffset();
|
1009
|
-
|
1010
|
-
// Reset the DST offset cache:
|
1011
|
-
var cache = DST_offset_cache;
|
1012
|
-
cache.offset = 0;
|
1013
|
-
cache.start = 0;
|
1014
|
-
cache.end = -1;
|
1015
|
-
cache.increment = 0;
|
1016
|
-
cache.initial_increment = 19 * msPerDay;
|
1017
|
-
|
1018
|
-
// Reset the timezone cache:
|
1019
|
-
timezone_cache_time = $NaN;
|
1020
|
-
timezone_cache_timezone = undefined;
|
1021
|
-
|
1022
|
-
// Reset the ltcache:
|
1023
|
-
ltcache.key = null;
|
1024
|
-
ltcache.val = null;
|
1025
|
-
|
1026
|
-
// Reset the ymd_from_time_cache:
|
1027
|
-
ymd_from_time_cache = [$NaN, $NaN, $NaN];
|
1028
|
-
ymd_from_time_cached_time = $NaN;
|
1029
|
-
|
1030
|
-
// Reset the date cache:
|
1031
|
-
cache = Date_cache;
|
1032
|
-
cache.time = $NaN;
|
1033
|
-
cache.year = $NaN;
|
1034
|
-
cache.string = null;
|
1035
|
-
}
|
1036
|
-
|
1037
|
-
|
1038
|
-
// -------------------------------------------------------------------
|
1039
|
-
|
1040
|
-
function SetupDate() {
|
1041
|
-
// Setup non-enumerable properties of the Date object itself.
|
1042
|
-
InstallFunctions($Date, DONT_ENUM, $Array(
|
1043
|
-
"UTC", DateUTC,
|
1044
|
-
"parse", DateParse,
|
1045
|
-
"now", DateNow
|
1046
|
-
));
|
1047
|
-
|
1048
|
-
// Setup non-enumerable constructor property of the Date prototype object.
|
1049
|
-
%SetProperty($Date.prototype, "constructor", $Date, DONT_ENUM);
|
1050
|
-
|
1051
|
-
// Setup non-enumerable functions of the Date prototype object and
|
1052
|
-
// set their names.
|
1053
|
-
InstallFunctionsOnHiddenPrototype($Date.prototype, DONT_ENUM, $Array(
|
1054
|
-
"toString", DateToString,
|
1055
|
-
"toDateString", DateToDateString,
|
1056
|
-
"toTimeString", DateToTimeString,
|
1057
|
-
"toLocaleString", DateToLocaleString,
|
1058
|
-
"toLocaleDateString", DateToLocaleDateString,
|
1059
|
-
"toLocaleTimeString", DateToLocaleTimeString,
|
1060
|
-
"valueOf", DateValueOf,
|
1061
|
-
"getTime", DateGetTime,
|
1062
|
-
"getFullYear", DateGetFullYear,
|
1063
|
-
"getUTCFullYear", DateGetUTCFullYear,
|
1064
|
-
"getMonth", DateGetMonth,
|
1065
|
-
"getUTCMonth", DateGetUTCMonth,
|
1066
|
-
"getDate", DateGetDate,
|
1067
|
-
"getUTCDate", DateGetUTCDate,
|
1068
|
-
"getDay", DateGetDay,
|
1069
|
-
"getUTCDay", DateGetUTCDay,
|
1070
|
-
"getHours", DateGetHours,
|
1071
|
-
"getUTCHours", DateGetUTCHours,
|
1072
|
-
"getMinutes", DateGetMinutes,
|
1073
|
-
"getUTCMinutes", DateGetUTCMinutes,
|
1074
|
-
"getSeconds", DateGetSeconds,
|
1075
|
-
"getUTCSeconds", DateGetUTCSeconds,
|
1076
|
-
"getMilliseconds", DateGetMilliseconds,
|
1077
|
-
"getUTCMilliseconds", DateGetUTCMilliseconds,
|
1078
|
-
"getTimezoneOffset", DateGetTimezoneOffset,
|
1079
|
-
"setTime", DateSetTime,
|
1080
|
-
"setMilliseconds", DateSetMilliseconds,
|
1081
|
-
"setUTCMilliseconds", DateSetUTCMilliseconds,
|
1082
|
-
"setSeconds", DateSetSeconds,
|
1083
|
-
"setUTCSeconds", DateSetUTCSeconds,
|
1084
|
-
"setMinutes", DateSetMinutes,
|
1085
|
-
"setUTCMinutes", DateSetUTCMinutes,
|
1086
|
-
"setHours", DateSetHours,
|
1087
|
-
"setUTCHours", DateSetUTCHours,
|
1088
|
-
"setDate", DateSetDate,
|
1089
|
-
"setUTCDate", DateSetUTCDate,
|
1090
|
-
"setMonth", DateSetMonth,
|
1091
|
-
"setUTCMonth", DateSetUTCMonth,
|
1092
|
-
"setFullYear", DateSetFullYear,
|
1093
|
-
"setUTCFullYear", DateSetUTCFullYear,
|
1094
|
-
"toGMTString", DateToGMTString,
|
1095
|
-
"toUTCString", DateToUTCString,
|
1096
|
-
"getYear", DateGetYear,
|
1097
|
-
"setYear", DateSetYear,
|
1098
|
-
"toISOString", DateToISOString,
|
1099
|
-
"toJSON", DateToJSON
|
1100
|
-
));
|
1101
|
-
}
|
1102
|
-
|
1103
|
-
SetupDate();
|