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
@@ -109,7 +109,7 @@ class V8EXPORT CpuProfileNode {
|
|
109
109
|
/** Retrieves a child node by index. */
|
110
110
|
const CpuProfileNode* GetChild(int index) const;
|
111
111
|
|
112
|
-
static const int kNoLineNumberInfo =
|
112
|
+
static const int kNoLineNumberInfo = Message::kNoLineNumberInfo;
|
113
113
|
};
|
114
114
|
|
115
115
|
|
@@ -139,6 +139,15 @@ class V8EXPORT CpuProfile {
|
|
139
139
|
*/
|
140
140
|
class V8EXPORT CpuProfiler {
|
141
141
|
public:
|
142
|
+
/**
|
143
|
+
* A note on security tokens usage. As scripts from different
|
144
|
+
* origins can run inside a single V8 instance, it is possible to
|
145
|
+
* have functions from different security contexts intermixed in a
|
146
|
+
* single CPU profile. To avoid exposing function names belonging to
|
147
|
+
* other contexts, filtering by security token is performed while
|
148
|
+
* obtaining profiling results.
|
149
|
+
*/
|
150
|
+
|
142
151
|
/**
|
143
152
|
* Returns the number of profiles collected (doesn't include
|
144
153
|
* profiles that are being collected at the moment of call.)
|
@@ -146,16 +155,22 @@ class V8EXPORT CpuProfiler {
|
|
146
155
|
static int GetProfilesCount();
|
147
156
|
|
148
157
|
/** Returns a profile by index. */
|
149
|
-
static const CpuProfile* GetProfile(
|
158
|
+
static const CpuProfile* GetProfile(
|
159
|
+
int index,
|
160
|
+
Handle<Value> security_token = Handle<Value>());
|
150
161
|
|
151
162
|
/** Returns a profile by uid. */
|
152
|
-
static const CpuProfile* FindProfile(
|
163
|
+
static const CpuProfile* FindProfile(
|
164
|
+
unsigned uid,
|
165
|
+
Handle<Value> security_token = Handle<Value>());
|
153
166
|
|
154
167
|
/**
|
155
168
|
* Starts collecting CPU profile. Title may be an empty string. It
|
156
169
|
* is allowed to have several profiles being collected at
|
157
170
|
* once. Attempts to start collecting several profiles with the same
|
158
|
-
* title are silently ignored.
|
171
|
+
* title are silently ignored. While collecting a profile, functions
|
172
|
+
* from all security contexts are included in it. The token-based
|
173
|
+
* filtering is only performed when querying for a profile.
|
159
174
|
*/
|
160
175
|
static void StartProfiling(Handle<String> title);
|
161
176
|
|
@@ -163,7 +178,169 @@ class V8EXPORT CpuProfiler {
|
|
163
178
|
* Stops collecting CPU profile with a given title and returns it.
|
164
179
|
* If the title given is empty, finishes the last profile started.
|
165
180
|
*/
|
166
|
-
static const CpuProfile* StopProfiling(
|
181
|
+
static const CpuProfile* StopProfiling(
|
182
|
+
Handle<String> title,
|
183
|
+
Handle<Value> security_token = Handle<Value>());
|
184
|
+
};
|
185
|
+
|
186
|
+
|
187
|
+
class HeapGraphNode;
|
188
|
+
|
189
|
+
|
190
|
+
/**
|
191
|
+
* HeapSnapshotEdge represents a directed connection between heap
|
192
|
+
* graph nodes: from retaners to retained nodes.
|
193
|
+
*/
|
194
|
+
class V8EXPORT HeapGraphEdge {
|
195
|
+
public:
|
196
|
+
enum Type {
|
197
|
+
CONTEXT_VARIABLE = 0, // A variable from a function context.
|
198
|
+
ELEMENT = 1, // An element of an array.
|
199
|
+
PROPERTY = 2, // A named object property.
|
200
|
+
INTERNAL = 3 // A link that can't be accessed from JS,
|
201
|
+
// thus, its name isn't a real property name.
|
202
|
+
};
|
203
|
+
|
204
|
+
/** Returns edge type (see HeapGraphEdge::Type). */
|
205
|
+
Type GetType() const;
|
206
|
+
|
207
|
+
/**
|
208
|
+
* Returns edge name. This can be a variable name, an element index, or
|
209
|
+
* a property name.
|
210
|
+
*/
|
211
|
+
Handle<Value> GetName() const;
|
212
|
+
|
213
|
+
/** Returns origin node. */
|
214
|
+
const HeapGraphNode* GetFromNode() const;
|
215
|
+
|
216
|
+
/** Returns destination node. */
|
217
|
+
const HeapGraphNode* GetToNode() const;
|
218
|
+
};
|
219
|
+
|
220
|
+
|
221
|
+
class V8EXPORT HeapGraphPath {
|
222
|
+
public:
|
223
|
+
/** Returns the number of edges in the path. */
|
224
|
+
int GetEdgesCount() const;
|
225
|
+
|
226
|
+
/** Returns an edge from the path. */
|
227
|
+
const HeapGraphEdge* GetEdge(int index) const;
|
228
|
+
|
229
|
+
/** Returns origin node. */
|
230
|
+
const HeapGraphNode* GetFromNode() const;
|
231
|
+
|
232
|
+
/** Returns destination node. */
|
233
|
+
const HeapGraphNode* GetToNode() const;
|
234
|
+
};
|
235
|
+
|
236
|
+
|
237
|
+
/**
|
238
|
+
* HeapGraphNode represents a node in a heap graph.
|
239
|
+
*/
|
240
|
+
class V8EXPORT HeapGraphNode {
|
241
|
+
public:
|
242
|
+
enum Type {
|
243
|
+
INTERNAL = 0, // Internal node, a virtual one, for housekeeping.
|
244
|
+
ARRAY = 1, // An array of elements.
|
245
|
+
STRING = 2, // A string.
|
246
|
+
OBJECT = 3, // A JS object (except for arrays and strings).
|
247
|
+
CODE = 4, // Compiled code.
|
248
|
+
CLOSURE = 5 // Function closure.
|
249
|
+
};
|
250
|
+
|
251
|
+
/** Returns node type (see HeapGraphNode::Type). */
|
252
|
+
Type GetType() const;
|
253
|
+
|
254
|
+
/**
|
255
|
+
* Returns node name. Depending on node's type this can be the name
|
256
|
+
* of the constructor (for objects), the name of the function (for
|
257
|
+
* closures), string value, or an empty string (for compiled code).
|
258
|
+
*/
|
259
|
+
Handle<String> GetName() const;
|
260
|
+
|
261
|
+
/**
|
262
|
+
* Returns node id. For the same heap object, the id remains the same
|
263
|
+
* across all snapshots.
|
264
|
+
*/
|
265
|
+
uint64_t GetId() const;
|
266
|
+
|
267
|
+
/** Returns node's own size, in bytes. */
|
268
|
+
int GetSelfSize() const;
|
269
|
+
|
270
|
+
/** Returns node's network (self + reachable nodes) size, in bytes. */
|
271
|
+
int GetTotalSize() const;
|
272
|
+
|
273
|
+
/**
|
274
|
+
* Returns node's private size, in bytes. That is, the size of memory
|
275
|
+
* that will be reclaimed having this node collected.
|
276
|
+
*/
|
277
|
+
int GetPrivateSize() const;
|
278
|
+
|
279
|
+
/** Returns child nodes count of the node. */
|
280
|
+
int GetChildrenCount() const;
|
281
|
+
|
282
|
+
/** Retrieves a child by index. */
|
283
|
+
const HeapGraphEdge* GetChild(int index) const;
|
284
|
+
|
285
|
+
/** Returns retainer nodes count of the node. */
|
286
|
+
int GetRetainersCount() const;
|
287
|
+
|
288
|
+
/** Returns a retainer by index. */
|
289
|
+
const HeapGraphEdge* GetRetainer(int index) const;
|
290
|
+
|
291
|
+
/** Returns the number of simple retaining paths from the root to the node. */
|
292
|
+
int GetRetainingPathsCount() const;
|
293
|
+
|
294
|
+
/** Returns a retaining path by index. */
|
295
|
+
const HeapGraphPath* GetRetainingPath(int index) const;
|
296
|
+
};
|
297
|
+
|
298
|
+
|
299
|
+
class V8EXPORT HeapSnapshotsDiff {
|
300
|
+
public:
|
301
|
+
/** Returns the root node for added nodes. */
|
302
|
+
const HeapGraphNode* GetAdditionsRoot() const;
|
303
|
+
|
304
|
+
/** Returns the root node for deleted nodes. */
|
305
|
+
const HeapGraphNode* GetDeletionsRoot() const;
|
306
|
+
};
|
307
|
+
|
308
|
+
|
309
|
+
/**
|
310
|
+
* HeapSnapshots record the state of the JS heap at some moment.
|
311
|
+
*/
|
312
|
+
class V8EXPORT HeapSnapshot {
|
313
|
+
public:
|
314
|
+
/** Returns heap snapshot UID (assigned by the profiler.) */
|
315
|
+
unsigned GetUid() const;
|
316
|
+
|
317
|
+
/** Returns heap snapshot title. */
|
318
|
+
Handle<String> GetTitle() const;
|
319
|
+
|
320
|
+
/** Returns the root node of the heap graph. */
|
321
|
+
const HeapGraphNode* GetRoot() const;
|
322
|
+
|
323
|
+
/** Returns a diff between this snapshot and another one. */
|
324
|
+
const HeapSnapshotsDiff* CompareWith(const HeapSnapshot* snapshot) const;
|
325
|
+
};
|
326
|
+
|
327
|
+
|
328
|
+
/**
|
329
|
+
* Interface for controlling heap profiling.
|
330
|
+
*/
|
331
|
+
class V8EXPORT HeapProfiler {
|
332
|
+
public:
|
333
|
+
/** Returns the number of snapshots taken. */
|
334
|
+
static int GetSnapshotsCount();
|
335
|
+
|
336
|
+
/** Returns a snapshot by index. */
|
337
|
+
static const HeapSnapshot* GetSnapshot(int index);
|
338
|
+
|
339
|
+
/** Returns a profile by uid. */
|
340
|
+
static const HeapSnapshot* FindSnapshot(unsigned uid);
|
341
|
+
|
342
|
+
/** Takes a heap snapshot and returns it. Title may be an empty string. */
|
343
|
+
static const HeapSnapshot* TakeSnapshot(Handle<String> title);
|
167
344
|
};
|
168
345
|
|
169
346
|
|
@@ -61,10 +61,6 @@ typedef unsigned __int64 uint64_t;
|
|
61
61
|
// the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8
|
62
62
|
// static library or building a program which uses the V8 static library neither
|
63
63
|
// BUILDING_V8_SHARED nor USING_V8_SHARED should be defined.
|
64
|
-
// The reason for having both V8EXPORT and V8EXPORT_INLINE is that classes which
|
65
|
-
// have their code inside this header file need to have __declspec(dllexport)
|
66
|
-
// when building the DLL but cannot have __declspec(dllimport) when building
|
67
|
-
// a program which uses the DLL.
|
68
64
|
#if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
|
69
65
|
#error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\
|
70
66
|
build configuration to ensure that at most one of these is set
|
@@ -72,13 +68,10 @@ typedef unsigned __int64 uint64_t;
|
|
72
68
|
|
73
69
|
#ifdef BUILDING_V8_SHARED
|
74
70
|
#define V8EXPORT __declspec(dllexport)
|
75
|
-
#define V8EXPORT_INLINE __declspec(dllexport)
|
76
71
|
#elif USING_V8_SHARED
|
77
72
|
#define V8EXPORT __declspec(dllimport)
|
78
|
-
#define V8EXPORT_INLINE
|
79
73
|
#else
|
80
74
|
#define V8EXPORT
|
81
|
-
#define V8EXPORT_INLINE
|
82
75
|
#endif // BUILDING_V8_SHARED
|
83
76
|
|
84
77
|
#else // _WIN32
|
@@ -90,10 +83,8 @@ typedef unsigned __int64 uint64_t;
|
|
90
83
|
// export symbols when we are building a static library.
|
91
84
|
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(V8_SHARED)
|
92
85
|
#define V8EXPORT __attribute__ ((visibility("default")))
|
93
|
-
#define V8EXPORT_INLINE __attribute__ ((visibility("default")))
|
94
86
|
#else // defined(__GNUC__) && (__GNUC__ >= 4)
|
95
87
|
#define V8EXPORT
|
96
|
-
#define V8EXPORT_INLINE
|
97
88
|
#endif // defined(__GNUC__) && (__GNUC__ >= 4)
|
98
89
|
|
99
90
|
#endif // _WIN32
|
@@ -126,11 +117,15 @@ template <class T> class Persistent;
|
|
126
117
|
class FunctionTemplate;
|
127
118
|
class ObjectTemplate;
|
128
119
|
class Data;
|
120
|
+
class AccessorInfo;
|
121
|
+
class StackTrace;
|
122
|
+
class StackFrame;
|
129
123
|
|
130
124
|
namespace internal {
|
131
125
|
|
132
126
|
class Arguments;
|
133
127
|
class Object;
|
128
|
+
class Heap;
|
134
129
|
class Top;
|
135
130
|
|
136
131
|
}
|
@@ -142,6 +137,9 @@ class Top;
|
|
142
137
|
/**
|
143
138
|
* A weak reference callback function.
|
144
139
|
*
|
140
|
+
* This callback should either explicitly invoke Dispose on |object| if
|
141
|
+
* V8 wrapper is not needed anymore, or 'revive' it by invocation of MakeWeak.
|
142
|
+
*
|
145
143
|
* \param object the weak global object to be reclaimed by the garbage collector
|
146
144
|
* \param parameter the value passed in when making the weak global object
|
147
145
|
*/
|
@@ -151,9 +149,9 @@ typedef void (*WeakReferenceCallback)(Persistent<Value> object,
|
|
151
149
|
|
152
150
|
// --- H a n d l e s ---
|
153
151
|
|
154
|
-
#define TYPE_CHECK(T, S)
|
155
|
-
while (false) {
|
156
|
-
*(static_cast<T
|
152
|
+
#define TYPE_CHECK(T, S) \
|
153
|
+
while (false) { \
|
154
|
+
*(static_cast<T* volatile*>(0)) = static_cast<S*>(0); \
|
157
155
|
}
|
158
156
|
|
159
157
|
/**
|
@@ -181,7 +179,7 @@ typedef void (*WeakReferenceCallback)(Persistent<Value> object,
|
|
181
179
|
* behind the scenes and the same rules apply to these values as to
|
182
180
|
* their handles.
|
183
181
|
*/
|
184
|
-
template <class T> class
|
182
|
+
template <class T> class Handle {
|
185
183
|
public:
|
186
184
|
|
187
185
|
/**
|
@@ -192,7 +190,7 @@ template <class T> class V8EXPORT_INLINE Handle {
|
|
192
190
|
/**
|
193
191
|
* Creates a new handle for the specified value.
|
194
192
|
*/
|
195
|
-
explicit Handle(T* val) : val_(val) { }
|
193
|
+
inline explicit Handle(T* val) : val_(val) { }
|
196
194
|
|
197
195
|
/**
|
198
196
|
* Creates a handle for the contents of the specified handle. This
|
@@ -217,16 +215,16 @@ template <class T> class V8EXPORT_INLINE Handle {
|
|
217
215
|
/**
|
218
216
|
* Returns true if the handle is empty.
|
219
217
|
*/
|
220
|
-
bool IsEmpty() const { return val_ == 0; }
|
218
|
+
inline bool IsEmpty() const { return val_ == 0; }
|
221
219
|
|
222
|
-
T* operator->() const { return val_; }
|
220
|
+
inline T* operator->() const { return val_; }
|
223
221
|
|
224
|
-
T* operator*() const { return val_; }
|
222
|
+
inline T* operator*() const { return val_; }
|
225
223
|
|
226
224
|
/**
|
227
225
|
* Sets the handle to be empty. IsEmpty() will then return true.
|
228
226
|
*/
|
229
|
-
void Clear() { this->val_ = 0; }
|
227
|
+
inline void Clear() { this->val_ = 0; }
|
230
228
|
|
231
229
|
/**
|
232
230
|
* Checks whether two handles are the same.
|
@@ -234,7 +232,7 @@ template <class T> class V8EXPORT_INLINE Handle {
|
|
234
232
|
* to which they refer are identical.
|
235
233
|
* The handles' references are not checked.
|
236
234
|
*/
|
237
|
-
template <class S> bool operator==(Handle<S> that) const {
|
235
|
+
template <class S> inline bool operator==(Handle<S> that) const {
|
238
236
|
internal::Object** a = reinterpret_cast<internal::Object**>(**this);
|
239
237
|
internal::Object** b = reinterpret_cast<internal::Object**>(*that);
|
240
238
|
if (a == 0) return b == 0;
|
@@ -248,7 +246,7 @@ template <class T> class V8EXPORT_INLINE Handle {
|
|
248
246
|
* the objects to which they refer are different.
|
249
247
|
* The handles' references are not checked.
|
250
248
|
*/
|
251
|
-
template <class S> bool operator!=(Handle<S> that) const {
|
249
|
+
template <class S> inline bool operator!=(Handle<S> that) const {
|
252
250
|
return !operator==(that);
|
253
251
|
}
|
254
252
|
|
@@ -277,7 +275,7 @@ template <class T> class V8EXPORT_INLINE Handle {
|
|
277
275
|
* handle scope are destroyed when the handle scope is destroyed. Hence it
|
278
276
|
* is not necessary to explicitly deallocate local handles.
|
279
277
|
*/
|
280
|
-
template <class T> class
|
278
|
+
template <class T> class Local : public Handle<T> {
|
281
279
|
public:
|
282
280
|
inline Local();
|
283
281
|
template <class S> inline Local(Local<S> that)
|
@@ -328,7 +326,7 @@ template <class T> class V8EXPORT_INLINE Local : public Handle<T> {
|
|
328
326
|
* different storage cells but rather two references to the same
|
329
327
|
* storage cell.
|
330
328
|
*/
|
331
|
-
template <class T> class
|
329
|
+
template <class T> class Persistent : public Handle<T> {
|
332
330
|
public:
|
333
331
|
|
334
332
|
/**
|
@@ -510,11 +508,48 @@ class V8EXPORT Data {
|
|
510
508
|
class V8EXPORT ScriptData { // NOLINT
|
511
509
|
public:
|
512
510
|
virtual ~ScriptData() { }
|
511
|
+
|
512
|
+
/**
|
513
|
+
* Pre-compiles the specified script (context-independent).
|
514
|
+
*
|
515
|
+
* \param input Pointer to UTF-8 script source code.
|
516
|
+
* \param length Length of UTF-8 script source code.
|
517
|
+
*/
|
513
518
|
static ScriptData* PreCompile(const char* input, int length);
|
514
|
-
static ScriptData* New(unsigned* data, int length);
|
515
519
|
|
520
|
+
/**
|
521
|
+
* Pre-compiles the specified script (context-independent).
|
522
|
+
*
|
523
|
+
* NOTE: Pre-compilation using this method cannot happen on another thread
|
524
|
+
* without using Lockers.
|
525
|
+
*
|
526
|
+
* \param source Script source code.
|
527
|
+
*/
|
528
|
+
static ScriptData* PreCompile(Handle<String> source);
|
529
|
+
|
530
|
+
/**
|
531
|
+
* Load previous pre-compilation data.
|
532
|
+
*
|
533
|
+
* \param data Pointer to data returned by a call to Data() of a previous
|
534
|
+
* ScriptData. Ownership is not transferred.
|
535
|
+
* \param length Length of data.
|
536
|
+
*/
|
537
|
+
static ScriptData* New(const char* data, int length);
|
538
|
+
|
539
|
+
/**
|
540
|
+
* Returns the length of Data().
|
541
|
+
*/
|
516
542
|
virtual int Length() = 0;
|
517
|
-
|
543
|
+
|
544
|
+
/**
|
545
|
+
* Returns a serialized representation of this ScriptData that can later be
|
546
|
+
* passed to New(). NOTE: Serialized data is platform-dependent.
|
547
|
+
*/
|
548
|
+
virtual const char* Data() = 0;
|
549
|
+
|
550
|
+
/**
|
551
|
+
* Returns true if the source code could not be parsed.
|
552
|
+
*/
|
518
553
|
virtual bool HasError() = 0;
|
519
554
|
};
|
520
555
|
|
@@ -522,11 +557,12 @@ class V8EXPORT ScriptData { // NOLINT
|
|
522
557
|
/**
|
523
558
|
* The origin, within a file, of a script.
|
524
559
|
*/
|
525
|
-
class
|
560
|
+
class ScriptOrigin {
|
526
561
|
public:
|
527
|
-
ScriptOrigin(
|
528
|
-
|
529
|
-
|
562
|
+
inline ScriptOrigin(
|
563
|
+
Handle<Value> resource_name,
|
564
|
+
Handle<Integer> resource_line_offset = Handle<Integer>(),
|
565
|
+
Handle<Integer> resource_column_offset = Handle<Integer>())
|
530
566
|
: resource_name_(resource_name),
|
531
567
|
resource_line_offset_(resource_line_offset),
|
532
568
|
resource_column_offset_(resource_column_offset) { }
|
@@ -660,6 +696,13 @@ class V8EXPORT Message {
|
|
660
696
|
*/
|
661
697
|
Handle<Value> GetScriptData() const;
|
662
698
|
|
699
|
+
/**
|
700
|
+
* Exception stack trace. By default stack traces are not captured for
|
701
|
+
* uncaught exceptions. SetCaptureStackTraceForUncaughtExceptions allows
|
702
|
+
* to change this option.
|
703
|
+
*/
|
704
|
+
Handle<StackTrace> GetStackTrace() const;
|
705
|
+
|
663
706
|
/**
|
664
707
|
* Returns the number, 1-based, of the line where the error occurred.
|
665
708
|
*/
|
@@ -691,6 +734,106 @@ class V8EXPORT Message {
|
|
691
734
|
|
692
735
|
// TODO(1245381): Print to a string instead of on a FILE.
|
693
736
|
static void PrintCurrentStackTrace(FILE* out);
|
737
|
+
|
738
|
+
static const int kNoLineNumberInfo = 0;
|
739
|
+
static const int kNoColumnInfo = 0;
|
740
|
+
};
|
741
|
+
|
742
|
+
|
743
|
+
/**
|
744
|
+
* Representation of a JavaScript stack trace. The information collected is a
|
745
|
+
* snapshot of the execution stack and the information remains valid after
|
746
|
+
* execution continues.
|
747
|
+
*/
|
748
|
+
class V8EXPORT StackTrace {
|
749
|
+
public:
|
750
|
+
/**
|
751
|
+
* Flags that determine what information is placed captured for each
|
752
|
+
* StackFrame when grabbing the current stack trace.
|
753
|
+
*/
|
754
|
+
enum StackTraceOptions {
|
755
|
+
kLineNumber = 1,
|
756
|
+
kColumnOffset = 1 << 1 | kLineNumber,
|
757
|
+
kScriptName = 1 << 2,
|
758
|
+
kFunctionName = 1 << 3,
|
759
|
+
kIsEval = 1 << 4,
|
760
|
+
kIsConstructor = 1 << 5,
|
761
|
+
kOverview = kLineNumber | kColumnOffset | kScriptName | kFunctionName,
|
762
|
+
kDetailed = kOverview | kIsEval | kIsConstructor
|
763
|
+
};
|
764
|
+
|
765
|
+
/**
|
766
|
+
* Returns a StackFrame at a particular index.
|
767
|
+
*/
|
768
|
+
Local<StackFrame> GetFrame(uint32_t index) const;
|
769
|
+
|
770
|
+
/**
|
771
|
+
* Returns the number of StackFrames.
|
772
|
+
*/
|
773
|
+
int GetFrameCount() const;
|
774
|
+
|
775
|
+
/**
|
776
|
+
* Returns StackTrace as a v8::Array that contains StackFrame objects.
|
777
|
+
*/
|
778
|
+
Local<Array> AsArray();
|
779
|
+
|
780
|
+
/**
|
781
|
+
* Grab a snapshot of the the current JavaScript execution stack.
|
782
|
+
*
|
783
|
+
* \param frame_limit The maximum number of stack frames we want to capture.
|
784
|
+
* \param options Enumerates the set of things we will capture for each
|
785
|
+
* StackFrame.
|
786
|
+
*/
|
787
|
+
static Local<StackTrace> CurrentStackTrace(
|
788
|
+
int frame_limit,
|
789
|
+
StackTraceOptions options = kOverview);
|
790
|
+
};
|
791
|
+
|
792
|
+
|
793
|
+
/**
|
794
|
+
* A single JavaScript stack frame.
|
795
|
+
*/
|
796
|
+
class V8EXPORT StackFrame {
|
797
|
+
public:
|
798
|
+
/**
|
799
|
+
* Returns the number, 1-based, of the line for the associate function call.
|
800
|
+
* This method will return Message::kNoLineNumberInfo if it is unable to
|
801
|
+
* retrieve the line number, or if kLineNumber was not passed as an option
|
802
|
+
* when capturing the StackTrace.
|
803
|
+
*/
|
804
|
+
int GetLineNumber() const;
|
805
|
+
|
806
|
+
/**
|
807
|
+
* Returns the 1-based column offset on the line for the associated function
|
808
|
+
* call.
|
809
|
+
* This method will return Message::kNoColumnInfo if it is unable to retrieve
|
810
|
+
* the column number, or if kColumnOffset was not passed as an option when
|
811
|
+
* capturing the StackTrace.
|
812
|
+
*/
|
813
|
+
int GetColumn() const;
|
814
|
+
|
815
|
+
/**
|
816
|
+
* Returns the name of the resource that contains the script for the
|
817
|
+
* function for this StackFrame.
|
818
|
+
*/
|
819
|
+
Local<String> GetScriptName() const;
|
820
|
+
|
821
|
+
/**
|
822
|
+
* Returns the name of the function associated with this stack frame.
|
823
|
+
*/
|
824
|
+
Local<String> GetFunctionName() const;
|
825
|
+
|
826
|
+
/**
|
827
|
+
* Returns whether or not the associated function is compiled via a call to
|
828
|
+
* eval().
|
829
|
+
*/
|
830
|
+
bool IsEval() const;
|
831
|
+
|
832
|
+
/**
|
833
|
+
* Returns whther or not the associated function is called as a
|
834
|
+
* constructor via "new".
|
835
|
+
*/
|
836
|
+
bool IsConstructor() const;
|
694
837
|
};
|
695
838
|
|
696
839
|
|
@@ -700,30 +843,30 @@ class V8EXPORT Message {
|
|
700
843
|
/**
|
701
844
|
* The superclass of all JavaScript values and objects.
|
702
845
|
*/
|
703
|
-
class
|
846
|
+
class Value : public Data {
|
704
847
|
public:
|
705
848
|
|
706
849
|
/**
|
707
850
|
* Returns true if this value is the undefined value. See ECMA-262
|
708
851
|
* 4.3.10.
|
709
852
|
*/
|
710
|
-
bool IsUndefined() const;
|
853
|
+
V8EXPORT bool IsUndefined() const;
|
711
854
|
|
712
855
|
/**
|
713
856
|
* Returns true if this value is the null value. See ECMA-262
|
714
857
|
* 4.3.11.
|
715
858
|
*/
|
716
|
-
bool IsNull() const;
|
859
|
+
V8EXPORT bool IsNull() const;
|
717
860
|
|
718
861
|
/**
|
719
862
|
* Returns true if this value is true.
|
720
863
|
*/
|
721
|
-
bool IsTrue() const;
|
864
|
+
V8EXPORT bool IsTrue() const;
|
722
865
|
|
723
866
|
/**
|
724
867
|
* Returns true if this value is false.
|
725
868
|
*/
|
726
|
-
bool IsFalse() const;
|
869
|
+
V8EXPORT bool IsFalse() const;
|
727
870
|
|
728
871
|
/**
|
729
872
|
* Returns true if this value is an instance of the String type.
|
@@ -734,92 +877,92 @@ class V8EXPORT Value : public Data {
|
|
734
877
|
/**
|
735
878
|
* Returns true if this value is a function.
|
736
879
|
*/
|
737
|
-
bool IsFunction() const;
|
880
|
+
V8EXPORT bool IsFunction() const;
|
738
881
|
|
739
882
|
/**
|
740
883
|
* Returns true if this value is an array.
|
741
884
|
*/
|
742
|
-
bool IsArray() const;
|
885
|
+
V8EXPORT bool IsArray() const;
|
743
886
|
|
744
887
|
/**
|
745
888
|
* Returns true if this value is an object.
|
746
889
|
*/
|
747
|
-
bool IsObject() const;
|
890
|
+
V8EXPORT bool IsObject() const;
|
748
891
|
|
749
892
|
/**
|
750
893
|
* Returns true if this value is boolean.
|
751
894
|
*/
|
752
|
-
bool IsBoolean() const;
|
895
|
+
V8EXPORT bool IsBoolean() const;
|
753
896
|
|
754
897
|
/**
|
755
898
|
* Returns true if this value is a number.
|
756
899
|
*/
|
757
|
-
bool IsNumber() const;
|
900
|
+
V8EXPORT bool IsNumber() const;
|
758
901
|
|
759
902
|
/**
|
760
903
|
* Returns true if this value is external.
|
761
904
|
*/
|
762
|
-
bool IsExternal() const;
|
905
|
+
V8EXPORT bool IsExternal() const;
|
763
906
|
|
764
907
|
/**
|
765
908
|
* Returns true if this value is a 32-bit signed integer.
|
766
909
|
*/
|
767
|
-
bool IsInt32() const;
|
910
|
+
V8EXPORT bool IsInt32() const;
|
768
911
|
|
769
912
|
/**
|
770
913
|
* Returns true if this value is a 32-bit unsigned integer.
|
771
914
|
*/
|
772
|
-
bool IsUint32() const;
|
915
|
+
V8EXPORT bool IsUint32() const;
|
773
916
|
|
774
917
|
/**
|
775
918
|
* Returns true if this value is a Date.
|
776
919
|
*/
|
777
|
-
bool IsDate() const;
|
920
|
+
V8EXPORT bool IsDate() const;
|
778
921
|
|
779
|
-
Local<Boolean> ToBoolean() const;
|
780
|
-
Local<Number> ToNumber() const;
|
781
|
-
Local<String> ToString() const;
|
782
|
-
Local<String> ToDetailString() const;
|
783
|
-
Local<Object> ToObject() const;
|
784
|
-
Local<Integer> ToInteger() const;
|
785
|
-
Local<Uint32> ToUint32() const;
|
786
|
-
Local<Int32> ToInt32() const;
|
922
|
+
V8EXPORT Local<Boolean> ToBoolean() const;
|
923
|
+
V8EXPORT Local<Number> ToNumber() const;
|
924
|
+
V8EXPORT Local<String> ToString() const;
|
925
|
+
V8EXPORT Local<String> ToDetailString() const;
|
926
|
+
V8EXPORT Local<Object> ToObject() const;
|
927
|
+
V8EXPORT Local<Integer> ToInteger() const;
|
928
|
+
V8EXPORT Local<Uint32> ToUint32() const;
|
929
|
+
V8EXPORT Local<Int32> ToInt32() const;
|
787
930
|
|
788
931
|
/**
|
789
932
|
* Attempts to convert a string to an array index.
|
790
933
|
* Returns an empty handle if the conversion fails.
|
791
934
|
*/
|
792
|
-
Local<Uint32> ToArrayIndex() const;
|
935
|
+
V8EXPORT Local<Uint32> ToArrayIndex() const;
|
793
936
|
|
794
|
-
bool BooleanValue() const;
|
795
|
-
double NumberValue() const;
|
796
|
-
int64_t IntegerValue() const;
|
797
|
-
uint32_t Uint32Value() const;
|
798
|
-
int32_t Int32Value() const;
|
937
|
+
V8EXPORT bool BooleanValue() const;
|
938
|
+
V8EXPORT double NumberValue() const;
|
939
|
+
V8EXPORT int64_t IntegerValue() const;
|
940
|
+
V8EXPORT uint32_t Uint32Value() const;
|
941
|
+
V8EXPORT int32_t Int32Value() const;
|
799
942
|
|
800
943
|
/** JS == */
|
801
|
-
bool Equals(Handle<Value> that) const;
|
802
|
-
bool StrictEquals(Handle<Value> that) const;
|
944
|
+
V8EXPORT bool Equals(Handle<Value> that) const;
|
945
|
+
V8EXPORT bool StrictEquals(Handle<Value> that) const;
|
803
946
|
|
804
947
|
private:
|
805
948
|
inline bool QuickIsString() const;
|
806
|
-
bool FullIsString() const;
|
949
|
+
V8EXPORT bool FullIsString() const;
|
807
950
|
};
|
808
951
|
|
809
952
|
|
810
953
|
/**
|
811
954
|
* The superclass of primitive values. See ECMA-262 4.3.2.
|
812
955
|
*/
|
813
|
-
class
|
956
|
+
class Primitive : public Value { };
|
814
957
|
|
815
958
|
|
816
959
|
/**
|
817
960
|
* A primitive boolean value (ECMA-262, 4.3.14). Either the true
|
818
961
|
* or false value.
|
819
962
|
*/
|
820
|
-
class
|
963
|
+
class Boolean : public Primitive {
|
821
964
|
public:
|
822
|
-
bool Value() const;
|
965
|
+
V8EXPORT bool Value() const;
|
823
966
|
static inline Handle<Boolean> New(bool value);
|
824
967
|
};
|
825
968
|
|
@@ -827,19 +970,19 @@ class V8EXPORT Boolean : public Primitive {
|
|
827
970
|
/**
|
828
971
|
* A JavaScript string value (ECMA-262, 4.3.17).
|
829
972
|
*/
|
830
|
-
class
|
973
|
+
class String : public Primitive {
|
831
974
|
public:
|
832
975
|
|
833
976
|
/**
|
834
977
|
* Returns the number of characters in this string.
|
835
978
|
*/
|
836
|
-
int Length() const;
|
979
|
+
V8EXPORT int Length() const;
|
837
980
|
|
838
981
|
/**
|
839
982
|
* Returns the number of bytes in the UTF-8 encoded
|
840
983
|
* representation of this string.
|
841
984
|
*/
|
842
|
-
int Utf8Length() const;
|
985
|
+
V8EXPORT int Utf8Length() const;
|
843
986
|
|
844
987
|
/**
|
845
988
|
* Write the contents of the string to an external buffer.
|
@@ -866,43 +1009,55 @@ class V8EXPORT String : public Primitive {
|
|
866
1009
|
HINT_MANY_WRITES_EXPECTED = 1
|
867
1010
|
};
|
868
1011
|
|
869
|
-
int Write(uint16_t* buffer,
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
int WriteAscii(char* buffer,
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
int WriteUtf8(char* buffer,
|
878
|
-
|
879
|
-
|
880
|
-
|
1012
|
+
V8EXPORT int Write(uint16_t* buffer,
|
1013
|
+
int start = 0,
|
1014
|
+
int length = -1,
|
1015
|
+
WriteHints hints = NO_HINTS) const; // UTF-16
|
1016
|
+
V8EXPORT int WriteAscii(char* buffer,
|
1017
|
+
int start = 0,
|
1018
|
+
int length = -1,
|
1019
|
+
WriteHints hints = NO_HINTS) const; // ASCII
|
1020
|
+
V8EXPORT int WriteUtf8(char* buffer,
|
1021
|
+
int length = -1,
|
1022
|
+
int* nchars_ref = NULL,
|
1023
|
+
WriteHints hints = NO_HINTS) const; // UTF-8
|
881
1024
|
|
882
1025
|
/**
|
883
1026
|
* A zero length string.
|
884
1027
|
*/
|
885
|
-
static v8::Local<v8::String> Empty();
|
1028
|
+
V8EXPORT static v8::Local<v8::String> Empty();
|
886
1029
|
|
887
1030
|
/**
|
888
1031
|
* Returns true if the string is external
|
889
1032
|
*/
|
890
|
-
bool IsExternal() const;
|
1033
|
+
V8EXPORT bool IsExternal() const;
|
891
1034
|
|
892
1035
|
/**
|
893
1036
|
* Returns true if the string is both external and ascii
|
894
1037
|
*/
|
895
|
-
bool IsExternalAscii() const;
|
1038
|
+
V8EXPORT bool IsExternalAscii() const;
|
896
1039
|
|
897
1040
|
class V8EXPORT ExternalStringResourceBase {
|
898
1041
|
public:
|
899
1042
|
virtual ~ExternalStringResourceBase() {}
|
1043
|
+
|
900
1044
|
protected:
|
901
1045
|
ExternalStringResourceBase() {}
|
1046
|
+
|
1047
|
+
/**
|
1048
|
+
* Internally V8 will call this Dispose method when the external string
|
1049
|
+
* resource is no longer needed. The default implementation will use the
|
1050
|
+
* delete operator. This method can be overridden in subclasses to
|
1051
|
+
* control how allocated external string resources are disposed.
|
1052
|
+
*/
|
1053
|
+
virtual void Dispose() { delete this; }
|
1054
|
+
|
902
1055
|
private:
|
903
1056
|
// Disallow copying and assigning.
|
904
1057
|
ExternalStringResourceBase(const ExternalStringResourceBase&);
|
905
1058
|
void operator=(const ExternalStringResourceBase&);
|
1059
|
+
|
1060
|
+
friend class v8::internal::Heap;
|
906
1061
|
};
|
907
1062
|
|
908
1063
|
/**
|
@@ -919,10 +1074,17 @@ class V8EXPORT String : public Primitive {
|
|
919
1074
|
* buffer.
|
920
1075
|
*/
|
921
1076
|
virtual ~ExternalStringResource() {}
|
922
|
-
|
1077
|
+
|
1078
|
+
/**
|
1079
|
+
* The string data from the underlying buffer.
|
1080
|
+
*/
|
923
1081
|
virtual const uint16_t* data() const = 0;
|
924
|
-
|
1082
|
+
|
1083
|
+
/**
|
1084
|
+
* The length of the string. That is, the number of two-byte characters.
|
1085
|
+
*/
|
925
1086
|
virtual size_t length() const = 0;
|
1087
|
+
|
926
1088
|
protected:
|
927
1089
|
ExternalStringResource() {}
|
928
1090
|
};
|
@@ -964,7 +1126,7 @@ class V8EXPORT String : public Primitive {
|
|
964
1126
|
* Get the ExternalAsciiStringResource for an external ascii string.
|
965
1127
|
* Returns NULL if IsExternalAscii() doesn't return true.
|
966
1128
|
*/
|
967
|
-
ExternalAsciiStringResource* GetExternalAsciiStringResource() const;
|
1129
|
+
V8EXPORT ExternalAsciiStringResource* GetExternalAsciiStringResource() const;
|
968
1130
|
|
969
1131
|
static inline String* Cast(v8::Value* obj);
|
970
1132
|
|
@@ -977,29 +1139,30 @@ class V8EXPORT String : public Primitive {
|
|
977
1139
|
* 'strlen' to determine the buffer length, it might be
|
978
1140
|
* wrong if 'data' contains a null character.
|
979
1141
|
*/
|
980
|
-
static Local<String> New(const char* data, int length = -1);
|
1142
|
+
V8EXPORT static Local<String> New(const char* data, int length = -1);
|
981
1143
|
|
982
1144
|
/** Allocates a new string from utf16 data.*/
|
983
|
-
static Local<String> New(const uint16_t* data, int length = -1);
|
1145
|
+
V8EXPORT static Local<String> New(const uint16_t* data, int length = -1);
|
984
1146
|
|
985
1147
|
/** Creates a symbol. Returns one if it exists already.*/
|
986
|
-
static Local<String> NewSymbol(const char* data, int length = -1);
|
1148
|
+
V8EXPORT static Local<String> NewSymbol(const char* data, int length = -1);
|
987
1149
|
|
988
1150
|
/**
|
989
1151
|
* Creates a new string by concatenating the left and the right strings
|
990
1152
|
* passed in as parameters.
|
991
1153
|
*/
|
992
|
-
static Local<String> Concat(Handle<String> left,
|
1154
|
+
V8EXPORT static Local<String> Concat(Handle<String> left,
|
1155
|
+
Handle<String>right);
|
993
1156
|
|
994
1157
|
/**
|
995
1158
|
* Creates a new external string using the data defined in the given
|
996
|
-
* resource.
|
997
|
-
*
|
998
|
-
* delete or modify the resource. Neither
|
999
|
-
* deallocated or modified except through the
|
1000
|
-
* external string resource.
|
1159
|
+
* resource. When the external string is no longer live on V8's heap the
|
1160
|
+
* resource will be disposed by calling its Dispose method. The caller of
|
1161
|
+
* this function should not otherwise delete or modify the resource. Neither
|
1162
|
+
* should the underlying buffer be deallocated or modified except through the
|
1163
|
+
* destructor of the external string resource.
|
1001
1164
|
*/
|
1002
|
-
static Local<String> NewExternal(ExternalStringResource* resource);
|
1165
|
+
V8EXPORT static Local<String> NewExternal(ExternalStringResource* resource);
|
1003
1166
|
|
1004
1167
|
/**
|
1005
1168
|
* Associate an external string resource with this string by transforming it
|
@@ -1007,19 +1170,21 @@ class V8EXPORT String : public Primitive {
|
|
1007
1170
|
* will use the external string resource. The external string resource's
|
1008
1171
|
* character contents needs to be equivalent to this string.
|
1009
1172
|
* Returns true if the string has been changed to be an external string.
|
1010
|
-
* The string is not modified if the operation fails.
|
1173
|
+
* The string is not modified if the operation fails. See NewExternal for
|
1174
|
+
* information on the lifetime of the resource.
|
1011
1175
|
*/
|
1012
|
-
bool MakeExternal(ExternalStringResource* resource);
|
1176
|
+
V8EXPORT bool MakeExternal(ExternalStringResource* resource);
|
1013
1177
|
|
1014
1178
|
/**
|
1015
1179
|
* Creates a new external string using the ascii data defined in the given
|
1016
|
-
* resource.
|
1017
|
-
*
|
1018
|
-
* delete or modify the resource. Neither
|
1019
|
-
* deallocated or modified except through the
|
1020
|
-
* external string resource.
|
1180
|
+
* resource. When the external string is no longer live on V8's heap the
|
1181
|
+
* resource will be disposed by calling its Dispose method. The caller of
|
1182
|
+
* this function should not otherwise delete or modify the resource. Neither
|
1183
|
+
* should the underlying buffer be deallocated or modified except through the
|
1184
|
+
* destructor of the external string resource.
|
1021
1185
|
*/
|
1022
|
-
static Local<String> NewExternal(
|
1186
|
+
V8EXPORT static Local<String> NewExternal(
|
1187
|
+
ExternalAsciiStringResource* resource);
|
1023
1188
|
|
1024
1189
|
/**
|
1025
1190
|
* Associate an external string resource with this string by transforming it
|
@@ -1027,20 +1192,23 @@ class V8EXPORT String : public Primitive {
|
|
1027
1192
|
* will use the external string resource. The external string resource's
|
1028
1193
|
* character contents needs to be equivalent to this string.
|
1029
1194
|
* Returns true if the string has been changed to be an external string.
|
1030
|
-
* The string is not modified if the operation fails.
|
1195
|
+
* The string is not modified if the operation fails. See NewExternal for
|
1196
|
+
* information on the lifetime of the resource.
|
1031
1197
|
*/
|
1032
|
-
bool MakeExternal(ExternalAsciiStringResource* resource);
|
1198
|
+
V8EXPORT bool MakeExternal(ExternalAsciiStringResource* resource);
|
1033
1199
|
|
1034
1200
|
/**
|
1035
1201
|
* Returns true if this string can be made external.
|
1036
1202
|
*/
|
1037
|
-
bool CanMakeExternal();
|
1203
|
+
V8EXPORT bool CanMakeExternal();
|
1038
1204
|
|
1039
1205
|
/** Creates an undetectable string from the supplied ascii or utf-8 data.*/
|
1040
|
-
static Local<String> NewUndetectable(const char* data,
|
1206
|
+
V8EXPORT static Local<String> NewUndetectable(const char* data,
|
1207
|
+
int length = -1);
|
1041
1208
|
|
1042
1209
|
/** Creates an undetectable string from the supplied utf-16 data.*/
|
1043
|
-
static Local<String> NewUndetectable(const uint16_t* data,
|
1210
|
+
V8EXPORT static Local<String> NewUndetectable(const uint16_t* data,
|
1211
|
+
int length = -1);
|
1044
1212
|
|
1045
1213
|
/**
|
1046
1214
|
* Converts an object to a utf8-encoded character array. Useful if
|
@@ -1111,21 +1279,21 @@ class V8EXPORT String : public Primitive {
|
|
1111
1279
|
};
|
1112
1280
|
|
1113
1281
|
private:
|
1114
|
-
void VerifyExternalStringResource(ExternalStringResource* val) const;
|
1115
|
-
static void CheckCast(v8::Value* obj);
|
1282
|
+
V8EXPORT void VerifyExternalStringResource(ExternalStringResource* val) const;
|
1283
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
1116
1284
|
};
|
1117
1285
|
|
1118
1286
|
|
1119
1287
|
/**
|
1120
1288
|
* A JavaScript number value (ECMA-262, 4.3.20)
|
1121
1289
|
*/
|
1122
|
-
class
|
1290
|
+
class Number : public Primitive {
|
1123
1291
|
public:
|
1124
|
-
double Value() const;
|
1125
|
-
static Local<Number> New(double value);
|
1292
|
+
V8EXPORT double Value() const;
|
1293
|
+
V8EXPORT static Local<Number> New(double value);
|
1126
1294
|
static inline Number* Cast(v8::Value* obj);
|
1127
1295
|
private:
|
1128
|
-
Number();
|
1296
|
+
V8EXPORT Number();
|
1129
1297
|
static void CheckCast(v8::Value* obj);
|
1130
1298
|
};
|
1131
1299
|
|
@@ -1133,56 +1301,56 @@ class V8EXPORT Number : public Primitive {
|
|
1133
1301
|
/**
|
1134
1302
|
* A JavaScript value representing a signed integer.
|
1135
1303
|
*/
|
1136
|
-
class
|
1304
|
+
class Integer : public Number {
|
1137
1305
|
public:
|
1138
|
-
static Local<Integer> New(int32_t value);
|
1139
|
-
static Local<Integer> NewFromUnsigned(uint32_t value);
|
1140
|
-
int64_t Value() const;
|
1306
|
+
V8EXPORT static Local<Integer> New(int32_t value);
|
1307
|
+
V8EXPORT static Local<Integer> NewFromUnsigned(uint32_t value);
|
1308
|
+
V8EXPORT int64_t Value() const;
|
1141
1309
|
static inline Integer* Cast(v8::Value* obj);
|
1142
1310
|
private:
|
1143
|
-
Integer();
|
1144
|
-
static void CheckCast(v8::Value* obj);
|
1311
|
+
V8EXPORT Integer();
|
1312
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
1145
1313
|
};
|
1146
1314
|
|
1147
1315
|
|
1148
1316
|
/**
|
1149
1317
|
* A JavaScript value representing a 32-bit signed integer.
|
1150
1318
|
*/
|
1151
|
-
class
|
1319
|
+
class Int32 : public Integer {
|
1152
1320
|
public:
|
1153
|
-
int32_t Value() const;
|
1321
|
+
V8EXPORT int32_t Value() const;
|
1154
1322
|
private:
|
1155
|
-
Int32();
|
1323
|
+
V8EXPORT Int32();
|
1156
1324
|
};
|
1157
1325
|
|
1158
1326
|
|
1159
1327
|
/**
|
1160
1328
|
* A JavaScript value representing a 32-bit unsigned integer.
|
1161
1329
|
*/
|
1162
|
-
class
|
1330
|
+
class Uint32 : public Integer {
|
1163
1331
|
public:
|
1164
|
-
uint32_t Value() const;
|
1332
|
+
V8EXPORT uint32_t Value() const;
|
1165
1333
|
private:
|
1166
|
-
Uint32();
|
1334
|
+
V8EXPORT Uint32();
|
1167
1335
|
};
|
1168
1336
|
|
1169
1337
|
|
1170
1338
|
/**
|
1171
1339
|
* An instance of the built-in Date constructor (ECMA-262, 15.9).
|
1172
1340
|
*/
|
1173
|
-
class
|
1341
|
+
class Date : public Value {
|
1174
1342
|
public:
|
1175
|
-
static Local<Value> New(double time);
|
1343
|
+
V8EXPORT static Local<Value> New(double time);
|
1176
1344
|
|
1177
1345
|
/**
|
1178
1346
|
* A specialization of Value::NumberValue that is more efficient
|
1179
1347
|
* because we know the structure of this object.
|
1180
1348
|
*/
|
1181
|
-
double NumberValue() const;
|
1349
|
+
V8EXPORT double NumberValue() const;
|
1182
1350
|
|
1183
1351
|
static inline Date* Cast(v8::Value* obj);
|
1184
1352
|
private:
|
1185
|
-
static void CheckCast(v8::Value* obj);
|
1353
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
1186
1354
|
};
|
1187
1355
|
|
1188
1356
|
|
@@ -1203,17 +1371,52 @@ enum ExternalArrayType {
|
|
1203
1371
|
kExternalFloatArray
|
1204
1372
|
};
|
1205
1373
|
|
1374
|
+
/**
|
1375
|
+
* Accessor[Getter|Setter] are used as callback functions when
|
1376
|
+
* setting|getting a particular property. See Object and ObjectTemplate's
|
1377
|
+
* method SetAccessor.
|
1378
|
+
*/
|
1379
|
+
typedef Handle<Value> (*AccessorGetter)(Local<String> property,
|
1380
|
+
const AccessorInfo& info);
|
1381
|
+
|
1382
|
+
|
1383
|
+
typedef void (*AccessorSetter)(Local<String> property,
|
1384
|
+
Local<Value> value,
|
1385
|
+
const AccessorInfo& info);
|
1386
|
+
|
1387
|
+
|
1388
|
+
/**
|
1389
|
+
* Access control specifications.
|
1390
|
+
*
|
1391
|
+
* Some accessors should be accessible across contexts. These
|
1392
|
+
* accessors have an explicit access control parameter which specifies
|
1393
|
+
* the kind of cross-context access that should be allowed.
|
1394
|
+
*
|
1395
|
+
* Additionally, for security, accessors can prohibit overwriting by
|
1396
|
+
* accessors defined in JavaScript. For objects that have such
|
1397
|
+
* accessors either locally or in their prototype chain it is not
|
1398
|
+
* possible to overwrite the accessor by using __defineGetter__ or
|
1399
|
+
* __defineSetter__ from JavaScript code.
|
1400
|
+
*/
|
1401
|
+
enum AccessControl {
|
1402
|
+
DEFAULT = 0,
|
1403
|
+
ALL_CAN_READ = 1,
|
1404
|
+
ALL_CAN_WRITE = 1 << 1,
|
1405
|
+
PROHIBITS_OVERWRITING = 1 << 2
|
1406
|
+
};
|
1407
|
+
|
1408
|
+
|
1206
1409
|
/**
|
1207
1410
|
* A JavaScript object (ECMA-262, 4.3.3)
|
1208
1411
|
*/
|
1209
|
-
class
|
1412
|
+
class Object : public Value {
|
1210
1413
|
public:
|
1211
|
-
bool Set(Handle<Value> key,
|
1212
|
-
|
1213
|
-
|
1414
|
+
V8EXPORT bool Set(Handle<Value> key,
|
1415
|
+
Handle<Value> value,
|
1416
|
+
PropertyAttribute attribs = None);
|
1214
1417
|
|
1215
|
-
bool Set(uint32_t index,
|
1216
|
-
|
1418
|
+
V8EXPORT bool Set(uint32_t index,
|
1419
|
+
Handle<Value> value);
|
1217
1420
|
|
1218
1421
|
// Sets a local property on this object bypassing interceptors and
|
1219
1422
|
// overriding accessors or read-only properties.
|
@@ -1223,27 +1426,34 @@ class V8EXPORT Object : public Value {
|
|
1223
1426
|
// will only be returned if the interceptor doesn't return a value.
|
1224
1427
|
//
|
1225
1428
|
// Note also that this only works for named properties.
|
1226
|
-
bool ForceSet(Handle<Value> key,
|
1227
|
-
|
1228
|
-
|
1429
|
+
V8EXPORT bool ForceSet(Handle<Value> key,
|
1430
|
+
Handle<Value> value,
|
1431
|
+
PropertyAttribute attribs = None);
|
1229
1432
|
|
1230
|
-
Local<Value> Get(Handle<Value> key);
|
1433
|
+
V8EXPORT Local<Value> Get(Handle<Value> key);
|
1231
1434
|
|
1232
|
-
Local<Value> Get(uint32_t index);
|
1435
|
+
V8EXPORT Local<Value> Get(uint32_t index);
|
1233
1436
|
|
1234
1437
|
// TODO(1245389): Replace the type-specific versions of these
|
1235
1438
|
// functions with generic ones that accept a Handle<Value> key.
|
1236
|
-
bool Has(Handle<String> key);
|
1439
|
+
V8EXPORT bool Has(Handle<String> key);
|
1237
1440
|
|
1238
|
-
bool Delete(Handle<String> key);
|
1441
|
+
V8EXPORT bool Delete(Handle<String> key);
|
1239
1442
|
|
1240
1443
|
// Delete a property on this object bypassing interceptors and
|
1241
1444
|
// ignoring dont-delete attributes.
|
1242
|
-
bool ForceDelete(Handle<Value> key);
|
1445
|
+
V8EXPORT bool ForceDelete(Handle<Value> key);
|
1446
|
+
|
1447
|
+
V8EXPORT bool Has(uint32_t index);
|
1243
1448
|
|
1244
|
-
bool
|
1449
|
+
V8EXPORT bool Delete(uint32_t index);
|
1245
1450
|
|
1246
|
-
bool
|
1451
|
+
V8EXPORT bool SetAccessor(Handle<String> name,
|
1452
|
+
AccessorGetter getter,
|
1453
|
+
AccessorSetter setter = 0,
|
1454
|
+
Handle<Value> data = Handle<Value>(),
|
1455
|
+
AccessControl settings = DEFAULT,
|
1456
|
+
PropertyAttribute attribute = None);
|
1247
1457
|
|
1248
1458
|
/**
|
1249
1459
|
* Returns an array containing the names of the enumerable properties
|
@@ -1251,78 +1461,80 @@ class V8EXPORT Object : public Value {
|
|
1251
1461
|
* array returned by this method contains the same values as would
|
1252
1462
|
* be enumerated by a for-in statement over this object.
|
1253
1463
|
*/
|
1254
|
-
Local<Array> GetPropertyNames();
|
1464
|
+
V8EXPORT Local<Array> GetPropertyNames();
|
1255
1465
|
|
1256
1466
|
/**
|
1257
1467
|
* Get the prototype object. This does not skip objects marked to
|
1258
1468
|
* be skipped by __proto__ and it does not consult the security
|
1259
1469
|
* handler.
|
1260
1470
|
*/
|
1261
|
-
Local<Value> GetPrototype();
|
1471
|
+
V8EXPORT Local<Value> GetPrototype();
|
1262
1472
|
|
1263
1473
|
/**
|
1264
1474
|
* Set the prototype object. This does not skip objects marked to
|
1265
1475
|
* be skipped by __proto__ and it does not consult the security
|
1266
1476
|
* handler.
|
1267
1477
|
*/
|
1268
|
-
bool SetPrototype(Handle<Value> prototype);
|
1478
|
+
V8EXPORT bool SetPrototype(Handle<Value> prototype);
|
1269
1479
|
|
1270
1480
|
/**
|
1271
1481
|
* Finds an instance of the given function template in the prototype
|
1272
1482
|
* chain.
|
1273
1483
|
*/
|
1274
|
-
Local<Object> FindInstanceInPrototypeChain(
|
1484
|
+
V8EXPORT Local<Object> FindInstanceInPrototypeChain(
|
1485
|
+
Handle<FunctionTemplate> tmpl);
|
1275
1486
|
|
1276
1487
|
/**
|
1277
1488
|
* Call builtin Object.prototype.toString on this object.
|
1278
1489
|
* This is different from Value::ToString() that may call
|
1279
1490
|
* user-defined toString function. This one does not.
|
1280
1491
|
*/
|
1281
|
-
Local<String> ObjectProtoToString();
|
1492
|
+
V8EXPORT Local<String> ObjectProtoToString();
|
1282
1493
|
|
1283
1494
|
/** Gets the number of internal fields for this Object. */
|
1284
|
-
int InternalFieldCount();
|
1495
|
+
V8EXPORT int InternalFieldCount();
|
1285
1496
|
/** Gets the value in an internal field. */
|
1286
1497
|
inline Local<Value> GetInternalField(int index);
|
1287
1498
|
/** Sets the value in an internal field. */
|
1288
|
-
void SetInternalField(int index, Handle<Value> value);
|
1499
|
+
V8EXPORT void SetInternalField(int index, Handle<Value> value);
|
1289
1500
|
|
1290
1501
|
/** Gets a native pointer from an internal field. */
|
1291
1502
|
inline void* GetPointerFromInternalField(int index);
|
1292
1503
|
|
1293
1504
|
/** Sets a native pointer in an internal field. */
|
1294
|
-
void SetPointerInInternalField(int index, void* value);
|
1505
|
+
V8EXPORT void SetPointerInInternalField(int index, void* value);
|
1295
1506
|
|
1296
1507
|
// Testers for local properties.
|
1297
|
-
bool HasRealNamedProperty(Handle<String> key);
|
1298
|
-
bool HasRealIndexedProperty(uint32_t index);
|
1299
|
-
bool HasRealNamedCallbackProperty(Handle<String> key);
|
1508
|
+
V8EXPORT bool HasRealNamedProperty(Handle<String> key);
|
1509
|
+
V8EXPORT bool HasRealIndexedProperty(uint32_t index);
|
1510
|
+
V8EXPORT bool HasRealNamedCallbackProperty(Handle<String> key);
|
1300
1511
|
|
1301
1512
|
/**
|
1302
1513
|
* If result.IsEmpty() no real property was located in the prototype chain.
|
1303
1514
|
* This means interceptors in the prototype chain are not called.
|
1304
1515
|
*/
|
1305
|
-
Local<Value> GetRealNamedPropertyInPrototypeChain(
|
1516
|
+
V8EXPORT Local<Value> GetRealNamedPropertyInPrototypeChain(
|
1517
|
+
Handle<String> key);
|
1306
1518
|
|
1307
1519
|
/**
|
1308
1520
|
* If result.IsEmpty() no real property was located on the object or
|
1309
1521
|
* in the prototype chain.
|
1310
1522
|
* This means interceptors in the prototype chain are not called.
|
1311
1523
|
*/
|
1312
|
-
Local<Value> GetRealNamedProperty(Handle<String> key);
|
1524
|
+
V8EXPORT Local<Value> GetRealNamedProperty(Handle<String> key);
|
1313
1525
|
|
1314
1526
|
/** Tests for a named lookup interceptor.*/
|
1315
|
-
bool HasNamedLookupInterceptor();
|
1527
|
+
V8EXPORT bool HasNamedLookupInterceptor();
|
1316
1528
|
|
1317
1529
|
/** Tests for an index lookup interceptor.*/
|
1318
|
-
bool HasIndexedLookupInterceptor();
|
1530
|
+
V8EXPORT bool HasIndexedLookupInterceptor();
|
1319
1531
|
|
1320
1532
|
/**
|
1321
1533
|
* Turns on access check on the object if the object is an instance of
|
1322
1534
|
* a template that has access check callbacks. If an object has no
|
1323
1535
|
* access check info, the object cannot be accessed by anyone.
|
1324
1536
|
*/
|
1325
|
-
void TurnOnAccessCheck();
|
1537
|
+
V8EXPORT void TurnOnAccessCheck();
|
1326
1538
|
|
1327
1539
|
/**
|
1328
1540
|
* Returns the identity hash for this object. The current implemenation uses
|
@@ -1331,7 +1543,7 @@ class V8EXPORT Object : public Value {
|
|
1331
1543
|
* The return value will never be 0. Also, it is not guaranteed to be
|
1332
1544
|
* unique.
|
1333
1545
|
*/
|
1334
|
-
int GetIdentityHash();
|
1546
|
+
V8EXPORT int GetIdentityHash();
|
1335
1547
|
|
1336
1548
|
/**
|
1337
1549
|
* Access hidden properties on JavaScript objects. These properties are
|
@@ -1339,9 +1551,9 @@ class V8EXPORT Object : public Value {
|
|
1339
1551
|
* C++ API. Hidden properties introduced by V8 internally (for example the
|
1340
1552
|
* identity hash) are prefixed with "v8::".
|
1341
1553
|
*/
|
1342
|
-
bool SetHiddenValue(Handle<String> key, Handle<Value> value);
|
1343
|
-
Local<Value> GetHiddenValue(Handle<String> key);
|
1344
|
-
bool DeleteHiddenValue(Handle<String> key);
|
1554
|
+
V8EXPORT bool SetHiddenValue(Handle<String> key, Handle<Value> value);
|
1555
|
+
V8EXPORT Local<Value> GetHiddenValue(Handle<String> key);
|
1556
|
+
V8EXPORT bool DeleteHiddenValue(Handle<String> key);
|
1345
1557
|
|
1346
1558
|
/**
|
1347
1559
|
* Returns true if this is an instance of an api function (one
|
@@ -1350,13 +1562,13 @@ class V8EXPORT Object : public Value {
|
|
1350
1562
|
* conservative and may return true for objects that haven't actually
|
1351
1563
|
* been modified.
|
1352
1564
|
*/
|
1353
|
-
bool IsDirty();
|
1565
|
+
V8EXPORT bool IsDirty();
|
1354
1566
|
|
1355
1567
|
/**
|
1356
1568
|
* Clone this object with a fast but shallow copy. Values will point
|
1357
1569
|
* to the same values as the original object.
|
1358
1570
|
*/
|
1359
|
-
Local<Object> Clone();
|
1571
|
+
V8EXPORT Local<Object> Clone();
|
1360
1572
|
|
1361
1573
|
/**
|
1362
1574
|
* Set the backing store of the indexed properties to be managed by the
|
@@ -1365,7 +1577,10 @@ class V8EXPORT Object : public Value {
|
|
1365
1577
|
* Note: The embedding program still owns the data and needs to ensure that
|
1366
1578
|
* the backing store is preserved while V8 has a reference.
|
1367
1579
|
*/
|
1368
|
-
void SetIndexedPropertiesToPixelData(uint8_t* data, int length);
|
1580
|
+
V8EXPORT void SetIndexedPropertiesToPixelData(uint8_t* data, int length);
|
1581
|
+
bool HasIndexedPropertiesInPixelData();
|
1582
|
+
uint8_t* GetIndexedPropertiesPixelData();
|
1583
|
+
int GetIndexedPropertiesPixelDataLength();
|
1369
1584
|
|
1370
1585
|
/**
|
1371
1586
|
* Set the backing store of the indexed properties to be managed by the
|
@@ -1374,17 +1589,22 @@ class V8EXPORT Object : public Value {
|
|
1374
1589
|
* Note: The embedding program still owns the data and needs to ensure that
|
1375
1590
|
* the backing store is preserved while V8 has a reference.
|
1376
1591
|
*/
|
1377
|
-
void SetIndexedPropertiesToExternalArrayData(
|
1378
|
-
|
1379
|
-
|
1592
|
+
V8EXPORT void SetIndexedPropertiesToExternalArrayData(
|
1593
|
+
void* data,
|
1594
|
+
ExternalArrayType array_type,
|
1595
|
+
int number_of_elements);
|
1596
|
+
bool HasIndexedPropertiesInExternalArrayData();
|
1597
|
+
void* GetIndexedPropertiesExternalArrayData();
|
1598
|
+
ExternalArrayType GetIndexedPropertiesExternalArrayDataType();
|
1599
|
+
int GetIndexedPropertiesExternalArrayDataLength();
|
1380
1600
|
|
1381
|
-
static Local<Object> New();
|
1601
|
+
V8EXPORT static Local<Object> New();
|
1382
1602
|
static inline Object* Cast(Value* obj);
|
1383
1603
|
private:
|
1384
|
-
Object();
|
1385
|
-
static void CheckCast(Value* obj);
|
1386
|
-
Local<Value> CheckedGetInternalField(int index);
|
1387
|
-
void* SlowGetPointerFromInternalField(int index);
|
1604
|
+
V8EXPORT Object();
|
1605
|
+
V8EXPORT static void CheckCast(Value* obj);
|
1606
|
+
V8EXPORT Local<Value> CheckedGetInternalField(int index);
|
1607
|
+
V8EXPORT void* SlowGetPointerFromInternalField(int index);
|
1388
1608
|
|
1389
1609
|
/**
|
1390
1610
|
* If quick access to the internal field is possible this method
|
@@ -1397,20 +1617,20 @@ class V8EXPORT Object : public Value {
|
|
1397
1617
|
/**
|
1398
1618
|
* An instance of the built-in array constructor (ECMA-262, 15.4.2).
|
1399
1619
|
*/
|
1400
|
-
class
|
1620
|
+
class Array : public Object {
|
1401
1621
|
public:
|
1402
|
-
uint32_t Length() const;
|
1622
|
+
V8EXPORT uint32_t Length() const;
|
1403
1623
|
|
1404
1624
|
/**
|
1405
1625
|
* Clones an element at index |index|. Returns an empty
|
1406
1626
|
* handle if cloning fails (for any reason).
|
1407
1627
|
*/
|
1408
|
-
Local<Object> CloneElementAt(uint32_t index);
|
1628
|
+
V8EXPORT Local<Object> CloneElementAt(uint32_t index);
|
1409
1629
|
|
1410
|
-
static Local<Array> New(int length = 0);
|
1630
|
+
V8EXPORT static Local<Array> New(int length = 0);
|
1411
1631
|
static inline Array* Cast(Value* obj);
|
1412
1632
|
private:
|
1413
|
-
Array();
|
1633
|
+
V8EXPORT Array();
|
1414
1634
|
static void CheckCast(Value* obj);
|
1415
1635
|
};
|
1416
1636
|
|
@@ -1418,25 +1638,27 @@ class V8EXPORT Array : public Object {
|
|
1418
1638
|
/**
|
1419
1639
|
* A JavaScript function object (ECMA-262, 15.3).
|
1420
1640
|
*/
|
1421
|
-
class
|
1641
|
+
class Function : public Object {
|
1422
1642
|
public:
|
1423
|
-
Local<Object> NewInstance() const;
|
1424
|
-
Local<Object> NewInstance(int argc, Handle<Value> argv[]) const;
|
1425
|
-
Local<Value> Call(Handle<Object> recv,
|
1426
|
-
|
1427
|
-
|
1643
|
+
V8EXPORT Local<Object> NewInstance() const;
|
1644
|
+
V8EXPORT Local<Object> NewInstance(int argc, Handle<Value> argv[]) const;
|
1645
|
+
V8EXPORT Local<Value> Call(Handle<Object> recv,
|
1646
|
+
int argc,
|
1647
|
+
Handle<Value> argv[]);
|
1648
|
+
V8EXPORT void SetName(Handle<String> name);
|
1649
|
+
V8EXPORT Handle<Value> GetName() const;
|
1428
1650
|
|
1429
1651
|
/**
|
1430
1652
|
* Returns zero based line number of function body and
|
1431
1653
|
* kLineOffsetNotFound if no information available.
|
1432
1654
|
*/
|
1433
|
-
int GetScriptLineNumber() const;
|
1434
|
-
ScriptOrigin GetScriptOrigin() const;
|
1655
|
+
V8EXPORT int GetScriptLineNumber() const;
|
1656
|
+
V8EXPORT ScriptOrigin GetScriptOrigin() const;
|
1435
1657
|
static inline Function* Cast(Value* obj);
|
1436
|
-
static const int kLineOffsetNotFound;
|
1658
|
+
V8EXPORT static const int kLineOffsetNotFound;
|
1437
1659
|
private:
|
1438
|
-
Function();
|
1439
|
-
static void CheckCast(Value* obj);
|
1660
|
+
V8EXPORT Function();
|
1661
|
+
V8EXPORT static void CheckCast(Value* obj);
|
1440
1662
|
};
|
1441
1663
|
|
1442
1664
|
|
@@ -1451,19 +1673,19 @@ class V8EXPORT Function : public Object {
|
|
1451
1673
|
* value Unwrap should be used, all other operations on that object will lead
|
1452
1674
|
* to unpredictable results.
|
1453
1675
|
*/
|
1454
|
-
class
|
1676
|
+
class External : public Value {
|
1455
1677
|
public:
|
1456
|
-
static Local<Value> Wrap(void* data);
|
1678
|
+
V8EXPORT static Local<Value> Wrap(void* data);
|
1457
1679
|
static inline void* Unwrap(Handle<Value> obj);
|
1458
1680
|
|
1459
|
-
static Local<External> New(void* value);
|
1681
|
+
V8EXPORT static Local<External> New(void* value);
|
1460
1682
|
static inline External* Cast(Value* obj);
|
1461
|
-
void* Value() const;
|
1683
|
+
V8EXPORT void* Value() const;
|
1462
1684
|
private:
|
1463
|
-
External();
|
1464
|
-
static void CheckCast(v8::Value* obj);
|
1685
|
+
V8EXPORT External();
|
1686
|
+
V8EXPORT static void CheckCast(v8::Value* obj);
|
1465
1687
|
static inline void* QuickUnwrap(Handle<v8::Value> obj);
|
1466
|
-
static void* FullUnwrap(Handle<v8::Value> obj);
|
1688
|
+
V8EXPORT static void* FullUnwrap(Handle<v8::Value> obj);
|
1467
1689
|
};
|
1468
1690
|
|
1469
1691
|
|
@@ -1493,7 +1715,7 @@ class V8EXPORT Template : public Data {
|
|
1493
1715
|
* including the receiver, the number and values of arguments, and
|
1494
1716
|
* the holder of the function.
|
1495
1717
|
*/
|
1496
|
-
class
|
1718
|
+
class Arguments {
|
1497
1719
|
public:
|
1498
1720
|
inline int Length() const;
|
1499
1721
|
inline Local<Value> operator[](int i) const;
|
@@ -1503,7 +1725,6 @@ class V8EXPORT Arguments {
|
|
1503
1725
|
inline bool IsConstructCall() const;
|
1504
1726
|
inline Local<Value> Data() const;
|
1505
1727
|
private:
|
1506
|
-
Arguments();
|
1507
1728
|
friend class ImplementationUtilities;
|
1508
1729
|
inline Arguments(Local<Value> data,
|
1509
1730
|
Local<Object> holder,
|
@@ -1539,19 +1760,6 @@ typedef Handle<Value> (*InvocationCallback)(const Arguments& args);
|
|
1539
1760
|
|
1540
1761
|
typedef int (*LookupCallback)(Local<Object> self, Local<String> name);
|
1541
1762
|
|
1542
|
-
/**
|
1543
|
-
* Accessor[Getter|Setter] are used as callback functions when
|
1544
|
-
* setting|getting a particular property. See objectTemplate::SetAccessor.
|
1545
|
-
*/
|
1546
|
-
typedef Handle<Value> (*AccessorGetter)(Local<String> property,
|
1547
|
-
const AccessorInfo& info);
|
1548
|
-
|
1549
|
-
|
1550
|
-
typedef void (*AccessorSetter)(Local<String> property,
|
1551
|
-
Local<Value> value,
|
1552
|
-
const AccessorInfo& info);
|
1553
|
-
|
1554
|
-
|
1555
1763
|
/**
|
1556
1764
|
* NamedProperty[Getter|Setter] are used as interceptors on object.
|
1557
1765
|
* See ObjectTemplate::SetNamedPropertyHandler.
|
@@ -1568,12 +1776,12 @@ typedef Handle<Value> (*NamedPropertySetter)(Local<String> property,
|
|
1568
1776
|
Local<Value> value,
|
1569
1777
|
const AccessorInfo& info);
|
1570
1778
|
|
1571
|
-
|
1572
1779
|
/**
|
1573
1780
|
* Returns a non-empty handle if the interceptor intercepts the request.
|
1574
|
-
* The result is
|
1781
|
+
* The result is an integer encoding property attributes (like v8::None,
|
1782
|
+
* v8::DontEnum, etc.)
|
1575
1783
|
*/
|
1576
|
-
typedef Handle<
|
1784
|
+
typedef Handle<Integer> (*NamedPropertyQuery)(Local<String> property,
|
1577
1785
|
const AccessorInfo& info);
|
1578
1786
|
|
1579
1787
|
|
@@ -1631,27 +1839,6 @@ typedef Handle<Boolean> (*IndexedPropertyDeleter)(uint32_t index,
|
|
1631
1839
|
typedef Handle<Array> (*IndexedPropertyEnumerator)(const AccessorInfo& info);
|
1632
1840
|
|
1633
1841
|
|
1634
|
-
/**
|
1635
|
-
* Access control specifications.
|
1636
|
-
*
|
1637
|
-
* Some accessors should be accessible across contexts. These
|
1638
|
-
* accessors have an explicit access control parameter which specifies
|
1639
|
-
* the kind of cross-context access that should be allowed.
|
1640
|
-
*
|
1641
|
-
* Additionally, for security, accessors can prohibit overwriting by
|
1642
|
-
* accessors defined in JavaScript. For objects that have such
|
1643
|
-
* accessors either locally or in their prototype chain it is not
|
1644
|
-
* possible to overwrite the accessor by using __defineGetter__ or
|
1645
|
-
* __defineSetter__ from JavaScript code.
|
1646
|
-
*/
|
1647
|
-
enum AccessControl {
|
1648
|
-
DEFAULT = 0,
|
1649
|
-
ALL_CAN_READ = 1,
|
1650
|
-
ALL_CAN_WRITE = 1 << 1,
|
1651
|
-
PROHIBITS_OVERWRITING = 1 << 2
|
1652
|
-
};
|
1653
|
-
|
1654
|
-
|
1655
1842
|
/**
|
1656
1843
|
* Access type specification.
|
1657
1844
|
*/
|
@@ -1916,7 +2103,8 @@ class V8EXPORT ObjectTemplate : public Template {
|
|
1916
2103
|
*
|
1917
2104
|
* \param getter The callback to invoke when getting a property.
|
1918
2105
|
* \param setter The callback to invoke when setting a property.
|
1919
|
-
* \param query The callback to invoke to check
|
2106
|
+
* \param query The callback to invoke to check if a property is present,
|
2107
|
+
* and if present, get its attributes.
|
1920
2108
|
* \param deleter The callback to invoke when deleting a property.
|
1921
2109
|
* \param enumerator The callback to invoke to enumerate all the named
|
1922
2110
|
* properties of an object.
|
@@ -2122,7 +2310,7 @@ class V8EXPORT ResourceConstraints {
|
|
2122
2310
|
};
|
2123
2311
|
|
2124
2312
|
|
2125
|
-
bool SetResourceConstraints(ResourceConstraints* constraints);
|
2313
|
+
bool V8EXPORT SetResourceConstraints(ResourceConstraints* constraints);
|
2126
2314
|
|
2127
2315
|
|
2128
2316
|
// --- E x c e p t i o n s ---
|
@@ -2198,15 +2386,6 @@ typedef void (*GCEpilogueCallback)(GCType type, GCCallbackFlags flags);
|
|
2198
2386
|
typedef void (*GCCallback)();
|
2199
2387
|
|
2200
2388
|
|
2201
|
-
// --- C o n t e x t G e n e r a t o r ---
|
2202
|
-
|
2203
|
-
/**
|
2204
|
-
* Applications must provide a callback function which is called to generate
|
2205
|
-
* a context if a context was not deserialized from the snapshot.
|
2206
|
-
*/
|
2207
|
-
typedef Persistent<Context> (*ContextGenerator)();
|
2208
|
-
|
2209
|
-
|
2210
2389
|
/**
|
2211
2390
|
* Profiler modules.
|
2212
2391
|
*
|
@@ -2289,6 +2468,15 @@ class V8EXPORT V8 {
|
|
2289
2468
|
*/
|
2290
2469
|
static void RemoveMessageListeners(MessageCallback that);
|
2291
2470
|
|
2471
|
+
/**
|
2472
|
+
* Tells V8 to capture current stack trace when uncaught exception occurs
|
2473
|
+
* and report it to the message listeners. The option is off by default.
|
2474
|
+
*/
|
2475
|
+
static void SetCaptureStackTraceForUncaughtExceptions(
|
2476
|
+
bool capture,
|
2477
|
+
int frame_limit = 10,
|
2478
|
+
StackTrace::StackTraceOptions options = StackTrace::kOverview);
|
2479
|
+
|
2292
2480
|
/**
|
2293
2481
|
* Sets V8 flags from a string.
|
2294
2482
|
*/
|
@@ -2764,7 +2952,12 @@ class V8EXPORT Context {
|
|
2764
2952
|
*/
|
2765
2953
|
void ReattachGlobal(Handle<Object> global_object);
|
2766
2954
|
|
2767
|
-
/** Creates a new context.
|
2955
|
+
/** Creates a new context.
|
2956
|
+
*
|
2957
|
+
* Returns a persistent handle to the newly allocated context. This
|
2958
|
+
* persistent handle has to be disposed when the context is no
|
2959
|
+
* longer used so the context can be garbage collected.
|
2960
|
+
*/
|
2768
2961
|
static Persistent<Context> New(
|
2769
2962
|
ExtensionConfiguration* extensions = NULL,
|
2770
2963
|
Handle<ObjectTemplate> global_template = Handle<ObjectTemplate>(),
|
@@ -2827,7 +3020,7 @@ class V8EXPORT Context {
|
|
2827
3020
|
* Stack-allocated class which sets the execution context for all
|
2828
3021
|
* operations executed within a local scope.
|
2829
3022
|
*/
|
2830
|
-
class
|
3023
|
+
class Scope {
|
2831
3024
|
public:
|
2832
3025
|
inline Scope(Handle<Context> context) : context_(context) {
|
2833
3026
|
context_->Enter();
|
@@ -3035,13 +3228,11 @@ class Internals {
|
|
3035
3228
|
static const int kProxyProxyOffset = sizeof(void*);
|
3036
3229
|
static const int kJSObjectHeaderSize = 3 * sizeof(void*);
|
3037
3230
|
static const int kFullStringRepresentationMask = 0x07;
|
3038
|
-
static const int kExternalTwoByteRepresentationTag =
|
3231
|
+
static const int kExternalTwoByteRepresentationTag = 0x02;
|
3039
3232
|
|
3040
|
-
|
3041
|
-
|
3042
|
-
|
3043
|
-
V8EXPORT static int kFirstNonstringType;
|
3044
|
-
V8EXPORT static int kProxyType;
|
3233
|
+
static const int kJSObjectType = 0x9f;
|
3234
|
+
static const int kFirstNonstringType = 0x80;
|
3235
|
+
static const int kProxyType = 0x85;
|
3045
3236
|
|
3046
3237
|
static inline bool HasHeapObjectTag(internal::Object* value) {
|
3047
3238
|
return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) ==
|
@@ -3148,6 +3339,17 @@ void Persistent<T>::ClearWeak() {
|
|
3148
3339
|
V8::ClearWeak(reinterpret_cast<internal::Object**>(**this));
|
3149
3340
|
}
|
3150
3341
|
|
3342
|
+
|
3343
|
+
Arguments::Arguments(v8::Local<v8::Value> data,
|
3344
|
+
v8::Local<v8::Object> holder,
|
3345
|
+
v8::Local<v8::Function> callee,
|
3346
|
+
bool is_construct_call,
|
3347
|
+
void** values, int length)
|
3348
|
+
: data_(data), holder_(holder), callee_(callee),
|
3349
|
+
is_construct_call_(is_construct_call),
|
3350
|
+
values_(values), length_(length) { }
|
3351
|
+
|
3352
|
+
|
3151
3353
|
Local<Value> Arguments::operator[](int i) const {
|
3152
3354
|
if (i < 0 || length_ <= i) return Local<Value>(*Undefined());
|
3153
3355
|
return Local<Value>(reinterpret_cast<Value*>(values_ - i));
|
@@ -3408,7 +3610,6 @@ Local<Object> AccessorInfo::Holder() const {
|
|
3408
3610
|
|
3409
3611
|
|
3410
3612
|
#undef V8EXPORT
|
3411
|
-
#undef V8EXPORT_INLINE
|
3412
3613
|
#undef TYPE_CHECK
|
3413
3614
|
|
3414
3615
|
|