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
@@ -77,7 +77,7 @@ class StubCache : public AllStatic {
|
|
77
77
|
JSObject* receiver,
|
78
78
|
JSObject* holder);
|
79
79
|
|
80
|
-
static Object* ComputeLoadNormal(
|
80
|
+
static Object* ComputeLoadNormal();
|
81
81
|
|
82
82
|
|
83
83
|
static Object* ComputeLoadGlobal(String* name,
|
@@ -121,6 +121,8 @@ class StubCache : public AllStatic {
|
|
121
121
|
int field_index,
|
122
122
|
Map* transition = NULL);
|
123
123
|
|
124
|
+
static Object* ComputeStoreNormal();
|
125
|
+
|
124
126
|
static Object* ComputeStoreGlobal(String* name,
|
125
127
|
GlobalObject* receiver,
|
126
128
|
JSGlobalPropertyCell* cell);
|
@@ -142,6 +144,7 @@ class StubCache : public AllStatic {
|
|
142
144
|
|
143
145
|
static Object* ComputeCallField(int argc,
|
144
146
|
InLoopFlag in_loop,
|
147
|
+
Code::Kind,
|
145
148
|
String* name,
|
146
149
|
Object* object,
|
147
150
|
JSObject* holder,
|
@@ -149,6 +152,7 @@ class StubCache : public AllStatic {
|
|
149
152
|
|
150
153
|
static Object* ComputeCallConstant(int argc,
|
151
154
|
InLoopFlag in_loop,
|
155
|
+
Code::Kind,
|
152
156
|
String* name,
|
153
157
|
Object* object,
|
154
158
|
JSObject* holder,
|
@@ -156,16 +160,19 @@ class StubCache : public AllStatic {
|
|
156
160
|
|
157
161
|
static Object* ComputeCallNormal(int argc,
|
158
162
|
InLoopFlag in_loop,
|
163
|
+
Code::Kind,
|
159
164
|
String* name,
|
160
165
|
JSObject* receiver);
|
161
166
|
|
162
167
|
static Object* ComputeCallInterceptor(int argc,
|
168
|
+
Code::Kind,
|
163
169
|
String* name,
|
164
170
|
Object* object,
|
165
171
|
JSObject* holder);
|
166
172
|
|
167
173
|
static Object* ComputeCallGlobal(int argc,
|
168
174
|
InLoopFlag in_loop,
|
175
|
+
Code::Kind,
|
169
176
|
String* name,
|
170
177
|
JSObject* receiver,
|
171
178
|
GlobalObject* holder,
|
@@ -174,18 +181,33 @@ class StubCache : public AllStatic {
|
|
174
181
|
|
175
182
|
// ---
|
176
183
|
|
177
|
-
static Object* ComputeCallInitialize(int argc,
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
static Object*
|
184
|
+
static Object* ComputeCallInitialize(int argc,
|
185
|
+
InLoopFlag in_loop,
|
186
|
+
Code::Kind kind);
|
187
|
+
|
188
|
+
static Object* ComputeCallPreMonomorphic(int argc,
|
189
|
+
InLoopFlag in_loop,
|
190
|
+
Code::Kind kind);
|
191
|
+
|
192
|
+
static Object* ComputeCallNormal(int argc,
|
193
|
+
InLoopFlag in_loop,
|
194
|
+
Code::Kind kind);
|
195
|
+
|
196
|
+
static Object* ComputeCallMegamorphic(int argc,
|
197
|
+
InLoopFlag in_loop,
|
198
|
+
Code::Kind kind);
|
199
|
+
|
200
|
+
static Object* ComputeCallMiss(int argc, Code::Kind kind);
|
182
201
|
|
183
202
|
// Finds the Code object stored in the Heap::non_monomorphic_cache().
|
184
|
-
static Code* FindCallInitialize(int argc,
|
203
|
+
static Code* FindCallInitialize(int argc,
|
204
|
+
InLoopFlag in_loop,
|
205
|
+
Code::Kind kind);
|
185
206
|
|
186
207
|
#ifdef ENABLE_DEBUGGER_SUPPORT
|
187
|
-
static Object* ComputeCallDebugBreak(int argc);
|
188
|
-
|
208
|
+
static Object* ComputeCallDebugBreak(int argc, Code::Kind kind);
|
209
|
+
|
210
|
+
static Object* ComputeCallDebugPrepareStepIn(int argc, Code::Kind kind);
|
189
211
|
#endif
|
190
212
|
|
191
213
|
static Object* ComputeLazyCompile(int argc);
|
@@ -197,9 +219,6 @@ class StubCache : public AllStatic {
|
|
197
219
|
// Clear the lookup table (@ mark compact collection).
|
198
220
|
static void Clear();
|
199
221
|
|
200
|
-
// Functions for generating stubs at startup.
|
201
|
-
static void GenerateMiss(MacroAssembler* masm);
|
202
|
-
|
203
222
|
// Generate code for probing the stub cache table.
|
204
223
|
// If extra != no_reg it might be used as am extra scratch register.
|
205
224
|
static void GenerateProbe(MacroAssembler* masm,
|
@@ -318,7 +337,7 @@ Object* KeyedLoadPropertyWithInterceptor(Arguments args);
|
|
318
337
|
|
319
338
|
|
320
339
|
// Support function for computing call IC miss stubs.
|
321
|
-
Handle<Code> ComputeCallMiss(int argc);
|
340
|
+
Handle<Code> ComputeCallMiss(int argc, Code::Kind kind);
|
322
341
|
|
323
342
|
|
324
343
|
// The stub compiler compiles stubs for the stub cache.
|
@@ -349,6 +368,15 @@ class StubCompiler BASE_EMBEDDED {
|
|
349
368
|
int index,
|
350
369
|
Register prototype);
|
351
370
|
|
371
|
+
// Generates prototype loading code that uses the objects from the
|
372
|
+
// context we were in when this function was called. This ties the
|
373
|
+
// generated code to a particular context and so must not be used in
|
374
|
+
// cases where the generated code is not allowed to have references
|
375
|
+
// to objects from a context.
|
376
|
+
static void GenerateDirectLoadGlobalFunctionPrototype(MacroAssembler* masm,
|
377
|
+
int index,
|
378
|
+
Register prototype);
|
379
|
+
|
352
380
|
static void GenerateFastPropertyLoad(MacroAssembler* masm,
|
353
381
|
Register dst, Register src,
|
354
382
|
JSObject* holder, int index);
|
@@ -381,25 +409,40 @@ class StubCompiler BASE_EMBEDDED {
|
|
381
409
|
|
382
410
|
static void GenerateLoadMiss(MacroAssembler* masm, Code::Kind kind);
|
383
411
|
|
384
|
-
//
|
385
|
-
//
|
412
|
+
// Generates code that verifies that the property holder has not changed
|
413
|
+
// (checking maps of objects in the prototype chain for fast and global
|
414
|
+
// objects or doing negative lookup for slow objects, ensures that the
|
415
|
+
// property cells for global objects are still empty) and checks that the map
|
416
|
+
// of the holder has not changed. If necessary the function also generates
|
417
|
+
// code for security check in case of global object holders. Helps to make
|
418
|
+
// sure that the current IC is still valid.
|
419
|
+
//
|
420
|
+
// The scratch and holder registers are always clobbered, but the object
|
421
|
+
// register is only clobbered if it the same as the holder register. The
|
422
|
+
// function returns a register containing the holder - either object_reg or
|
423
|
+
// holder_reg.
|
424
|
+
// The function can optionally (when save_at_depth !=
|
425
|
+
// kInvalidProtoDepth) save the object at the given depth by moving
|
426
|
+
// it to [esp + kPointerSize].
|
386
427
|
|
387
428
|
Register CheckPrototypes(JSObject* object,
|
388
429
|
Register object_reg,
|
389
430
|
JSObject* holder,
|
390
431
|
Register holder_reg,
|
391
|
-
Register
|
432
|
+
Register scratch1,
|
433
|
+
Register scratch2,
|
392
434
|
String* name,
|
393
435
|
Label* miss) {
|
394
|
-
return CheckPrototypes(object, object_reg, holder, holder_reg,
|
395
|
-
name, kInvalidProtoDepth, miss);
|
436
|
+
return CheckPrototypes(object, object_reg, holder, holder_reg, scratch1,
|
437
|
+
scratch2, name, kInvalidProtoDepth, miss);
|
396
438
|
}
|
397
439
|
|
398
440
|
Register CheckPrototypes(JSObject* object,
|
399
441
|
Register object_reg,
|
400
442
|
JSObject* holder,
|
401
443
|
Register holder_reg,
|
402
|
-
Register
|
444
|
+
Register scratch1,
|
445
|
+
Register scratch2,
|
403
446
|
String* name,
|
404
447
|
int save_at_depth,
|
405
448
|
Label* miss);
|
@@ -416,6 +459,7 @@ class StubCompiler BASE_EMBEDDED {
|
|
416
459
|
Register receiver,
|
417
460
|
Register scratch1,
|
418
461
|
Register scratch2,
|
462
|
+
Register scratch3,
|
419
463
|
int index,
|
420
464
|
String* name,
|
421
465
|
Label* miss);
|
@@ -426,6 +470,7 @@ class StubCompiler BASE_EMBEDDED {
|
|
426
470
|
Register name_reg,
|
427
471
|
Register scratch1,
|
428
472
|
Register scratch2,
|
473
|
+
Register scratch3,
|
429
474
|
AccessorInfo* callback,
|
430
475
|
String* name,
|
431
476
|
Label* miss,
|
@@ -436,6 +481,7 @@ class StubCompiler BASE_EMBEDDED {
|
|
436
481
|
Register receiver,
|
437
482
|
Register scratch1,
|
438
483
|
Register scratch2,
|
484
|
+
Register scratch3,
|
439
485
|
Object* value,
|
440
486
|
String* name,
|
441
487
|
Label* miss);
|
@@ -447,6 +493,7 @@ class StubCompiler BASE_EMBEDDED {
|
|
447
493
|
Register name_reg,
|
448
494
|
Register scratch1,
|
449
495
|
Register scratch2,
|
496
|
+
Register scratch3,
|
450
497
|
String* name,
|
451
498
|
Label* miss);
|
452
499
|
|
@@ -559,10 +606,36 @@ class KeyedStoreStubCompiler: public StubCompiler {
|
|
559
606
|
};
|
560
607
|
|
561
608
|
|
609
|
+
// List of functions with custom constant call IC stubs.
|
610
|
+
//
|
611
|
+
// Installation of custom call generators for the selected builtins is
|
612
|
+
// handled by the bootstrapper.
|
613
|
+
//
|
614
|
+
// Each entry has a name of a global function (lowercased), a name of
|
615
|
+
// a builtin function on its instance prototype (the one the generator
|
616
|
+
// is set for), and a name of a generator itself (used to build ids
|
617
|
+
// and generator function names).
|
618
|
+
#define CUSTOM_CALL_IC_GENERATORS(V) \
|
619
|
+
V(array, push, ArrayPush) \
|
620
|
+
V(array, pop, ArrayPop) \
|
621
|
+
V(string, charCodeAt, StringCharCodeAt) \
|
622
|
+
V(string, charAt, StringCharAt)
|
623
|
+
|
624
|
+
|
562
625
|
class CallStubCompiler: public StubCompiler {
|
563
626
|
public:
|
564
|
-
|
565
|
-
|
627
|
+
enum {
|
628
|
+
#define DECLARE_CALL_GENERATOR_ID(ignored1, ignored2, name) \
|
629
|
+
k##name##CallGenerator,
|
630
|
+
CUSTOM_CALL_IC_GENERATORS(DECLARE_CALL_GENERATOR_ID)
|
631
|
+
#undef DECLARE_CALL_GENERATOR_ID
|
632
|
+
kNumCallGenerators
|
633
|
+
};
|
634
|
+
|
635
|
+
CallStubCompiler(int argc,
|
636
|
+
InLoopFlag in_loop,
|
637
|
+
Code::Kind kind,
|
638
|
+
InlineCacheHolderFlag cache_holder);
|
566
639
|
|
567
640
|
Object* CompileCallField(JSObject* object,
|
568
641
|
JSObject* holder,
|
@@ -582,25 +655,40 @@ class CallStubCompiler: public StubCompiler {
|
|
582
655
|
JSFunction* function,
|
583
656
|
String* name);
|
584
657
|
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
658
|
+
// Compiles a custom call constant IC using the generator with given id.
|
659
|
+
Object* CompileCustomCall(int generator_id,
|
660
|
+
Object* object,
|
661
|
+
JSObject* holder,
|
662
|
+
JSFunction* function,
|
663
|
+
String* name,
|
664
|
+
CheckType check);
|
590
665
|
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
666
|
+
#define DECLARE_CALL_GENERATOR(ignored1, ignored2, name) \
|
667
|
+
Object* Compile##name##Call(Object* object, \
|
668
|
+
JSObject* holder, \
|
669
|
+
JSFunction* function, \
|
670
|
+
String* fname, \
|
595
671
|
CheckType check);
|
672
|
+
CUSTOM_CALL_IC_GENERATORS(DECLARE_CALL_GENERATOR)
|
673
|
+
#undef DECLARE_CALL_GENERATOR
|
596
674
|
|
597
675
|
private:
|
598
676
|
const ParameterCount arguments_;
|
599
677
|
const InLoopFlag in_loop_;
|
678
|
+
const Code::Kind kind_;
|
679
|
+
const InlineCacheHolderFlag cache_holder_;
|
600
680
|
|
601
681
|
const ParameterCount& arguments() { return arguments_; }
|
602
682
|
|
603
683
|
Object* GetCode(PropertyType type, String* name);
|
684
|
+
|
685
|
+
// Convenience function. Calls GetCode above passing
|
686
|
+
// CONSTANT_FUNCTION type and the name of the given function.
|
687
|
+
Object* GetCode(JSFunction* function);
|
688
|
+
|
689
|
+
void GenerateNameCheck(String* name, Label* miss);
|
690
|
+
|
691
|
+
void GenerateMissBranch();
|
604
692
|
};
|
605
693
|
|
606
694
|
|
@@ -663,31 +751,6 @@ class CallOptimization BASE_EMBEDDED {
|
|
663
751
|
CallHandlerInfo* api_call_info_;
|
664
752
|
};
|
665
753
|
|
666
|
-
|
667
|
-
typedef Object* (*CustomCallGenerator)(CallStubCompiler* compiler,
|
668
|
-
Object* object,
|
669
|
-
JSObject* holder,
|
670
|
-
JSFunction* function,
|
671
|
-
String* name,
|
672
|
-
StubCompiler::CheckType check);
|
673
|
-
|
674
|
-
|
675
|
-
Object* CompileArrayPushCall(CallStubCompiler* compiler,
|
676
|
-
Object* object,
|
677
|
-
JSObject* holder,
|
678
|
-
JSFunction* function,
|
679
|
-
String* name,
|
680
|
-
StubCompiler::CheckType check);
|
681
|
-
|
682
|
-
|
683
|
-
Object* CompileArrayPopCall(CallStubCompiler* compiler,
|
684
|
-
Object* object,
|
685
|
-
JSObject* holder,
|
686
|
-
JSFunction* function,
|
687
|
-
String* name,
|
688
|
-
StubCompiler::CheckType check);
|
689
|
-
|
690
|
-
|
691
754
|
} } // namespace v8::internal
|
692
755
|
|
693
756
|
#endif // V8_STUB_CACHE_H_
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -44,6 +44,11 @@ Mutex* Top::break_access_ = OS::CreateMutex();
|
|
44
44
|
|
45
45
|
NoAllocationStringAllocator* preallocated_message_space = NULL;
|
46
46
|
|
47
|
+
bool capture_stack_trace_for_uncaught_exceptions = false;
|
48
|
+
int stack_trace_for_uncaught_exceptions_frame_limit = 0;
|
49
|
+
StackTrace::StackTraceOptions stack_trace_for_uncaught_exceptions_options =
|
50
|
+
StackTrace::kOverview;
|
51
|
+
|
47
52
|
Address top_addresses[] = {
|
48
53
|
#define C(name) reinterpret_cast<Address>(Top::name()),
|
49
54
|
TOP_ADDRESS_LIST(C)
|
@@ -337,7 +342,7 @@ static int stack_trace_nesting_level = 0;
|
|
337
342
|
static StringStream* incomplete_message = NULL;
|
338
343
|
|
339
344
|
|
340
|
-
Handle<String> Top::
|
345
|
+
Handle<String> Top::StackTraceString() {
|
341
346
|
if (stack_trace_nesting_level == 0) {
|
342
347
|
stack_trace_nesting_level++;
|
343
348
|
HeapStringAllocator allocator;
|
@@ -365,6 +370,87 @@ Handle<String> Top::StackTrace() {
|
|
365
370
|
}
|
366
371
|
|
367
372
|
|
373
|
+
Handle<JSArray> Top::CaptureCurrentStackTrace(
|
374
|
+
int frame_limit, StackTrace::StackTraceOptions options) {
|
375
|
+
// Ensure no negative values.
|
376
|
+
int limit = Max(frame_limit, 0);
|
377
|
+
Handle<JSArray> stack_trace = Factory::NewJSArray(frame_limit);
|
378
|
+
|
379
|
+
Handle<String> column_key = Factory::LookupAsciiSymbol("column");
|
380
|
+
Handle<String> line_key = Factory::LookupAsciiSymbol("lineNumber");
|
381
|
+
Handle<String> script_key = Factory::LookupAsciiSymbol("scriptName");
|
382
|
+
Handle<String> function_key = Factory::LookupAsciiSymbol("functionName");
|
383
|
+
Handle<String> eval_key = Factory::LookupAsciiSymbol("isEval");
|
384
|
+
Handle<String> constructor_key = Factory::LookupAsciiSymbol("isConstructor");
|
385
|
+
|
386
|
+
StackTraceFrameIterator it;
|
387
|
+
int frames_seen = 0;
|
388
|
+
while (!it.done() && (frames_seen < limit)) {
|
389
|
+
// Create a JSObject to hold the information for the StackFrame.
|
390
|
+
Handle<JSObject> stackFrame = Factory::NewJSObject(object_function());
|
391
|
+
|
392
|
+
JavaScriptFrame* frame = it.frame();
|
393
|
+
JSFunction* fun(JSFunction::cast(frame->function()));
|
394
|
+
Script* script = Script::cast(fun->shared()->script());
|
395
|
+
|
396
|
+
if (options & StackTrace::kLineNumber) {
|
397
|
+
int script_line_offset = script->line_offset()->value();
|
398
|
+
int position = frame->code()->SourcePosition(frame->pc());
|
399
|
+
int line_number = GetScriptLineNumber(Handle<Script>(script), position);
|
400
|
+
// line_number is already shifted by the script_line_offset.
|
401
|
+
int relative_line_number = line_number - script_line_offset;
|
402
|
+
if (options & StackTrace::kColumnOffset && relative_line_number >= 0) {
|
403
|
+
Handle<FixedArray> line_ends(FixedArray::cast(script->line_ends()));
|
404
|
+
int start = (relative_line_number == 0) ? 0 :
|
405
|
+
Smi::cast(line_ends->get(relative_line_number - 1))->value() + 1;
|
406
|
+
int column_offset = position - start;
|
407
|
+
if (relative_line_number == 0) {
|
408
|
+
// For the case where the code is on the same line as the script tag.
|
409
|
+
column_offset += script->column_offset()->value();
|
410
|
+
}
|
411
|
+
SetProperty(stackFrame, column_key,
|
412
|
+
Handle<Smi>(Smi::FromInt(column_offset + 1)), NONE);
|
413
|
+
}
|
414
|
+
SetProperty(stackFrame, line_key,
|
415
|
+
Handle<Smi>(Smi::FromInt(line_number + 1)), NONE);
|
416
|
+
}
|
417
|
+
|
418
|
+
if (options & StackTrace::kScriptName) {
|
419
|
+
Handle<Object> script_name(script->name());
|
420
|
+
SetProperty(stackFrame, script_key, script_name, NONE);
|
421
|
+
}
|
422
|
+
|
423
|
+
if (options & StackTrace::kFunctionName) {
|
424
|
+
Handle<Object> fun_name(fun->shared()->name());
|
425
|
+
if (fun_name->ToBoolean()->IsFalse()) {
|
426
|
+
fun_name = Handle<Object>(fun->shared()->inferred_name());
|
427
|
+
}
|
428
|
+
SetProperty(stackFrame, function_key, fun_name, NONE);
|
429
|
+
}
|
430
|
+
|
431
|
+
if (options & StackTrace::kIsEval) {
|
432
|
+
int type = Smi::cast(script->compilation_type())->value();
|
433
|
+
Handle<Object> is_eval = (type == Script::COMPILATION_TYPE_EVAL) ?
|
434
|
+
Factory::true_value() : Factory::false_value();
|
435
|
+
SetProperty(stackFrame, eval_key, is_eval, NONE);
|
436
|
+
}
|
437
|
+
|
438
|
+
if (options & StackTrace::kIsConstructor) {
|
439
|
+
Handle<Object> is_constructor = (frame->IsConstructor()) ?
|
440
|
+
Factory::true_value() : Factory::false_value();
|
441
|
+
SetProperty(stackFrame, constructor_key, is_constructor, NONE);
|
442
|
+
}
|
443
|
+
|
444
|
+
FixedArray::cast(stack_trace->elements())->set(frames_seen, *stackFrame);
|
445
|
+
frames_seen++;
|
446
|
+
it.Advance();
|
447
|
+
}
|
448
|
+
|
449
|
+
stack_trace->set_length(Smi::FromInt(frames_seen));
|
450
|
+
return stack_trace;
|
451
|
+
}
|
452
|
+
|
453
|
+
|
368
454
|
void Top::PrintStack() {
|
369
455
|
if (stack_trace_nesting_level == 0) {
|
370
456
|
stack_trace_nesting_level++;
|
@@ -599,10 +685,7 @@ Failure* Top::StackOverflow() {
|
|
599
685
|
// TODO(1240995): To avoid having to call JavaScript code to compute
|
600
686
|
// the message for stack overflow exceptions which is very likely to
|
601
687
|
// double fault with another stack overflow exception, we use a
|
602
|
-
// precomputed message.
|
603
|
-
// doesn't use ReportUncaughtException to determine the location
|
604
|
-
// from where the exception occurred. It should probably be
|
605
|
-
// reworked.
|
688
|
+
// precomputed message.
|
606
689
|
DoThrow(*exception, NULL, kStackOverflowMessage);
|
607
690
|
return Failure::Exception();
|
608
691
|
}
|
@@ -696,25 +779,6 @@ void Top::ComputeLocation(MessageLocation* target) {
|
|
696
779
|
}
|
697
780
|
|
698
781
|
|
699
|
-
void Top::ReportUncaughtException(Handle<Object> exception,
|
700
|
-
MessageLocation* location,
|
701
|
-
Handle<String> stack_trace) {
|
702
|
-
Handle<Object> message;
|
703
|
-
if (!Bootstrapper::IsActive()) {
|
704
|
-
// It's not safe to try to make message objects while the bootstrapper
|
705
|
-
// is active since the infrastructure may not have been properly
|
706
|
-
// initialized.
|
707
|
-
message =
|
708
|
-
MessageHandler::MakeMessageObject("uncaught_exception",
|
709
|
-
location,
|
710
|
-
HandleVector<Object>(&exception, 1),
|
711
|
-
stack_trace);
|
712
|
-
}
|
713
|
-
// Report the uncaught exception.
|
714
|
-
MessageHandler::ReportMessage(location, message);
|
715
|
-
}
|
716
|
-
|
717
|
-
|
718
782
|
bool Top::ShouldReturnException(bool* is_caught_externally,
|
719
783
|
bool catchable_by_javascript) {
|
720
784
|
// Find the top-most try-catch handler.
|
@@ -786,9 +850,16 @@ void Top::DoThrow(Object* exception,
|
|
786
850
|
// traces while the bootstrapper is active since the infrastructure
|
787
851
|
// may not have been properly initialized.
|
788
852
|
Handle<String> stack_trace;
|
789
|
-
if (FLAG_trace_exception) stack_trace =
|
853
|
+
if (FLAG_trace_exception) stack_trace = StackTraceString();
|
854
|
+
Handle<JSArray> stack_trace_object;
|
855
|
+
if (report_exception && capture_stack_trace_for_uncaught_exceptions) {
|
856
|
+
stack_trace_object = Top::CaptureCurrentStackTrace(
|
857
|
+
stack_trace_for_uncaught_exceptions_frame_limit,
|
858
|
+
stack_trace_for_uncaught_exceptions_options);
|
859
|
+
}
|
790
860
|
message_obj = MessageHandler::MakeMessageObject("uncaught_exception",
|
791
|
-
location, HandleVector<Object>(&exception_handle, 1), stack_trace
|
861
|
+
location, HandleVector<Object>(&exception_handle, 1), stack_trace,
|
862
|
+
stack_trace_object);
|
792
863
|
}
|
793
864
|
}
|
794
865
|
|
@@ -915,6 +986,16 @@ bool Top::OptionalRescheduleException(bool is_bottom_call) {
|
|
915
986
|
}
|
916
987
|
|
917
988
|
|
989
|
+
void Top::SetCaptureStackTraceForUncaughtExceptions(
|
990
|
+
bool capture,
|
991
|
+
int frame_limit,
|
992
|
+
StackTrace::StackTraceOptions options) {
|
993
|
+
capture_stack_trace_for_uncaught_exceptions = capture;
|
994
|
+
stack_trace_for_uncaught_exceptions_frame_limit = frame_limit;
|
995
|
+
stack_trace_for_uncaught_exceptions_options = options;
|
996
|
+
}
|
997
|
+
|
998
|
+
|
918
999
|
bool Top::is_out_of_memory() {
|
919
1000
|
if (has_pending_exception()) {
|
920
1001
|
Object* e = pending_exception();
|