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
@@ -45,23 +45,46 @@ namespace internal {
|
|
45
45
|
// The old generation is collected by a mark-sweep-compact collector.
|
46
46
|
//
|
47
47
|
// The semispaces of the young generation are contiguous. The old and map
|
48
|
-
// spaces consists of a list of pages. A page has a page header
|
49
|
-
//
|
50
|
-
//
|
48
|
+
// spaces consists of a list of pages. A page has a page header and an object
|
49
|
+
// area. A page size is deliberately chosen as 8K bytes.
|
50
|
+
// The first word of a page is an opaque page header that has the
|
51
51
|
// address of the next page and its ownership information. The second word may
|
52
|
-
// have the allocation top address of this page.
|
53
|
-
//
|
54
|
-
// remembered set bit corresponds to a pointer in the object area.
|
52
|
+
// have the allocation top address of this page. Heap objects are aligned to the
|
53
|
+
// pointer size.
|
55
54
|
//
|
56
55
|
// There is a separate large object space for objects larger than
|
57
56
|
// Page::kMaxHeapObjectSize, so that they do not have to move during
|
58
|
-
// collection.
|
59
|
-
//
|
57
|
+
// collection. The large object space is paged. Pages in large object space
|
58
|
+
// may be larger than 8K.
|
59
|
+
//
|
60
|
+
// A card marking write barrier is used to keep track of intergenerational
|
61
|
+
// references. Old space pages are divided into regions of Page::kRegionSize
|
62
|
+
// size. Each region has a corresponding dirty bit in the page header which is
|
63
|
+
// set if the region might contain pointers to new space. For details about
|
64
|
+
// dirty bits encoding see comments in the Page::GetRegionNumberForAddress()
|
65
|
+
// method body.
|
66
|
+
//
|
67
|
+
// During scavenges and mark-sweep collections we iterate intergenerational
|
68
|
+
// pointers without decoding heap object maps so if the page belongs to old
|
69
|
+
// pointer space or large object space it is essential to guarantee that
|
70
|
+
// the page does not contain any garbage pointers to new space: every pointer
|
71
|
+
// aligned word which satisfies the Heap::InNewSpace() predicate must be a
|
72
|
+
// pointer to a live heap object in new space. Thus objects in old pointer
|
73
|
+
// and large object spaces should have a special layout (e.g. no bare integer
|
74
|
+
// fields). This requirement does not apply to map space which is iterated in
|
75
|
+
// a special fashion. However we still require pointer fields of dead maps to
|
76
|
+
// be cleaned.
|
77
|
+
//
|
78
|
+
// To enable lazy cleaning of old space pages we use a notion of allocation
|
79
|
+
// watermark. Every pointer under watermark is considered to be well formed.
|
80
|
+
// Page allocation watermark is not necessarily equal to page allocation top but
|
81
|
+
// all alive objects on page should reside under allocation watermark.
|
82
|
+
// During scavenge allocation watermark might be bumped and invalid pointers
|
83
|
+
// might appear below it. To avoid following them we store a valid watermark
|
84
|
+
// into special field in the page header and set a page WATERMARK_INVALIDATED
|
85
|
+
// flag. For details see comments in the Page::SetAllocationWatermark() method
|
86
|
+
// body.
|
60
87
|
//
|
61
|
-
// NOTE: The mark-compact collector rebuilds the remembered set after a
|
62
|
-
// collection. It reuses first a few words of the remembered set for
|
63
|
-
// bookkeeping relocation information.
|
64
|
-
|
65
88
|
|
66
89
|
// Some assertion macros used in the debugging mode.
|
67
90
|
|
@@ -91,25 +114,13 @@ class AllocationInfo;
|
|
91
114
|
|
92
115
|
// -----------------------------------------------------------------------------
|
93
116
|
// A page normally has 8K bytes. Large object pages may be larger. A page
|
94
|
-
// address is always aligned to the 8K page size.
|
95
|
-
// three areas: the first two words are used for bookkeeping, the next 248
|
96
|
-
// bytes are used as remembered set, and the rest of the page is the object
|
97
|
-
// area.
|
98
|
-
//
|
99
|
-
// Pointers are aligned to the pointer size (4), only 1 bit is needed
|
100
|
-
// for a pointer in the remembered set. Given an address, its remembered set
|
101
|
-
// bit position (offset from the start of the page) is calculated by dividing
|
102
|
-
// its page offset by 32. Therefore, the object area in a page starts at the
|
103
|
-
// 256th byte (8K/32). Bytes 0 to 255 do not need the remembered set, so that
|
104
|
-
// the first two words (64 bits) in a page can be used for other purposes.
|
117
|
+
// address is always aligned to the 8K page size.
|
105
118
|
//
|
106
|
-
//
|
107
|
-
//
|
108
|
-
// only 128 bytes for the RSet, and only get two bytes free in the RSet's RSet.
|
109
|
-
// For this reason we add an offset to get room for the Page data at the start.
|
119
|
+
// Each page starts with a header of Page::kPageHeaderSize size which contains
|
120
|
+
// bookkeeping data.
|
110
121
|
//
|
111
122
|
// The mark-compact collector transforms a map pointer into a page index and a
|
112
|
-
// page offset. The
|
123
|
+
// page offset. The exact encoding is described in the comments for
|
113
124
|
// class MapWord in objects.h.
|
114
125
|
//
|
115
126
|
// The only way to get a page pointer is by calling factory methods:
|
@@ -150,18 +161,25 @@ class Page {
|
|
150
161
|
// Return the end of allocation in this page. Undefined for unused pages.
|
151
162
|
inline Address AllocationTop();
|
152
163
|
|
164
|
+
// Return the allocation watermark for the page.
|
165
|
+
// For old space pages it is guaranteed that the area under the watermark
|
166
|
+
// does not contain any garbage pointers to new space.
|
167
|
+
inline Address AllocationWatermark();
|
168
|
+
|
169
|
+
// Return the allocation watermark offset from the beginning of the page.
|
170
|
+
inline uint32_t AllocationWatermarkOffset();
|
171
|
+
|
172
|
+
inline void SetAllocationWatermark(Address allocation_watermark);
|
173
|
+
|
174
|
+
inline void SetCachedAllocationWatermark(Address allocation_watermark);
|
175
|
+
inline Address CachedAllocationWatermark();
|
176
|
+
|
153
177
|
// Returns the start address of the object area in this page.
|
154
178
|
Address ObjectAreaStart() { return address() + kObjectStartOffset; }
|
155
179
|
|
156
180
|
// Returns the end address (exclusive) of the object area in this page.
|
157
181
|
Address ObjectAreaEnd() { return address() + Page::kPageSize; }
|
158
182
|
|
159
|
-
// Returns the start address of the remembered set area.
|
160
|
-
Address RSetStart() { return address() + kRSetStartOffset; }
|
161
|
-
|
162
|
-
// Returns the end address of the remembered set area (exclusive).
|
163
|
-
Address RSetEnd() { return address() + kRSetEndOffset; }
|
164
|
-
|
165
183
|
// Checks whether an address is page aligned.
|
166
184
|
static bool IsAlignedToPageSize(Address a) {
|
167
185
|
return 0 == (OffsetFrom(a) & kPageAlignmentMask);
|
@@ -193,33 +211,24 @@ class Page {
|
|
193
211
|
}
|
194
212
|
|
195
213
|
// ---------------------------------------------------------------------
|
196
|
-
//
|
214
|
+
// Card marking support
|
197
215
|
|
198
|
-
|
199
|
-
|
216
|
+
static const uint32_t kAllRegionsCleanMarks = 0x0;
|
217
|
+
static const uint32_t kAllRegionsDirtyMarks = 0xFFFFFFFF;
|
200
218
|
|
201
|
-
|
202
|
-
|
203
|
-
// mask in the output parameter 'bitmask'.
|
204
|
-
INLINE(static Address ComputeRSetBitPosition(Address address, int offset,
|
205
|
-
uint32_t* bitmask));
|
219
|
+
inline uint32_t GetRegionMarks();
|
220
|
+
inline void SetRegionMarks(uint32_t dirty);
|
206
221
|
|
207
|
-
|
208
|
-
|
222
|
+
inline uint32_t GetRegionMaskForAddress(Address addr);
|
223
|
+
inline uint32_t GetRegionMaskForSpan(Address start, int length_in_bytes);
|
224
|
+
inline int GetRegionNumberForAddress(Address addr);
|
209
225
|
|
210
|
-
|
211
|
-
|
226
|
+
inline void MarkRegionDirty(Address addr);
|
227
|
+
inline bool IsRegionDirty(Address addr);
|
212
228
|
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
#ifdef DEBUG
|
217
|
-
// Use a state to mark whether remembered set space can be used for other
|
218
|
-
// purposes.
|
219
|
-
enum RSetState { IN_USE, NOT_IN_USE };
|
220
|
-
static bool is_rset_in_use() { return rset_state_ == IN_USE; }
|
221
|
-
static void set_rset_state(RSetState state) { rset_state_ = state; }
|
222
|
-
#endif
|
229
|
+
inline void ClearRegionMarks(Address start,
|
230
|
+
Address end,
|
231
|
+
bool reaches_limit);
|
223
232
|
|
224
233
|
// Page size in bytes. This must be a multiple of the OS page size.
|
225
234
|
static const int kPageSize = 1 << kPageSizeBits;
|
@@ -227,25 +236,11 @@ class Page {
|
|
227
236
|
// Page size mask.
|
228
237
|
static const intptr_t kPageAlignmentMask = (1 << kPageSizeBits) - 1;
|
229
238
|
|
230
|
-
|
231
|
-
|
232
|
-
#ifdef V8_TARGET_ARCH_X64
|
233
|
-
static const int kRSetOffset = 4 * kPointerSize; // Room for four pointers.
|
234
|
-
#else
|
235
|
-
static const int kRSetOffset = 0;
|
236
|
-
#endif
|
237
|
-
// The end offset of the remembered set in a page
|
238
|
-
// (heaps are aligned to pointer size).
|
239
|
-
static const int kRSetEndOffset = kRSetOffset + kPageSize / kBitsPerPointer;
|
239
|
+
static const int kPageHeaderSize = kPointerSize + kPointerSize + kIntSize +
|
240
|
+
kIntSize + kPointerSize;
|
240
241
|
|
241
242
|
// The start offset of the object area in a page.
|
242
|
-
|
243
|
-
// to align start of rset to a uint32_t address.
|
244
|
-
static const int kObjectStartOffset = 256;
|
245
|
-
|
246
|
-
// The start offset of the used part of the remembered set in a page.
|
247
|
-
static const int kRSetStartOffset = kRSetOffset +
|
248
|
-
kObjectStartOffset / kBitsPerPointer;
|
243
|
+
static const int kObjectStartOffset = MAP_POINTER_ALIGN(kPageHeaderSize);
|
249
244
|
|
250
245
|
// Object area size in bytes.
|
251
246
|
static const int kObjectAreaSize = kPageSize - kObjectStartOffset;
|
@@ -253,13 +248,65 @@ class Page {
|
|
253
248
|
// Maximum object size that fits in a page.
|
254
249
|
static const int kMaxHeapObjectSize = kObjectAreaSize;
|
255
250
|
|
251
|
+
static const int kDirtyFlagOffset = 2 * kPointerSize;
|
252
|
+
static const int kRegionSizeLog2 = 8;
|
253
|
+
static const int kRegionSize = 1 << kRegionSizeLog2;
|
254
|
+
static const intptr_t kRegionAlignmentMask = (kRegionSize - 1);
|
255
|
+
|
256
|
+
STATIC_CHECK(kRegionSize == kPageSize / kBitsPerInt);
|
257
|
+
|
256
258
|
enum PageFlag {
|
257
259
|
IS_NORMAL_PAGE = 1 << 0,
|
258
|
-
WAS_IN_USE_BEFORE_MC = 1 << 1
|
260
|
+
WAS_IN_USE_BEFORE_MC = 1 << 1,
|
261
|
+
|
262
|
+
// Page allocation watermark was bumped by preallocation during scavenge.
|
263
|
+
// Correct watermark can be retrieved by CachedAllocationWatermark() method
|
264
|
+
WATERMARK_INVALIDATED = 1 << 2
|
259
265
|
};
|
260
266
|
|
267
|
+
// To avoid an additional WATERMARK_INVALIDATED flag clearing pass during
|
268
|
+
// scavenge we just invalidate the watermark on each old space page after
|
269
|
+
// processing it. And then we flip the meaning of the WATERMARK_INVALIDATED
|
270
|
+
// flag at the beginning of the next scavenge and each page becomes marked as
|
271
|
+
// having a valid watermark.
|
272
|
+
//
|
273
|
+
// The following invariant must hold for pages in old pointer and map spaces:
|
274
|
+
// If page is in use then page is marked as having invalid watermark at
|
275
|
+
// the beginning and at the end of any GC.
|
276
|
+
//
|
277
|
+
// This invariant guarantees that after flipping flag meaning at the
|
278
|
+
// beginning of scavenge all pages in use will be marked as having valid
|
279
|
+
// watermark.
|
280
|
+
static inline void FlipMeaningOfInvalidatedWatermarkFlag();
|
281
|
+
|
282
|
+
// Returns true if the page allocation watermark was not altered during
|
283
|
+
// scavenge.
|
284
|
+
inline bool IsWatermarkValid();
|
285
|
+
|
286
|
+
inline void InvalidateWatermark(bool value);
|
287
|
+
|
261
288
|
inline bool GetPageFlag(PageFlag flag);
|
262
289
|
inline void SetPageFlag(PageFlag flag, bool value);
|
290
|
+
inline void ClearPageFlags();
|
291
|
+
|
292
|
+
inline void ClearGCFields();
|
293
|
+
|
294
|
+
static const int kAllocationWatermarkOffsetShift = 3;
|
295
|
+
static const int kAllocationWatermarkOffsetBits = kPageSizeBits + 1;
|
296
|
+
static const uint32_t kAllocationWatermarkOffsetMask =
|
297
|
+
((1 << kAllocationWatermarkOffsetBits) - 1) <<
|
298
|
+
kAllocationWatermarkOffsetShift;
|
299
|
+
|
300
|
+
static const uint32_t kFlagsMask =
|
301
|
+
((1 << kAllocationWatermarkOffsetShift) - 1);
|
302
|
+
|
303
|
+
STATIC_CHECK(kBitsPerInt - kAllocationWatermarkOffsetShift >=
|
304
|
+
kAllocationWatermarkOffsetBits);
|
305
|
+
|
306
|
+
// This field contains the meaning of the WATERMARK_INVALIDATED flag.
|
307
|
+
// Instead of clearing this flag from all pages we just flip
|
308
|
+
// its meaning at the beginning of a scavenge.
|
309
|
+
static intptr_t watermark_invalidated_mark_;
|
263
310
|
|
264
311
|
//---------------------------------------------------------------------------
|
265
312
|
// Page header description.
|
@@ -279,26 +326,24 @@ class Page {
|
|
279
326
|
// second word *may* (if the page start and large object chunk start are
|
280
327
|
// the same) contain the large object chunk size. In either case, the
|
281
328
|
// low-order bit for large object pages will be cleared.
|
282
|
-
// For normal pages this word is used to store
|
283
|
-
|
329
|
+
// For normal pages this word is used to store page flags and
|
330
|
+
// offset of allocation top.
|
331
|
+
intptr_t flags_;
|
284
332
|
|
285
|
-
//
|
286
|
-
//
|
287
|
-
//
|
333
|
+
// This field contains dirty marks for regions covering the page. Only dirty
|
334
|
+
// regions might contain intergenerational references.
|
335
|
+
// Only 32 dirty marks are supported so for large object pages several regions
|
336
|
+
// might be mapped to a single dirty mark.
|
337
|
+
uint32_t dirty_regions_;
|
288
338
|
|
289
339
|
// The index of the page in its owner space.
|
290
340
|
int mc_page_index;
|
291
341
|
|
292
|
-
//
|
293
|
-
|
294
|
-
|
295
|
-
//
|
342
|
+
// During mark-compact collections this field contains the forwarding address
|
343
|
+
// of the first live object in this page.
|
344
|
+
// During scavenge collection this field is used to store allocation watermark
|
345
|
+
// if it is altered during scavenge.
|
296
346
|
Address mc_first_forwarded;
|
297
|
-
|
298
|
-
#ifdef DEBUG
|
299
|
-
private:
|
300
|
-
static RSetState rset_state_; // state of the remembered set
|
301
|
-
#endif
|
302
347
|
};
|
303
348
|
|
304
349
|
|
@@ -921,8 +966,7 @@ class PagedSpace : public Space {
|
|
921
966
|
// Checks whether page is currently in use by this space.
|
922
967
|
bool IsUsed(Page* page);
|
923
968
|
|
924
|
-
|
925
|
-
void ClearRSet();
|
969
|
+
void MarkAllPagesClean();
|
926
970
|
|
927
971
|
// Prepares for a mark-compact GC.
|
928
972
|
virtual void PrepareForMarkCompact(bool will_compact);
|
@@ -936,6 +980,11 @@ class PagedSpace : public Space {
|
|
936
980
|
// The limit of allocation for a page in this space.
|
937
981
|
virtual Address PageAllocationLimit(Page* page) = 0;
|
938
982
|
|
983
|
+
void FlushTopPageWatermark() {
|
984
|
+
AllocationTopPage()->SetCachedAllocationWatermark(top());
|
985
|
+
AllocationTopPage()->InvalidateWatermark(true);
|
986
|
+
}
|
987
|
+
|
939
988
|
// Current capacity without growing (Size() + Available() + Waste()).
|
940
989
|
int Capacity() { return accounting_stats_.Capacity(); }
|
941
990
|
|
@@ -990,7 +1039,8 @@ class PagedSpace : public Space {
|
|
990
1039
|
|
991
1040
|
// Writes relocation info to the top page.
|
992
1041
|
void MCWriteRelocationInfoToPage() {
|
993
|
-
TopPageOf(mc_forwarding_info_)->
|
1042
|
+
TopPageOf(mc_forwarding_info_)->
|
1043
|
+
SetAllocationWatermark(mc_forwarding_info_.top);
|
994
1044
|
}
|
995
1045
|
|
996
1046
|
// Computes the offset of a given address in this space to the beginning
|
@@ -1108,8 +1158,6 @@ class PagedSpace : public Space {
|
|
1108
1158
|
#ifdef DEBUG
|
1109
1159
|
// Returns the number of total pages in this space.
|
1110
1160
|
int CountTotalPages();
|
1111
|
-
|
1112
|
-
void DoPrintRSet(const char* space_name);
|
1113
1161
|
#endif
|
1114
1162
|
private:
|
1115
1163
|
|
@@ -1702,6 +1750,9 @@ class FixedSizeFreeList BASE_EMBEDDED {
|
|
1702
1750
|
// The head of the free list.
|
1703
1751
|
Address head_;
|
1704
1752
|
|
1753
|
+
// The tail of the free list.
|
1754
|
+
Address tail_;
|
1755
|
+
|
1705
1756
|
// The identity of the owning space, for building allocation Failure
|
1706
1757
|
// objects.
|
1707
1758
|
AllocationSpace owner_;
|
@@ -1762,8 +1813,6 @@ class OldSpace : public PagedSpace {
|
|
1762
1813
|
#ifdef DEBUG
|
1763
1814
|
// Reports statistics for the space
|
1764
1815
|
void ReportStatistics();
|
1765
|
-
// Dump the remembered sets in the space to stdout.
|
1766
|
-
void PrintRSet();
|
1767
1816
|
#endif
|
1768
1817
|
|
1769
1818
|
protected:
|
@@ -1828,9 +1877,6 @@ class FixedSpace : public PagedSpace {
|
|
1828
1877
|
#ifdef DEBUG
|
1829
1878
|
// Reports statistic info of the space
|
1830
1879
|
void ReportStatistics();
|
1831
|
-
|
1832
|
-
// Dump the remembered sets in the space to stdout.
|
1833
|
-
void PrintRSet();
|
1834
1880
|
#endif
|
1835
1881
|
|
1836
1882
|
protected:
|
@@ -1899,11 +1945,11 @@ class MapSpace : public FixedSpace {
|
|
1899
1945
|
PageIterator it(this, PageIterator::ALL_PAGES);
|
1900
1946
|
while (pages_left-- > 0) {
|
1901
1947
|
ASSERT(it.has_next());
|
1902
|
-
it.next()->
|
1948
|
+
it.next()->SetRegionMarks(Page::kAllRegionsCleanMarks);
|
1903
1949
|
}
|
1904
1950
|
ASSERT(it.has_next());
|
1905
1951
|
Page* top_page = it.next();
|
1906
|
-
top_page->
|
1952
|
+
top_page->SetRegionMarks(Page::kAllRegionsCleanMarks);
|
1907
1953
|
ASSERT(top_page->is_valid());
|
1908
1954
|
|
1909
1955
|
int offset = live_maps % kMapsPerPage * Map::kSize;
|
@@ -1994,9 +2040,8 @@ class LargeObjectChunk {
|
|
1994
2040
|
public:
|
1995
2041
|
// Allocates a new LargeObjectChunk that contains a large object page
|
1996
2042
|
// (Page::kPageSize aligned) that has at least size_in_bytes (for a large
|
1997
|
-
// object
|
1998
|
-
//
|
1999
|
-
// parameter chunk_size.
|
2043
|
+
// object) bytes after the object area start of that page.
|
2044
|
+
// The allocated chunk size is set in the output parameter chunk_size.
|
2000
2045
|
static LargeObjectChunk* New(int size_in_bytes,
|
2001
2046
|
size_t* chunk_size,
|
2002
2047
|
Executability executable);
|
@@ -2019,16 +2064,12 @@ class LargeObjectChunk {
|
|
2019
2064
|
// Returns the object in this chunk.
|
2020
2065
|
inline HeapObject* GetObject();
|
2021
2066
|
|
2022
|
-
// Given a requested size
|
2023
|
-
//
|
2067
|
+
// Given a requested size returns the physical size of a chunk to be
|
2068
|
+
// allocated.
|
2024
2069
|
static int ChunkSizeFor(int size_in_bytes);
|
2025
2070
|
|
2026
|
-
// Given a chunk size, returns the object size it can accommodate
|
2027
|
-
//
|
2028
|
-
// LargeObjectSpace::Available. Note that this can overestimate the size
|
2029
|
-
// of object that will fit in a chunk---if the object requires extra
|
2030
|
-
// remembered set words (eg, for large fixed arrays), the actual object
|
2031
|
-
// size for the chunk will be smaller than reported by this function.
|
2071
|
+
// Given a chunk size, returns the object size it can accommodate. Used by
|
2072
|
+
// LargeObjectSpace::Available.
|
2032
2073
|
static int ObjectSizeFor(int chunk_size) {
|
2033
2074
|
if (chunk_size <= (Page::kPageSize + Page::kObjectStartOffset)) return 0;
|
2034
2075
|
return chunk_size - Page::kPageSize - Page::kObjectStartOffset;
|
@@ -2064,8 +2105,7 @@ class LargeObjectSpace : public Space {
|
|
2064
2105
|
// Allocates a large FixedArray.
|
2065
2106
|
Object* AllocateRawFixedArray(int size_in_bytes);
|
2066
2107
|
|
2067
|
-
// Available bytes for objects in this space
|
2068
|
-
// remembered set words.
|
2108
|
+
// Available bytes for objects in this space.
|
2069
2109
|
int Available() {
|
2070
2110
|
return LargeObjectChunk::ObjectSizeFor(MemoryAllocator::Available());
|
2071
2111
|
}
|
@@ -2083,11 +2123,8 @@ class LargeObjectSpace : public Space {
|
|
2083
2123
|
// space, may be slow.
|
2084
2124
|
Object* FindObject(Address a);
|
2085
2125
|
|
2086
|
-
//
|
2087
|
-
void
|
2088
|
-
|
2089
|
-
// Iterates objects whose remembered set bits are set.
|
2090
|
-
void IterateRSet(ObjectSlotCallback func);
|
2126
|
+
// Iterates objects covered by dirty regions.
|
2127
|
+
void IterateDirtyRegions(ObjectSlotCallback func);
|
2091
2128
|
|
2092
2129
|
// Frees unmarked objects.
|
2093
2130
|
void FreeUnmarkedObjects();
|
@@ -2114,8 +2151,6 @@ class LargeObjectSpace : public Space {
|
|
2114
2151
|
virtual void Print();
|
2115
2152
|
void ReportStatistics();
|
2116
2153
|
void CollectCodeStatistics();
|
2117
|
-
// Dump the remembered sets in the space to stdout.
|
2118
|
-
void PrintRSet();
|
2119
2154
|
#endif
|
2120
2155
|
// Checks whether an address is in the object area in this space. It
|
2121
2156
|
// iterates all objects in the space. May be slow.
|
@@ -2134,10 +2169,6 @@ class LargeObjectSpace : public Space {
|
|
2134
2169
|
int object_size,
|
2135
2170
|
Executability executable);
|
2136
2171
|
|
2137
|
-
// Returns the number of extra bytes (rounded up to the nearest full word)
|
2138
|
-
// required for extra_object_bytes of extra pointers (in bytes).
|
2139
|
-
static inline int ExtraRSetBytesFor(int extra_object_bytes);
|
2140
|
-
|
2141
2172
|
friend class LargeObjectIterator;
|
2142
2173
|
|
2143
2174
|
public:
|