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
@@ -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,13 +25,15 @@
|
|
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_CODEGEN_MIPS_H_
|
30
|
+
#define V8_MIPS_CODEGEN_MIPS_H_
|
30
31
|
|
31
32
|
namespace v8 {
|
32
33
|
namespace internal {
|
33
34
|
|
34
35
|
// Forward declarations
|
36
|
+
class CompilationInfo;
|
35
37
|
class DeferredCode;
|
36
38
|
class RegisterAllocator;
|
37
39
|
class RegisterFile;
|
@@ -40,7 +42,7 @@ enum InitState { CONST_INIT, NOT_CONST_INIT };
|
|
40
42
|
enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF };
|
41
43
|
|
42
44
|
|
43
|
-
//
|
45
|
+
// -----------------------------------------------------------------------------
|
44
46
|
// Reference support
|
45
47
|
|
46
48
|
// A reference is a C++ stack-allocated object that keeps an ECMA
|
@@ -49,55 +51,68 @@ enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF };
|
|
49
51
|
// store state on the stack for keeping track of references to those.
|
50
52
|
// For properties, we keep either one (named) or two (indexed) values
|
51
53
|
// on the execution stack to represent the reference.
|
52
|
-
|
53
54
|
class Reference BASE_EMBEDDED {
|
54
55
|
public:
|
55
56
|
// The values of the types is important, see size().
|
56
|
-
enum Type { ILLEGAL = -1, SLOT = 0, NAMED = 1, KEYED = 2 };
|
57
|
-
Reference(CodeGenerator* cgen,
|
57
|
+
enum Type { UNLOADED = -2, ILLEGAL = -1, SLOT = 0, NAMED = 1, KEYED = 2 };
|
58
|
+
Reference(CodeGenerator* cgen,
|
59
|
+
Expression* expression,
|
60
|
+
bool persist_after_get = false);
|
58
61
|
~Reference();
|
59
62
|
|
60
63
|
Expression* expression() const { return expression_; }
|
61
64
|
Type type() const { return type_; }
|
62
65
|
void set_type(Type value) {
|
63
|
-
|
66
|
+
ASSERT_EQ(ILLEGAL, type_);
|
64
67
|
type_ = value;
|
65
68
|
}
|
66
69
|
|
70
|
+
void set_unloaded() {
|
71
|
+
ASSERT_NE(ILLEGAL, type_);
|
72
|
+
ASSERT_NE(UNLOADED, type_);
|
73
|
+
type_ = UNLOADED;
|
74
|
+
}
|
67
75
|
// The size the reference takes up on the stack.
|
68
|
-
int size() const {
|
76
|
+
int size() const {
|
77
|
+
return (type_ < SLOT) ? 0 : type_;
|
78
|
+
}
|
69
79
|
|
70
80
|
bool is_illegal() const { return type_ == ILLEGAL; }
|
71
81
|
bool is_slot() const { return type_ == SLOT; }
|
72
82
|
bool is_property() const { return type_ == NAMED || type_ == KEYED; }
|
83
|
+
bool is_unloaded() const { return type_ == UNLOADED; }
|
73
84
|
|
74
|
-
// Return the name.
|
85
|
+
// Return the name. Only valid for named property references.
|
75
86
|
Handle<String> GetName();
|
76
87
|
|
77
88
|
// Generate code to push the value of the reference on top of the
|
78
89
|
// expression stack. The reference is expected to be already on top of
|
79
|
-
// the expression stack, and it is
|
90
|
+
// the expression stack, and it is consumed by the call unless the
|
91
|
+
// reference is for a compound assignment.
|
92
|
+
// If the reference is not consumed, it is left in place under its value.
|
80
93
|
void GetValue();
|
81
94
|
|
82
|
-
// Generate code to
|
83
|
-
//
|
84
|
-
// while the code generator is being transformed.
|
95
|
+
// Generate code to pop a reference, push the value of the reference,
|
96
|
+
// and then spill the stack frame.
|
85
97
|
inline void GetValueAndSpill();
|
86
98
|
|
87
99
|
// Generate code to store the value on top of the expression stack in the
|
88
100
|
// reference. The reference is expected to be immediately below the value
|
89
|
-
// on the expression stack. The
|
90
|
-
// reference
|
101
|
+
// on the expression stack. The value is stored in the location specified
|
102
|
+
// by the reference, and is left on top of the stack, after the reference
|
103
|
+
// is popped from beneath it (unloaded).
|
91
104
|
void SetValue(InitState init_state);
|
92
105
|
|
93
106
|
private:
|
94
107
|
CodeGenerator* cgen_;
|
95
108
|
Expression* expression_;
|
96
109
|
Type type_;
|
110
|
+
// Keep the reference on the stack after get, so it can be used by set later.
|
111
|
+
bool persist_after_get_;
|
97
112
|
};
|
98
113
|
|
99
114
|
|
100
|
-
//
|
115
|
+
// -----------------------------------------------------------------------------
|
101
116
|
// Code generation state
|
102
117
|
|
103
118
|
// The state is passed down the AST by the code generator (and back up, in
|
@@ -112,7 +127,8 @@ class CodeGenState BASE_EMBEDDED {
|
|
112
127
|
explicit CodeGenState(CodeGenerator* owner);
|
113
128
|
|
114
129
|
// Create a code generator state based on a code generator's current
|
115
|
-
// state. The new state has its own pair of branch
|
130
|
+
// state. The new state has its own typeof state and pair of branch
|
131
|
+
// labels.
|
116
132
|
CodeGenState(CodeGenerator* owner,
|
117
133
|
JumpTarget* true_target,
|
118
134
|
JumpTarget* false_target);
|
@@ -121,36 +137,53 @@ class CodeGenState BASE_EMBEDDED {
|
|
121
137
|
// previous state.
|
122
138
|
~CodeGenState();
|
123
139
|
|
140
|
+
TypeofState typeof_state() const { return typeof_state_; }
|
124
141
|
JumpTarget* true_target() const { return true_target_; }
|
125
142
|
JumpTarget* false_target() const { return false_target_; }
|
126
143
|
|
127
144
|
private:
|
145
|
+
// The owning code generator.
|
128
146
|
CodeGenerator* owner_;
|
147
|
+
|
148
|
+
// A flag indicating whether we are compiling the immediate subexpression
|
149
|
+
// of a typeof expression.
|
150
|
+
TypeofState typeof_state_;
|
151
|
+
|
129
152
|
JumpTarget* true_target_;
|
130
153
|
JumpTarget* false_target_;
|
154
|
+
|
155
|
+
// The previous state of the owning code generator, restored when
|
156
|
+
// this state is destroyed.
|
131
157
|
CodeGenState* previous_;
|
132
158
|
};
|
133
159
|
|
134
160
|
|
135
|
-
|
161
|
+
|
162
|
+
// -----------------------------------------------------------------------------
|
136
163
|
// CodeGenerator
|
137
164
|
|
138
165
|
class CodeGenerator: public AstVisitor {
|
139
166
|
public:
|
167
|
+
// Compilation mode. Either the compiler is used as the primary
|
168
|
+
// compiler and needs to setup everything or the compiler is used as
|
169
|
+
// the secondary compiler for split compilation and has to handle
|
170
|
+
// bailouts.
|
171
|
+
enum Mode {
|
172
|
+
PRIMARY,
|
173
|
+
SECONDARY
|
174
|
+
};
|
175
|
+
|
140
176
|
// Takes a function literal, generates code for it. This function should only
|
141
177
|
// be called by compiler.cc.
|
142
|
-
static Handle<Code> MakeCode(
|
143
|
-
Handle<Script> script,
|
144
|
-
bool is_eval);
|
178
|
+
static Handle<Code> MakeCode(CompilationInfo* info);
|
145
179
|
|
146
180
|
// Printing of AST, etc. as requested by flags.
|
147
|
-
static void MakeCodePrologue(
|
181
|
+
static void MakeCodePrologue(CompilationInfo* info);
|
148
182
|
|
149
183
|
// Allocate and install the code.
|
150
|
-
static Handle<Code> MakeCodeEpilogue(
|
151
|
-
MacroAssembler* masm,
|
184
|
+
static Handle<Code> MakeCodeEpilogue(MacroAssembler* masm,
|
152
185
|
Code::Flags flags,
|
153
|
-
|
186
|
+
CompilationInfo* info);
|
154
187
|
|
155
188
|
#ifdef ENABLE_LOGGING_AND_PROFILING
|
156
189
|
static bool ShouldGenerateLog(Expression* type);
|
@@ -166,7 +199,7 @@ class CodeGenerator: public AstVisitor {
|
|
166
199
|
// Accessors
|
167
200
|
MacroAssembler* masm() { return masm_; }
|
168
201
|
VirtualFrame* frame() const { return frame_; }
|
169
|
-
Handle<Script> script()
|
202
|
+
inline Handle<Script> script();
|
170
203
|
|
171
204
|
bool has_valid_frame() const { return frame_ != NULL; }
|
172
205
|
|
@@ -187,25 +220,32 @@ class CodeGenerator: public AstVisitor {
|
|
187
220
|
|
188
221
|
static const int kUnknownIntValue = -1;
|
189
222
|
|
223
|
+
// Number of instructions used for the JS return sequence. The constant is
|
224
|
+
// used by the debugger to patch the JS return sequence.
|
225
|
+
static const int kJSReturnSequenceLength = 7;
|
226
|
+
|
227
|
+
// If the name is an inline runtime function call return the number of
|
228
|
+
// expected arguments. Otherwise return -1.
|
229
|
+
static int InlineRuntimeCallArgumentsCount(Handle<String> name);
|
230
|
+
|
190
231
|
private:
|
191
|
-
// Construction/Destruction
|
192
|
-
CodeGenerator(
|
193
|
-
virtual ~CodeGenerator() { delete masm_; }
|
232
|
+
// Construction/Destruction.
|
233
|
+
explicit CodeGenerator(MacroAssembler* masm);
|
194
234
|
|
195
|
-
// Accessors
|
196
|
-
|
235
|
+
// Accessors.
|
236
|
+
inline bool is_eval();
|
237
|
+
inline Scope* scope();
|
197
238
|
|
198
239
|
// Generating deferred code.
|
199
240
|
void ProcessDeferred();
|
200
241
|
|
201
|
-
bool is_eval() { return is_eval_; }
|
202
|
-
|
203
242
|
// State
|
204
|
-
bool has_cc() const { return cc_reg_ !=
|
243
|
+
bool has_cc() const { return cc_reg_ != cc_always; }
|
244
|
+
TypeofState typeof_state() const { return state_->typeof_state(); }
|
205
245
|
JumpTarget* true_target() const { return state_->true_target(); }
|
206
246
|
JumpTarget* false_target() const { return state_->false_target(); }
|
207
247
|
|
208
|
-
// We don't track loop nesting level on
|
248
|
+
// We don't track loop nesting level on mips yet.
|
209
249
|
int loop_nesting() const { return 0; }
|
210
250
|
|
211
251
|
// Node visitors.
|
@@ -227,25 +267,20 @@ class CodeGenerator: public AstVisitor {
|
|
227
267
|
inline void VisitStatementsAndSpill(ZoneList<Statement*>* statements);
|
228
268
|
|
229
269
|
// Main code generation function
|
230
|
-
void
|
270
|
+
void Generate(CompilationInfo* info);
|
231
271
|
|
232
272
|
// The following are used by class Reference.
|
233
273
|
void LoadReference(Reference* ref);
|
234
274
|
void UnloadReference(Reference* ref);
|
235
275
|
|
236
|
-
|
276
|
+
MemOperand ContextOperand(Register context, int index) const {
|
237
277
|
return MemOperand(context, Context::SlotOffset(index));
|
238
278
|
}
|
239
279
|
|
240
280
|
MemOperand SlotOperand(Slot* slot, Register tmp);
|
241
281
|
|
242
|
-
MemOperand ContextSlotOperandCheckExtensions(Slot* slot,
|
243
|
-
Register tmp,
|
244
|
-
Register tmp2,
|
245
|
-
JumpTarget* slow);
|
246
|
-
|
247
282
|
// Expressions
|
248
|
-
|
283
|
+
MemOperand GlobalObject() const {
|
249
284
|
return ContextOperand(cp, Context::GLOBAL_INDEX);
|
250
285
|
}
|
251
286
|
|
@@ -253,66 +288,23 @@ class CodeGenerator: public AstVisitor {
|
|
253
288
|
JumpTarget* true_target,
|
254
289
|
JumpTarget* false_target,
|
255
290
|
bool force_cc);
|
256
|
-
void Load(Expression*
|
291
|
+
void Load(Expression* x);
|
257
292
|
void LoadGlobal();
|
258
|
-
void LoadGlobalReceiver(Register scratch);
|
259
293
|
|
260
294
|
// Generate code to push the value of an expression on top of the frame
|
261
295
|
// and then spill the frame fully to memory. This function is used
|
262
296
|
// temporarily while the code generator is being transformed.
|
263
297
|
inline void LoadAndSpill(Expression* expression);
|
264
298
|
|
265
|
-
// Call LoadCondition and then spill the virtual frame unless control flow
|
266
|
-
// cannot reach the end of the expression (ie, by emitting only
|
267
|
-
// unconditional jumps to the control targets).
|
268
|
-
inline void LoadConditionAndSpill(Expression* expression,
|
269
|
-
JumpTarget* true_target,
|
270
|
-
JumpTarget* false_target,
|
271
|
-
bool force_control);
|
272
|
-
|
273
299
|
// Read a value from a slot and leave it on top of the expression stack.
|
274
300
|
void LoadFromSlot(Slot* slot, TypeofState typeof_state);
|
275
301
|
// Store the value on top of the stack to a slot.
|
276
302
|
void StoreToSlot(Slot* slot, InitState init_state);
|
277
303
|
|
278
|
-
void LoadFromGlobalSlotCheckExtensions(Slot* slot,
|
279
|
-
TypeofState typeof_state,
|
280
|
-
Register tmp,
|
281
|
-
Register tmp2,
|
282
|
-
JumpTarget* slow);
|
283
|
-
|
284
|
-
// Special code for typeof expressions: Unfortunately, we must
|
285
|
-
// be careful when loading the expression in 'typeof'
|
286
|
-
// expressions. We are not allowed to throw reference errors for
|
287
|
-
// non-existing properties of the global object, so we must make it
|
288
|
-
// look like an explicit property access, instead of an access
|
289
|
-
// through the context chain.
|
290
|
-
void LoadTypeofExpression(Expression* x);
|
291
|
-
|
292
|
-
void ToBoolean(JumpTarget* true_target, JumpTarget* false_target);
|
293
|
-
|
294
|
-
void GenericBinaryOperation(Token::Value op,
|
295
|
-
OverwriteMode overwrite_mode,
|
296
|
-
int known_rhs = kUnknownIntValue);
|
297
|
-
void Comparison(Condition cc,
|
298
|
-
Expression* left,
|
299
|
-
Expression* right,
|
300
|
-
bool strict = false);
|
301
|
-
|
302
|
-
void SmiOperation(Token::Value op,
|
303
|
-
Handle<Object> value,
|
304
|
-
bool reversed,
|
305
|
-
OverwriteMode mode);
|
306
|
-
|
307
|
-
void CallWithArguments(ZoneList<Expression*>* arguments, int position);
|
308
|
-
|
309
|
-
// Control flow
|
310
|
-
void Branch(bool if_true, JumpTarget* target);
|
311
|
-
void CheckStack();
|
312
|
-
|
313
304
|
struct InlineRuntimeLUT {
|
314
305
|
void (CodeGenerator::*method)(ZoneList<Expression*>*);
|
315
306
|
const char* name;
|
307
|
+
int nargs;
|
316
308
|
};
|
317
309
|
|
318
310
|
static InlineRuntimeLUT* FindInlineRuntimeLUT(Handle<String> name);
|
@@ -324,28 +316,24 @@ class CodeGenerator: public AstVisitor {
|
|
324
316
|
static Handle<Code> ComputeLazyCompile(int argc);
|
325
317
|
void ProcessDeclarations(ZoneList<Declaration*>* declarations);
|
326
318
|
|
327
|
-
|
319
|
+
Handle<Code> ComputeCallInitialize(int argc, InLoopFlag in_loop);
|
328
320
|
|
329
321
|
// Declare global variables and functions in the given array of
|
330
322
|
// name/value pairs.
|
331
323
|
void DeclareGlobals(Handle<FixedArray> pairs);
|
332
324
|
|
333
|
-
// Instantiate the function boilerplate.
|
334
|
-
void InstantiateBoilerplate(Handle<JSFunction> boilerplate);
|
335
|
-
|
336
325
|
// Support for type checks.
|
337
326
|
void GenerateIsSmi(ZoneList<Expression*>* args);
|
338
327
|
void GenerateIsNonNegativeSmi(ZoneList<Expression*>* args);
|
339
328
|
void GenerateIsArray(ZoneList<Expression*>* args);
|
340
|
-
void
|
341
|
-
void GenerateIsFunction(ZoneList<Expression*>* args);
|
329
|
+
void GenerateIsRegExp(ZoneList<Expression*>* args);
|
342
330
|
|
343
331
|
// Support for construct call checks.
|
344
332
|
void GenerateIsConstructCall(ZoneList<Expression*>* args);
|
345
333
|
|
346
334
|
// Support for arguments.length and arguments[?].
|
347
335
|
void GenerateArgumentsLength(ZoneList<Expression*>* args);
|
348
|
-
void
|
336
|
+
void GenerateArguments(ZoneList<Expression*>* args);
|
349
337
|
|
350
338
|
// Support for accessing the class and value fields of an object.
|
351
339
|
void GenerateClassOf(ZoneList<Expression*>* args);
|
@@ -355,25 +343,31 @@ class CodeGenerator: public AstVisitor {
|
|
355
343
|
// Fast support for charCodeAt(n).
|
356
344
|
void GenerateFastCharCodeAt(ZoneList<Expression*>* args);
|
357
345
|
|
346
|
+
// Fast support for string.charAt(n) and string[n].
|
347
|
+
void GenerateCharFromCode(ZoneList<Expression*>* args);
|
348
|
+
|
358
349
|
// Fast support for object equality testing.
|
359
350
|
void GenerateObjectEquals(ZoneList<Expression*>* args);
|
360
351
|
|
361
352
|
void GenerateLog(ZoneList<Expression*>* args);
|
362
353
|
|
363
354
|
// Fast support for Math.random().
|
364
|
-
void
|
355
|
+
void GenerateRandomHeapNumber(ZoneList<Expression*>* args);
|
365
356
|
|
366
|
-
|
357
|
+
void GenerateIsObject(ZoneList<Expression*>* args);
|
358
|
+
void GenerateIsFunction(ZoneList<Expression*>* args);
|
359
|
+
void GenerateIsUndetectableObject(ZoneList<Expression*>* args);
|
367
360
|
void GenerateStringAdd(ZoneList<Expression*>* args);
|
368
|
-
|
369
|
-
// Fast support for SubString.
|
370
361
|
void GenerateSubString(ZoneList<Expression*>* args);
|
371
|
-
|
372
|
-
// Fast support for StringCompare.
|
373
362
|
void GenerateStringCompare(ZoneList<Expression*>* args);
|
374
|
-
|
375
|
-
// Support for direct calls from JavaScript to native RegExp code.
|
376
363
|
void GenerateRegExpExec(ZoneList<Expression*>* args);
|
364
|
+
void GenerateNumberToString(ZoneList<Expression*>* args);
|
365
|
+
|
366
|
+
// Fast call to math functions.
|
367
|
+
void GenerateMathPow(ZoneList<Expression*>* args);
|
368
|
+
void GenerateMathSin(ZoneList<Expression*>* args);
|
369
|
+
void GenerateMathCos(ZoneList<Expression*>* args);
|
370
|
+
void GenerateMathSqrt(ZoneList<Expression*>* args);
|
377
371
|
|
378
372
|
// Simple condition analysis.
|
379
373
|
enum ConditionAnalysis {
|
@@ -405,8 +399,9 @@ class CodeGenerator: public AstVisitor {
|
|
405
399
|
// Assembler
|
406
400
|
MacroAssembler* masm_; // to generate code
|
407
401
|
|
402
|
+
CompilationInfo* info_;
|
403
|
+
|
408
404
|
// Code generation state
|
409
|
-
Scope* scope_;
|
410
405
|
VirtualFrame* frame_;
|
411
406
|
RegisterAllocator* allocator_;
|
412
407
|
Condition cc_reg_;
|
@@ -426,110 +421,13 @@ class CodeGenerator: public AstVisitor {
|
|
426
421
|
friend class JumpTarget;
|
427
422
|
friend class Reference;
|
428
423
|
friend class FastCodeGenerator;
|
429
|
-
friend class
|
424
|
+
friend class FullCodeGenerator;
|
425
|
+
friend class FullCodeGenSyntaxChecker;
|
430
426
|
|
431
427
|
DISALLOW_COPY_AND_ASSIGN(CodeGenerator);
|
432
428
|
};
|
433
429
|
|
434
430
|
|
435
|
-
class CallFunctionStub: public CodeStub {
|
436
|
-
public:
|
437
|
-
CallFunctionStub(int argc, InLoopFlag in_loop)
|
438
|
-
: argc_(argc), in_loop_(in_loop) {}
|
439
|
-
|
440
|
-
void Generate(MacroAssembler* masm);
|
441
|
-
|
442
|
-
private:
|
443
|
-
int argc_;
|
444
|
-
InLoopFlag in_loop_;
|
445
|
-
|
446
|
-
#if defined(DEBUG)
|
447
|
-
void Print() { PrintF("CallFunctionStub (argc %d)\n", argc_); }
|
448
|
-
#endif // defined(DEBUG)
|
449
|
-
|
450
|
-
Major MajorKey() { return CallFunction; }
|
451
|
-
int MinorKey() { return argc_; }
|
452
|
-
InLoopFlag InLoop() { return in_loop_; }
|
453
|
-
};
|
454
|
-
|
455
|
-
|
456
|
-
class GenericBinaryOpStub : public CodeStub {
|
457
|
-
public:
|
458
|
-
GenericBinaryOpStub(Token::Value op,
|
459
|
-
OverwriteMode mode,
|
460
|
-
int constant_rhs = CodeGenerator::kUnknownIntValue)
|
461
|
-
: op_(op),
|
462
|
-
mode_(mode),
|
463
|
-
constant_rhs_(constant_rhs),
|
464
|
-
specialized_on_rhs_(RhsIsOneWeWantToOptimizeFor(op, constant_rhs)),
|
465
|
-
name_(NULL) { }
|
466
|
-
|
467
|
-
private:
|
468
|
-
Token::Value op_;
|
469
|
-
OverwriteMode mode_;
|
470
|
-
int constant_rhs_;
|
471
|
-
bool specialized_on_rhs_;
|
472
|
-
char* name_;
|
473
|
-
|
474
|
-
static const int kMaxKnownRhs = 0x40000000;
|
475
|
-
|
476
|
-
// Minor key encoding in 16 bits.
|
477
|
-
class ModeBits: public BitField<OverwriteMode, 0, 2> {};
|
478
|
-
class OpBits: public BitField<Token::Value, 2, 6> {};
|
479
|
-
class KnownIntBits: public BitField<int, 8, 8> {};
|
480
|
-
|
481
|
-
Major MajorKey() { return GenericBinaryOp; }
|
482
|
-
int MinorKey() {
|
483
|
-
// Encode the parameters in a unique 16 bit value.
|
484
|
-
return OpBits::encode(op_)
|
485
|
-
| ModeBits::encode(mode_)
|
486
|
-
| KnownIntBits::encode(MinorKeyForKnownInt());
|
487
|
-
}
|
488
|
-
|
489
|
-
void Generate(MacroAssembler* masm);
|
490
|
-
void HandleNonSmiBitwiseOp(MacroAssembler* masm);
|
491
|
-
|
492
|
-
static bool RhsIsOneWeWantToOptimizeFor(Token::Value op, int constant_rhs) {
|
493
|
-
if (constant_rhs == CodeGenerator::kUnknownIntValue) return false;
|
494
|
-
if (op == Token::DIV) return constant_rhs >= 2 && constant_rhs <= 3;
|
495
|
-
if (op == Token::MOD) {
|
496
|
-
if (constant_rhs <= 1) return false;
|
497
|
-
if (constant_rhs <= 10) return true;
|
498
|
-
if (constant_rhs <= kMaxKnownRhs && IsPowerOf2(constant_rhs)) return true;
|
499
|
-
return false;
|
500
|
-
}
|
501
|
-
return false;
|
502
|
-
}
|
503
|
-
|
504
|
-
int MinorKeyForKnownInt() {
|
505
|
-
if (!specialized_on_rhs_) return 0;
|
506
|
-
if (constant_rhs_ <= 10) return constant_rhs_ + 1;
|
507
|
-
ASSERT(IsPowerOf2(constant_rhs_));
|
508
|
-
int key = 12;
|
509
|
-
int d = constant_rhs_;
|
510
|
-
while ((d & 1) == 0) {
|
511
|
-
key++;
|
512
|
-
d >>= 1;
|
513
|
-
}
|
514
|
-
return key;
|
515
|
-
}
|
516
|
-
|
517
|
-
const char* GetName();
|
518
|
-
|
519
|
-
#ifdef DEBUG
|
520
|
-
void Print() {
|
521
|
-
if (!specialized_on_rhs_) {
|
522
|
-
PrintF("GenericBinaryOpStub (%s)\n", Token::String(op_));
|
523
|
-
} else {
|
524
|
-
PrintF("GenericBinaryOpStub (%s by %d)\n",
|
525
|
-
Token::String(op_),
|
526
|
-
constant_rhs_);
|
527
|
-
}
|
528
|
-
}
|
529
|
-
#endif
|
530
|
-
};
|
531
|
-
|
532
|
-
|
533
431
|
} } // namespace v8::internal
|
534
432
|
|
535
|
-
#endif //
|
433
|
+
#endif // V8_MIPS_CODEGEN_MIPS_H_
|