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
@@ -0,0 +1,81 @@
|
|
1
|
+
// Copyright 2010 the V8 project authors. All rights reserved.
|
2
|
+
// Redistribution and use in source and binary forms, with or without
|
3
|
+
// modification, are permitted provided that the following conditions are
|
4
|
+
// met:
|
5
|
+
//
|
6
|
+
// * Redistributions of source code must retain the above copyright
|
7
|
+
// notice, this list of conditions and the following disclaimer.
|
8
|
+
// * Redistributions in binary form must reproduce the above
|
9
|
+
// copyright notice, this list of conditions and the following
|
10
|
+
// disclaimer in the documentation and/or other materials provided
|
11
|
+
// with the distribution.
|
12
|
+
// * Neither the name of Google Inc. nor the names of its
|
13
|
+
// contributors may be used to endorse or promote products derived
|
14
|
+
// from this software without specific prior written permission.
|
15
|
+
//
|
16
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
|
28
|
+
#include "v8.h"
|
29
|
+
|
30
|
+
#include "ast.h"
|
31
|
+
|
32
|
+
namespace v8 {
|
33
|
+
namespace internal {
|
34
|
+
|
35
|
+
BreakableStatement::BreakableStatement(ZoneStringList* labels, Type type)
|
36
|
+
: labels_(labels), type_(type) {
|
37
|
+
ASSERT(labels == NULL || labels->length() > 0);
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
SwitchStatement::SwitchStatement(ZoneStringList* labels)
|
42
|
+
: BreakableStatement(labels, TARGET_FOR_ANONYMOUS),
|
43
|
+
tag_(NULL), cases_(NULL) {
|
44
|
+
}
|
45
|
+
|
46
|
+
|
47
|
+
IterationStatement::IterationStatement(ZoneStringList* labels)
|
48
|
+
: BreakableStatement(labels, TARGET_FOR_ANONYMOUS),
|
49
|
+
body_(NULL),
|
50
|
+
continue_target_(JumpTarget::BIDIRECTIONAL) {
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
Block::Block(ZoneStringList* labels, int capacity, bool is_initializer_block)
|
55
|
+
: BreakableStatement(labels, TARGET_FOR_NAMED_ONLY),
|
56
|
+
statements_(capacity),
|
57
|
+
is_initializer_block_(is_initializer_block) {
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
ForStatement::ForStatement(ZoneStringList* labels)
|
62
|
+
: IterationStatement(labels),
|
63
|
+
init_(NULL),
|
64
|
+
cond_(NULL),
|
65
|
+
next_(NULL),
|
66
|
+
may_have_function_literal_(true),
|
67
|
+
loop_variable_(NULL),
|
68
|
+
peel_this_loop_(false) {
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
ForInStatement::ForInStatement(ZoneStringList* labels)
|
73
|
+
: IterationStatement(labels), each_(NULL), enumerable_(NULL) {
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
DoWhileStatement::DoWhileStatement(ZoneStringList* labels)
|
78
|
+
: IterationStatement(labels), cond_(NULL), condition_position_(-1) {
|
79
|
+
}
|
80
|
+
|
81
|
+
} } // namespace v8::internal
|
@@ -32,6 +32,8 @@
|
|
32
32
|
#include "parser.h"
|
33
33
|
#include "scopes.h"
|
34
34
|
#include "string-stream.h"
|
35
|
+
#include "ast-inl.h"
|
36
|
+
#include "jump-target-inl.h"
|
35
37
|
|
36
38
|
namespace v8 {
|
37
39
|
namespace internal {
|
@@ -786,6 +788,13 @@ Block::Block(Block* other, ZoneList<Statement*>* statements)
|
|
786
788
|
}
|
787
789
|
|
788
790
|
|
791
|
+
WhileStatement::WhileStatement(ZoneStringList* labels)
|
792
|
+
: IterationStatement(labels),
|
793
|
+
cond_(NULL),
|
794
|
+
may_have_function_literal_(true) {
|
795
|
+
}
|
796
|
+
|
797
|
+
|
789
798
|
ExpressionStatement::ExpressionStatement(ExpressionStatement* other,
|
790
799
|
Expression* expression)
|
791
800
|
: Statement(other), expression_(expression) {}
|
@@ -809,6 +818,11 @@ IterationStatement::IterationStatement(IterationStatement* other,
|
|
809
818
|
: BreakableStatement(other), body_(body) {}
|
810
819
|
|
811
820
|
|
821
|
+
CaseClause::CaseClause(Expression* label, ZoneList<Statement*>* statements)
|
822
|
+
: label_(label), statements_(statements) {
|
823
|
+
}
|
824
|
+
|
825
|
+
|
812
826
|
ForStatement::ForStatement(ForStatement* other,
|
813
827
|
Statement* init,
|
814
828
|
Expression* cond,
|
@@ -351,10 +351,7 @@ class BreakableStatement: public Statement {
|
|
351
351
|
bool is_target_for_anonymous() const { return type_ == TARGET_FOR_ANONYMOUS; }
|
352
352
|
|
353
353
|
protected:
|
354
|
-
BreakableStatement(ZoneStringList* labels, Type type)
|
355
|
-
: labels_(labels), type_(type) {
|
356
|
-
ASSERT(labels == NULL || labels->length() > 0);
|
357
|
-
}
|
354
|
+
inline BreakableStatement(ZoneStringList* labels, Type type);
|
358
355
|
|
359
356
|
explicit BreakableStatement(BreakableStatement* other);
|
360
357
|
|
@@ -367,10 +364,7 @@ class BreakableStatement: public Statement {
|
|
367
364
|
|
368
365
|
class Block: public BreakableStatement {
|
369
366
|
public:
|
370
|
-
Block(ZoneStringList* labels, int capacity, bool is_initializer_block)
|
371
|
-
: BreakableStatement(labels, TARGET_FOR_NAMED_ONLY),
|
372
|
-
statements_(capacity),
|
373
|
-
is_initializer_block_(is_initializer_block) { }
|
367
|
+
inline Block(ZoneStringList* labels, int capacity, bool is_initializer_block);
|
374
368
|
|
375
369
|
// Construct a clone initialized from the original block and
|
376
370
|
// a deep copy of all statements of the original block.
|
@@ -437,8 +431,7 @@ class IterationStatement: public BreakableStatement {
|
|
437
431
|
BreakTarget* continue_target() { return &continue_target_; }
|
438
432
|
|
439
433
|
protected:
|
440
|
-
explicit IterationStatement(ZoneStringList* labels)
|
441
|
-
: BreakableStatement(labels, TARGET_FOR_ANONYMOUS), body_(NULL) { }
|
434
|
+
explicit inline IterationStatement(ZoneStringList* labels);
|
442
435
|
|
443
436
|
// Construct a clone initialized from original and
|
444
437
|
// a deep copy of the original body.
|
@@ -456,9 +449,7 @@ class IterationStatement: public BreakableStatement {
|
|
456
449
|
|
457
450
|
class DoWhileStatement: public IterationStatement {
|
458
451
|
public:
|
459
|
-
explicit DoWhileStatement(ZoneStringList* labels)
|
460
|
-
: IterationStatement(labels), cond_(NULL), condition_position_(-1) {
|
461
|
-
}
|
452
|
+
explicit inline DoWhileStatement(ZoneStringList* labels);
|
462
453
|
|
463
454
|
void Initialize(Expression* cond, Statement* body) {
|
464
455
|
IterationStatement::Initialize(body);
|
@@ -482,11 +473,7 @@ class DoWhileStatement: public IterationStatement {
|
|
482
473
|
|
483
474
|
class WhileStatement: public IterationStatement {
|
484
475
|
public:
|
485
|
-
explicit WhileStatement(ZoneStringList* labels)
|
486
|
-
: IterationStatement(labels),
|
487
|
-
cond_(NULL),
|
488
|
-
may_have_function_literal_(true) {
|
489
|
-
}
|
476
|
+
explicit WhileStatement(ZoneStringList* labels);
|
490
477
|
|
491
478
|
void Initialize(Expression* cond, Statement* body) {
|
492
479
|
IterationStatement::Initialize(body);
|
@@ -511,14 +498,7 @@ class WhileStatement: public IterationStatement {
|
|
511
498
|
|
512
499
|
class ForStatement: public IterationStatement {
|
513
500
|
public:
|
514
|
-
explicit ForStatement(ZoneStringList* labels)
|
515
|
-
: IterationStatement(labels),
|
516
|
-
init_(NULL),
|
517
|
-
cond_(NULL),
|
518
|
-
next_(NULL),
|
519
|
-
may_have_function_literal_(true),
|
520
|
-
loop_variable_(NULL),
|
521
|
-
peel_this_loop_(false) {}
|
501
|
+
explicit inline ForStatement(ZoneStringList* labels);
|
522
502
|
|
523
503
|
// Construct a for-statement initialized from another for-statement
|
524
504
|
// and deep copies of all parts of the original statement.
|
@@ -574,8 +554,7 @@ class ForStatement: public IterationStatement {
|
|
574
554
|
|
575
555
|
class ForInStatement: public IterationStatement {
|
576
556
|
public:
|
577
|
-
explicit ForInStatement(ZoneStringList* labels)
|
578
|
-
: IterationStatement(labels), each_(NULL), enumerable_(NULL) { }
|
557
|
+
explicit inline ForInStatement(ZoneStringList* labels);
|
579
558
|
|
580
559
|
void Initialize(Expression* each, Expression* enumerable, Statement* body) {
|
581
560
|
IterationStatement::Initialize(body);
|
@@ -691,8 +670,7 @@ class WithExitStatement: public Statement {
|
|
691
670
|
|
692
671
|
class CaseClause: public ZoneObject {
|
693
672
|
public:
|
694
|
-
CaseClause(Expression* label, ZoneList<Statement*>* statements)
|
695
|
-
: label_(label), statements_(statements) { }
|
673
|
+
CaseClause(Expression* label, ZoneList<Statement*>* statements);
|
696
674
|
|
697
675
|
bool is_default() const { return label_ == NULL; }
|
698
676
|
Expression* label() const {
|
@@ -711,9 +689,7 @@ class CaseClause: public ZoneObject {
|
|
711
689
|
|
712
690
|
class SwitchStatement: public BreakableStatement {
|
713
691
|
public:
|
714
|
-
explicit SwitchStatement(ZoneStringList* labels)
|
715
|
-
: BreakableStatement(labels, TARGET_FOR_ANONYMOUS),
|
716
|
-
tag_(NULL), cases_(NULL) { }
|
692
|
+
explicit inline SwitchStatement(ZoneStringList* labels);
|
717
693
|
|
718
694
|
void Initialize(Expression* tag, ZoneList<CaseClause*>* cases) {
|
719
695
|
tag_ = tag;
|
@@ -1493,10 +1469,14 @@ class Conditional: public Expression {
|
|
1493
1469
|
public:
|
1494
1470
|
Conditional(Expression* condition,
|
1495
1471
|
Expression* then_expression,
|
1496
|
-
Expression* else_expression
|
1472
|
+
Expression* else_expression,
|
1473
|
+
int then_expression_position,
|
1474
|
+
int else_expression_position)
|
1497
1475
|
: condition_(condition),
|
1498
1476
|
then_expression_(then_expression),
|
1499
|
-
else_expression_(else_expression)
|
1477
|
+
else_expression_(else_expression),
|
1478
|
+
then_expression_position_(then_expression_position),
|
1479
|
+
else_expression_position_(else_expression_position) { }
|
1500
1480
|
|
1501
1481
|
virtual void Accept(AstVisitor* v);
|
1502
1482
|
|
@@ -1506,10 +1486,15 @@ class Conditional: public Expression {
|
|
1506
1486
|
Expression* then_expression() const { return then_expression_; }
|
1507
1487
|
Expression* else_expression() const { return else_expression_; }
|
1508
1488
|
|
1489
|
+
int then_expression_position() { return then_expression_position_; }
|
1490
|
+
int else_expression_position() { return else_expression_position_; }
|
1491
|
+
|
1509
1492
|
private:
|
1510
1493
|
Expression* condition_;
|
1511
1494
|
Expression* then_expression_;
|
1512
1495
|
Expression* else_expression_;
|
1496
|
+
int then_expression_position_;
|
1497
|
+
int else_expression_position_;
|
1513
1498
|
};
|
1514
1499
|
|
1515
1500
|
|
@@ -37,6 +37,7 @@
|
|
37
37
|
#include "macro-assembler.h"
|
38
38
|
#include "natives.h"
|
39
39
|
#include "snapshot.h"
|
40
|
+
#include "stub-cache.h"
|
40
41
|
|
41
42
|
namespace v8 {
|
42
43
|
namespace internal {
|
@@ -228,6 +229,7 @@ class Genesis BASE_EMBEDDED {
|
|
228
229
|
// Used for creating a context from scratch.
|
229
230
|
void InstallNativeFunctions();
|
230
231
|
bool InstallNatives();
|
232
|
+
void InstallCustomCallGenerators();
|
231
233
|
void InstallJSFunctionResultCaches();
|
232
234
|
// Used both for deserialized and from-scratch contexts to add the extensions
|
233
235
|
// provided.
|
@@ -810,6 +812,9 @@ void Genesis::InitializeGlobal(Handle<GlobalObject> inner_global,
|
|
810
812
|
initial_map->set_instance_size(
|
811
813
|
initial_map->instance_size() + 5 * kPointerSize);
|
812
814
|
initial_map->set_instance_descriptors(*descriptors);
|
815
|
+
initial_map->set_scavenger(
|
816
|
+
Heap::GetScavenger(initial_map->instance_type(),
|
817
|
+
initial_map->instance_size()));
|
813
818
|
}
|
814
819
|
|
815
820
|
{ // -- J S O N
|
@@ -1229,6 +1234,8 @@ bool Genesis::InstallNatives() {
|
|
1229
1234
|
|
1230
1235
|
InstallNativeFunctions();
|
1231
1236
|
|
1237
|
+
InstallCustomCallGenerators();
|
1238
|
+
|
1232
1239
|
// Install Function.prototype.call and apply.
|
1233
1240
|
{ Handle<String> key = Factory::function_class_symbol();
|
1234
1241
|
Handle<JSFunction> function =
|
@@ -1326,6 +1333,29 @@ bool Genesis::InstallNatives() {
|
|
1326
1333
|
}
|
1327
1334
|
|
1328
1335
|
|
1336
|
+
static void InstallCustomCallGenerator(Handle<JSFunction> holder_function,
|
1337
|
+
const char* function_name,
|
1338
|
+
int id) {
|
1339
|
+
Handle<JSObject> proto(JSObject::cast(holder_function->instance_prototype()));
|
1340
|
+
Handle<String> name = Factory::LookupAsciiSymbol(function_name);
|
1341
|
+
Handle<JSFunction> function(JSFunction::cast(proto->GetProperty(*name)));
|
1342
|
+
function->shared()->set_function_data(Smi::FromInt(id));
|
1343
|
+
}
|
1344
|
+
|
1345
|
+
|
1346
|
+
void Genesis::InstallCustomCallGenerators() {
|
1347
|
+
HandleScope scope;
|
1348
|
+
#define INSTALL_CALL_GENERATOR(holder_fun, fun_name, name) \
|
1349
|
+
{ \
|
1350
|
+
Handle<JSFunction> holder(global_context()->holder_fun##_function()); \
|
1351
|
+
const int id = CallStubCompiler::k##name##CallGenerator; \
|
1352
|
+
InstallCustomCallGenerator(holder, #fun_name, id); \
|
1353
|
+
}
|
1354
|
+
CUSTOM_CALL_IC_GENERATORS(INSTALL_CALL_GENERATOR)
|
1355
|
+
#undef INSTALL_CALL_GENERATOR
|
1356
|
+
}
|
1357
|
+
|
1358
|
+
|
1329
1359
|
// Do not forget to update macros.py with named constant
|
1330
1360
|
// of cache id.
|
1331
1361
|
#define JSFUNCTION_RESULT_CACHE_LIST(F) \
|
@@ -1435,6 +1465,7 @@ bool Genesis::InstallExtensions(Handle<Context> global_context,
|
|
1435
1465
|
}
|
1436
1466
|
|
1437
1467
|
if (FLAG_expose_gc) InstallExtension("v8/gc");
|
1468
|
+
if (FLAG_expose_externalize_string) InstallExtension("v8/externalize");
|
1438
1469
|
|
1439
1470
|
if (extensions == NULL) return true;
|
1440
1471
|
// Install required extensions
|
@@ -1726,8 +1757,8 @@ Genesis::Genesis(Handle<Object> global_object,
|
|
1726
1757
|
CreateNewGlobals(global_template, global_object, &inner_global);
|
1727
1758
|
HookUpGlobalProxy(inner_global, global_proxy);
|
1728
1759
|
InitializeGlobal(inner_global, empty_function);
|
1729
|
-
if (!InstallNatives()) return;
|
1730
1760
|
InstallJSFunctionResultCaches();
|
1761
|
+
if (!InstallNatives()) return;
|
1731
1762
|
|
1732
1763
|
MakeFunctionInstancePrototypeWritable();
|
1733
1764
|
|
@@ -80,10 +80,6 @@ class Bootstrapper : public AllStatic {
|
|
80
80
|
// Tells whether bootstrapping is active.
|
81
81
|
static bool IsActive() { return BootstrapperActive::IsActive(); }
|
82
82
|
|
83
|
-
// Encoding/decoding support for fixup flags.
|
84
|
-
class FixupFlagsUseCodeObject: public BitField<bool, 0, 1> {};
|
85
|
-
class FixupFlagsArgumentsCount: public BitField<uint32_t, 1, 32-1> {};
|
86
|
-
|
87
83
|
// Support for thread preemption.
|
88
84
|
static int ArchiveSpacePerThread();
|
89
85
|
static char* ArchiveState(char* to);
|
@@ -195,6 +195,7 @@ BUILTIN(ArrayCodeGeneric) {
|
|
195
195
|
}
|
196
196
|
|
197
197
|
// 'array' now contains the JSArray we should initialize.
|
198
|
+
ASSERT(array->HasFastElements());
|
198
199
|
|
199
200
|
// Optimize the case where there is one argument and the argument is a
|
200
201
|
// small smi.
|
@@ -305,7 +306,7 @@ static FixedArray* LeftTrimFixedArray(FixedArray* elms, int to_trim) {
|
|
305
306
|
// In large object space the object's start must coincide with chunk
|
306
307
|
// and thus the trick is just not applicable.
|
307
308
|
// In old space we do not use this trick to avoid dealing with
|
308
|
-
//
|
309
|
+
// region dirty marks.
|
309
310
|
ASSERT(Heap::new_space()->Contains(elms));
|
310
311
|
|
311
312
|
STATIC_ASSERT(FixedArray::kMapOffset == 0);
|
@@ -322,7 +323,7 @@ static FixedArray* LeftTrimFixedArray(FixedArray* elms, int to_trim) {
|
|
322
323
|
Heap::CreateFillerObjectAt(elms->address(), to_trim * kPointerSize);
|
323
324
|
|
324
325
|
former_start[to_trim] = Heap::fixed_array_map();
|
325
|
-
former_start[to_trim + 1] =
|
326
|
+
former_start[to_trim + 1] = Smi::FromInt(len - to_trim);
|
326
327
|
|
327
328
|
ASSERT_EQ(elms->address() + to_trim * kPointerSize,
|
328
329
|
(elms + to_trim * kPointerSize)->address());
|
@@ -330,22 +331,19 @@ static FixedArray* LeftTrimFixedArray(FixedArray* elms, int to_trim) {
|
|
330
331
|
}
|
331
332
|
|
332
333
|
|
333
|
-
static bool ArrayPrototypeHasNoElements(
|
334
|
+
static bool ArrayPrototypeHasNoElements(Context* global_context,
|
335
|
+
JSObject* array_proto) {
|
334
336
|
// This method depends on non writability of Object and Array prototype
|
335
337
|
// fields.
|
336
|
-
|
337
|
-
// Array.prototype
|
338
|
-
JSObject* proto =
|
339
|
-
JSObject::cast(global_context->array_function()->prototype());
|
340
|
-
if (proto->elements() != Heap::empty_fixed_array()) return false;
|
338
|
+
if (array_proto->elements() != Heap::empty_fixed_array()) return false;
|
341
339
|
// Hidden prototype
|
342
|
-
|
343
|
-
ASSERT(
|
340
|
+
array_proto = JSObject::cast(array_proto->GetPrototype());
|
341
|
+
ASSERT(array_proto->elements() == Heap::empty_fixed_array());
|
344
342
|
// Object.prototype
|
345
|
-
|
346
|
-
if (
|
347
|
-
if (
|
348
|
-
ASSERT(
|
343
|
+
array_proto = JSObject::cast(array_proto->GetPrototype());
|
344
|
+
if (array_proto != global_context->initial_object_prototype()) return false;
|
345
|
+
if (array_proto->elements() != Heap::empty_fixed_array()) return false;
|
346
|
+
ASSERT(array_proto->GetPrototype()->IsNull());
|
349
347
|
return true;
|
350
348
|
}
|
351
349
|
|
@@ -368,6 +366,18 @@ static bool IsJSArrayWithFastElements(Object* receiver,
|
|
368
366
|
}
|
369
367
|
|
370
368
|
|
369
|
+
static bool IsFastElementMovingAllowed(Object* receiver,
|
370
|
+
FixedArray** elements) {
|
371
|
+
if (!IsJSArrayWithFastElements(receiver, elements)) return false;
|
372
|
+
|
373
|
+
Context* global_context = Top::context()->global_context();
|
374
|
+
JSObject* array_proto =
|
375
|
+
JSObject::cast(global_context->array_function()->prototype());
|
376
|
+
if (JSArray::cast(receiver)->GetPrototype() != array_proto) return false;
|
377
|
+
return ArrayPrototypeHasNoElements(global_context, array_proto);
|
378
|
+
}
|
379
|
+
|
380
|
+
|
371
381
|
static Object* CallJsBuiltin(const char* name,
|
372
382
|
BuiltinArguments<NO_EXTRA_ARGUMENTS> args) {
|
373
383
|
HandleScope handleScope;
|
@@ -377,7 +387,7 @@ static Object* CallJsBuiltin(const char* name,
|
|
377
387
|
name);
|
378
388
|
ASSERT(js_builtin->IsJSFunction());
|
379
389
|
Handle<JSFunction> function(Handle<JSFunction>::cast(js_builtin));
|
380
|
-
|
390
|
+
ScopedVector<Object**> argv(args.length() - 1);
|
381
391
|
int n_args = args.length() - 1;
|
382
392
|
for (int i = 0; i < n_args; i++) {
|
383
393
|
argv[i] = args.at<Object>(i + 1).location();
|
@@ -388,7 +398,6 @@ static Object* CallJsBuiltin(const char* name,
|
|
388
398
|
n_args,
|
389
399
|
argv.start(),
|
390
400
|
&pending_exception);
|
391
|
-
argv.Dispose();
|
392
401
|
if (pending_exception) return Failure::Exception();
|
393
402
|
return *result;
|
394
403
|
}
|
@@ -466,11 +475,7 @@ BUILTIN(ArrayPop) {
|
|
466
475
|
return top;
|
467
476
|
}
|
468
477
|
|
469
|
-
|
470
|
-
JSFunction* array_function =
|
471
|
-
Top::context()->global_context()->array_function();
|
472
|
-
JSObject* prototype = JSObject::cast(array_function->prototype());
|
473
|
-
top = prototype->GetElement(len - 1);
|
478
|
+
top = array->GetPrototype()->GetElement(len - 1);
|
474
479
|
|
475
480
|
return top;
|
476
481
|
}
|
@@ -479,8 +484,7 @@ BUILTIN(ArrayPop) {
|
|
479
484
|
BUILTIN(ArrayShift) {
|
480
485
|
Object* receiver = *args.receiver();
|
481
486
|
FixedArray* elms = NULL;
|
482
|
-
if (!
|
483
|
-
|| !ArrayPrototypeHasNoElements()) {
|
487
|
+
if (!IsFastElementMovingAllowed(receiver, &elms)) {
|
484
488
|
return CallJsBuiltin("ArrayShift", args);
|
485
489
|
}
|
486
490
|
JSArray* array = JSArray::cast(receiver);
|
@@ -497,7 +501,7 @@ BUILTIN(ArrayShift) {
|
|
497
501
|
|
498
502
|
if (Heap::new_space()->Contains(elms)) {
|
499
503
|
// As elms still in the same space they used to be (new space),
|
500
|
-
// there is no need to update
|
504
|
+
// there is no need to update region dirty mark.
|
501
505
|
array->set_elements(LeftTrimFixedArray(elms, 1), SKIP_WRITE_BARRIER);
|
502
506
|
} else {
|
503
507
|
// Shift the elements.
|
@@ -516,8 +520,7 @@ BUILTIN(ArrayShift) {
|
|
516
520
|
BUILTIN(ArrayUnshift) {
|
517
521
|
Object* receiver = *args.receiver();
|
518
522
|
FixedArray* elms = NULL;
|
519
|
-
if (!
|
520
|
-
|| !ArrayPrototypeHasNoElements()) {
|
523
|
+
if (!IsFastElementMovingAllowed(receiver, &elms)) {
|
521
524
|
return CallJsBuiltin("ArrayUnshift", args);
|
522
525
|
}
|
523
526
|
JSArray* array = JSArray::cast(receiver);
|
@@ -566,8 +569,7 @@ BUILTIN(ArrayUnshift) {
|
|
566
569
|
BUILTIN(ArraySlice) {
|
567
570
|
Object* receiver = *args.receiver();
|
568
571
|
FixedArray* elms = NULL;
|
569
|
-
if (!
|
570
|
-
|| !ArrayPrototypeHasNoElements()) {
|
572
|
+
if (!IsFastElementMovingAllowed(receiver, &elms)) {
|
571
573
|
return CallJsBuiltin("ArraySlice", args);
|
572
574
|
}
|
573
575
|
JSArray* array = JSArray::cast(receiver);
|
@@ -636,8 +638,7 @@ BUILTIN(ArraySlice) {
|
|
636
638
|
BUILTIN(ArraySplice) {
|
637
639
|
Object* receiver = *args.receiver();
|
638
640
|
FixedArray* elms = NULL;
|
639
|
-
if (!
|
640
|
-
|| !ArrayPrototypeHasNoElements()) {
|
641
|
+
if (!IsFastElementMovingAllowed(receiver, &elms)) {
|
641
642
|
return CallJsBuiltin("ArraySplice", args);
|
642
643
|
}
|
643
644
|
JSArray* array = JSArray::cast(receiver);
|
@@ -789,7 +790,10 @@ BUILTIN(ArraySplice) {
|
|
789
790
|
|
790
791
|
|
791
792
|
BUILTIN(ArrayConcat) {
|
792
|
-
|
793
|
+
Context* global_context = Top::context()->global_context();
|
794
|
+
JSObject* array_proto =
|
795
|
+
JSObject::cast(global_context->array_function()->prototype());
|
796
|
+
if (!ArrayPrototypeHasNoElements(global_context, array_proto)) {
|
793
797
|
return CallJsBuiltin("ArrayConcat", args);
|
794
798
|
}
|
795
799
|
|
@@ -799,7 +803,8 @@ BUILTIN(ArrayConcat) {
|
|
799
803
|
int result_len = 0;
|
800
804
|
for (int i = 0; i < n_arguments; i++) {
|
801
805
|
Object* arg = args[i];
|
802
|
-
if (!arg->IsJSArray() || !JSArray::cast(arg)->HasFastElements()
|
806
|
+
if (!arg->IsJSArray() || !JSArray::cast(arg)->HasFastElements()
|
807
|
+
|| JSArray::cast(arg)->GetPrototype() != array_proto) {
|
803
808
|
return CallJsBuiltin("ArrayConcat", args);
|
804
809
|
}
|
805
810
|
|
@@ -1258,6 +1263,11 @@ static void Generate_StoreIC_Miss(MacroAssembler* masm) {
|
|
1258
1263
|
}
|
1259
1264
|
|
1260
1265
|
|
1266
|
+
static void Generate_StoreIC_Normal(MacroAssembler* masm) {
|
1267
|
+
StoreIC::GenerateNormal(masm);
|
1268
|
+
}
|
1269
|
+
|
1270
|
+
|
1261
1271
|
static void Generate_StoreIC_Megamorphic(MacroAssembler* masm) {
|
1262
1272
|
StoreIC::GenerateMegamorphic(masm);
|
1263
1273
|
}
|
@@ -1356,10 +1366,17 @@ static void Generate_StubNoRegisters_DebugBreak(MacroAssembler* masm) {
|
|
1356
1366
|
Debug::GenerateStubNoRegistersDebugBreak(masm);
|
1357
1367
|
}
|
1358
1368
|
|
1369
|
+
|
1370
|
+
static void Generate_Slot_DebugBreak(MacroAssembler* masm) {
|
1371
|
+
Debug::GenerateSlotDebugBreak(masm);
|
1372
|
+
}
|
1373
|
+
|
1374
|
+
|
1359
1375
|
static void Generate_PlainReturn_LiveEdit(MacroAssembler* masm) {
|
1360
1376
|
Debug::GeneratePlainReturnLiveEdit(masm);
|
1361
1377
|
}
|
1362
1378
|
|
1379
|
+
|
1363
1380
|
static void Generate_FrameDropper_LiveEdit(MacroAssembler* masm) {
|
1364
1381
|
Debug::GenerateFrameDropperLiveEdit(masm);
|
1365
1382
|
}
|
@@ -1458,7 +1475,7 @@ void Builtins::Setup(bool create_heap_objects) {
|
|
1458
1475
|
// During startup it's OK to always allocate and defer GC to later.
|
1459
1476
|
// This simplifies things because we don't need to retry.
|
1460
1477
|
AlwaysAllocateScope __scope__;
|
1461
|
-
code = Heap::CreateCode(desc,
|
1478
|
+
code = Heap::CreateCode(desc, flags, masm.CodeObject());
|
1462
1479
|
if (code->IsFailure()) {
|
1463
1480
|
v8::internal::V8::FatalProcessOutOfMemory("CreateCode");
|
1464
1481
|
}
|