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,316 @@
|
|
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
|
+
|
29
|
+
|
30
|
+
#include "v8.h"
|
31
|
+
|
32
|
+
#include "codegen-inl.h"
|
33
|
+
#include "register-allocator-inl.h"
|
34
|
+
#include "scopes.h"
|
35
|
+
#include "virtual-frame-inl.h"
|
36
|
+
|
37
|
+
namespace v8 {
|
38
|
+
namespace internal {
|
39
|
+
|
40
|
+
// -------------------------------------------------------------------------
|
41
|
+
// VirtualFrame implementation.
|
42
|
+
|
43
|
+
#define __ ACCESS_MASM(masm())
|
44
|
+
|
45
|
+
void VirtualFrame::SyncElementBelowStackPointer(int index) {
|
46
|
+
UNREACHABLE();
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
void VirtualFrame::SyncElementByPushing(int index) {
|
51
|
+
UNREACHABLE();
|
52
|
+
}
|
53
|
+
|
54
|
+
|
55
|
+
void VirtualFrame::SyncRange(int begin, int end) {
|
56
|
+
// All elements are in memory on MIPS (ie, synced).
|
57
|
+
#ifdef DEBUG
|
58
|
+
for (int i = begin; i <= end; i++) {
|
59
|
+
ASSERT(elements_[i].is_synced());
|
60
|
+
}
|
61
|
+
#endif
|
62
|
+
}
|
63
|
+
|
64
|
+
|
65
|
+
void VirtualFrame::MergeTo(VirtualFrame* expected) {
|
66
|
+
UNIMPLEMENTED_MIPS();
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
void VirtualFrame::Enter() {
|
71
|
+
// TODO(MIPS): Implement DEBUG
|
72
|
+
|
73
|
+
// We are about to push four values to the frame.
|
74
|
+
Adjust(4);
|
75
|
+
__ MultiPush(ra.bit() | fp.bit() | cp.bit() | a1.bit());
|
76
|
+
// Adjust FP to point to saved FP.
|
77
|
+
__ addiu(fp, sp, 2 * kPointerSize);
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
void VirtualFrame::Exit() {
|
82
|
+
UNIMPLEMENTED_MIPS();
|
83
|
+
}
|
84
|
+
|
85
|
+
|
86
|
+
void VirtualFrame::AllocateStackSlots() {
|
87
|
+
int count = local_count();
|
88
|
+
if (count > 0) {
|
89
|
+
Comment cmnt(masm(), "[ Allocate space for locals");
|
90
|
+
Adjust(count);
|
91
|
+
// Initialize stack slots with 'undefined' value.
|
92
|
+
__ LoadRoot(t0, Heap::kUndefinedValueRootIndex);
|
93
|
+
__ addiu(sp, sp, -count * kPointerSize);
|
94
|
+
for (int i = 0; i < count; i++) {
|
95
|
+
__ sw(t0, MemOperand(sp, (count-i-1)*kPointerSize));
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
void VirtualFrame::SaveContextRegister() {
|
102
|
+
UNIMPLEMENTED_MIPS();
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
void VirtualFrame::RestoreContextRegister() {
|
107
|
+
UNIMPLEMENTED_MIPS();
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
void VirtualFrame::PushReceiverSlotAddress() {
|
112
|
+
UNIMPLEMENTED_MIPS();
|
113
|
+
}
|
114
|
+
|
115
|
+
|
116
|
+
int VirtualFrame::InvalidateFrameSlotAt(int index) {
|
117
|
+
return kIllegalIndex;
|
118
|
+
}
|
119
|
+
|
120
|
+
|
121
|
+
void VirtualFrame::TakeFrameSlotAt(int index) {
|
122
|
+
UNIMPLEMENTED_MIPS();
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
void VirtualFrame::StoreToFrameSlotAt(int index) {
|
127
|
+
UNIMPLEMENTED_MIPS();
|
128
|
+
}
|
129
|
+
|
130
|
+
|
131
|
+
void VirtualFrame::PushTryHandler(HandlerType type) {
|
132
|
+
UNIMPLEMENTED_MIPS();
|
133
|
+
}
|
134
|
+
|
135
|
+
|
136
|
+
void VirtualFrame::RawCallStub(CodeStub* stub) {
|
137
|
+
UNIMPLEMENTED_MIPS();
|
138
|
+
}
|
139
|
+
|
140
|
+
|
141
|
+
void VirtualFrame::CallStub(CodeStub* stub, Result* arg) {
|
142
|
+
UNIMPLEMENTED_MIPS();
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
void VirtualFrame::CallStub(CodeStub* stub, Result* arg0, Result* arg1) {
|
147
|
+
UNIMPLEMENTED_MIPS();
|
148
|
+
}
|
149
|
+
|
150
|
+
|
151
|
+
void VirtualFrame::CallRuntime(Runtime::Function* f, int arg_count) {
|
152
|
+
PrepareForCall(arg_count, arg_count);
|
153
|
+
ASSERT(cgen()->HasValidEntryRegisters());
|
154
|
+
__ CallRuntime(f, arg_count);
|
155
|
+
}
|
156
|
+
|
157
|
+
|
158
|
+
void VirtualFrame::CallRuntime(Runtime::FunctionId id, int arg_count) {
|
159
|
+
PrepareForCall(arg_count, arg_count);
|
160
|
+
ASSERT(cgen()->HasValidEntryRegisters());
|
161
|
+
__ CallRuntime(id, arg_count);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
void VirtualFrame::CallAlignedRuntime(Runtime::Function* f, int arg_count) {
|
166
|
+
UNIMPLEMENTED_MIPS();
|
167
|
+
}
|
168
|
+
|
169
|
+
|
170
|
+
void VirtualFrame::CallAlignedRuntime(Runtime::FunctionId id, int arg_count) {
|
171
|
+
UNIMPLEMENTED_MIPS();
|
172
|
+
}
|
173
|
+
|
174
|
+
|
175
|
+
void VirtualFrame::InvokeBuiltin(Builtins::JavaScript id,
|
176
|
+
InvokeJSFlags flags,
|
177
|
+
Result* arg_count_register,
|
178
|
+
int arg_count) {
|
179
|
+
UNIMPLEMENTED_MIPS();
|
180
|
+
}
|
181
|
+
|
182
|
+
|
183
|
+
void VirtualFrame::CallCodeObject(Handle<Code> code,
|
184
|
+
RelocInfo::Mode rmode,
|
185
|
+
int dropped_args) {
|
186
|
+
switch (code->kind()) {
|
187
|
+
case Code::CALL_IC:
|
188
|
+
break;
|
189
|
+
case Code::FUNCTION:
|
190
|
+
UNIMPLEMENTED_MIPS();
|
191
|
+
break;
|
192
|
+
case Code::KEYED_LOAD_IC:
|
193
|
+
UNIMPLEMENTED_MIPS();
|
194
|
+
break;
|
195
|
+
case Code::LOAD_IC:
|
196
|
+
UNIMPLEMENTED_MIPS();
|
197
|
+
break;
|
198
|
+
case Code::KEYED_STORE_IC:
|
199
|
+
UNIMPLEMENTED_MIPS();
|
200
|
+
break;
|
201
|
+
case Code::STORE_IC:
|
202
|
+
UNIMPLEMENTED_MIPS();
|
203
|
+
break;
|
204
|
+
case Code::BUILTIN:
|
205
|
+
UNIMPLEMENTED_MIPS();
|
206
|
+
break;
|
207
|
+
default:
|
208
|
+
UNREACHABLE();
|
209
|
+
break;
|
210
|
+
}
|
211
|
+
Forget(dropped_args);
|
212
|
+
ASSERT(cgen()->HasValidEntryRegisters());
|
213
|
+
__ Call(code, rmode);
|
214
|
+
}
|
215
|
+
|
216
|
+
|
217
|
+
void VirtualFrame::CallCodeObject(Handle<Code> code,
|
218
|
+
RelocInfo::Mode rmode,
|
219
|
+
Result* arg,
|
220
|
+
int dropped_args) {
|
221
|
+
UNIMPLEMENTED_MIPS();
|
222
|
+
}
|
223
|
+
|
224
|
+
|
225
|
+
void VirtualFrame::CallCodeObject(Handle<Code> code,
|
226
|
+
RelocInfo::Mode rmode,
|
227
|
+
Result* arg0,
|
228
|
+
Result* arg1,
|
229
|
+
int dropped_args,
|
230
|
+
bool set_auto_args_slots) {
|
231
|
+
UNIMPLEMENTED_MIPS();
|
232
|
+
}
|
233
|
+
|
234
|
+
|
235
|
+
void VirtualFrame::Drop(int count) {
|
236
|
+
ASSERT(count >= 0);
|
237
|
+
ASSERT(height() >= count);
|
238
|
+
int num_virtual_elements = (element_count() - 1) - stack_pointer_;
|
239
|
+
|
240
|
+
// Emit code to lower the stack pointer if necessary.
|
241
|
+
if (num_virtual_elements < count) {
|
242
|
+
int num_dropped = count - num_virtual_elements;
|
243
|
+
stack_pointer_ -= num_dropped;
|
244
|
+
__ addiu(sp, sp, num_dropped * kPointerSize);
|
245
|
+
}
|
246
|
+
|
247
|
+
// Discard elements from the virtual frame and free any registers.
|
248
|
+
for (int i = 0; i < count; i++) {
|
249
|
+
FrameElement dropped = elements_.RemoveLast();
|
250
|
+
if (dropped.is_register()) {
|
251
|
+
Unuse(dropped.reg());
|
252
|
+
}
|
253
|
+
}
|
254
|
+
}
|
255
|
+
|
256
|
+
|
257
|
+
void VirtualFrame::DropFromVFrameOnly(int count) {
|
258
|
+
UNIMPLEMENTED_MIPS();
|
259
|
+
}
|
260
|
+
|
261
|
+
|
262
|
+
Result VirtualFrame::Pop() {
|
263
|
+
UNIMPLEMENTED_MIPS();
|
264
|
+
Result res = Result();
|
265
|
+
return res; // UNIMPLEMENTED RETURN
|
266
|
+
}
|
267
|
+
|
268
|
+
|
269
|
+
void VirtualFrame::EmitPop(Register reg) {
|
270
|
+
ASSERT(stack_pointer_ == element_count() - 1);
|
271
|
+
stack_pointer_--;
|
272
|
+
elements_.RemoveLast();
|
273
|
+
__ Pop(reg);
|
274
|
+
}
|
275
|
+
|
276
|
+
|
277
|
+
void VirtualFrame::EmitMultiPop(RegList regs) {
|
278
|
+
ASSERT(stack_pointer_ == element_count() - 1);
|
279
|
+
for (int16_t i = 0; i < kNumRegisters; i++) {
|
280
|
+
if ((regs & (1 << i)) != 0) {
|
281
|
+
stack_pointer_--;
|
282
|
+
elements_.RemoveLast();
|
283
|
+
}
|
284
|
+
}
|
285
|
+
__ MultiPop(regs);
|
286
|
+
}
|
287
|
+
|
288
|
+
|
289
|
+
void VirtualFrame::EmitPush(Register reg) {
|
290
|
+
ASSERT(stack_pointer_ == element_count() - 1);
|
291
|
+
elements_.Add(FrameElement::MemoryElement(NumberInfo::Unknown()));
|
292
|
+
stack_pointer_++;
|
293
|
+
__ Push(reg);
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
void VirtualFrame::EmitMultiPush(RegList regs) {
|
298
|
+
ASSERT(stack_pointer_ == element_count() - 1);
|
299
|
+
for (int16_t i = kNumRegisters; i > 0; i--) {
|
300
|
+
if ((regs & (1 << i)) != 0) {
|
301
|
+
elements_.Add(FrameElement::MemoryElement(NumberInfo::Unknown()));
|
302
|
+
stack_pointer_++;
|
303
|
+
}
|
304
|
+
}
|
305
|
+
__ MultiPush(regs);
|
306
|
+
}
|
307
|
+
|
308
|
+
|
309
|
+
void VirtualFrame::EmitArgumentSlots(RegList reglist) {
|
310
|
+
UNIMPLEMENTED_MIPS();
|
311
|
+
}
|
312
|
+
|
313
|
+
#undef __
|
314
|
+
|
315
|
+
} } // namespace v8::internal
|
316
|
+
|
data/ext/v8/upstream/{2.0.6/src/arm/virtual-frame-arm.h → 2.1.10/src/mips/virtual-frame-mips.h}
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright
|
1
|
+
// Copyright 2010 the V8 project authors. All rights reserved.
|
2
2
|
// Redistribution and use in source and binary forms, with or without
|
3
3
|
// modification, are permitted provided that the following conditions are
|
4
4
|
// met:
|
@@ -25,8 +25,9 @@
|
|
25
25
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
26
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
27
|
|
28
|
-
|
29
|
-
#
|
28
|
+
|
29
|
+
#ifndef V8_MIPS_VIRTUAL_FRAME_MIPS_H_
|
30
|
+
#define V8_MIPS_VIRTUAL_FRAME_MIPS_H_
|
30
31
|
|
31
32
|
#include "register-allocator.h"
|
32
33
|
#include "scopes.h"
|
@@ -34,21 +35,22 @@
|
|
34
35
|
namespace v8 {
|
35
36
|
namespace internal {
|
36
37
|
|
38
|
+
|
37
39
|
// -------------------------------------------------------------------------
|
38
40
|
// Virtual frames
|
39
41
|
//
|
40
|
-
// The virtual frame is an abstraction of the physical stack frame.
|
42
|
+
// The virtual frame is an abstraction of the physical stack frame. It
|
41
43
|
// encapsulates the parameters, frame-allocated locals, and the expression
|
42
|
-
// stack.
|
44
|
+
// stack. It supports push/pop operations on the expression stack, as well
|
43
45
|
// as random access to the expression stack elements, locals, and
|
44
46
|
// parameters.
|
45
47
|
|
46
48
|
class VirtualFrame : public ZoneObject {
|
47
49
|
public:
|
48
50
|
// A utility class to introduce a scope where the virtual frame is
|
49
|
-
// expected to remain spilled.
|
51
|
+
// expected to remain spilled. The constructor spills the code
|
50
52
|
// generator's current frame, but no attempt is made to require it
|
51
|
-
// to stay spilled.
|
53
|
+
// to stay spilled. It is intended as documentation while the code
|
52
54
|
// generator is being transformed.
|
53
55
|
class SpilledScope BASE_EMBEDDED {
|
54
56
|
public:
|
@@ -59,16 +61,17 @@ class VirtualFrame : public ZoneObject {
|
|
59
61
|
static const int kIllegalIndex = -1;
|
60
62
|
|
61
63
|
// Construct an initial virtual frame on entry to a JS function.
|
62
|
-
VirtualFrame();
|
64
|
+
inline VirtualFrame();
|
63
65
|
|
64
66
|
// Construct a virtual frame as a clone of an existing one.
|
65
|
-
explicit VirtualFrame(VirtualFrame* original);
|
67
|
+
explicit inline VirtualFrame(VirtualFrame* original);
|
66
68
|
|
67
69
|
CodeGenerator* cgen() { return CodeGeneratorScope::Current(); }
|
68
70
|
MacroAssembler* masm() { return cgen()->masm(); }
|
69
71
|
|
70
72
|
// Create a duplicate of an existing valid frame element.
|
71
|
-
FrameElement CopyElementAt(int index
|
73
|
+
FrameElement CopyElementAt(int index,
|
74
|
+
NumberInfo info = NumberInfo::Unknown());
|
72
75
|
|
73
76
|
// The number of elements on the virtual frame.
|
74
77
|
int element_count() { return elements_.length(); }
|
@@ -102,23 +105,23 @@ class VirtualFrame : public ZoneObject {
|
|
102
105
|
}
|
103
106
|
|
104
107
|
// Add extra in-memory elements to the top of the frame to match an actual
|
105
|
-
// frame (eg, the frame after an exception handler is pushed).
|
108
|
+
// frame (eg, the frame after an exception handler is pushed). No code is
|
106
109
|
// emitted.
|
107
110
|
void Adjust(int count);
|
108
111
|
|
109
112
|
// Forget elements from the top of the frame to match an actual frame (eg,
|
110
|
-
// the frame after a runtime call).
|
113
|
+
// the frame after a runtime call). No code is emitted.
|
111
114
|
void Forget(int count) {
|
112
115
|
ASSERT(count >= 0);
|
113
116
|
ASSERT(stack_pointer_ == element_count() - 1);
|
114
117
|
stack_pointer_ -= count;
|
115
|
-
// On
|
118
|
+
// On mips, all elements are in memory, so there is no extra bookkeeping
|
116
119
|
// (registers, copies, etc.) beyond dropping the elements.
|
117
120
|
elements_.Rewind(stack_pointer_ + 1);
|
118
121
|
}
|
119
122
|
|
120
123
|
// Forget count elements from the top of the frame and adjust the stack
|
121
|
-
// pointer downward.
|
124
|
+
// pointer downward. This is used, for example, before merging frames at
|
122
125
|
// break, continue, and return targets.
|
123
126
|
void ForgetElements(int count);
|
124
127
|
|
@@ -130,24 +133,24 @@ class VirtualFrame : public ZoneObject {
|
|
130
133
|
if (is_used(reg)) SpillElementAt(register_location(reg));
|
131
134
|
}
|
132
135
|
|
133
|
-
// Spill all occurrences of an arbitrary register if possible.
|
136
|
+
// Spill all occurrences of an arbitrary register if possible. Return the
|
134
137
|
// register spilled or no_reg if it was not possible to free any register
|
135
138
|
// (ie, they all have frame-external references).
|
136
139
|
Register SpillAnyRegister();
|
137
140
|
|
138
141
|
// Prepare this virtual frame for merging to an expected frame by
|
139
142
|
// performing some state changes that do not require generating
|
140
|
-
// code.
|
143
|
+
// code. It is guaranteed that no code will be generated.
|
141
144
|
void PrepareMergeTo(VirtualFrame* expected);
|
142
145
|
|
143
146
|
// Make this virtual frame have a state identical to an expected virtual
|
144
|
-
// frame.
|
147
|
+
// frame. As a side effect, code may be emitted to make this frame match
|
145
148
|
// the expected one.
|
146
149
|
void MergeTo(VirtualFrame* expected);
|
147
150
|
|
148
|
-
// Detach a frame from its code generator, perhaps temporarily.
|
151
|
+
// Detach a frame from its code generator, perhaps temporarily. This
|
149
152
|
// tells the register allocator that it is free to use frame-internal
|
150
|
-
// registers.
|
153
|
+
// registers. Used when the code generator's frame is switched from this
|
151
154
|
// one to NULL by an unconditional jump.
|
152
155
|
void DetachFromCodeGenerator() {
|
153
156
|
RegisterAllocator* cgen_allocator = cgen()->allocator();
|
@@ -156,7 +159,7 @@ class VirtualFrame : public ZoneObject {
|
|
156
159
|
}
|
157
160
|
}
|
158
161
|
|
159
|
-
// (Re)attach a frame to its code generator.
|
162
|
+
// (Re)attach a frame to its code generator. This informs the register
|
160
163
|
// allocator that the frame-internal register references are active again.
|
161
164
|
// Used when a code generator's frame is switched from NULL to this one by
|
162
165
|
// binding a label.
|
@@ -167,22 +170,19 @@ class VirtualFrame : public ZoneObject {
|
|
167
170
|
}
|
168
171
|
}
|
169
172
|
|
170
|
-
// Emit code for the physical JS entry and exit frame sequences.
|
173
|
+
// Emit code for the physical JS entry and exit frame sequences. After
|
171
174
|
// calling Enter, the virtual frame is ready for use; and after calling
|
172
|
-
// Exit it should not be used.
|
175
|
+
// Exit it should not be used. Note that Enter does not allocate space in
|
173
176
|
// the physical frame for storing frame-allocated locals.
|
174
177
|
void Enter();
|
175
178
|
void Exit();
|
176
179
|
|
177
180
|
// Prepare for returning from the frame by spilling locals and
|
178
|
-
// dropping all non-locals elements in the virtual frame.
|
181
|
+
// dropping all non-locals elements in the virtual frame. This
|
179
182
|
// avoids generating unnecessary merge code when jumping to the
|
180
|
-
// shared return site.
|
183
|
+
// shared return site. Emits code for spills.
|
181
184
|
void PrepareForReturn();
|
182
185
|
|
183
|
-
// Number of local variables after when we use a loop for allocating.
|
184
|
-
static const int kLocalVarBound = 5;
|
185
|
-
|
186
186
|
// Allocate and initialize the frame-allocated locals.
|
187
187
|
void AllocateStackSlots();
|
188
188
|
|
@@ -194,11 +194,11 @@ class VirtualFrame : public ZoneObject {
|
|
194
194
|
return MemOperand(sp, index * kPointerSize);
|
195
195
|
}
|
196
196
|
|
197
|
-
// Random-access store to a frame-top relative frame element.
|
197
|
+
// Random-access store to a frame-top relative frame element. The result
|
198
198
|
// becomes owned by the frame and is invalidated.
|
199
199
|
void SetElementAt(int index, Result* value);
|
200
200
|
|
201
|
-
// Set a frame element to a constant.
|
201
|
+
// Set a frame element to a constant. The index is frame-top relative.
|
202
202
|
void SetElementAt(int index, Handle<Object> value) {
|
203
203
|
Result temp(value);
|
204
204
|
SetElementAt(index, &temp);
|
@@ -212,7 +212,7 @@ class VirtualFrame : public ZoneObject {
|
|
212
212
|
MemOperand LocalAt(int index) {
|
213
213
|
ASSERT(0 <= index);
|
214
214
|
ASSERT(index < local_count());
|
215
|
-
return MemOperand(
|
215
|
+
return MemOperand(s8_fp, kLocal0Offset - index * kPointerSize);
|
216
216
|
}
|
217
217
|
|
218
218
|
// Push a copy of the value of a local frame slot on top of the frame.
|
@@ -221,13 +221,13 @@ class VirtualFrame : public ZoneObject {
|
|
221
221
|
}
|
222
222
|
|
223
223
|
// Push the value of a local frame slot on top of the frame and invalidate
|
224
|
-
// the local slot.
|
224
|
+
// the local slot. The slot should be written to before trying to read
|
225
225
|
// from it again.
|
226
226
|
void TakeLocalAt(int index) {
|
227
227
|
TakeFrameSlotAt(local0_index() + index);
|
228
228
|
}
|
229
229
|
|
230
|
-
// Store the top value on the virtual frame into a local frame slot.
|
230
|
+
// Store the top value on the virtual frame into a local frame slot. The
|
231
231
|
// value is left in place on top of the frame.
|
232
232
|
void StoreToLocalAt(int index) {
|
233
233
|
StoreToFrameSlotAt(local0_index() + index);
|
@@ -237,18 +237,18 @@ class VirtualFrame : public ZoneObject {
|
|
237
237
|
void PushReceiverSlotAddress();
|
238
238
|
|
239
239
|
// The function frame slot.
|
240
|
-
MemOperand Function() { return MemOperand(
|
240
|
+
MemOperand Function() { return MemOperand(s8_fp, kFunctionOffset); }
|
241
241
|
|
242
242
|
// Push the function on top of the frame.
|
243
243
|
void PushFunction() { PushFrameSlotAt(function_index()); }
|
244
244
|
|
245
245
|
// The context frame slot.
|
246
|
-
MemOperand Context() { return MemOperand(
|
246
|
+
MemOperand Context() { return MemOperand(s8_fp, kContextOffset); }
|
247
247
|
|
248
|
-
// Save the value of the
|
248
|
+
// Save the value of the cp register to the context frame slot.
|
249
249
|
void SaveContextRegister();
|
250
250
|
|
251
|
-
// Restore the
|
251
|
+
// Restore the cp register from the value of the context frame
|
252
252
|
// slot.
|
253
253
|
void RestoreContextRegister();
|
254
254
|
|
@@ -257,7 +257,8 @@ class VirtualFrame : public ZoneObject {
|
|
257
257
|
// Index -1 corresponds to the receiver.
|
258
258
|
ASSERT(-1 <= index); // -1 is the receiver.
|
259
259
|
ASSERT(index <= parameter_count());
|
260
|
-
|
260
|
+
uint16_t a = 0; // Number of argument slots.
|
261
|
+
return MemOperand(s8_fp, (1 + parameter_count() + a - index) *kPointerSize);
|
261
262
|
}
|
262
263
|
|
263
264
|
// Push a copy of the value of a parameter frame slot on top of the frame.
|
@@ -266,7 +267,7 @@ class VirtualFrame : public ZoneObject {
|
|
266
267
|
}
|
267
268
|
|
268
269
|
// Push the value of a paramter frame slot on top of the frame and
|
269
|
-
// invalidate the parameter slot.
|
270
|
+
// invalidate the parameter slot. The slot should be written to before
|
270
271
|
// trying to read from it again.
|
271
272
|
void TakeParameterAt(int index) {
|
272
273
|
TakeFrameSlotAt(param0_index() + index);
|
@@ -291,12 +292,8 @@ class VirtualFrame : public ZoneObject {
|
|
291
292
|
RawCallStub(stub);
|
292
293
|
}
|
293
294
|
|
294
|
-
// Call stub that expects its argument in r0. The argument is given
|
295
|
-
// as a result which must be the register r0.
|
296
295
|
void CallStub(CodeStub* stub, Result* arg);
|
297
296
|
|
298
|
-
// Call stub that expects its arguments in r1 and r0. The arguments
|
299
|
-
// are given as results which must be the appropriate registers.
|
300
297
|
void CallStub(CodeStub* stub, Result* arg0, Result* arg1);
|
301
298
|
|
302
299
|
// Call runtime given the number of arguments expected on (and
|
@@ -304,14 +301,19 @@ class VirtualFrame : public ZoneObject {
|
|
304
301
|
void CallRuntime(Runtime::Function* f, int arg_count);
|
305
302
|
void CallRuntime(Runtime::FunctionId id, int arg_count);
|
306
303
|
|
304
|
+
// Call runtime with sp aligned to 8 bytes.
|
305
|
+
void CallAlignedRuntime(Runtime::Function* f, int arg_count);
|
306
|
+
void CallAlignedRuntime(Runtime::FunctionId id, int arg_count);
|
307
|
+
|
307
308
|
// Invoke builtin given the number of arguments it expects on (and
|
308
309
|
// removes from) the stack.
|
309
310
|
void InvokeBuiltin(Builtins::JavaScript id,
|
310
311
|
InvokeJSFlags flag,
|
312
|
+
Result* arg_count_register,
|
311
313
|
int arg_count);
|
312
314
|
|
313
315
|
// Call into an IC stub given the number of arguments it removes
|
314
|
-
// from the stack.
|
316
|
+
// from the stack. Register arguments are passed as results and
|
315
317
|
// consumed by the call.
|
316
318
|
void CallCodeObject(Handle<Code> ic,
|
317
319
|
RelocInfo::Mode rmode,
|
@@ -324,40 +326,46 @@ class VirtualFrame : public ZoneObject {
|
|
324
326
|
RelocInfo::Mode rmode,
|
325
327
|
Result* arg0,
|
326
328
|
Result* arg1,
|
327
|
-
int dropped_args
|
329
|
+
int dropped_args,
|
330
|
+
bool set_auto_args_slots = false);
|
328
331
|
|
329
|
-
// Drop a number of elements from the top of the expression stack.
|
330
|
-
// emit code to affect the physical frame.
|
332
|
+
// Drop a number of elements from the top of the expression stack. May
|
333
|
+
// emit code to affect the physical frame. Does not clobber any registers
|
331
334
|
// excepting possibly the stack pointer.
|
332
335
|
void Drop(int count);
|
336
|
+
// Similar to VirtualFrame::Drop but we don't modify the actual stack.
|
337
|
+
// This is because we need to manually restore sp to the correct position.
|
338
|
+
void DropFromVFrameOnly(int count);
|
333
339
|
|
334
340
|
// Drop one element.
|
335
341
|
void Drop() { Drop(1); }
|
342
|
+
void DropFromVFrameOnly() { DropFromVFrameOnly(1); }
|
336
343
|
|
337
344
|
// Duplicate the top element of the frame.
|
338
345
|
void Dup() { PushFrameSlotAt(element_count() - 1); }
|
339
346
|
|
340
|
-
// Pop an element from the top of the expression stack.
|
347
|
+
// Pop an element from the top of the expression stack. Returns a
|
341
348
|
// Result, which may be a constant or a register.
|
342
349
|
Result Pop();
|
343
350
|
|
344
351
|
// Pop and save an element from the top of the expression stack and
|
345
352
|
// emit a corresponding pop instruction.
|
346
353
|
void EmitPop(Register reg);
|
354
|
+
// Same but for multiple registers
|
355
|
+
void EmitMultiPop(RegList regs);
|
356
|
+
void EmitMultiPopReversed(RegList regs);
|
347
357
|
|
348
358
|
// Push an element on top of the expression stack and emit a
|
349
359
|
// corresponding push instruction.
|
350
360
|
void EmitPush(Register reg);
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
// are pushed in decreasing order: r15 .. r0.
|
355
|
-
void EmitPushMultiple(int count, int src_regs);
|
361
|
+
// Same but for multiple registers.
|
362
|
+
void EmitMultiPush(RegList regs);
|
363
|
+
void EmitMultiPushReversed(RegList regs);
|
356
364
|
|
357
365
|
// Push an element on the virtual frame.
|
358
|
-
void Push(Register reg);
|
359
|
-
void Push(Handle<Object> value);
|
360
|
-
void Push(Smi* value)
|
366
|
+
inline void Push(Register reg, NumberInfo info = NumberInfo::Unknown());
|
367
|
+
inline void Push(Handle<Object> value);
|
368
|
+
inline void Push(Smi* value);
|
361
369
|
|
362
370
|
// Pushing a result invalidates it (its contents become owned by the frame).
|
363
371
|
void Push(Result* result) {
|
@@ -372,8 +380,15 @@ class VirtualFrame : public ZoneObject {
|
|
372
380
|
|
373
381
|
// Nip removes zero or more elements from immediately below the top
|
374
382
|
// of the frame, leaving the previous top-of-frame value on top of
|
375
|
-
// the frame.
|
376
|
-
void Nip(int num_dropped);
|
383
|
+
// the frame. Nip(k) is equivalent to x = Pop(), Drop(k), Push(x).
|
384
|
+
inline void Nip(int num_dropped);
|
385
|
+
|
386
|
+
// This pushes 4 arguments slots on the stack and saves asked 'a' registers
|
387
|
+
// 'a' registers are arguments register a0 to a3.
|
388
|
+
void EmitArgumentSlots(RegList reglist);
|
389
|
+
|
390
|
+
inline void SetTypeForLocalAt(int index, NumberInfo info);
|
391
|
+
inline void SetTypeForParamAt(int index, NumberInfo info);
|
377
392
|
|
378
393
|
private:
|
379
394
|
static const int kLocal0Offset = JavaScriptFrameConstants::kLocal0Offset;
|
@@ -398,23 +413,23 @@ class VirtualFrame : public ZoneObject {
|
|
398
413
|
int local_count() { return cgen()->scope()->num_stack_slots(); }
|
399
414
|
|
400
415
|
// The index of the element that is at the processor's frame pointer
|
401
|
-
// (the fp register).
|
416
|
+
// (the fp register). The parameters, receiver, function, and context
|
402
417
|
// are below the frame pointer.
|
403
418
|
int frame_pointer() { return parameter_count() + 3; }
|
404
419
|
|
405
|
-
// The index of the first parameter.
|
420
|
+
// The index of the first parameter. The receiver lies below the first
|
406
421
|
// parameter.
|
407
422
|
int param0_index() { return 1; }
|
408
423
|
|
409
|
-
// The index of the context slot in the frame.
|
424
|
+
// The index of the context slot in the frame. It is immediately
|
410
425
|
// below the frame pointer.
|
411
426
|
int context_index() { return frame_pointer() - 1; }
|
412
427
|
|
413
|
-
// The index of the function slot in the frame.
|
428
|
+
// The index of the function slot in the frame. It is below the frame
|
414
429
|
// pointer and context slot.
|
415
430
|
int function_index() { return frame_pointer() - 2; }
|
416
431
|
|
417
|
-
// The index of the first local.
|
432
|
+
// The index of the first local. Between the frame pointer and the
|
418
433
|
// locals lies the return address.
|
419
434
|
int local0_index() { return frame_pointer() + 2; }
|
420
435
|
|
@@ -429,7 +444,7 @@ class VirtualFrame : public ZoneObject {
|
|
429
444
|
return (frame_pointer() - index) * kPointerSize;
|
430
445
|
}
|
431
446
|
|
432
|
-
// Record an occurrence of a register in the virtual frame.
|
447
|
+
// Record an occurrence of a register in the virtual frame. This has the
|
433
448
|
// effect of incrementing the register's external reference count and
|
434
449
|
// of updating the index of the register's location in the frame.
|
435
450
|
void Use(Register reg, int index) {
|
@@ -438,7 +453,7 @@ class VirtualFrame : public ZoneObject {
|
|
438
453
|
cgen()->allocator()->Use(reg);
|
439
454
|
}
|
440
455
|
|
441
|
-
// Record that a register reference has been dropped from the frame.
|
456
|
+
// Record that a register reference has been dropped from the frame. This
|
442
457
|
// decrements the register's external reference count and invalidates the
|
443
458
|
// index of the register's location in the frame.
|
444
459
|
void Unuse(Register reg) {
|
@@ -452,7 +467,7 @@ class VirtualFrame : public ZoneObject {
|
|
452
467
|
// constant.
|
453
468
|
void SpillElementAt(int index);
|
454
469
|
|
455
|
-
// Sync the element at a particular index.
|
470
|
+
// Sync the element at a particular index. If it is a register or
|
456
471
|
// constant that disagrees with the value on the stack, write it to memory.
|
457
472
|
// Keep the element type as register or constant, and clear the dirty bit.
|
458
473
|
void SyncElementAt(int index);
|
@@ -468,7 +483,7 @@ class VirtualFrame : public ZoneObject {
|
|
468
483
|
|
469
484
|
// Push a copy of a frame slot (typically a local or parameter) on top of
|
470
485
|
// the frame.
|
471
|
-
void PushFrameSlotAt(int index);
|
486
|
+
inline void PushFrameSlotAt(int index);
|
472
487
|
|
473
488
|
// Push a the value of a frame slot (typically a local or parameter) on
|
474
489
|
// top of the frame and invalidate the slot.
|
@@ -479,7 +494,7 @@ class VirtualFrame : public ZoneObject {
|
|
479
494
|
void StoreToFrameSlotAt(int index);
|
480
495
|
|
481
496
|
// Spill all elements in registers. Spill the top spilled_args elements
|
482
|
-
// on the frame.
|
497
|
+
// on the frame. Sync all other frame elements.
|
483
498
|
// Then drop dropped_args elements from the virtual frame, to match
|
484
499
|
// the effect of an upcoming call that will drop them from the stack.
|
485
500
|
void PrepareForCall(int spilled_args, int dropped_args);
|
@@ -500,14 +515,14 @@ class VirtualFrame : public ZoneObject {
|
|
500
515
|
// Make the memory-to-register and constant-to-register moves
|
501
516
|
// needed to make this frame equal the expected frame.
|
502
517
|
// Called after all register-to-memory and register-to-register
|
503
|
-
// moves have been made.
|
518
|
+
// moves have been made. After this function returns, the frames
|
504
519
|
// should be equal.
|
505
520
|
void MergeMoveMemoryToRegisters(VirtualFrame* expected);
|
506
521
|
|
507
522
|
// Invalidates a frame slot (puts an invalid frame element in it).
|
508
523
|
// Copies on the frame are correctly handled, and if this slot was
|
509
524
|
// the backing store of copies, the index of the new backing store
|
510
|
-
// is returned.
|
525
|
+
// is returned. Otherwise, returns kIllegalIndex.
|
511
526
|
// Register counts are correctly updated.
|
512
527
|
int InvalidateFrameSlotAt(int index);
|
513
528
|
|
@@ -519,7 +534,7 @@ class VirtualFrame : public ZoneObject {
|
|
519
534
|
// (via PrepareForCall).
|
520
535
|
void RawCallCodeObject(Handle<Code> code, RelocInfo::Mode rmode);
|
521
536
|
|
522
|
-
bool Equals(VirtualFrame* other);
|
537
|
+
inline bool Equals(VirtualFrame* other);
|
523
538
|
|
524
539
|
// Classes that need raw access to the elements_ array.
|
525
540
|
friend class DeferredCode;
|
@@ -529,4 +544,5 @@ class VirtualFrame : public ZoneObject {
|
|
529
544
|
|
530
545
|
} } // namespace v8::internal
|
531
546
|
|
532
|
-
#endif //
|
547
|
+
#endif // V8_MIPS_VIRTUAL_FRAME_MIPS_H_
|
548
|
+
|