therubyracer 0.7.4 → 0.7.5
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/History.txt +11 -0
- data/Rakefile +1 -1
- data/ext/v8/extconf.rb +0 -18
- data/ext/v8/rr.cpp +2 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/AUTHORS +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/ChangeLog +239 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/LICENSE +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/SConstruct +29 -17
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8-debug.h +61 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8-profiler.h +182 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/include/v8.h +458 -257
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/SConscript +2 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/accessors.cc +2 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/accessors.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/allocation.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/allocation.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/api.cc +574 -30
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/api.h +12 -10
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/apinatives.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/apiutils.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arguments.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm-inl.h +38 -15
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm.cc +646 -101
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/assembler-arm.h +174 -15
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/builtins-arm.cc +56 -47
- data/ext/v8/upstream/2.3.3/src/arm/codegen-arm-inl.h +48 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/codegen-arm.cc +2957 -1448
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/codegen-arm.h +230 -74
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/constants-arm.cc +25 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/constants-arm.h +16 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/cpu-arm.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/debug-arm.cc +76 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/disasm-arm.cc +168 -20
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/fast-codegen-arm.cc +5 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/frames-arm.cc +4 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/frames-arm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/full-codegen-arm.cc +1558 -248
- data/ext/v8/upstream/2.3.3/src/arm/ic-arm.cc +2258 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/jump-target-arm.cc +55 -103
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/macro-assembler-arm.cc +358 -185
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/macro-assembler-arm.h +136 -41
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/regexp-macro-assembler-arm.cc +26 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/regexp-macro-assembler-arm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/register-allocator-arm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/simulator-arm.cc +203 -22
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/simulator-arm.h +7 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/stub-cache-arm.cc +531 -324
- data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm-inl.h +59 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/virtual-frame-arm.cc +247 -81
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/arm/virtual-frame-arm.h +99 -83
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/array.js +2 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/assembler.cc +6 -13
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/assembler.h +36 -10
- data/ext/v8/upstream/2.3.3/src/ast-inl.h +81 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ast.cc +14 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ast.h +20 -35
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bootstrapper.cc +32 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bootstrapper.h +0 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/builtins.cc +50 -33
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/builtins.h +2 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/bytecodes-irregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cached-powers.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/char-predicates-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/char-predicates.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/checks.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/checks.h +8 -6
- data/ext/v8/upstream/2.3.3/src/circular-queue-inl.h +53 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/circular-queue.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/circular-queue.h +0 -26
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code-stubs.cc +2 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code-stubs.h +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/code.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen.cc +44 -13
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/codegen.h +310 -31
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compilation-cache.cc +28 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compilation-cache.h +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compiler.cc +45 -14
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/compiler.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/contexts.cc +11 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/contexts.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions.cc +25 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/conversions.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/counters.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/counters.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler-inl.h +2 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler.cc +68 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu-profiler.h +19 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/cpu.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-debug.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-debug.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-posix.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-readline.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8-windows.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/d8.js +55 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/data-flow.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/data-flow.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/date.js +68 -137
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser.cc +2 -8
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dateparser.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-agent.cc +3 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-agent.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug-debugger.js +81 -23
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug.cc +275 -81
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/debug.h +85 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disasm.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disassembler.cc +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/disassembler.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/diy-fp.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/diy-fp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/double.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/dtoa-config.c +0 -0
- data/ext/v8/upstream/2.3.3/src/dtoa.cc +77 -0
- data/ext/v8/upstream/2.3.3/src/dtoa.h +81 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/execution.cc +111 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/execution.h +12 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/factory.cc +25 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/factory.h +16 -9
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-codegen.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-codegen.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-dtoa.cc +2 -9
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/fast-dtoa.h +1 -2
- data/ext/v8/upstream/2.3.3/src/fixed-dtoa.cc +405 -0
- data/ext/v8/upstream/{2.1.10/src/jump-target-light.cc → 2.3.3/src/fixed-dtoa.h} +22 -53
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flag-definitions.h +14 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flags.cc +5 -9
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flags.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flow-graph.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/flow-graph.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frame-element.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frame-element.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames.cc +5 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/frames.h +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/full-codegen.cc +387 -20
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/full-codegen.h +102 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/func-name-inferrer.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/func-name-inferrer.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/global-handles.cc +8 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/global-handles.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/globals.h +44 -7
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles.cc +19 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/handles.h +8 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/hashmap.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/hashmap.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-inl.h +56 -14
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-profiler.cc +85 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap-profiler.h +45 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap.cc +994 -396
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/heap.h +220 -65
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32-inl.h +41 -12
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32.cc +94 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/assembler-ia32.h +32 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/builtins-ia32.cc +42 -30
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32.cc +1758 -916
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/codegen-ia32.h +67 -74
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/cpu-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/debug-ia32.cc +46 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/disasm-ia32.cc +37 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/fast-codegen-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/fast-codegen-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/frames-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/frames-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/full-codegen-ia32.cc +1465 -198
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/ic-ia32.cc +688 -367
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/jump-target-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/macro-assembler-ia32.cc +82 -180
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/macro-assembler-ia32.h +41 -25
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/regexp-macro-assembler-ia32.cc +68 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/regexp-macro-assembler-ia32.h +1 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/register-allocator-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/simulator-ia32.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/simulator-ia32.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/stub-cache-ia32.cc +649 -302
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/virtual-frame-ia32.cc +23 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ia32/virtual-frame-ia32.h +18 -27
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic-inl.h +30 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic.cc +384 -66
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/ic.h +65 -24
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/interpreter-irregexp.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/interpreter-irregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/json.js +3 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jsregexp.cc +20 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jsregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-heavy-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-heavy.cc +79 -13
- data/ext/v8/upstream/{2.1.10/src/jump-target.h → 2.3.3/src/jump-target-heavy.h} +5 -47
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target-light-inl.h +16 -2
- data/ext/v8/upstream/2.3.3/src/jump-target-light.cc +110 -0
- data/ext/v8/upstream/2.3.3/src/jump-target-light.h +192 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/jump-target.cc +0 -64
- data/ext/v8/upstream/2.3.3/src/jump-target.h +90 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/list-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/list.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit-debugger.js +141 -28
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit.cc +19 -7
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/liveedit.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-utils.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log-utils.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log.cc +12 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/log.h +12 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/macro-assembler.h +0 -16
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/macros.py +21 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mark-compact.cc +120 -109
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mark-compact.h +25 -37
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/math.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/memory.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.cc +8 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.h +2 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/messages.js +15 -7
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips.cc +12 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/assembler-mips.h +4 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/builtins-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips.cc +9 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/codegen-mips.h +1 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/constants-mips.cc +5 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/constants-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/cpu-mips.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/debug-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/disasm-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/fast-codegen-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/frames-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/frames-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/full-codegen-mips.cc +5 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/ic-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/jump-target-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/macro-assembler-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/macro-assembler-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/register-allocator-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/simulator-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/simulator-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/stub-cache-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/virtual-frame-mips.cc +3 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mips/virtual-frame-mips.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mirror-debugger.js +46 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/mksnapshot.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/natives.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects-debug.cc +8 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects-inl.h +235 -62
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects.cc +497 -231
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/objects.h +355 -149
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/oprofile-agent.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/oprofile-agent.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/parser.cc +31 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/parser.h +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-freebsd.cc +9 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-linux.cc +26 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-macos.cc +11 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-nullos.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-openbsd.cc +6 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-posix.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-solaris.cc +69 -23
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform-win32.cc +15 -11
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/platform.h +10 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/powers-ten.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/prettyprinter.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/prettyprinter.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/profile-generator-inl.h +26 -2
- data/ext/v8/upstream/2.3.3/src/profile-generator.cc +1830 -0
- data/ext/v8/upstream/2.3.3/src/profile-generator.h +853 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/property.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/property.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-irregexp.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-tracer.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler-tracer.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler.cc +1 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-macro-assembler.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-stack.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp-stack.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/regexp.js +25 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator.cc +4 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/register-allocator.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/rewriter.cc +85 -8
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/rewriter.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.cc +547 -221
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.h +5 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/runtime.js +23 -31
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scanner.cc +12 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scanner.h +60 -53
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopeinfo.cc +156 -168
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopeinfo.h +58 -62
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopes.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/scopes.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/serialize.cc +320 -242
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/serialize.h +81 -48
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/shell.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/simulator.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/smart-pointer.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot-common.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot-empty.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/snapshot.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces-inl.h +177 -74
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces.cc +138 -315
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/spaces.h +155 -124
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/splay-tree-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/splay-tree.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string-stream.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string-stream.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/string.js +113 -119
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/stub-cache.cc +242 -97
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/stub-cache.h +118 -55
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/dtoa/COPYING +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/dtoa/dtoa.c +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/third_party/valgrind/valgrind.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/token.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/token.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/top.cc +107 -26
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/top.h +9 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/type-info.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/type-info.h +2 -2
- data/ext/v8/upstream/2.3.3/src/unbound-queue-inl.h +95 -0
- data/ext/v8/upstream/2.3.3/src/unbound-queue.h +67 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/unicode.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/uri.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/utils.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/utils.h +83 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8-counters.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8-counters.h +20 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8.cc +5 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8.h +0 -0
- data/ext/v8/upstream/2.3.3/src/v8dll-main.cc +39 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8natives.js +210 -33
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8threads.cc +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/v8threads.h +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/variables.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/variables.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/version.cc +3 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/version.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-heavy-inl.h +40 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-heavy.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-light-inl.h +106 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame-light.cc +4 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/virtual-frame.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state-inl.h +6 -3
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state.cc +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/vm-state.h +6 -4
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64-inl.h +42 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64.cc +285 -53
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/assembler-x64.h +54 -18
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/builtins-x64.cc +31 -33
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64.cc +9787 -8722
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/codegen-x64.h +82 -47
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/cpu-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/debug-x64.cc +55 -6
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/disasm-x64.cc +42 -19
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/fast-codegen-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/frames-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/frames-x64.h +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/full-codegen-x64.cc +1487 -210
- data/ext/v8/upstream/2.3.3/src/x64/ic-x64.cc +1907 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/jump-target-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/macro-assembler-x64.cc +366 -338
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/macro-assembler-x64.h +83 -38
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/regexp-macro-assembler-x64.cc +82 -23
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/regexp-macro-assembler-x64.h +1 -2
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64-inl.h +6 -5
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64.cc +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/register-allocator-x64.h +1 -1
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/simulator-x64.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/simulator-x64.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/stub-cache-x64.cc +556 -377
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/virtual-frame-x64.cc +197 -98
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/x64/virtual-frame-x64.h +37 -28
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone-inl.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone.cc +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/src/zone.h +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/codemap.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/consarray.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/csvparser.js +0 -0
- data/ext/v8/upstream/2.3.3/tools/gc-nvp-trace-processor.py +317 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/generate-ten-powers.scm +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/gyp/v8.gyp +87 -20
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/js2c.py +19 -15
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/jsmin.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/linux-tick-processor +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/linux-tick-processor.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/logreader.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/mac-nm +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/mac-tick-processor +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/annotate +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/common +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/dump +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/report +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/reset +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/run +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/shutdown +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/oprofile/start +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/presubmit.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/process-heap-prof.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/profile.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/profile_view.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/run-valgrind.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/splaytree.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/splaytree.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/stats-viewer.py +25 -13
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/test.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor-driver.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor.js +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/tickprocessor.py +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/utils.py +0 -0
- data/ext/v8/upstream/2.3.3/tools/v8.xcodeproj/project.pbxproj +1855 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/README.txt +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/arm.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/common.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/d8js2c.cmd +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/debug.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/ia32.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/js2c.cmd +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/release.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8.sln +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_arm.sln +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base.vcproj +40 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base_arm.vcproj +20 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_base_x64.vcproj +16 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest.vcproj +4 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_cctest_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_mksnapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_process_sample_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_x64.sln +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/v8_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/visual_studio/x64.vsprops +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/windows-tick-processor.bat +0 -0
- data/ext/v8/upstream/{2.1.10 → 2.3.3}/tools/windows-tick-processor.py +0 -0
- data/ext/v8/upstream/Makefile +1 -1
- data/ext/v8/v8_template.cpp +94 -2
- data/ext/v8/v8_try_catch.cpp +2 -2
- data/lib/v8.rb +1 -1
- data/lib/v8/access.rb +93 -40
- data/lib/v8/cli.rb +1 -1
- data/lib/v8/function.rb +14 -2
- data/spec/redjs/jsapi_spec.rb +231 -42
- data/therubyracer.gemspec +3 -3
- metadata +463 -453
- data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2-inl.h +0 -263
- data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2.cc +0 -1878
- data/ext/v8/upstream/2.1.10/src/arm/assembler-thumb2.h +0 -1036
- data/ext/v8/upstream/2.1.10/src/arm/codegen-arm-inl.h +0 -72
- data/ext/v8/upstream/2.1.10/src/arm/ic-arm.cc +0 -1833
- data/ext/v8/upstream/2.1.10/src/circular-queue-inl.h +0 -101
- data/ext/v8/upstream/2.1.10/src/profile-generator.cc +0 -583
- data/ext/v8/upstream/2.1.10/src/profile-generator.h +0 -364
- data/ext/v8/upstream/2.1.10/src/x64/ic-x64.cc +0 -1621
@@ -29,11 +29,14 @@
|
|
29
29
|
#define V8_ARM_VIRTUAL_FRAME_ARM_H_
|
30
30
|
|
31
31
|
#include "register-allocator.h"
|
32
|
-
#include "scopes.h"
|
33
32
|
|
34
33
|
namespace v8 {
|
35
34
|
namespace internal {
|
36
35
|
|
36
|
+
// This dummy class is only used to create invalid virtual frames.
|
37
|
+
extern class InvalidVirtualFrameInitializer {}* kInvalidVirtualFrameInitializer;
|
38
|
+
|
39
|
+
|
37
40
|
// -------------------------------------------------------------------------
|
38
41
|
// Virtual frames
|
39
42
|
//
|
@@ -82,26 +85,8 @@ class VirtualFrame : public ZoneObject {
|
|
82
85
|
// is not spilled, ie. where register allocation occurs. Eventually
|
83
86
|
// when RegisterAllocationScope is ubiquitous it can be removed
|
84
87
|
// along with the (by then unused) SpilledScope class.
|
85
|
-
explicit RegisterAllocationScope(CodeGenerator* cgen)
|
86
|
-
|
87
|
-
old_is_spilled_(SpilledScope::is_spilled_) {
|
88
|
-
SpilledScope::is_spilled_ = false;
|
89
|
-
if (old_is_spilled_) {
|
90
|
-
VirtualFrame* frame = cgen->frame();
|
91
|
-
if (frame != NULL) {
|
92
|
-
frame->AssertIsSpilled();
|
93
|
-
}
|
94
|
-
}
|
95
|
-
}
|
96
|
-
~RegisterAllocationScope() {
|
97
|
-
SpilledScope::is_spilled_ = old_is_spilled_;
|
98
|
-
if (old_is_spilled_) {
|
99
|
-
VirtualFrame* frame = cgen_->frame();
|
100
|
-
if (frame != NULL) {
|
101
|
-
frame->SpillAll();
|
102
|
-
}
|
103
|
-
}
|
104
|
-
}
|
88
|
+
inline explicit RegisterAllocationScope(CodeGenerator* cgen);
|
89
|
+
inline ~RegisterAllocationScope();
|
105
90
|
|
106
91
|
private:
|
107
92
|
CodeGenerator* cgen_;
|
@@ -116,19 +101,20 @@ class VirtualFrame : public ZoneObject {
|
|
116
101
|
// Construct an initial virtual frame on entry to a JS function.
|
117
102
|
inline VirtualFrame();
|
118
103
|
|
104
|
+
// Construct an invalid virtual frame, used by JumpTargets.
|
105
|
+
inline VirtualFrame(InvalidVirtualFrameInitializer* dummy);
|
106
|
+
|
119
107
|
// Construct a virtual frame as a clone of an existing one.
|
120
108
|
explicit inline VirtualFrame(VirtualFrame* original);
|
121
109
|
|
122
|
-
CodeGenerator* cgen()
|
123
|
-
MacroAssembler* masm()
|
110
|
+
inline CodeGenerator* cgen() const;
|
111
|
+
inline MacroAssembler* masm();
|
124
112
|
|
125
113
|
// The number of elements on the virtual frame.
|
126
|
-
int element_count() { return element_count_; }
|
114
|
+
int element_count() const { return element_count_; }
|
127
115
|
|
128
116
|
// The height of the virtual expression stack.
|
129
|
-
int height()
|
130
|
-
return element_count() - expression_base_index();
|
131
|
-
}
|
117
|
+
inline int height() const;
|
132
118
|
|
133
119
|
bool is_used(int num) {
|
134
120
|
switch (num) {
|
@@ -160,10 +146,6 @@ class VirtualFrame : public ZoneObject {
|
|
160
146
|
}
|
161
147
|
}
|
162
148
|
|
163
|
-
bool is_used(Register reg) {
|
164
|
-
return is_used(RegisterAllocator::ToNumber(reg));
|
165
|
-
}
|
166
|
-
|
167
149
|
// Add extra in-memory elements to the top of the frame to match an actual
|
168
150
|
// frame (eg, the frame after an exception handler is pushed). No code is
|
169
151
|
// emitted.
|
@@ -172,15 +154,12 @@ class VirtualFrame : public ZoneObject {
|
|
172
154
|
// Forget elements from the top of the frame to match an actual frame (eg,
|
173
155
|
// the frame after a runtime call). No code is emitted except to bring the
|
174
156
|
// frame to a spilled state.
|
175
|
-
void Forget(int count)
|
176
|
-
SpillAll();
|
177
|
-
element_count_ -= count;
|
178
|
-
}
|
157
|
+
void Forget(int count);
|
179
158
|
|
180
159
|
// Spill all values from the frame to memory.
|
181
160
|
void SpillAll();
|
182
161
|
|
183
|
-
void AssertIsSpilled() {
|
162
|
+
void AssertIsSpilled() const {
|
184
163
|
ASSERT(top_of_stack_state_ == NO_TOS_REGISTERS);
|
185
164
|
ASSERT(register_allocation_map_ == 0);
|
186
165
|
}
|
@@ -202,14 +181,23 @@ class VirtualFrame : public ZoneObject {
|
|
202
181
|
// Make this virtual frame have a state identical to an expected virtual
|
203
182
|
// frame. As a side effect, code may be emitted to make this frame match
|
204
183
|
// the expected one.
|
205
|
-
void MergeTo(VirtualFrame* expected);
|
184
|
+
void MergeTo(VirtualFrame* expected, Condition cond = al);
|
185
|
+
void MergeTo(const VirtualFrame* expected, Condition cond = al);
|
186
|
+
|
187
|
+
// Checks whether this frame can be branched to by the other frame.
|
188
|
+
bool IsCompatibleWith(const VirtualFrame* other) const {
|
189
|
+
return (tos_known_smi_map_ & (~other->tos_known_smi_map_)) == 0;
|
190
|
+
}
|
191
|
+
|
192
|
+
inline void ForgetTypeInfo() {
|
193
|
+
tos_known_smi_map_ = 0;
|
194
|
+
}
|
206
195
|
|
207
196
|
// Detach a frame from its code generator, perhaps temporarily. This
|
208
197
|
// tells the register allocator that it is free to use frame-internal
|
209
198
|
// registers. Used when the code generator's frame is switched from this
|
210
199
|
// one to NULL by an unconditional jump.
|
211
200
|
void DetachFromCodeGenerator() {
|
212
|
-
AssertIsSpilled();
|
213
201
|
}
|
214
202
|
|
215
203
|
// (Re)attach a frame to its code generator. This informs the register
|
@@ -217,7 +205,6 @@ class VirtualFrame : public ZoneObject {
|
|
217
205
|
// Used when a code generator's frame is switched from NULL to this one by
|
218
206
|
// binding a label.
|
219
207
|
void AttachToCodeGenerator() {
|
220
|
-
AssertIsSpilled();
|
221
208
|
}
|
222
209
|
|
223
210
|
// Emit code for the physical JS entry and exit frame sequences. After
|
@@ -227,10 +214,9 @@ class VirtualFrame : public ZoneObject {
|
|
227
214
|
void Enter();
|
228
215
|
void Exit();
|
229
216
|
|
230
|
-
// Prepare for returning from the frame by
|
231
|
-
// dropping all non-locals elements in the virtual frame. This
|
217
|
+
// Prepare for returning from the frame by elements in the virtual frame. This
|
232
218
|
// avoids generating unnecessary merge code when jumping to the
|
233
|
-
// shared return site.
|
219
|
+
// shared return site. No spill code emitted. Value to return should be in r0.
|
234
220
|
inline void PrepareForReturn();
|
235
221
|
|
236
222
|
// Number of local variables after when we use a loop for allocating.
|
@@ -247,17 +233,19 @@ class VirtualFrame : public ZoneObject {
|
|
247
233
|
|
248
234
|
// An element of the expression stack as an assembly operand.
|
249
235
|
MemOperand ElementAt(int index) {
|
250
|
-
|
251
|
-
|
236
|
+
int adjusted_index = index - kVirtualElements[top_of_stack_state_];
|
237
|
+
ASSERT(adjusted_index >= 0);
|
238
|
+
return MemOperand(sp, adjusted_index * kPointerSize);
|
252
239
|
}
|
253
240
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
ASSERT(index < local_count());
|
258
|
-
return MemOperand(fp, kLocal0Offset - index * kPointerSize);
|
241
|
+
bool KnownSmiAt(int index) {
|
242
|
+
if (index >= kTOSKnownSmiMapSize) return false;
|
243
|
+
return (tos_known_smi_map_ & (1 << index)) != 0;
|
259
244
|
}
|
260
245
|
|
246
|
+
// A frame-allocated local as an assembly operand.
|
247
|
+
inline MemOperand LocalAt(int index);
|
248
|
+
|
261
249
|
// Push the address of the receiver slot on the frame.
|
262
250
|
void PushReceiverSlotAddress();
|
263
251
|
|
@@ -268,26 +256,17 @@ class VirtualFrame : public ZoneObject {
|
|
268
256
|
MemOperand Context() { return MemOperand(fp, kContextOffset); }
|
269
257
|
|
270
258
|
// A parameter as an assembly operand.
|
271
|
-
MemOperand ParameterAt(int index)
|
272
|
-
// Index -1 corresponds to the receiver.
|
273
|
-
ASSERT(-1 <= index); // -1 is the receiver.
|
274
|
-
ASSERT(index <= parameter_count());
|
275
|
-
return MemOperand(fp, (1 + parameter_count() - index) * kPointerSize);
|
276
|
-
}
|
259
|
+
inline MemOperand ParameterAt(int index);
|
277
260
|
|
278
261
|
// The receiver frame slot.
|
279
|
-
MemOperand Receiver()
|
262
|
+
inline MemOperand Receiver();
|
280
263
|
|
281
264
|
// Push a try-catch or try-finally handler on top of the virtual frame.
|
282
265
|
void PushTryHandler(HandlerType type);
|
283
266
|
|
284
267
|
// Call stub given the number of arguments it expects on (and
|
285
268
|
// removes from) the stack.
|
286
|
-
void CallStub(CodeStub* stub, int arg_count)
|
287
|
-
if (arg_count != 0) Forget(arg_count);
|
288
|
-
ASSERT(cgen()->HasValidEntryRegisters());
|
289
|
-
masm()->CallStub(stub);
|
290
|
-
}
|
269
|
+
inline void CallStub(CodeStub* stub, int arg_count);
|
291
270
|
|
292
271
|
// Call JS function from top of the stack with arguments
|
293
272
|
// taken from the stack.
|
@@ -308,7 +287,8 @@ class VirtualFrame : public ZoneObject {
|
|
308
287
|
InvokeJSFlags flag,
|
309
288
|
int arg_count);
|
310
289
|
|
311
|
-
// Call load IC. Receiver is on the stack. Result is returned
|
290
|
+
// Call load IC. Receiver is on the stack and is consumed. Result is returned
|
291
|
+
// in r0.
|
312
292
|
void CallLoadIC(Handle<String> name, RelocInfo::Mode mode);
|
313
293
|
|
314
294
|
// Call store IC. If the load is contextual, value is found on top of the
|
@@ -316,12 +296,12 @@ class VirtualFrame : public ZoneObject {
|
|
316
296
|
// Result is returned in r0.
|
317
297
|
void CallStoreIC(Handle<String> name, bool is_contextual);
|
318
298
|
|
319
|
-
// Call keyed load IC. Key and receiver are on the stack.
|
320
|
-
// in r0.
|
299
|
+
// Call keyed load IC. Key and receiver are on the stack. Both are consumed.
|
300
|
+
// Result is returned in r0.
|
321
301
|
void CallKeyedLoadIC();
|
322
302
|
|
323
|
-
// Call keyed store IC.
|
324
|
-
//
|
303
|
+
// Call keyed store IC. Value, key and receiver are on the stack. All three
|
304
|
+
// are consumed. Result is returned in r0.
|
325
305
|
void CallKeyedStoreIC();
|
326
306
|
|
327
307
|
// Call into an IC stub given the number of arguments it removes
|
@@ -352,12 +332,22 @@ class VirtualFrame : public ZoneObject {
|
|
352
332
|
// must be copied to a scratch register before modification.
|
353
333
|
Register Peek();
|
354
334
|
|
335
|
+
// Look at the value beneath the top of the stack. The register returned is
|
336
|
+
// aliased and must be copied to a scratch register before modification.
|
337
|
+
Register Peek2();
|
338
|
+
|
355
339
|
// Duplicate the top of stack.
|
356
340
|
void Dup();
|
357
341
|
|
342
|
+
// Duplicate the two elements on top of stack.
|
343
|
+
void Dup2();
|
344
|
+
|
358
345
|
// Flushes all registers, but it puts a copy of the top-of-stack in r0.
|
359
346
|
void SpillAllButCopyTOSToR0();
|
360
347
|
|
348
|
+
// Flushes all registers, but it puts a copy of the top-of-stack in r1.
|
349
|
+
void SpillAllButCopyTOSToR1();
|
350
|
+
|
361
351
|
// Flushes all registers, but it puts a copy of the top-of-stack in r1
|
362
352
|
// and the next value on the stack in r0.
|
363
353
|
void SpillAllButCopyTOSToR1R0();
|
@@ -378,11 +368,17 @@ class VirtualFrame : public ZoneObject {
|
|
378
368
|
|
379
369
|
// Push an element on top of the expression stack and emit a
|
380
370
|
// corresponding push instruction.
|
381
|
-
void EmitPush(Register reg);
|
382
|
-
void EmitPush(Operand operand);
|
383
|
-
void EmitPush(MemOperand operand);
|
371
|
+
void EmitPush(Register reg, TypeInfo type_info = TypeInfo::Unknown());
|
372
|
+
void EmitPush(Operand operand, TypeInfo type_info = TypeInfo::Unknown());
|
373
|
+
void EmitPush(MemOperand operand, TypeInfo type_info = TypeInfo::Unknown());
|
384
374
|
void EmitPushRoot(Heap::RootListIndex index);
|
385
375
|
|
376
|
+
// Overwrite the nth thing on the stack. If the nth position is in a
|
377
|
+
// register then this turns into a mov, otherwise an str. Afterwards
|
378
|
+
// you can still use the register even if it is a register that can be
|
379
|
+
// used for TOS (r0 or r1).
|
380
|
+
void SetElementAt(Register reg, int this_far_down);
|
381
|
+
|
386
382
|
// Get a register which is free and which must be immediately used to
|
387
383
|
// push on the top of the stack.
|
388
384
|
Register GetTOSRegister();
|
@@ -439,6 +435,8 @@ class VirtualFrame : public ZoneObject {
|
|
439
435
|
int element_count_;
|
440
436
|
TopOfStack top_of_stack_state_:3;
|
441
437
|
int register_allocation_map_:kNumberOfAllocatedRegisters;
|
438
|
+
static const int kTOSKnownSmiMapSize = 4;
|
439
|
+
unsigned tos_known_smi_map_:kTOSKnownSmiMapSize;
|
442
440
|
|
443
441
|
// The index of the element that is at the processor's stack pointer
|
444
442
|
// (the sp register). For now since everything is in memory it is given
|
@@ -446,13 +444,13 @@ class VirtualFrame : public ZoneObject {
|
|
446
444
|
int stack_pointer() { return element_count_ - 1; }
|
447
445
|
|
448
446
|
// The number of frame-allocated locals and parameters respectively.
|
449
|
-
int parameter_count()
|
450
|
-
int local_count()
|
447
|
+
inline int parameter_count() const;
|
448
|
+
inline int local_count() const;
|
451
449
|
|
452
450
|
// The index of the element that is at the processor's frame pointer
|
453
451
|
// (the fp register). The parameters, receiver, function, and context
|
454
452
|
// are below the frame pointer.
|
455
|
-
int frame_pointer()
|
453
|
+
inline int frame_pointer() const;
|
456
454
|
|
457
455
|
// The index of the first parameter. The receiver lies below the first
|
458
456
|
// parameter.
|
@@ -460,26 +458,22 @@ class VirtualFrame : public ZoneObject {
|
|
460
458
|
|
461
459
|
// The index of the context slot in the frame. It is immediately
|
462
460
|
// below the frame pointer.
|
463
|
-
int context_index()
|
461
|
+
inline int context_index();
|
464
462
|
|
465
463
|
// The index of the function slot in the frame. It is below the frame
|
466
464
|
// pointer and context slot.
|
467
|
-
int function_index()
|
465
|
+
inline int function_index();
|
468
466
|
|
469
467
|
// The index of the first local. Between the frame pointer and the
|
470
468
|
// locals lies the return address.
|
471
|
-
int local0_index()
|
469
|
+
inline int local0_index() const;
|
472
470
|
|
473
471
|
// The index of the base of the expression stack.
|
474
|
-
int expression_base_index()
|
472
|
+
inline int expression_base_index() const;
|
475
473
|
|
476
474
|
// Convert a frame index into a frame pointer relative offset into the
|
477
475
|
// actual stack.
|
478
|
-
int fp_relative(int index)
|
479
|
-
ASSERT(index < element_count());
|
480
|
-
ASSERT(frame_pointer() < element_count()); // FP is on the frame.
|
481
|
-
return (frame_pointer() - index) * kPointerSize;
|
482
|
-
}
|
476
|
+
inline int fp_relative(int index);
|
483
477
|
|
484
478
|
// Spill all elements in registers. Spill the top spilled_args elements
|
485
479
|
// on the frame. Sync all other frame elements.
|
@@ -491,10 +485,32 @@ class VirtualFrame : public ZoneObject {
|
|
491
485
|
// onto the physical stack and made free.
|
492
486
|
void EnsureOneFreeTOSRegister();
|
493
487
|
|
494
|
-
|
488
|
+
// Emit instructions to get the top of stack state from where we are to where
|
489
|
+
// we want to be.
|
490
|
+
void MergeTOSTo(TopOfStack expected_state, Condition cond = al);
|
491
|
+
|
492
|
+
inline bool Equals(const VirtualFrame* other);
|
493
|
+
|
494
|
+
inline void LowerHeight(int count) {
|
495
|
+
element_count_ -= count;
|
496
|
+
if (count >= kTOSKnownSmiMapSize) {
|
497
|
+
tos_known_smi_map_ = 0;
|
498
|
+
} else {
|
499
|
+
tos_known_smi_map_ >>= count;
|
500
|
+
}
|
501
|
+
}
|
502
|
+
|
503
|
+
inline void RaiseHeight(int count, unsigned known_smi_map = 0) {
|
504
|
+
ASSERT(known_smi_map < (1u << count));
|
505
|
+
element_count_ += count;
|
506
|
+
if (count >= kTOSKnownSmiMapSize) {
|
507
|
+
tos_known_smi_map_ = known_smi_map;
|
508
|
+
} else {
|
509
|
+
tos_known_smi_map_ = ((tos_known_smi_map_ << count) | known_smi_map);
|
510
|
+
}
|
511
|
+
}
|
495
512
|
|
496
513
|
friend class JumpTarget;
|
497
|
-
friend class DeferredCode;
|
498
514
|
};
|
499
515
|
|
500
516
|
|
@@ -954,7 +954,7 @@ function ArrayMap(f, receiver) {
|
|
954
954
|
|
955
955
|
function ArrayIndexOf(element, index) {
|
956
956
|
var length = this.length;
|
957
|
-
if (index
|
957
|
+
if (IS_UNDEFINED(index)) {
|
958
958
|
index = 0;
|
959
959
|
} else {
|
960
960
|
index = TO_INTEGER(index);
|
@@ -981,7 +981,7 @@ function ArrayIndexOf(element, index) {
|
|
981
981
|
|
982
982
|
function ArrayLastIndexOf(element, index) {
|
983
983
|
var length = this.length;
|
984
|
-
if (
|
984
|
+
if (%_ArgumentsLength() < 2) {
|
985
985
|
index = length - 1;
|
986
986
|
} else {
|
987
987
|
index = TO_INTEGER(index);
|
@@ -424,8 +424,6 @@ const char* RelocInfo::RelocModeName(RelocInfo::Mode rmode) {
|
|
424
424
|
return "no reloc";
|
425
425
|
case RelocInfo::EMBEDDED_OBJECT:
|
426
426
|
return "embedded object";
|
427
|
-
case RelocInfo::EMBEDDED_STRING:
|
428
|
-
return "embedded string";
|
429
427
|
case RelocInfo::CONSTRUCT_CALL:
|
430
428
|
return "code target (js construct call)";
|
431
429
|
case RelocInfo::CODE_TARGET_CONTEXT:
|
@@ -451,6 +449,11 @@ const char* RelocInfo::RelocModeName(RelocInfo::Mode rmode) {
|
|
451
449
|
return "external reference";
|
452
450
|
case RelocInfo::INTERNAL_REFERENCE:
|
453
451
|
return "internal reference";
|
452
|
+
case RelocInfo::DEBUG_BREAK_SLOT:
|
453
|
+
#ifndef ENABLE_DEBUGGER_SUPPORT
|
454
|
+
UNREACHABLE();
|
455
|
+
#endif
|
456
|
+
return "debug break slot";
|
454
457
|
case RelocInfo::NUMBER_OF_MODES:
|
455
458
|
UNREACHABLE();
|
456
459
|
return "number_of_modes";
|
@@ -508,7 +511,6 @@ void RelocInfo::Verify() {
|
|
508
511
|
ASSERT(code->address() == HeapObject::cast(found)->address());
|
509
512
|
break;
|
510
513
|
}
|
511
|
-
case RelocInfo::EMBEDDED_STRING:
|
512
514
|
case RUNTIME_ENTRY:
|
513
515
|
case JS_RETURN:
|
514
516
|
case COMMENT:
|
@@ -516,6 +518,7 @@ void RelocInfo::Verify() {
|
|
516
518
|
case STATEMENT_POSITION:
|
517
519
|
case EXTERNAL_REFERENCE:
|
518
520
|
case INTERNAL_REFERENCE:
|
521
|
+
case DEBUG_BREAK_SLOT:
|
519
522
|
case NONE:
|
520
523
|
break;
|
521
524
|
case NUMBER_OF_MODES:
|
@@ -670,16 +673,6 @@ ExternalReference ExternalReference::scheduled_exception_address() {
|
|
670
673
|
}
|
671
674
|
|
672
675
|
|
673
|
-
ExternalReference ExternalReference::compile_array_pop_call() {
|
674
|
-
return ExternalReference(FUNCTION_ADDR(CompileArrayPopCall));
|
675
|
-
}
|
676
|
-
|
677
|
-
|
678
|
-
ExternalReference ExternalReference::compile_array_push_call() {
|
679
|
-
return ExternalReference(FUNCTION_ADDR(CompileArrayPushCall));
|
680
|
-
}
|
681
|
-
|
682
|
-
|
683
676
|
#ifndef V8_INTERPRETED_REGEXP
|
684
677
|
|
685
678
|
ExternalReference ExternalReference::re_check_stack_guard_state() {
|
@@ -38,6 +38,7 @@
|
|
38
38
|
#include "runtime.h"
|
39
39
|
#include "top.h"
|
40
40
|
#include "token.h"
|
41
|
+
#include "objects.h"
|
41
42
|
|
42
43
|
namespace v8 {
|
43
44
|
namespace internal {
|
@@ -117,11 +118,10 @@ class RelocInfo BASE_EMBEDDED {
|
|
117
118
|
enum Mode {
|
118
119
|
// Please note the order is important (see IsCodeTarget, IsGCRelocMode).
|
119
120
|
CONSTRUCT_CALL, // code target that is a call to a JavaScript constructor.
|
120
|
-
CODE_TARGET_CONTEXT, //
|
121
|
-
DEBUG_BREAK,
|
122
|
-
CODE_TARGET,
|
121
|
+
CODE_TARGET_CONTEXT, // Code target used for contextual loads.
|
122
|
+
DEBUG_BREAK, // Code target for the debugger statement.
|
123
|
+
CODE_TARGET, // Code target which is not any of the above.
|
123
124
|
EMBEDDED_OBJECT,
|
124
|
-
EMBEDDED_STRING,
|
125
125
|
|
126
126
|
// Everything after runtime_entry (inclusive) is not GC'ed.
|
127
127
|
RUNTIME_ENTRY,
|
@@ -129,6 +129,7 @@ class RelocInfo BASE_EMBEDDED {
|
|
129
129
|
COMMENT,
|
130
130
|
POSITION, // See comment for kNoPosition above.
|
131
131
|
STATEMENT_POSITION, // See comment for kNoPosition above.
|
132
|
+
DEBUG_BREAK_SLOT, // Additional code inserted for debug break slot.
|
132
133
|
EXTERNAL_REFERENCE, // The address of an external C++ function.
|
133
134
|
INTERNAL_REFERENCE, // An address inside the same function.
|
134
135
|
|
@@ -137,7 +138,7 @@ class RelocInfo BASE_EMBEDDED {
|
|
137
138
|
NUMBER_OF_MODES, // must be no greater than 14 - see RelocInfoWriter
|
138
139
|
NONE, // never recorded
|
139
140
|
LAST_CODE_ENUM = CODE_TARGET,
|
140
|
-
LAST_GCED_ENUM =
|
141
|
+
LAST_GCED_ENUM = EMBEDDED_OBJECT
|
141
142
|
};
|
142
143
|
|
143
144
|
|
@@ -174,6 +175,9 @@ class RelocInfo BASE_EMBEDDED {
|
|
174
175
|
static inline bool IsInternalReference(Mode mode) {
|
175
176
|
return mode == INTERNAL_REFERENCE;
|
176
177
|
}
|
178
|
+
static inline bool IsDebugBreakSlot(Mode mode) {
|
179
|
+
return mode == DEBUG_BREAK_SLOT;
|
180
|
+
}
|
177
181
|
static inline int ModeMask(Mode mode) { return 1 << mode; }
|
178
182
|
|
179
183
|
// Accessors
|
@@ -185,6 +189,11 @@ class RelocInfo BASE_EMBEDDED {
|
|
185
189
|
// Apply a relocation by delta bytes
|
186
190
|
INLINE(void apply(intptr_t delta));
|
187
191
|
|
192
|
+
// Is the pointer this relocation info refers to coded like a plain pointer
|
193
|
+
// or is it strange in some way (eg relative or patched into a series of
|
194
|
+
// instructions).
|
195
|
+
bool IsCodedSpecially();
|
196
|
+
|
188
197
|
// Read/modify the code target in the branch/call instruction
|
189
198
|
// this relocation applies to;
|
190
199
|
// can only be called if IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY
|
@@ -195,9 +204,23 @@ class RelocInfo BASE_EMBEDDED {
|
|
195
204
|
INLINE(Object** target_object_address());
|
196
205
|
INLINE(void set_target_object(Object* target));
|
197
206
|
|
198
|
-
// Read the address of the word containing the target_address
|
199
|
-
//
|
207
|
+
// Read the address of the word containing the target_address in an
|
208
|
+
// instruction stream. What this means exactly is architecture-independent.
|
209
|
+
// The only architecture-independent user of this function is the serializer.
|
210
|
+
// The serializer uses it to find out how many raw bytes of instruction to
|
211
|
+
// output before the next target. Architecture-independent code shouldn't
|
212
|
+
// dereference the pointer it gets back from this.
|
200
213
|
INLINE(Address target_address_address());
|
214
|
+
// This indicates how much space a target takes up when deserializing a code
|
215
|
+
// stream. For most architectures this is just the size of a pointer. For
|
216
|
+
// an instruction like movw/movt where the target bits are mixed into the
|
217
|
+
// instruction bits the size of the target will be zero, indicating that the
|
218
|
+
// serializer should not step forwards in memory after a target is resolved
|
219
|
+
// and written. In this case the target_address_address function above
|
220
|
+
// should return the end of the instructions to be patched, allowing the
|
221
|
+
// deserializer to deserialize the instructions as raw bytes and put them in
|
222
|
+
// place, ready to be patched with the target.
|
223
|
+
INLINE(int target_address_size());
|
201
224
|
|
202
225
|
// Read/modify the reference in the instruction this relocation
|
203
226
|
// applies to; can only be called if rmode_ is external_reference
|
@@ -212,6 +235,8 @@ class RelocInfo BASE_EMBEDDED {
|
|
212
235
|
INLINE(Object** call_object_address());
|
213
236
|
INLINE(void set_call_object(Object* target));
|
214
237
|
|
238
|
+
inline void Visit(ObjectVisitor* v);
|
239
|
+
|
215
240
|
// Patch the code with some other code.
|
216
241
|
void PatchCode(byte* instructions, int instruction_count);
|
217
242
|
|
@@ -222,6 +247,10 @@ class RelocInfo BASE_EMBEDDED {
|
|
222
247
|
// with a call to the debugger.
|
223
248
|
INLINE(bool IsPatchedReturnSequence());
|
224
249
|
|
250
|
+
// Check whether this debug break slot has been patched with a call to the
|
251
|
+
// debugger.
|
252
|
+
INLINE(bool IsPatchedDebugBreakSlotSequence());
|
253
|
+
|
225
254
|
#ifdef ENABLE_DISASSEMBLER
|
226
255
|
// Printing
|
227
256
|
static const char* RelocModeName(Mode rmode);
|
@@ -444,9 +473,6 @@ class ExternalReference BASE_EMBEDDED {
|
|
444
473
|
|
445
474
|
static ExternalReference scheduled_exception_address();
|
446
475
|
|
447
|
-
static ExternalReference compile_array_pop_call();
|
448
|
-
static ExternalReference compile_array_push_call();
|
449
|
-
|
450
476
|
Address address() const {return reinterpret_cast<Address>(address_);}
|
451
477
|
|
452
478
|
#ifdef ENABLE_DEBUGGER_SUPPORT
|