therubyracer 0.6.3 → 0.7.0.pre
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/Rakefile +10 -9
- data/ext/v8/callbacks.cpp +15 -8
- data/ext/v8/converters.cpp +7 -8
- data/ext/v8/converters.h +0 -2
- data/ext/v8/extconf.rb +2 -0
- data/ext/v8/rr.cpp +169 -0
- data/ext/v8/rr.h +34 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/AUTHORS +8 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/ChangeLog +198 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/LICENSE +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/SConstruct +152 -38
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8-debug.h +52 -4
- data/ext/v8/upstream/2.1.10/include/v8-profiler.h +176 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/include/v8.h +227 -48
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/SConscript +60 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.cc +5 -39
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/accessors.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/allocation.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.cc +477 -57
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/api.h +8 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apinatives.js +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/apiutils.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arguments.h +5 -6
- data/ext/v8/upstream/{2.0.6/src/arm/assembler-thumb2-inl.h → 2.1.10/src/arm/assembler-arm-inl.h} +42 -27
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.cc +430 -216
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-arm.h +199 -110
- data/ext/v8/upstream/{2.0.6/src/arm/assembler-arm-inl.h → 2.1.10/src/arm/assembler-thumb2-inl.h} +4 -18
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.cc +142 -85
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/assembler-thumb2.h +18 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/builtins-arm.cc +127 -87
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm-inl.h +3 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/codegen-arm.cc +4634 -1427
- data/ext/v8/upstream/2.1.10/src/arm/codegen-arm.h +946 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.cc +21 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/constants-arm.h +39 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/cpu-arm.cc +9 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/debug-arm.cc +34 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/disasm-arm.cc +262 -117
- data/ext/v8/upstream/2.1.10/src/arm/fast-codegen-arm.cc +238 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/frames-arm.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/arm/fast-codegen-arm.cc → 2.1.10/src/arm/full-codegen-arm.cc} +453 -283
- data/ext/v8/upstream/2.1.10/src/arm/ic-arm.cc +1833 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/jump-target-arm.cc +3 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.cc +564 -104
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/macro-assembler-arm.h +255 -46
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.cc +78 -104
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/regexp-macro-assembler-arm.h +6 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm-inl.h +0 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/register-allocator-arm.h +2 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.cc +557 -180
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/simulator-arm.h +52 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/arm/stub-cache-arm.cc +904 -240
- data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.cc +668 -0
- data/ext/v8/upstream/2.1.10/src/arm/virtual-frame-arm.h +503 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/array.js +82 -109
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.cc +49 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/assembler.h +27 -5
- data/ext/v8/upstream/2.1.10/src/ast.cc +1138 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ast.h +354 -53
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.cc +609 -501
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bootstrapper.h +27 -8
- data/ext/v8/upstream/2.1.10/src/builtins.cc +1512 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/builtins.h +41 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/bytecodes-irregexp.h +0 -0
- data/ext/v8/upstream/2.1.10/src/cached-powers.h +119 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/char-predicates.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/checks.h +25 -1
- data/ext/v8/upstream/2.1.10/src/circular-queue-inl.h +101 -0
- data/ext/v8/upstream/2.1.10/src/circular-queue.cc +121 -0
- data/ext/v8/upstream/2.1.10/src/circular-queue.h +129 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.cc +23 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code-stubs.h +16 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/code.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen-inl.h +6 -34
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.cc +73 -92
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/codegen.h +164 -68
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.cc +117 -73
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/compilation-cache.h +18 -17
- data/ext/v8/upstream/2.1.10/src/compiler.cc +623 -0
- data/ext/v8/upstream/2.1.10/src/compiler.h +299 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/contexts.h +8 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions-inl.h +28 -13
- data/ext/v8/upstream/2.1.10/src/conversions.cc +1105 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/conversions.h +9 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/counters.h +1 -1
- data/ext/v8/upstream/2.1.10/src/cpu-profiler-inl.h +99 -0
- data/ext/v8/upstream/2.1.10/src/cpu-profiler.cc +494 -0
- data/ext/v8/upstream/2.1.10/src/cpu-profiler.h +277 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/cpu.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.cc +15 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-debug.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-posix.cc +18 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-readline.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8-windows.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.cc +10 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/d8.js +43 -38
- data/ext/v8/upstream/2.1.10/src/data-flow.cc +755 -0
- data/ext/v8/upstream/2.1.10/src/data-flow.h +278 -0
- data/ext/v8/upstream/{2.0.6/src/date-delay.js → 2.1.10/src/date.js} +100 -110
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser-inl.h +11 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.cc +24 -26
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dateparser.h +8 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.cc +3 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug-agent.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/debug-delay.js → 2.1.10/src/debug-debugger.js} +111 -15
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.cc +156 -96
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/debug.h +53 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disasm.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.cc +2 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/disassembler.h +0 -0
- data/ext/v8/upstream/2.1.10/src/diy-fp.cc +58 -0
- data/ext/v8/upstream/2.1.10/src/diy-fp.h +117 -0
- data/ext/v8/upstream/2.1.10/src/double.h +169 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/dtoa-config.c +4 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.cc +22 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/execution.h +17 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.cc +70 -46
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/factory.h +27 -17
- data/ext/v8/upstream/2.1.10/src/fast-codegen.cc +746 -0
- data/ext/v8/upstream/2.1.10/src/fast-codegen.h +161 -0
- data/ext/v8/upstream/2.1.10/src/fast-dtoa.cc +512 -0
- data/ext/v8/upstream/2.1.10/src/fast-dtoa.h +59 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flag-definitions.h +32 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/flags.h +0 -0
- data/ext/v8/upstream/2.1.10/src/flow-graph.cc +763 -0
- data/ext/v8/upstream/2.1.10/src/flow-graph.h +180 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.cc +1 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frame-element.h +49 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames-inl.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.cc +91 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/frames.h +24 -2
- data/ext/v8/upstream/{2.0.6/src/fast-codegen.cc → 2.1.10/src/full-codegen.cc} +549 -198
- data/ext/v8/upstream/{2.0.6/src/fast-codegen.h → 2.1.10/src/full-codegen.h} +109 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/func-name-inferrer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/global-handles.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/globals.h +67 -43
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.cc +124 -129
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/handles.h +33 -15
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/hashmap.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-inl.h +56 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap-profiler.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.cc +413 -221
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/heap.h +192 -67
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32-inl.h +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.cc +187 -32
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/assembler-ia32.h +31 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/builtins-ia32.cc +160 -133
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/codegen-ia32.cc +5533 -2177
- data/ext/v8/upstream/{2.0.6/src/x64/codegen-x64.h → 2.1.10/src/ia32/codegen-ia32.h} +453 -134
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/cpu-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/debug-ia32.cc +63 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/disasm-ia32.cc +99 -16
- data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.cc +950 -0
- data/ext/v8/upstream/2.1.10/src/ia32/fast-codegen-ia32.h +155 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/frames-ia32.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/ia32/fast-codegen-ia32.cc → 2.1.10/src/ia32/full-codegen-ia32.cc} +454 -253
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/ic-ia32.cc +545 -390
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/jump-target-ia32.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.cc +330 -139
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/macro-assembler-ia32.h +96 -30
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.cc +73 -89
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/regexp-macro-assembler-ia32.h +6 -21
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.cc +59 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/register-allocator-ia32.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/simulator-ia32.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/stub-cache-ia32.cc +745 -303
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.cc +278 -71
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ia32/virtual-frame-ia32.h +78 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.cc +172 -89
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/ic.h +51 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/interpreter-irregexp.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/json-delay.js → 2.1.10/src/json.js} +26 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.cc +151 -118
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jsregexp.h +31 -7
- data/ext/v8/upstream/2.1.10/src/jump-target-heavy-inl.h +51 -0
- data/ext/v8/upstream/{2.0.6/src/jump-target.cc → 2.1.10/src/jump-target-heavy.cc} +164 -184
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target-inl.h +8 -9
- data/ext/v8/upstream/{2.0.6/src/usage-analyzer.h → 2.1.10/src/jump-target-light-inl.h} +9 -7
- data/ext/v8/upstream/2.1.10/src/jump-target-light.cc +86 -0
- data/ext/v8/upstream/2.1.10/src/jump-target.cc +155 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/jump-target.h +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/list.h +2 -1
- data/ext/v8/upstream/2.1.10/src/liveedit-debugger.js +944 -0
- data/ext/v8/upstream/2.1.10/src/liveedit.cc +1468 -0
- data/ext/v8/upstream/2.1.10/src/liveedit.h +170 -0
- data/ext/v8/upstream/2.1.10/src/log-inl.h +59 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.cc +3 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log-utils.h +1 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.cc +198 -95
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/log.h +50 -49
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macro-assembler.h +9 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/macros.py +30 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.cc +464 -152
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mark-compact.h +41 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/math.js +9 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/memory.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/messages.js +46 -9
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips-inl.h +215 -0
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.cc +1208 -0
- data/ext/v8/upstream/2.1.10/src/mips/assembler-mips.h +665 -0
- data/ext/v8/upstream/2.1.10/src/mips/builtins-mips.cc +202 -0
- data/ext/v8/upstream/2.1.10/src/mips/codegen-mips-inl.h +70 -0
- data/ext/v8/upstream/2.1.10/src/mips/codegen-mips.cc +1428 -0
- data/ext/v8/upstream/{2.0.6/src/arm/codegen-arm.h → 2.1.10/src/mips/codegen-mips.h} +103 -205
- data/ext/v8/upstream/2.1.10/src/mips/constants-mips.cc +323 -0
- data/ext/v8/upstream/2.1.10/src/mips/constants-mips.h +525 -0
- data/ext/v8/upstream/2.1.10/src/mips/cpu-mips.cc +69 -0
- data/ext/v8/upstream/2.1.10/src/mips/debug-mips.cc +128 -0
- data/ext/v8/upstream/2.1.10/src/mips/disasm-mips.cc +784 -0
- data/ext/v8/upstream/2.1.10/src/mips/fast-codegen-mips.cc +74 -0
- data/ext/v8/upstream/2.1.10/src/mips/frames-mips.cc +99 -0
- data/ext/v8/upstream/2.1.10/src/mips/frames-mips.h +164 -0
- data/ext/v8/upstream/2.1.10/src/mips/full-codegen-mips.cc +273 -0
- data/ext/v8/upstream/2.1.10/src/mips/ic-mips.cc +217 -0
- data/ext/v8/upstream/2.1.10/src/mips/jump-target-mips.cc +172 -0
- data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.cc +1323 -0
- data/ext/v8/upstream/2.1.10/src/mips/macro-assembler-mips.h +461 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips-inl.h +137 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.cc +60 -0
- data/ext/v8/upstream/2.1.10/src/mips/register-allocator-mips.h +46 -0
- data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.cc +1648 -0
- data/ext/v8/upstream/2.1.10/src/mips/simulator-mips.h +311 -0
- data/ext/v8/upstream/2.1.10/src/mips/stub-cache-mips.cc +400 -0
- data/ext/v8/upstream/2.1.10/src/mips/virtual-frame-mips.cc +316 -0
- data/ext/v8/upstream/{2.0.6/src/arm/virtual-frame-arm.h → 2.1.10/src/mips/virtual-frame-mips.h} +87 -71
- data/ext/v8/upstream/{2.0.6/src/mirror-delay.js → 2.1.10/src/mirror-debugger.js} +51 -45
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/mksnapshot.cc +97 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/natives.h +6 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-debug.cc +47 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects-inl.h +154 -38
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.cc +528 -280
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/objects.h +302 -95
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.cc +25 -33
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/oprofile-agent.h +9 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.cc +444 -72
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/parser.h +4 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-freebsd.cc +32 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-linux.cc +59 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-macos.cc +30 -13
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-nullos.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-openbsd.cc +21 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-posix.cc +0 -18
- data/ext/v8/upstream/2.1.10/src/platform-solaris.cc +607 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform-win32.cc +16 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/platform.h +25 -8
- data/ext/v8/upstream/2.1.10/src/powers-ten.h +2461 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.cc +49 -29
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/prettyprinter.h +3 -1
- data/ext/v8/upstream/2.1.10/src/profile-generator-inl.h +124 -0
- data/ext/v8/upstream/2.1.10/src/profile-generator.cc +583 -0
- data/ext/v8/upstream/2.1.10/src/profile-generator.h +364 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.cc +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/property.h +12 -24
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp-inl.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-irregexp.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.cc +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler-tracer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.cc +33 -10
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-macro-assembler.h +12 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/regexp-stack.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/regexp-delay.js → 2.1.10/src/regexp.js} +180 -58
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator-inl.h +68 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.cc +5 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/register-allocator.h +42 -17
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.cc +110 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/rewriter.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.cc +2733 -623
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.h +43 -20
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/runtime.js +46 -35
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.cc +278 -36
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scanner.h +97 -26
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.cc +3 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopeinfo.h +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.cc +11 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/scopes.h +0 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.cc +298 -175
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/serialize.h +184 -40
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/shell.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/simulator.h +2 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/smart-pointer.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot-common.cc +16 -31
- data/ext/v8/upstream/2.1.10/src/snapshot-empty.cc +50 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/snapshot.h +13 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces-inl.h +35 -27
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.cc +256 -42
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/spaces.h +136 -42
- data/ext/v8/upstream/{2.0.6/src/zone-inl.h → 2.1.10/src/splay-tree-inl.h} +102 -89
- data/ext/v8/upstream/2.1.10/src/splay-tree.h +203 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string-stream.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/string.js +260 -149
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.cc +195 -69
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/stub-cache.h +127 -12
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/COPYING +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/dtoa/dtoa.c +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/third_party/valgrind/valgrind.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/token.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.cc +26 -31
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/top.h +3 -4
- data/ext/v8/upstream/2.1.10/src/type-info.cc +53 -0
- data/ext/v8/upstream/2.1.10/src/type-info.h +244 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/unicode.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/uri.js +6 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.cc +0 -37
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/utils.h +121 -50
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8-counters.h +130 -98
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.cc +42 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8.h +4 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8natives.js +202 -37
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.cc +11 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/v8threads.h +15 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.cc +7 -51
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/variables.h +5 -35
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.cc +3 -3
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/version.h +0 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-heavy-inl.h +152 -0
- data/ext/v8/upstream/{2.0.6/src/virtual-frame.cc → 2.1.10/src/virtual-frame-heavy.cc} +107 -176
- data/ext/v8/upstream/2.1.10/src/virtual-frame-inl.h +39 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-light-inl.h +69 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame-light.cc +49 -0
- data/ext/v8/upstream/2.1.10/src/virtual-frame.cc +49 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/virtual-frame.h +2 -0
- data/ext/v8/upstream/{2.0.6/src/log-inl.h → 2.1.10/src/vm-state-inl.h} +28 -20
- data/ext/v8/upstream/{2.0.6/src/snapshot-empty.cc → 2.1.10/src/vm-state.cc} +5 -6
- data/ext/v8/upstream/2.1.10/src/vm-state.h +75 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64-inl.h +11 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.cc +285 -93
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/assembler-x64.h +81 -78
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/builtins-x64.cc +130 -87
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64-inl.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/codegen-x64.cc +4520 -1317
- data/ext/v8/upstream/{2.0.6/src/ia32/codegen-ia32.h → 2.1.10/src/x64/codegen-x64.h} +362 -141
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/cpu-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/debug-x64.cc +20 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/disasm-x64.cc +121 -44
- data/ext/v8/upstream/2.1.10/src/x64/fast-codegen-x64.cc +246 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/frames-x64.h +0 -0
- data/ext/v8/upstream/{2.0.6/src/x64/fast-codegen-x64.cc → 2.1.10/src/x64/full-codegen-x64.cc} +404 -231
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/ic-x64.cc +346 -117
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/jump-target-x64.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.cc +537 -181
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/macro-assembler-x64.h +140 -34
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.cc +74 -96
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/regexp-macro-assembler-x64.h +8 -25
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64-inl.h +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.cc +3 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/register-allocator-x64.h +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.cc +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/simulator-x64.h +2 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/stub-cache-x64.cc +785 -288
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.cc +128 -52
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/x64/virtual-frame-x64.h +40 -19
- data/ext/v8/upstream/2.1.10/src/zone-inl.h +82 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.cc +1 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/src/zone.h +6 -90
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/codemap.js +12 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/consarray.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/csvparser.js +22 -37
- data/ext/v8/upstream/2.1.10/tools/generate-ten-powers.scm +286 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/gyp/v8.gyp +86 -24
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/js2c.py +22 -22
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/jsmin.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor +10 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/linux-tick-processor.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/logreader.js +34 -16
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-nm +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/mac-tick-processor +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/annotate +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/common +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/dump +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/report +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/reset +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/run +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/shutdown +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/oprofile/start +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/presubmit.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/process-heap-prof.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile.js +70 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/profile_view.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/run-valgrind.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.js +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/splaytree.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/stats-viewer.py +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/test.py +7 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor-driver.js +7 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.js +140 -9
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/tickprocessor.py +40 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/utils.py +6 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/README.txt +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/arm.vsprops +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/common.vsprops +1 -2
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_arm.vcproj +193 -199
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8_x64.vcproj +16 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/d8js2c.cmd +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/debug.vsprops +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/ia32.vsprops +5 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/js2c.cmd +1 -1
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/release.vsprops +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8.vcproj +11 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_arm.vcproj +227 -223
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base.vcproj +137 -5
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_arm.vcproj +116 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_base_x64.vcproj +125 -4
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest.vcproj +12 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_arm.vcproj +12 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_cctest_x64.vcproj +11 -11
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_arm.vcproj +145 -151
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_process_sample_x64.vcproj +16 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample.vcproj +0 -6
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_arm.vcproj +145 -151
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_shell_sample_x64.vcproj +16 -8
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.sln +0 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/v8_x64.vcproj +11 -7
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/visual_studio/x64.vsprops +5 -1
- data/ext/v8/upstream/2.1.10/tools/windows-tick-processor.bat +29 -0
- data/ext/v8/upstream/{2.0.6 → 2.1.10}/tools/windows-tick-processor.py +0 -0
- data/ext/v8/upstream/Makefile +8 -2
- data/ext/v8/v8.cpp +21 -73
- data/ext/v8/v8_array.cpp +56 -0
- data/ext/v8/v8_array.h +8 -0
- data/ext/v8/v8_callbacks.cpp +121 -0
- data/ext/v8/v8_callbacks.h +8 -0
- data/ext/v8/v8_cxt.cpp +74 -77
- data/ext/v8/v8_cxt.h +2 -9
- data/ext/v8/v8_date.cpp +26 -0
- data/ext/v8/v8_date.h +6 -0
- data/ext/v8/v8_exception.cpp +55 -0
- data/ext/v8/v8_exception.h +6 -0
- data/ext/v8/v8_external.cpp +50 -0
- data/ext/v8/v8_external.h +8 -0
- data/ext/v8/v8_func.cpp +76 -18
- data/ext/v8/v8_func.h +5 -4
- data/ext/v8/v8_msg.cpp +55 -46
- data/ext/v8/v8_msg.h +3 -11
- data/ext/v8/v8_obj.cpp +67 -36
- data/ext/v8/v8_obj.h +6 -8
- data/ext/v8/v8_ref.cpp +25 -9
- data/ext/v8/v8_ref.h +3 -5
- data/ext/v8/v8_script.cpp +17 -10
- data/ext/v8/v8_script.h +3 -3
- data/ext/v8/v8_str.cpp +34 -6
- data/ext/v8/v8_str.h +4 -2
- data/ext/v8/v8_template.cpp +195 -33
- data/ext/v8/v8_template.h +4 -5
- data/ext/v8/v8_try_catch.cpp +99 -0
- data/ext/v8/v8_try_catch.h +5 -0
- data/ext/v8/v8_value.cpp +164 -0
- data/ext/v8/v8_value.h +10 -0
- data/lib/v8.rb +3 -1
- data/lib/v8/access.rb +60 -0
- data/lib/v8/array.rb +15 -0
- data/lib/v8/callbacks.rb +88 -0
- data/lib/v8/cli.rb +1 -1
- data/lib/v8/context.rb +55 -66
- data/lib/v8/function.rb +20 -2
- data/lib/v8/object.rb +14 -12
- data/lib/v8/ruby_error.rb +3 -0
- data/lib/v8/to.rb +59 -7
- data/spec/ext/cxt_spec.rb +2 -15
- data/spec/ext/func_spec.rb +17 -10
- data/spec/ext/try_catch_spec.rb +32 -0
- data/spec/foo.rb +17 -0
- data/spec/redjs/jsapi_spec.rb +173 -96
- data/spec/spec_helper.rb +7 -0
- data/spec/v8/to_spec.rb +0 -1
- data/therubyracer.gemspec +6 -6
- metadata +493 -386
- data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +0 -849
- data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +0 -412
- data/ext/v8/upstream/2.0.6/src/ast.cc +0 -512
- data/ext/v8/upstream/2.0.6/src/builtins.cc +0 -851
- data/ext/v8/upstream/2.0.6/src/compiler.cc +0 -1132
- data/ext/v8/upstream/2.0.6/src/compiler.h +0 -107
- data/ext/v8/upstream/2.0.6/src/conversions.cc +0 -709
- data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +0 -426
- data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +0 -5
- data/ext/v8/upstream/no-strict-aliasing.patch +0 -13
- data/ext/v8/v8_standalone.cpp +0 -69
- data/ext/v8/v8_standalone.h +0 -31
- data/spec/ext/obj_spec.rb +0 -13
@@ -0,0 +1,278 @@
|
|
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
|
+
explicit BitVector(int length)
|
46
|
+
: length_(length),
|
47
|
+
data_length_(SizeFor(length)),
|
48
|
+
data_(Zone::NewArray<uint32_t>(data_length_)) {
|
49
|
+
ASSERT(length > 0);
|
50
|
+
Clear();
|
51
|
+
}
|
52
|
+
|
53
|
+
BitVector(const BitVector& other)
|
54
|
+
: length_(other.length()),
|
55
|
+
data_length_(SizeFor(length_)),
|
56
|
+
data_(Zone::NewArray<uint32_t>(data_length_)) {
|
57
|
+
CopyFrom(other);
|
58
|
+
}
|
59
|
+
|
60
|
+
static int SizeFor(int length) {
|
61
|
+
return 1 + ((length - 1) / 32);
|
62
|
+
}
|
63
|
+
|
64
|
+
BitVector& operator=(const BitVector& rhs) {
|
65
|
+
if (this != &rhs) CopyFrom(rhs);
|
66
|
+
return *this;
|
67
|
+
}
|
68
|
+
|
69
|
+
void CopyFrom(const BitVector& other) {
|
70
|
+
ASSERT(other.length() == length());
|
71
|
+
for (int i = 0; i < data_length_; i++) {
|
72
|
+
data_[i] = other.data_[i];
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
bool Contains(int i) {
|
77
|
+
ASSERT(i >= 0 && i < length());
|
78
|
+
uint32_t block = data_[i / 32];
|
79
|
+
return (block & (1U << (i % 32))) != 0;
|
80
|
+
}
|
81
|
+
|
82
|
+
void Add(int i) {
|
83
|
+
ASSERT(i >= 0 && i < length());
|
84
|
+
data_[i / 32] |= (1U << (i % 32));
|
85
|
+
}
|
86
|
+
|
87
|
+
void Remove(int i) {
|
88
|
+
ASSERT(i >= 0 && i < length());
|
89
|
+
data_[i / 32] &= ~(1U << (i % 32));
|
90
|
+
}
|
91
|
+
|
92
|
+
void Union(const BitVector& other) {
|
93
|
+
ASSERT(other.length() == length());
|
94
|
+
for (int i = 0; i < data_length_; i++) {
|
95
|
+
data_[i] |= other.data_[i];
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
void Intersect(const BitVector& other) {
|
100
|
+
ASSERT(other.length() == length());
|
101
|
+
for (int i = 0; i < data_length_; i++) {
|
102
|
+
data_[i] &= other.data_[i];
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
void Subtract(const BitVector& other) {
|
107
|
+
ASSERT(other.length() == length());
|
108
|
+
for (int i = 0; i < data_length_; i++) {
|
109
|
+
data_[i] &= ~other.data_[i];
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
void Clear() {
|
114
|
+
for (int i = 0; i < data_length_; i++) {
|
115
|
+
data_[i] = 0;
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
bool IsEmpty() const {
|
120
|
+
for (int i = 0; i < data_length_; i++) {
|
121
|
+
if (data_[i] != 0) return false;
|
122
|
+
}
|
123
|
+
return true;
|
124
|
+
}
|
125
|
+
|
126
|
+
bool Equals(const BitVector& other) {
|
127
|
+
for (int i = 0; i < data_length_; i++) {
|
128
|
+
if (data_[i] != other.data_[i]) return false;
|
129
|
+
}
|
130
|
+
return true;
|
131
|
+
}
|
132
|
+
|
133
|
+
int length() const { return length_; }
|
134
|
+
|
135
|
+
#ifdef DEBUG
|
136
|
+
void Print();
|
137
|
+
#endif
|
138
|
+
|
139
|
+
private:
|
140
|
+
int length_;
|
141
|
+
int data_length_;
|
142
|
+
uint32_t* data_;
|
143
|
+
};
|
144
|
+
|
145
|
+
|
146
|
+
// Simple fixed-capacity list-based worklist (managed as a queue) of
|
147
|
+
// pointers to T.
|
148
|
+
template<typename T>
|
149
|
+
class WorkList BASE_EMBEDDED {
|
150
|
+
public:
|
151
|
+
// The worklist cannot grow bigger than size. We keep one item empty to
|
152
|
+
// distinguish between empty and full.
|
153
|
+
explicit WorkList(int size)
|
154
|
+
: capacity_(size + 1), head_(0), tail_(0), queue_(capacity_) {
|
155
|
+
for (int i = 0; i < capacity_; i++) queue_.Add(NULL);
|
156
|
+
}
|
157
|
+
|
158
|
+
bool is_empty() { return head_ == tail_; }
|
159
|
+
|
160
|
+
bool is_full() {
|
161
|
+
// The worklist is full if head is at 0 and tail is at capacity - 1:
|
162
|
+
// head == 0 && tail == capacity-1 ==> tail - head == capacity - 1
|
163
|
+
// or if tail is immediately to the left of head:
|
164
|
+
// tail+1 == head ==> tail - head == -1
|
165
|
+
int diff = tail_ - head_;
|
166
|
+
return (diff == -1 || diff == capacity_ - 1);
|
167
|
+
}
|
168
|
+
|
169
|
+
void Insert(T* item) {
|
170
|
+
ASSERT(!is_full());
|
171
|
+
queue_[tail_++] = item;
|
172
|
+
if (tail_ == capacity_) tail_ = 0;
|
173
|
+
}
|
174
|
+
|
175
|
+
T* Remove() {
|
176
|
+
ASSERT(!is_empty());
|
177
|
+
T* item = queue_[head_++];
|
178
|
+
if (head_ == capacity_) head_ = 0;
|
179
|
+
return item;
|
180
|
+
}
|
181
|
+
|
182
|
+
private:
|
183
|
+
int capacity_; // Including one empty slot.
|
184
|
+
int head_; // Where the first item is.
|
185
|
+
int tail_; // Where the next inserted item will go.
|
186
|
+
List<T*> queue_;
|
187
|
+
};
|
188
|
+
|
189
|
+
|
190
|
+
struct ReachingDefinitionsData BASE_EMBEDDED {
|
191
|
+
public:
|
192
|
+
ReachingDefinitionsData() : rd_in_(NULL), kill_(NULL), gen_(NULL) {}
|
193
|
+
|
194
|
+
void Initialize(int definition_count) {
|
195
|
+
rd_in_ = new BitVector(definition_count);
|
196
|
+
kill_ = new BitVector(definition_count);
|
197
|
+
gen_ = new BitVector(definition_count);
|
198
|
+
}
|
199
|
+
|
200
|
+
BitVector* rd_in() { return rd_in_; }
|
201
|
+
BitVector* kill() { return kill_; }
|
202
|
+
BitVector* gen() { return gen_; }
|
203
|
+
|
204
|
+
private:
|
205
|
+
BitVector* rd_in_;
|
206
|
+
BitVector* kill_;
|
207
|
+
BitVector* gen_;
|
208
|
+
};
|
209
|
+
|
210
|
+
|
211
|
+
// This class is used to number all expressions in the AST according to
|
212
|
+
// their evaluation order (post-order left-to-right traversal).
|
213
|
+
class AstLabeler: public AstVisitor {
|
214
|
+
public:
|
215
|
+
AstLabeler() : next_number_(0) {}
|
216
|
+
|
217
|
+
void Label(CompilationInfo* info);
|
218
|
+
|
219
|
+
private:
|
220
|
+
CompilationInfo* info() { return info_; }
|
221
|
+
|
222
|
+
void VisitDeclarations(ZoneList<Declaration*>* decls);
|
223
|
+
void VisitStatements(ZoneList<Statement*>* stmts);
|
224
|
+
|
225
|
+
// AST node visit functions.
|
226
|
+
#define DECLARE_VISIT(type) virtual void Visit##type(type* node);
|
227
|
+
AST_NODE_LIST(DECLARE_VISIT)
|
228
|
+
#undef DECLARE_VISIT
|
229
|
+
|
230
|
+
// Traversal number for labelling AST nodes.
|
231
|
+
int next_number_;
|
232
|
+
|
233
|
+
CompilationInfo* info_;
|
234
|
+
|
235
|
+
DISALLOW_COPY_AND_ASSIGN(AstLabeler);
|
236
|
+
};
|
237
|
+
|
238
|
+
|
239
|
+
// Computes the set of assigned variables and annotates variables proxies
|
240
|
+
// that are trivial sub-expressions and for-loops where the loop variable
|
241
|
+
// is guaranteed to be a smi.
|
242
|
+
class AssignedVariablesAnalyzer : public AstVisitor {
|
243
|
+
public:
|
244
|
+
explicit AssignedVariablesAnalyzer(FunctionLiteral* fun);
|
245
|
+
|
246
|
+
void Analyze();
|
247
|
+
|
248
|
+
private:
|
249
|
+
Variable* FindSmiLoopVariable(ForStatement* stmt);
|
250
|
+
|
251
|
+
int BitIndex(Variable* var);
|
252
|
+
|
253
|
+
void RecordAssignedVar(Variable* var);
|
254
|
+
|
255
|
+
void MarkIfTrivial(Expression* expr);
|
256
|
+
|
257
|
+
// Visits an expression saving the accumulator before, clearing
|
258
|
+
// it before visting and restoring it after visiting.
|
259
|
+
void ProcessExpression(Expression* expr);
|
260
|
+
|
261
|
+
// AST node visit functions.
|
262
|
+
#define DECLARE_VISIT(type) virtual void Visit##type(type* node);
|
263
|
+
AST_NODE_LIST(DECLARE_VISIT)
|
264
|
+
#undef DECLARE_VISIT
|
265
|
+
|
266
|
+
FunctionLiteral* fun_;
|
267
|
+
|
268
|
+
// Accumulator for assigned variables set.
|
269
|
+
BitVector av_;
|
270
|
+
|
271
|
+
DISALLOW_COPY_AND_ASSIGN(AssignedVariablesAnalyzer);
|
272
|
+
};
|
273
|
+
|
274
|
+
|
275
|
+
} } // namespace v8::internal
|
276
|
+
|
277
|
+
|
278
|
+
#endif // V8_DATAFLOW_H_
|
@@ -113,14 +113,24 @@ function EquivalentTime(t) {
|
|
113
113
|
// we must do this, but for compatibility with other browsers, we use
|
114
114
|
// the actual year if it is in the range 1970..2037
|
115
115
|
if (t >= 0 && t <= 2.1e12) return t;
|
116
|
-
|
117
|
-
|
116
|
+
|
117
|
+
var day = MakeDay(EquivalentYear(YEAR_FROM_TIME(t)),
|
118
|
+
MONTH_FROM_TIME(t),
|
119
|
+
DATE_FROM_TIME(t));
|
120
|
+
return MakeDate(day, TimeWithinDay(t));
|
118
121
|
}
|
119
122
|
|
120
123
|
|
121
|
-
//
|
122
|
-
//
|
124
|
+
// local_time_offset is initialized when the DST_offset_cache is missed.
|
125
|
+
// It must not be used until after a call to DaylightSavingsOffset().
|
126
|
+
// In this way, only one check, for a DST cache miss, is needed.
|
127
|
+
var local_time_offset;
|
128
|
+
|
129
|
+
|
130
|
+
// Because computing the DST offset is an expensive operation,
|
131
|
+
// we keep a cache of the last computed DST offset along with a time interval
|
123
132
|
// where we know the cache is valid.
|
133
|
+
// When the cache is valid, local_time_offset is also valid.
|
124
134
|
var DST_offset_cache = {
|
125
135
|
// Cached DST offset.
|
126
136
|
offset: 0,
|
@@ -146,6 +156,11 @@ function DaylightSavingsOffset(t) {
|
|
146
156
|
// If the time fits in the cached interval, return the cached offset.
|
147
157
|
if (t <= end) return cache.offset;
|
148
158
|
|
159
|
+
// If the cache misses, the local_time_offset may not be initialized.
|
160
|
+
if (IS_UNDEFINED(local_time_offset)) {
|
161
|
+
local_time_offset = %DateLocalTimeOffset();
|
162
|
+
}
|
163
|
+
|
149
164
|
// Compute a possible new interval end.
|
150
165
|
var new_end = end + cache.increment;
|
151
166
|
|
@@ -182,6 +197,10 @@ function DaylightSavingsOffset(t) {
|
|
182
197
|
}
|
183
198
|
}
|
184
199
|
|
200
|
+
// If the cache misses, the local_time_offset may not be initialized.
|
201
|
+
if (IS_UNDEFINED(local_time_offset)) {
|
202
|
+
local_time_offset = %DateLocalTimeOffset();
|
203
|
+
}
|
185
204
|
// Compute the DST offset for the time and shrink the cache interval
|
186
205
|
// to only contain the time. This allows fast repeated DST offset
|
187
206
|
// computations for the same time.
|
@@ -212,15 +231,21 @@ function WeekDay(time) {
|
|
212
231
|
return Modulo(DAY(time) + 4, 7);
|
213
232
|
}
|
214
233
|
|
215
|
-
var local_time_offset = %DateLocalTimeOffset();
|
216
234
|
|
217
235
|
function LocalTime(time) {
|
218
236
|
if (NUMBER_IS_NAN(time)) return time;
|
219
|
-
|
237
|
+
// DaylightSavingsOffset called before local_time_offset used.
|
238
|
+
return time + DaylightSavingsOffset(time) + local_time_offset;
|
220
239
|
}
|
221
240
|
|
222
241
|
function LocalTimeNoCheck(time) {
|
242
|
+
if (time < -MAX_TIME_MS || time > MAX_TIME_MS) {
|
243
|
+
return $NaN;
|
244
|
+
}
|
245
|
+
|
223
246
|
// Inline the DST offset cache checks for speed.
|
247
|
+
// The cache is hit, or DaylightSavingsOffset is called,
|
248
|
+
// before local_time_offset is used.
|
224
249
|
var cache = DST_offset_cache;
|
225
250
|
if (cache.start <= time && time <= cache.end) {
|
226
251
|
var dst_offset = cache.offset;
|
@@ -233,6 +258,11 @@ function LocalTimeNoCheck(time) {
|
|
233
258
|
|
234
259
|
function UTC(time) {
|
235
260
|
if (NUMBER_IS_NAN(time)) return time;
|
261
|
+
// local_time_offset is needed before the call to DaylightSavingsOffset,
|
262
|
+
// so it may be uninitialized.
|
263
|
+
if (IS_UNDEFINED(local_time_offset)) {
|
264
|
+
local_time_offset = %DateLocalTimeOffset();
|
265
|
+
}
|
236
266
|
var tmp = time - local_time_offset;
|
237
267
|
return tmp - DaylightSavingsOffset(tmp);
|
238
268
|
}
|
@@ -257,96 +287,45 @@ function TimeInYear(year) {
|
|
257
287
|
}
|
258
288
|
|
259
289
|
|
260
|
-
|
261
|
-
|
262
|
-
var jy = (month > 1) ? year : year - 1;
|
263
|
-
var jm = (month > 1) ? month + 2 : month + 14;
|
264
|
-
var ja = FLOOR(jy / 100);
|
265
|
-
return FLOOR(FLOOR(365.25*jy) + FLOOR(30.6001*jm) + date + 1720995) + 2 - ja + FLOOR(0.25*ja);
|
266
|
-
}
|
290
|
+
var ymd_from_time_cache = [$NaN, $NaN, $NaN];
|
291
|
+
var ymd_from_time_cached_time = $NaN;
|
267
292
|
|
268
|
-
|
293
|
+
function YearFromTime(t) {
|
294
|
+
if (t !== ymd_from_time_cached_time) {
|
295
|
+
if (!$isFinite(t)) {
|
296
|
+
return $NaN;
|
297
|
+
}
|
269
298
|
|
299
|
+
%DateYMDFromTime(t, ymd_from_time_cache);
|
300
|
+
ymd_from_time_cached_time = t
|
301
|
+
}
|
270
302
|
|
271
|
-
|
272
|
-
|
273
|
-
var four_year_cycle_table = new $Array(1461);
|
303
|
+
return ymd_from_time_cache[0];
|
304
|
+
}
|
274
305
|
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
var month_bits = month << kMonthShift;
|
280
|
-
var length = month_lengths[month];
|
281
|
-
for (var day = 1; day <= length; day++) {
|
282
|
-
four_year_cycle_table[leap_position] =
|
283
|
-
month_bits + day;
|
284
|
-
four_year_cycle_table[366 + position] =
|
285
|
-
(1 << kYearShift) + month_bits + day;
|
286
|
-
four_year_cycle_table[731 + position] =
|
287
|
-
(2 << kYearShift) + month_bits + day;
|
288
|
-
four_year_cycle_table[1096 + position] =
|
289
|
-
(3 << kYearShift) + month_bits + day;
|
290
|
-
leap_position++;
|
291
|
-
position++;
|
292
|
-
}
|
293
|
-
if (month == 1) {
|
294
|
-
four_year_cycle_table[leap_position++] = month_bits + 29;
|
306
|
+
function MonthFromTime(t) {
|
307
|
+
if (t !== ymd_from_time_cached_time) {
|
308
|
+
if (!$isFinite(t)) {
|
309
|
+
return $NaN;
|
295
310
|
}
|
311
|
+
%DateYMDFromTime(t, ymd_from_time_cache);
|
312
|
+
ymd_from_time_cached_time = t
|
296
313
|
}
|
297
|
-
return four_year_cycle_table;
|
298
|
-
}
|
299
314
|
|
300
|
-
|
301
|
-
// Constructor for creating objects holding year, month, and date.
|
302
|
-
// Introduced to ensure the two return points in FromJulianDay match same map.
|
303
|
-
function DayTriplet(year, month, date) {
|
304
|
-
this.year = year;
|
305
|
-
this.month = month;
|
306
|
-
this.date = date;
|
315
|
+
return ymd_from_time_cache[1];
|
307
316
|
}
|
308
317
|
|
309
|
-
|
310
|
-
|
318
|
+
function DateFromTime(t) {
|
319
|
+
if (t !== ymd_from_time_cached_time) {
|
320
|
+
if (!$isFinite(t)) {
|
321
|
+
return $NaN;
|
322
|
+
}
|
311
323
|
|
312
|
-
|
313
|
-
|
314
|
-
function FromJulianDay(julian) {
|
315
|
-
if (julian_day_cache_day == julian) {
|
316
|
-
return julian_day_cache_triplet;
|
324
|
+
%DateYMDFromTime(t, ymd_from_time_cache);
|
325
|
+
ymd_from_time_cached_time = t
|
317
326
|
}
|
318
|
-
|
319
|
-
|
320
|
-
// time where leap years are very regular. The range is not too large to avoid overflow
|
321
|
-
// when doing the multiply-to-divide trick.
|
322
|
-
if (julian > kDayZeroInJulianDay &&
|
323
|
-
(julian - kDayZeroInJulianDay) < 40177) { // 1970 - 2080
|
324
|
-
var jsimple = (julian - kDayZeroInJulianDay) + 731; // Day 0 is 1st January 1968
|
325
|
-
var y = 1968;
|
326
|
-
// Divide by 1461 by multiplying with 22967 and shifting down by 25!
|
327
|
-
var after_1968 = (jsimple * 22967) >> 25;
|
328
|
-
y += after_1968 << 2;
|
329
|
-
jsimple -= 1461 * after_1968;
|
330
|
-
var four_year_cycle = four_year_cycle_table[jsimple];
|
331
|
-
result = new DayTriplet(y + (four_year_cycle >> kYearShift),
|
332
|
-
(four_year_cycle & kMonthMask) >> kMonthShift,
|
333
|
-
four_year_cycle & kDayMask);
|
334
|
-
} else {
|
335
|
-
var jalpha = FLOOR((julian - 1867216.25) / 36524.25);
|
336
|
-
var jb = julian + 1 + jalpha - FLOOR(0.25 * jalpha) + 1524;
|
337
|
-
var jc = FLOOR(6680.0 + ((jb-2439870) - 122.1)/365.25);
|
338
|
-
var jd = FLOOR(365 * jc + (0.25 * jc));
|
339
|
-
var je = FLOOR((jb - jd)/30.6001);
|
340
|
-
var m = je - 1;
|
341
|
-
if (m > 12) m -= 13;
|
342
|
-
var y = jc - 4715;
|
343
|
-
if (m > 2) { --y; --m; }
|
344
|
-
var d = jb - jd - FLOOR(30.6001 * je);
|
345
|
-
result = new DayTriplet(y, m, d);
|
346
|
-
}
|
347
|
-
julian_day_cache_day = julian;
|
348
|
-
julian_day_cache_triplet = result;
|
349
|
-
return result;
|
327
|
+
|
328
|
+
return ymd_from_time_cache[2];
|
350
329
|
}
|
351
330
|
|
352
331
|
|
@@ -359,20 +338,18 @@ function FromJulianDay(julian) {
|
|
359
338
|
function MakeDay(year, month, date) {
|
360
339
|
if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) return $NaN;
|
361
340
|
|
362
|
-
// Conversion to integers.
|
363
341
|
year = TO_INTEGER(year);
|
364
342
|
month = TO_INTEGER(month);
|
365
343
|
date = TO_INTEGER(date);
|
366
344
|
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
month += 12;
|
345
|
+
if (year < kMinYear || year > kMaxYear ||
|
346
|
+
month < kMinMonth || month > kMaxMonth ||
|
347
|
+
date < kMinDate || date > kMaxDate) {
|
348
|
+
return $NaN;
|
372
349
|
}
|
373
350
|
|
374
|
-
//
|
375
|
-
return
|
351
|
+
// Now we rely on year, month and date being SMIs.
|
352
|
+
return %DateMakeDay(year, month, date);
|
376
353
|
}
|
377
354
|
|
378
355
|
|
@@ -584,11 +561,10 @@ function TwoDigitString(value) {
|
|
584
561
|
|
585
562
|
|
586
563
|
function DateString(time) {
|
587
|
-
var YMD = FromJulianDay(DAY(time) + kDayZeroInJulianDay);
|
588
564
|
return WeekDays[WeekDay(time)] + ' '
|
589
|
-
+ Months[
|
590
|
-
+ TwoDigitString(
|
591
|
-
+
|
565
|
+
+ Months[MonthFromTime(time)] + ' '
|
566
|
+
+ TwoDigitString(DateFromTime(time)) + ' '
|
567
|
+
+ YearFromTime(time);
|
592
568
|
}
|
593
569
|
|
594
570
|
|
@@ -597,11 +573,10 @@ var LongMonths = ['January', 'February', 'March', 'April', 'May', 'June', 'July'
|
|
597
573
|
|
598
574
|
|
599
575
|
function LongDateString(time) {
|
600
|
-
var YMD = FromJulianDay(DAY(time) + kDayZeroInJulianDay);
|
601
576
|
return LongWeekDays[WeekDay(time)] + ', '
|
602
|
-
+ LongMonths[
|
603
|
-
+ TwoDigitString(
|
604
|
-
+
|
577
|
+
+ LongMonths[MonthFromTime(time)] + ' '
|
578
|
+
+ TwoDigitString(DateFromTime(time)) + ', '
|
579
|
+
+ YearFromTime(time);
|
605
580
|
}
|
606
581
|
|
607
582
|
|
@@ -613,14 +588,28 @@ function TimeString(time) {
|
|
613
588
|
|
614
589
|
|
615
590
|
function LocalTimezoneString(time) {
|
591
|
+
var old_timezone = timezone_cache_timezone;
|
592
|
+
var timezone = LocalTimezone(time);
|
593
|
+
if (old_timezone && timezone != old_timezone) {
|
594
|
+
// If the timezone string has changed from the one that we cached,
|
595
|
+
// the local time offset may now be wrong. So we need to update it
|
596
|
+
// and try again.
|
597
|
+
local_time_offset = %DateLocalTimeOffset();
|
598
|
+
// We also need to invalidate the DST cache as the new timezone may have
|
599
|
+
// different DST times.
|
600
|
+
var dst_cache = DST_offset_cache;
|
601
|
+
dst_cache.start = 0;
|
602
|
+
dst_cache.end = -1;
|
603
|
+
}
|
604
|
+
|
616
605
|
var timezoneOffset =
|
617
|
-
(
|
606
|
+
(DaylightSavingsOffset(time) + local_time_offset) / msPerMinute;
|
618
607
|
var sign = (timezoneOffset >= 0) ? 1 : -1;
|
619
608
|
var hours = FLOOR((sign * timezoneOffset)/60);
|
620
609
|
var min = FLOOR((sign * timezoneOffset)%60);
|
621
610
|
var gmt = ' GMT' + ((sign == 1) ? '+' : '-') +
|
622
611
|
TwoDigitString(hours) + TwoDigitString(min);
|
623
|
-
return gmt + ' (' +
|
612
|
+
return gmt + ' (' + timezone + ')';
|
624
613
|
}
|
625
614
|
|
626
615
|
|
@@ -631,7 +620,7 @@ function DatePrintString(time) {
|
|
631
620
|
// -------------------------------------------------------------------
|
632
621
|
|
633
622
|
// Reused output buffer. Used when parsing date strings.
|
634
|
-
var parse_buffer = $Array(
|
623
|
+
var parse_buffer = $Array(8);
|
635
624
|
|
636
625
|
// ECMA 262 - 15.9.4.2
|
637
626
|
function DateParse(string) {
|
@@ -639,13 +628,13 @@ function DateParse(string) {
|
|
639
628
|
if (IS_NULL(arr)) return $NaN;
|
640
629
|
|
641
630
|
var day = MakeDay(arr[0], arr[1], arr[2]);
|
642
|
-
var time = MakeTime(arr[3], arr[4], arr[5],
|
631
|
+
var time = MakeTime(arr[3], arr[4], arr[5], arr[6]);
|
643
632
|
var date = MakeDate(day, time);
|
644
633
|
|
645
|
-
if (IS_NULL(arr[
|
634
|
+
if (IS_NULL(arr[7])) {
|
646
635
|
return TimeClip(UTC(date));
|
647
636
|
} else {
|
648
|
-
return TimeClip(date - arr[
|
637
|
+
return TimeClip(date - arr[7] * 1000);
|
649
638
|
}
|
650
639
|
}
|
651
640
|
|
@@ -679,7 +668,8 @@ function DateNow() {
|
|
679
668
|
function DateToString() {
|
680
669
|
var t = DATE_VALUE(this);
|
681
670
|
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
682
|
-
|
671
|
+
var time_zone_string = LocalTimezoneString(t); // May update local offset.
|
672
|
+
return DatePrintString(LocalTimeNoCheck(t)) + time_zone_string;
|
683
673
|
}
|
684
674
|
|
685
675
|
|
@@ -695,8 +685,8 @@ function DateToDateString() {
|
|
695
685
|
function DateToTimeString() {
|
696
686
|
var t = DATE_VALUE(this);
|
697
687
|
if (NUMBER_IS_NAN(t)) return kInvalidDate;
|
698
|
-
var
|
699
|
-
return TimeString(
|
688
|
+
var time_zone_string = LocalTimezoneString(t); // May update local offset.
|
689
|
+
return TimeString(LocalTimeNoCheck(t)) + time_zone_string;
|
700
690
|
}
|
701
691
|
|
702
692
|
|