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
@@ -25,8 +25,8 @@
|
|
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
|
-
#ifndef
|
29
|
-
#define
|
28
|
+
#ifndef V8_FULL_CODEGEN_H_
|
29
|
+
#define V8_FULL_CODEGEN_H_
|
30
30
|
|
31
31
|
#include "v8.h"
|
32
32
|
|
@@ -35,16 +35,42 @@
|
|
35
35
|
namespace v8 {
|
36
36
|
namespace internal {
|
37
37
|
|
38
|
+
class FullCodeGenSyntaxChecker: public AstVisitor {
|
39
|
+
public:
|
40
|
+
FullCodeGenSyntaxChecker() : has_supported_syntax_(true) {}
|
41
|
+
|
42
|
+
void Check(FunctionLiteral* fun);
|
43
|
+
|
44
|
+
bool has_supported_syntax() { return has_supported_syntax_; }
|
45
|
+
|
46
|
+
private:
|
47
|
+
void VisitDeclarations(ZoneList<Declaration*>* decls);
|
48
|
+
void VisitStatements(ZoneList<Statement*>* stmts);
|
49
|
+
|
50
|
+
// AST node visit functions.
|
51
|
+
#define DECLARE_VISIT(type) virtual void Visit##type(type* node);
|
52
|
+
AST_NODE_LIST(DECLARE_VISIT)
|
53
|
+
#undef DECLARE_VISIT
|
54
|
+
|
55
|
+
bool has_supported_syntax_;
|
56
|
+
|
57
|
+
DISALLOW_COPY_AND_ASSIGN(FullCodeGenSyntaxChecker);
|
58
|
+
};
|
59
|
+
|
60
|
+
|
38
61
|
// -----------------------------------------------------------------------------
|
39
|
-
//
|
62
|
+
// Full code generator.
|
40
63
|
|
41
|
-
class
|
64
|
+
class FullCodeGenerator: public AstVisitor {
|
42
65
|
public:
|
43
|
-
|
66
|
+
enum Mode {
|
67
|
+
PRIMARY,
|
68
|
+
SECONDARY
|
69
|
+
};
|
70
|
+
|
71
|
+
explicit FullCodeGenerator(MacroAssembler* masm)
|
44
72
|
: masm_(masm),
|
45
|
-
|
46
|
-
script_(script),
|
47
|
-
is_eval_(is_eval),
|
73
|
+
info_(NULL),
|
48
74
|
nesting_stack_(NULL),
|
49
75
|
loop_depth_(0),
|
50
76
|
location_(kStack),
|
@@ -52,11 +78,9 @@ class FastCodeGenerator: public AstVisitor {
|
|
52
78
|
false_label_(NULL) {
|
53
79
|
}
|
54
80
|
|
55
|
-
static Handle<Code> MakeCode(
|
56
|
-
Handle<Script> script,
|
57
|
-
bool is_eval);
|
81
|
+
static Handle<Code> MakeCode(CompilationInfo* info);
|
58
82
|
|
59
|
-
void Generate(
|
83
|
+
void Generate(CompilationInfo* info, Mode mode);
|
60
84
|
|
61
85
|
private:
|
62
86
|
class Breakable;
|
@@ -68,7 +92,7 @@ class FastCodeGenerator: public AstVisitor {
|
|
68
92
|
|
69
93
|
class NestedStatement BASE_EMBEDDED {
|
70
94
|
public:
|
71
|
-
explicit NestedStatement(
|
95
|
+
explicit NestedStatement(FullCodeGenerator* codegen) : codegen_(codegen) {
|
72
96
|
// Link into codegen's nesting stack.
|
73
97
|
previous_ = codegen->nesting_stack_;
|
74
98
|
codegen->nesting_stack_ = this;
|
@@ -106,14 +130,14 @@ class FastCodeGenerator: public AstVisitor {
|
|
106
130
|
protected:
|
107
131
|
MacroAssembler* masm() { return codegen_->masm(); }
|
108
132
|
private:
|
109
|
-
|
133
|
+
FullCodeGenerator* codegen_;
|
110
134
|
NestedStatement* previous_;
|
111
135
|
DISALLOW_COPY_AND_ASSIGN(NestedStatement);
|
112
136
|
};
|
113
137
|
|
114
138
|
class Breakable : public NestedStatement {
|
115
139
|
public:
|
116
|
-
Breakable(
|
140
|
+
Breakable(FullCodeGenerator* codegen,
|
117
141
|
BreakableStatement* break_target)
|
118
142
|
: NestedStatement(codegen),
|
119
143
|
target_(break_target) {}
|
@@ -132,7 +156,7 @@ class FastCodeGenerator: public AstVisitor {
|
|
132
156
|
|
133
157
|
class Iteration : public Breakable {
|
134
158
|
public:
|
135
|
-
Iteration(
|
159
|
+
Iteration(FullCodeGenerator* codegen,
|
136
160
|
IterationStatement* iteration_statement)
|
137
161
|
: Breakable(codegen, iteration_statement) {}
|
138
162
|
virtual ~Iteration() {}
|
@@ -149,7 +173,7 @@ class FastCodeGenerator: public AstVisitor {
|
|
149
173
|
// The environment inside the try block of a try/catch statement.
|
150
174
|
class TryCatch : public NestedStatement {
|
151
175
|
public:
|
152
|
-
explicit TryCatch(
|
176
|
+
explicit TryCatch(FullCodeGenerator* codegen, Label* catch_entry)
|
153
177
|
: NestedStatement(codegen), catch_entry_(catch_entry) { }
|
154
178
|
virtual ~TryCatch() {}
|
155
179
|
virtual TryCatch* AsTryCatch() { return this; }
|
@@ -163,7 +187,7 @@ class FastCodeGenerator: public AstVisitor {
|
|
163
187
|
// The environment inside the try block of a try/finally statement.
|
164
188
|
class TryFinally : public NestedStatement {
|
165
189
|
public:
|
166
|
-
explicit TryFinally(
|
190
|
+
explicit TryFinally(FullCodeGenerator* codegen, Label* finally_entry)
|
167
191
|
: NestedStatement(codegen), finally_entry_(finally_entry) { }
|
168
192
|
virtual ~TryFinally() {}
|
169
193
|
virtual TryFinally* AsTryFinally() { return this; }
|
@@ -179,7 +203,7 @@ class FastCodeGenerator: public AstVisitor {
|
|
179
203
|
// the block's parameters from the stack.
|
180
204
|
class Finally : public NestedStatement {
|
181
205
|
public:
|
182
|
-
explicit Finally(
|
206
|
+
explicit Finally(FullCodeGenerator* codegen) : NestedStatement(codegen) { }
|
183
207
|
virtual ~Finally() {}
|
184
208
|
virtual Finally* AsFinally() { return this; }
|
185
209
|
virtual int Exit(int stack_depth) {
|
@@ -196,7 +220,7 @@ class FastCodeGenerator: public AstVisitor {
|
|
196
220
|
// the block's temporary storage from the stack.
|
197
221
|
class ForIn : public Iteration {
|
198
222
|
public:
|
199
|
-
ForIn(
|
223
|
+
ForIn(FullCodeGenerator* codegen,
|
200
224
|
ForInStatement* statement)
|
201
225
|
: Iteration(codegen, statement) { }
|
202
226
|
virtual ~ForIn() {}
|
@@ -222,7 +246,10 @@ class FastCodeGenerator: public AstVisitor {
|
|
222
246
|
// or on top of the stack) into the result expected according to an
|
223
247
|
// expression context.
|
224
248
|
void Apply(Expression::Context context, Register reg);
|
249
|
+
|
250
|
+
// Slot cannot have type Slot::LOOKUP.
|
225
251
|
void Apply(Expression::Context context, Slot* slot);
|
252
|
+
|
226
253
|
void Apply(Expression::Context context, Literal* lit);
|
227
254
|
void ApplyTOS(Expression::Context context);
|
228
255
|
|
@@ -250,23 +277,70 @@ class FastCodeGenerator: public AstVisitor {
|
|
250
277
|
// register.
|
251
278
|
MemOperand EmitSlotSearch(Slot* slot, Register scratch);
|
252
279
|
|
280
|
+
void VisitForEffect(Expression* expr) {
|
281
|
+
Expression::Context saved_context = context_;
|
282
|
+
context_ = Expression::kEffect;
|
283
|
+
Visit(expr);
|
284
|
+
context_ = saved_context;
|
285
|
+
}
|
286
|
+
|
253
287
|
void VisitForValue(Expression* expr, Location where) {
|
254
|
-
|
288
|
+
Expression::Context saved_context = context_;
|
255
289
|
Location saved_location = location_;
|
290
|
+
context_ = Expression::kValue;
|
256
291
|
location_ = where;
|
257
292
|
Visit(expr);
|
293
|
+
context_ = saved_context;
|
258
294
|
location_ = saved_location;
|
259
295
|
}
|
260
296
|
|
261
297
|
void VisitForControl(Expression* expr, Label* if_true, Label* if_false) {
|
262
|
-
|
263
|
-
expr->context() == Expression::kValueTest ||
|
264
|
-
expr->context() == Expression::kTestValue);
|
298
|
+
Expression::Context saved_context = context_;
|
265
299
|
Label* saved_true = true_label_;
|
266
300
|
Label* saved_false = false_label_;
|
301
|
+
context_ = Expression::kTest;
|
267
302
|
true_label_ = if_true;
|
268
303
|
false_label_ = if_false;
|
269
304
|
Visit(expr);
|
305
|
+
context_ = saved_context;
|
306
|
+
true_label_ = saved_true;
|
307
|
+
false_label_ = saved_false;
|
308
|
+
}
|
309
|
+
|
310
|
+
void VisitForValueControl(Expression* expr,
|
311
|
+
Location where,
|
312
|
+
Label* if_true,
|
313
|
+
Label* if_false) {
|
314
|
+
Expression::Context saved_context = context_;
|
315
|
+
Location saved_location = location_;
|
316
|
+
Label* saved_true = true_label_;
|
317
|
+
Label* saved_false = false_label_;
|
318
|
+
context_ = Expression::kValueTest;
|
319
|
+
location_ = where;
|
320
|
+
true_label_ = if_true;
|
321
|
+
false_label_ = if_false;
|
322
|
+
Visit(expr);
|
323
|
+
context_ = saved_context;
|
324
|
+
location_ = saved_location;
|
325
|
+
true_label_ = saved_true;
|
326
|
+
false_label_ = saved_false;
|
327
|
+
}
|
328
|
+
|
329
|
+
void VisitForControlValue(Expression* expr,
|
330
|
+
Location where,
|
331
|
+
Label* if_true,
|
332
|
+
Label* if_false) {
|
333
|
+
Expression::Context saved_context = context_;
|
334
|
+
Location saved_location = location_;
|
335
|
+
Label* saved_true = true_label_;
|
336
|
+
Label* saved_false = false_label_;
|
337
|
+
context_ = Expression::kTestValue;
|
338
|
+
location_ = where;
|
339
|
+
true_label_ = if_true;
|
340
|
+
false_label_ = if_false;
|
341
|
+
Visit(expr);
|
342
|
+
context_ = saved_context;
|
343
|
+
location_ = saved_location;
|
270
344
|
true_label_ = saved_true;
|
271
345
|
false_label_ = saved_false;
|
272
346
|
}
|
@@ -330,6 +404,12 @@ class FastCodeGenerator: public AstVisitor {
|
|
330
404
|
}
|
331
405
|
|
332
406
|
MacroAssembler* masm() { return masm_; }
|
407
|
+
|
408
|
+
Handle<Script> script() { return info_->script(); }
|
409
|
+
bool is_eval() { return info_->is_eval(); }
|
410
|
+
FunctionLiteral* function() { return info_->function(); }
|
411
|
+
Scope* scope() { return info_->scope(); }
|
412
|
+
|
333
413
|
static Register result_register();
|
334
414
|
static Register context_register();
|
335
415
|
|
@@ -349,23 +429,23 @@ class FastCodeGenerator: public AstVisitor {
|
|
349
429
|
void EmitLogicalOperation(BinaryOperation* expr);
|
350
430
|
|
351
431
|
MacroAssembler* masm_;
|
352
|
-
|
353
|
-
|
354
|
-
bool is_eval_;
|
432
|
+
CompilationInfo* info_;
|
433
|
+
|
355
434
|
Label return_label_;
|
356
435
|
NestedStatement* nesting_stack_;
|
357
436
|
int loop_depth_;
|
358
437
|
|
438
|
+
Expression::Context context_;
|
359
439
|
Location location_;
|
360
440
|
Label* true_label_;
|
361
441
|
Label* false_label_;
|
362
442
|
|
363
443
|
friend class NestedStatement;
|
364
444
|
|
365
|
-
DISALLOW_COPY_AND_ASSIGN(
|
445
|
+
DISALLOW_COPY_AND_ASSIGN(FullCodeGenerator);
|
366
446
|
};
|
367
447
|
|
368
448
|
|
369
449
|
} } // namespace v8::internal
|
370
450
|
|
371
|
-
#endif //
|
451
|
+
#endif // V8_FULL_CODEGEN_H_
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -46,15 +46,36 @@ namespace internal {
|
|
46
46
|
#elif defined(__ARMEL__)
|
47
47
|
#define V8_HOST_ARCH_ARM 1
|
48
48
|
#define V8_HOST_ARCH_32_BIT 1
|
49
|
+
#elif defined(_MIPS_ARCH_MIPS32R2)
|
50
|
+
#define V8_HOST_ARCH_MIPS 1
|
51
|
+
#define V8_HOST_ARCH_32_BIT 1
|
49
52
|
#else
|
50
|
-
#error
|
53
|
+
#error Host architecture was not detected as supported by v8
|
54
|
+
#endif
|
55
|
+
|
56
|
+
// Check for supported combinations of host and target architectures.
|
57
|
+
#if defined(V8_TARGET_ARCH_IA32) && !defined(V8_HOST_ARCH_IA32)
|
58
|
+
#error Target architecture ia32 is only supported on ia32 host
|
59
|
+
#endif
|
60
|
+
#if defined(V8_TARGET_ARCH_X64) && !defined(V8_HOST_ARCH_X64)
|
61
|
+
#error Target architecture x64 is only supported on x64 host
|
62
|
+
#endif
|
63
|
+
#if (defined(V8_TARGET_ARCH_ARM) && \
|
64
|
+
!(defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_ARM)))
|
65
|
+
#error Target architecture arm is only supported on arm and ia32 host
|
66
|
+
#endif
|
67
|
+
#if (defined(V8_TARGET_ARCH_MIPS) && \
|
68
|
+
!(defined(V8_HOST_ARCH_IA32) || defined(V8_HOST_ARCH_MIPS)))
|
69
|
+
#error Target architecture mips is only supported on mips and ia32 host
|
51
70
|
#endif
|
52
71
|
|
72
|
+
// Define unaligned read for the target architectures supporting it.
|
53
73
|
#if defined(V8_TARGET_ARCH_X64) || defined(V8_TARGET_ARCH_IA32)
|
54
74
|
#define V8_TARGET_CAN_READ_UNALIGNED 1
|
55
75
|
#elif V8_TARGET_ARCH_ARM
|
76
|
+
#elif V8_TARGET_ARCH_MIPS
|
56
77
|
#else
|
57
|
-
#error
|
78
|
+
#error Target architecture is not supported by v8
|
58
79
|
#endif
|
59
80
|
|
60
81
|
// Support for alternative bool type. This is only enabled if the code is
|
@@ -94,6 +115,11 @@ typedef byte* Address;
|
|
94
115
|
#define V8_PTR_PREFIX ""
|
95
116
|
#endif // V8_HOST_ARCH_64_BIT
|
96
117
|
|
118
|
+
// The following macro works on both 32 and 64-bit platforms.
|
119
|
+
// Usage: instead of writing 0x1234567890123456
|
120
|
+
// write V8_2PART_UINT64_C(0x12345678,90123456);
|
121
|
+
#define V8_2PART_UINT64_C(a, b) (((static_cast<uint64_t>(a) << 32) + 0x##b##u))
|
122
|
+
|
97
123
|
#define V8PRIxPTR V8_PTR_PREFIX "x"
|
98
124
|
#define V8PRIdPTR V8_PTR_PREFIX "d"
|
99
125
|
|
@@ -103,8 +129,9 @@ typedef byte* Address;
|
|
103
129
|
#define V8PRIxPTR "lx"
|
104
130
|
#endif
|
105
131
|
|
106
|
-
#if defined(__APPLE__) && defined(__MACH__)
|
107
|
-
|
132
|
+
#if (defined(__APPLE__) && defined(__MACH__)) || \
|
133
|
+
defined(__FreeBSD__) || defined(__OpenBSD__)
|
134
|
+
#define USING_BSD_ABI
|
108
135
|
#endif
|
109
136
|
|
110
137
|
// Code-point values in Unicode 4.0 are 21 bits wide.
|
@@ -137,6 +164,9 @@ const int kPointerSizeLog2 = 2;
|
|
137
164
|
const intptr_t kIntptrSignBit = 0x80000000;
|
138
165
|
#endif
|
139
166
|
|
167
|
+
// Mask for the sign bit in a smi.
|
168
|
+
const intptr_t kSmiSignMask = kIntptrSignBit;
|
169
|
+
|
140
170
|
const int kObjectAlignmentBits = kPointerSizeLog2;
|
141
171
|
const intptr_t kObjectAlignment = 1 << kObjectAlignmentBits;
|
142
172
|
const intptr_t kObjectAlignmentMask = kObjectAlignment - 1;
|
@@ -165,6 +195,15 @@ const int kBitsPerByteLog2 = 3;
|
|
165
195
|
const int kBitsPerPointer = kPointerSize * kBitsPerByte;
|
166
196
|
const int kBitsPerInt = kIntSize * kBitsPerByte;
|
167
197
|
|
198
|
+
// IEEE 754 single precision floating point number bit layout.
|
199
|
+
const uint32_t kBinary32SignMask = 0x80000000u;
|
200
|
+
const uint32_t kBinary32ExponentMask = 0x7f800000u;
|
201
|
+
const uint32_t kBinary32MantissaMask = 0x007fffffu;
|
202
|
+
const int kBinary32ExponentBias = 127;
|
203
|
+
const int kBinary32MaxExponent = 0xFE;
|
204
|
+
const int kBinary32MinExponent = 0x01;
|
205
|
+
const int kBinary32MantissaBits = 23;
|
206
|
+
const int kBinary32ExponentShift = 23;
|
168
207
|
|
169
208
|
// Zap-value: The value used for zapping dead objects.
|
170
209
|
// Should be a recognizable hex value tagged as a heap object pointer.
|
@@ -186,6 +225,10 @@ const Address kFromSpaceZapValue = reinterpret_cast<Address>(0xbeefdad);
|
|
186
225
|
// gives 8K bytes per page.
|
187
226
|
const int kPageSizeBits = 13;
|
188
227
|
|
228
|
+
// On Intel architecture, cache line size is 64 bytes.
|
229
|
+
// On ARM it may be less (32 bytes), but as far this constant is
|
230
|
+
// used for aligning data, it doesn't hurt to align on a greater value.
|
231
|
+
const int kProcessorCacheLineSize = 64;
|
189
232
|
|
190
233
|
// Constants relevant to double precision floating point numbers.
|
191
234
|
|
@@ -204,6 +247,7 @@ class AccessorInfo;
|
|
204
247
|
class Allocation;
|
205
248
|
class Arguments;
|
206
249
|
class Assembler;
|
250
|
+
class AssertNoAllocation;
|
207
251
|
class BreakableStatement;
|
208
252
|
class Code;
|
209
253
|
class CodeGenerator;
|
@@ -256,6 +300,8 @@ template<class Allocator = FreeStoreAllocationPolicy> class ScopeInfo;
|
|
256
300
|
class Script;
|
257
301
|
class Slot;
|
258
302
|
class Smi;
|
303
|
+
template <typename Config, class Allocator = FreeStoreAllocationPolicy>
|
304
|
+
class SplayTree;
|
259
305
|
class Statement;
|
260
306
|
class String;
|
261
307
|
class Struct;
|
@@ -309,6 +355,9 @@ enum Executability { NOT_EXECUTABLE, EXECUTABLE };
|
|
309
355
|
|
310
356
|
enum VisitMode { VISIT_ALL, VISIT_ALL_IN_SCAVENGE, VISIT_ONLY_STRONG };
|
311
357
|
|
358
|
+
// Flag indicating whether code is built into the VM (one of the natives files).
|
359
|
+
enum NativesFlag { NOT_NATIVES_CODE, NATIVES_CODE };
|
360
|
+
|
312
361
|
|
313
362
|
// A CodeDesc describes a buffer holding instructions and relocation
|
314
363
|
// information. The instructions start at the beginning of the buffer
|
@@ -379,10 +428,16 @@ enum InLoopFlag {
|
|
379
428
|
};
|
380
429
|
|
381
430
|
|
431
|
+
enum CallFunctionFlags {
|
432
|
+
NO_CALL_FUNCTION_FLAGS = 0,
|
433
|
+
RECEIVER_MIGHT_BE_VALUE = 1 << 0 // Receiver might not be a JSObject.
|
434
|
+
};
|
435
|
+
|
436
|
+
|
382
437
|
// Type of properties.
|
383
438
|
// Order of properties is significant.
|
384
439
|
// Must fit in the BitField PropertyDetails::TypeField.
|
385
|
-
// A copy of this is in mirror-
|
440
|
+
// A copy of this is in mirror-debugger.js.
|
386
441
|
enum PropertyType {
|
387
442
|
NORMAL = 0, // only in slow mode
|
388
443
|
FIELD = 1, // only in fast mode
|
@@ -393,7 +448,11 @@ enum PropertyType {
|
|
393
448
|
CONSTANT_TRANSITION = 6, // only in fast mode
|
394
449
|
NULL_DESCRIPTOR = 7, // only in fast mode
|
395
450
|
// All properties before MAP_TRANSITION are real.
|
396
|
-
FIRST_PHANTOM_PROPERTY_TYPE = MAP_TRANSITION
|
451
|
+
FIRST_PHANTOM_PROPERTY_TYPE = MAP_TRANSITION,
|
452
|
+
// There are no IC stubs for NULL_DESCRIPTORS. Therefore,
|
453
|
+
// NULL_DESCRIPTOR can be used as the type flag for IC stubs for
|
454
|
+
// nonexistent properties.
|
455
|
+
NONEXISTENT = NULL_DESCRIPTOR
|
397
456
|
};
|
398
457
|
|
399
458
|
|
@@ -423,7 +482,7 @@ struct AccessorDescriptor {
|
|
423
482
|
|
424
483
|
// Logging and profiling.
|
425
484
|
// A StateTag represents a possible state of the VM. When compiled with
|
426
|
-
//
|
485
|
+
// ENABLE_VMSTATE_TRACKING, the logger maintains a stack of these.
|
427
486
|
// Creating a VMState object enters a state by pushing on the stack, and
|
428
487
|
// destroying a VMState object leaves a state by popping the current state
|
429
488
|
// from the stack.
|
@@ -556,42 +615,6 @@ F FUNCTION_CAST(Address addr) {
|
|
556
615
|
#define INLINE(header) inline header
|
557
616
|
#endif
|
558
617
|
|
559
|
-
// The type-based aliasing rule allows the compiler to assume that pointers of
|
560
|
-
// different types (for some definition of different) never alias each other.
|
561
|
-
// Thus the following code does not work:
|
562
|
-
//
|
563
|
-
// float f = foo();
|
564
|
-
// int fbits = *(int*)(&f);
|
565
|
-
//
|
566
|
-
// The compiler 'knows' that the int pointer can't refer to f since the types
|
567
|
-
// don't match, so the compiler may cache f in a register, leaving random data
|
568
|
-
// in fbits. Using C++ style casts makes no difference, however a pointer to
|
569
|
-
// char data is assumed to alias any other pointer. This is the 'memcpy
|
570
|
-
// exception'.
|
571
|
-
//
|
572
|
-
// Bit_cast uses the memcpy exception to move the bits from a variable of one
|
573
|
-
// type of a variable of another type. Of course the end result is likely to
|
574
|
-
// be implementation dependent. Most compilers (gcc-4.2 and MSVC 2005)
|
575
|
-
// will completely optimize bit_cast away.
|
576
|
-
//
|
577
|
-
// There is an additional use for bit_cast.
|
578
|
-
// Recent gccs will warn when they see casts that may result in breakage due to
|
579
|
-
// the type-based aliasing rule. If you have checked that there is no breakage
|
580
|
-
// you can use bit_cast to cast one pointer type to another. This confuses gcc
|
581
|
-
// enough that it can no longer see that you have cast one pointer type to
|
582
|
-
// another thus avoiding the warning.
|
583
|
-
template <class Dest, class Source>
|
584
|
-
inline Dest bit_cast(const Source& source) {
|
585
|
-
// Compile time assertion: sizeof(Dest) == sizeof(Source)
|
586
|
-
// A compile error here means your Dest and Source have different sizes.
|
587
|
-
typedef char VerifySizesAreEqual[sizeof(Dest) == sizeof(Source) ? 1 : -1];
|
588
|
-
|
589
|
-
Dest dest;
|
590
|
-
memcpy(&dest, &source, sizeof(dest));
|
591
|
-
return dest;
|
592
|
-
}
|
593
|
-
|
594
|
-
|
595
618
|
// Feature flags bit positions. They are mostly based on the CPUID spec.
|
596
619
|
// (We assign CPUID itself to one of the currently reserved bits --
|
597
620
|
// feel free to change this if needed.)
|
@@ -601,6 +624,7 @@ enum CpuFeature { SSE3 = 32, // x86
|
|
601
624
|
RDTSC = 4, // x86
|
602
625
|
CPUID = 10, // x86
|
603
626
|
VFP3 = 1, // ARM
|
627
|
+
ARMv7 = 2, // ARM
|
604
628
|
SAHF = 0}; // x86
|
605
629
|
|
606
630
|
} } // namespace v8::internal
|