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
@@ -80,6 +80,11 @@ struct Register {
|
|
80
80
|
return 1 << code_;
|
81
81
|
}
|
82
82
|
|
83
|
+
void set_code(int code) {
|
84
|
+
code_ = code;
|
85
|
+
ASSERT(is_valid());
|
86
|
+
}
|
87
|
+
|
83
88
|
// Unfortunately we can't make this private in a struct.
|
84
89
|
int code_;
|
85
90
|
};
|
@@ -125,6 +130,20 @@ struct DwVfpRegister {
|
|
125
130
|
// Supporting d0 to d15, can be later extended to d31.
|
126
131
|
bool is_valid() const { return 0 <= code_ && code_ < 16; }
|
127
132
|
bool is(DwVfpRegister reg) const { return code_ == reg.code_; }
|
133
|
+
SwVfpRegister low() const {
|
134
|
+
SwVfpRegister reg;
|
135
|
+
reg.code_ = code_ * 2;
|
136
|
+
|
137
|
+
ASSERT(reg.is_valid());
|
138
|
+
return reg;
|
139
|
+
}
|
140
|
+
SwVfpRegister high() const {
|
141
|
+
SwVfpRegister reg;
|
142
|
+
reg.code_ = (code_ * 2) + 1;
|
143
|
+
|
144
|
+
ASSERT(reg.is_valid());
|
145
|
+
return reg;
|
146
|
+
}
|
128
147
|
int code() const {
|
129
148
|
ASSERT(is_valid());
|
130
149
|
return code_;
|
@@ -274,7 +293,10 @@ enum Condition {
|
|
274
293
|
|
275
294
|
|
276
295
|
// Returns the equivalent of !cc.
|
277
|
-
|
296
|
+
inline Condition NegateCondition(Condition cc) {
|
297
|
+
ASSERT(cc != al);
|
298
|
+
return static_cast<Condition>(cc ^ ne);
|
299
|
+
}
|
278
300
|
|
279
301
|
|
280
302
|
// Corresponds to transposing the operands of a comparison.
|
@@ -413,7 +435,18 @@ class Operand BASE_EMBEDDED {
|
|
413
435
|
// Return true if this is a register operand.
|
414
436
|
INLINE(bool is_reg() const);
|
415
437
|
|
438
|
+
// Return true of this operand fits in one instruction so that no
|
439
|
+
// 2-instruction solution with a load into the ip register is necessary.
|
440
|
+
bool is_single_instruction() const;
|
441
|
+
|
442
|
+
inline int32_t immediate() const {
|
443
|
+
ASSERT(!rm_.is_valid());
|
444
|
+
return imm32_;
|
445
|
+
}
|
446
|
+
|
416
447
|
Register rm() const { return rm_; }
|
448
|
+
Register rs() const { return rs_; }
|
449
|
+
ShiftOp shift_op() const { return shift_op_; }
|
417
450
|
|
418
451
|
private:
|
419
452
|
Register rm_;
|
@@ -448,6 +481,19 @@ class MemOperand BASE_EMBEDDED {
|
|
448
481
|
explicit MemOperand(Register rn, Register rm,
|
449
482
|
ShiftOp shift_op, int shift_imm, AddrMode am = Offset);
|
450
483
|
|
484
|
+
void set_offset(int32_t offset) {
|
485
|
+
ASSERT(rm_.is(no_reg));
|
486
|
+
offset_ = offset;
|
487
|
+
}
|
488
|
+
|
489
|
+
uint32_t offset() {
|
490
|
+
ASSERT(rm_.is(no_reg));
|
491
|
+
return offset_;
|
492
|
+
}
|
493
|
+
|
494
|
+
Register rn() const { return rn_; }
|
495
|
+
Register rm() const { return rm_; }
|
496
|
+
|
451
497
|
private:
|
452
498
|
Register rn_; // base
|
453
499
|
Register rm_; // register offset
|
@@ -514,6 +560,27 @@ extern const Instr kLdrPCPattern;
|
|
514
560
|
extern const Instr kBlxRegMask;
|
515
561
|
extern const Instr kBlxRegPattern;
|
516
562
|
|
563
|
+
extern const Instr kMovMvnMask;
|
564
|
+
extern const Instr kMovMvnPattern;
|
565
|
+
extern const Instr kMovMvnFlip;
|
566
|
+
|
567
|
+
extern const Instr kMovLeaveCCMask;
|
568
|
+
extern const Instr kMovLeaveCCPattern;
|
569
|
+
extern const Instr kMovwMask;
|
570
|
+
extern const Instr kMovwPattern;
|
571
|
+
extern const Instr kMovwLeaveCCFlip;
|
572
|
+
|
573
|
+
extern const Instr kCmpCmnMask;
|
574
|
+
extern const Instr kCmpCmnPattern;
|
575
|
+
extern const Instr kCmpCmnFlip;
|
576
|
+
|
577
|
+
extern const Instr kALUMask;
|
578
|
+
extern const Instr kAddPattern;
|
579
|
+
extern const Instr kSubPattern;
|
580
|
+
extern const Instr kAndPattern;
|
581
|
+
extern const Instr kBicPattern;
|
582
|
+
extern const Instr kAddSubFlip;
|
583
|
+
extern const Instr kAndBicFlip;
|
517
584
|
|
518
585
|
class Assembler : public Malloced {
|
519
586
|
public:
|
@@ -611,22 +678,39 @@ class Assembler : public Malloced {
|
|
611
678
|
// Distance between start of patched return sequence and the emitted address
|
612
679
|
// to jump to.
|
613
680
|
#ifdef USE_BLX
|
614
|
-
//
|
681
|
+
// Patched return sequence is:
|
615
682
|
// ldr ip, [pc, #0] @ emited address and start
|
616
683
|
// blx ip
|
617
684
|
static const int kPatchReturnSequenceAddressOffset = 0 * kInstrSize;
|
618
685
|
#else
|
619
|
-
//
|
686
|
+
// Patched return sequence is:
|
620
687
|
// mov lr, pc @ start of sequence
|
621
688
|
// ldr pc, [pc, #-4] @ emited address
|
622
689
|
static const int kPatchReturnSequenceAddressOffset = kInstrSize;
|
623
690
|
#endif
|
624
691
|
|
692
|
+
// Distance between start of patched debug break slot and the emitted address
|
693
|
+
// to jump to.
|
694
|
+
#ifdef USE_BLX
|
695
|
+
// Patched debug break slot code is:
|
696
|
+
// ldr ip, [pc, #0] @ emited address and start
|
697
|
+
// blx ip
|
698
|
+
static const int kPatchDebugBreakSlotAddressOffset = 0 * kInstrSize;
|
699
|
+
#else
|
700
|
+
// Patched debug break slot code is:
|
701
|
+
// mov lr, pc @ start of sequence
|
702
|
+
// ldr pc, [pc, #-4] @ emited address
|
703
|
+
static const int kPatchDebugBreakSlotAddressOffset = kInstrSize;
|
704
|
+
#endif
|
705
|
+
|
625
706
|
// Difference between address of current opcode and value read from pc
|
626
707
|
// register.
|
627
708
|
static const int kPcLoadDelta = 8;
|
628
709
|
|
629
|
-
static const int
|
710
|
+
static const int kJSReturnSequenceInstructions = 4;
|
711
|
+
static const int kDebugBreakSlotInstructions = 3;
|
712
|
+
static const int kDebugBreakSlotLength =
|
713
|
+
kDebugBreakSlotInstructions * kInstrSize;
|
630
714
|
|
631
715
|
// ---------------------------------------------------------------------------
|
632
716
|
// Code generation
|
@@ -635,6 +719,8 @@ class Assembler : public Malloced {
|
|
635
719
|
// possible to align the pc offset to a multiple
|
636
720
|
// of m. m must be a power of 2 (>= 4).
|
637
721
|
void Align(int m);
|
722
|
+
// Aligns code to something that's optimal for a jump target for the platform.
|
723
|
+
void CodeTargetAlign();
|
638
724
|
|
639
725
|
// Branch instructions
|
640
726
|
void b(int branch_offset, Condition cond = al);
|
@@ -653,8 +739,6 @@ class Assembler : public Malloced {
|
|
653
739
|
void blx(Label* L) { blx(branch_offset(L, false)); } // v5 and above
|
654
740
|
|
655
741
|
// Data-processing instructions
|
656
|
-
void ubfx(Register dst, Register src1, const Operand& src2,
|
657
|
-
const Operand& src3, Condition cond = al);
|
658
742
|
|
659
743
|
void and_(Register dst, Register src1, const Operand& src2,
|
660
744
|
SBit s = LeaveCC, Condition cond = al);
|
@@ -674,6 +758,10 @@ class Assembler : public Malloced {
|
|
674
758
|
|
675
759
|
void add(Register dst, Register src1, const Operand& src2,
|
676
760
|
SBit s = LeaveCC, Condition cond = al);
|
761
|
+
void add(Register dst, Register src1, Register src2,
|
762
|
+
SBit s = LeaveCC, Condition cond = al) {
|
763
|
+
add(dst, src1, Operand(src2), s, cond);
|
764
|
+
}
|
677
765
|
|
678
766
|
void adc(Register dst, Register src1, const Operand& src2,
|
679
767
|
SBit s = LeaveCC, Condition cond = al);
|
@@ -711,6 +799,13 @@ class Assembler : public Malloced {
|
|
711
799
|
mov(dst, Operand(src), s, cond);
|
712
800
|
}
|
713
801
|
|
802
|
+
// ARMv7 instructions for loading a 32 bit immediate in two instructions.
|
803
|
+
// This may actually emit a different mov instruction, but on an ARMv7 it
|
804
|
+
// is guaranteed to only emit one instruction.
|
805
|
+
void movw(Register reg, uint32_t immediate, Condition cond = al);
|
806
|
+
// The constant for movt should be in the range 0-0xffff.
|
807
|
+
void movt(Register reg, uint32_t immediate, Condition cond = al);
|
808
|
+
|
714
809
|
void bic(Register dst, Register src1, const Operand& src2,
|
715
810
|
SBit s = LeaveCC, Condition cond = al);
|
716
811
|
|
@@ -741,6 +836,38 @@ class Assembler : public Malloced {
|
|
741
836
|
|
742
837
|
void clz(Register dst, Register src, Condition cond = al); // v5 and above
|
743
838
|
|
839
|
+
// Saturating instructions. v6 and above.
|
840
|
+
|
841
|
+
// Unsigned saturate.
|
842
|
+
//
|
843
|
+
// Saturate an optionally shifted signed value to an unsigned range.
|
844
|
+
//
|
845
|
+
// usat dst, #satpos, src
|
846
|
+
// usat dst, #satpos, src, lsl #sh
|
847
|
+
// usat dst, #satpos, src, asr #sh
|
848
|
+
//
|
849
|
+
// Register dst will contain:
|
850
|
+
//
|
851
|
+
// 0, if s < 0
|
852
|
+
// (1 << satpos) - 1, if s > ((1 << satpos) - 1)
|
853
|
+
// s, otherwise
|
854
|
+
//
|
855
|
+
// where s is the contents of src after shifting (if used.)
|
856
|
+
void usat(Register dst, int satpos, const Operand& src, Condition cond = al);
|
857
|
+
|
858
|
+
// Bitfield manipulation instructions. v7 and above.
|
859
|
+
|
860
|
+
void ubfx(Register dst, Register src, int lsb, int width,
|
861
|
+
Condition cond = al);
|
862
|
+
|
863
|
+
void sbfx(Register dst, Register src, int lsb, int width,
|
864
|
+
Condition cond = al);
|
865
|
+
|
866
|
+
void bfc(Register dst, int lsb, int width, Condition cond = al);
|
867
|
+
|
868
|
+
void bfi(Register dst, Register src, int lsb, int width,
|
869
|
+
Condition cond = al);
|
870
|
+
|
744
871
|
// Status register access instructions
|
745
872
|
|
746
873
|
void mrs(Register dst, SRegister s, Condition cond = al);
|
@@ -755,15 +882,17 @@ class Assembler : public Malloced {
|
|
755
882
|
void strh(Register src, const MemOperand& dst, Condition cond = al);
|
756
883
|
void ldrsb(Register dst, const MemOperand& src, Condition cond = al);
|
757
884
|
void ldrsh(Register dst, const MemOperand& src, Condition cond = al);
|
885
|
+
void ldrd(Register dst1,
|
886
|
+
Register dst2,
|
887
|
+
const MemOperand& src, Condition cond = al);
|
888
|
+
void strd(Register src1,
|
889
|
+
Register src2,
|
890
|
+
const MemOperand& dst, Condition cond = al);
|
758
891
|
|
759
892
|
// Load/Store multiple instructions
|
760
893
|
void ldm(BlockAddrMode am, Register base, RegList dst, Condition cond = al);
|
761
894
|
void stm(BlockAddrMode am, Register base, RegList src, Condition cond = al);
|
762
895
|
|
763
|
-
// Semaphore instructions
|
764
|
-
void swp(Register dst, Register src, Register base, Condition cond = al);
|
765
|
-
void swpb(Register dst, Register src, Register base, Condition cond = al);
|
766
|
-
|
767
896
|
// Exception-generating instructions and debugging support
|
768
897
|
void stop(const char* msg);
|
769
898
|
|
@@ -836,6 +965,16 @@ class Assembler : public Malloced {
|
|
836
965
|
const Register base,
|
837
966
|
int offset, // Offset must be a multiple of 4.
|
838
967
|
const Condition cond = al);
|
968
|
+
|
969
|
+
void vmov(const DwVfpRegister dst,
|
970
|
+
double imm,
|
971
|
+
const Condition cond = al);
|
972
|
+
void vmov(const SwVfpRegister dst,
|
973
|
+
const SwVfpRegister src,
|
974
|
+
const Condition cond = al);
|
975
|
+
void vmov(const DwVfpRegister dst,
|
976
|
+
const DwVfpRegister src,
|
977
|
+
const Condition cond = al);
|
839
978
|
void vmov(const DwVfpRegister dst,
|
840
979
|
const Register src1,
|
841
980
|
const Register src2,
|
@@ -894,6 +1033,9 @@ class Assembler : public Malloced {
|
|
894
1033
|
const Condition cond = al);
|
895
1034
|
void vmrs(const Register dst,
|
896
1035
|
const Condition cond = al);
|
1036
|
+
void vsqrt(const DwVfpRegister dst,
|
1037
|
+
const DwVfpRegister src,
|
1038
|
+
const Condition cond = al);
|
897
1039
|
|
898
1040
|
// Pseudo instructions
|
899
1041
|
void nop(int type = 0);
|
@@ -910,10 +1052,6 @@ class Assembler : public Malloced {
|
|
910
1052
|
add(sp, sp, Operand(kPointerSize));
|
911
1053
|
}
|
912
1054
|
|
913
|
-
// Load effective address of memory operand x into register dst
|
914
|
-
void lea(Register dst, const MemOperand& x,
|
915
|
-
SBit s = LeaveCC, Condition cond = al);
|
916
|
-
|
917
1055
|
// Jump unconditionally to given label.
|
918
1056
|
void jmp(Label* L) { b(L, al); }
|
919
1057
|
|
@@ -950,18 +1088,27 @@ class Assembler : public Malloced {
|
|
950
1088
|
// Mark address of the ExitJSFrame code.
|
951
1089
|
void RecordJSReturn();
|
952
1090
|
|
1091
|
+
// Mark address of a debug break slot.
|
1092
|
+
void RecordDebugBreakSlot();
|
1093
|
+
|
953
1094
|
// Record a comment relocation entry that can be used by a disassembler.
|
954
1095
|
// Use --debug_code to enable.
|
955
1096
|
void RecordComment(const char* msg);
|
956
1097
|
|
957
1098
|
void RecordPosition(int pos);
|
958
1099
|
void RecordStatementPosition(int pos);
|
959
|
-
|
1100
|
+
bool WriteRecordedPositions();
|
960
1101
|
|
961
1102
|
int pc_offset() const { return pc_ - buffer_; }
|
962
1103
|
int current_position() const { return current_position_; }
|
963
1104
|
int current_statement_position() const { return current_statement_position_; }
|
964
1105
|
|
1106
|
+
bool can_peephole_optimize(int instructions) {
|
1107
|
+
if (!FLAG_peephole_optimization) return false;
|
1108
|
+
if (last_bound_pos_ > pc_offset() - instructions * kInstrSize) return false;
|
1109
|
+
return reloc_info_writer.last_pc() <= pc_ - instructions * kInstrSize;
|
1110
|
+
}
|
1111
|
+
|
965
1112
|
// Read/patch instructions
|
966
1113
|
static Instr instr_at(byte* pc) { return *reinterpret_cast<Instr*>(pc); }
|
967
1114
|
static void instr_at_put(byte* pc, Instr instr) {
|
@@ -973,6 +1120,17 @@ class Assembler : public Malloced {
|
|
973
1120
|
static bool IsLdrRegisterImmediate(Instr instr);
|
974
1121
|
static int GetLdrRegisterImmediateOffset(Instr instr);
|
975
1122
|
static Instr SetLdrRegisterImmediateOffset(Instr instr, int offset);
|
1123
|
+
static bool IsStrRegisterImmediate(Instr instr);
|
1124
|
+
static Instr SetStrRegisterImmediateOffset(Instr instr, int offset);
|
1125
|
+
static bool IsAddRegisterImmediate(Instr instr);
|
1126
|
+
static Instr SetAddRegisterImmediateOffset(Instr instr, int offset);
|
1127
|
+
static Register GetRd(Instr instr);
|
1128
|
+
static bool IsPush(Instr instr);
|
1129
|
+
static bool IsPop(Instr instr);
|
1130
|
+
static bool IsStrRegFpOffset(Instr instr);
|
1131
|
+
static bool IsLdrRegFpOffset(Instr instr);
|
1132
|
+
static bool IsStrRegFpNegOffset(Instr instr);
|
1133
|
+
static bool IsLdrRegFpNegOffset(Instr instr);
|
976
1134
|
|
977
1135
|
|
978
1136
|
protected:
|
@@ -1004,6 +1162,7 @@ class Assembler : public Malloced {
|
|
1004
1162
|
void EndBlockConstPool() {
|
1005
1163
|
const_pool_blocked_nesting_--;
|
1006
1164
|
}
|
1165
|
+
bool is_const_pool_blocked() const { return const_pool_blocked_nesting_ > 0; }
|
1007
1166
|
|
1008
1167
|
private:
|
1009
1168
|
// Code buffer:
|
@@ -27,6 +27,8 @@
|
|
27
27
|
|
28
28
|
#include "v8.h"
|
29
29
|
|
30
|
+
#if defined(V8_TARGET_ARCH_ARM)
|
31
|
+
|
30
32
|
#include "codegen-inl.h"
|
31
33
|
#include "debug.h"
|
32
34
|
#include "runtime.h"
|
@@ -107,7 +109,7 @@ static void AllocateEmptyJSArray(MacroAssembler* masm,
|
|
107
109
|
// Allocate the JSArray object together with space for a fixed array with the
|
108
110
|
// requested elements.
|
109
111
|
int size = JSArray::kSize + FixedArray::SizeFor(initial_capacity);
|
110
|
-
__ AllocateInNewSpace(size
|
112
|
+
__ AllocateInNewSpace(size,
|
111
113
|
result,
|
112
114
|
scratch2,
|
113
115
|
scratch3,
|
@@ -130,13 +132,14 @@ static void AllocateEmptyJSArray(MacroAssembler* masm,
|
|
130
132
|
// of the JSArray.
|
131
133
|
// result: JSObject
|
132
134
|
// scratch2: start of next object
|
133
|
-
__
|
135
|
+
__ add(scratch1, result, Operand(JSArray::kSize));
|
134
136
|
__ str(scratch1, FieldMemOperand(result, JSArray::kElementsOffset));
|
135
137
|
|
136
138
|
// Clear the heap tag on the elements array.
|
137
|
-
|
139
|
+
ASSERT(kSmiTag == 0);
|
140
|
+
__ sub(scratch1, scratch1, Operand(kHeapObjectTag));
|
138
141
|
|
139
|
-
// Initialize the FixedArray and fill it with holes. FixedArray length is
|
142
|
+
// Initialize the FixedArray and fill it with holes. FixedArray length is
|
140
143
|
// stored as a smi.
|
141
144
|
// result: JSObject
|
142
145
|
// scratch1: elements array (untagged)
|
@@ -144,7 +147,7 @@ static void AllocateEmptyJSArray(MacroAssembler* masm,
|
|
144
147
|
__ LoadRoot(scratch3, Heap::kFixedArrayMapRootIndex);
|
145
148
|
ASSERT_EQ(0 * kPointerSize, FixedArray::kMapOffset);
|
146
149
|
__ str(scratch3, MemOperand(scratch1, kPointerSize, PostIndex));
|
147
|
-
__ mov(scratch3, Operand(initial_capacity));
|
150
|
+
__ mov(scratch3, Operand(Smi::FromInt(initial_capacity)));
|
148
151
|
ASSERT_EQ(1 * kPointerSize, FixedArray::kLengthOffset);
|
149
152
|
__ str(scratch3, MemOperand(scratch1, kPointerSize, PostIndex));
|
150
153
|
|
@@ -191,7 +194,7 @@ static void AllocateJSArray(MacroAssembler* masm,
|
|
191
194
|
// keeps the code below free of special casing for the empty array.
|
192
195
|
int size = JSArray::kSize +
|
193
196
|
FixedArray::SizeFor(JSArray::kPreallocatedArrayElements);
|
194
|
-
__ AllocateInNewSpace(size
|
197
|
+
__ AllocateInNewSpace(size,
|
195
198
|
result,
|
196
199
|
elements_array_end,
|
197
200
|
scratch1,
|
@@ -208,12 +211,13 @@ static void AllocateJSArray(MacroAssembler* masm,
|
|
208
211
|
__ add(elements_array_end,
|
209
212
|
elements_array_end,
|
210
213
|
Operand(array_size, ASR, kSmiTagSize));
|
211
|
-
__ AllocateInNewSpace(
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
214
|
+
__ AllocateInNewSpace(
|
215
|
+
elements_array_end,
|
216
|
+
result,
|
217
|
+
scratch1,
|
218
|
+
scratch2,
|
219
|
+
gc_required,
|
220
|
+
static_cast<AllocationFlags>(TAG_OBJECT | SIZE_IN_WORDS));
|
217
221
|
|
218
222
|
// Allocated the JSArray. Now initialize the fields except for the elements
|
219
223
|
// array.
|
@@ -237,26 +241,27 @@ static void AllocateJSArray(MacroAssembler* masm,
|
|
237
241
|
FieldMemOperand(result, JSArray::kElementsOffset));
|
238
242
|
|
239
243
|
// Clear the heap tag on the elements array.
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
+
ASSERT(kSmiTag == 0);
|
245
|
+
__ sub(elements_array_storage,
|
246
|
+
elements_array_storage,
|
247
|
+
Operand(kHeapObjectTag));
|
248
|
+
// Initialize the fixed array and fill it with holes. FixedArray length is
|
244
249
|
// stored as a smi.
|
245
250
|
// result: JSObject
|
246
251
|
// elements_array_storage: elements array (untagged)
|
247
252
|
// array_size: size of array (smi)
|
248
|
-
ASSERT(kSmiTag == 0);
|
249
253
|
__ LoadRoot(scratch1, Heap::kFixedArrayMapRootIndex);
|
250
254
|
ASSERT_EQ(0 * kPointerSize, FixedArray::kMapOffset);
|
251
255
|
__ str(scratch1, MemOperand(elements_array_storage, kPointerSize, PostIndex));
|
252
|
-
|
253
|
-
__ mov(array_size,
|
254
|
-
Operand(array_size, ASR, kSmiTagSize));
|
256
|
+
ASSERT(kSmiTag == 0);
|
255
257
|
__ tst(array_size, array_size);
|
256
258
|
// Length of the FixedArray is the number of pre-allocated elements if
|
257
259
|
// the actual JSArray has length 0 and the size of the JSArray for non-empty
|
258
|
-
// JSArrays. The length of a FixedArray is
|
259
|
-
__ mov(array_size,
|
260
|
+
// JSArrays. The length of a FixedArray is stored as a smi.
|
261
|
+
__ mov(array_size,
|
262
|
+
Operand(Smi::FromInt(JSArray::kPreallocatedArrayElements)),
|
263
|
+
LeaveCC,
|
264
|
+
eq);
|
260
265
|
ASSERT_EQ(1 * kPointerSize, FixedArray::kLengthOffset);
|
261
266
|
__ str(array_size,
|
262
267
|
MemOperand(elements_array_storage, kPointerSize, PostIndex));
|
@@ -264,10 +269,11 @@ static void AllocateJSArray(MacroAssembler* masm,
|
|
264
269
|
// Calculate elements array and elements array end.
|
265
270
|
// result: JSObject
|
266
271
|
// elements_array_storage: elements array element storage
|
267
|
-
// array_size: size of elements array
|
272
|
+
// array_size: smi-tagged size of elements array
|
273
|
+
ASSERT(kSmiTag == 0 && kSmiTagSize < kPointerSizeLog2);
|
268
274
|
__ add(elements_array_end,
|
269
275
|
elements_array_storage,
|
270
|
-
Operand(array_size, LSL, kPointerSizeLog2));
|
276
|
+
Operand(array_size, LSL, kPointerSizeLog2 - kSmiTagSize));
|
271
277
|
|
272
278
|
// Fill the allocated FixedArray with the hole value if requested.
|
273
279
|
// result: JSObject
|
@@ -540,7 +546,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
|
540
546
|
|
541
547
|
// Load the initial map and verify that it is in fact a map.
|
542
548
|
// r1: constructor function
|
543
|
-
// r7: undefined
|
549
|
+
// r7: undefined value
|
544
550
|
__ ldr(r2, FieldMemOperand(r1, JSFunction::kPrototypeOrInitialMapOffset));
|
545
551
|
__ tst(r2, Operand(kSmiTagMask));
|
546
552
|
__ b(eq, &rt_call);
|
@@ -552,16 +558,16 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
|
552
558
|
// instance type would be JS_FUNCTION_TYPE.
|
553
559
|
// r1: constructor function
|
554
560
|
// r2: initial map
|
555
|
-
// r7: undefined
|
561
|
+
// r7: undefined value
|
556
562
|
__ CompareInstanceType(r2, r3, JS_FUNCTION_TYPE);
|
557
563
|
__ b(eq, &rt_call);
|
558
564
|
|
559
565
|
// Now allocate the JSObject on the heap.
|
560
566
|
// r1: constructor function
|
561
567
|
// r2: initial map
|
562
|
-
// r7: undefined
|
568
|
+
// r7: undefined value
|
563
569
|
__ ldrb(r3, FieldMemOperand(r2, Map::kInstanceSizeOffset));
|
564
|
-
__ AllocateInNewSpace(r3, r4, r5, r6, &rt_call,
|
570
|
+
__ AllocateInNewSpace(r3, r4, r5, r6, &rt_call, SIZE_IN_WORDS);
|
565
571
|
|
566
572
|
// Allocated the JSObject, now initialize the fields. Map is set to initial
|
567
573
|
// map and properties and elements are set to empty fixed array.
|
@@ -569,7 +575,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
|
569
575
|
// r2: initial map
|
570
576
|
// r3: object size
|
571
577
|
// r4: JSObject (not tagged)
|
572
|
-
// r7: undefined
|
578
|
+
// r7: undefined value
|
573
579
|
__ LoadRoot(r6, Heap::kEmptyFixedArrayRootIndex);
|
574
580
|
__ mov(r5, r4);
|
575
581
|
ASSERT_EQ(0 * kPointerSize, JSObject::kMapOffset);
|
@@ -585,7 +591,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
|
585
591
|
// r3: object size (in words)
|
586
592
|
// r4: JSObject (not tagged)
|
587
593
|
// r5: First in-object property of JSObject (not tagged)
|
588
|
-
// r7: undefined
|
594
|
+
// r7: undefined value
|
589
595
|
__ add(r6, r4, Operand(r3, LSL, kPointerSizeLog2)); // End of object.
|
590
596
|
ASSERT_EQ(3 * kPointerSize, JSObject::kHeaderSize);
|
591
597
|
{ Label loop, entry;
|
@@ -608,17 +614,15 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
|
608
614
|
// r1: constructor function
|
609
615
|
// r4: JSObject
|
610
616
|
// r5: start of next object (not tagged)
|
611
|
-
// r7: undefined
|
617
|
+
// r7: undefined value
|
612
618
|
__ ldrb(r3, FieldMemOperand(r2, Map::kUnusedPropertyFieldsOffset));
|
613
619
|
// The field instance sizes contains both pre-allocated property fields and
|
614
620
|
// in-object properties.
|
615
621
|
__ ldr(r0, FieldMemOperand(r2, Map::kInstanceSizesOffset));
|
616
|
-
__
|
617
|
-
|
618
|
-
|
619
|
-
__
|
620
|
-
__ and_(r6, r0, Operand(0x000000FF << Map::kInObjectPropertiesByte * 8));
|
621
|
-
__ sub(r3, r3, Operand(r6, LSR, Map::kInObjectPropertiesByte * 8), SetCC);
|
622
|
+
__ Ubfx(r6, r0, Map::kPreAllocatedPropertyFieldsByte * 8, 8);
|
623
|
+
__ add(r3, r3, Operand(r6));
|
624
|
+
__ Ubfx(r6, r0, Map::kInObjectPropertiesByte * 8, 8);
|
625
|
+
__ sub(r3, r3, Operand(r6), SetCC);
|
622
626
|
|
623
627
|
// Done if no extra properties are to be allocated.
|
624
628
|
__ b(eq, &allocated);
|
@@ -630,27 +634,29 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
|
630
634
|
// r3: number of elements in properties array
|
631
635
|
// r4: JSObject
|
632
636
|
// r5: start of next object
|
633
|
-
// r7: undefined
|
637
|
+
// r7: undefined value
|
634
638
|
__ add(r0, r3, Operand(FixedArray::kHeaderSize / kPointerSize));
|
635
|
-
__ AllocateInNewSpace(
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
639
|
+
__ AllocateInNewSpace(
|
640
|
+
r0,
|
641
|
+
r5,
|
642
|
+
r6,
|
643
|
+
r2,
|
644
|
+
&undo_allocation,
|
645
|
+
static_cast<AllocationFlags>(RESULT_CONTAINS_TOP | SIZE_IN_WORDS));
|
641
646
|
|
642
647
|
// Initialize the FixedArray.
|
643
648
|
// r1: constructor
|
644
649
|
// r3: number of elements in properties array
|
645
650
|
// r4: JSObject
|
646
651
|
// r5: FixedArray (not tagged)
|
647
|
-
// r7: undefined
|
652
|
+
// r7: undefined value
|
648
653
|
__ LoadRoot(r6, Heap::kFixedArrayMapRootIndex);
|
649
654
|
__ mov(r2, r5);
|
650
655
|
ASSERT_EQ(0 * kPointerSize, JSObject::kMapOffset);
|
651
656
|
__ str(r6, MemOperand(r2, kPointerSize, PostIndex));
|
652
|
-
ASSERT_EQ(1 * kPointerSize,
|
653
|
-
__
|
657
|
+
ASSERT_EQ(1 * kPointerSize, FixedArray::kLengthOffset);
|
658
|
+
__ mov(r0, Operand(r3, LSL, kSmiTagSize));
|
659
|
+
__ str(r0, MemOperand(r2, kPointerSize, PostIndex));
|
654
660
|
|
655
661
|
// Initialize the fields to undefined.
|
656
662
|
// r1: constructor function
|
@@ -1043,6 +1049,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
|
|
1043
1049
|
__ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
|
1044
1050
|
__ ldr(r2,
|
1045
1051
|
FieldMemOperand(r3, SharedFunctionInfo::kFormalParameterCountOffset));
|
1052
|
+
__ mov(r2, Operand(r2, ASR, kSmiTagSize));
|
1046
1053
|
__ ldr(r3, FieldMemOperand(r3, SharedFunctionInfo::kCodeOffset));
|
1047
1054
|
__ add(r3, r3, Operand(Code::kHeaderSize - kHeapObjectTag));
|
1048
1055
|
__ cmp(r2, r0); // Check formal and actual parameter counts.
|
@@ -1309,3 +1316,5 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
|
1309
1316
|
#undef __
|
1310
1317
|
|
1311
1318
|
} } // namespace v8::internal
|
1319
|
+
|
1320
|
+
#endif // V8_TARGET_ARCH_ARM
|