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
@@ -1,92 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright 2007-2008 the V8 project authors. All rights reserved.
|
3
|
-
* Redistribution and use in source and binary forms, with or without
|
4
|
-
* modification, are permitted provided that the following conditions are
|
5
|
-
* met:
|
6
|
-
*
|
7
|
-
* * Redistributions of source code must retain the above copyright
|
8
|
-
* notice, this list of conditions and the following disclaimer.
|
9
|
-
* * Redistributions in binary form must reproduce the above
|
10
|
-
* copyright notice, this list of conditions and the following
|
11
|
-
* disclaimer in the documentation and/or other materials provided
|
12
|
-
* with the distribution.
|
13
|
-
* * Neither the name of Google Inc. nor the names of its
|
14
|
-
* contributors may be used to endorse or promote products derived
|
15
|
-
* from this software without specific prior written permission.
|
16
|
-
*
|
17
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
18
|
-
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
19
|
-
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
20
|
-
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
21
|
-
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
22
|
-
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
23
|
-
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
24
|
-
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
25
|
-
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
26
|
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
27
|
-
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
28
|
-
*/
|
29
|
-
|
30
|
-
/**
|
31
|
-
* Dtoa needs to have a particular environment set up for it so
|
32
|
-
* instead of using it directly you should use this file.
|
33
|
-
*
|
34
|
-
* The way it works is that when you link with it, its definitions
|
35
|
-
* of dtoa, strtod etc. override the default ones. So if you fail
|
36
|
-
* to link with this library everything will still work, it's just
|
37
|
-
* subtly wrong.
|
38
|
-
*/
|
39
|
-
|
40
|
-
#if !(defined(__APPLE__) && defined(__MACH__)) && \
|
41
|
-
!defined(WIN32) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && \
|
42
|
-
!defined(__sun)
|
43
|
-
#include <endian.h>
|
44
|
-
#endif
|
45
|
-
#include <math.h>
|
46
|
-
#include <float.h>
|
47
|
-
|
48
|
-
/* The floating point word order on ARM is big endian when floating point
|
49
|
-
* emulation is used, even if the byte order is little endian */
|
50
|
-
#if !(defined(__APPLE__) && defined(__MACH__)) && !defined(WIN32) && \
|
51
|
-
!defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__sun) && \
|
52
|
-
__FLOAT_WORD_ORDER == __BIG_ENDIAN
|
53
|
-
#define IEEE_MC68k
|
54
|
-
#else
|
55
|
-
#define IEEE_8087
|
56
|
-
#endif
|
57
|
-
|
58
|
-
#define __MATH_H__
|
59
|
-
#if defined(__APPLE__) && defined(__MACH__) || defined(__FreeBSD__) || \
|
60
|
-
defined(__OpenBSD__) || defined(__sun)
|
61
|
-
/* stdlib.h on FreeBSD and Apple's 10.5 and later SDKs will mangle the
|
62
|
-
* name of strtod. If it's included after strtod is redefined as
|
63
|
-
* gay_strtod, it will mangle the name of gay_strtod, which is
|
64
|
-
* unwanted. */
|
65
|
-
#include <stdlib.h>
|
66
|
-
|
67
|
-
#endif
|
68
|
-
/* stdlib.h on Windows adds __declspec(dllimport) to all functions when using
|
69
|
-
* the DLL version of the CRT (compiling with /MD or /MDd). If stdlib.h is
|
70
|
-
* included after strtod is redefined as gay_strtod, it will add
|
71
|
-
* __declspec(dllimport) to gay_strtod, which causes the compilation of
|
72
|
-
* gay_strtod in dtoa.c to fail.
|
73
|
-
*/
|
74
|
-
#if defined(WIN32) && defined(_DLL)
|
75
|
-
#include "stdlib.h"
|
76
|
-
#endif
|
77
|
-
|
78
|
-
/* For MinGW, turn on __NO_ISOCEXT so that its strtod doesn't get added */
|
79
|
-
#ifdef __MINGW32__
|
80
|
-
#define __NO_ISOCEXT
|
81
|
-
#endif /* __MINGW32__ */
|
82
|
-
|
83
|
-
/* On 64-bit systems, we need to make sure that a Long is only 32 bits. */
|
84
|
-
#ifdef V8_TARGET_ARCH_X64
|
85
|
-
#define Long int
|
86
|
-
#endif /* V8_TARGET_ARCH_X64 */
|
87
|
-
|
88
|
-
/* Make sure we use the David M. Gay version of strtod(). On Linux, we
|
89
|
-
* cannot use the same name (maybe the function does not have weak
|
90
|
-
* linkage?). */
|
91
|
-
#define strtod gay_strtod
|
92
|
-
#include "third_party/dtoa/dtoa.c"
|
@@ -1,77 +0,0 @@
|
|
1
|
-
// Copyright 2010 the V8 project authors. All rights reserved.
|
2
|
-
// Redistribution and use in source and binary forms, with or without
|
3
|
-
// modification, are permitted provided that the following conditions are
|
4
|
-
// met:
|
5
|
-
//
|
6
|
-
// * Redistributions of source code must retain the above copyright
|
7
|
-
// notice, this list of conditions and the following disclaimer.
|
8
|
-
// * Redistributions in binary form must reproduce the above
|
9
|
-
// copyright notice, this list of conditions and the following
|
10
|
-
// disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
// * Neither the name of Google Inc. nor the names of its
|
13
|
-
// contributors may be used to endorse or promote products derived
|
14
|
-
// from this software without specific prior written permission.
|
15
|
-
//
|
16
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
-
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
-
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
-
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
-
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
-
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
-
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
-
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
-
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
-
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
-
|
28
|
-
#include <math.h>
|
29
|
-
|
30
|
-
#include "v8.h"
|
31
|
-
#include "dtoa.h"
|
32
|
-
|
33
|
-
#include "double.h"
|
34
|
-
#include "fast-dtoa.h"
|
35
|
-
#include "fixed-dtoa.h"
|
36
|
-
|
37
|
-
namespace v8 {
|
38
|
-
namespace internal {
|
39
|
-
|
40
|
-
bool DoubleToAscii(double v, DtoaMode mode, int requested_digits,
|
41
|
-
Vector<char> buffer, int* sign, int* length, int* point) {
|
42
|
-
ASSERT(!Double(v).IsSpecial());
|
43
|
-
ASSERT(mode == DTOA_SHORTEST || requested_digits >= 0);
|
44
|
-
|
45
|
-
if (Double(v).Sign() < 0) {
|
46
|
-
*sign = 1;
|
47
|
-
v = -v;
|
48
|
-
} else {
|
49
|
-
*sign = 0;
|
50
|
-
}
|
51
|
-
|
52
|
-
if (v == 0) {
|
53
|
-
buffer[0] = '0';
|
54
|
-
buffer[1] = '\0';
|
55
|
-
*length = 1;
|
56
|
-
*point = 1;
|
57
|
-
return true;
|
58
|
-
}
|
59
|
-
|
60
|
-
if (mode == DTOA_PRECISION && requested_digits == 0) {
|
61
|
-
buffer[0] = '\0';
|
62
|
-
*length = 0;
|
63
|
-
return true;
|
64
|
-
}
|
65
|
-
|
66
|
-
switch (mode) {
|
67
|
-
case DTOA_SHORTEST:
|
68
|
-
return FastDtoa(v, buffer, length, point);
|
69
|
-
case DTOA_FIXED:
|
70
|
-
return FastFixedDtoa(v, requested_digits, buffer, length, point);
|
71
|
-
default:
|
72
|
-
break;
|
73
|
-
}
|
74
|
-
return false;
|
75
|
-
}
|
76
|
-
|
77
|
-
} } // namespace v8::internal
|
@@ -1,81 +0,0 @@
|
|
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
|
-
#ifndef V8_DTOA_H_
|
29
|
-
#define V8_DTOA_H_
|
30
|
-
|
31
|
-
namespace v8 {
|
32
|
-
namespace internal {
|
33
|
-
|
34
|
-
enum DtoaMode {
|
35
|
-
// 0.9999999999999999 becomes 0.1
|
36
|
-
DTOA_SHORTEST,
|
37
|
-
// Fixed number of digits after the decimal point.
|
38
|
-
// For instance fixed(0.1, 4) becomes 0.1000
|
39
|
-
// If the input number is big, the output will be big.
|
40
|
-
DTOA_FIXED,
|
41
|
-
// Fixed number of digits (independent of the decimal point).
|
42
|
-
DTOA_PRECISION
|
43
|
-
};
|
44
|
-
|
45
|
-
// The maximal length of digits a double can have in base 10.
|
46
|
-
// Note that DoubleToAscii null-terminates its input. So the given buffer should
|
47
|
-
// be at least kBase10MaximalLength + 1 characters long.
|
48
|
-
static const int kBase10MaximalLength = 17;
|
49
|
-
|
50
|
-
// Converts the given double 'v' to ascii.
|
51
|
-
// The result should be interpreted as buffer * 10^(point-length).
|
52
|
-
//
|
53
|
-
// The output depends on the given mode:
|
54
|
-
// - SHORTEST: produce the least amount of digits for which the internal
|
55
|
-
// identity requirement is still satisfied. If the digits are printed
|
56
|
-
// (together with the correct exponent) then reading this number will give
|
57
|
-
// 'v' again. The buffer will choose the representation that is closest to
|
58
|
-
// 'v'. If there are two at the same distance, than the one farther away
|
59
|
-
// from 0 is chosen (halfway cases - ending with 5 - are rounded up).
|
60
|
-
// In this mode the 'requested_digits' parameter is ignored.
|
61
|
-
// - FIXED: produces digits necessary to print a given number with
|
62
|
-
// 'requested_digits' digits after the decimal point. The produced digits
|
63
|
-
// might be too short in which case the caller has to fill the gaps with '0's.
|
64
|
-
// Example: toFixed(0.001, 5) is allowed to return buffer="1", point=-2.
|
65
|
-
// Halfway cases are rounded towards +/-Infinity (away from 0). The call
|
66
|
-
// toFixed(0.15, 2) thus returns buffer="2", point=0.
|
67
|
-
// The returned buffer may contain digits that would be truncated from the
|
68
|
-
// shortest representation of the input.
|
69
|
-
// - PRECISION: produces 'requested_digits' where the first digit is not '0'.
|
70
|
-
// Even though the length of produced digits usually equals
|
71
|
-
// 'requested_digits', the function is allowed to return fewer digits, in
|
72
|
-
// which case the caller has to fill the missing digits with '0's.
|
73
|
-
// Halfway cases are again rounded away from 0.
|
74
|
-
// 'DoubleToAscii' expects the given buffer to be big enough to hold all digits
|
75
|
-
// and a terminating null-character.
|
76
|
-
bool DoubleToAscii(double v, DtoaMode mode, int requested_digits,
|
77
|
-
Vector<char> buffer, int* sign, int* length, int* point);
|
78
|
-
|
79
|
-
} } // namespace v8::internal
|
80
|
-
|
81
|
-
#endif // V8_DTOA_H_
|
@@ -1,809 +0,0 @@
|
|
1
|
-
// Copyright 2006-2008 the V8 project authors. All rights reserved.
|
2
|
-
// Redistribution and use in source and binary forms, with or without
|
3
|
-
// modification, are permitted provided that the following conditions are
|
4
|
-
// met:
|
5
|
-
//
|
6
|
-
// * Redistributions of source code must retain the above copyright
|
7
|
-
// notice, this list of conditions and the following disclaimer.
|
8
|
-
// * Redistributions in binary form must reproduce the above
|
9
|
-
// copyright notice, this list of conditions and the following
|
10
|
-
// disclaimer in the documentation and/or other materials provided
|
11
|
-
// with the distribution.
|
12
|
-
// * Neither the name of Google Inc. nor the names of its
|
13
|
-
// contributors may be used to endorse or promote products derived
|
14
|
-
// from this software without specific prior written permission.
|
15
|
-
//
|
16
|
-
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
-
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
-
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
-
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
20
|
-
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21
|
-
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22
|
-
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
-
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
-
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
-
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
26
|
-
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
-
|
28
|
-
#include <stdlib.h>
|
29
|
-
|
30
|
-
#include "v8.h"
|
31
|
-
|
32
|
-
#include "api.h"
|
33
|
-
#include "bootstrapper.h"
|
34
|
-
#include "codegen-inl.h"
|
35
|
-
#include "debug.h"
|
36
|
-
#include "simulator.h"
|
37
|
-
#include "v8threads.h"
|
38
|
-
|
39
|
-
namespace v8 {
|
40
|
-
namespace internal {
|
41
|
-
|
42
|
-
|
43
|
-
static Handle<Object> Invoke(bool construct,
|
44
|
-
Handle<JSFunction> func,
|
45
|
-
Handle<Object> receiver,
|
46
|
-
int argc,
|
47
|
-
Object*** args,
|
48
|
-
bool* has_pending_exception) {
|
49
|
-
// Entering JavaScript.
|
50
|
-
VMState state(JS);
|
51
|
-
|
52
|
-
// Placeholder for return value.
|
53
|
-
Object* value = reinterpret_cast<Object*>(kZapValue);
|
54
|
-
|
55
|
-
typedef Object* (*JSEntryFunction)(
|
56
|
-
byte* entry,
|
57
|
-
Object* function,
|
58
|
-
Object* receiver,
|
59
|
-
int argc,
|
60
|
-
Object*** args);
|
61
|
-
|
62
|
-
Handle<Code> code;
|
63
|
-
if (construct) {
|
64
|
-
JSConstructEntryStub stub;
|
65
|
-
code = stub.GetCode();
|
66
|
-
} else {
|
67
|
-
JSEntryStub stub;
|
68
|
-
code = stub.GetCode();
|
69
|
-
}
|
70
|
-
|
71
|
-
// Convert calls on global objects to be calls on the global
|
72
|
-
// receiver instead to avoid having a 'this' pointer which refers
|
73
|
-
// directly to a global object.
|
74
|
-
if (receiver->IsGlobalObject()) {
|
75
|
-
Handle<GlobalObject> global = Handle<GlobalObject>::cast(receiver);
|
76
|
-
receiver = Handle<JSObject>(global->global_receiver());
|
77
|
-
}
|
78
|
-
|
79
|
-
// Make sure that the global object of the context we're about to
|
80
|
-
// make the current one is indeed a global object.
|
81
|
-
ASSERT(func->context()->global()->IsGlobalObject());
|
82
|
-
|
83
|
-
{
|
84
|
-
// Save and restore context around invocation and block the
|
85
|
-
// allocation of handles without explicit handle scopes.
|
86
|
-
SaveContext save;
|
87
|
-
NoHandleAllocation na;
|
88
|
-
JSEntryFunction entry = FUNCTION_CAST<JSEntryFunction>(code->entry());
|
89
|
-
|
90
|
-
// Call the function through the right JS entry stub.
|
91
|
-
byte* entry_address = func->code()->entry();
|
92
|
-
JSFunction* function = *func;
|
93
|
-
Object* receiver_pointer = *receiver;
|
94
|
-
value = CALL_GENERATED_CODE(entry, entry_address, function,
|
95
|
-
receiver_pointer, argc, args);
|
96
|
-
}
|
97
|
-
|
98
|
-
#ifdef DEBUG
|
99
|
-
value->Verify();
|
100
|
-
#endif
|
101
|
-
|
102
|
-
// Update the pending exception flag and return the value.
|
103
|
-
*has_pending_exception = value->IsException();
|
104
|
-
ASSERT(*has_pending_exception == Top::has_pending_exception());
|
105
|
-
if (*has_pending_exception) {
|
106
|
-
Top::ReportPendingMessages();
|
107
|
-
return Handle<Object>();
|
108
|
-
} else {
|
109
|
-
Top::clear_pending_message();
|
110
|
-
}
|
111
|
-
|
112
|
-
return Handle<Object>(value);
|
113
|
-
}
|
114
|
-
|
115
|
-
|
116
|
-
Handle<Object> Execution::Call(Handle<JSFunction> func,
|
117
|
-
Handle<Object> receiver,
|
118
|
-
int argc,
|
119
|
-
Object*** args,
|
120
|
-
bool* pending_exception) {
|
121
|
-
return Invoke(false, func, receiver, argc, args, pending_exception);
|
122
|
-
}
|
123
|
-
|
124
|
-
|
125
|
-
Handle<Object> Execution::New(Handle<JSFunction> func, int argc,
|
126
|
-
Object*** args, bool* pending_exception) {
|
127
|
-
return Invoke(true, func, Top::global(), argc, args, pending_exception);
|
128
|
-
}
|
129
|
-
|
130
|
-
|
131
|
-
Handle<Object> Execution::TryCall(Handle<JSFunction> func,
|
132
|
-
Handle<Object> receiver,
|
133
|
-
int argc,
|
134
|
-
Object*** args,
|
135
|
-
bool* caught_exception) {
|
136
|
-
// Enter a try-block while executing the JavaScript code. To avoid
|
137
|
-
// duplicate error printing it must be non-verbose. Also, to avoid
|
138
|
-
// creating message objects during stack overflow we shouldn't
|
139
|
-
// capture messages.
|
140
|
-
v8::TryCatch catcher;
|
141
|
-
catcher.SetVerbose(false);
|
142
|
-
catcher.SetCaptureMessage(false);
|
143
|
-
|
144
|
-
Handle<Object> result = Invoke(false, func, receiver, argc, args,
|
145
|
-
caught_exception);
|
146
|
-
|
147
|
-
if (*caught_exception) {
|
148
|
-
ASSERT(catcher.HasCaught());
|
149
|
-
ASSERT(Top::has_pending_exception());
|
150
|
-
ASSERT(Top::external_caught_exception());
|
151
|
-
if (Top::pending_exception() == Heap::termination_exception()) {
|
152
|
-
result = Factory::termination_exception();
|
153
|
-
} else {
|
154
|
-
result = v8::Utils::OpenHandle(*catcher.Exception());
|
155
|
-
}
|
156
|
-
Top::OptionalRescheduleException(true);
|
157
|
-
}
|
158
|
-
|
159
|
-
ASSERT(!Top::has_pending_exception());
|
160
|
-
ASSERT(!Top::external_caught_exception());
|
161
|
-
return result;
|
162
|
-
}
|
163
|
-
|
164
|
-
|
165
|
-
Handle<Object> Execution::GetFunctionDelegate(Handle<Object> object) {
|
166
|
-
ASSERT(!object->IsJSFunction());
|
167
|
-
|
168
|
-
// If you return a function from here, it will be called when an
|
169
|
-
// attempt is made to call the given object as a function.
|
170
|
-
|
171
|
-
// Regular expressions can be called as functions in both Firefox
|
172
|
-
// and Safari so we allow it too.
|
173
|
-
if (object->IsJSRegExp()) {
|
174
|
-
Handle<String> exec = Factory::exec_symbol();
|
175
|
-
return Handle<Object>(object->GetProperty(*exec));
|
176
|
-
}
|
177
|
-
|
178
|
-
// Objects created through the API can have an instance-call handler
|
179
|
-
// that should be used when calling the object as a function.
|
180
|
-
if (object->IsHeapObject() &&
|
181
|
-
HeapObject::cast(*object)->map()->has_instance_call_handler()) {
|
182
|
-
return Handle<JSFunction>(
|
183
|
-
Top::global_context()->call_as_function_delegate());
|
184
|
-
}
|
185
|
-
|
186
|
-
return Factory::undefined_value();
|
187
|
-
}
|
188
|
-
|
189
|
-
|
190
|
-
Handle<Object> Execution::GetConstructorDelegate(Handle<Object> object) {
|
191
|
-
ASSERT(!object->IsJSFunction());
|
192
|
-
|
193
|
-
// If you return a function from here, it will be called when an
|
194
|
-
// attempt is made to call the given object as a constructor.
|
195
|
-
|
196
|
-
// Objects created through the API can have an instance-call handler
|
197
|
-
// that should be used when calling the object as a function.
|
198
|
-
if (object->IsHeapObject() &&
|
199
|
-
HeapObject::cast(*object)->map()->has_instance_call_handler()) {
|
200
|
-
return Handle<JSFunction>(
|
201
|
-
Top::global_context()->call_as_constructor_delegate());
|
202
|
-
}
|
203
|
-
|
204
|
-
return Factory::undefined_value();
|
205
|
-
}
|
206
|
-
|
207
|
-
|
208
|
-
// Static state for stack guards.
|
209
|
-
StackGuard::ThreadLocal StackGuard::thread_local_;
|
210
|
-
|
211
|
-
|
212
|
-
bool StackGuard::IsStackOverflow() {
|
213
|
-
ExecutionAccess access;
|
214
|
-
return (thread_local_.jslimit_ != kInterruptLimit &&
|
215
|
-
thread_local_.climit_ != kInterruptLimit);
|
216
|
-
}
|
217
|
-
|
218
|
-
|
219
|
-
void StackGuard::EnableInterrupts() {
|
220
|
-
ExecutionAccess access;
|
221
|
-
if (has_pending_interrupts(access)) {
|
222
|
-
set_interrupt_limits(access);
|
223
|
-
}
|
224
|
-
}
|
225
|
-
|
226
|
-
|
227
|
-
void StackGuard::SetStackLimit(uintptr_t limit) {
|
228
|
-
ExecutionAccess access;
|
229
|
-
// If the current limits are special (eg due to a pending interrupt) then
|
230
|
-
// leave them alone.
|
231
|
-
uintptr_t jslimit = SimulatorStack::JsLimitFromCLimit(limit);
|
232
|
-
if (thread_local_.jslimit_ == thread_local_.real_jslimit_) {
|
233
|
-
thread_local_.jslimit_ = jslimit;
|
234
|
-
}
|
235
|
-
if (thread_local_.climit_ == thread_local_.real_climit_) {
|
236
|
-
thread_local_.climit_ = limit;
|
237
|
-
}
|
238
|
-
thread_local_.real_climit_ = limit;
|
239
|
-
thread_local_.real_jslimit_ = jslimit;
|
240
|
-
}
|
241
|
-
|
242
|
-
|
243
|
-
void StackGuard::DisableInterrupts() {
|
244
|
-
ExecutionAccess access;
|
245
|
-
reset_limits(access);
|
246
|
-
}
|
247
|
-
|
248
|
-
|
249
|
-
bool StackGuard::IsInterrupted() {
|
250
|
-
ExecutionAccess access;
|
251
|
-
return thread_local_.interrupt_flags_ & INTERRUPT;
|
252
|
-
}
|
253
|
-
|
254
|
-
|
255
|
-
void StackGuard::Interrupt() {
|
256
|
-
ExecutionAccess access;
|
257
|
-
thread_local_.interrupt_flags_ |= INTERRUPT;
|
258
|
-
set_interrupt_limits(access);
|
259
|
-
}
|
260
|
-
|
261
|
-
|
262
|
-
bool StackGuard::IsPreempted() {
|
263
|
-
ExecutionAccess access;
|
264
|
-
return thread_local_.interrupt_flags_ & PREEMPT;
|
265
|
-
}
|
266
|
-
|
267
|
-
|
268
|
-
void StackGuard::Preempt() {
|
269
|
-
ExecutionAccess access;
|
270
|
-
thread_local_.interrupt_flags_ |= PREEMPT;
|
271
|
-
set_interrupt_limits(access);
|
272
|
-
}
|
273
|
-
|
274
|
-
|
275
|
-
bool StackGuard::IsTerminateExecution() {
|
276
|
-
ExecutionAccess access;
|
277
|
-
return thread_local_.interrupt_flags_ & TERMINATE;
|
278
|
-
}
|
279
|
-
|
280
|
-
|
281
|
-
void StackGuard::TerminateExecution() {
|
282
|
-
ExecutionAccess access;
|
283
|
-
thread_local_.interrupt_flags_ |= TERMINATE;
|
284
|
-
set_interrupt_limits(access);
|
285
|
-
}
|
286
|
-
|
287
|
-
|
288
|
-
#ifdef ENABLE_DEBUGGER_SUPPORT
|
289
|
-
bool StackGuard::IsDebugBreak() {
|
290
|
-
ExecutionAccess access;
|
291
|
-
return thread_local_.interrupt_flags_ & DEBUGBREAK;
|
292
|
-
}
|
293
|
-
|
294
|
-
|
295
|
-
void StackGuard::DebugBreak() {
|
296
|
-
ExecutionAccess access;
|
297
|
-
thread_local_.interrupt_flags_ |= DEBUGBREAK;
|
298
|
-
set_interrupt_limits(access);
|
299
|
-
}
|
300
|
-
|
301
|
-
|
302
|
-
bool StackGuard::IsDebugCommand() {
|
303
|
-
ExecutionAccess access;
|
304
|
-
return thread_local_.interrupt_flags_ & DEBUGCOMMAND;
|
305
|
-
}
|
306
|
-
|
307
|
-
|
308
|
-
void StackGuard::DebugCommand() {
|
309
|
-
if (FLAG_debugger_auto_break) {
|
310
|
-
ExecutionAccess access;
|
311
|
-
thread_local_.interrupt_flags_ |= DEBUGCOMMAND;
|
312
|
-
set_interrupt_limits(access);
|
313
|
-
}
|
314
|
-
}
|
315
|
-
#endif
|
316
|
-
|
317
|
-
void StackGuard::Continue(InterruptFlag after_what) {
|
318
|
-
ExecutionAccess access;
|
319
|
-
thread_local_.interrupt_flags_ &= ~static_cast<int>(after_what);
|
320
|
-
if (!should_postpone_interrupts(access) && !has_pending_interrupts(access)) {
|
321
|
-
reset_limits(access);
|
322
|
-
}
|
323
|
-
}
|
324
|
-
|
325
|
-
|
326
|
-
int StackGuard::ArchiveSpacePerThread() {
|
327
|
-
return sizeof(ThreadLocal);
|
328
|
-
}
|
329
|
-
|
330
|
-
|
331
|
-
char* StackGuard::ArchiveStackGuard(char* to) {
|
332
|
-
ExecutionAccess access;
|
333
|
-
memcpy(to, reinterpret_cast<char*>(&thread_local_), sizeof(ThreadLocal));
|
334
|
-
ThreadLocal blank;
|
335
|
-
thread_local_ = blank;
|
336
|
-
return to + sizeof(ThreadLocal);
|
337
|
-
}
|
338
|
-
|
339
|
-
|
340
|
-
char* StackGuard::RestoreStackGuard(char* from) {
|
341
|
-
ExecutionAccess access;
|
342
|
-
memcpy(reinterpret_cast<char*>(&thread_local_), from, sizeof(ThreadLocal));
|
343
|
-
Heap::SetStackLimits();
|
344
|
-
return from + sizeof(ThreadLocal);
|
345
|
-
}
|
346
|
-
|
347
|
-
|
348
|
-
static internal::Thread::LocalStorageKey stack_limit_key =
|
349
|
-
internal::Thread::CreateThreadLocalKey();
|
350
|
-
|
351
|
-
|
352
|
-
void StackGuard::FreeThreadResources() {
|
353
|
-
Thread::SetThreadLocal(
|
354
|
-
stack_limit_key,
|
355
|
-
reinterpret_cast<void*>(thread_local_.real_climit_));
|
356
|
-
}
|
357
|
-
|
358
|
-
|
359
|
-
void StackGuard::ThreadLocal::Clear() {
|
360
|
-
real_jslimit_ = kIllegalLimit;
|
361
|
-
jslimit_ = kIllegalLimit;
|
362
|
-
real_climit_ = kIllegalLimit;
|
363
|
-
climit_ = kIllegalLimit;
|
364
|
-
nesting_ = 0;
|
365
|
-
postpone_interrupts_nesting_ = 0;
|
366
|
-
interrupt_flags_ = 0;
|
367
|
-
Heap::SetStackLimits();
|
368
|
-
}
|
369
|
-
|
370
|
-
|
371
|
-
void StackGuard::ThreadLocal::Initialize() {
|
372
|
-
if (real_climit_ == kIllegalLimit) {
|
373
|
-
// Takes the address of the limit variable in order to find out where
|
374
|
-
// the top of stack is right now.
|
375
|
-
uintptr_t limit = reinterpret_cast<uintptr_t>(&limit) - kLimitSize;
|
376
|
-
ASSERT(reinterpret_cast<uintptr_t>(&limit) > kLimitSize);
|
377
|
-
real_jslimit_ = SimulatorStack::JsLimitFromCLimit(limit);
|
378
|
-
jslimit_ = SimulatorStack::JsLimitFromCLimit(limit);
|
379
|
-
real_climit_ = limit;
|
380
|
-
climit_ = limit;
|
381
|
-
Heap::SetStackLimits();
|
382
|
-
}
|
383
|
-
nesting_ = 0;
|
384
|
-
postpone_interrupts_nesting_ = 0;
|
385
|
-
interrupt_flags_ = 0;
|
386
|
-
}
|
387
|
-
|
388
|
-
|
389
|
-
void StackGuard::ClearThread(const ExecutionAccess& lock) {
|
390
|
-
thread_local_.Clear();
|
391
|
-
}
|
392
|
-
|
393
|
-
|
394
|
-
void StackGuard::InitThread(const ExecutionAccess& lock) {
|
395
|
-
thread_local_.Initialize();
|
396
|
-
void* stored_limit = Thread::GetThreadLocal(stack_limit_key);
|
397
|
-
// You should hold the ExecutionAccess lock when you call this.
|
398
|
-
if (stored_limit != NULL) {
|
399
|
-
StackGuard::SetStackLimit(reinterpret_cast<intptr_t>(stored_limit));
|
400
|
-
}
|
401
|
-
}
|
402
|
-
|
403
|
-
|
404
|
-
// --- C a l l s t o n a t i v e s ---
|
405
|
-
|
406
|
-
#define RETURN_NATIVE_CALL(name, argc, argv, has_pending_exception) \
|
407
|
-
do { \
|
408
|
-
Object** args[argc] = argv; \
|
409
|
-
ASSERT(has_pending_exception != NULL); \
|
410
|
-
return Call(Top::name##_fun(), Top::builtins(), argc, args, \
|
411
|
-
has_pending_exception); \
|
412
|
-
} while (false)
|
413
|
-
|
414
|
-
|
415
|
-
Handle<Object> Execution::ToBoolean(Handle<Object> obj) {
|
416
|
-
// See the similar code in runtime.js:ToBoolean.
|
417
|
-
if (obj->IsBoolean()) return obj;
|
418
|
-
bool result = true;
|
419
|
-
if (obj->IsString()) {
|
420
|
-
result = Handle<String>::cast(obj)->length() != 0;
|
421
|
-
} else if (obj->IsNull() || obj->IsUndefined()) {
|
422
|
-
result = false;
|
423
|
-
} else if (obj->IsNumber()) {
|
424
|
-
double value = obj->Number();
|
425
|
-
result = !((value == 0) || isnan(value));
|
426
|
-
}
|
427
|
-
return Handle<Object>(Heap::ToBoolean(result));
|
428
|
-
}
|
429
|
-
|
430
|
-
|
431
|
-
Handle<Object> Execution::ToNumber(Handle<Object> obj, bool* exc) {
|
432
|
-
RETURN_NATIVE_CALL(to_number, 1, { obj.location() }, exc);
|
433
|
-
}
|
434
|
-
|
435
|
-
|
436
|
-
Handle<Object> Execution::ToString(Handle<Object> obj, bool* exc) {
|
437
|
-
RETURN_NATIVE_CALL(to_string, 1, { obj.location() }, exc);
|
438
|
-
}
|
439
|
-
|
440
|
-
|
441
|
-
Handle<Object> Execution::ToDetailString(Handle<Object> obj, bool* exc) {
|
442
|
-
RETURN_NATIVE_CALL(to_detail_string, 1, { obj.location() }, exc);
|
443
|
-
}
|
444
|
-
|
445
|
-
|
446
|
-
Handle<Object> Execution::ToObject(Handle<Object> obj, bool* exc) {
|
447
|
-
if (obj->IsJSObject()) return obj;
|
448
|
-
RETURN_NATIVE_CALL(to_object, 1, { obj.location() }, exc);
|
449
|
-
}
|
450
|
-
|
451
|
-
|
452
|
-
Handle<Object> Execution::ToInteger(Handle<Object> obj, bool* exc) {
|
453
|
-
RETURN_NATIVE_CALL(to_integer, 1, { obj.location() }, exc);
|
454
|
-
}
|
455
|
-
|
456
|
-
|
457
|
-
Handle<Object> Execution::ToUint32(Handle<Object> obj, bool* exc) {
|
458
|
-
RETURN_NATIVE_CALL(to_uint32, 1, { obj.location() }, exc);
|
459
|
-
}
|
460
|
-
|
461
|
-
|
462
|
-
Handle<Object> Execution::ToInt32(Handle<Object> obj, bool* exc) {
|
463
|
-
RETURN_NATIVE_CALL(to_int32, 1, { obj.location() }, exc);
|
464
|
-
}
|
465
|
-
|
466
|
-
|
467
|
-
Handle<Object> Execution::NewDate(double time, bool* exc) {
|
468
|
-
Handle<Object> time_obj = Factory::NewNumber(time);
|
469
|
-
RETURN_NATIVE_CALL(create_date, 1, { time_obj.location() }, exc);
|
470
|
-
}
|
471
|
-
|
472
|
-
|
473
|
-
#undef RETURN_NATIVE_CALL
|
474
|
-
|
475
|
-
|
476
|
-
Handle<Object> Execution::CharAt(Handle<String> string, uint32_t index) {
|
477
|
-
int int_index = static_cast<int>(index);
|
478
|
-
if (int_index < 0 || int_index >= string->length()) {
|
479
|
-
return Factory::undefined_value();
|
480
|
-
}
|
481
|
-
|
482
|
-
Handle<Object> char_at =
|
483
|
-
GetProperty(Top::builtins(), Factory::char_at_symbol());
|
484
|
-
if (!char_at->IsJSFunction()) {
|
485
|
-
return Factory::undefined_value();
|
486
|
-
}
|
487
|
-
|
488
|
-
bool caught_exception;
|
489
|
-
Handle<Object> index_object = Factory::NewNumberFromInt(int_index);
|
490
|
-
Object** index_arg[] = { index_object.location() };
|
491
|
-
Handle<Object> result = TryCall(Handle<JSFunction>::cast(char_at),
|
492
|
-
string,
|
493
|
-
ARRAY_SIZE(index_arg),
|
494
|
-
index_arg,
|
495
|
-
&caught_exception);
|
496
|
-
if (caught_exception) {
|
497
|
-
return Factory::undefined_value();
|
498
|
-
}
|
499
|
-
return result;
|
500
|
-
}
|
501
|
-
|
502
|
-
|
503
|
-
Handle<JSFunction> Execution::InstantiateFunction(
|
504
|
-
Handle<FunctionTemplateInfo> data, bool* exc) {
|
505
|
-
// Fast case: see if the function has already been instantiated
|
506
|
-
int serial_number = Smi::cast(data->serial_number())->value();
|
507
|
-
Object* elm =
|
508
|
-
Top::global_context()->function_cache()->GetElement(serial_number);
|
509
|
-
if (elm->IsJSFunction()) return Handle<JSFunction>(JSFunction::cast(elm));
|
510
|
-
// The function has not yet been instantiated in this context; do it.
|
511
|
-
Object** args[1] = { Handle<Object>::cast(data).location() };
|
512
|
-
Handle<Object> result =
|
513
|
-
Call(Top::instantiate_fun(), Top::builtins(), 1, args, exc);
|
514
|
-
if (*exc) return Handle<JSFunction>::null();
|
515
|
-
return Handle<JSFunction>::cast(result);
|
516
|
-
}
|
517
|
-
|
518
|
-
|
519
|
-
Handle<JSObject> Execution::InstantiateObject(Handle<ObjectTemplateInfo> data,
|
520
|
-
bool* exc) {
|
521
|
-
if (data->property_list()->IsUndefined() &&
|
522
|
-
!data->constructor()->IsUndefined()) {
|
523
|
-
// Initialization to make gcc happy.
|
524
|
-
Object* result = NULL;
|
525
|
-
{
|
526
|
-
HandleScope scope;
|
527
|
-
Handle<FunctionTemplateInfo> cons_template =
|
528
|
-
Handle<FunctionTemplateInfo>(
|
529
|
-
FunctionTemplateInfo::cast(data->constructor()));
|
530
|
-
Handle<JSFunction> cons = InstantiateFunction(cons_template, exc);
|
531
|
-
if (*exc) return Handle<JSObject>::null();
|
532
|
-
Handle<Object> value = New(cons, 0, NULL, exc);
|
533
|
-
if (*exc) return Handle<JSObject>::null();
|
534
|
-
result = *value;
|
535
|
-
}
|
536
|
-
ASSERT(!*exc);
|
537
|
-
return Handle<JSObject>(JSObject::cast(result));
|
538
|
-
} else {
|
539
|
-
Object** args[1] = { Handle<Object>::cast(data).location() };
|
540
|
-
Handle<Object> result =
|
541
|
-
Call(Top::instantiate_fun(), Top::builtins(), 1, args, exc);
|
542
|
-
if (*exc) return Handle<JSObject>::null();
|
543
|
-
return Handle<JSObject>::cast(result);
|
544
|
-
}
|
545
|
-
}
|
546
|
-
|
547
|
-
|
548
|
-
void Execution::ConfigureInstance(Handle<Object> instance,
|
549
|
-
Handle<Object> instance_template,
|
550
|
-
bool* exc) {
|
551
|
-
Object** args[2] = { instance.location(), instance_template.location() };
|
552
|
-
Execution::Call(Top::configure_instance_fun(), Top::builtins(), 2, args, exc);
|
553
|
-
}
|
554
|
-
|
555
|
-
|
556
|
-
Handle<String> Execution::GetStackTraceLine(Handle<Object> recv,
|
557
|
-
Handle<JSFunction> fun,
|
558
|
-
Handle<Object> pos,
|
559
|
-
Handle<Object> is_global) {
|
560
|
-
const int argc = 4;
|
561
|
-
Object** args[argc] = { recv.location(),
|
562
|
-
Handle<Object>::cast(fun).location(),
|
563
|
-
pos.location(),
|
564
|
-
is_global.location() };
|
565
|
-
bool caught_exception = false;
|
566
|
-
Handle<Object> result = TryCall(Top::get_stack_trace_line_fun(),
|
567
|
-
Top::builtins(), argc, args,
|
568
|
-
&caught_exception);
|
569
|
-
if (caught_exception || !result->IsString()) return Factory::empty_symbol();
|
570
|
-
return Handle<String>::cast(result);
|
571
|
-
}
|
572
|
-
|
573
|
-
|
574
|
-
static Object* RuntimePreempt() {
|
575
|
-
// Clear the preempt request flag.
|
576
|
-
StackGuard::Continue(PREEMPT);
|
577
|
-
|
578
|
-
ContextSwitcher::PreemptionReceived();
|
579
|
-
|
580
|
-
#ifdef ENABLE_DEBUGGER_SUPPORT
|
581
|
-
if (Debug::InDebugger()) {
|
582
|
-
// If currently in the debugger don't do any actual preemption but record
|
583
|
-
// that preemption occoured while in the debugger.
|
584
|
-
Debug::PreemptionWhileInDebugger();
|
585
|
-
} else {
|
586
|
-
// Perform preemption.
|
587
|
-
v8::Unlocker unlocker;
|
588
|
-
Thread::YieldCPU();
|
589
|
-
}
|
590
|
-
#else
|
591
|
-
// Perform preemption.
|
592
|
-
v8::Unlocker unlocker;
|
593
|
-
Thread::YieldCPU();
|
594
|
-
#endif
|
595
|
-
|
596
|
-
return Heap::undefined_value();
|
597
|
-
}
|
598
|
-
|
599
|
-
|
600
|
-
#ifdef ENABLE_DEBUGGER_SUPPORT
|
601
|
-
Object* Execution::DebugBreakHelper() {
|
602
|
-
// Just continue if breaks are disabled.
|
603
|
-
if (Debug::disable_break()) {
|
604
|
-
return Heap::undefined_value();
|
605
|
-
}
|
606
|
-
|
607
|
-
// Ignore debug break during bootstrapping.
|
608
|
-
if (Bootstrapper::IsActive()) {
|
609
|
-
return Heap::undefined_value();
|
610
|
-
}
|
611
|
-
|
612
|
-
{
|
613
|
-
JavaScriptFrameIterator it;
|
614
|
-
ASSERT(!it.done());
|
615
|
-
Object* fun = it.frame()->function();
|
616
|
-
if (fun && fun->IsJSFunction()) {
|
617
|
-
// Don't stop in builtin functions.
|
618
|
-
if (JSFunction::cast(fun)->IsBuiltin()) {
|
619
|
-
return Heap::undefined_value();
|
620
|
-
}
|
621
|
-
GlobalObject* global = JSFunction::cast(fun)->context()->global();
|
622
|
-
// Don't stop in debugger functions.
|
623
|
-
if (Debug::IsDebugGlobal(global)) {
|
624
|
-
return Heap::undefined_value();
|
625
|
-
}
|
626
|
-
}
|
627
|
-
}
|
628
|
-
|
629
|
-
// Collect the break state before clearing the flags.
|
630
|
-
bool debug_command_only =
|
631
|
-
StackGuard::IsDebugCommand() && !StackGuard::IsDebugBreak();
|
632
|
-
|
633
|
-
// Clear the debug break request flag.
|
634
|
-
StackGuard::Continue(DEBUGBREAK);
|
635
|
-
|
636
|
-
ProcessDebugMesssages(debug_command_only);
|
637
|
-
|
638
|
-
// Return to continue execution.
|
639
|
-
return Heap::undefined_value();
|
640
|
-
}
|
641
|
-
|
642
|
-
void Execution::ProcessDebugMesssages(bool debug_command_only) {
|
643
|
-
// Clear the debug command request flag.
|
644
|
-
StackGuard::Continue(DEBUGCOMMAND);
|
645
|
-
|
646
|
-
HandleScope scope;
|
647
|
-
// Enter the debugger. Just continue if we fail to enter the debugger.
|
648
|
-
EnterDebugger debugger;
|
649
|
-
if (debugger.FailedToEnter()) {
|
650
|
-
return;
|
651
|
-
}
|
652
|
-
|
653
|
-
// Notify the debug event listeners. Indicate auto continue if the break was
|
654
|
-
// a debug command break.
|
655
|
-
Debugger::OnDebugBreak(Factory::undefined_value(), debug_command_only);
|
656
|
-
}
|
657
|
-
|
658
|
-
|
659
|
-
#endif
|
660
|
-
|
661
|
-
Object* Execution::HandleStackGuardInterrupt() {
|
662
|
-
#ifdef ENABLE_DEBUGGER_SUPPORT
|
663
|
-
if (StackGuard::IsDebugBreak() || StackGuard::IsDebugCommand()) {
|
664
|
-
DebugBreakHelper();
|
665
|
-
}
|
666
|
-
#endif
|
667
|
-
if (StackGuard::IsPreempted()) RuntimePreempt();
|
668
|
-
if (StackGuard::IsTerminateExecution()) {
|
669
|
-
StackGuard::Continue(TERMINATE);
|
670
|
-
return Top::TerminateExecution();
|
671
|
-
}
|
672
|
-
if (StackGuard::IsInterrupted()) {
|
673
|
-
// interrupt
|
674
|
-
StackGuard::Continue(INTERRUPT);
|
675
|
-
return Top::StackOverflow();
|
676
|
-
}
|
677
|
-
return Heap::undefined_value();
|
678
|
-
}
|
679
|
-
|
680
|
-
// --- G C E x t e n s i o n ---
|
681
|
-
|
682
|
-
const char* const GCExtension::kSource = "native function gc();";
|
683
|
-
|
684
|
-
|
685
|
-
v8::Handle<v8::FunctionTemplate> GCExtension::GetNativeFunction(
|
686
|
-
v8::Handle<v8::String> str) {
|
687
|
-
return v8::FunctionTemplate::New(GCExtension::GC);
|
688
|
-
}
|
689
|
-
|
690
|
-
|
691
|
-
v8::Handle<v8::Value> GCExtension::GC(const v8::Arguments& args) {
|
692
|
-
// All allocation spaces other than NEW_SPACE have the same effect.
|
693
|
-
Heap::CollectAllGarbage(false);
|
694
|
-
return v8::Undefined();
|
695
|
-
}
|
696
|
-
|
697
|
-
|
698
|
-
static GCExtension gc_extension;
|
699
|
-
static v8::DeclareExtension gc_extension_declaration(&gc_extension);
|
700
|
-
|
701
|
-
|
702
|
-
// --- E x t e r n a l i z e S t r i n g E x t e n s i o n ---
|
703
|
-
|
704
|
-
|
705
|
-
template <typename Char, typename Base>
|
706
|
-
class SimpleStringResource : public Base {
|
707
|
-
public:
|
708
|
-
// Takes ownership of |data|.
|
709
|
-
SimpleStringResource(Char* data, size_t length)
|
710
|
-
: data_(data),
|
711
|
-
length_(length) {}
|
712
|
-
|
713
|
-
virtual ~SimpleStringResource() { delete data_; }
|
714
|
-
|
715
|
-
virtual const Char* data() const { return data_; }
|
716
|
-
|
717
|
-
virtual size_t length() const { return length_; }
|
718
|
-
|
719
|
-
private:
|
720
|
-
Char* const data_;
|
721
|
-
const size_t length_;
|
722
|
-
};
|
723
|
-
|
724
|
-
|
725
|
-
typedef SimpleStringResource<char, v8::String::ExternalAsciiStringResource>
|
726
|
-
SimpleAsciiStringResource;
|
727
|
-
typedef SimpleStringResource<uc16, v8::String::ExternalStringResource>
|
728
|
-
SimpleTwoByteStringResource;
|
729
|
-
|
730
|
-
|
731
|
-
const char* const ExternalizeStringExtension::kSource =
|
732
|
-
"native function externalizeString();"
|
733
|
-
"native function isAsciiString();";
|
734
|
-
|
735
|
-
|
736
|
-
v8::Handle<v8::FunctionTemplate> ExternalizeStringExtension::GetNativeFunction(
|
737
|
-
v8::Handle<v8::String> str) {
|
738
|
-
if (strcmp(*v8::String::AsciiValue(str), "externalizeString") == 0) {
|
739
|
-
return v8::FunctionTemplate::New(ExternalizeStringExtension::Externalize);
|
740
|
-
} else {
|
741
|
-
ASSERT(strcmp(*v8::String::AsciiValue(str), "isAsciiString") == 0);
|
742
|
-
return v8::FunctionTemplate::New(ExternalizeStringExtension::IsAscii);
|
743
|
-
}
|
744
|
-
}
|
745
|
-
|
746
|
-
|
747
|
-
v8::Handle<v8::Value> ExternalizeStringExtension::Externalize(
|
748
|
-
const v8::Arguments& args) {
|
749
|
-
if (args.Length() < 1 || !args[0]->IsString()) {
|
750
|
-
return v8::ThrowException(v8::String::New(
|
751
|
-
"First parameter to externalizeString() must be a string."));
|
752
|
-
}
|
753
|
-
bool force_two_byte = false;
|
754
|
-
if (args.Length() >= 2) {
|
755
|
-
if (args[1]->IsBoolean()) {
|
756
|
-
force_two_byte = args[1]->BooleanValue();
|
757
|
-
} else {
|
758
|
-
return v8::ThrowException(v8::String::New(
|
759
|
-
"Second parameter to externalizeString() must be a boolean."));
|
760
|
-
}
|
761
|
-
}
|
762
|
-
bool result = false;
|
763
|
-
Handle<String> string = Utils::OpenHandle(*args[0].As<v8::String>());
|
764
|
-
if (string->IsExternalString()) {
|
765
|
-
return v8::ThrowException(v8::String::New(
|
766
|
-
"externalizeString() can't externalize twice."));
|
767
|
-
}
|
768
|
-
if (string->IsAsciiRepresentation() && !force_two_byte) {
|
769
|
-
char* data = new char[string->length()];
|
770
|
-
String::WriteToFlat(*string, data, 0, string->length());
|
771
|
-
SimpleAsciiStringResource* resource = new SimpleAsciiStringResource(
|
772
|
-
data, string->length());
|
773
|
-
result = string->MakeExternal(resource);
|
774
|
-
if (result && !string->IsSymbol()) {
|
775
|
-
i::ExternalStringTable::AddString(*string);
|
776
|
-
}
|
777
|
-
} else {
|
778
|
-
uc16* data = new uc16[string->length()];
|
779
|
-
String::WriteToFlat(*string, data, 0, string->length());
|
780
|
-
SimpleTwoByteStringResource* resource = new SimpleTwoByteStringResource(
|
781
|
-
data, string->length());
|
782
|
-
result = string->MakeExternal(resource);
|
783
|
-
if (result && !string->IsSymbol()) {
|
784
|
-
i::ExternalStringTable::AddString(*string);
|
785
|
-
}
|
786
|
-
}
|
787
|
-
if (!result) {
|
788
|
-
return v8::ThrowException(v8::String::New("externalizeString() failed."));
|
789
|
-
}
|
790
|
-
return v8::Undefined();
|
791
|
-
}
|
792
|
-
|
793
|
-
|
794
|
-
v8::Handle<v8::Value> ExternalizeStringExtension::IsAscii(
|
795
|
-
const v8::Arguments& args) {
|
796
|
-
if (args.Length() != 1 || !args[0]->IsString()) {
|
797
|
-
return v8::ThrowException(v8::String::New(
|
798
|
-
"isAsciiString() requires a single string argument."));
|
799
|
-
}
|
800
|
-
return Utils::OpenHandle(*args[0].As<v8::String>())->IsAsciiRepresentation() ?
|
801
|
-
v8::True() : v8::False();
|
802
|
-
}
|
803
|
-
|
804
|
-
|
805
|
-
static ExternalizeStringExtension externalize_extension;
|
806
|
-
static v8::DeclareExtension externalize_extension_declaration(
|
807
|
-
&externalize_extension);
|
808
|
-
|
809
|
-
} } // namespace v8::internal
|