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,1082 @@
|
|
1
|
+
// Copyright 2010 the V8 project authors. All rights reserved.
|
2
|
+
// Redistribution and use in source and binary forms, with or without
|
3
|
+
// modification, are permitted provided that the following conditions are
|
4
|
+
// met:
|
5
|
+
//
|
6
|
+
// * Redistributions of source code must retain the above copyright
|
7
|
+
// notice, this list of conditions and the following disclaimer.
|
8
|
+
// * Redistributions in binary form must reproduce the above
|
9
|
+
// copyright notice, this list of conditions and the following
|
10
|
+
// disclaimer in the documentation and/or other materials provided
|
11
|
+
// with the distribution.
|
12
|
+
// * Neither the name of Google Inc. nor the names of its
|
13
|
+
// contributors may be used to endorse or promote products derived
|
14
|
+
// from this software without specific prior written permission.
|
15
|
+
//
|
16
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
|
28
|
+
// LiveEdit feature implementation. The script should be executed after
|
29
|
+
// debug-debugger.js.
|
30
|
+
|
31
|
+
// A LiveEdit namespace. It contains functions that modifies JavaScript code
|
32
|
+
// according to changes of script source (if possible).
|
33
|
+
//
|
34
|
+
// When new script source is put in, the difference is calculated textually,
|
35
|
+
// in form of list of delete/add/change chunks. The functions that include
|
36
|
+
// change chunk(s) get recompiled, or their enclosing functions are
|
37
|
+
// recompiled instead.
|
38
|
+
// If the function may not be recompiled (e.g. it was completely erased in new
|
39
|
+
// version of the script) it remains unchanged, but the code that could
|
40
|
+
// create a new instance of this function goes away. An old version of script
|
41
|
+
// is created to back up this obsolete function.
|
42
|
+
// All unchanged functions have their positions updated accordingly.
|
43
|
+
//
|
44
|
+
// LiveEdit namespace is declared inside a single function constructor.
|
45
|
+
Debug.LiveEdit = new function() {
|
46
|
+
|
47
|
+
// Forward declaration for minifier.
|
48
|
+
var FunctionStatus;
|
49
|
+
|
50
|
+
// Applies the change to the script.
|
51
|
+
// The change is in form of list of chunks encoded in a single array as
|
52
|
+
// a series of triplets (pos1_start, pos1_end, pos2_end)
|
53
|
+
function ApplyPatchMultiChunk(script, diff_array, new_source, preview_only,
|
54
|
+
change_log) {
|
55
|
+
|
56
|
+
var old_source = script.source;
|
57
|
+
|
58
|
+
// Gather compile information about old version of script.
|
59
|
+
var old_compile_info = GatherCompileInfo(old_source, script);
|
60
|
+
|
61
|
+
// Build tree structures for old and new versions of the script.
|
62
|
+
var root_old_node = BuildCodeInfoTree(old_compile_info);
|
63
|
+
|
64
|
+
var pos_translator = new PosTranslator(diff_array);
|
65
|
+
|
66
|
+
// Analyze changes.
|
67
|
+
MarkChangedFunctions(root_old_node, pos_translator.GetChunks());
|
68
|
+
|
69
|
+
// Find all SharedFunctionInfo's that were compiled from this script.
|
70
|
+
FindLiveSharedInfos(root_old_node, script);
|
71
|
+
|
72
|
+
// Gather compile information about new version of script.
|
73
|
+
var new_compile_info;
|
74
|
+
try {
|
75
|
+
new_compile_info = GatherCompileInfo(new_source, script);
|
76
|
+
} catch (e) {
|
77
|
+
throw new Failure("Failed to compile new version of script: " + e);
|
78
|
+
}
|
79
|
+
var root_new_node = BuildCodeInfoTree(new_compile_info);
|
80
|
+
|
81
|
+
// Link recompiled script data with other data.
|
82
|
+
FindCorrespondingFunctions(root_old_node, root_new_node);
|
83
|
+
|
84
|
+
// Prepare to-do lists.
|
85
|
+
var replace_code_list = new Array();
|
86
|
+
var link_to_old_script_list = new Array();
|
87
|
+
var link_to_original_script_list = new Array();
|
88
|
+
var update_positions_list = new Array();
|
89
|
+
|
90
|
+
function HarvestTodo(old_node) {
|
91
|
+
function CollectDamaged(node) {
|
92
|
+
link_to_old_script_list.push(node);
|
93
|
+
for (var i = 0; i < node.children.length; i++) {
|
94
|
+
CollectDamaged(node.children[i]);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
// Recursively collects all newly compiled functions that are going into
|
99
|
+
// business and should have link to the actual script updated.
|
100
|
+
function CollectNew(node_list) {
|
101
|
+
for (var i = 0; i < node_list.length; i++) {
|
102
|
+
link_to_original_script_list.push(node_list[i]);
|
103
|
+
CollectNew(node_list[i].children);
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
if (old_node.status == FunctionStatus.DAMAGED) {
|
108
|
+
CollectDamaged(old_node);
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
if (old_node.status == FunctionStatus.UNCHANGED) {
|
112
|
+
update_positions_list.push(old_node);
|
113
|
+
} else if (old_node.status == FunctionStatus.SOURCE_CHANGED) {
|
114
|
+
update_positions_list.push(old_node);
|
115
|
+
} else if (old_node.status == FunctionStatus.CHANGED) {
|
116
|
+
replace_code_list.push(old_node);
|
117
|
+
CollectNew(old_node.unmatched_new_nodes);
|
118
|
+
}
|
119
|
+
for (var i = 0; i < old_node.children.length; i++) {
|
120
|
+
HarvestTodo(old_node.children[i]);
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
var preview_description = {
|
125
|
+
change_tree: DescribeChangeTree(root_old_node),
|
126
|
+
textual_diff: {
|
127
|
+
old_len: old_source.length,
|
128
|
+
new_len: new_source.length,
|
129
|
+
chunks: diff_array
|
130
|
+
},
|
131
|
+
updated: false
|
132
|
+
};
|
133
|
+
|
134
|
+
if (preview_only) {
|
135
|
+
return preview_description;
|
136
|
+
}
|
137
|
+
|
138
|
+
HarvestTodo(root_old_node);
|
139
|
+
|
140
|
+
// Collect shared infos for functions whose code need to be patched.
|
141
|
+
var replaced_function_infos = new Array();
|
142
|
+
for (var i = 0; i < replace_code_list.length; i++) {
|
143
|
+
var live_shared_function_infos =
|
144
|
+
replace_code_list[i].live_shared_function_infos;
|
145
|
+
|
146
|
+
if (live_shared_function_infos) {
|
147
|
+
for (var j = 0; j < live_shared_function_infos.length; j++) {
|
148
|
+
replaced_function_infos.push(live_shared_function_infos[j]);
|
149
|
+
}
|
150
|
+
}
|
151
|
+
}
|
152
|
+
|
153
|
+
// We haven't changed anything before this line yet.
|
154
|
+
// Committing all changes.
|
155
|
+
|
156
|
+
// Check that function being patched is not currently on stack or drop them.
|
157
|
+
var dropped_functions_number =
|
158
|
+
CheckStackActivations(replaced_function_infos, change_log);
|
159
|
+
|
160
|
+
preview_description.stack_modified = dropped_functions_number != 0;
|
161
|
+
|
162
|
+
// Start with breakpoints. Convert their line/column positions and
|
163
|
+
// temporary remove.
|
164
|
+
var break_points_restorer = TemporaryRemoveBreakPoints(script, change_log);
|
165
|
+
|
166
|
+
var old_script;
|
167
|
+
|
168
|
+
// Create an old script only if there are function that should be linked
|
169
|
+
// to old version.
|
170
|
+
if (link_to_old_script_list.length == 0) {
|
171
|
+
%LiveEditReplaceScript(script, new_source, null);
|
172
|
+
old_script = void 0;
|
173
|
+
} else {
|
174
|
+
var old_script_name = CreateNameForOldScript(script);
|
175
|
+
|
176
|
+
// Update the script text and create a new script representing an old
|
177
|
+
// version of the script.
|
178
|
+
old_script = %LiveEditReplaceScript(script, new_source,
|
179
|
+
old_script_name);
|
180
|
+
|
181
|
+
var link_to_old_script_report = new Array();
|
182
|
+
change_log.push( { linked_to_old_script: link_to_old_script_report } );
|
183
|
+
|
184
|
+
// We need to link to old script all former nested functions.
|
185
|
+
for (var i = 0; i < link_to_old_script_list.length; i++) {
|
186
|
+
LinkToOldScript(link_to_old_script_list[i], old_script,
|
187
|
+
link_to_old_script_report);
|
188
|
+
}
|
189
|
+
|
190
|
+
preview_description.created_script_name = old_script_name;
|
191
|
+
}
|
192
|
+
|
193
|
+
// Link to an actual script all the functions that we are going to use.
|
194
|
+
for (var i = 0; i < link_to_original_script_list.length; i++) {
|
195
|
+
%LiveEditFunctionSetScript(
|
196
|
+
link_to_original_script_list[i].info.shared_function_info, script);
|
197
|
+
}
|
198
|
+
|
199
|
+
for (var i = 0; i < replace_code_list.length; i++) {
|
200
|
+
PatchFunctionCode(replace_code_list[i], change_log);
|
201
|
+
}
|
202
|
+
|
203
|
+
var position_patch_report = new Array();
|
204
|
+
change_log.push( {position_patched: position_patch_report} );
|
205
|
+
|
206
|
+
for (var i = 0; i < update_positions_list.length; i++) {
|
207
|
+
// TODO(LiveEdit): take into account wether it's source_changed or
|
208
|
+
// unchanged and whether positions changed at all.
|
209
|
+
PatchPositions(update_positions_list[i], diff_array,
|
210
|
+
position_patch_report);
|
211
|
+
|
212
|
+
if (update_positions_list[i].live_shared_function_infos) {
|
213
|
+
update_positions_list[i].live_shared_function_infos.
|
214
|
+
forEach(function (info) {
|
215
|
+
%LiveEditFunctionSourceUpdated(info.raw_array);
|
216
|
+
});
|
217
|
+
}
|
218
|
+
}
|
219
|
+
|
220
|
+
break_points_restorer(pos_translator, old_script);
|
221
|
+
|
222
|
+
preview_description.updated = true;
|
223
|
+
return preview_description;
|
224
|
+
}
|
225
|
+
// Function is public.
|
226
|
+
this.ApplyPatchMultiChunk = ApplyPatchMultiChunk;
|
227
|
+
|
228
|
+
|
229
|
+
// Fully compiles source string as a script. Returns Array of
|
230
|
+
// FunctionCompileInfo -- a descriptions of all functions of the script.
|
231
|
+
// Elements of array are ordered by start positions of functions (from top
|
232
|
+
// to bottom) in the source. Fields outer_index and next_sibling_index help
|
233
|
+
// to navigate the nesting structure of functions.
|
234
|
+
//
|
235
|
+
// All functions get compiled linked to script provided as parameter script.
|
236
|
+
// TODO(LiveEdit): consider not using actual scripts as script, because
|
237
|
+
// we have to manually erase all links right after compile.
|
238
|
+
function GatherCompileInfo(source, script) {
|
239
|
+
// Get function info, elements are partially sorted (it is a tree of
|
240
|
+
// nested functions serialized as parent followed by serialized children.
|
241
|
+
var raw_compile_info = %LiveEditGatherCompileInfo(script, source);
|
242
|
+
|
243
|
+
// Sort function infos by start position field.
|
244
|
+
var compile_info = new Array();
|
245
|
+
var old_index_map = new Array();
|
246
|
+
for (var i = 0; i < raw_compile_info.length; i++) {
|
247
|
+
var info = new FunctionCompileInfo(raw_compile_info[i]);
|
248
|
+
// Remove all links to the actual script. Breakpoints system and
|
249
|
+
// LiveEdit itself believe that any function in heap that points to a
|
250
|
+
// particular script is a regular function.
|
251
|
+
// For some functions we will restore this link later.
|
252
|
+
%LiveEditFunctionSetScript(info.shared_function_info, void 0);
|
253
|
+
compile_info.push(info);
|
254
|
+
old_index_map.push(i);
|
255
|
+
}
|
256
|
+
|
257
|
+
for (var i = 0; i < compile_info.length; i++) {
|
258
|
+
var k = i;
|
259
|
+
for (var j = i + 1; j < compile_info.length; j++) {
|
260
|
+
if (compile_info[k].start_position > compile_info[j].start_position) {
|
261
|
+
k = j;
|
262
|
+
}
|
263
|
+
}
|
264
|
+
if (k != i) {
|
265
|
+
var temp_info = compile_info[k];
|
266
|
+
var temp_index = old_index_map[k];
|
267
|
+
compile_info[k] = compile_info[i];
|
268
|
+
old_index_map[k] = old_index_map[i];
|
269
|
+
compile_info[i] = temp_info;
|
270
|
+
old_index_map[i] = temp_index;
|
271
|
+
}
|
272
|
+
}
|
273
|
+
|
274
|
+
// After sorting update outer_inder field using old_index_map. Also
|
275
|
+
// set next_sibling_index field.
|
276
|
+
var current_index = 0;
|
277
|
+
|
278
|
+
// The recursive function, that goes over all children of a particular
|
279
|
+
// node (i.e. function info).
|
280
|
+
function ResetIndexes(new_parent_index, old_parent_index) {
|
281
|
+
var previous_sibling = -1;
|
282
|
+
while (current_index < compile_info.length &&
|
283
|
+
compile_info[current_index].outer_index == old_parent_index) {
|
284
|
+
var saved_index = current_index;
|
285
|
+
compile_info[saved_index].outer_index = new_parent_index;
|
286
|
+
if (previous_sibling != -1) {
|
287
|
+
compile_info[previous_sibling].next_sibling_index = saved_index;
|
288
|
+
}
|
289
|
+
previous_sibling = saved_index;
|
290
|
+
current_index++;
|
291
|
+
ResetIndexes(saved_index, old_index_map[saved_index]);
|
292
|
+
}
|
293
|
+
if (previous_sibling != -1) {
|
294
|
+
compile_info[previous_sibling].next_sibling_index = -1;
|
295
|
+
}
|
296
|
+
}
|
297
|
+
|
298
|
+
ResetIndexes(-1, -1);
|
299
|
+
Assert(current_index == compile_info.length);
|
300
|
+
|
301
|
+
return compile_info;
|
302
|
+
}
|
303
|
+
|
304
|
+
|
305
|
+
// Replaces function's Code.
|
306
|
+
function PatchFunctionCode(old_node, change_log) {
|
307
|
+
var new_info = old_node.corresponding_node.info;
|
308
|
+
if (old_node.live_shared_function_infos) {
|
309
|
+
old_node.live_shared_function_infos.forEach(function (old_info) {
|
310
|
+
%LiveEditReplaceFunctionCode(new_info.raw_array,
|
311
|
+
old_info.raw_array);
|
312
|
+
|
313
|
+
// The function got a new code. However, this new code brings all new
|
314
|
+
// instances of SharedFunctionInfo for nested functions. However,
|
315
|
+
// we want the original instances to be used wherever possible.
|
316
|
+
// (This is because old instances and new instances will be both
|
317
|
+
// linked to a script and breakpoints subsystem does not really
|
318
|
+
// expects this; neither does LiveEdit subsystem on next call).
|
319
|
+
for (var i = 0; i < old_node.children.length; i++) {
|
320
|
+
if (old_node.children[i].corresponding_node) {
|
321
|
+
var corresponding_child_info =
|
322
|
+
old_node.children[i].corresponding_node.info.
|
323
|
+
shared_function_info;
|
324
|
+
|
325
|
+
if (old_node.children[i].live_shared_function_infos) {
|
326
|
+
old_node.children[i].live_shared_function_infos.
|
327
|
+
forEach(function (old_child_info) {
|
328
|
+
%LiveEditReplaceRefToNestedFunction(old_info.info,
|
329
|
+
corresponding_child_info,
|
330
|
+
old_child_info.info);
|
331
|
+
});
|
332
|
+
}
|
333
|
+
}
|
334
|
+
}
|
335
|
+
});
|
336
|
+
|
337
|
+
change_log.push( {function_patched: new_info.function_name} );
|
338
|
+
} else {
|
339
|
+
change_log.push( {function_patched: new_info.function_name,
|
340
|
+
function_info_not_found: true} );
|
341
|
+
}
|
342
|
+
}
|
343
|
+
|
344
|
+
|
345
|
+
// Makes a function associated with another instance of a script (the
|
346
|
+
// one representing its old version). This way the function still
|
347
|
+
// may access its own text.
|
348
|
+
function LinkToOldScript(old_info_node, old_script, report_array) {
|
349
|
+
if (old_info_node.live_shared_function_infos) {
|
350
|
+
old_info_node.live_shared_function_infos.
|
351
|
+
forEach(function (info) {
|
352
|
+
%LiveEditFunctionSetScript(info.info, old_script);
|
353
|
+
});
|
354
|
+
|
355
|
+
report_array.push( { name: old_info_node.info.function_name } );
|
356
|
+
} else {
|
357
|
+
report_array.push(
|
358
|
+
{ name: old_info_node.info.function_name, not_found: true } );
|
359
|
+
}
|
360
|
+
}
|
361
|
+
|
362
|
+
|
363
|
+
// Returns function that restores breakpoints.
|
364
|
+
function TemporaryRemoveBreakPoints(original_script, change_log) {
|
365
|
+
var script_break_points = GetScriptBreakPoints(original_script);
|
366
|
+
|
367
|
+
var break_points_update_report = [];
|
368
|
+
change_log.push( { break_points_update: break_points_update_report } );
|
369
|
+
|
370
|
+
var break_point_old_positions = [];
|
371
|
+
for (var i = 0; i < script_break_points.length; i++) {
|
372
|
+
var break_point = script_break_points[i];
|
373
|
+
|
374
|
+
break_point.clear();
|
375
|
+
|
376
|
+
// TODO(LiveEdit): be careful with resource offset here.
|
377
|
+
var break_point_position = Debug.findScriptSourcePosition(original_script,
|
378
|
+
break_point.line(), break_point.column());
|
379
|
+
|
380
|
+
var old_position_description = {
|
381
|
+
position: break_point_position,
|
382
|
+
line: break_point.line(),
|
383
|
+
column: break_point.column()
|
384
|
+
}
|
385
|
+
break_point_old_positions.push(old_position_description);
|
386
|
+
}
|
387
|
+
|
388
|
+
|
389
|
+
// Restores breakpoints and creates their copies in the "old" copy of
|
390
|
+
// the script.
|
391
|
+
return function (pos_translator, old_script_copy_opt) {
|
392
|
+
// Update breakpoints (change positions and restore them in old version
|
393
|
+
// of script.
|
394
|
+
for (var i = 0; i < script_break_points.length; i++) {
|
395
|
+
var break_point = script_break_points[i];
|
396
|
+
if (old_script_copy_opt) {
|
397
|
+
var clone = break_point.cloneForOtherScript(old_script_copy_opt);
|
398
|
+
clone.set(old_script_copy_opt);
|
399
|
+
|
400
|
+
break_points_update_report.push( {
|
401
|
+
type: "copied_to_old",
|
402
|
+
id: break_point.number(),
|
403
|
+
new_id: clone.number(),
|
404
|
+
positions: break_point_old_positions[i]
|
405
|
+
} );
|
406
|
+
}
|
407
|
+
|
408
|
+
var updated_position = pos_translator.Translate(
|
409
|
+
break_point_old_positions[i].position,
|
410
|
+
PosTranslator.ShiftWithTopInsideChunkHandler);
|
411
|
+
|
412
|
+
var new_location =
|
413
|
+
original_script.locationFromPosition(updated_position, false);
|
414
|
+
|
415
|
+
break_point.update_positions(new_location.line, new_location.column);
|
416
|
+
|
417
|
+
var new_position_description = {
|
418
|
+
position: updated_position,
|
419
|
+
line: new_location.line,
|
420
|
+
column: new_location.column
|
421
|
+
}
|
422
|
+
|
423
|
+
break_point.set(original_script);
|
424
|
+
|
425
|
+
break_points_update_report.push( { type: "position_changed",
|
426
|
+
id: break_point.number(),
|
427
|
+
old_positions: break_point_old_positions[i],
|
428
|
+
new_positions: new_position_description
|
429
|
+
} );
|
430
|
+
}
|
431
|
+
}
|
432
|
+
}
|
433
|
+
|
434
|
+
|
435
|
+
function Assert(condition, message) {
|
436
|
+
if (!condition) {
|
437
|
+
if (message) {
|
438
|
+
throw "Assert " + message;
|
439
|
+
} else {
|
440
|
+
throw "Assert";
|
441
|
+
}
|
442
|
+
}
|
443
|
+
}
|
444
|
+
|
445
|
+
function DiffChunk(pos1, pos2, len1, len2) {
|
446
|
+
this.pos1 = pos1;
|
447
|
+
this.pos2 = pos2;
|
448
|
+
this.len1 = len1;
|
449
|
+
this.len2 = len2;
|
450
|
+
}
|
451
|
+
|
452
|
+
function PosTranslator(diff_array) {
|
453
|
+
var chunks = new Array();
|
454
|
+
var current_diff = 0;
|
455
|
+
for (var i = 0; i < diff_array.length; i += 3) {
|
456
|
+
var pos1_begin = diff_array[i];
|
457
|
+
var pos2_begin = pos1_begin + current_diff;
|
458
|
+
var pos1_end = diff_array[i + 1];
|
459
|
+
var pos2_end = diff_array[i + 2];
|
460
|
+
chunks.push(new DiffChunk(pos1_begin, pos2_begin, pos1_end - pos1_begin,
|
461
|
+
pos2_end - pos2_begin));
|
462
|
+
current_diff = pos2_end - pos1_end;
|
463
|
+
}
|
464
|
+
this.chunks = chunks;
|
465
|
+
}
|
466
|
+
PosTranslator.prototype.GetChunks = function() {
|
467
|
+
return this.chunks;
|
468
|
+
}
|
469
|
+
|
470
|
+
PosTranslator.prototype.Translate = function(pos, inside_chunk_handler) {
|
471
|
+
var array = this.chunks;
|
472
|
+
if (array.length == 0 || pos < array[0].pos1) {
|
473
|
+
return pos;
|
474
|
+
}
|
475
|
+
var chunk_index1 = 0;
|
476
|
+
var chunk_index2 = array.length - 1;
|
477
|
+
|
478
|
+
while (chunk_index1 < chunk_index2) {
|
479
|
+
var middle_index = Math.floor((chunk_index1 + chunk_index2) / 2);
|
480
|
+
if (pos < array[middle_index + 1].pos1) {
|
481
|
+
chunk_index2 = middle_index;
|
482
|
+
} else {
|
483
|
+
chunk_index1 = middle_index + 1;
|
484
|
+
}
|
485
|
+
}
|
486
|
+
var chunk = array[chunk_index1];
|
487
|
+
if (pos >= chunk.pos1 + chunk.len1) {
|
488
|
+
return pos + chunk.pos2 + chunk.len2 - chunk.pos1 - chunk.len1;
|
489
|
+
}
|
490
|
+
|
491
|
+
if (!inside_chunk_handler) {
|
492
|
+
inside_chunk_handler = PosTranslator.DefaultInsideChunkHandler;
|
493
|
+
}
|
494
|
+
return inside_chunk_handler(pos, chunk);
|
495
|
+
}
|
496
|
+
|
497
|
+
PosTranslator.DefaultInsideChunkHandler = function(pos, diff_chunk) {
|
498
|
+
Assert(false, "Cannot translate position in changed area");
|
499
|
+
}
|
500
|
+
|
501
|
+
PosTranslator.ShiftWithTopInsideChunkHandler =
|
502
|
+
function(pos, diff_chunk) {
|
503
|
+
// We carelessly do not check whether we stay inside the chunk after
|
504
|
+
// translation.
|
505
|
+
return pos - diff_chunk.pos1 + diff_chunk.pos2;
|
506
|
+
}
|
507
|
+
|
508
|
+
var FunctionStatus = {
|
509
|
+
// No change to function or its inner functions; however its positions
|
510
|
+
// in script may have been shifted.
|
511
|
+
UNCHANGED: "unchanged",
|
512
|
+
// The code of a function remains unchanged, but something happened inside
|
513
|
+
// some inner functions.
|
514
|
+
SOURCE_CHANGED: "source changed",
|
515
|
+
// The code of a function is changed or some nested function cannot be
|
516
|
+
// properly patched so this function must be recompiled.
|
517
|
+
CHANGED: "changed",
|
518
|
+
// Function is changed but cannot be patched.
|
519
|
+
DAMAGED: "damaged"
|
520
|
+
}
|
521
|
+
|
522
|
+
function CodeInfoTreeNode(code_info, children, array_index) {
|
523
|
+
this.info = code_info;
|
524
|
+
this.children = children;
|
525
|
+
// an index in array of compile_info
|
526
|
+
this.array_index = array_index;
|
527
|
+
this.parent = void 0;
|
528
|
+
|
529
|
+
this.status = FunctionStatus.UNCHANGED;
|
530
|
+
// Status explanation is used for debugging purposes and will be shown
|
531
|
+
// in user UI if some explanations are needed.
|
532
|
+
this.status_explanation = void 0;
|
533
|
+
this.new_start_pos = void 0;
|
534
|
+
this.new_end_pos = void 0;
|
535
|
+
this.corresponding_node = void 0;
|
536
|
+
this.unmatched_new_nodes = void 0;
|
537
|
+
|
538
|
+
// 'Textual' correspondence/matching is weaker than 'pure'
|
539
|
+
// correspondence/matching. We need 'textual' level for visual presentation
|
540
|
+
// in UI, we use 'pure' level for actual code manipulation.
|
541
|
+
// Sometimes only function body is changed (functions in old and new script
|
542
|
+
// textually correspond), but we cannot patch the code, so we see them
|
543
|
+
// as an old function deleted and new function created.
|
544
|
+
this.textual_corresponding_node = void 0;
|
545
|
+
this.textually_unmatched_new_nodes = void 0;
|
546
|
+
|
547
|
+
this.live_shared_function_infos = void 0;
|
548
|
+
}
|
549
|
+
|
550
|
+
// From array of function infos that is implicitly a tree creates
|
551
|
+
// an actual tree of functions in script.
|
552
|
+
function BuildCodeInfoTree(code_info_array) {
|
553
|
+
// Throughtout all function we iterate over input array.
|
554
|
+
var index = 0;
|
555
|
+
|
556
|
+
// Recursive function that builds a branch of tree.
|
557
|
+
function BuildNode() {
|
558
|
+
var my_index = index;
|
559
|
+
index++;
|
560
|
+
var child_array = new Array();
|
561
|
+
while (index < code_info_array.length &&
|
562
|
+
code_info_array[index].outer_index == my_index) {
|
563
|
+
child_array.push(BuildNode());
|
564
|
+
}
|
565
|
+
var node = new CodeInfoTreeNode(code_info_array[my_index], child_array,
|
566
|
+
my_index);
|
567
|
+
for (var i = 0; i < child_array.length; i++) {
|
568
|
+
child_array[i].parent = node;
|
569
|
+
}
|
570
|
+
return node;
|
571
|
+
}
|
572
|
+
|
573
|
+
var root = BuildNode();
|
574
|
+
Assert(index == code_info_array.length);
|
575
|
+
return root;
|
576
|
+
}
|
577
|
+
|
578
|
+
// Applies a list of the textual diff chunks onto the tree of functions.
|
579
|
+
// Determines status of each function (from unchanged to damaged). However
|
580
|
+
// children of unchanged functions are ignored.
|
581
|
+
function MarkChangedFunctions(code_info_tree, chunks) {
|
582
|
+
|
583
|
+
// A convenient interator over diff chunks that also translates
|
584
|
+
// positions from old to new in a current non-changed part of script.
|
585
|
+
var chunk_it = new function() {
|
586
|
+
var chunk_index = 0;
|
587
|
+
var pos_diff = 0;
|
588
|
+
this.current = function() { return chunks[chunk_index]; }
|
589
|
+
this.next = function() {
|
590
|
+
var chunk = chunks[chunk_index];
|
591
|
+
pos_diff = chunk.pos2 + chunk.len2 - (chunk.pos1 + chunk.len1);
|
592
|
+
chunk_index++;
|
593
|
+
}
|
594
|
+
this.done = function() { return chunk_index >= chunks.length; }
|
595
|
+
this.TranslatePos = function(pos) { return pos + pos_diff; }
|
596
|
+
};
|
597
|
+
|
598
|
+
// A recursive function that processes internals of a function and all its
|
599
|
+
// inner functions. Iterator chunk_it initially points to a chunk that is
|
600
|
+
// below function start.
|
601
|
+
function ProcessInternals(info_node) {
|
602
|
+
info_node.new_start_pos = chunk_it.TranslatePos(
|
603
|
+
info_node.info.start_position);
|
604
|
+
var child_index = 0;
|
605
|
+
var code_changed = false;
|
606
|
+
var source_changed = false;
|
607
|
+
// Simultaneously iterates over child functions and over chunks.
|
608
|
+
while (!chunk_it.done() &&
|
609
|
+
chunk_it.current().pos1 < info_node.info.end_position) {
|
610
|
+
if (child_index < info_node.children.length) {
|
611
|
+
var child = info_node.children[child_index];
|
612
|
+
|
613
|
+
if (child.info.end_position <= chunk_it.current().pos1) {
|
614
|
+
ProcessUnchangedChild(child);
|
615
|
+
child_index++;
|
616
|
+
continue;
|
617
|
+
} else if (child.info.start_position >=
|
618
|
+
chunk_it.current().pos1 + chunk_it.current().len1) {
|
619
|
+
code_changed = true;
|
620
|
+
chunk_it.next();
|
621
|
+
continue;
|
622
|
+
} else if (child.info.start_position <= chunk_it.current().pos1 &&
|
623
|
+
child.info.end_position >= chunk_it.current().pos1 +
|
624
|
+
chunk_it.current().len1) {
|
625
|
+
ProcessInternals(child);
|
626
|
+
source_changed = source_changed ||
|
627
|
+
( child.status != FunctionStatus.UNCHANGED );
|
628
|
+
code_changed = code_changed ||
|
629
|
+
( child.status == FunctionStatus.DAMAGED );
|
630
|
+
child_index++;
|
631
|
+
continue;
|
632
|
+
} else {
|
633
|
+
code_changed = true;
|
634
|
+
child.status = FunctionStatus.DAMAGED;
|
635
|
+
child.status_explanation =
|
636
|
+
"Text diff overlaps with function boundary";
|
637
|
+
child_index++;
|
638
|
+
continue;
|
639
|
+
}
|
640
|
+
} else {
|
641
|
+
if (chunk_it.current().pos1 + chunk_it.current().len1 <=
|
642
|
+
info_node.info.end_position) {
|
643
|
+
info_node.status = FunctionStatus.CHANGED;
|
644
|
+
chunk_it.next();
|
645
|
+
continue;
|
646
|
+
} else {
|
647
|
+
info_node.status = FunctionStatus.DAMAGED;
|
648
|
+
info_node.status_explanation =
|
649
|
+
"Text diff overlaps with function boundary";
|
650
|
+
return;
|
651
|
+
}
|
652
|
+
}
|
653
|
+
Assert("Unreachable", false);
|
654
|
+
}
|
655
|
+
while (child_index < info_node.children.length) {
|
656
|
+
var child = info_node.children[child_index];
|
657
|
+
ProcessUnchangedChild(child);
|
658
|
+
child_index++;
|
659
|
+
}
|
660
|
+
if (code_changed) {
|
661
|
+
info_node.status = FunctionStatus.CHANGED;
|
662
|
+
} else if (source_changed) {
|
663
|
+
info_node.status = FunctionStatus.SOURCE_CHANGED;
|
664
|
+
}
|
665
|
+
info_node.new_end_pos =
|
666
|
+
chunk_it.TranslatePos(info_node.info.end_position);
|
667
|
+
}
|
668
|
+
|
669
|
+
function ProcessUnchangedChild(node) {
|
670
|
+
node.new_start_pos = chunk_it.TranslatePos(node.info.start_position);
|
671
|
+
node.new_end_pos = chunk_it.TranslatePos(node.info.end_position);
|
672
|
+
}
|
673
|
+
|
674
|
+
ProcessInternals(code_info_tree);
|
675
|
+
}
|
676
|
+
|
677
|
+
// For ecah old function (if it is not damaged) tries to find a corresponding
|
678
|
+
// function in new script. Typically it should succeed (non-damaged functions
|
679
|
+
// by definition may only have changes inside their bodies). However there are
|
680
|
+
// reasons for corresponence not to be found; function with unmodified text
|
681
|
+
// in new script may become enclosed into other function; the innocent change
|
682
|
+
// inside function body may in fact be something like "} function B() {" that
|
683
|
+
// splits a function into 2 functions.
|
684
|
+
function FindCorrespondingFunctions(old_code_tree, new_code_tree) {
|
685
|
+
|
686
|
+
// A recursive function that tries to find a correspondence for all
|
687
|
+
// child functions and for their inner functions.
|
688
|
+
function ProcessChildren(old_node, new_node) {
|
689
|
+
var old_children = old_node.children;
|
690
|
+
var new_children = new_node.children;
|
691
|
+
|
692
|
+
var unmatched_new_nodes_list = [];
|
693
|
+
var textually_unmatched_new_nodes_list = [];
|
694
|
+
|
695
|
+
var old_index = 0;
|
696
|
+
var new_index = 0;
|
697
|
+
while (old_index < old_children.length) {
|
698
|
+
if (old_children[old_index].status == FunctionStatus.DAMAGED) {
|
699
|
+
old_index++;
|
700
|
+
} else if (new_index < new_children.length) {
|
701
|
+
if (new_children[new_index].info.start_position <
|
702
|
+
old_children[old_index].new_start_pos) {
|
703
|
+
unmatched_new_nodes_list.push(new_children[new_index]);
|
704
|
+
textually_unmatched_new_nodes_list.push(new_children[new_index]);
|
705
|
+
new_index++;
|
706
|
+
} else if (new_children[new_index].info.start_position ==
|
707
|
+
old_children[old_index].new_start_pos) {
|
708
|
+
if (new_children[new_index].info.end_position ==
|
709
|
+
old_children[old_index].new_end_pos) {
|
710
|
+
old_children[old_index].corresponding_node =
|
711
|
+
new_children[new_index];
|
712
|
+
old_children[old_index].textual_corresponding_node =
|
713
|
+
new_children[new_index];
|
714
|
+
if (old_children[old_index].status != FunctionStatus.UNCHANGED) {
|
715
|
+
ProcessChildren(old_children[old_index],
|
716
|
+
new_children[new_index]);
|
717
|
+
if (old_children[old_index].status == FunctionStatus.DAMAGED) {
|
718
|
+
unmatched_new_nodes_list.push(
|
719
|
+
old_children[old_index].corresponding_node);
|
720
|
+
old_children[old_index].corresponding_node = void 0;
|
721
|
+
old_node.status = FunctionStatus.CHANGED;
|
722
|
+
}
|
723
|
+
}
|
724
|
+
} else {
|
725
|
+
old_children[old_index].status = FunctionStatus.DAMAGED;
|
726
|
+
old_children[old_index].status_explanation =
|
727
|
+
"No corresponding function in new script found";
|
728
|
+
old_node.status = FunctionStatus.CHANGED;
|
729
|
+
unmatched_new_nodes_list.push(new_children[new_index]);
|
730
|
+
textually_unmatched_new_nodes_list.push(new_children[new_index]);
|
731
|
+
}
|
732
|
+
new_index++;
|
733
|
+
old_index++;
|
734
|
+
} else {
|
735
|
+
old_children[old_index].status = FunctionStatus.DAMAGED;
|
736
|
+
old_children[old_index].status_explanation =
|
737
|
+
"No corresponding function in new script found";
|
738
|
+
old_node.status = FunctionStatus.CHANGED;
|
739
|
+
old_index++;
|
740
|
+
}
|
741
|
+
} else {
|
742
|
+
old_children[old_index].status = FunctionStatus.DAMAGED;
|
743
|
+
old_children[old_index].status_explanation =
|
744
|
+
"No corresponding function in new script found";
|
745
|
+
old_node.status = FunctionStatus.CHANGED;
|
746
|
+
old_index++;
|
747
|
+
}
|
748
|
+
}
|
749
|
+
|
750
|
+
while (new_index < new_children.length) {
|
751
|
+
unmatched_new_nodes_list.push(new_children[new_index]);
|
752
|
+
textually_unmatched_new_nodes_list.push(new_children[new_index]);
|
753
|
+
new_index++;
|
754
|
+
}
|
755
|
+
|
756
|
+
if (old_node.status == FunctionStatus.CHANGED) {
|
757
|
+
var why_wrong_expectations =
|
758
|
+
WhyFunctionExpectationsDiffer(old_node.info, new_node.info);
|
759
|
+
if (why_wrong_expectations) {
|
760
|
+
old_node.status = FunctionStatus.DAMAGED;
|
761
|
+
old_node.status_explanation = why_wrong_expectations;
|
762
|
+
}
|
763
|
+
}
|
764
|
+
old_node.unmatched_new_nodes = unmatched_new_nodes_list;
|
765
|
+
old_node.textually_unmatched_new_nodes =
|
766
|
+
textually_unmatched_new_nodes_list;
|
767
|
+
}
|
768
|
+
|
769
|
+
ProcessChildren(old_code_tree, new_code_tree);
|
770
|
+
|
771
|
+
old_code_tree.corresponding_node = new_code_tree;
|
772
|
+
old_code_tree.textual_corresponding_node = new_code_tree;
|
773
|
+
|
774
|
+
Assert(old_code_tree.status != FunctionStatus.DAMAGED,
|
775
|
+
"Script became damaged");
|
776
|
+
}
|
777
|
+
|
778
|
+
function FindLiveSharedInfos(old_code_tree, script) {
|
779
|
+
var shared_raw_list = %LiveEditFindSharedFunctionInfosForScript(script);
|
780
|
+
|
781
|
+
var shared_infos = new Array();
|
782
|
+
|
783
|
+
for (var i = 0; i < shared_raw_list.length; i++) {
|
784
|
+
shared_infos.push(new SharedInfoWrapper(shared_raw_list[i]));
|
785
|
+
}
|
786
|
+
|
787
|
+
// Finds all SharedFunctionInfos that corresponds to compile info
|
788
|
+
// in old version of the script.
|
789
|
+
function FindFunctionInfos(compile_info) {
|
790
|
+
var wrappers = [];
|
791
|
+
|
792
|
+
for (var i = 0; i < shared_infos.length; i++) {
|
793
|
+
var wrapper = shared_infos[i];
|
794
|
+
if (wrapper.start_position == compile_info.start_position &&
|
795
|
+
wrapper.end_position == compile_info.end_position) {
|
796
|
+
wrappers.push(wrapper);
|
797
|
+
}
|
798
|
+
}
|
799
|
+
|
800
|
+
if (wrappers.length > 0) {
|
801
|
+
return wrappers;
|
802
|
+
}
|
803
|
+
}
|
804
|
+
|
805
|
+
function TraverseTree(node) {
|
806
|
+
node.live_shared_function_infos = FindFunctionInfos(node.info);
|
807
|
+
|
808
|
+
for (var i = 0; i < node.children.length; i++) {
|
809
|
+
TraverseTree(node.children[i]);
|
810
|
+
}
|
811
|
+
}
|
812
|
+
|
813
|
+
TraverseTree(old_code_tree);
|
814
|
+
}
|
815
|
+
|
816
|
+
|
817
|
+
// An object describing function compilation details. Its index fields
|
818
|
+
// apply to indexes inside array that stores these objects.
|
819
|
+
function FunctionCompileInfo(raw_array) {
|
820
|
+
this.function_name = raw_array[0];
|
821
|
+
this.start_position = raw_array[1];
|
822
|
+
this.end_position = raw_array[2];
|
823
|
+
this.param_num = raw_array[3];
|
824
|
+
this.code = raw_array[4];
|
825
|
+
this.code_scope_info = raw_array[5];
|
826
|
+
this.scope_info = raw_array[6];
|
827
|
+
this.outer_index = raw_array[7];
|
828
|
+
this.shared_function_info = raw_array[8];
|
829
|
+
this.next_sibling_index = null;
|
830
|
+
this.raw_array = raw_array;
|
831
|
+
}
|
832
|
+
|
833
|
+
function SharedInfoWrapper(raw_array) {
|
834
|
+
this.function_name = raw_array[0];
|
835
|
+
this.start_position = raw_array[1];
|
836
|
+
this.end_position = raw_array[2];
|
837
|
+
this.info = raw_array[3];
|
838
|
+
this.raw_array = raw_array;
|
839
|
+
}
|
840
|
+
|
841
|
+
// Changes positions (including all statments) in function.
|
842
|
+
function PatchPositions(old_info_node, diff_array, report_array) {
|
843
|
+
if (old_info_node.live_shared_function_infos) {
|
844
|
+
old_info_node.live_shared_function_infos.forEach(function (info) {
|
845
|
+
%LiveEditPatchFunctionPositions(info.raw_array,
|
846
|
+
diff_array);
|
847
|
+
});
|
848
|
+
|
849
|
+
report_array.push( { name: old_info_node.info.function_name } );
|
850
|
+
} else {
|
851
|
+
// TODO(LiveEdit): function is not compiled yet or is already collected.
|
852
|
+
report_array.push(
|
853
|
+
{ name: old_info_node.info.function_name, info_not_found: true } );
|
854
|
+
}
|
855
|
+
}
|
856
|
+
|
857
|
+
// Adds a suffix to script name to mark that it is old version.
|
858
|
+
function CreateNameForOldScript(script) {
|
859
|
+
// TODO(635): try better than this; support several changes.
|
860
|
+
return script.name + " (old)";
|
861
|
+
}
|
862
|
+
|
863
|
+
// Compares a function interface old and new version, whether it
|
864
|
+
// changed or not. Returns explanation if they differ.
|
865
|
+
function WhyFunctionExpectationsDiffer(function_info1, function_info2) {
|
866
|
+
// Check that function has the same number of parameters (there may exist
|
867
|
+
// an adapter, that won't survive function parameter number change).
|
868
|
+
if (function_info1.param_num != function_info2.param_num) {
|
869
|
+
return "Changed parameter number: " + function_info1.param_num +
|
870
|
+
" and " + function_info2.param_num;
|
871
|
+
}
|
872
|
+
var scope_info1 = function_info1.scope_info;
|
873
|
+
var scope_info2 = function_info2.scope_info;
|
874
|
+
|
875
|
+
var scope_info1_text;
|
876
|
+
var scope_info2_text;
|
877
|
+
|
878
|
+
if (scope_info1) {
|
879
|
+
scope_info1_text = scope_info1.toString();
|
880
|
+
} else {
|
881
|
+
scope_info1_text = "";
|
882
|
+
}
|
883
|
+
if (scope_info2) {
|
884
|
+
scope_info2_text = scope_info2.toString();
|
885
|
+
} else {
|
886
|
+
scope_info2_text = "";
|
887
|
+
}
|
888
|
+
|
889
|
+
if (scope_info1_text != scope_info2_text) {
|
890
|
+
return "Incompatible variable maps: [" + scope_info1_text +
|
891
|
+
"] and [" + scope_info2_text + "]";
|
892
|
+
}
|
893
|
+
// No differences. Return undefined.
|
894
|
+
return;
|
895
|
+
}
|
896
|
+
|
897
|
+
// Minifier forward declaration.
|
898
|
+
var FunctionPatchabilityStatus;
|
899
|
+
|
900
|
+
// For array of wrapped shared function infos checks that none of them
|
901
|
+
// have activations on stack (of any thread). Throws a Failure exception
|
902
|
+
// if this proves to be false.
|
903
|
+
function CheckStackActivations(shared_wrapper_list, change_log) {
|
904
|
+
var shared_list = new Array();
|
905
|
+
for (var i = 0; i < shared_wrapper_list.length; i++) {
|
906
|
+
shared_list[i] = shared_wrapper_list[i].info;
|
907
|
+
}
|
908
|
+
var result = %LiveEditCheckAndDropActivations(shared_list, true);
|
909
|
+
if (result[shared_list.length]) {
|
910
|
+
// Extra array element may contain error message.
|
911
|
+
throw new Failure(result[shared_list.length]);
|
912
|
+
}
|
913
|
+
|
914
|
+
var problems = new Array();
|
915
|
+
var dropped = new Array();
|
916
|
+
for (var i = 0; i < shared_list.length; i++) {
|
917
|
+
var shared = shared_wrapper_list[i];
|
918
|
+
if (result[i] == FunctionPatchabilityStatus.REPLACED_ON_ACTIVE_STACK) {
|
919
|
+
dropped.push({ name: shared.function_name } );
|
920
|
+
} else if (result[i] != FunctionPatchabilityStatus.AVAILABLE_FOR_PATCH) {
|
921
|
+
var description = {
|
922
|
+
name: shared.function_name,
|
923
|
+
start_pos: shared.start_position,
|
924
|
+
end_pos: shared.end_position,
|
925
|
+
replace_problem:
|
926
|
+
FunctionPatchabilityStatus.SymbolName(result[i])
|
927
|
+
};
|
928
|
+
problems.push(description);
|
929
|
+
}
|
930
|
+
}
|
931
|
+
if (dropped.length > 0) {
|
932
|
+
change_log.push({ dropped_from_stack: dropped });
|
933
|
+
}
|
934
|
+
if (problems.length > 0) {
|
935
|
+
change_log.push( { functions_on_stack: problems } );
|
936
|
+
throw new Failure("Blocked by functions on stack");
|
937
|
+
}
|
938
|
+
|
939
|
+
return dropped.length;
|
940
|
+
}
|
941
|
+
|
942
|
+
// A copy of the FunctionPatchabilityStatus enum from liveedit.h
|
943
|
+
var FunctionPatchabilityStatus = {
|
944
|
+
AVAILABLE_FOR_PATCH: 1,
|
945
|
+
BLOCKED_ON_ACTIVE_STACK: 2,
|
946
|
+
BLOCKED_ON_OTHER_STACK: 3,
|
947
|
+
BLOCKED_UNDER_NATIVE_CODE: 4,
|
948
|
+
REPLACED_ON_ACTIVE_STACK: 5
|
949
|
+
}
|
950
|
+
|
951
|
+
FunctionPatchabilityStatus.SymbolName = function(code) {
|
952
|
+
var enum = FunctionPatchabilityStatus;
|
953
|
+
for (name in enum) {
|
954
|
+
if (enum[name] == code) {
|
955
|
+
return name;
|
956
|
+
}
|
957
|
+
}
|
958
|
+
}
|
959
|
+
|
960
|
+
|
961
|
+
// A logical failure in liveedit process. This means that change_log
|
962
|
+
// is valid and consistent description of what happened.
|
963
|
+
function Failure(message) {
|
964
|
+
this.message = message;
|
965
|
+
}
|
966
|
+
// Function (constructor) is public.
|
967
|
+
this.Failure = Failure;
|
968
|
+
|
969
|
+
Failure.prototype.toString = function() {
|
970
|
+
return "LiveEdit Failure: " + this.message;
|
971
|
+
}
|
972
|
+
|
973
|
+
// A testing entry.
|
974
|
+
function GetPcFromSourcePos(func, source_pos) {
|
975
|
+
return %GetFunctionCodePositionFromSource(func, source_pos);
|
976
|
+
}
|
977
|
+
// Function is public.
|
978
|
+
this.GetPcFromSourcePos = GetPcFromSourcePos;
|
979
|
+
|
980
|
+
// LiveEdit main entry point: changes a script text to a new string.
|
981
|
+
function SetScriptSource(script, new_source, preview_only, change_log) {
|
982
|
+
var old_source = script.source;
|
983
|
+
var diff = CompareStrings(old_source, new_source);
|
984
|
+
return ApplyPatchMultiChunk(script, diff, new_source, preview_only,
|
985
|
+
change_log);
|
986
|
+
}
|
987
|
+
// Function is public.
|
988
|
+
this.SetScriptSource = SetScriptSource;
|
989
|
+
|
990
|
+
function CompareStrings(s1, s2) {
|
991
|
+
return %LiveEditCompareStrings(s1, s2);
|
992
|
+
}
|
993
|
+
|
994
|
+
// Applies the change to the script.
|
995
|
+
// The change is always a substring (change_pos, change_pos + change_len)
|
996
|
+
// being replaced with a completely different string new_str.
|
997
|
+
// This API is a legacy and is obsolete.
|
998
|
+
//
|
999
|
+
// @param {Script} script that is being changed
|
1000
|
+
// @param {Array} change_log a list that collects engineer-readable
|
1001
|
+
// description of what happened.
|
1002
|
+
function ApplySingleChunkPatch(script, change_pos, change_len, new_str,
|
1003
|
+
change_log) {
|
1004
|
+
var old_source = script.source;
|
1005
|
+
|
1006
|
+
// Prepare new source string.
|
1007
|
+
var new_source = old_source.substring(0, change_pos) +
|
1008
|
+
new_str + old_source.substring(change_pos + change_len);
|
1009
|
+
|
1010
|
+
return ApplyPatchMultiChunk(script,
|
1011
|
+
[ change_pos, change_pos + change_len, change_pos + new_str.length],
|
1012
|
+
new_source, false, change_log);
|
1013
|
+
}
|
1014
|
+
|
1015
|
+
// Creates JSON description for a change tree.
|
1016
|
+
function DescribeChangeTree(old_code_tree) {
|
1017
|
+
|
1018
|
+
function ProcessOldNode(node) {
|
1019
|
+
var child_infos = [];
|
1020
|
+
for (var i = 0; i < node.children.length; i++) {
|
1021
|
+
var child = node.children[i];
|
1022
|
+
if (child.status != FunctionStatus.UNCHANGED) {
|
1023
|
+
child_infos.push(ProcessOldNode(child));
|
1024
|
+
}
|
1025
|
+
}
|
1026
|
+
var new_child_infos = [];
|
1027
|
+
if (node.textually_unmatched_new_nodes) {
|
1028
|
+
for (var i = 0; i < node.textually_unmatched_new_nodes.length; i++) {
|
1029
|
+
var child = node.textually_unmatched_new_nodes[i];
|
1030
|
+
new_child_infos.push(ProcessNewNode(child));
|
1031
|
+
}
|
1032
|
+
}
|
1033
|
+
var res = {
|
1034
|
+
name: node.info.function_name,
|
1035
|
+
positions: DescribePositions(node),
|
1036
|
+
status: node.status,
|
1037
|
+
children: child_infos,
|
1038
|
+
new_children: new_child_infos
|
1039
|
+
};
|
1040
|
+
if (node.status_explanation) {
|
1041
|
+
res.status_explanation = node.status_explanation;
|
1042
|
+
}
|
1043
|
+
if (node.textual_corresponding_node) {
|
1044
|
+
res.new_positions = DescribePositions(node.textual_corresponding_node);
|
1045
|
+
}
|
1046
|
+
return res;
|
1047
|
+
}
|
1048
|
+
|
1049
|
+
function ProcessNewNode(node) {
|
1050
|
+
var child_infos = [];
|
1051
|
+
// Do not list ancestors.
|
1052
|
+
if (false) {
|
1053
|
+
for (var i = 0; i < node.children.length; i++) {
|
1054
|
+
child_infos.push(ProcessNewNode(node.children[i]));
|
1055
|
+
}
|
1056
|
+
}
|
1057
|
+
var res = {
|
1058
|
+
name: node.info.function_name,
|
1059
|
+
positions: DescribePositions(node),
|
1060
|
+
children: child_infos,
|
1061
|
+
};
|
1062
|
+
return res;
|
1063
|
+
}
|
1064
|
+
|
1065
|
+
function DescribePositions(node) {
|
1066
|
+
return {
|
1067
|
+
start_position: node.info.start_position,
|
1068
|
+
end_position: node.info.end_position
|
1069
|
+
};
|
1070
|
+
}
|
1071
|
+
|
1072
|
+
return ProcessOldNode(old_code_tree);
|
1073
|
+
}
|
1074
|
+
|
1075
|
+
|
1076
|
+
// Functions are public for tests.
|
1077
|
+
this.TestApi = {
|
1078
|
+
PosTranslator: PosTranslator,
|
1079
|
+
CompareStrings: CompareStrings,
|
1080
|
+
ApplySingleChunkPatch: ApplySingleChunkPatch
|
1081
|
+
}
|
1082
|
+
}
|