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
@@ -30,12 +30,15 @@
|
|
30
30
|
|
31
31
|
#include <math.h>
|
32
32
|
|
33
|
-
#include "
|
34
|
-
|
33
|
+
#include "splay-tree-inl.h"
|
34
|
+
#include "v8-counters.h"
|
35
35
|
|
36
36
|
namespace v8 {
|
37
37
|
namespace internal {
|
38
38
|
|
39
|
+
// Forward declarations.
|
40
|
+
class ZoneScopeInfo;
|
41
|
+
|
39
42
|
// Defines all the roots in Heap.
|
40
43
|
#define UNCONDITIONAL_STRONG_ROOT_LIST(V) \
|
41
44
|
/* Put the byte array map early. We need it to be in place by the time */ \
|
@@ -86,7 +89,6 @@ namespace internal {
|
|
86
89
|
V(Map, code_map, CodeMap) \
|
87
90
|
V(Map, oddball_map, OddballMap) \
|
88
91
|
V(Map, global_property_cell_map, GlobalPropertyCellMap) \
|
89
|
-
V(Map, boilerplate_function_map, BoilerplateFunctionMap) \
|
90
92
|
V(Map, shared_function_info_map, SharedFunctionInfoMap) \
|
91
93
|
V(Map, proxy_map, ProxyMap) \
|
92
94
|
V(Object, nan_value, NanValue) \
|
@@ -101,14 +103,14 @@ namespace internal {
|
|
101
103
|
V(Code, js_entry_code, JsEntryCode) \
|
102
104
|
V(Code, js_construct_entry_code, JsConstructEntryCode) \
|
103
105
|
V(Code, c_entry_code, CEntryCode) \
|
104
|
-
V(Code, c_entry_debug_break_code, CEntryDebugBreakCode) \
|
105
106
|
V(FixedArray, number_string_cache, NumberStringCache) \
|
106
107
|
V(FixedArray, single_character_string_cache, SingleCharacterStringCache) \
|
107
108
|
V(FixedArray, natives_source_cache, NativesSourceCache) \
|
108
109
|
V(Object, last_script_id, LastScriptId) \
|
110
|
+
V(Script, empty_script, EmptyScript) \
|
109
111
|
V(Smi, real_stack_limit, RealStackLimit) \
|
110
112
|
|
111
|
-
#if V8_TARGET_ARCH_ARM &&
|
113
|
+
#if V8_TARGET_ARCH_ARM && !V8_INTERPRETED_REGEXP
|
112
114
|
#define STRONG_ROOT_LIST(V) \
|
113
115
|
UNCONDITIONAL_STRONG_ROOT_LIST(V) \
|
114
116
|
V(Code, re_c_entry_code, RegExpCEntryCode)
|
@@ -146,6 +148,13 @@ namespace internal {
|
|
146
148
|
V(number_symbol, "number") \
|
147
149
|
V(Number_symbol, "Number") \
|
148
150
|
V(RegExp_symbol, "RegExp") \
|
151
|
+
V(source_symbol, "source") \
|
152
|
+
V(global_symbol, "global") \
|
153
|
+
V(ignore_case_symbol, "ignoreCase") \
|
154
|
+
V(multiline_symbol, "multiline") \
|
155
|
+
V(input_symbol, "input") \
|
156
|
+
V(index_symbol, "index") \
|
157
|
+
V(last_index_symbol, "lastIndex") \
|
149
158
|
V(object_symbol, "object") \
|
150
159
|
V(prototype_symbol, "prototype") \
|
151
160
|
V(string_symbol, "string") \
|
@@ -192,6 +201,9 @@ class GCTracer;
|
|
192
201
|
class HeapStats;
|
193
202
|
|
194
203
|
|
204
|
+
typedef String* (*ExternalStringTableUpdaterCallback)(Object** pointer);
|
205
|
+
|
206
|
+
|
195
207
|
// The all static Heap captures the interface to the global object heap.
|
196
208
|
// All JavaScript contexts by this process share the same object heap.
|
197
209
|
|
@@ -346,6 +358,9 @@ class Heap : public AllStatic {
|
|
346
358
|
// Allocate a map for the specified function
|
347
359
|
static Object* AllocateInitialMap(JSFunction* fun);
|
348
360
|
|
361
|
+
// Allocates an empty code cache.
|
362
|
+
static Object* AllocateCodeCache();
|
363
|
+
|
349
364
|
// Allocates and fully initializes a String. There are two String
|
350
365
|
// encodings: ASCII and two byte. One should choose between the three string
|
351
366
|
// allocation functions based on the encoding of the string buffer used to
|
@@ -450,9 +465,16 @@ class Heap : public AllStatic {
|
|
450
465
|
// failed.
|
451
466
|
// Please note this does not perform a garbage collection.
|
452
467
|
static Object* AllocateFixedArray(int length, PretenureFlag pretenure);
|
453
|
-
//
|
468
|
+
// Allocates a fixed array initialized with undefined values
|
454
469
|
static Object* AllocateFixedArray(int length);
|
455
470
|
|
471
|
+
// Allocates an uninitialized fixed array. It must be filled by the caller.
|
472
|
+
//
|
473
|
+
// Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
474
|
+
// failed.
|
475
|
+
// Please note this does not perform a garbage collection.
|
476
|
+
static Object* AllocateUninitializedFixedArray(int length);
|
477
|
+
|
456
478
|
// Make a copy of src and return it. Returns
|
457
479
|
// Failure::RetryAfterGC(requested_bytes, space) if the allocation failed.
|
458
480
|
static Object* CopyFixedArray(FixedArray* src);
|
@@ -461,11 +483,14 @@ class Heap : public AllStatic {
|
|
461
483
|
// Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
462
484
|
// failed.
|
463
485
|
// Please note this does not perform a garbage collection.
|
464
|
-
static Object* AllocateFixedArrayWithHoles(
|
486
|
+
static Object* AllocateFixedArrayWithHoles(
|
487
|
+
int length,
|
488
|
+
PretenureFlag pretenure = NOT_TENURED);
|
465
489
|
|
466
490
|
// AllocateHashTable is identical to AllocateFixedArray except
|
467
491
|
// that the resulting object has hash_table_map as map.
|
468
|
-
static Object* AllocateHashTable(int length
|
492
|
+
static Object* AllocateHashTable(int length,
|
493
|
+
PretenureFlag pretenure = NOT_TENURED);
|
469
494
|
|
470
495
|
// Allocate a global (but otherwise uninitialized) context.
|
471
496
|
static Object* AllocateGlobalContext();
|
@@ -502,13 +527,6 @@ class Heap : public AllStatic {
|
|
502
527
|
// Please note this does not perform a garbage collection.
|
503
528
|
static Object* AllocateArgumentsObject(Object* callee, int length);
|
504
529
|
|
505
|
-
// Converts a double into either a Smi or a HeapNumber object.
|
506
|
-
// Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation
|
507
|
-
// failed.
|
508
|
-
// Please note this does not perform a garbage collection.
|
509
|
-
static Object* NewNumberFromDouble(double value,
|
510
|
-
PretenureFlag pretenure = NOT_TENURED);
|
511
|
-
|
512
530
|
// Same as NewNumberFromDouble, but may return a preallocated/immutable
|
513
531
|
// number object (e.g., minus_zero_value_, nan_value_)
|
514
532
|
static Object* NumberFromDouble(double value,
|
@@ -557,7 +575,8 @@ class Heap : public AllStatic {
|
|
557
575
|
// Please note this does not perform a garbage collection.
|
558
576
|
static Object* AllocateSubString(String* buffer,
|
559
577
|
int start,
|
560
|
-
int end
|
578
|
+
int end,
|
579
|
+
PretenureFlag pretenure = NOT_TENURED);
|
561
580
|
|
562
581
|
// Allocate a new external string object, which is backed by a string
|
563
582
|
// resource that resides outside the V8 heap.
|
@@ -598,6 +617,11 @@ class Heap : public AllStatic {
|
|
598
617
|
Handle<Object> self_reference);
|
599
618
|
|
600
619
|
static Object* CopyCode(Code* code);
|
620
|
+
|
621
|
+
// Copy the code and scope info part of the code object, but insert
|
622
|
+
// the provided data as the relocation information.
|
623
|
+
static Object* CopyCode(Code* code, Vector<byte> reloc_info);
|
624
|
+
|
601
625
|
// Finds the symbol for string in the symbol table.
|
602
626
|
// If not found, a new symbol is added to the table and returned.
|
603
627
|
// Returns Failure::RetryAfterGC(requested_bytes, space) if allocation
|
@@ -615,6 +639,15 @@ class Heap : public AllStatic {
|
|
615
639
|
// NULL is returned if string is in new space or not flattened.
|
616
640
|
static Map* SymbolMapForString(String* str);
|
617
641
|
|
642
|
+
// Tries to flatten a string before compare operation.
|
643
|
+
//
|
644
|
+
// Returns a failure in case it was decided that flattening was
|
645
|
+
// necessary and failed. Note, if flattening is not necessary the
|
646
|
+
// string might stay non-flat even when not a failure is returned.
|
647
|
+
//
|
648
|
+
// Please note this function does not perform a garbage collection.
|
649
|
+
static inline Object* PrepareForCompare(String* str);
|
650
|
+
|
618
651
|
// Converts the given boolean condition to JavaScript boolean value.
|
619
652
|
static Object* ToBoolean(bool condition) {
|
620
653
|
return condition ? true_value() : false_value();
|
@@ -633,12 +666,8 @@ class Heap : public AllStatic {
|
|
633
666
|
// parameter is true.
|
634
667
|
static void CollectAllGarbage(bool force_compaction);
|
635
668
|
|
636
|
-
// Performs a full garbage collection if a context has been disposed
|
637
|
-
// since the last time the check was performed.
|
638
|
-
static void CollectAllGarbageIfContextDisposed();
|
639
|
-
|
640
669
|
// Notify the heap that a context has been disposed.
|
641
|
-
static
|
670
|
+
static int NotifyContextDisposed() { return ++contexts_disposed_; }
|
642
671
|
|
643
672
|
// Utility to invoke the scavenger. This is needed in test code to
|
644
673
|
// ensure correct callback for weak global handles.
|
@@ -649,10 +678,20 @@ class Heap : public AllStatic {
|
|
649
678
|
static bool GarbageCollectionGreedyCheck();
|
650
679
|
#endif
|
651
680
|
|
681
|
+
static void AddGCPrologueCallback(
|
682
|
+
GCEpilogueCallback callback, GCType gc_type_filter);
|
683
|
+
static void RemoveGCPrologueCallback(GCEpilogueCallback callback);
|
684
|
+
|
685
|
+
static void AddGCEpilogueCallback(
|
686
|
+
GCEpilogueCallback callback, GCType gc_type_filter);
|
687
|
+
static void RemoveGCEpilogueCallback(GCEpilogueCallback callback);
|
688
|
+
|
652
689
|
static void SetGlobalGCPrologueCallback(GCCallback callback) {
|
690
|
+
ASSERT((callback == NULL) ^ (global_gc_prologue_callback_ == NULL));
|
653
691
|
global_gc_prologue_callback_ = callback;
|
654
692
|
}
|
655
693
|
static void SetGlobalGCEpilogueCallback(GCCallback callback) {
|
694
|
+
ASSERT((callback == NULL) ^ (global_gc_epilogue_callback_ == NULL));
|
656
695
|
global_gc_epilogue_callback_ = callback;
|
657
696
|
}
|
658
697
|
|
@@ -690,6 +729,8 @@ class Heap : public AllStatic {
|
|
690
729
|
static void IterateRoots(ObjectVisitor* v, VisitMode mode);
|
691
730
|
// Iterates over all strong roots in the heap.
|
692
731
|
static void IterateStrongRoots(ObjectVisitor* v, VisitMode mode);
|
732
|
+
// Iterates over all the other roots in the heap.
|
733
|
+
static void IterateWeakRoots(ObjectVisitor* v, VisitMode mode);
|
693
734
|
|
694
735
|
// Iterates remembered set of an old space.
|
695
736
|
static void IterateRSet(PagedSpace* space, ObjectSlotCallback callback);
|
@@ -732,6 +773,10 @@ class Heap : public AllStatic {
|
|
732
773
|
roots_[kNonMonomorphicCacheRootIndex] = value;
|
733
774
|
}
|
734
775
|
|
776
|
+
static void public_set_empty_script(Script* script) {
|
777
|
+
roots_[kEmptyScriptRootIndex] = script;
|
778
|
+
}
|
779
|
+
|
735
780
|
// Update the next script id.
|
736
781
|
static inline void SetLastScriptId(Object* last_script_id);
|
737
782
|
|
@@ -768,6 +813,9 @@ class Heap : public AllStatic {
|
|
768
813
|
// Write barrier support for address[offset] = o.
|
769
814
|
static inline void RecordWrite(Address address, int offset);
|
770
815
|
|
816
|
+
// Write barrier support for address[start : start + len[ = o.
|
817
|
+
static inline void RecordWrites(Address address, int start, int len);
|
818
|
+
|
771
819
|
// Given an address occupied by a live code object, return that object.
|
772
820
|
static Object* FindCodeObject(Address a);
|
773
821
|
|
@@ -842,8 +890,10 @@ class Heap : public AllStatic {
|
|
842
890
|
// Returns the adjusted value.
|
843
891
|
static inline int AdjustAmountOfExternalAllocatedMemory(int change_in_bytes);
|
844
892
|
|
845
|
-
// Allocate
|
893
|
+
// Allocate uninitialized fixed array.
|
846
894
|
static Object* AllocateRawFixedArray(int length);
|
895
|
+
static Object* AllocateRawFixedArray(int length,
|
896
|
+
PretenureFlag pretenure);
|
847
897
|
|
848
898
|
// True if we have reached the allocation limit in the old generation that
|
849
899
|
// should force the next GC (caused normally) to be a full one.
|
@@ -886,7 +936,8 @@ class Heap : public AllStatic {
|
|
886
936
|
kRootListLength
|
887
937
|
};
|
888
938
|
|
889
|
-
static Object* NumberToString(Object* number
|
939
|
+
static Object* NumberToString(Object* number,
|
940
|
+
bool check_number_string_cache = true);
|
890
941
|
|
891
942
|
static Map* MapForExternalArrayType(ExternalArrayType array_type);
|
892
943
|
static RootListIndex RootIndexForExternalArrayType(
|
@@ -894,6 +945,32 @@ class Heap : public AllStatic {
|
|
894
945
|
|
895
946
|
static void RecordStats(HeapStats* stats);
|
896
947
|
|
948
|
+
// Copy block of memory from src to dst. Size of block should be aligned
|
949
|
+
// by pointer size.
|
950
|
+
static inline void CopyBlock(Object** dst, Object** src, int byte_size);
|
951
|
+
|
952
|
+
// Optimized version of memmove for blocks with pointer size aligned sizes and
|
953
|
+
// pointer size aligned addresses.
|
954
|
+
static inline void MoveBlock(Object** dst, Object** src, int byte_size);
|
955
|
+
|
956
|
+
// Check new space expansion criteria and expand semispaces if it was hit.
|
957
|
+
static void CheckNewSpaceExpansionCriteria();
|
958
|
+
|
959
|
+
static inline void IncrementYoungSurvivorsCounter(int survived) {
|
960
|
+
survived_since_last_expansion_ += survived;
|
961
|
+
}
|
962
|
+
|
963
|
+
static void UpdateNewSpaceReferencesInExternalStringTable(
|
964
|
+
ExternalStringTableUpdaterCallback updater_func);
|
965
|
+
|
966
|
+
// Helper function that governs the promotion policy from new space to
|
967
|
+
// old. If the object's old address lies below the new space's age
|
968
|
+
// mark or if we've already filled the bottom 1/16th of the to space,
|
969
|
+
// we try to promote this object.
|
970
|
+
static inline bool ShouldBePromoted(Address old_address, int object_size);
|
971
|
+
|
972
|
+
static int MaxObjectSizeInNewSpace() { return kMaxObjectSizeInNewSpace; }
|
973
|
+
|
897
974
|
private:
|
898
975
|
static int reserved_semispace_size_;
|
899
976
|
static int max_semispace_size_;
|
@@ -907,7 +984,9 @@ class Heap : public AllStatic {
|
|
907
984
|
|
908
985
|
static int always_allocate_scope_depth_;
|
909
986
|
static int linear_allocation_scope_depth_;
|
910
|
-
|
987
|
+
|
988
|
+
// For keeping track of context disposals.
|
989
|
+
static int contexts_disposed_;
|
911
990
|
|
912
991
|
#if defined(V8_TARGET_ARCH_X64)
|
913
992
|
static const int kMaxObjectSizeInNewSpace = 512*KB;
|
@@ -933,6 +1012,9 @@ class Heap : public AllStatic {
|
|
933
1012
|
static int mc_count_; // how many mark-compact collections happened
|
934
1013
|
static int gc_count_; // how many gc happened
|
935
1014
|
|
1015
|
+
// Total length of the strings we failed to flatten since the last GC.
|
1016
|
+
static int unflattened_strings_length_;
|
1017
|
+
|
936
1018
|
#define ROOT_ACCESSOR(type, name, camel_name) \
|
937
1019
|
static inline void set_##name(type* value) { \
|
938
1020
|
roots_[k##camel_name##RootIndex] = value; \
|
@@ -1007,6 +1089,30 @@ class Heap : public AllStatic {
|
|
1007
1089
|
|
1008
1090
|
// GC callback function, called before and after mark-compact GC.
|
1009
1091
|
// Allocations in the callback function are disallowed.
|
1092
|
+
struct GCPrologueCallbackPair {
|
1093
|
+
GCPrologueCallbackPair(GCPrologueCallback callback, GCType gc_type)
|
1094
|
+
: callback(callback), gc_type(gc_type) {
|
1095
|
+
}
|
1096
|
+
bool operator==(const GCPrologueCallbackPair& pair) const {
|
1097
|
+
return pair.callback == callback;
|
1098
|
+
}
|
1099
|
+
GCPrologueCallback callback;
|
1100
|
+
GCType gc_type;
|
1101
|
+
};
|
1102
|
+
static List<GCPrologueCallbackPair> gc_prologue_callbacks_;
|
1103
|
+
|
1104
|
+
struct GCEpilogueCallbackPair {
|
1105
|
+
GCEpilogueCallbackPair(GCEpilogueCallback callback, GCType gc_type)
|
1106
|
+
: callback(callback), gc_type(gc_type) {
|
1107
|
+
}
|
1108
|
+
bool operator==(const GCEpilogueCallbackPair& pair) const {
|
1109
|
+
return pair.callback == callback;
|
1110
|
+
}
|
1111
|
+
GCEpilogueCallback callback;
|
1112
|
+
GCType gc_type;
|
1113
|
+
};
|
1114
|
+
static List<GCEpilogueCallbackPair> gc_epilogue_callbacks_;
|
1115
|
+
|
1010
1116
|
static GCCallback global_gc_prologue_callback_;
|
1011
1117
|
static GCCallback global_gc_epilogue_callback_;
|
1012
1118
|
|
@@ -1018,12 +1124,6 @@ class Heap : public AllStatic {
|
|
1018
1124
|
GarbageCollector collector,
|
1019
1125
|
GCTracer* tracer);
|
1020
1126
|
|
1021
|
-
// Returns either a Smi or a Number object from 'value'. If 'new_object'
|
1022
|
-
// is false, it may return a preallocated immutable object.
|
1023
|
-
static Object* SmiOrNumberFromDouble(double value,
|
1024
|
-
bool new_object,
|
1025
|
-
PretenureFlag pretenure = NOT_TENURED);
|
1026
|
-
|
1027
1127
|
// Allocate an uninitialized object in map space. The behavior is identical
|
1028
1128
|
// to Heap::AllocateRaw(size_in_bytes, MAP_SPACE), except that (a) it doesn't
|
1029
1129
|
// have to test the allocation space argument and (b) can reduce code size
|
@@ -1044,23 +1144,23 @@ class Heap : public AllStatic {
|
|
1044
1144
|
// These four Create*EntryStub functions are here because of a gcc-4.4 bug
|
1045
1145
|
// that assigns wrong vtable entries.
|
1046
1146
|
static void CreateCEntryStub();
|
1047
|
-
static void CreateCEntryDebugBreakStub();
|
1048
1147
|
static void CreateJSEntryStub();
|
1049
1148
|
static void CreateJSConstructEntryStub();
|
1050
1149
|
static void CreateRegExpCEntryStub();
|
1051
1150
|
|
1052
1151
|
static void CreateFixedStubs();
|
1053
1152
|
|
1054
|
-
static Object* CreateOddball(
|
1055
|
-
const char* to_string,
|
1056
|
-
Object* to_number);
|
1153
|
+
static Object* CreateOddball(const char* to_string, Object* to_number);
|
1057
1154
|
|
1058
1155
|
// Allocate empty fixed array.
|
1059
1156
|
static Object* AllocateEmptyFixedArray();
|
1060
1157
|
|
1061
1158
|
// Performs a minor collection in new generation.
|
1062
1159
|
static void Scavenge();
|
1063
|
-
|
1160
|
+
|
1161
|
+
static String* UpdateNewSpaceReferenceInExternalStringTableEntry(
|
1162
|
+
Object** pointer);
|
1163
|
+
|
1064
1164
|
static Address DoScavenge(ObjectVisitor* scavenge_visitor,
|
1065
1165
|
Address new_space_front);
|
1066
1166
|
|
@@ -1078,11 +1178,8 @@ class Heap : public AllStatic {
|
|
1078
1178
|
HeapObject* target,
|
1079
1179
|
int size);
|
1080
1180
|
|
1081
|
-
|
1082
|
-
|
1083
|
-
// mark or if we've already filled the bottom 1/16th of the to space,
|
1084
|
-
// we try to promote this object.
|
1085
|
-
static inline bool ShouldBePromoted(Address old_address, int object_size);
|
1181
|
+
static void ClearJSFunctionResultCaches();
|
1182
|
+
|
1086
1183
|
#if defined(DEBUG) || defined(ENABLE_LOGGING_AND_PROFILING)
|
1087
1184
|
// Record the copy of an object in the NewSpace's statistics.
|
1088
1185
|
static void RecordCopiedObject(HeapObject* obj);
|
@@ -1101,9 +1198,6 @@ class Heap : public AllStatic {
|
|
1101
1198
|
// Slow part of scavenge object.
|
1102
1199
|
static void ScavengeObjectSlow(HeapObject** p, HeapObject* object);
|
1103
1200
|
|
1104
|
-
// Copy memory from src to dst.
|
1105
|
-
static inline void CopyBlock(Object** dst, Object** src, int byte_size);
|
1106
|
-
|
1107
1201
|
// Initializes a function with a shared part and prototype.
|
1108
1202
|
// Returns the function.
|
1109
1203
|
// Note: this code was factored out of AllocateFunction such that
|
@@ -1132,26 +1226,26 @@ class Heap : public AllStatic {
|
|
1132
1226
|
|
1133
1227
|
class HeapStats {
|
1134
1228
|
public:
|
1135
|
-
int
|
1136
|
-
int
|
1137
|
-
int
|
1138
|
-
int
|
1139
|
-
int
|
1140
|
-
int
|
1141
|
-
int
|
1142
|
-
int
|
1143
|
-
int
|
1144
|
-
int
|
1145
|
-
int
|
1146
|
-
int
|
1147
|
-
int
|
1148
|
-
int
|
1149
|
-
int
|
1150
|
-
int
|
1151
|
-
int
|
1152
|
-
int
|
1153
|
-
int
|
1154
|
-
int
|
1229
|
+
int* start_marker;
|
1230
|
+
int* new_space_size;
|
1231
|
+
int* new_space_capacity;
|
1232
|
+
int* old_pointer_space_size;
|
1233
|
+
int* old_pointer_space_capacity;
|
1234
|
+
int* old_data_space_size;
|
1235
|
+
int* old_data_space_capacity;
|
1236
|
+
int* code_space_size;
|
1237
|
+
int* code_space_capacity;
|
1238
|
+
int* map_space_size;
|
1239
|
+
int* map_space_capacity;
|
1240
|
+
int* cell_space_size;
|
1241
|
+
int* cell_space_capacity;
|
1242
|
+
int* lo_space_size;
|
1243
|
+
int* global_handle_count;
|
1244
|
+
int* weak_global_handle_count;
|
1245
|
+
int* pending_global_handle_count;
|
1246
|
+
int* near_death_global_handle_count;
|
1247
|
+
int* destroyed_global_handle_count;
|
1248
|
+
int* end_marker;
|
1155
1249
|
};
|
1156
1250
|
|
1157
1251
|
|
@@ -1290,7 +1384,6 @@ class HeapIterator BASE_EMBEDDED {
|
|
1290
1384
|
explicit HeapIterator();
|
1291
1385
|
virtual ~HeapIterator();
|
1292
1386
|
|
1293
|
-
bool has_next();
|
1294
1387
|
HeapObject* next();
|
1295
1388
|
void reset();
|
1296
1389
|
|
@@ -1384,9 +1477,9 @@ class DescriptorLookupCache {
|
|
1384
1477
|
private:
|
1385
1478
|
static int Hash(DescriptorArray* array, String* name) {
|
1386
1479
|
// Uses only lower 32 bits if pointers are larger.
|
1387
|
-
|
1480
|
+
uint32_t array_hash =
|
1388
1481
|
static_cast<uint32_t>(reinterpret_cast<uintptr_t>(array)) >> 2;
|
1389
|
-
|
1482
|
+
uint32_t name_hash =
|
1390
1483
|
static_cast<uint32_t>(reinterpret_cast<uintptr_t>(name)) >> 2;
|
1391
1484
|
return (array_hash ^ name_hash) % kLength;
|
1392
1485
|
}
|
@@ -1521,8 +1614,23 @@ class DisableAssertNoAllocation {
|
|
1521
1614
|
|
1522
1615
|
class GCTracer BASE_EMBEDDED {
|
1523
1616
|
public:
|
1524
|
-
|
1617
|
+
// Time spent while in the external scope counts towards the
|
1618
|
+
// external time in the tracer and will be reported separately.
|
1619
|
+
class ExternalScope BASE_EMBEDDED {
|
1620
|
+
public:
|
1621
|
+
explicit ExternalScope(GCTracer* tracer) : tracer_(tracer) {
|
1622
|
+
start_time_ = OS::TimeCurrentMillis();
|
1623
|
+
}
|
1624
|
+
~ExternalScope() {
|
1625
|
+
tracer_->external_time_ += OS::TimeCurrentMillis() - start_time_;
|
1626
|
+
}
|
1525
1627
|
|
1628
|
+
private:
|
1629
|
+
GCTracer* tracer_;
|
1630
|
+
double start_time_;
|
1631
|
+
};
|
1632
|
+
|
1633
|
+
GCTracer();
|
1526
1634
|
~GCTracer();
|
1527
1635
|
|
1528
1636
|
// Sets the collector.
|
@@ -1536,6 +1644,7 @@ class GCTracer BASE_EMBEDDED {
|
|
1536
1644
|
|
1537
1645
|
// Sets the flag that this is a compacting full GC.
|
1538
1646
|
void set_is_compacting() { is_compacting_ = true; }
|
1647
|
+
bool is_compacting() const { return is_compacting_; }
|
1539
1648
|
|
1540
1649
|
// Increment and decrement the count of marked objects.
|
1541
1650
|
void increment_marked_count() { ++marked_count_; }
|
@@ -1556,6 +1665,9 @@ class GCTracer BASE_EMBEDDED {
|
|
1556
1665
|
double start_size_; // Size of objects in heap set in constructor.
|
1557
1666
|
GarbageCollector collector_; // Type of collector.
|
1558
1667
|
|
1668
|
+
// Keep track of the amount of time spent in external callbacks.
|
1669
|
+
double external_time_;
|
1670
|
+
|
1559
1671
|
// A count (including this one, eg, the first collection is 1) of the
|
1560
1672
|
// number of garbage collections.
|
1561
1673
|
int gc_count_;
|
@@ -1611,6 +1723,7 @@ class TranscendentalCache {
|
|
1611
1723
|
if (e.in[0] == c.integers[0] &&
|
1612
1724
|
e.in[1] == c.integers[1]) {
|
1613
1725
|
ASSERT(e.output != NULL);
|
1726
|
+
Counters::transcendental_cache_hit.Increment();
|
1614
1727
|
return e.output;
|
1615
1728
|
}
|
1616
1729
|
double answer = Calculate(input);
|
@@ -1620,6 +1733,7 @@ class TranscendentalCache {
|
|
1620
1733
|
elements_[hash].in[1] = c.integers[1];
|
1621
1734
|
elements_[hash].output = heap_number;
|
1622
1735
|
}
|
1736
|
+
Counters::transcendental_cache_miss.Increment();
|
1623
1737
|
return heap_number;
|
1624
1738
|
}
|
1625
1739
|
|
@@ -1660,6 +1774,17 @@ class TranscendentalCache {
|
|
1660
1774
|
hash ^= hash >> 8;
|
1661
1775
|
return (hash & (kCacheSize - 1));
|
1662
1776
|
}
|
1777
|
+
|
1778
|
+
static Address cache_array_address() {
|
1779
|
+
// Used to create an external reference.
|
1780
|
+
return reinterpret_cast<Address>(caches_);
|
1781
|
+
}
|
1782
|
+
|
1783
|
+
// Allow access to the caches_ array as an ExternalReference.
|
1784
|
+
friend class ExternalReference;
|
1785
|
+
// Inline implementation of the caching.
|
1786
|
+
friend class TranscendentalCacheStub;
|
1787
|
+
|
1663
1788
|
static TranscendentalCache* caches_[kNumberOfCaches];
|
1664
1789
|
Element elements_[kCacheSize];
|
1665
1790
|
Type type_;
|