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
@@ -25,62 +25,31 @@
|
|
25
25
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
26
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
27
|
|
28
|
-
#
|
29
|
-
|
30
|
-
#include "codegen-inl.h"
|
31
|
-
#include "jump-target-inl.h"
|
28
|
+
#ifndef V8_FIXED_DTOA_H_
|
29
|
+
#define V8_FIXED_DTOA_H_
|
32
30
|
|
33
31
|
namespace v8 {
|
34
32
|
namespace internal {
|
35
33
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
|
-
void JumpTarget::Bind(Result* arg) {
|
58
|
-
UNIMPLEMENTED();
|
59
|
-
}
|
60
|
-
|
61
|
-
|
62
|
-
void JumpTarget::Bind(Result* arg0, Result* arg1) {
|
63
|
-
UNIMPLEMENTED();
|
64
|
-
}
|
65
|
-
|
66
|
-
|
67
|
-
void JumpTarget::ComputeEntryFrame() {
|
68
|
-
UNIMPLEMENTED();
|
69
|
-
}
|
70
|
-
|
71
|
-
|
72
|
-
DeferredCode::DeferredCode()
|
73
|
-
: masm_(CodeGeneratorScope::Current()->masm()),
|
74
|
-
statement_position_(masm_->current_statement_position()),
|
75
|
-
position_(masm_->current_position()) {
|
76
|
-
ASSERT(statement_position_ != RelocInfo::kNoPosition);
|
77
|
-
ASSERT(position_ != RelocInfo::kNoPosition);
|
78
|
-
|
79
|
-
CodeGeneratorScope::Current()->AddDeferred(this);
|
80
|
-
|
81
|
-
#ifdef DEBUG
|
82
|
-
CodeGeneratorScope::Current()->frame()->AssertIsSpilled();
|
83
|
-
#endif
|
84
|
-
}
|
34
|
+
// Produces digits necessary to print a given number with
|
35
|
+
// 'fractional_count' digits after the decimal point.
|
36
|
+
// The buffer must be big enough to hold the result plus one terminating null
|
37
|
+
// character.
|
38
|
+
//
|
39
|
+
// The produced digits might be too short in which case the caller has to fill
|
40
|
+
// the gaps with '0's.
|
41
|
+
// Example: FastFixedDtoa(0.001, 5, ...) is allowed to return buffer = "1", and
|
42
|
+
// decimal_point = -2.
|
43
|
+
// Halfway cases are rounded towards +/-Infinity (away from 0). The call
|
44
|
+
// FastFixedDtoa(0.15, 2, ...) thus returns buffer = "2", decimal_point = 0.
|
45
|
+
// The returned buffer may contain digits that would be truncated from the
|
46
|
+
// shortest representation of the input.
|
47
|
+
//
|
48
|
+
// This method only works for some parameters. If it can't handle the input it
|
49
|
+
// returns false. The output is null-terminated when the function succeeds.
|
50
|
+
bool FastFixedDtoa(double v, int fractional_count,
|
51
|
+
Vector<char> buffer, int* length, int* decimal_point);
|
85
52
|
|
86
53
|
} } // namespace v8::internal
|
54
|
+
|
55
|
+
#endif // V8_FIXED_DTOA_H_
|
@@ -100,10 +100,10 @@ private:
|
|
100
100
|
DEFINE_bool(debug_code, false,
|
101
101
|
"generate extra code (comments, assertions) for debugging")
|
102
102
|
DEFINE_bool(emit_branch_hints, false, "emit branch hints")
|
103
|
-
DEFINE_bool(
|
104
|
-
"
|
105
|
-
DEFINE_bool(
|
106
|
-
"print
|
103
|
+
DEFINE_bool(peephole_optimization, true,
|
104
|
+
"perform peephole optimizations in assembly code")
|
105
|
+
DEFINE_bool(print_peephole_optimization, false,
|
106
|
+
"print peephole optimizations in assembly code")
|
107
107
|
DEFINE_bool(enable_sse2, true,
|
108
108
|
"enable use of SSE2 instructions if available")
|
109
109
|
DEFINE_bool(enable_sse3, true,
|
@@ -123,6 +123,8 @@ DEFINE_bool(enable_armv7, true,
|
|
123
123
|
DEFINE_string(expose_natives_as, NULL, "expose natives in global object")
|
124
124
|
DEFINE_string(expose_debug_as, NULL, "expose debug in global object")
|
125
125
|
DEFINE_bool(expose_gc, false, "expose gc extension")
|
126
|
+
DEFINE_bool(expose_externalize_string, false,
|
127
|
+
"expose externalize string extension")
|
126
128
|
DEFINE_int(stack_trace_limit, 10, "number of stack frames to capture")
|
127
129
|
DEFINE_bool(disable_native_files, false, "disable builtin natives files")
|
128
130
|
|
@@ -182,10 +184,17 @@ DEFINE_bool(gc_global, false, "always perform global GCs")
|
|
182
184
|
DEFINE_int(gc_interval, -1, "garbage collect after <n> allocations")
|
183
185
|
DEFINE_bool(trace_gc, false,
|
184
186
|
"print one trace line following each garbage collection")
|
187
|
+
DEFINE_bool(trace_gc_nvp, false,
|
188
|
+
"print one detailed trace line in name=value format "
|
189
|
+
"after each garbage collection")
|
190
|
+
DEFINE_bool(print_cumulative_gc_stat, false,
|
191
|
+
"print cumulative GC statistics in name=value format on exit")
|
185
192
|
DEFINE_bool(trace_gc_verbose, false,
|
186
193
|
"print more details following each garbage collection")
|
187
194
|
DEFINE_bool(collect_maps, true,
|
188
195
|
"garbage collect maps from which no objects can be reached")
|
196
|
+
DEFINE_bool(flush_code, true,
|
197
|
+
"flush code that we expect not to use again before full gc")
|
189
198
|
|
190
199
|
// v8.cc
|
191
200
|
DEFINE_bool(use_idle_notification, true,
|
@@ -272,7 +281,7 @@ DEFINE_string(testing_serialization_file, "/tmp/serdes",
|
|
272
281
|
|
273
282
|
DEFINE_bool(help, false, "Print usage message, including flags, on console")
|
274
283
|
DEFINE_bool(dump_counters, false, "Dump counters on exit")
|
275
|
-
DEFINE_bool(debugger,
|
284
|
+
DEFINE_bool(debugger, false, "Enable JavaScript debugger")
|
276
285
|
DEFINE_bool(remote_debugger, false, "Connect JavaScript debugger to the "
|
277
286
|
"debugger agent in another process")
|
278
287
|
DEFINE_bool(debugger_agent, false, "Enable debugger agent")
|
@@ -328,7 +337,6 @@ DEFINE_bool(code_stats, false, "report code statistics after GC")
|
|
328
337
|
DEFINE_bool(verify_heap, false, "verify heap pointers before and after GC")
|
329
338
|
DEFINE_bool(print_handles, false, "report handles after GC")
|
330
339
|
DEFINE_bool(print_global_handles, false, "report global handles after GC")
|
331
|
-
DEFINE_bool(print_rset, false, "print remembered sets before GC")
|
332
340
|
|
333
341
|
// ic.cc
|
334
342
|
DEFINE_bool(trace_ic, false, "trace inline cache state transitions")
|
@@ -470,12 +470,12 @@ static char* SkipBlackSpace(char* p) {
|
|
470
470
|
// static
|
471
471
|
int FlagList::SetFlagsFromString(const char* str, int len) {
|
472
472
|
// make a 0-terminated copy of str
|
473
|
-
char
|
474
|
-
memcpy(copy0, str, len);
|
473
|
+
ScopedVector<char> copy0(len + 1);
|
474
|
+
memcpy(copy0.start(), str, len);
|
475
475
|
copy0[len] = '\0';
|
476
476
|
|
477
477
|
// strip leading white space
|
478
|
-
char* copy = SkipWhiteSpace(copy0);
|
478
|
+
char* copy = SkipWhiteSpace(copy0.start());
|
479
479
|
|
480
480
|
// count the number of 'arguments'
|
481
481
|
int argc = 1; // be compatible with SetFlagsFromCommandLine()
|
@@ -485,7 +485,7 @@ int FlagList::SetFlagsFromString(const char* str, int len) {
|
|
485
485
|
}
|
486
486
|
|
487
487
|
// allocate argument array
|
488
|
-
char
|
488
|
+
ScopedVector<char*> argv(argc);
|
489
489
|
|
490
490
|
// split the flags string into arguments
|
491
491
|
argc = 1; // be compatible with SetFlagsFromCommandLine()
|
@@ -497,11 +497,7 @@ int FlagList::SetFlagsFromString(const char* str, int len) {
|
|
497
497
|
}
|
498
498
|
|
499
499
|
// set the flags
|
500
|
-
int result = SetFlagsFromCommandLine(&argc, argv, false);
|
501
|
-
|
502
|
-
// cleanup
|
503
|
-
DeleteArray(argv);
|
504
|
-
DeleteArray(copy0);
|
500
|
+
int result = SetFlagsFromCommandLine(&argc, argv.start(), false);
|
505
501
|
|
506
502
|
return result;
|
507
503
|
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -532,8 +532,11 @@ void JavaScriptFrame::Print(StringStream* accumulator,
|
|
532
532
|
if (IsConstructor()) accumulator->Add("new ");
|
533
533
|
accumulator->PrintFunction(function, receiver, &code);
|
534
534
|
|
535
|
+
Handle<SerializedScopeInfo> scope_info(SerializedScopeInfo::Empty());
|
536
|
+
|
535
537
|
if (function->IsJSFunction()) {
|
536
538
|
Handle<SharedFunctionInfo> shared(JSFunction::cast(function)->shared());
|
539
|
+
scope_info = Handle<SerializedScopeInfo>(shared->scope_info());
|
537
540
|
Object* script_obj = shared->script();
|
538
541
|
if (script_obj->IsScript()) {
|
539
542
|
Handle<Script> script(Script::cast(script_obj));
|
@@ -542,7 +545,7 @@ void JavaScriptFrame::Print(StringStream* accumulator,
|
|
542
545
|
|
543
546
|
Address pc = this->pc();
|
544
547
|
if (code != NULL && code->kind() == Code::FUNCTION &&
|
545
|
-
pc >= code->instruction_start() && pc < code->
|
548
|
+
pc >= code->instruction_start() && pc < code->instruction_end()) {
|
546
549
|
int source_pos = code->SourcePosition(pc);
|
547
550
|
int line = GetScriptLineNumberSafe(script, source_pos) + 1;
|
548
551
|
accumulator->Add(":%d", line);
|
@@ -561,7 +564,7 @@ void JavaScriptFrame::Print(StringStream* accumulator,
|
|
561
564
|
// Get scope information for nicer output, if possible. If code is
|
562
565
|
// NULL, or doesn't contain scope info, info will return 0 for the
|
563
566
|
// number of parameters, stack slots, or context slots.
|
564
|
-
ScopeInfo<PreallocatedStorage> info(
|
567
|
+
ScopeInfo<PreallocatedStorage> info(*scope_info);
|
565
568
|
|
566
569
|
// Print the parameters.
|
567
570
|
int parameters_count = ComputeParametersCount();
|
@@ -439,6 +439,231 @@ void FullCodeGenSyntaxChecker::VisitThisFunction(ThisFunction* expr) {
|
|
439
439
|
#undef CHECK_BAILOUT
|
440
440
|
|
441
441
|
|
442
|
+
void BreakableStatementChecker::Check(Statement* stmt) {
|
443
|
+
Visit(stmt);
|
444
|
+
}
|
445
|
+
|
446
|
+
|
447
|
+
void BreakableStatementChecker::Check(Expression* expr) {
|
448
|
+
Visit(expr);
|
449
|
+
}
|
450
|
+
|
451
|
+
|
452
|
+
void BreakableStatementChecker::VisitDeclaration(Declaration* decl) {
|
453
|
+
}
|
454
|
+
|
455
|
+
|
456
|
+
void BreakableStatementChecker::VisitBlock(Block* stmt) {
|
457
|
+
}
|
458
|
+
|
459
|
+
|
460
|
+
void BreakableStatementChecker::VisitExpressionStatement(
|
461
|
+
ExpressionStatement* stmt) {
|
462
|
+
// Check if expression is breakable.
|
463
|
+
Visit(stmt->expression());
|
464
|
+
}
|
465
|
+
|
466
|
+
|
467
|
+
void BreakableStatementChecker::VisitEmptyStatement(EmptyStatement* stmt) {
|
468
|
+
}
|
469
|
+
|
470
|
+
|
471
|
+
void BreakableStatementChecker::VisitIfStatement(IfStatement* stmt) {
|
472
|
+
// If the condition is breakable the if statement is breakable.
|
473
|
+
Visit(stmt->condition());
|
474
|
+
}
|
475
|
+
|
476
|
+
|
477
|
+
void BreakableStatementChecker::VisitContinueStatement(
|
478
|
+
ContinueStatement* stmt) {
|
479
|
+
}
|
480
|
+
|
481
|
+
|
482
|
+
void BreakableStatementChecker::VisitBreakStatement(BreakStatement* stmt) {
|
483
|
+
}
|
484
|
+
|
485
|
+
|
486
|
+
void BreakableStatementChecker::VisitReturnStatement(ReturnStatement* stmt) {
|
487
|
+
// Return is breakable if the expression is.
|
488
|
+
Visit(stmt->expression());
|
489
|
+
}
|
490
|
+
|
491
|
+
|
492
|
+
void BreakableStatementChecker::VisitWithEnterStatement(
|
493
|
+
WithEnterStatement* stmt) {
|
494
|
+
Visit(stmt->expression());
|
495
|
+
}
|
496
|
+
|
497
|
+
|
498
|
+
void BreakableStatementChecker::VisitWithExitStatement(
|
499
|
+
WithExitStatement* stmt) {
|
500
|
+
}
|
501
|
+
|
502
|
+
|
503
|
+
void BreakableStatementChecker::VisitSwitchStatement(SwitchStatement* stmt) {
|
504
|
+
// Switch statements breakable if the tag expression is.
|
505
|
+
Visit(stmt->tag());
|
506
|
+
}
|
507
|
+
|
508
|
+
|
509
|
+
void BreakableStatementChecker::VisitDoWhileStatement(DoWhileStatement* stmt) {
|
510
|
+
// Mark do while as breakable to avoid adding a break slot in front of it.
|
511
|
+
is_breakable_ = true;
|
512
|
+
}
|
513
|
+
|
514
|
+
|
515
|
+
void BreakableStatementChecker::VisitWhileStatement(WhileStatement* stmt) {
|
516
|
+
// Mark while statements breakable if the condition expression is.
|
517
|
+
Visit(stmt->cond());
|
518
|
+
}
|
519
|
+
|
520
|
+
|
521
|
+
void BreakableStatementChecker::VisitForStatement(ForStatement* stmt) {
|
522
|
+
// Mark for statements breakable if the condition expression is.
|
523
|
+
if (stmt->cond() != NULL) {
|
524
|
+
Visit(stmt->cond());
|
525
|
+
}
|
526
|
+
}
|
527
|
+
|
528
|
+
|
529
|
+
void BreakableStatementChecker::VisitForInStatement(ForInStatement* stmt) {
|
530
|
+
// Mark for in statements breakable if the enumerable expression is.
|
531
|
+
Visit(stmt->enumerable());
|
532
|
+
}
|
533
|
+
|
534
|
+
|
535
|
+
void BreakableStatementChecker::VisitTryCatchStatement(
|
536
|
+
TryCatchStatement* stmt) {
|
537
|
+
// Mark try catch as breakable to avoid adding a break slot in front of it.
|
538
|
+
is_breakable_ = true;
|
539
|
+
}
|
540
|
+
|
541
|
+
|
542
|
+
void BreakableStatementChecker::VisitTryFinallyStatement(
|
543
|
+
TryFinallyStatement* stmt) {
|
544
|
+
// Mark try finally as breakable to avoid adding a break slot in front of it.
|
545
|
+
is_breakable_ = true;
|
546
|
+
}
|
547
|
+
|
548
|
+
|
549
|
+
void BreakableStatementChecker::VisitDebuggerStatement(
|
550
|
+
DebuggerStatement* stmt) {
|
551
|
+
// The debugger statement is breakable.
|
552
|
+
is_breakable_ = true;
|
553
|
+
}
|
554
|
+
|
555
|
+
|
556
|
+
void BreakableStatementChecker::VisitFunctionLiteral(FunctionLiteral* expr) {
|
557
|
+
}
|
558
|
+
|
559
|
+
|
560
|
+
void BreakableStatementChecker::VisitSharedFunctionInfoLiteral(
|
561
|
+
SharedFunctionInfoLiteral* expr) {
|
562
|
+
}
|
563
|
+
|
564
|
+
|
565
|
+
void BreakableStatementChecker::VisitConditional(Conditional* expr) {
|
566
|
+
}
|
567
|
+
|
568
|
+
|
569
|
+
void BreakableStatementChecker::VisitSlot(Slot* expr) {
|
570
|
+
}
|
571
|
+
|
572
|
+
|
573
|
+
void BreakableStatementChecker::VisitVariableProxy(VariableProxy* expr) {
|
574
|
+
}
|
575
|
+
|
576
|
+
|
577
|
+
void BreakableStatementChecker::VisitLiteral(Literal* expr) {
|
578
|
+
}
|
579
|
+
|
580
|
+
|
581
|
+
void BreakableStatementChecker::VisitRegExpLiteral(RegExpLiteral* expr) {
|
582
|
+
}
|
583
|
+
|
584
|
+
|
585
|
+
void BreakableStatementChecker::VisitObjectLiteral(ObjectLiteral* expr) {
|
586
|
+
}
|
587
|
+
|
588
|
+
|
589
|
+
void BreakableStatementChecker::VisitArrayLiteral(ArrayLiteral* expr) {
|
590
|
+
}
|
591
|
+
|
592
|
+
|
593
|
+
void BreakableStatementChecker::VisitCatchExtensionObject(
|
594
|
+
CatchExtensionObject* expr) {
|
595
|
+
}
|
596
|
+
|
597
|
+
|
598
|
+
void BreakableStatementChecker::VisitAssignment(Assignment* expr) {
|
599
|
+
// If assigning to a property (including a global property) the assignment is
|
600
|
+
// breakable.
|
601
|
+
Variable* var = expr->target()->AsVariableProxy()->AsVariable();
|
602
|
+
Property* prop = expr->target()->AsProperty();
|
603
|
+
if (prop != NULL || (var != NULL && var->is_global())) {
|
604
|
+
is_breakable_ = true;
|
605
|
+
return;
|
606
|
+
}
|
607
|
+
|
608
|
+
// Otherwise the assignment is breakable if the assigned value is.
|
609
|
+
Visit(expr->value());
|
610
|
+
}
|
611
|
+
|
612
|
+
|
613
|
+
void BreakableStatementChecker::VisitThrow(Throw* expr) {
|
614
|
+
// Throw is breakable if the expression is.
|
615
|
+
Visit(expr->exception());
|
616
|
+
}
|
617
|
+
|
618
|
+
|
619
|
+
void BreakableStatementChecker::VisitProperty(Property* expr) {
|
620
|
+
// Property load is breakable.
|
621
|
+
is_breakable_ = true;
|
622
|
+
}
|
623
|
+
|
624
|
+
|
625
|
+
void BreakableStatementChecker::VisitCall(Call* expr) {
|
626
|
+
// Function calls both through IC and call stub are breakable.
|
627
|
+
is_breakable_ = true;
|
628
|
+
}
|
629
|
+
|
630
|
+
|
631
|
+
void BreakableStatementChecker::VisitCallNew(CallNew* expr) {
|
632
|
+
// Function calls through new are breakable.
|
633
|
+
is_breakable_ = true;
|
634
|
+
}
|
635
|
+
|
636
|
+
|
637
|
+
void BreakableStatementChecker::VisitCallRuntime(CallRuntime* expr) {
|
638
|
+
}
|
639
|
+
|
640
|
+
|
641
|
+
void BreakableStatementChecker::VisitUnaryOperation(UnaryOperation* expr) {
|
642
|
+
Visit(expr->expression());
|
643
|
+
}
|
644
|
+
|
645
|
+
|
646
|
+
void BreakableStatementChecker::VisitCountOperation(CountOperation* expr) {
|
647
|
+
Visit(expr->expression());
|
648
|
+
}
|
649
|
+
|
650
|
+
|
651
|
+
void BreakableStatementChecker::VisitBinaryOperation(BinaryOperation* expr) {
|
652
|
+
Visit(expr->left());
|
653
|
+
Visit(expr->right());
|
654
|
+
}
|
655
|
+
|
656
|
+
|
657
|
+
void BreakableStatementChecker::VisitCompareOperation(CompareOperation* expr) {
|
658
|
+
Visit(expr->left());
|
659
|
+
Visit(expr->right());
|
660
|
+
}
|
661
|
+
|
662
|
+
|
663
|
+
void BreakableStatementChecker::VisitThisFunction(ThisFunction* expr) {
|
664
|
+
}
|
665
|
+
|
666
|
+
|
442
667
|
#define __ ACCESS_MASM(masm())
|
443
668
|
|
444
669
|
Handle<Code> FullCodeGenerator::MakeCode(CompilationInfo* info) {
|
@@ -552,7 +777,60 @@ void FullCodeGenerator::SetReturnPosition(FunctionLiteral* fun) {
|
|
552
777
|
|
553
778
|
void FullCodeGenerator::SetStatementPosition(Statement* stmt) {
|
554
779
|
if (FLAG_debug_info) {
|
780
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
781
|
+
if (!Debugger::IsDebuggerActive()) {
|
782
|
+
CodeGenerator::RecordPositions(masm_, stmt->statement_pos());
|
783
|
+
} else {
|
784
|
+
// Check if the statement will be breakable without adding a debug break
|
785
|
+
// slot.
|
786
|
+
BreakableStatementChecker checker;
|
787
|
+
checker.Check(stmt);
|
788
|
+
// Record the statement position right here if the statement is not
|
789
|
+
// breakable. For breakable statements the actual recording of the
|
790
|
+
// position will be postponed to the breakable code (typically an IC).
|
791
|
+
bool position_recorded = CodeGenerator::RecordPositions(
|
792
|
+
masm_, stmt->statement_pos(), !checker.is_breakable());
|
793
|
+
// If the position recording did record a new position generate a debug
|
794
|
+
// break slot to make the statement breakable.
|
795
|
+
if (position_recorded) {
|
796
|
+
Debug::GenerateSlot(masm_);
|
797
|
+
}
|
798
|
+
}
|
799
|
+
#else
|
555
800
|
CodeGenerator::RecordPositions(masm_, stmt->statement_pos());
|
801
|
+
#endif
|
802
|
+
}
|
803
|
+
}
|
804
|
+
|
805
|
+
|
806
|
+
void FullCodeGenerator::SetExpressionPosition(Expression* expr, int pos) {
|
807
|
+
if (FLAG_debug_info) {
|
808
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
809
|
+
if (!Debugger::IsDebuggerActive()) {
|
810
|
+
CodeGenerator::RecordPositions(masm_, pos);
|
811
|
+
} else {
|
812
|
+
// Check if the expression will be breakable without adding a debug break
|
813
|
+
// slot.
|
814
|
+
BreakableStatementChecker checker;
|
815
|
+
checker.Check(expr);
|
816
|
+
// Record a statement position right here if the expression is not
|
817
|
+
// breakable. For breakable expressions the actual recording of the
|
818
|
+
// position will be postponed to the breakable code (typically an IC).
|
819
|
+
// NOTE this will record a statement position for something which might
|
820
|
+
// not be a statement. As stepping in the debugger will only stop at
|
821
|
+
// statement positions this is used for e.g. the condition expression of
|
822
|
+
// a do while loop.
|
823
|
+
bool position_recorded = CodeGenerator::RecordPositions(
|
824
|
+
masm_, pos, !checker.is_breakable());
|
825
|
+
// If the position recording did record a new position generate a debug
|
826
|
+
// break slot to make the statement breakable.
|
827
|
+
if (position_recorded) {
|
828
|
+
Debug::GenerateSlot(masm_);
|
829
|
+
}
|
830
|
+
}
|
831
|
+
#else
|
832
|
+
CodeGenerator::RecordPositions(masm_, pos);
|
833
|
+
#endif
|
556
834
|
}
|
557
835
|
}
|
558
836
|
|
@@ -571,6 +849,80 @@ void FullCodeGenerator::SetSourcePosition(int pos) {
|
|
571
849
|
}
|
572
850
|
|
573
851
|
|
852
|
+
void FullCodeGenerator::EmitInlineRuntimeCall(CallRuntime* expr) {
|
853
|
+
Handle<String> name = expr->name();
|
854
|
+
if (strcmp("_IsSmi", *name->ToCString()) == 0) {
|
855
|
+
EmitIsSmi(expr->arguments());
|
856
|
+
} else if (strcmp("_IsNonNegativeSmi", *name->ToCString()) == 0) {
|
857
|
+
EmitIsNonNegativeSmi(expr->arguments());
|
858
|
+
} else if (strcmp("_IsObject", *name->ToCString()) == 0) {
|
859
|
+
EmitIsObject(expr->arguments());
|
860
|
+
} else if (strcmp("_IsSpecObject", *name->ToCString()) == 0) {
|
861
|
+
EmitIsSpecObject(expr->arguments());
|
862
|
+
} else if (strcmp("_IsUndetectableObject", *name->ToCString()) == 0) {
|
863
|
+
EmitIsUndetectableObject(expr->arguments());
|
864
|
+
} else if (strcmp("_IsFunction", *name->ToCString()) == 0) {
|
865
|
+
EmitIsFunction(expr->arguments());
|
866
|
+
} else if (strcmp("_IsArray", *name->ToCString()) == 0) {
|
867
|
+
EmitIsArray(expr->arguments());
|
868
|
+
} else if (strcmp("_IsRegExp", *name->ToCString()) == 0) {
|
869
|
+
EmitIsRegExp(expr->arguments());
|
870
|
+
} else if (strcmp("_IsConstructCall", *name->ToCString()) == 0) {
|
871
|
+
EmitIsConstructCall(expr->arguments());
|
872
|
+
} else if (strcmp("_ObjectEquals", *name->ToCString()) == 0) {
|
873
|
+
EmitObjectEquals(expr->arguments());
|
874
|
+
} else if (strcmp("_Arguments", *name->ToCString()) == 0) {
|
875
|
+
EmitArguments(expr->arguments());
|
876
|
+
} else if (strcmp("_ArgumentsLength", *name->ToCString()) == 0) {
|
877
|
+
EmitArgumentsLength(expr->arguments());
|
878
|
+
} else if (strcmp("_ClassOf", *name->ToCString()) == 0) {
|
879
|
+
EmitClassOf(expr->arguments());
|
880
|
+
} else if (strcmp("_Log", *name->ToCString()) == 0) {
|
881
|
+
EmitLog(expr->arguments());
|
882
|
+
} else if (strcmp("_RandomHeapNumber", *name->ToCString()) == 0) {
|
883
|
+
EmitRandomHeapNumber(expr->arguments());
|
884
|
+
} else if (strcmp("_SubString", *name->ToCString()) == 0) {
|
885
|
+
EmitSubString(expr->arguments());
|
886
|
+
} else if (strcmp("_RegExpExec", *name->ToCString()) == 0) {
|
887
|
+
EmitRegExpExec(expr->arguments());
|
888
|
+
} else if (strcmp("_ValueOf", *name->ToCString()) == 0) {
|
889
|
+
EmitValueOf(expr->arguments());
|
890
|
+
} else if (strcmp("_SetValueOf", *name->ToCString()) == 0) {
|
891
|
+
EmitSetValueOf(expr->arguments());
|
892
|
+
} else if (strcmp("_NumberToString", *name->ToCString()) == 0) {
|
893
|
+
EmitNumberToString(expr->arguments());
|
894
|
+
} else if (strcmp("_StringCharFromCode", *name->ToCString()) == 0) {
|
895
|
+
EmitStringCharFromCode(expr->arguments());
|
896
|
+
} else if (strcmp("_StringCharCodeAt", *name->ToCString()) == 0) {
|
897
|
+
EmitStringCharCodeAt(expr->arguments());
|
898
|
+
} else if (strcmp("_StringCharAt", *name->ToCString()) == 0) {
|
899
|
+
EmitStringCharAt(expr->arguments());
|
900
|
+
} else if (strcmp("_StringAdd", *name->ToCString()) == 0) {
|
901
|
+
EmitStringAdd(expr->arguments());
|
902
|
+
} else if (strcmp("_StringCompare", *name->ToCString()) == 0) {
|
903
|
+
EmitStringCompare(expr->arguments());
|
904
|
+
} else if (strcmp("_MathPow", *name->ToCString()) == 0) {
|
905
|
+
EmitMathPow(expr->arguments());
|
906
|
+
} else if (strcmp("_MathSin", *name->ToCString()) == 0) {
|
907
|
+
EmitMathSin(expr->arguments());
|
908
|
+
} else if (strcmp("_MathCos", *name->ToCString()) == 0) {
|
909
|
+
EmitMathCos(expr->arguments());
|
910
|
+
} else if (strcmp("_MathSqrt", *name->ToCString()) == 0) {
|
911
|
+
EmitMathSqrt(expr->arguments());
|
912
|
+
} else if (strcmp("_CallFunction", *name->ToCString()) == 0) {
|
913
|
+
EmitCallFunction(expr->arguments());
|
914
|
+
} else if (strcmp("_RegExpConstructResult", *name->ToCString()) == 0) {
|
915
|
+
EmitRegExpConstructResult(expr->arguments());
|
916
|
+
} else if (strcmp("_SwapElements", *name->ToCString()) == 0) {
|
917
|
+
EmitSwapElements(expr->arguments());
|
918
|
+
} else if (strcmp("_GetFromCache", *name->ToCString()) == 0) {
|
919
|
+
EmitGetFromCache(expr->arguments());
|
920
|
+
} else {
|
921
|
+
UNREACHABLE();
|
922
|
+
}
|
923
|
+
}
|
924
|
+
|
925
|
+
|
574
926
|
void FullCodeGenerator::EmitLogicalOperation(BinaryOperation* expr) {
|
575
927
|
Label eval_right, done;
|
576
928
|
|
@@ -727,7 +1079,7 @@ void FullCodeGenerator::VisitReturnStatement(ReturnStatement* stmt) {
|
|
727
1079
|
}
|
728
1080
|
__ Drop(stack_depth);
|
729
1081
|
|
730
|
-
EmitReturnSequence(
|
1082
|
+
EmitReturnSequence();
|
731
1083
|
}
|
732
1084
|
|
733
1085
|
|
@@ -760,11 +1112,6 @@ void FullCodeGenerator::VisitWithExitStatement(WithExitStatement* stmt) {
|
|
760
1112
|
}
|
761
1113
|
|
762
1114
|
|
763
|
-
void FullCodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) {
|
764
|
-
UNREACHABLE();
|
765
|
-
}
|
766
|
-
|
767
|
-
|
768
1115
|
void FullCodeGenerator::VisitDoWhileStatement(DoWhileStatement* stmt) {
|
769
1116
|
Comment cmnt(masm_, "[ DoWhileStatement");
|
770
1117
|
SetStatementPosition(stmt);
|
@@ -781,7 +1128,11 @@ void FullCodeGenerator::VisitDoWhileStatement(DoWhileStatement* stmt) {
|
|
781
1128
|
__ bind(&stack_check_success);
|
782
1129
|
|
783
1130
|
__ bind(loop_statement.continue_target());
|
784
|
-
|
1131
|
+
|
1132
|
+
// Record the position of the do while condition and make sure it is possible
|
1133
|
+
// to break on the condition.
|
1134
|
+
SetExpressionPosition(stmt->cond(), stmt->condition_position());
|
1135
|
+
|
785
1136
|
VisitForControl(stmt->cond(), &body, loop_statement.break_target());
|
786
1137
|
|
787
1138
|
__ bind(&stack_limit_hit);
|
@@ -797,7 +1148,6 @@ void FullCodeGenerator::VisitDoWhileStatement(DoWhileStatement* stmt) {
|
|
797
1148
|
|
798
1149
|
void FullCodeGenerator::VisitWhileStatement(WhileStatement* stmt) {
|
799
1150
|
Comment cmnt(masm_, "[ WhileStatement");
|
800
|
-
SetStatementPosition(stmt);
|
801
1151
|
Label body, stack_limit_hit, stack_check_success;
|
802
1152
|
|
803
1153
|
Iteration loop_statement(this, stmt);
|
@@ -810,6 +1160,10 @@ void FullCodeGenerator::VisitWhileStatement(WhileStatement* stmt) {
|
|
810
1160
|
Visit(stmt->body());
|
811
1161
|
|
812
1162
|
__ bind(loop_statement.continue_target());
|
1163
|
+
// Emit the statement position here as this is where the while statement code
|
1164
|
+
// starts.
|
1165
|
+
SetStatementPosition(stmt);
|
1166
|
+
|
813
1167
|
// Check stack before looping.
|
814
1168
|
__ StackLimitCheck(&stack_limit_hit);
|
815
1169
|
__ bind(&stack_check_success);
|
@@ -828,7 +1182,6 @@ void FullCodeGenerator::VisitWhileStatement(WhileStatement* stmt) {
|
|
828
1182
|
|
829
1183
|
void FullCodeGenerator::VisitForStatement(ForStatement* stmt) {
|
830
1184
|
Comment cmnt(masm_, "[ ForStatement");
|
831
|
-
SetStatementPosition(stmt);
|
832
1185
|
Label test, body, stack_limit_hit, stack_check_success;
|
833
1186
|
|
834
1187
|
Iteration loop_statement(this, stmt);
|
@@ -851,6 +1204,9 @@ void FullCodeGenerator::VisitForStatement(ForStatement* stmt) {
|
|
851
1204
|
}
|
852
1205
|
|
853
1206
|
__ bind(&test);
|
1207
|
+
// Emit the statement position here as this is where the for statement code
|
1208
|
+
// starts.
|
1209
|
+
SetStatementPosition(stmt);
|
854
1210
|
|
855
1211
|
// Check stack before looping.
|
856
1212
|
__ StackLimitCheck(&stack_limit_hit);
|
@@ -872,11 +1228,6 @@ void FullCodeGenerator::VisitForStatement(ForStatement* stmt) {
|
|
872
1228
|
}
|
873
1229
|
|
874
1230
|
|
875
|
-
void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
876
|
-
UNREACHABLE();
|
877
|
-
}
|
878
|
-
|
879
|
-
|
880
1231
|
void FullCodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) {
|
881
1232
|
Comment cmnt(masm_, "[ TryCatchStatement");
|
882
1233
|
SetStatementPosition(stmt);
|
@@ -995,18 +1346,14 @@ void FullCodeGenerator::VisitDebuggerStatement(DebuggerStatement* stmt) {
|
|
995
1346
|
}
|
996
1347
|
|
997
1348
|
|
998
|
-
void FullCodeGenerator::VisitSharedFunctionInfoLiteral(
|
999
|
-
SharedFunctionInfoLiteral* expr) {
|
1000
|
-
UNREACHABLE();
|
1001
|
-
}
|
1002
|
-
|
1003
|
-
|
1004
1349
|
void FullCodeGenerator::VisitConditional(Conditional* expr) {
|
1005
1350
|
Comment cmnt(masm_, "[ Conditional");
|
1006
1351
|
Label true_case, false_case, done;
|
1007
1352
|
VisitForControl(expr->condition(), &true_case, &false_case);
|
1008
1353
|
|
1009
1354
|
__ bind(&true_case);
|
1355
|
+
SetExpressionPosition(expr->then_expression(),
|
1356
|
+
expr->then_expression_position());
|
1010
1357
|
Visit(expr->then_expression());
|
1011
1358
|
// If control flow falls through Visit, jump to done.
|
1012
1359
|
if (context_ == Expression::kEffect || context_ == Expression::kValue) {
|
@@ -1014,6 +1361,8 @@ void FullCodeGenerator::VisitConditional(Conditional* expr) {
|
|
1014
1361
|
}
|
1015
1362
|
|
1016
1363
|
__ bind(&false_case);
|
1364
|
+
SetExpressionPosition(expr->else_expression(),
|
1365
|
+
expr->else_expression_position());
|
1017
1366
|
Visit(expr->else_expression());
|
1018
1367
|
// If control flow falls through Visit, merge it with true case here.
|
1019
1368
|
if (context_ == Expression::kEffect || context_ == Expression::kValue) {
|
@@ -1034,6 +1383,24 @@ void FullCodeGenerator::VisitLiteral(Literal* expr) {
|
|
1034
1383
|
}
|
1035
1384
|
|
1036
1385
|
|
1386
|
+
void FullCodeGenerator::VisitFunctionLiteral(FunctionLiteral* expr) {
|
1387
|
+
Comment cmnt(masm_, "[ FunctionLiteral");
|
1388
|
+
|
1389
|
+
// Build the function boilerplate and instantiate it.
|
1390
|
+
Handle<SharedFunctionInfo> function_info =
|
1391
|
+
Compiler::BuildFunctionInfo(expr, script(), this);
|
1392
|
+
if (HasStackOverflow()) return;
|
1393
|
+
EmitNewClosure(function_info);
|
1394
|
+
}
|
1395
|
+
|
1396
|
+
|
1397
|
+
void FullCodeGenerator::VisitSharedFunctionInfoLiteral(
|
1398
|
+
SharedFunctionInfoLiteral* expr) {
|
1399
|
+
Comment cmnt(masm_, "[ SharedFunctionInfoLiteral");
|
1400
|
+
EmitNewClosure(expr->shared_function_info());
|
1401
|
+
}
|
1402
|
+
|
1403
|
+
|
1037
1404
|
void FullCodeGenerator::VisitCatchExtensionObject(CatchExtensionObject* expr) {
|
1038
1405
|
// Call runtime routine to allocate the catch extension object and
|
1039
1406
|
// assign the exception value to the catch variable.
|