therubyracer 0.6.3 → 0.7.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -224,9 +224,11 @@ class EXPORT Debug {
|
|
224
224
|
* be processed. Note that debug messages will only be processed if there is
|
225
225
|
* a V8 break. This can happen automatically by using the option
|
226
226
|
* --debugger-auto-break.
|
227
|
+
* \param provide_locker requires that V8 acquires v8::Locker for you before
|
228
|
+
* calling handler
|
227
229
|
*/
|
228
230
|
static void SetDebugMessageDispatchHandler(
|
229
|
-
DebugMessageDispatchHandler handler);
|
231
|
+
DebugMessageDispatchHandler handler, bool provide_locker = false);
|
230
232
|
|
231
233
|
/**
|
232
234
|
* Run a JavaScript function in the debugger.
|
@@ -235,9 +237,10 @@ class EXPORT Debug {
|
|
235
237
|
* With this call the debugger is entered and the function specified is called
|
236
238
|
* with the execution state as the first argument. This makes it possible to
|
237
239
|
* get access to information otherwise not available during normal JavaScript
|
238
|
-
* execution e.g. details on stack frames.
|
239
|
-
*
|
240
|
-
*
|
240
|
+
* execution e.g. details on stack frames. Receiver of the function call will
|
241
|
+
* be the debugger context global object, however this is a subject to change.
|
242
|
+
* The following example show a JavaScript function which when passed to
|
243
|
+
* v8::Debug::Call will return the current line of JavaScript execution.
|
241
244
|
*
|
242
245
|
* \code
|
243
246
|
* function frame_source_line(exec_state) {
|
@@ -263,6 +266,51 @@ class EXPORT Debug {
|
|
263
266
|
*/
|
264
267
|
static bool EnableAgent(const char* name, int port,
|
265
268
|
bool wait_for_connection = false);
|
269
|
+
|
270
|
+
/**
|
271
|
+
* Makes V8 process all pending debug messages.
|
272
|
+
*
|
273
|
+
* From V8 point of view all debug messages come asynchronously (e.g. from
|
274
|
+
* remote debugger) but they all must be handled synchronously: V8 cannot
|
275
|
+
* do 2 things at one time so normal script execution must be interrupted
|
276
|
+
* for a while.
|
277
|
+
*
|
278
|
+
* Generally when message arrives V8 may be in one of 3 states:
|
279
|
+
* 1. V8 is running script; V8 will automatically interrupt and process all
|
280
|
+
* pending messages (however auto_break flag should be enabled);
|
281
|
+
* 2. V8 is suspended on debug breakpoint; in this state V8 is dedicated
|
282
|
+
* to reading and processing debug messages;
|
283
|
+
* 3. V8 is not running at all or has called some long-working C++ function;
|
284
|
+
* by default it means that processing of all debug message will be deferred
|
285
|
+
* until V8 gets control again; however, embedding application may improve
|
286
|
+
* this by manually calling this method.
|
287
|
+
*
|
288
|
+
* It makes sense to call this method whenever a new debug message arrived and
|
289
|
+
* V8 is not already running. Method v8::Debug::SetDebugMessageDispatchHandler
|
290
|
+
* should help with the former condition.
|
291
|
+
*
|
292
|
+
* Technically this method in many senses is equivalent to executing empty
|
293
|
+
* script:
|
294
|
+
* 1. It does nothing except for processing all pending debug messages.
|
295
|
+
* 2. It should be invoked with the same precautions and from the same context
|
296
|
+
* as V8 script would be invoked from, because:
|
297
|
+
* a. with "evaluate" command it can do whatever normal script can do,
|
298
|
+
* including all native calls;
|
299
|
+
* b. no other thread should call V8 while this method is running
|
300
|
+
* (v8::Locker may be used here).
|
301
|
+
*
|
302
|
+
* "Evaluate" debug command behavior currently is not specified in scope
|
303
|
+
* of this method.
|
304
|
+
*/
|
305
|
+
static void ProcessDebugMessages();
|
306
|
+
|
307
|
+
/**
|
308
|
+
* Debugger is running in it's own context which is entered while debugger
|
309
|
+
* messages are being dispatched. This is an explicit getter for this
|
310
|
+
* debugger context. Note that the content of the debugger context is subject
|
311
|
+
* to change.
|
312
|
+
*/
|
313
|
+
static Local<Context> GetDebugContext();
|
266
314
|
};
|
267
315
|
|
268
316
|
|
@@ -0,0 +1,176 @@
|
|
1
|
+
// Copyright 2010 the V8 project authors. All rights reserved.
|
2
|
+
// Redistribution and use in source and binary forms, with or without
|
3
|
+
// modification, are permitted provided that the following conditions are
|
4
|
+
// met:
|
5
|
+
//
|
6
|
+
// * Redistributions of source code must retain the above copyright
|
7
|
+
// notice, this list of conditions and the following disclaimer.
|
8
|
+
// * Redistributions in binary form must reproduce the above
|
9
|
+
// copyright notice, this list of conditions and the following
|
10
|
+
// disclaimer in the documentation and/or other materials provided
|
11
|
+
// with the distribution.
|
12
|
+
// * Neither the name of Google Inc. nor the names of its
|
13
|
+
// contributors may be used to endorse or promote products derived
|
14
|
+
// from this software without specific prior written permission.
|
15
|
+
//
|
16
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
|
28
|
+
#ifndef V8_V8_PROFILER_H_
|
29
|
+
#define V8_V8_PROFILER_H_
|
30
|
+
|
31
|
+
#include "v8.h"
|
32
|
+
|
33
|
+
#ifdef _WIN32
|
34
|
+
// Setup for Windows DLL export/import. See v8.h in this directory for
|
35
|
+
// information on how to build/use V8 as a DLL.
|
36
|
+
#if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
|
37
|
+
#error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\
|
38
|
+
build configuration to ensure that at most one of these is set
|
39
|
+
#endif
|
40
|
+
|
41
|
+
#ifdef BUILDING_V8_SHARED
|
42
|
+
#define V8EXPORT __declspec(dllexport)
|
43
|
+
#elif USING_V8_SHARED
|
44
|
+
#define V8EXPORT __declspec(dllimport)
|
45
|
+
#else
|
46
|
+
#define V8EXPORT
|
47
|
+
#endif
|
48
|
+
|
49
|
+
#else // _WIN32
|
50
|
+
|
51
|
+
// Setup for Linux shared library export. See v8.h in this directory for
|
52
|
+
// information on how to build/use V8 as shared library.
|
53
|
+
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(V8_SHARED)
|
54
|
+
#define V8EXPORT __attribute__ ((visibility("default")))
|
55
|
+
#else // defined(__GNUC__) && (__GNUC__ >= 4)
|
56
|
+
#define V8EXPORT
|
57
|
+
#endif // defined(__GNUC__) && (__GNUC__ >= 4)
|
58
|
+
|
59
|
+
#endif // _WIN32
|
60
|
+
|
61
|
+
|
62
|
+
/**
|
63
|
+
* Profiler support for the V8 JavaScript engine.
|
64
|
+
*/
|
65
|
+
namespace v8 {
|
66
|
+
|
67
|
+
|
68
|
+
/**
|
69
|
+
* CpuProfileNode represents a node in a call graph.
|
70
|
+
*/
|
71
|
+
class V8EXPORT CpuProfileNode {
|
72
|
+
public:
|
73
|
+
/** Returns function name (empty string for anonymous functions.) */
|
74
|
+
Handle<String> GetFunctionName() const;
|
75
|
+
|
76
|
+
/** Returns resource name for script from where the function originates. */
|
77
|
+
Handle<String> GetScriptResourceName() const;
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Returns the number, 1-based, of the line where the function originates.
|
81
|
+
* kNoLineNumberInfo if no line number information is available.
|
82
|
+
*/
|
83
|
+
int GetLineNumber() const;
|
84
|
+
|
85
|
+
/**
|
86
|
+
* Returns total (self + children) execution time of the function,
|
87
|
+
* in milliseconds, estimated by samples count.
|
88
|
+
*/
|
89
|
+
double GetTotalTime() const;
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Returns self execution time of the function, in milliseconds,
|
93
|
+
* estimated by samples count.
|
94
|
+
*/
|
95
|
+
double GetSelfTime() const;
|
96
|
+
|
97
|
+
/** Returns the count of samples where function exists. */
|
98
|
+
double GetTotalSamplesCount() const;
|
99
|
+
|
100
|
+
/** Returns the count of samples where function was currently executing. */
|
101
|
+
double GetSelfSamplesCount() const;
|
102
|
+
|
103
|
+
/** Returns function entry UID. */
|
104
|
+
unsigned GetCallUid() const;
|
105
|
+
|
106
|
+
/** Returns child nodes count of the node. */
|
107
|
+
int GetChildrenCount() const;
|
108
|
+
|
109
|
+
/** Retrieves a child node by index. */
|
110
|
+
const CpuProfileNode* GetChild(int index) const;
|
111
|
+
|
112
|
+
static const int kNoLineNumberInfo = 0;
|
113
|
+
};
|
114
|
+
|
115
|
+
|
116
|
+
/**
|
117
|
+
* CpuProfile contains a CPU profile in a form of two call trees:
|
118
|
+
* - top-down (from main() down to functions that do all the work);
|
119
|
+
* - bottom-up call graph (in backward direction).
|
120
|
+
*/
|
121
|
+
class V8EXPORT CpuProfile {
|
122
|
+
public:
|
123
|
+
/** Returns CPU profile UID (assigned by the profiler.) */
|
124
|
+
unsigned GetUid() const;
|
125
|
+
|
126
|
+
/** Returns CPU profile title. */
|
127
|
+
Handle<String> GetTitle() const;
|
128
|
+
|
129
|
+
/** Returns the root node of the bottom up call tree. */
|
130
|
+
const CpuProfileNode* GetBottomUpRoot() const;
|
131
|
+
|
132
|
+
/** Returns the root node of the top down call tree. */
|
133
|
+
const CpuProfileNode* GetTopDownRoot() const;
|
134
|
+
};
|
135
|
+
|
136
|
+
|
137
|
+
/**
|
138
|
+
* Interface for controlling CPU profiling.
|
139
|
+
*/
|
140
|
+
class V8EXPORT CpuProfiler {
|
141
|
+
public:
|
142
|
+
/**
|
143
|
+
* Returns the number of profiles collected (doesn't include
|
144
|
+
* profiles that are being collected at the moment of call.)
|
145
|
+
*/
|
146
|
+
static int GetProfilesCount();
|
147
|
+
|
148
|
+
/** Returns a profile by index. */
|
149
|
+
static const CpuProfile* GetProfile(int index);
|
150
|
+
|
151
|
+
/** Returns a profile by uid. */
|
152
|
+
static const CpuProfile* FindProfile(unsigned uid);
|
153
|
+
|
154
|
+
/**
|
155
|
+
* Starts collecting CPU profile. Title may be an empty string. It
|
156
|
+
* is allowed to have several profiles being collected at
|
157
|
+
* once. Attempts to start collecting several profiles with the same
|
158
|
+
* title are silently ignored.
|
159
|
+
*/
|
160
|
+
static void StartProfiling(Handle<String> title);
|
161
|
+
|
162
|
+
/**
|
163
|
+
* Stops collecting CPU profile with a given title and returns it.
|
164
|
+
* If the title given is empty, finishes the last profile started.
|
165
|
+
*/
|
166
|
+
static const CpuProfile* StopProfiling(Handle<String> title);
|
167
|
+
};
|
168
|
+
|
169
|
+
|
170
|
+
} // namespace v8
|
171
|
+
|
172
|
+
|
173
|
+
#undef V8EXPORT
|
174
|
+
|
175
|
+
|
176
|
+
#endif // V8_V8_PROFILER_H_
|
@@ -261,6 +261,10 @@ template <class T> class V8EXPORT_INLINE Handle {
|
|
261
261
|
return Handle<T>(T::Cast(*that));
|
262
262
|
}
|
263
263
|
|
264
|
+
template <class S> inline Handle<S> As() {
|
265
|
+
return Handle<S>::Cast(*this);
|
266
|
+
}
|
267
|
+
|
264
268
|
private:
|
265
269
|
T* val_;
|
266
270
|
};
|
@@ -295,6 +299,10 @@ template <class T> class V8EXPORT_INLINE Local : public Handle<T> {
|
|
295
299
|
return Local<T>(T::Cast(*that));
|
296
300
|
}
|
297
301
|
|
302
|
+
template <class S> inline Local<S> As() {
|
303
|
+
return Local<S>::Cast(*this);
|
304
|
+
}
|
305
|
+
|
298
306
|
/** Create a local handle for the content of another handle.
|
299
307
|
* The referee is kept alive by the local handle even when
|
300
308
|
* the original handle is destroyed/disposed.
|
@@ -368,6 +376,10 @@ template <class T> class V8EXPORT_INLINE Persistent : public Handle<T> {
|
|
368
376
|
return Persistent<T>(T::Cast(*that));
|
369
377
|
}
|
370
378
|
|
379
|
+
template <class S> inline Persistent<S> As() {
|
380
|
+
return Persistent<S>::Cast(*this);
|
381
|
+
}
|
382
|
+
|
371
383
|
/**
|
372
384
|
* Creates a new persistent handle for an existing local or
|
373
385
|
* persistent handle.
|
@@ -534,51 +546,76 @@ class V8EXPORT ScriptOrigin {
|
|
534
546
|
class V8EXPORT Script {
|
535
547
|
public:
|
536
548
|
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
549
|
+
/**
|
550
|
+
* Compiles the specified script (context-independent).
|
551
|
+
*
|
552
|
+
* \param source Script source code.
|
553
|
+
* \param origin Script origin, owned by caller, no references are kept
|
554
|
+
* when New() returns
|
555
|
+
* \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile()
|
556
|
+
* using pre_data speeds compilation if it's done multiple times.
|
557
|
+
* Owned by caller, no references are kept when New() returns.
|
558
|
+
* \param script_data Arbitrary data associated with script. Using
|
559
|
+
* this has same effect as calling SetData(), but allows data to be
|
560
|
+
* available to compile event handlers.
|
561
|
+
* \return Compiled script object (context independent; when run it
|
562
|
+
* will use the currently entered context).
|
563
|
+
*/
|
564
|
+
static Local<Script> New(Handle<String> source,
|
565
|
+
ScriptOrigin* origin = NULL,
|
566
|
+
ScriptData* pre_data = NULL,
|
567
|
+
Handle<String> script_data = Handle<String>());
|
548
568
|
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
*
|
553
|
-
* The script object returned is context independent; when run it
|
554
|
-
* will use the currently entered context.
|
555
|
-
*/
|
556
|
-
static Local<Script> New(Handle<String> source,
|
557
|
-
Handle<Value> file_name);
|
558
|
-
|
559
|
-
/**
|
560
|
-
* Compiles the specified script. The ScriptOrigin* and ScriptData*
|
561
|
-
* parameters are owned by the caller of Script::Compile. No
|
562
|
-
* references to these objects are kept after compilation finishes.
|
569
|
+
/**
|
570
|
+
* Compiles the specified script using the specified file name
|
571
|
+
* object (typically a string) as the script's origin.
|
563
572
|
*
|
564
|
-
*
|
565
|
-
*
|
566
|
-
*
|
573
|
+
* \param source Script source code.
|
574
|
+
* \param file_name file name object (typically a string) to be used
|
575
|
+
* as the script's origin.
|
576
|
+
* \return Compiled script object (context independent; when run it
|
577
|
+
* will use the currently entered context).
|
578
|
+
*/
|
579
|
+
static Local<Script> New(Handle<String> source,
|
580
|
+
Handle<Value> file_name);
|
581
|
+
|
582
|
+
/**
|
583
|
+
* Compiles the specified script (bound to current context).
|
584
|
+
*
|
585
|
+
* \param source Script source code.
|
586
|
+
* \param origin Script origin, owned by caller, no references are kept
|
587
|
+
* when Compile() returns
|
588
|
+
* \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile()
|
589
|
+
* using pre_data speeds compilation if it's done multiple times.
|
590
|
+
* Owned by caller, no references are kept when Compile() returns.
|
591
|
+
* \param script_data Arbitrary data associated with script. Using
|
592
|
+
* this has same effect as calling SetData(), but makes data available
|
593
|
+
* earlier (i.e. to compile event handlers).
|
594
|
+
* \return Compiled script object, bound to the context that was active
|
595
|
+
* when this function was called. When run it will always use this
|
596
|
+
* context.
|
567
597
|
*/
|
568
598
|
static Local<Script> Compile(Handle<String> source,
|
569
599
|
ScriptOrigin* origin = NULL,
|
570
|
-
ScriptData* pre_data = NULL
|
600
|
+
ScriptData* pre_data = NULL,
|
601
|
+
Handle<String> script_data = Handle<String>());
|
571
602
|
|
572
603
|
/**
|
573
604
|
* Compiles the specified script using the specified file name
|
574
605
|
* object (typically a string) as the script's origin.
|
575
606
|
*
|
576
|
-
*
|
577
|
-
*
|
578
|
-
*
|
607
|
+
* \param source Script source code.
|
608
|
+
* \param file_name File name to use as script's origin
|
609
|
+
* \param script_data Arbitrary data associated with script. Using
|
610
|
+
* this has same effect as calling SetData(), but makes data available
|
611
|
+
* earlier (i.e. to compile event handlers).
|
612
|
+
* \return Compiled script object, bound to the context that was active
|
613
|
+
* when this function was called. When run it will always use this
|
614
|
+
* context.
|
579
615
|
*/
|
580
616
|
static Local<Script> Compile(Handle<String> source,
|
581
|
-
Handle<Value> file_name
|
617
|
+
Handle<Value> file_name,
|
618
|
+
Handle<String> script_data = Handle<String>());
|
582
619
|
|
583
620
|
/**
|
584
621
|
* Runs the script returning the resulting value. If the script is
|
@@ -729,6 +766,11 @@ class V8EXPORT Value : public Data {
|
|
729
766
|
*/
|
730
767
|
bool IsInt32() const;
|
731
768
|
|
769
|
+
/**
|
770
|
+
* Returns true if this value is a 32-bit unsigned integer.
|
771
|
+
*/
|
772
|
+
bool IsUint32() const;
|
773
|
+
|
732
774
|
/**
|
733
775
|
* Returns true if this value is a Date.
|
734
776
|
*/
|
@@ -813,12 +855,29 @@ class V8EXPORT String : public Primitive {
|
|
813
855
|
* \param start The starting position within the string at which
|
814
856
|
* copying begins.
|
815
857
|
* \param length The number of bytes to copy from the string.
|
816
|
-
* \
|
858
|
+
* \param nchars_ref The number of characters written, can be NULL.
|
859
|
+
* \param hints Various hints that might affect performance of this or
|
860
|
+
* subsequent operations.
|
861
|
+
* \return The number of bytes copied to the buffer
|
817
862
|
* excluding the NULL terminator.
|
818
863
|
*/
|
819
|
-
|
820
|
-
|
821
|
-
|
864
|
+
enum WriteHints {
|
865
|
+
NO_HINTS = 0,
|
866
|
+
HINT_MANY_WRITES_EXPECTED = 1
|
867
|
+
};
|
868
|
+
|
869
|
+
int Write(uint16_t* buffer,
|
870
|
+
int start = 0,
|
871
|
+
int length = -1,
|
872
|
+
WriteHints hints = NO_HINTS) const; // UTF-16
|
873
|
+
int WriteAscii(char* buffer,
|
874
|
+
int start = 0,
|
875
|
+
int length = -1,
|
876
|
+
WriteHints hints = NO_HINTS) const; // ASCII
|
877
|
+
int WriteUtf8(char* buffer,
|
878
|
+
int length = -1,
|
879
|
+
int* nchars_ref = NULL,
|
880
|
+
WriteHints hints = NO_HINTS) const; // UTF-8
|
822
881
|
|
823
882
|
/**
|
824
883
|
* A zero length string.
|
@@ -1153,6 +1212,9 @@ class V8EXPORT Object : public Value {
|
|
1153
1212
|
Handle<Value> value,
|
1154
1213
|
PropertyAttribute attribs = None);
|
1155
1214
|
|
1215
|
+
bool Set(uint32_t index,
|
1216
|
+
Handle<Value> value);
|
1217
|
+
|
1156
1218
|
// Sets a local property on this object bypassing interceptors and
|
1157
1219
|
// overriding accessors or read-only properties.
|
1158
1220
|
//
|
@@ -1167,6 +1229,8 @@ class V8EXPORT Object : public Value {
|
|
1167
1229
|
|
1168
1230
|
Local<Value> Get(Handle<Value> key);
|
1169
1231
|
|
1232
|
+
Local<Value> Get(uint32_t index);
|
1233
|
+
|
1170
1234
|
// TODO(1245389): Replace the type-specific versions of these
|
1171
1235
|
// functions with generic ones that accept a Handle<Value> key.
|
1172
1236
|
bool Has(Handle<String> key);
|
@@ -1196,6 +1260,13 @@ class V8EXPORT Object : public Value {
|
|
1196
1260
|
*/
|
1197
1261
|
Local<Value> GetPrototype();
|
1198
1262
|
|
1263
|
+
/**
|
1264
|
+
* Set the prototype object. This does not skip objects marked to
|
1265
|
+
* be skipped by __proto__ and it does not consult the security
|
1266
|
+
* handler.
|
1267
|
+
*/
|
1268
|
+
bool SetPrototype(Handle<Value> prototype);
|
1269
|
+
|
1199
1270
|
/**
|
1200
1271
|
* Finds an instance of the given function template in the prototype
|
1201
1272
|
* chain.
|
@@ -1354,7 +1425,15 @@ class V8EXPORT Function : public Object {
|
|
1354
1425
|
Local<Value> Call(Handle<Object> recv, int argc, Handle<Value> argv[]);
|
1355
1426
|
void SetName(Handle<String> name);
|
1356
1427
|
Handle<Value> GetName() const;
|
1428
|
+
|
1429
|
+
/**
|
1430
|
+
* Returns zero based line number of function body and
|
1431
|
+
* kLineOffsetNotFound if no information available.
|
1432
|
+
*/
|
1433
|
+
int GetScriptLineNumber() const;
|
1434
|
+
ScriptOrigin GetScriptOrigin() const;
|
1357
1435
|
static inline Function* Cast(Value* obj);
|
1436
|
+
static const int kLineOffsetNotFound;
|
1358
1437
|
private:
|
1359
1438
|
Function();
|
1360
1439
|
static void CheckCast(Value* obj);
|
@@ -2096,12 +2175,26 @@ typedef void (*FailedAccessCheckCallback)(Local<Object> target,
|
|
2096
2175
|
// --- G a r b a g e C o l l e c t i o n C a l l b a c k s
|
2097
2176
|
|
2098
2177
|
/**
|
2099
|
-
* Applications can register
|
2100
|
-
* before and after a
|
2101
|
-
* allowed in the callback
|
2178
|
+
* Applications can register callback functions which will be called
|
2179
|
+
* before and after a garbage collection. Allocations are not
|
2180
|
+
* allowed in the callback functions, you therefore cannot manipulate
|
2102
2181
|
* objects (set or delete properties for example) since it is possible
|
2103
2182
|
* such operations will result in the allocation of objects.
|
2104
2183
|
*/
|
2184
|
+
enum GCType {
|
2185
|
+
kGCTypeScavenge = 1 << 0,
|
2186
|
+
kGCTypeMarkSweepCompact = 1 << 1,
|
2187
|
+
kGCTypeAll = kGCTypeScavenge | kGCTypeMarkSweepCompact
|
2188
|
+
};
|
2189
|
+
|
2190
|
+
enum GCCallbackFlags {
|
2191
|
+
kNoGCCallbackFlags = 0,
|
2192
|
+
kGCCallbackFlagCompacted = 1 << 0
|
2193
|
+
};
|
2194
|
+
|
2195
|
+
typedef void (*GCPrologueCallback)(GCType type, GCCallbackFlags flags);
|
2196
|
+
typedef void (*GCEpilogueCallback)(GCType type, GCCallbackFlags flags);
|
2197
|
+
|
2105
2198
|
typedef void (*GCCallback)();
|
2106
2199
|
|
2107
2200
|
|
@@ -2237,7 +2330,27 @@ class V8EXPORT V8 {
|
|
2237
2330
|
|
2238
2331
|
/**
|
2239
2332
|
* Enables the host application to receive a notification before a
|
2240
|
-
*
|
2333
|
+
* garbage collection. Allocations are not allowed in the
|
2334
|
+
* callback function, you therefore cannot manipulate objects (set
|
2335
|
+
* or delete properties for example) since it is possible such
|
2336
|
+
* operations will result in the allocation of objects. It is possible
|
2337
|
+
* to specify the GCType filter for your callback. But it is not possible to
|
2338
|
+
* register the same callback function two times with different
|
2339
|
+
* GCType filters.
|
2340
|
+
*/
|
2341
|
+
static void AddGCPrologueCallback(
|
2342
|
+
GCPrologueCallback callback, GCType gc_type_filter = kGCTypeAll);
|
2343
|
+
|
2344
|
+
/**
|
2345
|
+
* This function removes callback which was installed by
|
2346
|
+
* AddGCPrologueCallback function.
|
2347
|
+
*/
|
2348
|
+
static void RemoveGCPrologueCallback(GCPrologueCallback callback);
|
2349
|
+
|
2350
|
+
/**
|
2351
|
+
* The function is deprecated. Please use AddGCPrologueCallback instead.
|
2352
|
+
* Enables the host application to receive a notification before a
|
2353
|
+
* garbage collection. Allocations are not allowed in the
|
2241
2354
|
* callback function, you therefore cannot manipulate objects (set
|
2242
2355
|
* or delete properties for example) since it is possible such
|
2243
2356
|
* operations will result in the allocation of objects.
|
@@ -2245,6 +2358,26 @@ class V8EXPORT V8 {
|
|
2245
2358
|
static void SetGlobalGCPrologueCallback(GCCallback);
|
2246
2359
|
|
2247
2360
|
/**
|
2361
|
+
* Enables the host application to receive a notification after a
|
2362
|
+
* garbage collection. Allocations are not allowed in the
|
2363
|
+
* callback function, you therefore cannot manipulate objects (set
|
2364
|
+
* or delete properties for example) since it is possible such
|
2365
|
+
* operations will result in the allocation of objects. It is possible
|
2366
|
+
* to specify the GCType filter for your callback. But it is not possible to
|
2367
|
+
* register the same callback function two times with different
|
2368
|
+
* GCType filters.
|
2369
|
+
*/
|
2370
|
+
static void AddGCEpilogueCallback(
|
2371
|
+
GCEpilogueCallback callback, GCType gc_type_filter = kGCTypeAll);
|
2372
|
+
|
2373
|
+
/**
|
2374
|
+
* This function removes callback which was installed by
|
2375
|
+
* AddGCEpilogueCallback function.
|
2376
|
+
*/
|
2377
|
+
static void RemoveGCEpilogueCallback(GCEpilogueCallback callback);
|
2378
|
+
|
2379
|
+
/**
|
2380
|
+
* The function is deprecated. Please use AddGCEpilogueCallback instead.
|
2248
2381
|
* Enables the host application to receive a notification after a
|
2249
2382
|
* major garbage collection. Allocations are not allowed in the
|
2250
2383
|
* callback function, you therefore cannot manipulate objects (set
|
@@ -2309,22 +2442,30 @@ class V8EXPORT V8 {
|
|
2309
2442
|
static bool IsProfilerPaused();
|
2310
2443
|
|
2311
2444
|
/**
|
2312
|
-
* Resumes specified profiler modules.
|
2445
|
+
* Resumes specified profiler modules. Can be called several times to
|
2446
|
+
* mark the opening of a profiler events block with the given tag.
|
2447
|
+
*
|
2313
2448
|
* "ResumeProfiler" is equivalent to "ResumeProfilerEx(PROFILER_MODULE_CPU)".
|
2314
2449
|
* See ProfilerModules enum.
|
2315
2450
|
*
|
2316
2451
|
* \param flags Flags specifying profiler modules.
|
2452
|
+
* \param tag Profile tag.
|
2317
2453
|
*/
|
2318
|
-
static void ResumeProfilerEx(int flags);
|
2454
|
+
static void ResumeProfilerEx(int flags, int tag = 0);
|
2319
2455
|
|
2320
2456
|
/**
|
2321
|
-
* Pauses specified profiler modules.
|
2457
|
+
* Pauses specified profiler modules. Each call to "PauseProfilerEx" closes
|
2458
|
+
* a block of profiler events opened by a call to "ResumeProfilerEx" with the
|
2459
|
+
* same tag value. There is no need for blocks to be properly nested.
|
2460
|
+
* The profiler is paused when the last opened block is closed.
|
2461
|
+
*
|
2322
2462
|
* "PauseProfiler" is equivalent to "PauseProfilerEx(PROFILER_MODULE_CPU)".
|
2323
2463
|
* See ProfilerModules enum.
|
2324
2464
|
*
|
2325
2465
|
* \param flags Flags specifying profiler modules.
|
2466
|
+
* \param tag Profile tag.
|
2326
2467
|
*/
|
2327
|
-
static void PauseProfilerEx(int flags);
|
2468
|
+
static void PauseProfilerEx(int flags, int tag = 0);
|
2328
2469
|
|
2329
2470
|
/**
|
2330
2471
|
* Returns active (resumed) profiler modules.
|
@@ -2351,6 +2492,14 @@ class V8EXPORT V8 {
|
|
2351
2492
|
*/
|
2352
2493
|
static int GetLogLines(int from_pos, char* dest_buf, int max_size);
|
2353
2494
|
|
2495
|
+
/**
|
2496
|
+
* The minimum allowed size for a log lines buffer. If the size of
|
2497
|
+
* the buffer given will not be enough to hold a line of the maximum
|
2498
|
+
* length, an attempt to find a log line end in GetLogLines will
|
2499
|
+
* fail, and an empty result will be returned.
|
2500
|
+
*/
|
2501
|
+
static const int kMinimumSizeForLogLinesBuffer = 2048;
|
2502
|
+
|
2354
2503
|
/**
|
2355
2504
|
* Retrieve the V8 thread id of the calling thread.
|
2356
2505
|
*
|
@@ -2393,6 +2542,16 @@ class V8EXPORT V8 {
|
|
2393
2542
|
*/
|
2394
2543
|
static void TerminateExecution();
|
2395
2544
|
|
2545
|
+
/**
|
2546
|
+
* Is V8 terminating JavaScript execution.
|
2547
|
+
*
|
2548
|
+
* Returns true if JavaScript execution is currently terminating
|
2549
|
+
* because of a call to TerminateExecution. In that case there are
|
2550
|
+
* still JavaScript frames on the stack and the termination
|
2551
|
+
* exception is still active.
|
2552
|
+
*/
|
2553
|
+
static bool IsExecutionTerminating();
|
2554
|
+
|
2396
2555
|
/**
|
2397
2556
|
* Releases any resources used by v8 and stops any utility threads
|
2398
2557
|
* that may be running. Note that disposing v8 is permanent, it
|
@@ -2425,6 +2584,14 @@ class V8EXPORT V8 {
|
|
2425
2584
|
*/
|
2426
2585
|
static void LowMemoryNotification();
|
2427
2586
|
|
2587
|
+
/**
|
2588
|
+
* Optional notification that a context has been disposed. V8 uses
|
2589
|
+
* these notifications to guide the GC heuristic. Returns the number
|
2590
|
+
* of context disposals - including this one - since the last time
|
2591
|
+
* V8 had a chance to clean up.
|
2592
|
+
*/
|
2593
|
+
static int ContextDisposedNotification();
|
2594
|
+
|
2428
2595
|
private:
|
2429
2596
|
V8();
|
2430
2597
|
|
@@ -2585,9 +2752,21 @@ class V8EXPORT Context {
|
|
2585
2752
|
*/
|
2586
2753
|
void DetachGlobal();
|
2587
2754
|
|
2755
|
+
/**
|
2756
|
+
* Reattaches a global object to a context. This can be used to
|
2757
|
+
* restore the connection between a global object and a context
|
2758
|
+
* after DetachGlobal has been called.
|
2759
|
+
*
|
2760
|
+
* \param global_object The global object to reattach to the
|
2761
|
+
* context. For this to work, the global object must be the global
|
2762
|
+
* object that was associated with this context before a call to
|
2763
|
+
* DetachGlobal.
|
2764
|
+
*/
|
2765
|
+
void ReattachGlobal(Handle<Object> global_object);
|
2766
|
+
|
2588
2767
|
/** Creates a new context. */
|
2589
2768
|
static Persistent<Context> New(
|
2590
|
-
ExtensionConfiguration* extensions =
|
2769
|
+
ExtensionConfiguration* extensions = NULL,
|
2591
2770
|
Handle<ObjectTemplate> global_template = Handle<ObjectTemplate>(),
|
2592
2771
|
Handle<Value> global_object = Handle<Value>());
|
2593
2772
|
|
@@ -2835,7 +3014,7 @@ template <> struct InternalConstants<4> {
|
|
2835
3014
|
|
2836
3015
|
// Internal constants for 64-bit systems.
|
2837
3016
|
template <> struct InternalConstants<8> {
|
2838
|
-
static const int kStringResourceOffset =
|
3017
|
+
static const int kStringResourceOffset = 3 * sizeof(void*);
|
2839
3018
|
};
|
2840
3019
|
|
2841
3020
|
/**
|
@@ -3199,7 +3378,7 @@ External* External::Cast(v8::Value* value) {
|
|
3199
3378
|
|
3200
3379
|
|
3201
3380
|
Local<Value> AccessorInfo::Data() const {
|
3202
|
-
return Local<Value>(reinterpret_cast<Value*>(&args_[-
|
3381
|
+
return Local<Value>(reinterpret_cast<Value*>(&args_[-2]));
|
3203
3382
|
}
|
3204
3383
|
|
3205
3384
|
|