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
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright
|
1
|
+
// Copyright 2010 the V8 project authors. All rights reserved.
|
2
2
|
// Redistribution and use in source and binary forms, with or without
|
3
3
|
// modification, are permitted provided that the following conditions are
|
4
4
|
// met:
|
@@ -31,6 +31,7 @@
|
|
31
31
|
#include "v8.h"
|
32
32
|
|
33
33
|
#include "ast.h"
|
34
|
+
#include "compiler.h"
|
34
35
|
|
35
36
|
namespace v8 {
|
36
37
|
namespace internal {
|
@@ -58,6 +59,31 @@ class FullCodeGenSyntaxChecker: public AstVisitor {
|
|
58
59
|
};
|
59
60
|
|
60
61
|
|
62
|
+
// AST node visitor which can tell whether a given statement will be breakable
|
63
|
+
// when the code is compiled by the full compiler in the debugger. This means
|
64
|
+
// that there will be an IC (load/store/call) in the code generated for the
|
65
|
+
// debugger to piggybag on.
|
66
|
+
class BreakableStatementChecker: public AstVisitor {
|
67
|
+
public:
|
68
|
+
BreakableStatementChecker() : is_breakable_(false) {}
|
69
|
+
|
70
|
+
void Check(Statement* stmt);
|
71
|
+
void Check(Expression* stmt);
|
72
|
+
|
73
|
+
bool is_breakable() { return is_breakable_; }
|
74
|
+
|
75
|
+
private:
|
76
|
+
// AST node visit functions.
|
77
|
+
#define DECLARE_VISIT(type) virtual void Visit##type(type* node);
|
78
|
+
AST_NODE_LIST(DECLARE_VISIT)
|
79
|
+
#undef DECLARE_VISIT
|
80
|
+
|
81
|
+
bool is_breakable_;
|
82
|
+
|
83
|
+
DISALLOW_COPY_AND_ASSIGN(BreakableStatementChecker);
|
84
|
+
};
|
85
|
+
|
86
|
+
|
61
87
|
// -----------------------------------------------------------------------------
|
62
88
|
// Full code generator.
|
63
89
|
|
@@ -229,8 +255,6 @@ class FullCodeGenerator: public AstVisitor {
|
|
229
255
|
return stack_depth + kForInStackElementCount;
|
230
256
|
}
|
231
257
|
private:
|
232
|
-
// TODO(lrn): Check that this value is correct when implementing
|
233
|
-
// for-in.
|
234
258
|
static const int kForInStackElementCount = 5;
|
235
259
|
DISALLOW_COPY_AND_ASSIGN(ForIn);
|
236
260
|
};
|
@@ -258,12 +282,22 @@ class FullCodeGenerator: public AstVisitor {
|
|
258
282
|
// context.
|
259
283
|
void DropAndApply(int count, Expression::Context context, Register reg);
|
260
284
|
|
285
|
+
// Set up branch labels for a test expression.
|
286
|
+
void PrepareTest(Label* materialize_true,
|
287
|
+
Label* materialize_false,
|
288
|
+
Label** if_true,
|
289
|
+
Label** if_false);
|
290
|
+
|
261
291
|
// Emit code to convert pure control flow to a pair of labels into the
|
262
292
|
// result expected according to an expression context.
|
263
293
|
void Apply(Expression::Context context,
|
264
294
|
Label* materialize_true,
|
265
295
|
Label* materialize_false);
|
266
296
|
|
297
|
+
// Emit code to convert constant control flow (true or false) into
|
298
|
+
// the result expected according to an expression context.
|
299
|
+
void Apply(Expression::Context context, bool flag);
|
300
|
+
|
267
301
|
// Helper function to convert a pure value into a test context. The value
|
268
302
|
// is expected on the stack or the accumulator, depending on the platform.
|
269
303
|
// See the platform-specific implementation for details.
|
@@ -348,16 +382,64 @@ class FullCodeGenerator: public AstVisitor {
|
|
348
382
|
void VisitDeclarations(ZoneList<Declaration*>* declarations);
|
349
383
|
void DeclareGlobals(Handle<FixedArray> pairs);
|
350
384
|
|
385
|
+
// Platform-specific code for a variable, constant, or function
|
386
|
+
// declaration. Functions have an initial value.
|
387
|
+
void EmitDeclaration(Variable* variable,
|
388
|
+
Variable::Mode mode,
|
389
|
+
FunctionLiteral* function);
|
390
|
+
|
351
391
|
// Platform-specific return sequence
|
352
|
-
void EmitReturnSequence(
|
392
|
+
void EmitReturnSequence();
|
353
393
|
|
354
394
|
// Platform-specific code sequences for calls
|
355
395
|
void EmitCallWithStub(Call* expr);
|
356
396
|
void EmitCallWithIC(Call* expr, Handle<Object> name, RelocInfo::Mode mode);
|
397
|
+
void EmitKeyedCallWithIC(Call* expr, Expression* key, RelocInfo::Mode mode);
|
398
|
+
|
399
|
+
|
400
|
+
// Platform-specific code for inline runtime calls.
|
401
|
+
void EmitInlineRuntimeCall(CallRuntime* expr);
|
402
|
+
void EmitIsSmi(ZoneList<Expression*>* arguments);
|
403
|
+
void EmitIsNonNegativeSmi(ZoneList<Expression*>* arguments);
|
404
|
+
void EmitIsObject(ZoneList<Expression*>* arguments);
|
405
|
+
void EmitIsSpecObject(ZoneList<Expression*>* arguments);
|
406
|
+
void EmitIsUndetectableObject(ZoneList<Expression*>* arguments);
|
407
|
+
void EmitIsFunction(ZoneList<Expression*>* arguments);
|
408
|
+
void EmitIsArray(ZoneList<Expression*>* arguments);
|
409
|
+
void EmitIsRegExp(ZoneList<Expression*>* arguments);
|
410
|
+
void EmitIsConstructCall(ZoneList<Expression*>* arguments);
|
411
|
+
void EmitObjectEquals(ZoneList<Expression*>* arguments);
|
412
|
+
void EmitArguments(ZoneList<Expression*>* arguments);
|
413
|
+
void EmitArgumentsLength(ZoneList<Expression*>* arguments);
|
414
|
+
void EmitClassOf(ZoneList<Expression*>* arguments);
|
415
|
+
void EmitValueOf(ZoneList<Expression*>* arguments);
|
416
|
+
void EmitSetValueOf(ZoneList<Expression*>* arguments);
|
417
|
+
void EmitNumberToString(ZoneList<Expression*>* arguments);
|
418
|
+
void EmitStringCharFromCode(ZoneList<Expression*>* arguments);
|
419
|
+
void EmitStringCharCodeAt(ZoneList<Expression*>* arguments);
|
420
|
+
void EmitStringCharAt(ZoneList<Expression*>* arguments);
|
421
|
+
void EmitStringCompare(ZoneList<Expression*>* arguments);
|
422
|
+
void EmitStringAdd(ZoneList<Expression*>* arguments);
|
423
|
+
void EmitLog(ZoneList<Expression*>* arguments);
|
424
|
+
void EmitRandomHeapNumber(ZoneList<Expression*>* arguments);
|
425
|
+
void EmitSubString(ZoneList<Expression*>* arguments);
|
426
|
+
void EmitRegExpExec(ZoneList<Expression*>* arguments);
|
427
|
+
void EmitMathPow(ZoneList<Expression*>* arguments);
|
428
|
+
void EmitMathSin(ZoneList<Expression*>* arguments);
|
429
|
+
void EmitMathCos(ZoneList<Expression*>* arguments);
|
430
|
+
void EmitMathSqrt(ZoneList<Expression*>* arguments);
|
431
|
+
void EmitCallFunction(ZoneList<Expression*>* arguments);
|
432
|
+
void EmitRegExpConstructResult(ZoneList<Expression*>* arguments);
|
433
|
+
void EmitSwapElements(ZoneList<Expression*>* arguments);
|
434
|
+
void EmitGetFromCache(ZoneList<Expression*>* arguments);
|
357
435
|
|
358
436
|
// Platform-specific code for loading variables.
|
359
437
|
void EmitVariableLoad(Variable* expr, Expression::Context context);
|
360
438
|
|
439
|
+
// Platform-specific support for allocating a new closure based on
|
440
|
+
// the given function info.
|
441
|
+
void EmitNewClosure(Handle<SharedFunctionInfo> info);
|
442
|
+
|
361
443
|
// Platform-specific support for compiling assignments.
|
362
444
|
|
363
445
|
// Load a value from a named property.
|
@@ -372,9 +454,15 @@ class FullCodeGenerator: public AstVisitor {
|
|
372
454
|
// of the stack and the right one in the accumulator.
|
373
455
|
void EmitBinaryOp(Token::Value op, Expression::Context context);
|
374
456
|
|
457
|
+
// Assign to the given expression as if via '='. The right-hand-side value
|
458
|
+
// is expected in the accumulator.
|
459
|
+
void EmitAssignment(Expression* expr);
|
460
|
+
|
375
461
|
// Complete a variable assignment. The right-hand-side value is expected
|
376
462
|
// in the accumulator.
|
377
|
-
void EmitVariableAssignment(Variable* var,
|
463
|
+
void EmitVariableAssignment(Variable* var,
|
464
|
+
Token::Value op,
|
465
|
+
Expression::Context context);
|
378
466
|
|
379
467
|
// Complete a named property assignment. The receiver is expected on top
|
380
468
|
// of the stack and the right-hand-side value in the accumulator.
|
@@ -385,9 +473,18 @@ class FullCodeGenerator: public AstVisitor {
|
|
385
473
|
// accumulator.
|
386
474
|
void EmitKeyedPropertyAssignment(Assignment* expr);
|
387
475
|
|
476
|
+
// Helper for compare operations. Expects the null-value in a register.
|
477
|
+
void EmitNullCompare(bool strict,
|
478
|
+
Register obj,
|
479
|
+
Register null_const,
|
480
|
+
Label* if_true,
|
481
|
+
Label* if_false,
|
482
|
+
Register scratch);
|
483
|
+
|
388
484
|
void SetFunctionPosition(FunctionLiteral* fun);
|
389
485
|
void SetReturnPosition(FunctionLiteral* fun);
|
390
486
|
void SetStatementPosition(Statement* stmt);
|
487
|
+
void SetExpressionPosition(Expression* expr, int pos);
|
391
488
|
void SetStatementPosition(int pos);
|
392
489
|
void SetSourcePosition(int pos);
|
393
490
|
|
File without changes
|
File without changes
|
@@ -151,13 +151,14 @@ class GlobalHandles::Node : public Malloced {
|
|
151
151
|
bool PostGarbageCollectionProcessing() {
|
152
152
|
if (state_ != Node::PENDING) return false;
|
153
153
|
LOG(HandleEvent("GlobalHandle::Processing", handle().location()));
|
154
|
+
WeakReferenceCallback func = callback();
|
155
|
+
if (func == NULL) {
|
156
|
+
Destroy();
|
157
|
+
return false;
|
158
|
+
}
|
154
159
|
void* par = parameter();
|
155
160
|
state_ = NEAR_DEATH;
|
156
161
|
set_parameter(NULL);
|
157
|
-
// The callback function is resolved as late as possible to preserve old
|
158
|
-
// behavior.
|
159
|
-
WeakReferenceCallback func = callback();
|
160
|
-
if (func == NULL) return false;
|
161
162
|
|
162
163
|
v8::Persistent<v8::Object> object = ToApi<v8::Object>(handle());
|
163
164
|
{
|
@@ -178,6 +179,9 @@ class GlobalHandles::Node : public Malloced {
|
|
178
179
|
VMState state(EXTERNAL);
|
179
180
|
func(object, par);
|
180
181
|
}
|
182
|
+
// Absense of explicit cleanup or revival of weak handle
|
183
|
+
// in most of the cases would lead to memory leak.
|
184
|
+
ASSERT(state_ != NEAR_DEATH);
|
181
185
|
return true;
|
182
186
|
}
|
183
187
|
|
File without changes
|
@@ -46,6 +46,12 @@ namespace internal {
|
|
46
46
|
#elif defined(__ARMEL__)
|
47
47
|
#define V8_HOST_ARCH_ARM 1
|
48
48
|
#define V8_HOST_ARCH_32_BIT 1
|
49
|
+
// Some CPU-OS combinations allow unaligned access on ARM. We assume
|
50
|
+
// that unaligned accesses are not allowed unless the build system
|
51
|
+
// defines the CAN_USE_UNALIGNED_ACCESSES macro to be non-zero.
|
52
|
+
#if CAN_USE_UNALIGNED_ACCESSES
|
53
|
+
#define V8_HOST_CAN_READ_UNALIGNED 1
|
54
|
+
#endif
|
49
55
|
#elif defined(_MIPS_ARCH_MIPS32R2)
|
50
56
|
#define V8_HOST_ARCH_MIPS 1
|
51
57
|
#define V8_HOST_ARCH_32_BIT 1
|
@@ -53,6 +59,24 @@ namespace internal {
|
|
53
59
|
#error Host architecture was not detected as supported by v8
|
54
60
|
#endif
|
55
61
|
|
62
|
+
// Target architecture detection. This may be set externally. If not, detect
|
63
|
+
// in the same way as the host architecture, that is, target the native
|
64
|
+
// environment as presented by the compiler.
|
65
|
+
#if !defined(V8_TARGET_ARCH_X64) && !defined(V8_TARGET_ARCH_IA32) && \
|
66
|
+
!defined(V8_TARGET_ARCH_ARM) && !defined(V8_TARGET_ARCH_MIPS)
|
67
|
+
#if defined(_M_X64) || defined(__x86_64__)
|
68
|
+
#define V8_TARGET_ARCH_X64 1
|
69
|
+
#elif defined(_M_IX86) || defined(__i386__)
|
70
|
+
#define V8_TARGET_ARCH_IA32 1
|
71
|
+
#elif defined(__ARMEL__)
|
72
|
+
#define V8_TARGET_ARCH_ARM 1
|
73
|
+
#elif defined(_MIPS_ARCH_MIPS32R2)
|
74
|
+
#define V8_TARGET_ARCH_MIPS 1
|
75
|
+
#else
|
76
|
+
#error Target architecture was not detected as supported by v8
|
77
|
+
#endif
|
78
|
+
#endif
|
79
|
+
|
56
80
|
// Check for supported combinations of host and target architectures.
|
57
81
|
#if defined(V8_TARGET_ARCH_IA32) && !defined(V8_HOST_ARCH_IA32)
|
58
82
|
#error Target architecture ia32 is only supported on ia32 host
|
@@ -73,6 +97,12 @@ namespace internal {
|
|
73
97
|
#if defined(V8_TARGET_ARCH_X64) || defined(V8_TARGET_ARCH_IA32)
|
74
98
|
#define V8_TARGET_CAN_READ_UNALIGNED 1
|
75
99
|
#elif V8_TARGET_ARCH_ARM
|
100
|
+
// Some CPU-OS combinations allow unaligned access on ARM. We assume
|
101
|
+
// that unaligned accesses are not allowed unless the build system
|
102
|
+
// defines the CAN_USE_UNALIGNED_ACCESSES macro to be non-zero.
|
103
|
+
#if CAN_USE_UNALIGNED_ACCESSES
|
104
|
+
#define V8_TARGET_CAN_READ_UNALIGNED 1
|
105
|
+
#endif
|
76
106
|
#elif V8_TARGET_ARCH_MIPS
|
77
107
|
#else
|
78
108
|
#error Target architecture is not supported by v8
|
@@ -273,7 +303,6 @@ class HeapObject;
|
|
273
303
|
class IC;
|
274
304
|
class InterceptorInfo;
|
275
305
|
class IterationStatement;
|
276
|
-
class Array;
|
277
306
|
class JSArray;
|
278
307
|
class JSFunction;
|
279
308
|
class JSObject;
|
@@ -297,6 +326,7 @@ class RegExpCompiler;
|
|
297
326
|
class RegExpVisitor;
|
298
327
|
class Scope;
|
299
328
|
template<class Allocator = FreeStoreAllocationPolicy> class ScopeInfo;
|
329
|
+
class SerializedScopeInfo;
|
300
330
|
class Script;
|
301
331
|
class Slot;
|
302
332
|
class Smi;
|
@@ -316,7 +346,6 @@ class ObjectGroup;
|
|
316
346
|
class TickSample;
|
317
347
|
class VirtualMemory;
|
318
348
|
class Mutex;
|
319
|
-
class ZoneScopeInfo;
|
320
349
|
|
321
350
|
typedef bool (*WeakSlotCallback)(Object** pointer);
|
322
351
|
|
@@ -434,6 +463,12 @@ enum CallFunctionFlags {
|
|
434
463
|
};
|
435
464
|
|
436
465
|
|
466
|
+
enum InlineCacheHolderFlag {
|
467
|
+
OWN_MAP, // For fast properties objects.
|
468
|
+
PROTOTYPE_MAP // For slow properties objects (except GlobalObjects).
|
469
|
+
};
|
470
|
+
|
471
|
+
|
437
472
|
// Type of properties.
|
438
473
|
// Order of properties is significant.
|
439
474
|
// Must fit in the BitField PropertyDetails::TypeField.
|
@@ -514,16 +549,16 @@ enum StateTag {
|
|
514
549
|
#define HAS_FAILURE_TAG(value) \
|
515
550
|
((reinterpret_cast<intptr_t>(value) & kFailureTagMask) == kFailureTag)
|
516
551
|
|
517
|
-
//
|
518
|
-
#define
|
552
|
+
// OBJECT_POINTER_ALIGN returns the value aligned as a HeapObject pointer
|
553
|
+
#define OBJECT_POINTER_ALIGN(value) \
|
519
554
|
(((value) + kObjectAlignmentMask) & ~kObjectAlignmentMask)
|
520
555
|
|
521
556
|
// POINTER_SIZE_ALIGN returns the value aligned as a pointer.
|
522
557
|
#define POINTER_SIZE_ALIGN(value) \
|
523
558
|
(((value) + kPointerAlignmentMask) & ~kPointerAlignmentMask)
|
524
559
|
|
525
|
-
//
|
526
|
-
#define
|
560
|
+
// MAP_POINTER_ALIGN returns the value aligned as a map pointer.
|
561
|
+
#define MAP_POINTER_ALIGN(value) \
|
527
562
|
(((value) + kMapAlignmentMask) & ~kMapAlignmentMask)
|
528
563
|
|
529
564
|
// The expression OFFSET_OF(type, field) computes the byte-offset
|
@@ -618,7 +653,9 @@ F FUNCTION_CAST(Address addr) {
|
|
618
653
|
// Feature flags bit positions. They are mostly based on the CPUID spec.
|
619
654
|
// (We assign CPUID itself to one of the currently reserved bits --
|
620
655
|
// feel free to change this if needed.)
|
621
|
-
|
656
|
+
// On X86/X64, values below 32 are bits in EDX, values above 32 are bits in ECX.
|
657
|
+
enum CpuFeature { SSE4_1 = 32 + 19, // x86
|
658
|
+
SSE3 = 32 + 0, // x86
|
622
659
|
SSE2 = 26, // x86
|
623
660
|
CMOV = 15, // x86
|
624
661
|
RDTSC = 4, // x86
|
File without changes
|
@@ -197,7 +197,17 @@ void TransformToFastProperties(Handle<JSObject> object,
|
|
197
197
|
|
198
198
|
void FlattenString(Handle<String> string) {
|
199
199
|
CALL_HEAP_FUNCTION_VOID(string->TryFlatten());
|
200
|
+
}
|
201
|
+
|
202
|
+
|
203
|
+
Handle<String> FlattenGetString(Handle<String> string) {
|
204
|
+
Handle<String> result;
|
205
|
+
CALL_AND_RETRY(string->TryFlatten(),
|
206
|
+
{ result = Handle<String>(String::cast(__object__));
|
207
|
+
break; },
|
208
|
+
return Handle<String>());
|
200
209
|
ASSERT(string->IsFlat());
|
210
|
+
return result;
|
201
211
|
}
|
202
212
|
|
203
213
|
|
@@ -399,6 +409,11 @@ Handle<JSObject> Copy(Handle<JSObject> obj) {
|
|
399
409
|
}
|
400
410
|
|
401
411
|
|
412
|
+
Handle<Object> SetAccessor(Handle<JSObject> obj, Handle<AccessorInfo> info) {
|
413
|
+
CALL_HEAP_FUNCTION(obj->DefineAccessor(*info), Object);
|
414
|
+
}
|
415
|
+
|
416
|
+
|
402
417
|
// Wrappers for scripts are kept alive and cached in weak global
|
403
418
|
// handles referred from proxy objects held by the scripts as long as
|
404
419
|
// they are used. When they are not used anymore, the garbage
|
@@ -649,8 +664,12 @@ Handle<FixedArray> GetKeysInFixedArrayFor(Handle<JSObject> object,
|
|
649
664
|
// therefore it does not make sense to cache the property names
|
650
665
|
// for arguments objects. Arguments objects will always have
|
651
666
|
// elements.
|
667
|
+
// Wrapped strings have elements, but don't have an elements
|
668
|
+
// array or dictionary. So the fast inline test for whether to
|
669
|
+
// use the cache says yes, so we should not create a cache.
|
652
670
|
bool cache_enum_keys =
|
653
671
|
((current->map()->constructor() != *arguments_function) &&
|
672
|
+
!current->IsJSValue() &&
|
654
673
|
!current->IsAccessCheckNeeded() &&
|
655
674
|
!current->HasNamedInterceptor() &&
|
656
675
|
!current->HasIndexedInterceptor());
|
@@ -193,8 +193,14 @@ void NormalizeProperties(Handle<JSObject> object,
|
|
193
193
|
void NormalizeElements(Handle<JSObject> object);
|
194
194
|
void TransformToFastProperties(Handle<JSObject> object,
|
195
195
|
int unused_property_fields);
|
196
|
+
|
197
|
+
// Flattens a string.
|
196
198
|
void FlattenString(Handle<String> str);
|
197
199
|
|
200
|
+
// Flattens a string and returns the underlying external or sequential
|
201
|
+
// string.
|
202
|
+
Handle<String> FlattenGetString(Handle<String> str);
|
203
|
+
|
198
204
|
Handle<Object> SetProperty(Handle<JSObject> object,
|
199
205
|
Handle<String> key,
|
200
206
|
Handle<Object> value,
|
@@ -262,6 +268,8 @@ Handle<Object> LookupSingleCharacterStringFromCode(uint32_t index);
|
|
262
268
|
|
263
269
|
Handle<JSObject> Copy(Handle<JSObject> obj);
|
264
270
|
|
271
|
+
Handle<Object> SetAccessor(Handle<JSObject> obj, Handle<AccessorInfo> info);
|
272
|
+
|
265
273
|
Handle<FixedArray> AddKeysFromJSArray(Handle<FixedArray>,
|
266
274
|
Handle<JSArray> array);
|
267
275
|
|
File without changes
|
File without changes
|
@@ -117,7 +117,12 @@ void Heap::FinalizeExternalString(String* string) {
|
|
117
117
|
reinterpret_cast<byte*>(string) +
|
118
118
|
ExternalString::kResourceOffset -
|
119
119
|
kHeapObjectTag);
|
120
|
-
|
120
|
+
|
121
|
+
// Dispose of the C++ object if it has not already been disposed.
|
122
|
+
if (*resource_addr != NULL) {
|
123
|
+
(*resource_addr)->Dispose();
|
124
|
+
}
|
125
|
+
|
121
126
|
// Clear the resource pointer in the string.
|
122
127
|
*resource_addr = NULL;
|
123
128
|
}
|
@@ -184,19 +189,16 @@ void Heap::RecordWrite(Address address, int offset) {
|
|
184
189
|
if (new_space_.Contains(address)) return;
|
185
190
|
ASSERT(!new_space_.FromSpaceContains(address));
|
186
191
|
SLOW_ASSERT(Contains(address + offset));
|
187
|
-
Page::
|
192
|
+
Page::FromAddress(address)->MarkRegionDirty(address + offset);
|
188
193
|
}
|
189
194
|
|
190
195
|
|
191
196
|
void Heap::RecordWrites(Address address, int start, int len) {
|
192
197
|
if (new_space_.Contains(address)) return;
|
193
198
|
ASSERT(!new_space_.FromSpaceContains(address));
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
SLOW_ASSERT(Contains(address + offset));
|
198
|
-
Page::SetRSet(address, offset);
|
199
|
-
}
|
199
|
+
Page* page = Page::FromAddress(address);
|
200
|
+
page->SetRegionMarks(page->GetRegionMarks() |
|
201
|
+
page->GetRegionMaskForSpan(address + start, len * kPointerSize));
|
200
202
|
}
|
201
203
|
|
202
204
|
|
@@ -234,13 +236,40 @@ AllocationSpace Heap::TargetSpaceId(InstanceType type) {
|
|
234
236
|
}
|
235
237
|
|
236
238
|
|
237
|
-
void Heap::CopyBlock(
|
239
|
+
void Heap::CopyBlock(Address dst, Address src, int byte_size) {
|
240
|
+
ASSERT(IsAligned(byte_size, kPointerSize));
|
241
|
+
CopyWords(reinterpret_cast<Object**>(dst),
|
242
|
+
reinterpret_cast<Object**>(src),
|
243
|
+
byte_size / kPointerSize);
|
244
|
+
}
|
245
|
+
|
246
|
+
|
247
|
+
void Heap::CopyBlockToOldSpaceAndUpdateRegionMarks(Address dst,
|
248
|
+
Address src,
|
249
|
+
int byte_size) {
|
238
250
|
ASSERT(IsAligned(byte_size, kPointerSize));
|
239
|
-
|
251
|
+
|
252
|
+
Page* page = Page::FromAddress(dst);
|
253
|
+
uint32_t marks = page->GetRegionMarks();
|
254
|
+
|
255
|
+
for (int remaining = byte_size / kPointerSize;
|
256
|
+
remaining > 0;
|
257
|
+
remaining--) {
|
258
|
+
Memory::Object_at(dst) = Memory::Object_at(src);
|
259
|
+
|
260
|
+
if (Heap::InNewSpace(Memory::Object_at(dst))) {
|
261
|
+
marks |= page->GetRegionMaskForAddress(dst);
|
262
|
+
}
|
263
|
+
|
264
|
+
dst += kPointerSize;
|
265
|
+
src += kPointerSize;
|
266
|
+
}
|
267
|
+
|
268
|
+
page->SetRegionMarks(marks);
|
240
269
|
}
|
241
270
|
|
242
271
|
|
243
|
-
void Heap::MoveBlock(
|
272
|
+
void Heap::MoveBlock(Address dst, Address src, int byte_size) {
|
244
273
|
ASSERT(IsAligned(byte_size, kPointerSize));
|
245
274
|
|
246
275
|
int size_in_words = byte_size / kPointerSize;
|
@@ -250,10 +279,12 @@ void Heap::MoveBlock(Object** dst, Object** src, int byte_size) {
|
|
250
279
|
((OffsetFrom(reinterpret_cast<Address>(src)) -
|
251
280
|
OffsetFrom(reinterpret_cast<Address>(dst))) >= kPointerSize));
|
252
281
|
|
253
|
-
Object**
|
282
|
+
Object** src_slot = reinterpret_cast<Object**>(src);
|
283
|
+
Object** dst_slot = reinterpret_cast<Object**>(dst);
|
284
|
+
Object** end_slot = src_slot + size_in_words;
|
254
285
|
|
255
|
-
while (
|
256
|
-
*
|
286
|
+
while (src_slot != end_slot) {
|
287
|
+
*dst_slot++ = *src_slot++;
|
257
288
|
}
|
258
289
|
} else {
|
259
290
|
memmove(dst, src, byte_size);
|
@@ -261,6 +292,17 @@ void Heap::MoveBlock(Object** dst, Object** src, int byte_size) {
|
|
261
292
|
}
|
262
293
|
|
263
294
|
|
295
|
+
void Heap::MoveBlockToOldSpaceAndUpdateRegionMarks(Address dst,
|
296
|
+
Address src,
|
297
|
+
int byte_size) {
|
298
|
+
ASSERT(IsAligned(byte_size, kPointerSize));
|
299
|
+
ASSERT((dst >= (src + byte_size)) ||
|
300
|
+
((OffsetFrom(src) - OffsetFrom(dst)) >= kPointerSize));
|
301
|
+
|
302
|
+
CopyBlockToOldSpaceAndUpdateRegionMarks(dst, src, byte_size);
|
303
|
+
}
|
304
|
+
|
305
|
+
|
264
306
|
void Heap::ScavengeObject(HeapObject** p, HeapObject* object) {
|
265
307
|
ASSERT(InFromSpace(object));
|
266
308
|
|