therubyracer 0.8.1.pre2 → 0.8.1
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/Changelog.md +2 -1
- data/README.md +6 -3
- data/ext/v8/upstream/3.1.8/.gitignore +31 -0
- data/ext/v8/upstream/3.1.8/AUTHORS +40 -0
- data/ext/v8/upstream/3.1.8/ChangeLog +2566 -0
- data/ext/v8/upstream/3.1.8/LICENSE +52 -0
- data/ext/v8/upstream/3.1.8/LICENSE.strongtalk +29 -0
- data/ext/v8/upstream/3.1.8/LICENSE.v8 +26 -0
- data/ext/v8/upstream/3.1.8/LICENSE.valgrind +45 -0
- data/ext/v8/upstream/3.1.8/SConstruct +1192 -0
- data/ext/v8/upstream/3.1.8/build/README.txt +25 -0
- data/ext/v8/upstream/3.1.8/build/all.gyp +18 -0
- data/ext/v8/upstream/3.1.8/build/armu.gypi +32 -0
- data/ext/v8/upstream/3.1.8/build/common.gypi +82 -0
- data/ext/v8/upstream/3.1.8/build/gyp_v8 +145 -0
- data/ext/v8/upstream/3.1.8/include/v8-debug.h +384 -0
- data/ext/v8/upstream/3.1.8/include/v8-preparser.h +116 -0
- data/ext/v8/upstream/3.1.8/include/v8-profiler.h +426 -0
- data/ext/v8/upstream/3.1.8/include/v8-testing.h +99 -0
- data/ext/v8/upstream/3.1.8/include/v8.h +3846 -0
- data/ext/v8/upstream/3.1.8/include/v8stdint.h +53 -0
- data/ext/v8/upstream/3.1.8/preparser/preparser-process.cc +206 -0
- data/ext/v8/upstream/3.1.8/src/SConscript +356 -0
- data/ext/v8/upstream/3.1.8/src/accessors.cc +907 -0
- data/ext/v8/upstream/3.1.8/src/accessors.h +121 -0
- data/ext/v8/upstream/3.1.8/src/allocation.cc +204 -0
- data/ext/v8/upstream/3.1.8/src/allocation.h +176 -0
- data/ext/v8/upstream/3.1.8/src/api.cc +5191 -0
- data/ext/v8/upstream/3.1.8/src/api.h +508 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/apinatives.js +0 -0
- data/ext/v8/upstream/3.1.8/src/apiutils.h +80 -0
- data/ext/v8/upstream/3.1.8/src/arguments.h +105 -0
- data/ext/v8/upstream/3.1.8/src/arm/assembler-arm-inl.h +352 -0
- data/ext/v8/upstream/3.1.8/src/arm/assembler-arm.cc +2756 -0
- data/ext/v8/upstream/3.1.8/src/arm/assembler-arm.h +1294 -0
- data/ext/v8/upstream/3.1.8/src/arm/builtins-arm.cc +1628 -0
- data/ext/v8/upstream/3.1.8/src/arm/code-stubs-arm.cc +6783 -0
- data/ext/v8/upstream/3.1.8/src/arm/code-stubs-arm.h +657 -0
- data/ext/v8/upstream/3.1.8/src/arm/codegen-arm-inl.h +48 -0
- data/ext/v8/upstream/3.1.8/src/arm/codegen-arm.cc +7403 -0
- data/ext/v8/upstream/3.1.8/src/arm/codegen-arm.h +595 -0
- data/ext/v8/upstream/3.1.8/src/arm/constants-arm.cc +152 -0
- data/ext/v8/upstream/3.1.8/src/arm/constants-arm.h +769 -0
- data/ext/v8/upstream/3.1.8/src/arm/cpu-arm.cc +147 -0
- data/ext/v8/upstream/3.1.8/src/arm/debug-arm.cc +315 -0
- data/ext/v8/upstream/3.1.8/src/arm/deoptimizer-arm.cc +700 -0
- data/ext/v8/upstream/3.1.8/src/arm/disasm-arm.cc +1439 -0
- data/ext/v8/upstream/3.1.8/src/arm/frames-arm.cc +45 -0
- data/ext/v8/upstream/3.1.8/src/arm/frames-arm.h +168 -0
- data/ext/v8/upstream/3.1.8/src/arm/full-codegen-arm.cc +4230 -0
- data/ext/v8/upstream/3.1.8/src/arm/ic-arm.cc +1799 -0
- data/ext/v8/upstream/3.1.8/src/arm/jump-target-arm.cc +174 -0
- data/ext/v8/upstream/3.1.8/src/arm/lithium-arm.cc +2041 -0
- data/ext/v8/upstream/3.1.8/src/arm/lithium-arm.h +2046 -0
- data/ext/v8/upstream/3.1.8/src/arm/lithium-codegen-arm.cc +3822 -0
- data/ext/v8/upstream/3.1.8/src/arm/lithium-codegen-arm.h +312 -0
- data/ext/v8/upstream/3.1.8/src/arm/lithium-gap-resolver-arm.cc +303 -0
- data/ext/v8/upstream/3.1.8/src/arm/lithium-gap-resolver-arm.h +84 -0
- data/ext/v8/upstream/3.1.8/src/arm/macro-assembler-arm.cc +2701 -0
- data/ext/v8/upstream/3.1.8/src/arm/macro-assembler-arm.h +1015 -0
- data/ext/v8/upstream/3.1.8/src/arm/regexp-macro-assembler-arm.cc +1280 -0
- data/ext/v8/upstream/3.1.8/src/arm/regexp-macro-assembler-arm.h +252 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/register-allocator-arm-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/register-allocator-arm.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/register-allocator-arm.h +0 -0
- data/ext/v8/upstream/3.1.8/src/arm/simulator-arm.cc +3165 -0
- data/ext/v8/upstream/3.1.8/src/arm/simulator-arm.h +402 -0
- data/ext/v8/upstream/3.1.8/src/arm/stub-cache-arm.cc +4077 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/arm/virtual-frame-arm-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/arm/virtual-frame-arm.cc +843 -0
- data/ext/v8/upstream/3.1.8/src/arm/virtual-frame-arm.h +520 -0
- data/ext/v8/upstream/3.1.8/src/array.js +1231 -0
- data/ext/v8/upstream/3.1.8/src/assembler.cc +973 -0
- data/ext/v8/upstream/3.1.8/src/assembler.h +787 -0
- data/ext/v8/upstream/3.1.8/src/ast-inl.h +107 -0
- data/ext/v8/upstream/3.1.8/src/ast.cc +1067 -0
- data/ext/v8/upstream/3.1.8/src/ast.h +2177 -0
- data/ext/v8/upstream/3.1.8/src/atomicops.h +165 -0
- data/ext/v8/upstream/3.1.8/src/atomicops_internals_arm_gcc.h +145 -0
- data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_gcc.cc +126 -0
- data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_gcc.h +287 -0
- data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_macosx.h +301 -0
- data/ext/v8/upstream/3.1.8/src/atomicops_internals_x86_msvc.h +203 -0
- data/ext/v8/upstream/3.1.8/src/bignum-dtoa.cc +655 -0
- data/ext/v8/upstream/3.1.8/src/bignum-dtoa.h +81 -0
- data/ext/v8/upstream/3.1.8/src/bignum.cc +768 -0
- data/ext/v8/upstream/3.1.8/src/bignum.h +140 -0
- data/ext/v8/upstream/3.1.8/src/bootstrapper.cc +1888 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/bootstrapper.h +0 -0
- data/ext/v8/upstream/3.1.8/src/builtins.cc +1586 -0
- data/ext/v8/upstream/3.1.8/src/builtins.h +339 -0
- data/ext/v8/upstream/3.1.8/src/bytecodes-irregexp.h +105 -0
- data/ext/v8/upstream/3.1.8/src/cached-powers.cc +177 -0
- data/ext/v8/upstream/3.1.8/src/cached-powers.h +65 -0
- data/ext/v8/upstream/3.1.8/src/char-predicates-inl.h +94 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/char-predicates.h +0 -0
- data/ext/v8/upstream/3.1.8/src/checks.cc +110 -0
- data/ext/v8/upstream/3.1.8/src/checks.h +292 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/circular-queue-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/circular-queue.cc +122 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/circular-queue.h +0 -0
- data/ext/v8/upstream/3.1.8/src/code-stubs.cc +230 -0
- data/ext/v8/upstream/3.1.8/src/code-stubs.h +950 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/code.h +0 -0
- data/ext/v8/upstream/3.1.8/src/codegen-inl.h +64 -0
- data/ext/v8/upstream/3.1.8/src/codegen.cc +495 -0
- data/ext/v8/upstream/3.1.8/src/codegen.h +245 -0
- data/ext/v8/upstream/3.1.8/src/compilation-cache.cc +654 -0
- data/ext/v8/upstream/3.1.8/src/compilation-cache.h +112 -0
- data/ext/v8/upstream/3.1.8/src/compiler.cc +806 -0
- data/ext/v8/upstream/3.1.8/src/compiler.h +290 -0
- data/ext/v8/upstream/3.1.8/src/contexts.cc +320 -0
- data/ext/v8/upstream/3.1.8/src/contexts.h +376 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/conversions-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/conversions.cc +1069 -0
- data/ext/v8/upstream/3.1.8/src/conversions.h +122 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/counters.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/counters.h +242 -0
- data/ext/v8/upstream/3.1.8/src/cpu-profiler-inl.h +100 -0
- data/ext/v8/upstream/3.1.8/src/cpu-profiler.cc +554 -0
- data/ext/v8/upstream/3.1.8/src/cpu-profiler.h +291 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/cpu.h +0 -0
- data/ext/v8/upstream/3.1.8/src/d8-debug.cc +367 -0
- data/ext/v8/upstream/3.1.8/src/d8-debug.h +157 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/d8-posix.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/d8-readline.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/d8-windows.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/d8.cc +792 -0
- data/ext/v8/upstream/3.1.8/src/d8.gyp +85 -0
- data/ext/v8/upstream/3.1.8/src/d8.h +231 -0
- data/ext/v8/upstream/3.1.8/src/d8.js +2798 -0
- data/ext/v8/upstream/3.1.8/src/data-flow.cc +545 -0
- data/ext/v8/upstream/3.1.8/src/data-flow.h +379 -0
- data/ext/v8/upstream/3.1.8/src/date.js +1103 -0
- data/ext/v8/upstream/3.1.8/src/dateparser-inl.h +125 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/dateparser.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/dateparser.h +263 -0
- data/ext/v8/upstream/3.1.8/src/debug-agent.cc +446 -0
- data/ext/v8/upstream/3.1.8/src/debug-agent.h +131 -0
- data/ext/v8/upstream/3.1.8/src/debug-debugger.js +2569 -0
- data/ext/v8/upstream/3.1.8/src/debug.cc +3085 -0
- data/ext/v8/upstream/3.1.8/src/debug.h +1025 -0
- data/ext/v8/upstream/3.1.8/src/deoptimizer.cc +1185 -0
- data/ext/v8/upstream/3.1.8/src/deoptimizer.h +529 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/disasm.h +0 -0
- data/ext/v8/upstream/3.1.8/src/disassembler.cc +338 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/disassembler.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/diy-fp.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/diy-fp.h +0 -0
- data/ext/v8/upstream/3.1.8/src/double.h +238 -0
- data/ext/v8/upstream/3.1.8/src/dtoa.cc +103 -0
- data/ext/v8/upstream/3.1.8/src/dtoa.h +85 -0
- data/ext/v8/upstream/3.1.8/src/execution.cc +735 -0
- data/ext/v8/upstream/3.1.8/src/execution.h +322 -0
- data/ext/v8/upstream/3.1.8/src/extensions/experimental/experimental.gyp +53 -0
- data/ext/v8/upstream/3.1.8/src/extensions/experimental/i18n-extension.cc +264 -0
- data/ext/v8/upstream/3.1.8/src/extensions/experimental/i18n-extension.h +64 -0
- data/ext/v8/upstream/3.1.8/src/extensions/externalize-string-extension.cc +141 -0
- data/ext/v8/upstream/3.1.8/src/extensions/externalize-string-extension.h +50 -0
- data/ext/v8/upstream/3.1.8/src/extensions/gc-extension.cc +58 -0
- data/ext/v8/upstream/3.1.8/src/extensions/gc-extension.h +49 -0
- data/ext/v8/upstream/3.1.8/src/factory.cc +1087 -0
- data/ext/v8/upstream/3.1.8/src/factory.h +432 -0
- data/ext/v8/upstream/3.1.8/src/fast-dtoa.cc +736 -0
- data/ext/v8/upstream/3.1.8/src/fast-dtoa.h +83 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/fixed-dtoa.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/fixed-dtoa.h +0 -0
- data/ext/v8/upstream/3.1.8/src/flag-definitions.h +552 -0
- data/ext/v8/upstream/3.1.8/src/flags.cc +551 -0
- data/ext/v8/upstream/3.1.8/src/flags.h +79 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/frame-element.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/frame-element.h +277 -0
- data/ext/v8/upstream/3.1.8/src/frames-inl.h +210 -0
- data/ext/v8/upstream/3.1.8/src/frames.cc +1232 -0
- data/ext/v8/upstream/3.1.8/src/frames.h +826 -0
- data/ext/v8/upstream/3.1.8/src/full-codegen.cc +1382 -0
- data/ext/v8/upstream/3.1.8/src/full-codegen.h +751 -0
- data/ext/v8/upstream/3.1.8/src/func-name-inferrer.cc +90 -0
- data/ext/v8/upstream/3.1.8/src/func-name-inferrer.h +111 -0
- data/ext/v8/upstream/3.1.8/src/gdb-jit.cc +1547 -0
- data/ext/v8/upstream/3.1.8/src/gdb-jit.h +138 -0
- data/ext/v8/upstream/3.1.8/src/global-handles.cc +534 -0
- data/ext/v8/upstream/3.1.8/src/global-handles.h +181 -0
- data/ext/v8/upstream/3.1.8/src/globals.h +325 -0
- data/ext/v8/upstream/3.1.8/src/handles-inl.h +80 -0
- data/ext/v8/upstream/3.1.8/src/handles.cc +910 -0
- data/ext/v8/upstream/3.1.8/src/handles.h +424 -0
- data/ext/v8/upstream/3.1.8/src/hashmap.cc +230 -0
- data/ext/v8/upstream/3.1.8/src/hashmap.h +121 -0
- data/ext/v8/upstream/3.1.8/src/heap-inl.h +587 -0
- data/ext/v8/upstream/3.1.8/src/heap-profiler.cc +1128 -0
- data/ext/v8/upstream/3.1.8/src/heap-profiler.h +381 -0
- data/ext/v8/upstream/3.1.8/src/heap.cc +5610 -0
- data/ext/v8/upstream/3.1.8/src/heap.h +2218 -0
- data/ext/v8/upstream/3.1.8/src/hydrogen-instructions.cc +1490 -0
- data/ext/v8/upstream/3.1.8/src/hydrogen-instructions.h +3493 -0
- data/ext/v8/upstream/3.1.8/src/hydrogen.cc +6056 -0
- data/ext/v8/upstream/3.1.8/src/hydrogen.h +1091 -0
- data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32-inl.h +429 -0
- data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32.cc +2800 -0
- data/ext/v8/upstream/3.1.8/src/ia32/assembler-ia32.h +1093 -0
- data/ext/v8/upstream/3.1.8/src/ia32/builtins-ia32.cc +1590 -0
- data/ext/v8/upstream/3.1.8/src/ia32/code-stubs-ia32.cc +6624 -0
- data/ext/v8/upstream/3.1.8/src/ia32/code-stubs-ia32.h +536 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/codegen-ia32-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/ia32/codegen-ia32.cc +10354 -0
- data/ext/v8/upstream/3.1.8/src/ia32/codegen-ia32.h +798 -0
- data/ext/v8/upstream/3.1.8/src/ia32/cpu-ia32.cc +87 -0
- data/ext/v8/upstream/3.1.8/src/ia32/debug-ia32.cc +309 -0
- data/ext/v8/upstream/3.1.8/src/ia32/deoptimizer-ia32.cc +664 -0
- data/ext/v8/upstream/3.1.8/src/ia32/disasm-ia32.cc +1597 -0
- data/ext/v8/upstream/3.1.8/src/ia32/frames-ia32.cc +45 -0
- data/ext/v8/upstream/3.1.8/src/ia32/frames-ia32.h +140 -0
- data/ext/v8/upstream/3.1.8/src/ia32/full-codegen-ia32.cc +4278 -0
- data/ext/v8/upstream/3.1.8/src/ia32/ic-ia32.cc +1786 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/jump-target-ia32.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/ia32/lithium-codegen-ia32.cc +3880 -0
- data/ext/v8/upstream/3.1.8/src/ia32/lithium-codegen-ia32.h +309 -0
- data/ext/v8/upstream/3.1.8/src/ia32/lithium-gap-resolver-ia32.cc +460 -0
- data/ext/v8/upstream/3.1.8/src/ia32/lithium-gap-resolver-ia32.h +110 -0
- data/ext/v8/upstream/3.1.8/src/ia32/lithium-ia32.cc +2095 -0
- data/ext/v8/upstream/3.1.8/src/ia32/lithium-ia32.h +2127 -0
- data/ext/v8/upstream/3.1.8/src/ia32/macro-assembler-ia32.cc +2031 -0
- data/ext/v8/upstream/3.1.8/src/ia32/macro-assembler-ia32.h +798 -0
- data/ext/v8/upstream/3.1.8/src/ia32/regexp-macro-assembler-ia32.cc +1253 -0
- data/ext/v8/upstream/3.1.8/src/ia32/regexp-macro-assembler-ia32.h +215 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/register-allocator-ia32-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/register-allocator-ia32.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/register-allocator-ia32.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/ia32/simulator-ia32.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/ia32/simulator-ia32.h +72 -0
- data/ext/v8/upstream/3.1.8/src/ia32/stub-cache-ia32.cc +3732 -0
- data/ext/v8/upstream/3.1.8/src/ia32/virtual-frame-ia32.cc +1360 -0
- data/ext/v8/upstream/3.1.8/src/ia32/virtual-frame-ia32.h +646 -0
- data/ext/v8/upstream/3.1.8/src/ic-inl.h +129 -0
- data/ext/v8/upstream/3.1.8/src/ic.cc +2333 -0
- data/ext/v8/upstream/3.1.8/src/ic.h +639 -0
- data/ext/v8/upstream/3.1.8/src/inspector.cc +63 -0
- data/ext/v8/upstream/3.1.8/src/inspector.h +62 -0
- data/ext/v8/upstream/3.1.8/src/interpreter-irregexp.cc +655 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/interpreter-irregexp.h +0 -0
- data/ext/v8/upstream/3.1.8/src/json.js +342 -0
- data/ext/v8/upstream/3.1.8/src/jsregexp.cc +5340 -0
- data/ext/v8/upstream/3.1.8/src/jsregexp.h +1484 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target-heavy-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/jump-target-heavy.cc +430 -0
- data/ext/v8/upstream/3.1.8/src/jump-target-heavy.h +244 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target-light-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/jump-target-light.cc +111 -0
- data/ext/v8/upstream/3.1.8/src/jump-target-light.h +193 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/jump-target.h +0 -0
- data/ext/v8/upstream/3.1.8/src/list-inl.h +206 -0
- data/ext/v8/upstream/3.1.8/src/list.h +164 -0
- data/ext/v8/upstream/3.1.8/src/lithium-allocator-inl.h +140 -0
- data/ext/v8/upstream/3.1.8/src/lithium-allocator.cc +2093 -0
- data/ext/v8/upstream/3.1.8/src/lithium-allocator.h +644 -0
- data/ext/v8/upstream/3.1.8/src/lithium.cc +168 -0
- data/ext/v8/upstream/3.1.8/src/lithium.h +592 -0
- data/ext/v8/upstream/3.1.8/src/liveedit-debugger.js +1082 -0
- data/ext/v8/upstream/3.1.8/src/liveedit.cc +1650 -0
- data/ext/v8/upstream/3.1.8/src/liveedit.h +174 -0
- data/ext/v8/upstream/3.1.8/src/liveobjectlist-inl.h +126 -0
- data/ext/v8/upstream/3.1.8/src/liveobjectlist.cc +2527 -0
- data/ext/v8/upstream/3.1.8/src/liveobjectlist.h +322 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/log-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/log-utils.cc +336 -0
- data/ext/v8/upstream/3.1.8/src/log-utils.h +232 -0
- data/ext/v8/upstream/3.1.8/src/log.cc +1608 -0
- data/ext/v8/upstream/3.1.8/src/log.h +379 -0
- data/ext/v8/upstream/3.1.8/src/macro-assembler.h +120 -0
- data/ext/v8/upstream/3.1.8/src/macros.py +178 -0
- data/ext/v8/upstream/3.1.8/src/mark-compact.cc +2957 -0
- data/ext/v8/upstream/3.1.8/src/mark-compact.h +433 -0
- data/ext/v8/upstream/3.1.8/src/math.js +264 -0
- data/ext/v8/upstream/3.1.8/src/memory.h +82 -0
- data/ext/v8/upstream/3.1.8/src/messages.cc +164 -0
- data/ext/v8/upstream/3.1.8/src/messages.h +114 -0
- data/ext/v8/upstream/3.1.8/src/messages.js +1071 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/assembler-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/assembler-mips.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/mips/assembler-mips.h +667 -0
- data/ext/v8/upstream/3.1.8/src/mips/builtins-mips.cc +205 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/codegen-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/codegen-mips.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/mips/codegen-mips.h +431 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/constants-mips.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/constants-mips.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/cpu-mips.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/mips/debug-mips.cc +127 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/disasm-mips.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/fast-codegen-mips.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/mips/frames-mips.cc +96 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/frames-mips.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/full-codegen-mips.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/mips/ic-mips.cc +208 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/jump-target-mips.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/macro-assembler-mips.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/macro-assembler-mips.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/register-allocator-mips-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/register-allocator-mips.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/register-allocator-mips.h +0 -0
- data/ext/v8/upstream/3.1.8/src/mips/simulator-mips.cc +1650 -0
- data/ext/v8/upstream/3.1.8/src/mips/simulator-mips.h +311 -0
- data/ext/v8/upstream/3.1.8/src/mips/stub-cache-mips.cc +418 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/virtual-frame-mips.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mips/virtual-frame-mips.h +0 -0
- data/ext/v8/upstream/3.1.8/src/mirror-debugger.js +2380 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/mksnapshot.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/natives.h +0 -0
- data/ext/v8/upstream/3.1.8/src/objects-debug.cc +722 -0
- data/ext/v8/upstream/3.1.8/src/objects-inl.h +3946 -0
- data/ext/v8/upstream/3.1.8/src/objects-printer.cc +801 -0
- data/ext/v8/upstream/3.1.8/src/objects-visiting.cc +142 -0
- data/ext/v8/upstream/3.1.8/src/objects-visiting.h +401 -0
- data/ext/v8/upstream/3.1.8/src/objects.cc +10044 -0
- data/ext/v8/upstream/3.1.8/src/objects.h +6571 -0
- data/ext/v8/upstream/3.1.8/src/parser.cc +5165 -0
- data/ext/v8/upstream/3.1.8/src/parser.h +802 -0
- data/ext/v8/upstream/3.1.8/src/platform-cygwin.cc +745 -0
- data/ext/v8/upstream/3.1.8/src/platform-freebsd.cc +702 -0
- data/ext/v8/upstream/3.1.8/src/platform-linux.cc +981 -0
- data/ext/v8/upstream/3.1.8/src/platform-macos.cc +732 -0
- data/ext/v8/upstream/3.1.8/src/platform-nullos.cc +498 -0
- data/ext/v8/upstream/3.1.8/src/platform-openbsd.cc +657 -0
- data/ext/v8/upstream/3.1.8/src/platform-posix.cc +399 -0
- data/ext/v8/upstream/3.1.8/src/platform-solaris.cc +714 -0
- data/ext/v8/upstream/3.1.8/src/platform-win32.cc +1974 -0
- data/ext/v8/upstream/3.1.8/src/platform.h +636 -0
- data/ext/v8/upstream/3.1.8/src/preparse-data.cc +183 -0
- data/ext/v8/upstream/3.1.8/src/preparse-data.h +249 -0
- data/ext/v8/upstream/3.1.8/src/preparser-api.cc +213 -0
- data/ext/v8/upstream/3.1.8/src/preparser.cc +1205 -0
- data/ext/v8/upstream/3.1.8/src/preparser.h +278 -0
- data/ext/v8/upstream/3.1.8/src/prettyprinter.cc +1539 -0
- data/ext/v8/upstream/3.1.8/src/prettyprinter.h +223 -0
- data/ext/v8/upstream/3.1.8/src/profile-generator-inl.h +128 -0
- data/ext/v8/upstream/3.1.8/src/profile-generator.cc +2899 -0
- data/ext/v8/upstream/3.1.8/src/profile-generator.h +1151 -0
- data/ext/v8/upstream/3.1.8/src/property.cc +96 -0
- data/ext/v8/upstream/3.1.8/src/property.h +337 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/regexp-macro-assembler-irregexp-inl.h +0 -0
- data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-irregexp.cc +470 -0
- data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-irregexp.h +142 -0
- data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-tracer.cc +373 -0
- data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler-tracer.h +104 -0
- data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler.cc +257 -0
- data/ext/v8/upstream/3.1.8/src/regexp-macro-assembler.h +231 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/regexp-stack.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/regexp-stack.h +0 -0
- data/ext/v8/upstream/3.1.8/src/regexp.js +483 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/register-allocator-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/register-allocator.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/register-allocator.h +0 -0
- data/ext/v8/upstream/3.1.8/src/rewriter.cc +1023 -0
- data/ext/v8/upstream/3.1.8/src/rewriter.h +59 -0
- data/ext/v8/upstream/3.1.8/src/runtime-profiler.cc +443 -0
- data/ext/v8/upstream/3.1.8/src/runtime-profiler.h +77 -0
- data/ext/v8/upstream/3.1.8/src/runtime.cc +11592 -0
- data/ext/v8/upstream/3.1.8/src/runtime.h +582 -0
- data/ext/v8/upstream/3.1.8/src/runtime.js +643 -0
- data/ext/v8/upstream/3.1.8/src/safepoint-table.cc +253 -0
- data/ext/v8/upstream/3.1.8/src/safepoint-table.h +263 -0
- data/ext/v8/upstream/3.1.8/src/scanner-base.cc +971 -0
- data/ext/v8/upstream/3.1.8/src/scanner-base.h +653 -0
- data/ext/v8/upstream/3.1.8/src/scanner.cc +586 -0
- data/ext/v8/upstream/3.1.8/src/scanner.h +194 -0
- data/ext/v8/upstream/3.1.8/src/scopeinfo.cc +636 -0
- data/ext/v8/upstream/3.1.8/src/scopeinfo.h +238 -0
- data/ext/v8/upstream/3.1.8/src/scopes.cc +1063 -0
- data/ext/v8/upstream/3.1.8/src/scopes.h +494 -0
- data/ext/v8/upstream/3.1.8/src/serialize.cc +1535 -0
- data/ext/v8/upstream/3.1.8/src/serialize.h +584 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/shell.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/simulator.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/smart-pointer.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/snapshot-common.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/snapshot-empty.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/snapshot.h +0 -0
- data/ext/v8/upstream/3.1.8/src/spaces-inl.h +524 -0
- data/ext/v8/upstream/3.1.8/src/spaces.cc +3254 -0
- data/ext/v8/upstream/3.1.8/src/spaces.h +2362 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/splay-tree-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/splay-tree.h +0 -0
- data/ext/v8/upstream/3.1.8/src/string-search.cc +40 -0
- data/ext/v8/upstream/3.1.8/src/string-search.h +567 -0
- data/ext/v8/upstream/3.1.8/src/string-stream.cc +584 -0
- data/ext/v8/upstream/3.1.8/src/string-stream.h +191 -0
- data/ext/v8/upstream/3.1.8/src/string.js +915 -0
- data/ext/v8/upstream/3.1.8/src/strtod.cc +440 -0
- data/ext/v8/upstream/3.1.8/src/strtod.h +40 -0
- data/ext/v8/upstream/3.1.8/src/stub-cache.cc +1878 -0
- data/ext/v8/upstream/3.1.8/src/stub-cache.h +849 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/third_party/valgrind/valgrind.h +0 -0
- data/ext/v8/upstream/3.1.8/src/token.cc +63 -0
- data/ext/v8/upstream/3.1.8/src/token.h +288 -0
- data/ext/v8/upstream/3.1.8/src/top.cc +1152 -0
- data/ext/v8/upstream/3.1.8/src/top.h +608 -0
- data/ext/v8/upstream/3.1.8/src/type-info.cc +406 -0
- data/ext/v8/upstream/3.1.8/src/type-info.h +283 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/unbound-queue-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/unbound-queue.h +0 -0
- data/ext/v8/upstream/3.1.8/src/unicode-inl.h +238 -0
- data/ext/v8/upstream/3.1.8/src/unicode.cc +1624 -0
- data/ext/v8/upstream/3.1.8/src/unicode.h +280 -0
- data/ext/v8/upstream/3.1.8/src/uri.js +402 -0
- data/ext/v8/upstream/3.1.8/src/utils.cc +371 -0
- data/ext/v8/upstream/3.1.8/src/utils.h +793 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/v8-counters.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/v8-counters.h +290 -0
- data/ext/v8/upstream/3.1.8/src/v8.cc +270 -0
- data/ext/v8/upstream/3.1.8/src/v8.h +127 -0
- data/ext/v8/upstream/3.1.8/src/v8checks.h +64 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/v8dll-main.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/v8globals.h +480 -0
- data/ext/v8/upstream/3.1.8/src/v8natives.js +1252 -0
- data/ext/v8/upstream/3.1.8/src/v8preparserdll-main.cc +39 -0
- data/ext/v8/upstream/3.1.8/src/v8threads.cc +440 -0
- data/ext/v8/upstream/3.1.8/src/v8threads.h +157 -0
- data/ext/v8/upstream/3.1.8/src/v8utils.h +354 -0
- data/ext/v8/upstream/3.1.8/src/variables.cc +132 -0
- data/ext/v8/upstream/3.1.8/src/variables.h +212 -0
- data/ext/v8/upstream/3.1.8/src/version.cc +95 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/version.h +0 -0
- data/ext/v8/upstream/3.1.8/src/virtual-frame-heavy-inl.h +190 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-heavy.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-light-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame-light.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/virtual-frame.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/virtual-frame.h +59 -0
- data/ext/v8/upstream/3.1.8/src/vm-state-inl.h +134 -0
- data/ext/v8/upstream/3.1.8/src/vm-state.h +68 -0
- data/ext/v8/upstream/3.1.8/src/win32-headers.h +95 -0
- data/ext/v8/upstream/3.1.8/src/x64/assembler-x64-inl.h +455 -0
- data/ext/v8/upstream/3.1.8/src/x64/assembler-x64.cc +3162 -0
- data/ext/v8/upstream/3.1.8/src/x64/assembler-x64.h +1584 -0
- data/ext/v8/upstream/3.1.8/src/x64/builtins-x64.cc +1492 -0
- data/ext/v8/upstream/3.1.8/src/x64/code-stubs-x64.cc +5150 -0
- data/ext/v8/upstream/3.1.8/src/x64/code-stubs-x64.h +519 -0
- data/ext/v8/upstream/3.1.8/src/x64/codegen-x64-inl.h +46 -0
- data/ext/v8/upstream/3.1.8/src/x64/codegen-x64.cc +8835 -0
- data/ext/v8/upstream/3.1.8/src/x64/codegen-x64.h +750 -0
- data/ext/v8/upstream/3.1.8/src/x64/cpu-x64.cc +86 -0
- data/ext/v8/upstream/3.1.8/src/x64/debug-x64.cc +316 -0
- data/ext/v8/upstream/3.1.8/src/x64/deoptimizer-x64.cc +781 -0
- data/ext/v8/upstream/3.1.8/src/x64/disasm-x64.cc +1737 -0
- data/ext/v8/upstream/3.1.8/src/x64/frames-x64.cc +45 -0
- data/ext/v8/upstream/3.1.8/src/x64/frames-x64.h +130 -0
- data/ext/v8/upstream/3.1.8/src/x64/full-codegen-x64.cc +3984 -0
- data/ext/v8/upstream/3.1.8/src/x64/ic-x64.cc +1761 -0
- data/ext/v8/upstream/3.1.8/src/x64/jump-target-x64.cc +437 -0
- data/ext/v8/upstream/3.1.8/src/x64/lithium-codegen-x64.cc +3639 -0
- data/ext/v8/upstream/3.1.8/src/x64/lithium-codegen-x64.h +305 -0
- data/ext/v8/upstream/3.1.8/src/x64/lithium-gap-resolver-x64.cc +320 -0
- data/ext/v8/upstream/3.1.8/src/x64/lithium-gap-resolver-x64.h +74 -0
- data/ext/v8/upstream/3.1.8/src/x64/lithium-x64.cc +2044 -0
- data/ext/v8/upstream/3.1.8/src/x64/lithium-x64.h +2052 -0
- data/ext/v8/upstream/3.1.8/src/x64/macro-assembler-x64.cc +2660 -0
- data/ext/v8/upstream/3.1.8/src/x64/macro-assembler-x64.h +1852 -0
- data/ext/v8/upstream/3.1.8/src/x64/regexp-macro-assembler-x64.cc +1382 -0
- data/ext/v8/upstream/3.1.8/src/x64/regexp-macro-assembler-x64.h +278 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/register-allocator-x64-inl.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/register-allocator-x64.cc +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/register-allocator-x64.h +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/src/x64/simulator-x64.cc +0 -0
- data/ext/v8/upstream/3.1.8/src/x64/simulator-x64.h +71 -0
- data/ext/v8/upstream/3.1.8/src/x64/stub-cache-x64.cc +3509 -0
- data/ext/v8/upstream/3.1.8/src/x64/virtual-frame-x64.cc +1292 -0
- data/ext/v8/upstream/3.1.8/src/x64/virtual-frame-x64.h +593 -0
- data/ext/v8/upstream/3.1.8/src/zone-inl.h +83 -0
- data/ext/v8/upstream/3.1.8/src/zone.cc +195 -0
- data/ext/v8/upstream/3.1.8/src/zone.h +233 -0
- data/ext/v8/upstream/3.1.8/tools/codemap.js +265 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/consarray.js +0 -0
- data/ext/v8/upstream/3.1.8/tools/csvparser.js +78 -0
- data/ext/v8/upstream/3.1.8/tools/disasm.py +92 -0
- data/ext/v8/upstream/3.1.8/tools/gc-nvp-trace-processor.py +328 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/generate-ten-powers.scm +0 -0
- data/ext/v8/upstream/3.1.8/tools/grokdump.py +840 -0
- data/ext/v8/upstream/3.1.8/tools/gyp/v8.gyp +869 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/js2c.py +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/jsmin.py +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/linux-tick-processor +0 -0
- data/ext/v8/upstream/3.1.8/tools/ll_prof.py +919 -0
- data/ext/v8/upstream/3.1.8/tools/logreader.js +185 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/mac-nm +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/mac-tick-processor +0 -0
- data/ext/v8/upstream/3.1.8/tools/oom_dump/README +31 -0
- data/ext/v8/upstream/3.1.8/tools/oom_dump/SConstruct +42 -0
- data/ext/v8/upstream/3.1.8/tools/oom_dump/oom_dump.cc +288 -0
- data/ext/v8/upstream/3.1.8/tools/presubmit.py +305 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/process-heap-prof.py +0 -0
- data/ext/v8/upstream/3.1.8/tools/profile.js +751 -0
- data/ext/v8/upstream/3.1.8/tools/profile_view.js +219 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/run-valgrind.py +0 -0
- data/ext/v8/upstream/3.1.8/tools/splaytree.js +316 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/stats-viewer.py +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/tickprocessor-driver.js +0 -0
- data/ext/v8/upstream/3.1.8/tools/tickprocessor.js +863 -0
- data/ext/v8/upstream/3.1.8/tools/utils.py +96 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/README.txt +70 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/arm.vsprops +0 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/common.vsprops +34 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/d8js2c.cmd +0 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/debug.vsprops +17 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/ia32.vsprops +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/js2c.cmd +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/release.vsprops +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8.sln +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_arm.sln +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_arm.vcproj +0 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base.vcproj +1296 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base_arm.vcproj +1234 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_base_x64.vcproj +1296 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_cctest.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_cctest_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_cctest_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_mksnapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_process_sample.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_process_sample_arm.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_process_sample_x64.vcproj +0 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_shell_sample.vcproj +147 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_shell_sample_arm.vcproj +147 -0
- data/ext/v8/upstream/3.1.8/tools/visual_studio/v8_shell_sample_x64.vcproj +163 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot_cc.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_snapshot_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_x64.sln +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/v8_x64.vcproj +0 -0
- data/ext/v8/upstream/{2.3.3 → 3.1.8}/tools/visual_studio/x64.vsprops +0 -0
- data/ext/v8/upstream/3.1.8/tools/windows-tick-processor.bat +30 -0
- data/ext/v8/upstream/Makefile +2 -1
- data/ext/v8/v8_template.cpp +2 -2
- data/lib/v8/version.rb +1 -1
- data/spec/redjs/jsapi_spec.rb +2 -2
- metadata +552 -490
- data/ext/v8/upstream/2.3.3/.gitignore +0 -26
- data/ext/v8/upstream/2.3.3/AUTHORS +0 -31
- data/ext/v8/upstream/2.3.3/ChangeLog +0 -1916
- data/ext/v8/upstream/2.3.3/LICENSE +0 -55
- data/ext/v8/upstream/2.3.3/SConstruct +0 -1154
- data/ext/v8/upstream/2.3.3/include/v8-debug.h +0 -381
- data/ext/v8/upstream/2.3.3/include/v8-profiler.h +0 -353
- data/ext/v8/upstream/2.3.3/include/v8.h +0 -3616
- data/ext/v8/upstream/2.3.3/src/SConscript +0 -330
- data/ext/v8/upstream/2.3.3/src/accessors.cc +0 -661
- data/ext/v8/upstream/2.3.3/src/accessors.h +0 -114
- data/ext/v8/upstream/2.3.3/src/allocation.cc +0 -198
- data/ext/v8/upstream/2.3.3/src/allocation.h +0 -169
- data/ext/v8/upstream/2.3.3/src/api.cc +0 -4795
- data/ext/v8/upstream/2.3.3/src/api.h +0 -485
- data/ext/v8/upstream/2.3.3/src/apiutils.h +0 -69
- data/ext/v8/upstream/2.3.3/src/arguments.h +0 -96
- data/ext/v8/upstream/2.3.3/src/arm/assembler-arm-inl.h +0 -305
- data/ext/v8/upstream/2.3.3/src/arm/assembler-arm.cc +0 -2580
- data/ext/v8/upstream/2.3.3/src/arm/assembler-arm.h +0 -1275
- data/ext/v8/upstream/2.3.3/src/arm/builtins-arm.cc +0 -1320
- data/ext/v8/upstream/2.3.3/src/arm/codegen-arm-inl.h +0 -48
- data/ext/v8/upstream/2.3.3/src/arm/codegen-arm.cc +0 -11398
- data/ext/v8/upstream/2.3.3/src/arm/codegen-arm.h +0 -1102
- data/ext/v8/upstream/2.3.3/src/arm/constants-arm.cc +0 -154
- data/ext/v8/upstream/2.3.3/src/arm/constants-arm.h +0 -388
- data/ext/v8/upstream/2.3.3/src/arm/cpu-arm.cc +0 -142
- data/ext/v8/upstream/2.3.3/src/arm/debug-arm.cc +0 -309
- data/ext/v8/upstream/2.3.3/src/arm/disasm-arm.cc +0 -1459
- data/ext/v8/upstream/2.3.3/src/arm/fast-codegen-arm.cc +0 -241
- data/ext/v8/upstream/2.3.3/src/arm/frames-arm.cc +0 -123
- data/ext/v8/upstream/2.3.3/src/arm/frames-arm.h +0 -162
- data/ext/v8/upstream/2.3.3/src/arm/full-codegen-arm.cc +0 -3178
- data/ext/v8/upstream/2.3.3/src/arm/ic-arm.cc +0 -2258
- data/ext/v8/upstream/2.3.3/src/arm/jump-target-arm.cc +0 -164
- data/ext/v8/upstream/2.3.3/src/arm/macro-assembler-arm.cc +0 -1892
- data/ext/v8/upstream/2.3.3/src/arm/macro-assembler-arm.h +0 -727
- data/ext/v8/upstream/2.3.3/src/arm/regexp-macro-assembler-arm.cc +0 -1261
- data/ext/v8/upstream/2.3.3/src/arm/regexp-macro-assembler-arm.h +0 -266
- data/ext/v8/upstream/2.3.3/src/arm/simulator-arm.cc +0 -2822
- data/ext/v8/upstream/2.3.3/src/arm/simulator-arm.h +0 -361
- data/ext/v8/upstream/2.3.3/src/arm/stub-cache-arm.cc +0 -2387
- data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm.cc +0 -834
- data/ext/v8/upstream/2.3.3/src/arm/virtual-frame-arm.h +0 -519
- data/ext/v8/upstream/2.3.3/src/array.js +0 -1127
- data/ext/v8/upstream/2.3.3/src/assembler.cc +0 -801
- data/ext/v8/upstream/2.3.3/src/assembler.h +0 -573
- data/ext/v8/upstream/2.3.3/src/ast-inl.h +0 -81
- data/ext/v8/upstream/2.3.3/src/ast.cc +0 -1152
- data/ext/v8/upstream/2.3.3/src/ast.h +0 -2106
- data/ext/v8/upstream/2.3.3/src/bootstrapper.cc +0 -1819
- data/ext/v8/upstream/2.3.3/src/builtins.cc +0 -1529
- data/ext/v8/upstream/2.3.3/src/builtins.h +0 -263
- data/ext/v8/upstream/2.3.3/src/bytecodes-irregexp.h +0 -104
- data/ext/v8/upstream/2.3.3/src/cached-powers.h +0 -119
- data/ext/v8/upstream/2.3.3/src/char-predicates-inl.h +0 -86
- data/ext/v8/upstream/2.3.3/src/checks.cc +0 -100
- data/ext/v8/upstream/2.3.3/src/checks.h +0 -310
- data/ext/v8/upstream/2.3.3/src/circular-queue.cc +0 -121
- data/ext/v8/upstream/2.3.3/src/code-stubs.cc +0 -177
- data/ext/v8/upstream/2.3.3/src/code-stubs.h +0 -177
- data/ext/v8/upstream/2.3.3/src/codegen-inl.h +0 -60
- data/ext/v8/upstream/2.3.3/src/codegen.cc +0 -516
- data/ext/v8/upstream/2.3.3/src/codegen.h +0 -897
- data/ext/v8/upstream/2.3.3/src/compilation-cache.cc +0 -562
- data/ext/v8/upstream/2.3.3/src/compilation-cache.h +0 -102
- data/ext/v8/upstream/2.3.3/src/compiler.cc +0 -654
- data/ext/v8/upstream/2.3.3/src/compiler.h +0 -299
- data/ext/v8/upstream/2.3.3/src/contexts.cc +0 -256
- data/ext/v8/upstream/2.3.3/src/contexts.h +0 -342
- data/ext/v8/upstream/2.3.3/src/conversions.cc +0 -1119
- data/ext/v8/upstream/2.3.3/src/conversions.h +0 -123
- data/ext/v8/upstream/2.3.3/src/counters.h +0 -239
- data/ext/v8/upstream/2.3.3/src/cpu-profiler-inl.h +0 -100
- data/ext/v8/upstream/2.3.3/src/cpu-profiler.cc +0 -538
- data/ext/v8/upstream/2.3.3/src/cpu-profiler.h +0 -285
- data/ext/v8/upstream/2.3.3/src/d8-debug.cc +0 -356
- data/ext/v8/upstream/2.3.3/src/d8-debug.h +0 -155
- data/ext/v8/upstream/2.3.3/src/d8.cc +0 -783
- data/ext/v8/upstream/2.3.3/src/d8.h +0 -227
- data/ext/v8/upstream/2.3.3/src/d8.js +0 -1683
- data/ext/v8/upstream/2.3.3/src/data-flow.cc +0 -758
- data/ext/v8/upstream/2.3.3/src/data-flow.h +0 -278
- data/ext/v8/upstream/2.3.3/src/date.js +0 -1059
- data/ext/v8/upstream/2.3.3/src/dateparser-inl.h +0 -123
- data/ext/v8/upstream/2.3.3/src/dateparser.h +0 -244
- data/ext/v8/upstream/2.3.3/src/debug-agent.cc +0 -427
- data/ext/v8/upstream/2.3.3/src/debug-agent.h +0 -129
- data/ext/v8/upstream/2.3.3/src/debug-debugger.js +0 -2227
- data/ext/v8/upstream/2.3.3/src/debug.cc +0 -3005
- data/ext/v8/upstream/2.3.3/src/debug.h +0 -993
- data/ext/v8/upstream/2.3.3/src/disassembler.cc +0 -312
- data/ext/v8/upstream/2.3.3/src/double.h +0 -169
- data/ext/v8/upstream/2.3.3/src/dtoa-config.c +0 -92
- data/ext/v8/upstream/2.3.3/src/dtoa.cc +0 -77
- data/ext/v8/upstream/2.3.3/src/dtoa.h +0 -81
- data/ext/v8/upstream/2.3.3/src/execution.cc +0 -809
- data/ext/v8/upstream/2.3.3/src/execution.h +0 -336
- data/ext/v8/upstream/2.3.3/src/factory.cc +0 -1003
- data/ext/v8/upstream/2.3.3/src/factory.h +0 -410
- data/ext/v8/upstream/2.3.3/src/fast-codegen.cc +0 -746
- data/ext/v8/upstream/2.3.3/src/fast-codegen.h +0 -161
- data/ext/v8/upstream/2.3.3/src/fast-dtoa.cc +0 -505
- data/ext/v8/upstream/2.3.3/src/fast-dtoa.h +0 -58
- data/ext/v8/upstream/2.3.3/src/flag-definitions.h +0 -455
- data/ext/v8/upstream/2.3.3/src/flags.cc +0 -551
- data/ext/v8/upstream/2.3.3/src/flags.h +0 -81
- data/ext/v8/upstream/2.3.3/src/flow-graph.cc +0 -763
- data/ext/v8/upstream/2.3.3/src/flow-graph.h +0 -180
- data/ext/v8/upstream/2.3.3/src/frame-element.h +0 -273
- data/ext/v8/upstream/2.3.3/src/frames-inl.h +0 -217
- data/ext/v8/upstream/2.3.3/src/frames.cc +0 -826
- data/ext/v8/upstream/2.3.3/src/frames.h +0 -682
- data/ext/v8/upstream/2.3.3/src/full-codegen.cc +0 -1443
- data/ext/v8/upstream/2.3.3/src/full-codegen.h +0 -548
- data/ext/v8/upstream/2.3.3/src/func-name-inferrer.cc +0 -76
- data/ext/v8/upstream/2.3.3/src/func-name-inferrer.h +0 -135
- data/ext/v8/upstream/2.3.3/src/global-handles.cc +0 -520
- data/ext/v8/upstream/2.3.3/src/global-handles.h +0 -180
- data/ext/v8/upstream/2.3.3/src/globals.h +0 -669
- data/ext/v8/upstream/2.3.3/src/handles-inl.h +0 -76
- data/ext/v8/upstream/2.3.3/src/handles.cc +0 -825
- data/ext/v8/upstream/2.3.3/src/handles.h +0 -393
- data/ext/v8/upstream/2.3.3/src/hashmap.cc +0 -226
- data/ext/v8/upstream/2.3.3/src/hashmap.h +0 -120
- data/ext/v8/upstream/2.3.3/src/heap-inl.h +0 -493
- data/ext/v8/upstream/2.3.3/src/heap-profiler.cc +0 -779
- data/ext/v8/upstream/2.3.3/src/heap-profiler.h +0 -323
- data/ext/v8/upstream/2.3.3/src/heap.cc +0 -4994
- data/ext/v8/upstream/2.3.3/src/heap.h +0 -1984
- data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32-inl.h +0 -360
- data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32.cc +0 -2600
- data/ext/v8/upstream/2.3.3/src/ia32/assembler-ia32.h +0 -969
- data/ext/v8/upstream/2.3.3/src/ia32/builtins-ia32.cc +0 -1261
- data/ext/v8/upstream/2.3.3/src/ia32/codegen-ia32.cc +0 -13968
- data/ext/v8/upstream/2.3.3/src/ia32/codegen-ia32.h +0 -1097
- data/ext/v8/upstream/2.3.3/src/ia32/cpu-ia32.cc +0 -83
- data/ext/v8/upstream/2.3.3/src/ia32/debug-ia32.cc +0 -309
- data/ext/v8/upstream/2.3.3/src/ia32/disasm-ia32.cc +0 -1471
- data/ext/v8/upstream/2.3.3/src/ia32/fast-codegen-ia32.cc +0 -954
- data/ext/v8/upstream/2.3.3/src/ia32/fast-codegen-ia32.h +0 -155
- data/ext/v8/upstream/2.3.3/src/ia32/frames-ia32.cc +0 -115
- data/ext/v8/upstream/2.3.3/src/ia32/frames-ia32.h +0 -135
- data/ext/v8/upstream/2.3.3/src/ia32/full-codegen-ia32.cc +0 -3281
- data/ext/v8/upstream/2.3.3/src/ia32/ic-ia32.cc +0 -1966
- data/ext/v8/upstream/2.3.3/src/ia32/macro-assembler-ia32.cc +0 -1610
- data/ext/v8/upstream/2.3.3/src/ia32/macro-assembler-ia32.h +0 -610
- data/ext/v8/upstream/2.3.3/src/ia32/regexp-macro-assembler-ia32.cc +0 -1247
- data/ext/v8/upstream/2.3.3/src/ia32/regexp-macro-assembler-ia32.h +0 -214
- data/ext/v8/upstream/2.3.3/src/ia32/simulator-ia32.h +0 -62
- data/ext/v8/upstream/2.3.3/src/ia32/stub-cache-ia32.cc +0 -2750
- data/ext/v8/upstream/2.3.3/src/ia32/virtual-frame-ia32.cc +0 -1334
- data/ext/v8/upstream/2.3.3/src/ia32/virtual-frame-ia32.h +0 -627
- data/ext/v8/upstream/2.3.3/src/ic-inl.h +0 -120
- data/ext/v8/upstream/2.3.3/src/ic.cc +0 -1827
- data/ext/v8/upstream/2.3.3/src/ic.h +0 -515
- data/ext/v8/upstream/2.3.3/src/interpreter-irregexp.cc +0 -646
- data/ext/v8/upstream/2.3.3/src/json.js +0 -268
- data/ext/v8/upstream/2.3.3/src/jsregexp.cc +0 -5283
- data/ext/v8/upstream/2.3.3/src/jsregexp.h +0 -1463
- data/ext/v8/upstream/2.3.3/src/jump-target-heavy.cc +0 -429
- data/ext/v8/upstream/2.3.3/src/jump-target-heavy.h +0 -244
- data/ext/v8/upstream/2.3.3/src/jump-target-light.cc +0 -110
- data/ext/v8/upstream/2.3.3/src/jump-target-light.h +0 -192
- data/ext/v8/upstream/2.3.3/src/list-inl.h +0 -166
- data/ext/v8/upstream/2.3.3/src/list.h +0 -159
- data/ext/v8/upstream/2.3.3/src/liveedit-debugger.js +0 -1057
- data/ext/v8/upstream/2.3.3/src/liveedit.cc +0 -1480
- data/ext/v8/upstream/2.3.3/src/liveedit.h +0 -170
- data/ext/v8/upstream/2.3.3/src/log-utils.cc +0 -497
- data/ext/v8/upstream/2.3.3/src/log-utils.h +0 -289
- data/ext/v8/upstream/2.3.3/src/log.cc +0 -1561
- data/ext/v8/upstream/2.3.3/src/log.h +0 -384
- data/ext/v8/upstream/2.3.3/src/macro-assembler.h +0 -86
- data/ext/v8/upstream/2.3.3/src/macros.py +0 -177
- data/ext/v8/upstream/2.3.3/src/mark-compact.cc +0 -2330
- data/ext/v8/upstream/2.3.3/src/mark-compact.h +0 -451
- data/ext/v8/upstream/2.3.3/src/math.js +0 -264
- data/ext/v8/upstream/2.3.3/src/memory.h +0 -74
- data/ext/v8/upstream/2.3.3/src/messages.cc +0 -183
- data/ext/v8/upstream/2.3.3/src/messages.h +0 -113
- data/ext/v8/upstream/2.3.3/src/messages.js +0 -982
- data/ext/v8/upstream/2.3.3/src/mips/assembler-mips.h +0 -668
- data/ext/v8/upstream/2.3.3/src/mips/builtins-mips.cc +0 -205
- data/ext/v8/upstream/2.3.3/src/mips/codegen-mips.h +0 -434
- data/ext/v8/upstream/2.3.3/src/mips/debug-mips.cc +0 -131
- data/ext/v8/upstream/2.3.3/src/mips/frames-mips.cc +0 -102
- data/ext/v8/upstream/2.3.3/src/mips/ic-mips.cc +0 -220
- data/ext/v8/upstream/2.3.3/src/mips/simulator-mips.cc +0 -1651
- data/ext/v8/upstream/2.3.3/src/mips/simulator-mips.h +0 -311
- data/ext/v8/upstream/2.3.3/src/mips/stub-cache-mips.cc +0 -403
- data/ext/v8/upstream/2.3.3/src/mirror-debugger.js +0 -2380
- data/ext/v8/upstream/2.3.3/src/objects-debug.cc +0 -1366
- data/ext/v8/upstream/2.3.3/src/objects-inl.h +0 -3333
- data/ext/v8/upstream/2.3.3/src/objects.cc +0 -8820
- data/ext/v8/upstream/2.3.3/src/objects.h +0 -5373
- data/ext/v8/upstream/2.3.3/src/oprofile-agent.cc +0 -108
- data/ext/v8/upstream/2.3.3/src/oprofile-agent.h +0 -77
- data/ext/v8/upstream/2.3.3/src/parser.cc +0 -5207
- data/ext/v8/upstream/2.3.3/src/parser.h +0 -197
- data/ext/v8/upstream/2.3.3/src/platform-freebsd.cc +0 -667
- data/ext/v8/upstream/2.3.3/src/platform-linux.cc +0 -862
- data/ext/v8/upstream/2.3.3/src/platform-macos.cc +0 -665
- data/ext/v8/upstream/2.3.3/src/platform-nullos.cc +0 -454
- data/ext/v8/upstream/2.3.3/src/platform-openbsd.cc +0 -622
- data/ext/v8/upstream/2.3.3/src/platform-posix.cc +0 -362
- data/ext/v8/upstream/2.3.3/src/platform-solaris.cc +0 -653
- data/ext/v8/upstream/2.3.3/src/platform-win32.cc +0 -1911
- data/ext/v8/upstream/2.3.3/src/platform.h +0 -577
- data/ext/v8/upstream/2.3.3/src/powers-ten.h +0 -2461
- data/ext/v8/upstream/2.3.3/src/prettyprinter.cc +0 -1531
- data/ext/v8/upstream/2.3.3/src/prettyprinter.h +0 -221
- data/ext/v8/upstream/2.3.3/src/profile-generator-inl.h +0 -148
- data/ext/v8/upstream/2.3.3/src/profile-generator.cc +0 -1830
- data/ext/v8/upstream/2.3.3/src/profile-generator.h +0 -853
- data/ext/v8/upstream/2.3.3/src/property.cc +0 -96
- data/ext/v8/upstream/2.3.3/src/property.h +0 -315
- data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-irregexp.cc +0 -464
- data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-irregexp.h +0 -141
- data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-tracer.cc +0 -356
- data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler-tracer.h +0 -103
- data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler.cc +0 -261
- data/ext/v8/upstream/2.3.3/src/regexp-macro-assembler.h +0 -228
- data/ext/v8/upstream/2.3.3/src/regexp.js +0 -549
- data/ext/v8/upstream/2.3.3/src/rewriter.cc +0 -1038
- data/ext/v8/upstream/2.3.3/src/rewriter.h +0 -54
- data/ext/v8/upstream/2.3.3/src/runtime.cc +0 -10599
- data/ext/v8/upstream/2.3.3/src/runtime.h +0 -459
- data/ext/v8/upstream/2.3.3/src/runtime.js +0 -629
- data/ext/v8/upstream/2.3.3/src/scanner.cc +0 -1346
- data/ext/v8/upstream/2.3.3/src/scanner.h +0 -503
- data/ext/v8/upstream/2.3.3/src/scopeinfo.cc +0 -637
- data/ext/v8/upstream/2.3.3/src/scopeinfo.h +0 -233
- data/ext/v8/upstream/2.3.3/src/scopes.cc +0 -962
- data/ext/v8/upstream/2.3.3/src/scopes.h +0 -400
- data/ext/v8/upstream/2.3.3/src/serialize.cc +0 -1461
- data/ext/v8/upstream/2.3.3/src/serialize.h +0 -581
- data/ext/v8/upstream/2.3.3/src/spaces-inl.h +0 -483
- data/ext/v8/upstream/2.3.3/src/spaces.cc +0 -2901
- data/ext/v8/upstream/2.3.3/src/spaces.h +0 -2197
- data/ext/v8/upstream/2.3.3/src/string-stream.cc +0 -584
- data/ext/v8/upstream/2.3.3/src/string-stream.h +0 -189
- data/ext/v8/upstream/2.3.3/src/string.js +0 -1006
- data/ext/v8/upstream/2.3.3/src/stub-cache.cc +0 -1379
- data/ext/v8/upstream/2.3.3/src/stub-cache.h +0 -756
- data/ext/v8/upstream/2.3.3/src/third_party/dtoa/COPYING +0 -15
- data/ext/v8/upstream/2.3.3/src/third_party/dtoa/dtoa.c +0 -3334
- data/ext/v8/upstream/2.3.3/src/token.cc +0 -56
- data/ext/v8/upstream/2.3.3/src/token.h +0 -270
- data/ext/v8/upstream/2.3.3/src/top.cc +0 -1067
- data/ext/v8/upstream/2.3.3/src/top.h +0 -463
- data/ext/v8/upstream/2.3.3/src/type-info.cc +0 -53
- data/ext/v8/upstream/2.3.3/src/type-info.h +0 -244
- data/ext/v8/upstream/2.3.3/src/unicode-inl.h +0 -238
- data/ext/v8/upstream/2.3.3/src/unicode.cc +0 -749
- data/ext/v8/upstream/2.3.3/src/unicode.h +0 -279
- data/ext/v8/upstream/2.3.3/src/uri.js +0 -415
- data/ext/v8/upstream/2.3.3/src/utils.cc +0 -285
- data/ext/v8/upstream/2.3.3/src/utils.h +0 -745
- data/ext/v8/upstream/2.3.3/src/v8-counters.h +0 -250
- data/ext/v8/upstream/2.3.3/src/v8.cc +0 -228
- data/ext/v8/upstream/2.3.3/src/v8.h +0 -121
- data/ext/v8/upstream/2.3.3/src/v8natives.js +0 -1188
- data/ext/v8/upstream/2.3.3/src/v8threads.cc +0 -461
- data/ext/v8/upstream/2.3.3/src/v8threads.h +0 -159
- data/ext/v8/upstream/2.3.3/src/variables.cc +0 -119
- data/ext/v8/upstream/2.3.3/src/variables.h +0 -205
- data/ext/v8/upstream/2.3.3/src/version.cc +0 -88
- data/ext/v8/upstream/2.3.3/src/virtual-frame-heavy-inl.h +0 -192
- data/ext/v8/upstream/2.3.3/src/virtual-frame.h +0 -46
- data/ext/v8/upstream/2.3.3/src/vm-state-inl.h +0 -137
- data/ext/v8/upstream/2.3.3/src/vm-state.cc +0 -39
- data/ext/v8/upstream/2.3.3/src/vm-state.h +0 -77
- data/ext/v8/upstream/2.3.3/src/x64/assembler-x64-inl.h +0 -400
- data/ext/v8/upstream/2.3.3/src/x64/assembler-x64.cc +0 -2963
- data/ext/v8/upstream/2.3.3/src/x64/assembler-x64.h +0 -1438
- data/ext/v8/upstream/2.3.3/src/x64/builtins-x64.cc +0 -1296
- data/ext/v8/upstream/2.3.3/src/x64/codegen-x64-inl.h +0 -46
- data/ext/v8/upstream/2.3.3/src/x64/codegen-x64.cc +0 -12491
- data/ext/v8/upstream/2.3.3/src/x64/codegen-x64.h +0 -1090
- data/ext/v8/upstream/2.3.3/src/x64/cpu-x64.cc +0 -83
- data/ext/v8/upstream/2.3.3/src/x64/debug-x64.cc +0 -267
- data/ext/v8/upstream/2.3.3/src/x64/disasm-x64.cc +0 -1696
- data/ext/v8/upstream/2.3.3/src/x64/fast-codegen-x64.cc +0 -250
- data/ext/v8/upstream/2.3.3/src/x64/frames-x64.cc +0 -113
- data/ext/v8/upstream/2.3.3/src/x64/frames-x64.h +0 -125
- data/ext/v8/upstream/2.3.3/src/x64/full-codegen-x64.cc +0 -3270
- data/ext/v8/upstream/2.3.3/src/x64/ic-x64.cc +0 -1907
- data/ext/v8/upstream/2.3.3/src/x64/jump-target-x64.cc +0 -437
- data/ext/v8/upstream/2.3.3/src/x64/macro-assembler-x64.cc +0 -2793
- data/ext/v8/upstream/2.3.3/src/x64/macro-assembler-x64.h +0 -916
- data/ext/v8/upstream/2.3.3/src/x64/regexp-macro-assembler-x64.cc +0 -1374
- data/ext/v8/upstream/2.3.3/src/x64/regexp-macro-assembler-x64.h +0 -277
- data/ext/v8/upstream/2.3.3/src/x64/simulator-x64.h +0 -63
- data/ext/v8/upstream/2.3.3/src/x64/stub-cache-x64.cc +0 -2560
- data/ext/v8/upstream/2.3.3/src/x64/virtual-frame-x64.cc +0 -1264
- data/ext/v8/upstream/2.3.3/src/x64/virtual-frame-x64.h +0 -590
- data/ext/v8/upstream/2.3.3/src/zone-inl.h +0 -82
- data/ext/v8/upstream/2.3.3/src/zone.cc +0 -194
- data/ext/v8/upstream/2.3.3/src/zone.h +0 -221
- data/ext/v8/upstream/2.3.3/tools/codemap.js +0 -270
- data/ext/v8/upstream/2.3.3/tools/csvparser.js +0 -83
- data/ext/v8/upstream/2.3.3/tools/gc-nvp-trace-processor.py +0 -317
- data/ext/v8/upstream/2.3.3/tools/gyp/v8.gyp +0 -749
- data/ext/v8/upstream/2.3.3/tools/linux-tick-processor.py +0 -78
- data/ext/v8/upstream/2.3.3/tools/logreader.js +0 -338
- data/ext/v8/upstream/2.3.3/tools/oprofile/annotate +0 -7
- data/ext/v8/upstream/2.3.3/tools/oprofile/common +0 -19
- data/ext/v8/upstream/2.3.3/tools/oprofile/dump +0 -7
- data/ext/v8/upstream/2.3.3/tools/oprofile/report +0 -7
- data/ext/v8/upstream/2.3.3/tools/oprofile/reset +0 -7
- data/ext/v8/upstream/2.3.3/tools/oprofile/run +0 -14
- data/ext/v8/upstream/2.3.3/tools/oprofile/shutdown +0 -7
- data/ext/v8/upstream/2.3.3/tools/oprofile/start +0 -7
- data/ext/v8/upstream/2.3.3/tools/presubmit.py +0 -299
- data/ext/v8/upstream/2.3.3/tools/profile.js +0 -691
- data/ext/v8/upstream/2.3.3/tools/profile_view.js +0 -224
- data/ext/v8/upstream/2.3.3/tools/splaytree.js +0 -322
- data/ext/v8/upstream/2.3.3/tools/splaytree.py +0 -226
- data/ext/v8/upstream/2.3.3/tools/tickprocessor.js +0 -862
- data/ext/v8/upstream/2.3.3/tools/tickprocessor.py +0 -571
- data/ext/v8/upstream/2.3.3/tools/utils.py +0 -88
- data/ext/v8/upstream/2.3.3/tools/visual_studio/README.txt +0 -71
- data/ext/v8/upstream/2.3.3/tools/visual_studio/common.vsprops +0 -34
- data/ext/v8/upstream/2.3.3/tools/visual_studio/debug.vsprops +0 -17
- data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base.vcproj +0 -1143
- data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base_arm.vcproj +0 -1115
- data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_base_x64.vcproj +0 -1096
- data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample.vcproj +0 -145
- data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -145
- data/ext/v8/upstream/2.3.3/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -161
- data/ext/v8/upstream/2.3.3/tools/windows-tick-processor.bat +0 -29
- data/ext/v8/upstream/2.3.3/tools/windows-tick-processor.py +0 -137
@@ -0,0 +1,973 @@
|
|
1
|
+
// Copyright (c) 1994-2006 Sun Microsystems Inc.
|
2
|
+
// All Rights Reserved.
|
3
|
+
//
|
4
|
+
// Redistribution and use in source and binary forms, with or without
|
5
|
+
// modification, are permitted provided that the following conditions are
|
6
|
+
// met:
|
7
|
+
//
|
8
|
+
// - Redistributions of source code must retain the above copyright notice,
|
9
|
+
// this list of conditions and the following disclaimer.
|
10
|
+
//
|
11
|
+
// - Redistribution in binary form must reproduce the above copyright
|
12
|
+
// notice, this list of conditions and the following disclaimer in the
|
13
|
+
// documentation and/or other materials provided with the distribution.
|
14
|
+
//
|
15
|
+
// - Neither the name of Sun Microsystems or the names of contributors may
|
16
|
+
// be used to endorse or promote products derived from this software without
|
17
|
+
// specific prior written permission.
|
18
|
+
//
|
19
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
20
|
+
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
22
|
+
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
23
|
+
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
24
|
+
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
25
|
+
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
26
|
+
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
27
|
+
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
28
|
+
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
29
|
+
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
// The original source code covered by the above license above has been
|
32
|
+
// modified significantly by Google Inc.
|
33
|
+
// Copyright 2006-2009 the V8 project authors. All rights reserved.
|
34
|
+
|
35
|
+
#include "v8.h"
|
36
|
+
|
37
|
+
#include "arguments.h"
|
38
|
+
#include "deoptimizer.h"
|
39
|
+
#include "execution.h"
|
40
|
+
#include "ic-inl.h"
|
41
|
+
#include "factory.h"
|
42
|
+
#include "runtime.h"
|
43
|
+
#include "runtime-profiler.h"
|
44
|
+
#include "serialize.h"
|
45
|
+
#include "stub-cache.h"
|
46
|
+
#include "regexp-stack.h"
|
47
|
+
#include "ast.h"
|
48
|
+
#include "regexp-macro-assembler.h"
|
49
|
+
#include "platform.h"
|
50
|
+
// Include native regexp-macro-assembler.
|
51
|
+
#ifndef V8_INTERPRETED_REGEXP
|
52
|
+
#if V8_TARGET_ARCH_IA32
|
53
|
+
#include "ia32/regexp-macro-assembler-ia32.h"
|
54
|
+
#elif V8_TARGET_ARCH_X64
|
55
|
+
#include "x64/regexp-macro-assembler-x64.h"
|
56
|
+
#elif V8_TARGET_ARCH_ARM
|
57
|
+
#include "arm/regexp-macro-assembler-arm.h"
|
58
|
+
#else // Unknown architecture.
|
59
|
+
#error "Unknown architecture."
|
60
|
+
#endif // Target architecture.
|
61
|
+
#endif // V8_INTERPRETED_REGEXP
|
62
|
+
|
63
|
+
namespace v8 {
|
64
|
+
namespace internal {
|
65
|
+
|
66
|
+
|
67
|
+
const double DoubleConstant::min_int = kMinInt;
|
68
|
+
const double DoubleConstant::one_half = 0.5;
|
69
|
+
const double DoubleConstant::minus_zero = -0.0;
|
70
|
+
const double DoubleConstant::negative_infinity = -V8_INFINITY;
|
71
|
+
const char* RelocInfo::kFillerCommentString = "DEOPTIMIZATION PADDING";
|
72
|
+
|
73
|
+
// -----------------------------------------------------------------------------
|
74
|
+
// Implementation of Label
|
75
|
+
|
76
|
+
int Label::pos() const {
|
77
|
+
if (pos_ < 0) return -pos_ - 1;
|
78
|
+
if (pos_ > 0) return pos_ - 1;
|
79
|
+
UNREACHABLE();
|
80
|
+
return 0;
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
// -----------------------------------------------------------------------------
|
85
|
+
// Implementation of RelocInfoWriter and RelocIterator
|
86
|
+
//
|
87
|
+
// Encoding
|
88
|
+
//
|
89
|
+
// The most common modes are given single-byte encodings. Also, it is
|
90
|
+
// easy to identify the type of reloc info and skip unwanted modes in
|
91
|
+
// an iteration.
|
92
|
+
//
|
93
|
+
// The encoding relies on the fact that there are less than 14
|
94
|
+
// different relocation modes.
|
95
|
+
//
|
96
|
+
// embedded_object: [6 bits pc delta] 00
|
97
|
+
//
|
98
|
+
// code_taget: [6 bits pc delta] 01
|
99
|
+
//
|
100
|
+
// position: [6 bits pc delta] 10,
|
101
|
+
// [7 bits signed data delta] 0
|
102
|
+
//
|
103
|
+
// statement_position: [6 bits pc delta] 10,
|
104
|
+
// [7 bits signed data delta] 1
|
105
|
+
//
|
106
|
+
// any nondata mode: 00 [4 bits rmode] 11, // rmode: 0..13 only
|
107
|
+
// 00 [6 bits pc delta]
|
108
|
+
//
|
109
|
+
// pc-jump: 00 1111 11,
|
110
|
+
// 00 [6 bits pc delta]
|
111
|
+
//
|
112
|
+
// pc-jump: 01 1111 11,
|
113
|
+
// (variable length) 7 - 26 bit pc delta, written in chunks of 7
|
114
|
+
// bits, the lowest 7 bits written first.
|
115
|
+
//
|
116
|
+
// data-jump + pos: 00 1110 11,
|
117
|
+
// signed intptr_t, lowest byte written first
|
118
|
+
//
|
119
|
+
// data-jump + st.pos: 01 1110 11,
|
120
|
+
// signed intptr_t, lowest byte written first
|
121
|
+
//
|
122
|
+
// data-jump + comm.: 10 1110 11,
|
123
|
+
// signed intptr_t, lowest byte written first
|
124
|
+
//
|
125
|
+
const int kMaxRelocModes = 14;
|
126
|
+
|
127
|
+
const int kTagBits = 2;
|
128
|
+
const int kTagMask = (1 << kTagBits) - 1;
|
129
|
+
const int kExtraTagBits = 4;
|
130
|
+
const int kPositionTypeTagBits = 1;
|
131
|
+
const int kSmallDataBits = kBitsPerByte - kPositionTypeTagBits;
|
132
|
+
|
133
|
+
const int kEmbeddedObjectTag = 0;
|
134
|
+
const int kCodeTargetTag = 1;
|
135
|
+
const int kPositionTag = 2;
|
136
|
+
const int kDefaultTag = 3;
|
137
|
+
|
138
|
+
const int kPCJumpTag = (1 << kExtraTagBits) - 1;
|
139
|
+
|
140
|
+
const int kSmallPCDeltaBits = kBitsPerByte - kTagBits;
|
141
|
+
const int kSmallPCDeltaMask = (1 << kSmallPCDeltaBits) - 1;
|
142
|
+
|
143
|
+
const int kVariableLengthPCJumpTopTag = 1;
|
144
|
+
const int kChunkBits = 7;
|
145
|
+
const int kChunkMask = (1 << kChunkBits) - 1;
|
146
|
+
const int kLastChunkTagBits = 1;
|
147
|
+
const int kLastChunkTagMask = 1;
|
148
|
+
const int kLastChunkTag = 1;
|
149
|
+
|
150
|
+
|
151
|
+
const int kDataJumpTag = kPCJumpTag - 1;
|
152
|
+
|
153
|
+
const int kNonstatementPositionTag = 0;
|
154
|
+
const int kStatementPositionTag = 1;
|
155
|
+
const int kCommentTag = 2;
|
156
|
+
|
157
|
+
|
158
|
+
uint32_t RelocInfoWriter::WriteVariableLengthPCJump(uint32_t pc_delta) {
|
159
|
+
// Return if the pc_delta can fit in kSmallPCDeltaBits bits.
|
160
|
+
// Otherwise write a variable length PC jump for the bits that do
|
161
|
+
// not fit in the kSmallPCDeltaBits bits.
|
162
|
+
if (is_uintn(pc_delta, kSmallPCDeltaBits)) return pc_delta;
|
163
|
+
WriteExtraTag(kPCJumpTag, kVariableLengthPCJumpTopTag);
|
164
|
+
uint32_t pc_jump = pc_delta >> kSmallPCDeltaBits;
|
165
|
+
ASSERT(pc_jump > 0);
|
166
|
+
// Write kChunkBits size chunks of the pc_jump.
|
167
|
+
for (; pc_jump > 0; pc_jump = pc_jump >> kChunkBits) {
|
168
|
+
byte b = pc_jump & kChunkMask;
|
169
|
+
*--pos_ = b << kLastChunkTagBits;
|
170
|
+
}
|
171
|
+
// Tag the last chunk so it can be identified.
|
172
|
+
*pos_ = *pos_ | kLastChunkTag;
|
173
|
+
// Return the remaining kSmallPCDeltaBits of the pc_delta.
|
174
|
+
return pc_delta & kSmallPCDeltaMask;
|
175
|
+
}
|
176
|
+
|
177
|
+
|
178
|
+
void RelocInfoWriter::WriteTaggedPC(uint32_t pc_delta, int tag) {
|
179
|
+
// Write a byte of tagged pc-delta, possibly preceded by var. length pc-jump.
|
180
|
+
pc_delta = WriteVariableLengthPCJump(pc_delta);
|
181
|
+
*--pos_ = pc_delta << kTagBits | tag;
|
182
|
+
}
|
183
|
+
|
184
|
+
|
185
|
+
void RelocInfoWriter::WriteTaggedData(intptr_t data_delta, int tag) {
|
186
|
+
*--pos_ = static_cast<byte>(data_delta << kPositionTypeTagBits | tag);
|
187
|
+
}
|
188
|
+
|
189
|
+
|
190
|
+
void RelocInfoWriter::WriteExtraTag(int extra_tag, int top_tag) {
|
191
|
+
*--pos_ = static_cast<int>(top_tag << (kTagBits + kExtraTagBits) |
|
192
|
+
extra_tag << kTagBits |
|
193
|
+
kDefaultTag);
|
194
|
+
}
|
195
|
+
|
196
|
+
|
197
|
+
void RelocInfoWriter::WriteExtraTaggedPC(uint32_t pc_delta, int extra_tag) {
|
198
|
+
// Write two-byte tagged pc-delta, possibly preceded by var. length pc-jump.
|
199
|
+
pc_delta = WriteVariableLengthPCJump(pc_delta);
|
200
|
+
WriteExtraTag(extra_tag, 0);
|
201
|
+
*--pos_ = pc_delta;
|
202
|
+
}
|
203
|
+
|
204
|
+
|
205
|
+
void RelocInfoWriter::WriteExtraTaggedData(intptr_t data_delta, int top_tag) {
|
206
|
+
WriteExtraTag(kDataJumpTag, top_tag);
|
207
|
+
for (int i = 0; i < kIntptrSize; i++) {
|
208
|
+
*--pos_ = static_cast<byte>(data_delta);
|
209
|
+
// Signed right shift is arithmetic shift. Tested in test-utils.cc.
|
210
|
+
data_delta = data_delta >> kBitsPerByte;
|
211
|
+
}
|
212
|
+
}
|
213
|
+
|
214
|
+
|
215
|
+
void RelocInfoWriter::Write(const RelocInfo* rinfo) {
|
216
|
+
#ifdef DEBUG
|
217
|
+
byte* begin_pos = pos_;
|
218
|
+
#endif
|
219
|
+
Counters::reloc_info_count.Increment();
|
220
|
+
ASSERT(rinfo->pc() - last_pc_ >= 0);
|
221
|
+
ASSERT(RelocInfo::NUMBER_OF_MODES <= kMaxRelocModes);
|
222
|
+
// Use unsigned delta-encoding for pc.
|
223
|
+
uint32_t pc_delta = static_cast<uint32_t>(rinfo->pc() - last_pc_);
|
224
|
+
RelocInfo::Mode rmode = rinfo->rmode();
|
225
|
+
|
226
|
+
// The two most common modes are given small tags, and usually fit in a byte.
|
227
|
+
if (rmode == RelocInfo::EMBEDDED_OBJECT) {
|
228
|
+
WriteTaggedPC(pc_delta, kEmbeddedObjectTag);
|
229
|
+
} else if (rmode == RelocInfo::CODE_TARGET) {
|
230
|
+
WriteTaggedPC(pc_delta, kCodeTargetTag);
|
231
|
+
ASSERT(begin_pos - pos_ <= RelocInfo::kMaxCallSize);
|
232
|
+
} else if (RelocInfo::IsPosition(rmode)) {
|
233
|
+
// Use signed delta-encoding for data.
|
234
|
+
intptr_t data_delta = rinfo->data() - last_data_;
|
235
|
+
int pos_type_tag = rmode == RelocInfo::POSITION ? kNonstatementPositionTag
|
236
|
+
: kStatementPositionTag;
|
237
|
+
// Check if data is small enough to fit in a tagged byte.
|
238
|
+
// We cannot use is_intn because data_delta is not an int32_t.
|
239
|
+
if (data_delta >= -(1 << (kSmallDataBits-1)) &&
|
240
|
+
data_delta < 1 << (kSmallDataBits-1)) {
|
241
|
+
WriteTaggedPC(pc_delta, kPositionTag);
|
242
|
+
WriteTaggedData(data_delta, pos_type_tag);
|
243
|
+
last_data_ = rinfo->data();
|
244
|
+
} else {
|
245
|
+
// Otherwise, use costly encoding.
|
246
|
+
WriteExtraTaggedPC(pc_delta, kPCJumpTag);
|
247
|
+
WriteExtraTaggedData(data_delta, pos_type_tag);
|
248
|
+
last_data_ = rinfo->data();
|
249
|
+
}
|
250
|
+
} else if (RelocInfo::IsComment(rmode)) {
|
251
|
+
// Comments are normally not generated, so we use the costly encoding.
|
252
|
+
WriteExtraTaggedPC(pc_delta, kPCJumpTag);
|
253
|
+
WriteExtraTaggedData(rinfo->data() - last_data_, kCommentTag);
|
254
|
+
last_data_ = rinfo->data();
|
255
|
+
ASSERT(begin_pos - pos_ >= RelocInfo::kMinRelocCommentSize);
|
256
|
+
} else {
|
257
|
+
// For all other modes we simply use the mode as the extra tag.
|
258
|
+
// None of these modes need a data component.
|
259
|
+
ASSERT(rmode < kPCJumpTag && rmode < kDataJumpTag);
|
260
|
+
WriteExtraTaggedPC(pc_delta, rmode);
|
261
|
+
}
|
262
|
+
last_pc_ = rinfo->pc();
|
263
|
+
#ifdef DEBUG
|
264
|
+
ASSERT(begin_pos - pos_ <= kMaxSize);
|
265
|
+
#endif
|
266
|
+
}
|
267
|
+
|
268
|
+
|
269
|
+
inline int RelocIterator::AdvanceGetTag() {
|
270
|
+
return *--pos_ & kTagMask;
|
271
|
+
}
|
272
|
+
|
273
|
+
|
274
|
+
inline int RelocIterator::GetExtraTag() {
|
275
|
+
return (*pos_ >> kTagBits) & ((1 << kExtraTagBits) - 1);
|
276
|
+
}
|
277
|
+
|
278
|
+
|
279
|
+
inline int RelocIterator::GetTopTag() {
|
280
|
+
return *pos_ >> (kTagBits + kExtraTagBits);
|
281
|
+
}
|
282
|
+
|
283
|
+
|
284
|
+
inline void RelocIterator::ReadTaggedPC() {
|
285
|
+
rinfo_.pc_ += *pos_ >> kTagBits;
|
286
|
+
}
|
287
|
+
|
288
|
+
|
289
|
+
inline void RelocIterator::AdvanceReadPC() {
|
290
|
+
rinfo_.pc_ += *--pos_;
|
291
|
+
}
|
292
|
+
|
293
|
+
|
294
|
+
void RelocIterator::AdvanceReadData() {
|
295
|
+
intptr_t x = 0;
|
296
|
+
for (int i = 0; i < kIntptrSize; i++) {
|
297
|
+
x |= static_cast<intptr_t>(*--pos_) << i * kBitsPerByte;
|
298
|
+
}
|
299
|
+
rinfo_.data_ += x;
|
300
|
+
}
|
301
|
+
|
302
|
+
|
303
|
+
void RelocIterator::AdvanceReadVariableLengthPCJump() {
|
304
|
+
// Read the 32-kSmallPCDeltaBits most significant bits of the
|
305
|
+
// pc jump in kChunkBits bit chunks and shift them into place.
|
306
|
+
// Stop when the last chunk is encountered.
|
307
|
+
uint32_t pc_jump = 0;
|
308
|
+
for (int i = 0; i < kIntSize; i++) {
|
309
|
+
byte pc_jump_part = *--pos_;
|
310
|
+
pc_jump |= (pc_jump_part >> kLastChunkTagBits) << i * kChunkBits;
|
311
|
+
if ((pc_jump_part & kLastChunkTagMask) == 1) break;
|
312
|
+
}
|
313
|
+
// The least significant kSmallPCDeltaBits bits will be added
|
314
|
+
// later.
|
315
|
+
rinfo_.pc_ += pc_jump << kSmallPCDeltaBits;
|
316
|
+
}
|
317
|
+
|
318
|
+
|
319
|
+
inline int RelocIterator::GetPositionTypeTag() {
|
320
|
+
return *pos_ & ((1 << kPositionTypeTagBits) - 1);
|
321
|
+
}
|
322
|
+
|
323
|
+
|
324
|
+
inline void RelocIterator::ReadTaggedData() {
|
325
|
+
int8_t signed_b = *pos_;
|
326
|
+
// Signed right shift is arithmetic shift. Tested in test-utils.cc.
|
327
|
+
rinfo_.data_ += signed_b >> kPositionTypeTagBits;
|
328
|
+
}
|
329
|
+
|
330
|
+
|
331
|
+
inline RelocInfo::Mode RelocIterator::DebugInfoModeFromTag(int tag) {
|
332
|
+
if (tag == kStatementPositionTag) {
|
333
|
+
return RelocInfo::STATEMENT_POSITION;
|
334
|
+
} else if (tag == kNonstatementPositionTag) {
|
335
|
+
return RelocInfo::POSITION;
|
336
|
+
} else {
|
337
|
+
ASSERT(tag == kCommentTag);
|
338
|
+
return RelocInfo::COMMENT;
|
339
|
+
}
|
340
|
+
}
|
341
|
+
|
342
|
+
|
343
|
+
void RelocIterator::next() {
|
344
|
+
ASSERT(!done());
|
345
|
+
// Basically, do the opposite of RelocInfoWriter::Write.
|
346
|
+
// Reading of data is as far as possible avoided for unwanted modes,
|
347
|
+
// but we must always update the pc.
|
348
|
+
//
|
349
|
+
// We exit this loop by returning when we find a mode we want.
|
350
|
+
while (pos_ > end_) {
|
351
|
+
int tag = AdvanceGetTag();
|
352
|
+
if (tag == kEmbeddedObjectTag) {
|
353
|
+
ReadTaggedPC();
|
354
|
+
if (SetMode(RelocInfo::EMBEDDED_OBJECT)) return;
|
355
|
+
} else if (tag == kCodeTargetTag) {
|
356
|
+
ReadTaggedPC();
|
357
|
+
if (SetMode(RelocInfo::CODE_TARGET)) return;
|
358
|
+
} else if (tag == kPositionTag) {
|
359
|
+
ReadTaggedPC();
|
360
|
+
Advance();
|
361
|
+
// Check if we want source positions.
|
362
|
+
if (mode_mask_ & RelocInfo::kPositionMask) {
|
363
|
+
ReadTaggedData();
|
364
|
+
if (SetMode(DebugInfoModeFromTag(GetPositionTypeTag()))) return;
|
365
|
+
}
|
366
|
+
} else {
|
367
|
+
ASSERT(tag == kDefaultTag);
|
368
|
+
int extra_tag = GetExtraTag();
|
369
|
+
if (extra_tag == kPCJumpTag) {
|
370
|
+
int top_tag = GetTopTag();
|
371
|
+
if (top_tag == kVariableLengthPCJumpTopTag) {
|
372
|
+
AdvanceReadVariableLengthPCJump();
|
373
|
+
} else {
|
374
|
+
AdvanceReadPC();
|
375
|
+
}
|
376
|
+
} else if (extra_tag == kDataJumpTag) {
|
377
|
+
// Check if we want debug modes (the only ones with data).
|
378
|
+
if (mode_mask_ & RelocInfo::kDebugMask) {
|
379
|
+
int top_tag = GetTopTag();
|
380
|
+
AdvanceReadData();
|
381
|
+
if (SetMode(DebugInfoModeFromTag(top_tag))) return;
|
382
|
+
} else {
|
383
|
+
// Otherwise, just skip over the data.
|
384
|
+
Advance(kIntptrSize);
|
385
|
+
}
|
386
|
+
} else {
|
387
|
+
AdvanceReadPC();
|
388
|
+
if (SetMode(static_cast<RelocInfo::Mode>(extra_tag))) return;
|
389
|
+
}
|
390
|
+
}
|
391
|
+
}
|
392
|
+
done_ = true;
|
393
|
+
}
|
394
|
+
|
395
|
+
|
396
|
+
RelocIterator::RelocIterator(Code* code, int mode_mask) {
|
397
|
+
rinfo_.pc_ = code->instruction_start();
|
398
|
+
rinfo_.data_ = 0;
|
399
|
+
// Relocation info is read backwards.
|
400
|
+
pos_ = code->relocation_start() + code->relocation_size();
|
401
|
+
end_ = code->relocation_start();
|
402
|
+
done_ = false;
|
403
|
+
mode_mask_ = mode_mask;
|
404
|
+
if (mode_mask_ == 0) pos_ = end_;
|
405
|
+
next();
|
406
|
+
}
|
407
|
+
|
408
|
+
|
409
|
+
RelocIterator::RelocIterator(const CodeDesc& desc, int mode_mask) {
|
410
|
+
rinfo_.pc_ = desc.buffer;
|
411
|
+
rinfo_.data_ = 0;
|
412
|
+
// Relocation info is read backwards.
|
413
|
+
pos_ = desc.buffer + desc.buffer_size;
|
414
|
+
end_ = pos_ - desc.reloc_size;
|
415
|
+
done_ = false;
|
416
|
+
mode_mask_ = mode_mask;
|
417
|
+
if (mode_mask_ == 0) pos_ = end_;
|
418
|
+
next();
|
419
|
+
}
|
420
|
+
|
421
|
+
|
422
|
+
// -----------------------------------------------------------------------------
|
423
|
+
// Implementation of RelocInfo
|
424
|
+
|
425
|
+
|
426
|
+
#ifdef ENABLE_DISASSEMBLER
|
427
|
+
const char* RelocInfo::RelocModeName(RelocInfo::Mode rmode) {
|
428
|
+
switch (rmode) {
|
429
|
+
case RelocInfo::NONE:
|
430
|
+
return "no reloc";
|
431
|
+
case RelocInfo::EMBEDDED_OBJECT:
|
432
|
+
return "embedded object";
|
433
|
+
case RelocInfo::CONSTRUCT_CALL:
|
434
|
+
return "code target (js construct call)";
|
435
|
+
case RelocInfo::CODE_TARGET_CONTEXT:
|
436
|
+
return "code target (context)";
|
437
|
+
case RelocInfo::DEBUG_BREAK:
|
438
|
+
#ifndef ENABLE_DEBUGGER_SUPPORT
|
439
|
+
UNREACHABLE();
|
440
|
+
#endif
|
441
|
+
return "debug break";
|
442
|
+
case RelocInfo::CODE_TARGET:
|
443
|
+
return "code target";
|
444
|
+
case RelocInfo::GLOBAL_PROPERTY_CELL:
|
445
|
+
return "global property cell";
|
446
|
+
case RelocInfo::RUNTIME_ENTRY:
|
447
|
+
return "runtime entry";
|
448
|
+
case RelocInfo::JS_RETURN:
|
449
|
+
return "js return";
|
450
|
+
case RelocInfo::COMMENT:
|
451
|
+
return "comment";
|
452
|
+
case RelocInfo::POSITION:
|
453
|
+
return "position";
|
454
|
+
case RelocInfo::STATEMENT_POSITION:
|
455
|
+
return "statement position";
|
456
|
+
case RelocInfo::EXTERNAL_REFERENCE:
|
457
|
+
return "external reference";
|
458
|
+
case RelocInfo::INTERNAL_REFERENCE:
|
459
|
+
return "internal reference";
|
460
|
+
case RelocInfo::DEBUG_BREAK_SLOT:
|
461
|
+
#ifndef ENABLE_DEBUGGER_SUPPORT
|
462
|
+
UNREACHABLE();
|
463
|
+
#endif
|
464
|
+
return "debug break slot";
|
465
|
+
case RelocInfo::NUMBER_OF_MODES:
|
466
|
+
UNREACHABLE();
|
467
|
+
return "number_of_modes";
|
468
|
+
}
|
469
|
+
return "unknown relocation type";
|
470
|
+
}
|
471
|
+
|
472
|
+
|
473
|
+
void RelocInfo::Print(FILE* out) {
|
474
|
+
PrintF(out, "%p %s", pc_, RelocModeName(rmode_));
|
475
|
+
if (IsComment(rmode_)) {
|
476
|
+
PrintF(out, " (%s)", reinterpret_cast<char*>(data_));
|
477
|
+
} else if (rmode_ == EMBEDDED_OBJECT) {
|
478
|
+
PrintF(out, " (");
|
479
|
+
target_object()->ShortPrint(out);
|
480
|
+
PrintF(out, ")");
|
481
|
+
} else if (rmode_ == EXTERNAL_REFERENCE) {
|
482
|
+
ExternalReferenceEncoder ref_encoder;
|
483
|
+
PrintF(out, " (%s) (%p)",
|
484
|
+
ref_encoder.NameOfAddress(*target_reference_address()),
|
485
|
+
*target_reference_address());
|
486
|
+
} else if (IsCodeTarget(rmode_)) {
|
487
|
+
Code* code = Code::GetCodeFromTargetAddress(target_address());
|
488
|
+
PrintF(out, " (%s) (%p)", Code::Kind2String(code->kind()),
|
489
|
+
target_address());
|
490
|
+
} else if (IsPosition(rmode_)) {
|
491
|
+
PrintF(out, " (%" V8_PTR_PREFIX "d)", data());
|
492
|
+
} else if (rmode_ == RelocInfo::RUNTIME_ENTRY) {
|
493
|
+
// Depotimization bailouts are stored as runtime entries.
|
494
|
+
int id = Deoptimizer::GetDeoptimizationId(
|
495
|
+
target_address(), Deoptimizer::EAGER);
|
496
|
+
if (id != Deoptimizer::kNotDeoptimizationEntry) {
|
497
|
+
PrintF(out, " (deoptimization bailout %d)", id);
|
498
|
+
}
|
499
|
+
}
|
500
|
+
|
501
|
+
PrintF(out, "\n");
|
502
|
+
}
|
503
|
+
#endif // ENABLE_DISASSEMBLER
|
504
|
+
|
505
|
+
|
506
|
+
#ifdef DEBUG
|
507
|
+
void RelocInfo::Verify() {
|
508
|
+
switch (rmode_) {
|
509
|
+
case EMBEDDED_OBJECT:
|
510
|
+
Object::VerifyPointer(target_object());
|
511
|
+
break;
|
512
|
+
case GLOBAL_PROPERTY_CELL:
|
513
|
+
Object::VerifyPointer(target_cell());
|
514
|
+
break;
|
515
|
+
case DEBUG_BREAK:
|
516
|
+
#ifndef ENABLE_DEBUGGER_SUPPORT
|
517
|
+
UNREACHABLE();
|
518
|
+
break;
|
519
|
+
#endif
|
520
|
+
case CONSTRUCT_CALL:
|
521
|
+
case CODE_TARGET_CONTEXT:
|
522
|
+
case CODE_TARGET: {
|
523
|
+
// convert inline target address to code object
|
524
|
+
Address addr = target_address();
|
525
|
+
ASSERT(addr != NULL);
|
526
|
+
// Check that we can find the right code object.
|
527
|
+
Code* code = Code::GetCodeFromTargetAddress(addr);
|
528
|
+
Object* found = Heap::FindCodeObject(addr);
|
529
|
+
ASSERT(found->IsCode());
|
530
|
+
ASSERT(code->address() == HeapObject::cast(found)->address());
|
531
|
+
break;
|
532
|
+
}
|
533
|
+
case RUNTIME_ENTRY:
|
534
|
+
case JS_RETURN:
|
535
|
+
case COMMENT:
|
536
|
+
case POSITION:
|
537
|
+
case STATEMENT_POSITION:
|
538
|
+
case EXTERNAL_REFERENCE:
|
539
|
+
case INTERNAL_REFERENCE:
|
540
|
+
case DEBUG_BREAK_SLOT:
|
541
|
+
case NONE:
|
542
|
+
break;
|
543
|
+
case NUMBER_OF_MODES:
|
544
|
+
UNREACHABLE();
|
545
|
+
break;
|
546
|
+
}
|
547
|
+
}
|
548
|
+
#endif // DEBUG
|
549
|
+
|
550
|
+
|
551
|
+
// -----------------------------------------------------------------------------
|
552
|
+
// Implementation of ExternalReference
|
553
|
+
|
554
|
+
ExternalReference::ExternalReference(Builtins::CFunctionId id)
|
555
|
+
: address_(Redirect(Builtins::c_function_address(id))) {}
|
556
|
+
|
557
|
+
|
558
|
+
ExternalReference::ExternalReference(
|
559
|
+
ApiFunction* fun, Type type = ExternalReference::BUILTIN_CALL)
|
560
|
+
: address_(Redirect(fun->address(), type)) {}
|
561
|
+
|
562
|
+
|
563
|
+
ExternalReference::ExternalReference(Builtins::Name name)
|
564
|
+
: address_(Builtins::builtin_address(name)) {}
|
565
|
+
|
566
|
+
|
567
|
+
ExternalReference::ExternalReference(Runtime::FunctionId id)
|
568
|
+
: address_(Redirect(Runtime::FunctionForId(id)->entry)) {}
|
569
|
+
|
570
|
+
|
571
|
+
ExternalReference::ExternalReference(Runtime::Function* f)
|
572
|
+
: address_(Redirect(f->entry)) {}
|
573
|
+
|
574
|
+
|
575
|
+
ExternalReference::ExternalReference(const IC_Utility& ic_utility)
|
576
|
+
: address_(Redirect(ic_utility.address())) {}
|
577
|
+
|
578
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
579
|
+
ExternalReference::ExternalReference(const Debug_Address& debug_address)
|
580
|
+
: address_(debug_address.address()) {}
|
581
|
+
#endif
|
582
|
+
|
583
|
+
ExternalReference::ExternalReference(StatsCounter* counter)
|
584
|
+
: address_(reinterpret_cast<Address>(counter->GetInternalPointer())) {}
|
585
|
+
|
586
|
+
|
587
|
+
ExternalReference::ExternalReference(Top::AddressId id)
|
588
|
+
: address_(Top::get_address_from_id(id)) {}
|
589
|
+
|
590
|
+
|
591
|
+
ExternalReference::ExternalReference(const SCTableReference& table_ref)
|
592
|
+
: address_(table_ref.address()) {}
|
593
|
+
|
594
|
+
|
595
|
+
ExternalReference ExternalReference::perform_gc_function() {
|
596
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(Runtime::PerformGC)));
|
597
|
+
}
|
598
|
+
|
599
|
+
|
600
|
+
ExternalReference ExternalReference::fill_heap_number_with_random_function() {
|
601
|
+
return
|
602
|
+
ExternalReference(Redirect(FUNCTION_ADDR(V8::FillHeapNumberWithRandom)));
|
603
|
+
}
|
604
|
+
|
605
|
+
|
606
|
+
ExternalReference ExternalReference::delete_handle_scope_extensions() {
|
607
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(
|
608
|
+
HandleScope::DeleteExtensions)));
|
609
|
+
}
|
610
|
+
|
611
|
+
|
612
|
+
ExternalReference ExternalReference::random_uint32_function() {
|
613
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(V8::Random)));
|
614
|
+
}
|
615
|
+
|
616
|
+
|
617
|
+
ExternalReference ExternalReference::transcendental_cache_array_address() {
|
618
|
+
return ExternalReference(TranscendentalCache::cache_array_address());
|
619
|
+
}
|
620
|
+
|
621
|
+
|
622
|
+
ExternalReference ExternalReference::new_deoptimizer_function() {
|
623
|
+
return ExternalReference(
|
624
|
+
Redirect(FUNCTION_ADDR(Deoptimizer::New)));
|
625
|
+
}
|
626
|
+
|
627
|
+
|
628
|
+
ExternalReference ExternalReference::compute_output_frames_function() {
|
629
|
+
return ExternalReference(
|
630
|
+
Redirect(FUNCTION_ADDR(Deoptimizer::ComputeOutputFrames)));
|
631
|
+
}
|
632
|
+
|
633
|
+
|
634
|
+
ExternalReference ExternalReference::global_contexts_list() {
|
635
|
+
return ExternalReference(Heap::global_contexts_list_address());
|
636
|
+
}
|
637
|
+
|
638
|
+
|
639
|
+
ExternalReference ExternalReference::keyed_lookup_cache_keys() {
|
640
|
+
return ExternalReference(KeyedLookupCache::keys_address());
|
641
|
+
}
|
642
|
+
|
643
|
+
|
644
|
+
ExternalReference ExternalReference::keyed_lookup_cache_field_offsets() {
|
645
|
+
return ExternalReference(KeyedLookupCache::field_offsets_address());
|
646
|
+
}
|
647
|
+
|
648
|
+
|
649
|
+
ExternalReference ExternalReference::the_hole_value_location() {
|
650
|
+
return ExternalReference(Factory::the_hole_value().location());
|
651
|
+
}
|
652
|
+
|
653
|
+
|
654
|
+
ExternalReference ExternalReference::arguments_marker_location() {
|
655
|
+
return ExternalReference(Factory::arguments_marker().location());
|
656
|
+
}
|
657
|
+
|
658
|
+
|
659
|
+
ExternalReference ExternalReference::roots_address() {
|
660
|
+
return ExternalReference(Heap::roots_address());
|
661
|
+
}
|
662
|
+
|
663
|
+
|
664
|
+
ExternalReference ExternalReference::address_of_stack_limit() {
|
665
|
+
return ExternalReference(StackGuard::address_of_jslimit());
|
666
|
+
}
|
667
|
+
|
668
|
+
|
669
|
+
ExternalReference ExternalReference::address_of_real_stack_limit() {
|
670
|
+
return ExternalReference(StackGuard::address_of_real_jslimit());
|
671
|
+
}
|
672
|
+
|
673
|
+
|
674
|
+
ExternalReference ExternalReference::address_of_regexp_stack_limit() {
|
675
|
+
return ExternalReference(RegExpStack::limit_address());
|
676
|
+
}
|
677
|
+
|
678
|
+
|
679
|
+
ExternalReference ExternalReference::new_space_start() {
|
680
|
+
return ExternalReference(Heap::NewSpaceStart());
|
681
|
+
}
|
682
|
+
|
683
|
+
|
684
|
+
ExternalReference ExternalReference::new_space_mask() {
|
685
|
+
return ExternalReference(reinterpret_cast<Address>(Heap::NewSpaceMask()));
|
686
|
+
}
|
687
|
+
|
688
|
+
|
689
|
+
ExternalReference ExternalReference::new_space_allocation_top_address() {
|
690
|
+
return ExternalReference(Heap::NewSpaceAllocationTopAddress());
|
691
|
+
}
|
692
|
+
|
693
|
+
|
694
|
+
ExternalReference ExternalReference::heap_always_allocate_scope_depth() {
|
695
|
+
return ExternalReference(Heap::always_allocate_scope_depth_address());
|
696
|
+
}
|
697
|
+
|
698
|
+
|
699
|
+
ExternalReference ExternalReference::new_space_allocation_limit_address() {
|
700
|
+
return ExternalReference(Heap::NewSpaceAllocationLimitAddress());
|
701
|
+
}
|
702
|
+
|
703
|
+
|
704
|
+
ExternalReference ExternalReference::handle_scope_level_address() {
|
705
|
+
return ExternalReference(HandleScope::current_level_address());
|
706
|
+
}
|
707
|
+
|
708
|
+
|
709
|
+
ExternalReference ExternalReference::handle_scope_next_address() {
|
710
|
+
return ExternalReference(HandleScope::current_next_address());
|
711
|
+
}
|
712
|
+
|
713
|
+
|
714
|
+
ExternalReference ExternalReference::handle_scope_limit_address() {
|
715
|
+
return ExternalReference(HandleScope::current_limit_address());
|
716
|
+
}
|
717
|
+
|
718
|
+
|
719
|
+
ExternalReference ExternalReference::scheduled_exception_address() {
|
720
|
+
return ExternalReference(Top::scheduled_exception_address());
|
721
|
+
}
|
722
|
+
|
723
|
+
|
724
|
+
ExternalReference ExternalReference::address_of_min_int() {
|
725
|
+
return ExternalReference(reinterpret_cast<void*>(
|
726
|
+
const_cast<double*>(&DoubleConstant::min_int)));
|
727
|
+
}
|
728
|
+
|
729
|
+
|
730
|
+
ExternalReference ExternalReference::address_of_one_half() {
|
731
|
+
return ExternalReference(reinterpret_cast<void*>(
|
732
|
+
const_cast<double*>(&DoubleConstant::one_half)));
|
733
|
+
}
|
734
|
+
|
735
|
+
|
736
|
+
ExternalReference ExternalReference::address_of_minus_zero() {
|
737
|
+
return ExternalReference(reinterpret_cast<void*>(
|
738
|
+
const_cast<double*>(&DoubleConstant::minus_zero)));
|
739
|
+
}
|
740
|
+
|
741
|
+
|
742
|
+
ExternalReference ExternalReference::address_of_negative_infinity() {
|
743
|
+
return ExternalReference(reinterpret_cast<void*>(
|
744
|
+
const_cast<double*>(&DoubleConstant::negative_infinity)));
|
745
|
+
}
|
746
|
+
|
747
|
+
|
748
|
+
#ifndef V8_INTERPRETED_REGEXP
|
749
|
+
|
750
|
+
ExternalReference ExternalReference::re_check_stack_guard_state() {
|
751
|
+
Address function;
|
752
|
+
#ifdef V8_TARGET_ARCH_X64
|
753
|
+
function = FUNCTION_ADDR(RegExpMacroAssemblerX64::CheckStackGuardState);
|
754
|
+
#elif V8_TARGET_ARCH_IA32
|
755
|
+
function = FUNCTION_ADDR(RegExpMacroAssemblerIA32::CheckStackGuardState);
|
756
|
+
#elif V8_TARGET_ARCH_ARM
|
757
|
+
function = FUNCTION_ADDR(RegExpMacroAssemblerARM::CheckStackGuardState);
|
758
|
+
#else
|
759
|
+
UNREACHABLE();
|
760
|
+
#endif
|
761
|
+
return ExternalReference(Redirect(function));
|
762
|
+
}
|
763
|
+
|
764
|
+
ExternalReference ExternalReference::re_grow_stack() {
|
765
|
+
return ExternalReference(
|
766
|
+
Redirect(FUNCTION_ADDR(NativeRegExpMacroAssembler::GrowStack)));
|
767
|
+
}
|
768
|
+
|
769
|
+
ExternalReference ExternalReference::re_case_insensitive_compare_uc16() {
|
770
|
+
return ExternalReference(Redirect(
|
771
|
+
FUNCTION_ADDR(NativeRegExpMacroAssembler::CaseInsensitiveCompareUC16)));
|
772
|
+
}
|
773
|
+
|
774
|
+
ExternalReference ExternalReference::re_word_character_map() {
|
775
|
+
return ExternalReference(
|
776
|
+
NativeRegExpMacroAssembler::word_character_map_address());
|
777
|
+
}
|
778
|
+
|
779
|
+
ExternalReference ExternalReference::address_of_static_offsets_vector() {
|
780
|
+
return ExternalReference(OffsetsVector::static_offsets_vector_address());
|
781
|
+
}
|
782
|
+
|
783
|
+
ExternalReference ExternalReference::address_of_regexp_stack_memory_address() {
|
784
|
+
return ExternalReference(RegExpStack::memory_address());
|
785
|
+
}
|
786
|
+
|
787
|
+
ExternalReference ExternalReference::address_of_regexp_stack_memory_size() {
|
788
|
+
return ExternalReference(RegExpStack::memory_size_address());
|
789
|
+
}
|
790
|
+
|
791
|
+
#endif // V8_INTERPRETED_REGEXP
|
792
|
+
|
793
|
+
|
794
|
+
static double add_two_doubles(double x, double y) {
|
795
|
+
return x + y;
|
796
|
+
}
|
797
|
+
|
798
|
+
|
799
|
+
static double sub_two_doubles(double x, double y) {
|
800
|
+
return x - y;
|
801
|
+
}
|
802
|
+
|
803
|
+
|
804
|
+
static double mul_two_doubles(double x, double y) {
|
805
|
+
return x * y;
|
806
|
+
}
|
807
|
+
|
808
|
+
|
809
|
+
static double div_two_doubles(double x, double y) {
|
810
|
+
return x / y;
|
811
|
+
}
|
812
|
+
|
813
|
+
|
814
|
+
static double mod_two_doubles(double x, double y) {
|
815
|
+
return modulo(x, y);
|
816
|
+
}
|
817
|
+
|
818
|
+
|
819
|
+
// Helper function to compute x^y, where y is known to be an
|
820
|
+
// integer. Uses binary decomposition to limit the number of
|
821
|
+
// multiplications; see the discussion in "Hacker's Delight" by Henry
|
822
|
+
// S. Warren, Jr., figure 11-6, page 213.
|
823
|
+
double power_double_int(double x, int y) {
|
824
|
+
double m = (y < 0) ? 1 / x : x;
|
825
|
+
unsigned n = (y < 0) ? -y : y;
|
826
|
+
double p = 1;
|
827
|
+
while (n != 0) {
|
828
|
+
if ((n & 1) != 0) p *= m;
|
829
|
+
m *= m;
|
830
|
+
if ((n & 2) != 0) p *= m;
|
831
|
+
m *= m;
|
832
|
+
n >>= 2;
|
833
|
+
}
|
834
|
+
return p;
|
835
|
+
}
|
836
|
+
|
837
|
+
|
838
|
+
double power_double_double(double x, double y) {
|
839
|
+
int y_int = static_cast<int>(y);
|
840
|
+
if (y == y_int) {
|
841
|
+
return power_double_int(x, y_int); // Returns 1.0 for exponent 0.
|
842
|
+
}
|
843
|
+
if (!isinf(x)) {
|
844
|
+
if (y == 0.5) return sqrt(x + 0.0); // -0 must be converted to +0.
|
845
|
+
if (y == -0.5) return 1.0 / sqrt(x + 0.0);
|
846
|
+
}
|
847
|
+
if (isnan(y) || ((x == 1 || x == -1) && isinf(y))) {
|
848
|
+
return OS::nan_value();
|
849
|
+
}
|
850
|
+
return pow(x, y);
|
851
|
+
}
|
852
|
+
|
853
|
+
|
854
|
+
ExternalReference ExternalReference::power_double_double_function() {
|
855
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(power_double_double),
|
856
|
+
FP_RETURN_CALL));
|
857
|
+
}
|
858
|
+
|
859
|
+
|
860
|
+
ExternalReference ExternalReference::power_double_int_function() {
|
861
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(power_double_int),
|
862
|
+
FP_RETURN_CALL));
|
863
|
+
}
|
864
|
+
|
865
|
+
|
866
|
+
static int native_compare_doubles(double y, double x) {
|
867
|
+
if (x == y) return EQUAL;
|
868
|
+
return x < y ? LESS : GREATER;
|
869
|
+
}
|
870
|
+
|
871
|
+
|
872
|
+
ExternalReference ExternalReference::double_fp_operation(
|
873
|
+
Token::Value operation) {
|
874
|
+
typedef double BinaryFPOperation(double x, double y);
|
875
|
+
BinaryFPOperation* function = NULL;
|
876
|
+
switch (operation) {
|
877
|
+
case Token::ADD:
|
878
|
+
function = &add_two_doubles;
|
879
|
+
break;
|
880
|
+
case Token::SUB:
|
881
|
+
function = &sub_two_doubles;
|
882
|
+
break;
|
883
|
+
case Token::MUL:
|
884
|
+
function = &mul_two_doubles;
|
885
|
+
break;
|
886
|
+
case Token::DIV:
|
887
|
+
function = &div_two_doubles;
|
888
|
+
break;
|
889
|
+
case Token::MOD:
|
890
|
+
function = &mod_two_doubles;
|
891
|
+
break;
|
892
|
+
default:
|
893
|
+
UNREACHABLE();
|
894
|
+
}
|
895
|
+
// Passing true as 2nd parameter indicates that they return an fp value.
|
896
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(function), FP_RETURN_CALL));
|
897
|
+
}
|
898
|
+
|
899
|
+
|
900
|
+
ExternalReference ExternalReference::compare_doubles() {
|
901
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(native_compare_doubles),
|
902
|
+
BUILTIN_CALL));
|
903
|
+
}
|
904
|
+
|
905
|
+
|
906
|
+
ExternalReference::ExternalReferenceRedirector*
|
907
|
+
ExternalReference::redirector_ = NULL;
|
908
|
+
|
909
|
+
|
910
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
911
|
+
ExternalReference ExternalReference::debug_break() {
|
912
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(Debug::Break)));
|
913
|
+
}
|
914
|
+
|
915
|
+
|
916
|
+
ExternalReference ExternalReference::debug_step_in_fp_address() {
|
917
|
+
return ExternalReference(Debug::step_in_fp_addr());
|
918
|
+
}
|
919
|
+
#endif
|
920
|
+
|
921
|
+
|
922
|
+
void PositionsRecorder::RecordPosition(int pos) {
|
923
|
+
ASSERT(pos != RelocInfo::kNoPosition);
|
924
|
+
ASSERT(pos >= 0);
|
925
|
+
state_.current_position = pos;
|
926
|
+
#ifdef ENABLE_GDB_JIT_INTERFACE
|
927
|
+
if (gdbjit_lineinfo_ != NULL) {
|
928
|
+
gdbjit_lineinfo_->SetPosition(assembler_->pc_offset(), pos, false);
|
929
|
+
}
|
930
|
+
#endif
|
931
|
+
}
|
932
|
+
|
933
|
+
|
934
|
+
void PositionsRecorder::RecordStatementPosition(int pos) {
|
935
|
+
ASSERT(pos != RelocInfo::kNoPosition);
|
936
|
+
ASSERT(pos >= 0);
|
937
|
+
state_.current_statement_position = pos;
|
938
|
+
#ifdef ENABLE_GDB_JIT_INTERFACE
|
939
|
+
if (gdbjit_lineinfo_ != NULL) {
|
940
|
+
gdbjit_lineinfo_->SetPosition(assembler_->pc_offset(), pos, true);
|
941
|
+
}
|
942
|
+
#endif
|
943
|
+
}
|
944
|
+
|
945
|
+
|
946
|
+
bool PositionsRecorder::WriteRecordedPositions() {
|
947
|
+
bool written = false;
|
948
|
+
|
949
|
+
// Write the statement position if it is different from what was written last
|
950
|
+
// time.
|
951
|
+
if (state_.current_statement_position != state_.written_statement_position) {
|
952
|
+
EnsureSpace ensure_space(assembler_);
|
953
|
+
assembler_->RecordRelocInfo(RelocInfo::STATEMENT_POSITION,
|
954
|
+
state_.current_statement_position);
|
955
|
+
state_.written_statement_position = state_.current_statement_position;
|
956
|
+
written = true;
|
957
|
+
}
|
958
|
+
|
959
|
+
// Write the position if it is different from what was written last time and
|
960
|
+
// also different from the written statement position.
|
961
|
+
if (state_.current_position != state_.written_position &&
|
962
|
+
state_.current_position != state_.written_statement_position) {
|
963
|
+
EnsureSpace ensure_space(assembler_);
|
964
|
+
assembler_->RecordRelocInfo(RelocInfo::POSITION, state_.current_position);
|
965
|
+
state_.written_position = state_.current_position;
|
966
|
+
written = true;
|
967
|
+
}
|
968
|
+
|
969
|
+
// Return whether something was written.
|
970
|
+
return written;
|
971
|
+
}
|
972
|
+
|
973
|
+
} } // namespace v8::internal
|