therubyracer 0.4.9-x86-linux
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/.gitignore +11 -0
- data/.gitmodules +3 -0
- data/Doxyfile +1514 -0
- data/History.txt +43 -0
- data/README.rdoc +157 -0
- data/Rakefile +51 -0
- data/docs/data_conversion.txt +18 -0
- data/ext/v8/callbacks.cpp +160 -0
- data/ext/v8/callbacks.h +14 -0
- data/ext/v8/convert_ruby.cpp +8 -0
- data/ext/v8/convert_ruby.h +99 -0
- data/ext/v8/convert_string.cpp +10 -0
- data/ext/v8/convert_string.h +73 -0
- data/ext/v8/convert_v8.cpp +9 -0
- data/ext/v8/convert_v8.h +121 -0
- data/ext/v8/converters.cpp +83 -0
- data/ext/v8/converters.h +23 -0
- data/ext/v8/extconf.rb +36 -0
- data/ext/v8/upstream/2.0.6/.gitignore +26 -0
- data/ext/v8/upstream/2.0.6/AUTHORS +23 -0
- data/ext/v8/upstream/2.0.6/ChangeLog +1479 -0
- data/ext/v8/upstream/2.0.6/LICENSE +55 -0
- data/ext/v8/upstream/2.0.6/SConstruct +1028 -0
- data/ext/v8/upstream/2.0.6/include/v8-debug.h +275 -0
- data/ext/v8/upstream/2.0.6/include/v8.h +3236 -0
- data/ext/v8/upstream/2.0.6/src/SConscript +283 -0
- data/ext/v8/upstream/2.0.6/src/accessors.cc +695 -0
- data/ext/v8/upstream/2.0.6/src/accessors.h +114 -0
- data/ext/v8/upstream/2.0.6/src/allocation.cc +198 -0
- data/ext/v8/upstream/2.0.6/src/allocation.h +169 -0
- data/ext/v8/upstream/2.0.6/src/api.cc +3831 -0
- data/ext/v8/upstream/2.0.6/src/api.h +479 -0
- data/ext/v8/upstream/2.0.6/src/apinatives.js +110 -0
- data/ext/v8/upstream/2.0.6/src/apiutils.h +69 -0
- data/ext/v8/upstream/2.0.6/src/arguments.h +97 -0
- data/ext/v8/upstream/2.0.6/src/arm/assembler-arm-inl.h +277 -0
- data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.cc +1821 -0
- data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.h +1027 -0
- data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2-inl.h +267 -0
- data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.cc +1821 -0
- data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.h +1027 -0
- data/ext/v8/upstream/2.0.6/src/arm/builtins-arm.cc +1271 -0
- data/ext/v8/upstream/2.0.6/src/arm/codegen-arm-inl.h +74 -0
- data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.cc +6682 -0
- data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.h +535 -0
- data/ext/v8/upstream/2.0.6/src/arm/constants-arm.cc +112 -0
- data/ext/v8/upstream/2.0.6/src/arm/constants-arm.h +347 -0
- data/ext/v8/upstream/2.0.6/src/arm/cpu-arm.cc +132 -0
- data/ext/v8/upstream/2.0.6/src/arm/debug-arm.cc +213 -0
- data/ext/v8/upstream/2.0.6/src/arm/disasm-arm.cc +1166 -0
- data/ext/v8/upstream/2.0.6/src/arm/fast-codegen-arm.cc +1698 -0
- data/ext/v8/upstream/2.0.6/src/arm/frames-arm.cc +123 -0
- data/ext/v8/upstream/2.0.6/src/arm/frames-arm.h +162 -0
- data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +849 -0
- data/ext/v8/upstream/2.0.6/src/arm/jump-target-arm.cc +238 -0
- data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.cc +1259 -0
- data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.h +423 -0
- data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.cc +1266 -0
- data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.h +282 -0
- data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm-inl.h +103 -0
- data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.cc +59 -0
- data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.h +43 -0
- data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.cc +2264 -0
- data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.h +306 -0
- data/ext/v8/upstream/2.0.6/src/arm/stub-cache-arm.cc +1516 -0
- data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +412 -0
- data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.h +532 -0
- data/ext/v8/upstream/2.0.6/src/array.js +1154 -0
- data/ext/v8/upstream/2.0.6/src/assembler.cc +772 -0
- data/ext/v8/upstream/2.0.6/src/assembler.h +525 -0
- data/ext/v8/upstream/2.0.6/src/ast.cc +512 -0
- data/ext/v8/upstream/2.0.6/src/ast.h +1820 -0
- data/ext/v8/upstream/2.0.6/src/bootstrapper.cc +1680 -0
- data/ext/v8/upstream/2.0.6/src/bootstrapper.h +103 -0
- data/ext/v8/upstream/2.0.6/src/builtins.cc +851 -0
- data/ext/v8/upstream/2.0.6/src/builtins.h +245 -0
- data/ext/v8/upstream/2.0.6/src/bytecodes-irregexp.h +104 -0
- data/ext/v8/upstream/2.0.6/src/char-predicates-inl.h +86 -0
- data/ext/v8/upstream/2.0.6/src/char-predicates.h +65 -0
- data/ext/v8/upstream/2.0.6/src/checks.cc +100 -0
- data/ext/v8/upstream/2.0.6/src/checks.h +284 -0
- data/ext/v8/upstream/2.0.6/src/code-stubs.cc +164 -0
- data/ext/v8/upstream/2.0.6/src/code-stubs.h +164 -0
- data/ext/v8/upstream/2.0.6/src/code.h +68 -0
- data/ext/v8/upstream/2.0.6/src/codegen-inl.h +88 -0
- data/ext/v8/upstream/2.0.6/src/codegen.cc +504 -0
- data/ext/v8/upstream/2.0.6/src/codegen.h +522 -0
- data/ext/v8/upstream/2.0.6/src/compilation-cache.cc +490 -0
- data/ext/v8/upstream/2.0.6/src/compilation-cache.h +98 -0
- data/ext/v8/upstream/2.0.6/src/compiler.cc +1132 -0
- data/ext/v8/upstream/2.0.6/src/compiler.h +107 -0
- data/ext/v8/upstream/2.0.6/src/contexts.cc +256 -0
- data/ext/v8/upstream/2.0.6/src/contexts.h +345 -0
- data/ext/v8/upstream/2.0.6/src/conversions-inl.h +95 -0
- data/ext/v8/upstream/2.0.6/src/conversions.cc +709 -0
- data/ext/v8/upstream/2.0.6/src/conversions.h +118 -0
- data/ext/v8/upstream/2.0.6/src/counters.cc +78 -0
- data/ext/v8/upstream/2.0.6/src/counters.h +239 -0
- data/ext/v8/upstream/2.0.6/src/cpu.h +65 -0
- data/ext/v8/upstream/2.0.6/src/d8-debug.cc +345 -0
- data/ext/v8/upstream/2.0.6/src/d8-debug.h +155 -0
- data/ext/v8/upstream/2.0.6/src/d8-posix.cc +675 -0
- data/ext/v8/upstream/2.0.6/src/d8-readline.cc +128 -0
- data/ext/v8/upstream/2.0.6/src/d8-windows.cc +42 -0
- data/ext/v8/upstream/2.0.6/src/d8.cc +776 -0
- data/ext/v8/upstream/2.0.6/src/d8.h +225 -0
- data/ext/v8/upstream/2.0.6/src/d8.js +1625 -0
- data/ext/v8/upstream/2.0.6/src/date-delay.js +1138 -0
- data/ext/v8/upstream/2.0.6/src/dateparser-inl.h +114 -0
- data/ext/v8/upstream/2.0.6/src/dateparser.cc +186 -0
- data/ext/v8/upstream/2.0.6/src/dateparser.h +240 -0
- data/ext/v8/upstream/2.0.6/src/debug-agent.cc +425 -0
- data/ext/v8/upstream/2.0.6/src/debug-agent.h +129 -0
- data/ext/v8/upstream/2.0.6/src/debug-delay.js +2073 -0
- data/ext/v8/upstream/2.0.6/src/debug.cc +2751 -0
- data/ext/v8/upstream/2.0.6/src/debug.h +866 -0
- data/ext/v8/upstream/2.0.6/src/disasm.h +77 -0
- data/ext/v8/upstream/2.0.6/src/disassembler.cc +318 -0
- data/ext/v8/upstream/2.0.6/src/disassembler.h +56 -0
- data/ext/v8/upstream/2.0.6/src/dtoa-config.c +91 -0
- data/ext/v8/upstream/2.0.6/src/execution.cc +701 -0
- data/ext/v8/upstream/2.0.6/src/execution.h +312 -0
- data/ext/v8/upstream/2.0.6/src/factory.cc +957 -0
- data/ext/v8/upstream/2.0.6/src/factory.h +393 -0
- data/ext/v8/upstream/2.0.6/src/fast-codegen.cc +725 -0
- data/ext/v8/upstream/2.0.6/src/fast-codegen.h +371 -0
- data/ext/v8/upstream/2.0.6/src/flag-definitions.h +426 -0
- data/ext/v8/upstream/2.0.6/src/flags.cc +555 -0
- data/ext/v8/upstream/2.0.6/src/flags.h +81 -0
- data/ext/v8/upstream/2.0.6/src/frame-element.cc +45 -0
- data/ext/v8/upstream/2.0.6/src/frame-element.h +235 -0
- data/ext/v8/upstream/2.0.6/src/frames-inl.h +215 -0
- data/ext/v8/upstream/2.0.6/src/frames.cc +749 -0
- data/ext/v8/upstream/2.0.6/src/frames.h +659 -0
- data/ext/v8/upstream/2.0.6/src/func-name-inferrer.cc +76 -0
- data/ext/v8/upstream/2.0.6/src/func-name-inferrer.h +135 -0
- data/ext/v8/upstream/2.0.6/src/global-handles.cc +516 -0
- data/ext/v8/upstream/2.0.6/src/global-handles.h +180 -0
- data/ext/v8/upstream/2.0.6/src/globals.h +608 -0
- data/ext/v8/upstream/2.0.6/src/handles-inl.h +76 -0
- data/ext/v8/upstream/2.0.6/src/handles.cc +811 -0
- data/ext/v8/upstream/2.0.6/src/handles.h +367 -0
- data/ext/v8/upstream/2.0.6/src/hashmap.cc +226 -0
- data/ext/v8/upstream/2.0.6/src/hashmap.h +120 -0
- data/ext/v8/upstream/2.0.6/src/heap-inl.h +407 -0
- data/ext/v8/upstream/2.0.6/src/heap-profiler.cc +695 -0
- data/ext/v8/upstream/2.0.6/src/heap-profiler.h +277 -0
- data/ext/v8/upstream/2.0.6/src/heap.cc +4204 -0
- data/ext/v8/upstream/2.0.6/src/heap.h +1704 -0
- data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32-inl.h +325 -0
- data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.cc +2375 -0
- data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.h +914 -0
- data/ext/v8/upstream/2.0.6/src/ia32/builtins-ia32.cc +1222 -0
- data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32-inl.h +46 -0
- data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.cc +9770 -0
- data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.h +834 -0
- data/ext/v8/upstream/2.0.6/src/ia32/cpu-ia32.cc +79 -0
- data/ext/v8/upstream/2.0.6/src/ia32/debug-ia32.cc +208 -0
- data/ext/v8/upstream/2.0.6/src/ia32/disasm-ia32.cc +1357 -0
- data/ext/v8/upstream/2.0.6/src/ia32/fast-codegen-ia32.cc +1813 -0
- data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.cc +111 -0
- data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.h +135 -0
- data/ext/v8/upstream/2.0.6/src/ia32/ic-ia32.cc +1490 -0
- data/ext/v8/upstream/2.0.6/src/ia32/jump-target-ia32.cc +432 -0
- data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.cc +1517 -0
- data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.h +528 -0
- data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.cc +1219 -0
- data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.h +230 -0
- data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32-inl.h +82 -0
- data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.cc +99 -0
- data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.h +43 -0
- data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.cc +30 -0
- data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.h +62 -0
- data/ext/v8/upstream/2.0.6/src/ia32/stub-cache-ia32.cc +1961 -0
- data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.cc +1105 -0
- data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.h +580 -0
- data/ext/v8/upstream/2.0.6/src/ic-inl.h +93 -0
- data/ext/v8/upstream/2.0.6/src/ic.cc +1426 -0
- data/ext/v8/upstream/2.0.6/src/ic.h +443 -0
- data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.cc +646 -0
- data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.h +48 -0
- data/ext/v8/upstream/2.0.6/src/json-delay.js +254 -0
- data/ext/v8/upstream/2.0.6/src/jsregexp.cc +5234 -0
- data/ext/v8/upstream/2.0.6/src/jsregexp.h +1439 -0
- data/ext/v8/upstream/2.0.6/src/jump-target-inl.h +49 -0
- data/ext/v8/upstream/2.0.6/src/jump-target.cc +383 -0
- data/ext/v8/upstream/2.0.6/src/jump-target.h +280 -0
- data/ext/v8/upstream/2.0.6/src/list-inl.h +166 -0
- data/ext/v8/upstream/2.0.6/src/list.h +158 -0
- data/ext/v8/upstream/2.0.6/src/log-inl.h +126 -0
- data/ext/v8/upstream/2.0.6/src/log-utils.cc +503 -0
- data/ext/v8/upstream/2.0.6/src/log-utils.h +292 -0
- data/ext/v8/upstream/2.0.6/src/log.cc +1457 -0
- data/ext/v8/upstream/2.0.6/src/log.h +371 -0
- data/ext/v8/upstream/2.0.6/src/macro-assembler.h +93 -0
- data/ext/v8/upstream/2.0.6/src/macros.py +137 -0
- data/ext/v8/upstream/2.0.6/src/mark-compact.cc +2007 -0
- data/ext/v8/upstream/2.0.6/src/mark-compact.h +442 -0
- data/ext/v8/upstream/2.0.6/src/math.js +263 -0
- data/ext/v8/upstream/2.0.6/src/memory.h +74 -0
- data/ext/v8/upstream/2.0.6/src/messages.cc +177 -0
- data/ext/v8/upstream/2.0.6/src/messages.h +112 -0
- data/ext/v8/upstream/2.0.6/src/messages.js +937 -0
- data/ext/v8/upstream/2.0.6/src/mirror-delay.js +2332 -0
- data/ext/v8/upstream/2.0.6/src/mksnapshot.cc +169 -0
- data/ext/v8/upstream/2.0.6/src/natives.h +63 -0
- data/ext/v8/upstream/2.0.6/src/objects-debug.cc +1317 -0
- data/ext/v8/upstream/2.0.6/src/objects-inl.h +3044 -0
- data/ext/v8/upstream/2.0.6/src/objects.cc +8306 -0
- data/ext/v8/upstream/2.0.6/src/objects.h +4960 -0
- data/ext/v8/upstream/2.0.6/src/oprofile-agent.cc +116 -0
- data/ext/v8/upstream/2.0.6/src/oprofile-agent.h +69 -0
- data/ext/v8/upstream/2.0.6/src/parser.cc +4810 -0
- data/ext/v8/upstream/2.0.6/src/parser.h +195 -0
- data/ext/v8/upstream/2.0.6/src/platform-freebsd.cc +645 -0
- data/ext/v8/upstream/2.0.6/src/platform-linux.cc +808 -0
- data/ext/v8/upstream/2.0.6/src/platform-macos.cc +643 -0
- data/ext/v8/upstream/2.0.6/src/platform-nullos.cc +454 -0
- data/ext/v8/upstream/2.0.6/src/platform-openbsd.cc +597 -0
- data/ext/v8/upstream/2.0.6/src/platform-posix.cc +380 -0
- data/ext/v8/upstream/2.0.6/src/platform-win32.cc +1908 -0
- data/ext/v8/upstream/2.0.6/src/platform.h +556 -0
- data/ext/v8/upstream/2.0.6/src/prettyprinter.cc +1511 -0
- data/ext/v8/upstream/2.0.6/src/prettyprinter.h +219 -0
- data/ext/v8/upstream/2.0.6/src/property.cc +96 -0
- data/ext/v8/upstream/2.0.6/src/property.h +327 -0
- data/ext/v8/upstream/2.0.6/src/regexp-delay.js +406 -0
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp-inl.h +78 -0
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.cc +464 -0
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.h +141 -0
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.cc +356 -0
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.h +103 -0
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.cc +240 -0
- data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.h +220 -0
- data/ext/v8/upstream/2.0.6/src/regexp-stack.cc +103 -0
- data/ext/v8/upstream/2.0.6/src/regexp-stack.h +123 -0
- data/ext/v8/upstream/2.0.6/src/register-allocator-inl.h +74 -0
- data/ext/v8/upstream/2.0.6/src/register-allocator.cc +100 -0
- data/ext/v8/upstream/2.0.6/src/register-allocator.h +295 -0
- data/ext/v8/upstream/2.0.6/src/rewriter.cc +855 -0
- data/ext/v8/upstream/2.0.6/src/rewriter.h +54 -0
- data/ext/v8/upstream/2.0.6/src/runtime.cc +8163 -0
- data/ext/v8/upstream/2.0.6/src/runtime.h +432 -0
- data/ext/v8/upstream/2.0.6/src/runtime.js +626 -0
- data/ext/v8/upstream/2.0.6/src/scanner.cc +1098 -0
- data/ext/v8/upstream/2.0.6/src/scanner.h +425 -0
- data/ext/v8/upstream/2.0.6/src/scopeinfo.cc +649 -0
- data/ext/v8/upstream/2.0.6/src/scopeinfo.h +236 -0
- data/ext/v8/upstream/2.0.6/src/scopes.cc +963 -0
- data/ext/v8/upstream/2.0.6/src/scopes.h +401 -0
- data/ext/v8/upstream/2.0.6/src/serialize.cc +1260 -0
- data/ext/v8/upstream/2.0.6/src/serialize.h +404 -0
- data/ext/v8/upstream/2.0.6/src/shell.h +55 -0
- data/ext/v8/upstream/2.0.6/src/simulator.h +41 -0
- data/ext/v8/upstream/2.0.6/src/smart-pointer.h +109 -0
- data/ext/v8/upstream/2.0.6/src/snapshot-common.cc +97 -0
- data/ext/v8/upstream/2.0.6/src/snapshot-empty.cc +40 -0
- data/ext/v8/upstream/2.0.6/src/snapshot.h +59 -0
- data/ext/v8/upstream/2.0.6/src/spaces-inl.h +372 -0
- data/ext/v8/upstream/2.0.6/src/spaces.cc +2864 -0
- data/ext/v8/upstream/2.0.6/src/spaces.h +2072 -0
- data/ext/v8/upstream/2.0.6/src/string-stream.cc +584 -0
- data/ext/v8/upstream/2.0.6/src/string-stream.h +189 -0
- data/ext/v8/upstream/2.0.6/src/string.js +901 -0
- data/ext/v8/upstream/2.0.6/src/stub-cache.cc +1108 -0
- data/ext/v8/upstream/2.0.6/src/stub-cache.h +578 -0
- data/ext/v8/upstream/2.0.6/src/third_party/dtoa/COPYING +15 -0
- data/ext/v8/upstream/2.0.6/src/third_party/dtoa/dtoa.c +3330 -0
- data/ext/v8/upstream/2.0.6/src/third_party/valgrind/valgrind.h +3925 -0
- data/ext/v8/upstream/2.0.6/src/token.cc +56 -0
- data/ext/v8/upstream/2.0.6/src/token.h +270 -0
- data/ext/v8/upstream/2.0.6/src/top.cc +991 -0
- data/ext/v8/upstream/2.0.6/src/top.h +459 -0
- data/ext/v8/upstream/2.0.6/src/unicode-inl.h +238 -0
- data/ext/v8/upstream/2.0.6/src/unicode.cc +749 -0
- data/ext/v8/upstream/2.0.6/src/unicode.h +279 -0
- data/ext/v8/upstream/2.0.6/src/uri.js +415 -0
- data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +426 -0
- data/ext/v8/upstream/2.0.6/src/usage-analyzer.h +40 -0
- data/ext/v8/upstream/2.0.6/src/utils.cc +322 -0
- data/ext/v8/upstream/2.0.6/src/utils.h +592 -0
- data/ext/v8/upstream/2.0.6/src/v8-counters.cc +55 -0
- data/ext/v8/upstream/2.0.6/src/v8-counters.h +198 -0
- data/ext/v8/upstream/2.0.6/src/v8.cc +193 -0
- data/ext/v8/upstream/2.0.6/src/v8.h +119 -0
- data/ext/v8/upstream/2.0.6/src/v8natives.js +846 -0
- data/ext/v8/upstream/2.0.6/src/v8threads.cc +450 -0
- data/ext/v8/upstream/2.0.6/src/v8threads.h +144 -0
- data/ext/v8/upstream/2.0.6/src/variables.cc +163 -0
- data/ext/v8/upstream/2.0.6/src/variables.h +235 -0
- data/ext/v8/upstream/2.0.6/src/version.cc +88 -0
- data/ext/v8/upstream/2.0.6/src/version.h +64 -0
- data/ext/v8/upstream/2.0.6/src/virtual-frame.cc +381 -0
- data/ext/v8/upstream/2.0.6/src/virtual-frame.h +44 -0
- data/ext/v8/upstream/2.0.6/src/x64/assembler-x64-inl.h +352 -0
- data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.cc +2539 -0
- data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.h +1399 -0
- data/ext/v8/upstream/2.0.6/src/x64/builtins-x64.cc +1255 -0
- data/ext/v8/upstream/2.0.6/src/x64/codegen-x64-inl.h +46 -0
- data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.cc +8223 -0
- data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.h +785 -0
- data/ext/v8/upstream/2.0.6/src/x64/cpu-x64.cc +79 -0
- data/ext/v8/upstream/2.0.6/src/x64/debug-x64.cc +202 -0
- data/ext/v8/upstream/2.0.6/src/x64/disasm-x64.cc +1596 -0
- data/ext/v8/upstream/2.0.6/src/x64/fast-codegen-x64.cc +1820 -0
- data/ext/v8/upstream/2.0.6/src/x64/frames-x64.cc +109 -0
- data/ext/v8/upstream/2.0.6/src/x64/frames-x64.h +121 -0
- data/ext/v8/upstream/2.0.6/src/x64/ic-x64.cc +1392 -0
- data/ext/v8/upstream/2.0.6/src/x64/jump-target-x64.cc +432 -0
- data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.cc +2409 -0
- data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.h +765 -0
- data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.cc +1337 -0
- data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.h +295 -0
- data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64-inl.h +86 -0
- data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.cc +84 -0
- data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.h +43 -0
- data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.cc +27 -0
- data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.h +63 -0
- data/ext/v8/upstream/2.0.6/src/x64/stub-cache-x64.cc +1884 -0
- data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.cc +1089 -0
- data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.h +560 -0
- data/ext/v8/upstream/2.0.6/src/zone-inl.h +297 -0
- data/ext/v8/upstream/2.0.6/src/zone.cc +193 -0
- data/ext/v8/upstream/2.0.6/src/zone.h +305 -0
- data/ext/v8/upstream/2.0.6/tools/codemap.js +258 -0
- data/ext/v8/upstream/2.0.6/tools/consarray.js +93 -0
- data/ext/v8/upstream/2.0.6/tools/csvparser.js +98 -0
- data/ext/v8/upstream/2.0.6/tools/gyp/v8.gyp +620 -0
- data/ext/v8/upstream/2.0.6/tools/js2c.py +376 -0
- data/ext/v8/upstream/2.0.6/tools/jsmin.py +280 -0
- data/ext/v8/upstream/2.0.6/tools/linux-tick-processor +24 -0
- data/ext/v8/upstream/2.0.6/tools/linux-tick-processor.py +78 -0
- data/ext/v8/upstream/2.0.6/tools/logreader.js +320 -0
- data/ext/v8/upstream/2.0.6/tools/mac-nm +18 -0
- data/ext/v8/upstream/2.0.6/tools/mac-tick-processor +6 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/annotate +7 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/common +19 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/dump +7 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/report +7 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/reset +7 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/run +14 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/shutdown +7 -0
- data/ext/v8/upstream/2.0.6/tools/oprofile/start +7 -0
- data/ext/v8/upstream/2.0.6/tools/presubmit.py +299 -0
- data/ext/v8/upstream/2.0.6/tools/process-heap-prof.py +120 -0
- data/ext/v8/upstream/2.0.6/tools/profile.js +621 -0
- data/ext/v8/upstream/2.0.6/tools/profile_view.js +224 -0
- data/ext/v8/upstream/2.0.6/tools/run-valgrind.py +77 -0
- data/ext/v8/upstream/2.0.6/tools/splaytree.js +322 -0
- data/ext/v8/upstream/2.0.6/tools/splaytree.py +226 -0
- data/ext/v8/upstream/2.0.6/tools/stats-viewer.py +456 -0
- data/ext/v8/upstream/2.0.6/tools/test.py +1370 -0
- data/ext/v8/upstream/2.0.6/tools/tickprocessor-driver.js +53 -0
- data/ext/v8/upstream/2.0.6/tools/tickprocessor.js +731 -0
- data/ext/v8/upstream/2.0.6/tools/tickprocessor.py +535 -0
- data/ext/v8/upstream/2.0.6/tools/utils.py +82 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/README.txt +71 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/arm.vsprops +14 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/common.vsprops +35 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8.vcproj +199 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_arm.vcproj +199 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_x64.vcproj +201 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/d8js2c.cmd +6 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/debug.vsprops +17 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/ia32.vsprops +13 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/js2c.cmd +6 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/release.vsprops +24 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.sln +101 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.vcproj +223 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.sln +74 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.vcproj +223 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base.vcproj +971 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_arm.vcproj +983 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_x64.vcproj +959 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest.vcproj +255 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_arm.vcproj +243 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_x64.vcproj +257 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot.vcproj +151 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot_x64.vcproj +151 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample.vcproj +151 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_arm.vcproj +151 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_x64.vcproj +151 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample.vcproj +151 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_arm.vcproj +151 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_x64.vcproj +153 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot.vcproj +142 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc.vcproj +92 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc_x64.vcproj +92 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_x64.vcproj +142 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.sln +101 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.vcproj +223 -0
- data/ext/v8/upstream/2.0.6/tools/visual_studio/x64.vsprops +13 -0
- data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +5 -0
- data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.py +137 -0
- data/ext/v8/upstream/Makefile +31 -0
- data/ext/v8/upstream/no-strict-aliasing.patch +13 -0
- data/ext/v8/upstream/scons/CHANGES.txt +5183 -0
- data/ext/v8/upstream/scons/LICENSE.txt +20 -0
- data/ext/v8/upstream/scons/MANIFEST +202 -0
- data/ext/v8/upstream/scons/PKG-INFO +13 -0
- data/ext/v8/upstream/scons/README.txt +273 -0
- data/ext/v8/upstream/scons/RELEASE.txt +1040 -0
- data/ext/v8/upstream/scons/engine/SCons/Action.py +1256 -0
- data/ext/v8/upstream/scons/engine/SCons/Builder.py +868 -0
- data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +217 -0
- data/ext/v8/upstream/scons/engine/SCons/Conftest.py +794 -0
- data/ext/v8/upstream/scons/engine/SCons/Debug.py +237 -0
- data/ext/v8/upstream/scons/engine/SCons/Defaults.py +485 -0
- data/ext/v8/upstream/scons/engine/SCons/Environment.py +2327 -0
- data/ext/v8/upstream/scons/engine/SCons/Errors.py +207 -0
- data/ext/v8/upstream/scons/engine/SCons/Executor.py +636 -0
- data/ext/v8/upstream/scons/engine/SCons/Job.py +435 -0
- data/ext/v8/upstream/scons/engine/SCons/Memoize.py +292 -0
- data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +153 -0
- data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +3220 -0
- data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +128 -0
- data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +1341 -0
- data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +50 -0
- data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +50 -0
- data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +50 -0
- data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +50 -0
- data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +76 -0
- data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +74 -0
- data/ext/v8/upstream/scons/engine/SCons/PathList.py +232 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +236 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +70 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +55 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +46 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +46 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +44 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +58 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +264 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +50 -0
- data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +386 -0
- data/ext/v8/upstream/scons/engine/SCons/SConf.py +1038 -0
- data/ext/v8/upstream/scons/engine/SCons/SConsign.py +381 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +132 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +74 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +111 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +320 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +48 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +378 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +103 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +55 -0
- data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +415 -0
- data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +386 -0
- data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +1360 -0
- data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +944 -0
- data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +642 -0
- data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +414 -0
- data/ext/v8/upstream/scons/engine/SCons/Sig.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Subst.py +911 -0
- data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +1030 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +61 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +65 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +73 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +247 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +324 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +56 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +61 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +210 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +84 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +321 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +367 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +497 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +104 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +138 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +64 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +64 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +71 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +675 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +82 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +74 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +80 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +76 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +71 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +78 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +82 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +99 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +114 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +58 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +50 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +224 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +64 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +125 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +94 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +62 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +62 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +98 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +90 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +73 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +53 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +80 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +64 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +81 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +85 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +53 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +77 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +59 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +52 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +72 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +90 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +59 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +60 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +229 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +490 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +71 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +110 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +234 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +138 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +79 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +99 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +121 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +112 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +77 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +90 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +159 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +64 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +266 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +50 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +269 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +1439 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +208 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +107 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +72 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +314 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +185 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +526 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +367 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +43 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +43 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +43 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +44 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +44 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +44 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +78 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +83 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +108 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +336 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +121 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +70 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +132 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +68 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +58 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +53 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +67 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +142 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +58 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +63 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +64 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +64 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +77 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +186 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +73 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +805 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +175 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +53 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +100 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +131 -0
- data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +100 -0
- data/ext/v8/upstream/scons/engine/SCons/Util.py +1645 -0
- data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +91 -0
- data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +107 -0
- data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +139 -0
- data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +109 -0
- data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +147 -0
- data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +317 -0
- data/ext/v8/upstream/scons/engine/SCons/Warnings.py +228 -0
- data/ext/v8/upstream/scons/engine/SCons/__init__.py +49 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +302 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +98 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +91 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +124 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +1725 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +583 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +176 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +325 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +1296 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +382 -0
- data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +187 -0
- data/ext/v8/upstream/scons/engine/SCons/cpp.py +598 -0
- data/ext/v8/upstream/scons/engine/SCons/dblite.py +248 -0
- data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +77 -0
- data/ext/v8/upstream/scons/os_spawnv_fix.diff +83 -0
- data/ext/v8/upstream/scons/scons-time.1 +1017 -0
- data/ext/v8/upstream/scons/scons.1 +15179 -0
- data/ext/v8/upstream/scons/sconsign.1 +208 -0
- data/ext/v8/upstream/scons/script/scons +184 -0
- data/ext/v8/upstream/scons/script/scons-time +1529 -0
- data/ext/v8/upstream/scons/script/scons.bat +31 -0
- data/ext/v8/upstream/scons/script/sconsign +508 -0
- data/ext/v8/upstream/scons/setup.cfg +6 -0
- data/ext/v8/upstream/scons/setup.py +427 -0
- data/ext/v8/v8.cpp +89 -0
- data/ext/v8/v8_cxt.cpp +92 -0
- data/ext/v8/v8_cxt.h +20 -0
- data/ext/v8/v8_func.cpp +10 -0
- data/ext/v8/v8_func.h +11 -0
- data/ext/v8/v8_msg.cpp +54 -0
- data/ext/v8/v8_msg.h +18 -0
- data/ext/v8/v8_obj.cpp +52 -0
- data/ext/v8/v8_obj.h +13 -0
- data/ext/v8/v8_ref.cpp +26 -0
- data/ext/v8/v8_ref.h +31 -0
- data/ext/v8/v8_script.cpp +20 -0
- data/ext/v8/v8_script.h +8 -0
- data/ext/v8/v8_standalone.cpp +69 -0
- data/ext/v8/v8_standalone.h +31 -0
- data/ext/v8/v8_str.cpp +17 -0
- data/ext/v8/v8_str.h +9 -0
- data/ext/v8/v8_template.cpp +53 -0
- data/ext/v8/v8_template.h +13 -0
- data/lib/v8.rb +10 -0
- data/lib/v8/context.rb +101 -0
- data/lib/v8/object.rb +38 -0
- data/lib/v8/to.rb +33 -0
- data/lib/v8/v8.so +0 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/ext/cxt_spec.rb +25 -0
- data/spec/ext/obj_spec.rb +13 -0
- data/spec/redjs/jsapi_spec.rb +405 -0
- data/spec/redjs/tap.rb +8 -0
- data/spec/redjs_helper.rb +3 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/v8/to_spec.rb +15 -0
- data/tasks/rspec.rake +21 -0
- data/therubyracer.gemspec +680 -0
- metadata +697 -0
@@ -0,0 +1,772 @@
|
|
1
|
+
// Copyright (c) 1994-2006 Sun Microsystems Inc.
|
2
|
+
// All Rights Reserved.
|
3
|
+
//
|
4
|
+
// Redistribution and use in source and binary forms, with or without
|
5
|
+
// modification, are permitted provided that the following conditions are
|
6
|
+
// met:
|
7
|
+
//
|
8
|
+
// - Redistributions of source code must retain the above copyright notice,
|
9
|
+
// this list of conditions and the following disclaimer.
|
10
|
+
//
|
11
|
+
// - Redistribution in binary form must reproduce the above copyright
|
12
|
+
// notice, this list of conditions and the following disclaimer in the
|
13
|
+
// documentation and/or other materials provided with the distribution.
|
14
|
+
//
|
15
|
+
// - Neither the name of Sun Microsystems or the names of contributors may
|
16
|
+
// be used to endorse or promote products derived from this software without
|
17
|
+
// specific prior written permission.
|
18
|
+
//
|
19
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
20
|
+
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
21
|
+
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
22
|
+
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
23
|
+
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
24
|
+
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
25
|
+
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
26
|
+
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
27
|
+
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
28
|
+
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
29
|
+
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
|
31
|
+
// The original source code covered by the above license above has been
|
32
|
+
// modified significantly by Google Inc.
|
33
|
+
// Copyright 2006-2009 the V8 project authors. All rights reserved.
|
34
|
+
|
35
|
+
#include "v8.h"
|
36
|
+
|
37
|
+
#include "arguments.h"
|
38
|
+
#include "execution.h"
|
39
|
+
#include "ic-inl.h"
|
40
|
+
#include "factory.h"
|
41
|
+
#include "runtime.h"
|
42
|
+
#include "serialize.h"
|
43
|
+
#include "stub-cache.h"
|
44
|
+
#include "regexp-stack.h"
|
45
|
+
#include "ast.h"
|
46
|
+
#include "regexp-macro-assembler.h"
|
47
|
+
// Include native regexp-macro-assembler.
|
48
|
+
#ifdef V8_NATIVE_REGEXP
|
49
|
+
#if V8_TARGET_ARCH_IA32
|
50
|
+
#include "ia32/regexp-macro-assembler-ia32.h"
|
51
|
+
#elif V8_TARGET_ARCH_X64
|
52
|
+
#include "x64/regexp-macro-assembler-x64.h"
|
53
|
+
#elif V8_TARGET_ARCH_ARM
|
54
|
+
#include "arm/regexp-macro-assembler-arm.h"
|
55
|
+
#else // Unknown architecture.
|
56
|
+
#error "Unknown architecture."
|
57
|
+
#endif // Target architecture.
|
58
|
+
#endif // V8_NATIVE_REGEXP
|
59
|
+
|
60
|
+
namespace v8 {
|
61
|
+
namespace internal {
|
62
|
+
|
63
|
+
|
64
|
+
// -----------------------------------------------------------------------------
|
65
|
+
// Implementation of Label
|
66
|
+
|
67
|
+
int Label::pos() const {
|
68
|
+
if (pos_ < 0) return -pos_ - 1;
|
69
|
+
if (pos_ > 0) return pos_ - 1;
|
70
|
+
UNREACHABLE();
|
71
|
+
return 0;
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
// -----------------------------------------------------------------------------
|
76
|
+
// Implementation of RelocInfoWriter and RelocIterator
|
77
|
+
//
|
78
|
+
// Encoding
|
79
|
+
//
|
80
|
+
// The most common modes are given single-byte encodings. Also, it is
|
81
|
+
// easy to identify the type of reloc info and skip unwanted modes in
|
82
|
+
// an iteration.
|
83
|
+
//
|
84
|
+
// The encoding relies on the fact that there are less than 14
|
85
|
+
// different relocation modes.
|
86
|
+
//
|
87
|
+
// embedded_object: [6 bits pc delta] 00
|
88
|
+
//
|
89
|
+
// code_taget: [6 bits pc delta] 01
|
90
|
+
//
|
91
|
+
// position: [6 bits pc delta] 10,
|
92
|
+
// [7 bits signed data delta] 0
|
93
|
+
//
|
94
|
+
// statement_position: [6 bits pc delta] 10,
|
95
|
+
// [7 bits signed data delta] 1
|
96
|
+
//
|
97
|
+
// any nondata mode: 00 [4 bits rmode] 11, // rmode: 0..13 only
|
98
|
+
// 00 [6 bits pc delta]
|
99
|
+
//
|
100
|
+
// pc-jump: 00 1111 11,
|
101
|
+
// 00 [6 bits pc delta]
|
102
|
+
//
|
103
|
+
// pc-jump: 01 1111 11,
|
104
|
+
// (variable length) 7 - 26 bit pc delta, written in chunks of 7
|
105
|
+
// bits, the lowest 7 bits written first.
|
106
|
+
//
|
107
|
+
// data-jump + pos: 00 1110 11,
|
108
|
+
// signed intptr_t, lowest byte written first
|
109
|
+
//
|
110
|
+
// data-jump + st.pos: 01 1110 11,
|
111
|
+
// signed intptr_t, lowest byte written first
|
112
|
+
//
|
113
|
+
// data-jump + comm.: 10 1110 11,
|
114
|
+
// signed intptr_t, lowest byte written first
|
115
|
+
//
|
116
|
+
const int kMaxRelocModes = 14;
|
117
|
+
|
118
|
+
const int kTagBits = 2;
|
119
|
+
const int kTagMask = (1 << kTagBits) - 1;
|
120
|
+
const int kExtraTagBits = 4;
|
121
|
+
const int kPositionTypeTagBits = 1;
|
122
|
+
const int kSmallDataBits = kBitsPerByte - kPositionTypeTagBits;
|
123
|
+
|
124
|
+
const int kEmbeddedObjectTag = 0;
|
125
|
+
const int kCodeTargetTag = 1;
|
126
|
+
const int kPositionTag = 2;
|
127
|
+
const int kDefaultTag = 3;
|
128
|
+
|
129
|
+
const int kPCJumpTag = (1 << kExtraTagBits) - 1;
|
130
|
+
|
131
|
+
const int kSmallPCDeltaBits = kBitsPerByte - kTagBits;
|
132
|
+
const int kSmallPCDeltaMask = (1 << kSmallPCDeltaBits) - 1;
|
133
|
+
|
134
|
+
const int kVariableLengthPCJumpTopTag = 1;
|
135
|
+
const int kChunkBits = 7;
|
136
|
+
const int kChunkMask = (1 << kChunkBits) - 1;
|
137
|
+
const int kLastChunkTagBits = 1;
|
138
|
+
const int kLastChunkTagMask = 1;
|
139
|
+
const int kLastChunkTag = 1;
|
140
|
+
|
141
|
+
|
142
|
+
const int kDataJumpTag = kPCJumpTag - 1;
|
143
|
+
|
144
|
+
const int kNonstatementPositionTag = 0;
|
145
|
+
const int kStatementPositionTag = 1;
|
146
|
+
const int kCommentTag = 2;
|
147
|
+
|
148
|
+
|
149
|
+
uint32_t RelocInfoWriter::WriteVariableLengthPCJump(uint32_t pc_delta) {
|
150
|
+
// Return if the pc_delta can fit in kSmallPCDeltaBits bits.
|
151
|
+
// Otherwise write a variable length PC jump for the bits that do
|
152
|
+
// not fit in the kSmallPCDeltaBits bits.
|
153
|
+
if (is_uintn(pc_delta, kSmallPCDeltaBits)) return pc_delta;
|
154
|
+
WriteExtraTag(kPCJumpTag, kVariableLengthPCJumpTopTag);
|
155
|
+
uint32_t pc_jump = pc_delta >> kSmallPCDeltaBits;
|
156
|
+
ASSERT(pc_jump > 0);
|
157
|
+
// Write kChunkBits size chunks of the pc_jump.
|
158
|
+
for (; pc_jump > 0; pc_jump = pc_jump >> kChunkBits) {
|
159
|
+
byte b = pc_jump & kChunkMask;
|
160
|
+
*--pos_ = b << kLastChunkTagBits;
|
161
|
+
}
|
162
|
+
// Tag the last chunk so it can be identified.
|
163
|
+
*pos_ = *pos_ | kLastChunkTag;
|
164
|
+
// Return the remaining kSmallPCDeltaBits of the pc_delta.
|
165
|
+
return pc_delta & kSmallPCDeltaMask;
|
166
|
+
}
|
167
|
+
|
168
|
+
|
169
|
+
void RelocInfoWriter::WriteTaggedPC(uint32_t pc_delta, int tag) {
|
170
|
+
// Write a byte of tagged pc-delta, possibly preceded by var. length pc-jump.
|
171
|
+
pc_delta = WriteVariableLengthPCJump(pc_delta);
|
172
|
+
*--pos_ = pc_delta << kTagBits | tag;
|
173
|
+
}
|
174
|
+
|
175
|
+
|
176
|
+
void RelocInfoWriter::WriteTaggedData(intptr_t data_delta, int tag) {
|
177
|
+
*--pos_ = static_cast<byte>(data_delta << kPositionTypeTagBits | tag);
|
178
|
+
}
|
179
|
+
|
180
|
+
|
181
|
+
void RelocInfoWriter::WriteExtraTag(int extra_tag, int top_tag) {
|
182
|
+
*--pos_ = static_cast<int>(top_tag << (kTagBits + kExtraTagBits) |
|
183
|
+
extra_tag << kTagBits |
|
184
|
+
kDefaultTag);
|
185
|
+
}
|
186
|
+
|
187
|
+
|
188
|
+
void RelocInfoWriter::WriteExtraTaggedPC(uint32_t pc_delta, int extra_tag) {
|
189
|
+
// Write two-byte tagged pc-delta, possibly preceded by var. length pc-jump.
|
190
|
+
pc_delta = WriteVariableLengthPCJump(pc_delta);
|
191
|
+
WriteExtraTag(extra_tag, 0);
|
192
|
+
*--pos_ = pc_delta;
|
193
|
+
}
|
194
|
+
|
195
|
+
|
196
|
+
void RelocInfoWriter::WriteExtraTaggedData(intptr_t data_delta, int top_tag) {
|
197
|
+
WriteExtraTag(kDataJumpTag, top_tag);
|
198
|
+
for (int i = 0; i < kIntptrSize; i++) {
|
199
|
+
*--pos_ = static_cast<byte>(data_delta);
|
200
|
+
// Signed right shift is arithmetic shift. Tested in test-utils.cc.
|
201
|
+
data_delta = data_delta >> kBitsPerByte;
|
202
|
+
}
|
203
|
+
}
|
204
|
+
|
205
|
+
|
206
|
+
void RelocInfoWriter::Write(const RelocInfo* rinfo) {
|
207
|
+
#ifdef DEBUG
|
208
|
+
byte* begin_pos = pos_;
|
209
|
+
#endif
|
210
|
+
Counters::reloc_info_count.Increment();
|
211
|
+
ASSERT(rinfo->pc() - last_pc_ >= 0);
|
212
|
+
ASSERT(RelocInfo::NUMBER_OF_MODES < kMaxRelocModes);
|
213
|
+
// Use unsigned delta-encoding for pc.
|
214
|
+
uint32_t pc_delta = static_cast<uint32_t>(rinfo->pc() - last_pc_);
|
215
|
+
RelocInfo::Mode rmode = rinfo->rmode();
|
216
|
+
|
217
|
+
// The two most common modes are given small tags, and usually fit in a byte.
|
218
|
+
if (rmode == RelocInfo::EMBEDDED_OBJECT) {
|
219
|
+
WriteTaggedPC(pc_delta, kEmbeddedObjectTag);
|
220
|
+
} else if (rmode == RelocInfo::CODE_TARGET) {
|
221
|
+
WriteTaggedPC(pc_delta, kCodeTargetTag);
|
222
|
+
} else if (RelocInfo::IsPosition(rmode)) {
|
223
|
+
// Use signed delta-encoding for data.
|
224
|
+
intptr_t data_delta = rinfo->data() - last_data_;
|
225
|
+
int pos_type_tag = rmode == RelocInfo::POSITION ? kNonstatementPositionTag
|
226
|
+
: kStatementPositionTag;
|
227
|
+
// Check if data is small enough to fit in a tagged byte.
|
228
|
+
// We cannot use is_intn because data_delta is not an int32_t.
|
229
|
+
if (data_delta >= -(1 << (kSmallDataBits-1)) &&
|
230
|
+
data_delta < 1 << (kSmallDataBits-1)) {
|
231
|
+
WriteTaggedPC(pc_delta, kPositionTag);
|
232
|
+
WriteTaggedData(data_delta, pos_type_tag);
|
233
|
+
last_data_ = rinfo->data();
|
234
|
+
} else {
|
235
|
+
// Otherwise, use costly encoding.
|
236
|
+
WriteExtraTaggedPC(pc_delta, kPCJumpTag);
|
237
|
+
WriteExtraTaggedData(data_delta, pos_type_tag);
|
238
|
+
last_data_ = rinfo->data();
|
239
|
+
}
|
240
|
+
} else if (RelocInfo::IsComment(rmode)) {
|
241
|
+
// Comments are normally not generated, so we use the costly encoding.
|
242
|
+
WriteExtraTaggedPC(pc_delta, kPCJumpTag);
|
243
|
+
WriteExtraTaggedData(rinfo->data() - last_data_, kCommentTag);
|
244
|
+
last_data_ = rinfo->data();
|
245
|
+
} else {
|
246
|
+
// For all other modes we simply use the mode as the extra tag.
|
247
|
+
// None of these modes need a data component.
|
248
|
+
ASSERT(rmode < kPCJumpTag && rmode < kDataJumpTag);
|
249
|
+
WriteExtraTaggedPC(pc_delta, rmode);
|
250
|
+
}
|
251
|
+
last_pc_ = rinfo->pc();
|
252
|
+
#ifdef DEBUG
|
253
|
+
ASSERT(begin_pos - pos_ <= kMaxSize);
|
254
|
+
#endif
|
255
|
+
}
|
256
|
+
|
257
|
+
|
258
|
+
inline int RelocIterator::AdvanceGetTag() {
|
259
|
+
return *--pos_ & kTagMask;
|
260
|
+
}
|
261
|
+
|
262
|
+
|
263
|
+
inline int RelocIterator::GetExtraTag() {
|
264
|
+
return (*pos_ >> kTagBits) & ((1 << kExtraTagBits) - 1);
|
265
|
+
}
|
266
|
+
|
267
|
+
|
268
|
+
inline int RelocIterator::GetTopTag() {
|
269
|
+
return *pos_ >> (kTagBits + kExtraTagBits);
|
270
|
+
}
|
271
|
+
|
272
|
+
|
273
|
+
inline void RelocIterator::ReadTaggedPC() {
|
274
|
+
rinfo_.pc_ += *pos_ >> kTagBits;
|
275
|
+
}
|
276
|
+
|
277
|
+
|
278
|
+
inline void RelocIterator::AdvanceReadPC() {
|
279
|
+
rinfo_.pc_ += *--pos_;
|
280
|
+
}
|
281
|
+
|
282
|
+
|
283
|
+
void RelocIterator::AdvanceReadData() {
|
284
|
+
intptr_t x = 0;
|
285
|
+
for (int i = 0; i < kIntptrSize; i++) {
|
286
|
+
x |= static_cast<intptr_t>(*--pos_) << i * kBitsPerByte;
|
287
|
+
}
|
288
|
+
rinfo_.data_ += x;
|
289
|
+
}
|
290
|
+
|
291
|
+
|
292
|
+
void RelocIterator::AdvanceReadVariableLengthPCJump() {
|
293
|
+
// Read the 32-kSmallPCDeltaBits most significant bits of the
|
294
|
+
// pc jump in kChunkBits bit chunks and shift them into place.
|
295
|
+
// Stop when the last chunk is encountered.
|
296
|
+
uint32_t pc_jump = 0;
|
297
|
+
for (int i = 0; i < kIntSize; i++) {
|
298
|
+
byte pc_jump_part = *--pos_;
|
299
|
+
pc_jump |= (pc_jump_part >> kLastChunkTagBits) << i * kChunkBits;
|
300
|
+
if ((pc_jump_part & kLastChunkTagMask) == 1) break;
|
301
|
+
}
|
302
|
+
// The least significant kSmallPCDeltaBits bits will be added
|
303
|
+
// later.
|
304
|
+
rinfo_.pc_ += pc_jump << kSmallPCDeltaBits;
|
305
|
+
}
|
306
|
+
|
307
|
+
|
308
|
+
inline int RelocIterator::GetPositionTypeTag() {
|
309
|
+
return *pos_ & ((1 << kPositionTypeTagBits) - 1);
|
310
|
+
}
|
311
|
+
|
312
|
+
|
313
|
+
inline void RelocIterator::ReadTaggedData() {
|
314
|
+
int8_t signed_b = *pos_;
|
315
|
+
// Signed right shift is arithmetic shift. Tested in test-utils.cc.
|
316
|
+
rinfo_.data_ += signed_b >> kPositionTypeTagBits;
|
317
|
+
}
|
318
|
+
|
319
|
+
|
320
|
+
inline RelocInfo::Mode RelocIterator::DebugInfoModeFromTag(int tag) {
|
321
|
+
if (tag == kStatementPositionTag) {
|
322
|
+
return RelocInfo::STATEMENT_POSITION;
|
323
|
+
} else if (tag == kNonstatementPositionTag) {
|
324
|
+
return RelocInfo::POSITION;
|
325
|
+
} else {
|
326
|
+
ASSERT(tag == kCommentTag);
|
327
|
+
return RelocInfo::COMMENT;
|
328
|
+
}
|
329
|
+
}
|
330
|
+
|
331
|
+
|
332
|
+
void RelocIterator::next() {
|
333
|
+
ASSERT(!done());
|
334
|
+
// Basically, do the opposite of RelocInfoWriter::Write.
|
335
|
+
// Reading of data is as far as possible avoided for unwanted modes,
|
336
|
+
// but we must always update the pc.
|
337
|
+
//
|
338
|
+
// We exit this loop by returning when we find a mode we want.
|
339
|
+
while (pos_ > end_) {
|
340
|
+
int tag = AdvanceGetTag();
|
341
|
+
if (tag == kEmbeddedObjectTag) {
|
342
|
+
ReadTaggedPC();
|
343
|
+
if (SetMode(RelocInfo::EMBEDDED_OBJECT)) return;
|
344
|
+
} else if (tag == kCodeTargetTag) {
|
345
|
+
ReadTaggedPC();
|
346
|
+
if (SetMode(RelocInfo::CODE_TARGET)) return;
|
347
|
+
} else if (tag == kPositionTag) {
|
348
|
+
ReadTaggedPC();
|
349
|
+
Advance();
|
350
|
+
// Check if we want source positions.
|
351
|
+
if (mode_mask_ & RelocInfo::kPositionMask) {
|
352
|
+
// Check if we want this type of source position.
|
353
|
+
if (SetMode(DebugInfoModeFromTag(GetPositionTypeTag()))) {
|
354
|
+
// Finally read the data before returning.
|
355
|
+
ReadTaggedData();
|
356
|
+
return;
|
357
|
+
}
|
358
|
+
}
|
359
|
+
} else {
|
360
|
+
ASSERT(tag == kDefaultTag);
|
361
|
+
int extra_tag = GetExtraTag();
|
362
|
+
if (extra_tag == kPCJumpTag) {
|
363
|
+
int top_tag = GetTopTag();
|
364
|
+
if (top_tag == kVariableLengthPCJumpTopTag) {
|
365
|
+
AdvanceReadVariableLengthPCJump();
|
366
|
+
} else {
|
367
|
+
AdvanceReadPC();
|
368
|
+
}
|
369
|
+
} else if (extra_tag == kDataJumpTag) {
|
370
|
+
// Check if we want debug modes (the only ones with data).
|
371
|
+
if (mode_mask_ & RelocInfo::kDebugMask) {
|
372
|
+
int top_tag = GetTopTag();
|
373
|
+
AdvanceReadData();
|
374
|
+
if (SetMode(DebugInfoModeFromTag(top_tag))) return;
|
375
|
+
} else {
|
376
|
+
// Otherwise, just skip over the data.
|
377
|
+
Advance(kIntptrSize);
|
378
|
+
}
|
379
|
+
} else {
|
380
|
+
AdvanceReadPC();
|
381
|
+
if (SetMode(static_cast<RelocInfo::Mode>(extra_tag))) return;
|
382
|
+
}
|
383
|
+
}
|
384
|
+
}
|
385
|
+
done_ = true;
|
386
|
+
}
|
387
|
+
|
388
|
+
|
389
|
+
RelocIterator::RelocIterator(Code* code, int mode_mask) {
|
390
|
+
rinfo_.pc_ = code->instruction_start();
|
391
|
+
rinfo_.data_ = 0;
|
392
|
+
// relocation info is read backwards
|
393
|
+
pos_ = code->relocation_start() + code->relocation_size();
|
394
|
+
end_ = code->relocation_start();
|
395
|
+
done_ = false;
|
396
|
+
mode_mask_ = mode_mask;
|
397
|
+
if (mode_mask_ == 0) pos_ = end_;
|
398
|
+
next();
|
399
|
+
}
|
400
|
+
|
401
|
+
|
402
|
+
RelocIterator::RelocIterator(const CodeDesc& desc, int mode_mask) {
|
403
|
+
rinfo_.pc_ = desc.buffer;
|
404
|
+
rinfo_.data_ = 0;
|
405
|
+
// relocation info is read backwards
|
406
|
+
pos_ = desc.buffer + desc.buffer_size;
|
407
|
+
end_ = pos_ - desc.reloc_size;
|
408
|
+
done_ = false;
|
409
|
+
mode_mask_ = mode_mask;
|
410
|
+
if (mode_mask_ == 0) pos_ = end_;
|
411
|
+
next();
|
412
|
+
}
|
413
|
+
|
414
|
+
|
415
|
+
// -----------------------------------------------------------------------------
|
416
|
+
// Implementation of RelocInfo
|
417
|
+
|
418
|
+
|
419
|
+
#ifdef ENABLE_DISASSEMBLER
|
420
|
+
const char* RelocInfo::RelocModeName(RelocInfo::Mode rmode) {
|
421
|
+
switch (rmode) {
|
422
|
+
case RelocInfo::NONE:
|
423
|
+
return "no reloc";
|
424
|
+
case RelocInfo::EMBEDDED_OBJECT:
|
425
|
+
return "embedded object";
|
426
|
+
case RelocInfo::EMBEDDED_STRING:
|
427
|
+
return "embedded string";
|
428
|
+
case RelocInfo::CONSTRUCT_CALL:
|
429
|
+
return "code target (js construct call)";
|
430
|
+
case RelocInfo::CODE_TARGET_CONTEXT:
|
431
|
+
return "code target (context)";
|
432
|
+
case RelocInfo::CODE_TARGET:
|
433
|
+
return "code target";
|
434
|
+
case RelocInfo::RUNTIME_ENTRY:
|
435
|
+
return "runtime entry";
|
436
|
+
case RelocInfo::JS_RETURN:
|
437
|
+
return "js return";
|
438
|
+
case RelocInfo::COMMENT:
|
439
|
+
return "comment";
|
440
|
+
case RelocInfo::POSITION:
|
441
|
+
return "position";
|
442
|
+
case RelocInfo::STATEMENT_POSITION:
|
443
|
+
return "statement position";
|
444
|
+
case RelocInfo::EXTERNAL_REFERENCE:
|
445
|
+
return "external reference";
|
446
|
+
case RelocInfo::INTERNAL_REFERENCE:
|
447
|
+
return "internal reference";
|
448
|
+
case RelocInfo::NUMBER_OF_MODES:
|
449
|
+
UNREACHABLE();
|
450
|
+
return "number_of_modes";
|
451
|
+
}
|
452
|
+
return "unknown relocation type";
|
453
|
+
}
|
454
|
+
|
455
|
+
|
456
|
+
void RelocInfo::Print() {
|
457
|
+
PrintF("%p %s", pc_, RelocModeName(rmode_));
|
458
|
+
if (IsComment(rmode_)) {
|
459
|
+
PrintF(" (%s)", data_);
|
460
|
+
} else if (rmode_ == EMBEDDED_OBJECT) {
|
461
|
+
PrintF(" (");
|
462
|
+
target_object()->ShortPrint();
|
463
|
+
PrintF(")");
|
464
|
+
} else if (rmode_ == EXTERNAL_REFERENCE) {
|
465
|
+
ExternalReferenceEncoder ref_encoder;
|
466
|
+
PrintF(" (%s) (%p)",
|
467
|
+
ref_encoder.NameOfAddress(*target_reference_address()),
|
468
|
+
*target_reference_address());
|
469
|
+
} else if (IsCodeTarget(rmode_)) {
|
470
|
+
Code* code = Code::GetCodeFromTargetAddress(target_address());
|
471
|
+
PrintF(" (%s) (%p)", Code::Kind2String(code->kind()), target_address());
|
472
|
+
} else if (IsPosition(rmode_)) {
|
473
|
+
PrintF(" (%d)", data());
|
474
|
+
}
|
475
|
+
|
476
|
+
PrintF("\n");
|
477
|
+
}
|
478
|
+
#endif // ENABLE_DISASSEMBLER
|
479
|
+
|
480
|
+
|
481
|
+
#ifdef DEBUG
|
482
|
+
void RelocInfo::Verify() {
|
483
|
+
switch (rmode_) {
|
484
|
+
case EMBEDDED_OBJECT:
|
485
|
+
Object::VerifyPointer(target_object());
|
486
|
+
break;
|
487
|
+
case CONSTRUCT_CALL:
|
488
|
+
case CODE_TARGET_CONTEXT:
|
489
|
+
case CODE_TARGET: {
|
490
|
+
// convert inline target address to code object
|
491
|
+
Address addr = target_address();
|
492
|
+
ASSERT(addr != NULL);
|
493
|
+
// Check that we can find the right code object.
|
494
|
+
Code* code = Code::GetCodeFromTargetAddress(addr);
|
495
|
+
Object* found = Heap::FindCodeObject(addr);
|
496
|
+
ASSERT(found->IsCode());
|
497
|
+
ASSERT(code->address() == HeapObject::cast(found)->address());
|
498
|
+
break;
|
499
|
+
}
|
500
|
+
case RelocInfo::EMBEDDED_STRING:
|
501
|
+
case RUNTIME_ENTRY:
|
502
|
+
case JS_RETURN:
|
503
|
+
case COMMENT:
|
504
|
+
case POSITION:
|
505
|
+
case STATEMENT_POSITION:
|
506
|
+
case EXTERNAL_REFERENCE:
|
507
|
+
case INTERNAL_REFERENCE:
|
508
|
+
case NONE:
|
509
|
+
break;
|
510
|
+
case NUMBER_OF_MODES:
|
511
|
+
UNREACHABLE();
|
512
|
+
break;
|
513
|
+
}
|
514
|
+
}
|
515
|
+
#endif // DEBUG
|
516
|
+
|
517
|
+
|
518
|
+
// -----------------------------------------------------------------------------
|
519
|
+
// Implementation of ExternalReference
|
520
|
+
|
521
|
+
ExternalReference::ExternalReference(Builtins::CFunctionId id)
|
522
|
+
: address_(Redirect(Builtins::c_function_address(id))) {}
|
523
|
+
|
524
|
+
|
525
|
+
ExternalReference::ExternalReference(ApiFunction* fun)
|
526
|
+
: address_(Redirect(fun->address())) {}
|
527
|
+
|
528
|
+
|
529
|
+
ExternalReference::ExternalReference(Builtins::Name name)
|
530
|
+
: address_(Builtins::builtin_address(name)) {}
|
531
|
+
|
532
|
+
|
533
|
+
ExternalReference::ExternalReference(Runtime::FunctionId id)
|
534
|
+
: address_(Redirect(Runtime::FunctionForId(id)->entry)) {}
|
535
|
+
|
536
|
+
|
537
|
+
ExternalReference::ExternalReference(Runtime::Function* f)
|
538
|
+
: address_(Redirect(f->entry)) {}
|
539
|
+
|
540
|
+
|
541
|
+
ExternalReference::ExternalReference(const IC_Utility& ic_utility)
|
542
|
+
: address_(Redirect(ic_utility.address())) {}
|
543
|
+
|
544
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
545
|
+
ExternalReference::ExternalReference(const Debug_Address& debug_address)
|
546
|
+
: address_(debug_address.address()) {}
|
547
|
+
#endif
|
548
|
+
|
549
|
+
ExternalReference::ExternalReference(StatsCounter* counter)
|
550
|
+
: address_(reinterpret_cast<Address>(counter->GetInternalPointer())) {}
|
551
|
+
|
552
|
+
|
553
|
+
ExternalReference::ExternalReference(Top::AddressId id)
|
554
|
+
: address_(Top::get_address_from_id(id)) {}
|
555
|
+
|
556
|
+
|
557
|
+
ExternalReference::ExternalReference(const SCTableReference& table_ref)
|
558
|
+
: address_(table_ref.address()) {}
|
559
|
+
|
560
|
+
|
561
|
+
ExternalReference ExternalReference::perform_gc_function() {
|
562
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(Runtime::PerformGC)));
|
563
|
+
}
|
564
|
+
|
565
|
+
|
566
|
+
ExternalReference ExternalReference::builtin_passed_function() {
|
567
|
+
return ExternalReference(&Builtins::builtin_passed_function);
|
568
|
+
}
|
569
|
+
|
570
|
+
|
571
|
+
ExternalReference ExternalReference::random_positive_smi_function() {
|
572
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(V8::RandomPositiveSmi)));
|
573
|
+
}
|
574
|
+
|
575
|
+
|
576
|
+
ExternalReference ExternalReference::keyed_lookup_cache_keys() {
|
577
|
+
return ExternalReference(KeyedLookupCache::keys_address());
|
578
|
+
}
|
579
|
+
|
580
|
+
|
581
|
+
ExternalReference ExternalReference::keyed_lookup_cache_field_offsets() {
|
582
|
+
return ExternalReference(KeyedLookupCache::field_offsets_address());
|
583
|
+
}
|
584
|
+
|
585
|
+
|
586
|
+
ExternalReference ExternalReference::the_hole_value_location() {
|
587
|
+
return ExternalReference(Factory::the_hole_value().location());
|
588
|
+
}
|
589
|
+
|
590
|
+
|
591
|
+
ExternalReference ExternalReference::roots_address() {
|
592
|
+
return ExternalReference(Heap::roots_address());
|
593
|
+
}
|
594
|
+
|
595
|
+
|
596
|
+
ExternalReference ExternalReference::address_of_stack_limit() {
|
597
|
+
return ExternalReference(StackGuard::address_of_jslimit());
|
598
|
+
}
|
599
|
+
|
600
|
+
|
601
|
+
ExternalReference ExternalReference::address_of_real_stack_limit() {
|
602
|
+
return ExternalReference(StackGuard::address_of_real_jslimit());
|
603
|
+
}
|
604
|
+
|
605
|
+
|
606
|
+
ExternalReference ExternalReference::address_of_regexp_stack_limit() {
|
607
|
+
return ExternalReference(RegExpStack::limit_address());
|
608
|
+
}
|
609
|
+
|
610
|
+
|
611
|
+
ExternalReference ExternalReference::new_space_start() {
|
612
|
+
return ExternalReference(Heap::NewSpaceStart());
|
613
|
+
}
|
614
|
+
|
615
|
+
|
616
|
+
ExternalReference ExternalReference::new_space_allocation_top_address() {
|
617
|
+
return ExternalReference(Heap::NewSpaceAllocationTopAddress());
|
618
|
+
}
|
619
|
+
|
620
|
+
|
621
|
+
ExternalReference ExternalReference::heap_always_allocate_scope_depth() {
|
622
|
+
return ExternalReference(Heap::always_allocate_scope_depth_address());
|
623
|
+
}
|
624
|
+
|
625
|
+
|
626
|
+
ExternalReference ExternalReference::new_space_allocation_limit_address() {
|
627
|
+
return ExternalReference(Heap::NewSpaceAllocationLimitAddress());
|
628
|
+
}
|
629
|
+
|
630
|
+
|
631
|
+
ExternalReference ExternalReference::handle_scope_extensions_address() {
|
632
|
+
return ExternalReference(HandleScope::current_extensions_address());
|
633
|
+
}
|
634
|
+
|
635
|
+
|
636
|
+
ExternalReference ExternalReference::handle_scope_next_address() {
|
637
|
+
return ExternalReference(HandleScope::current_next_address());
|
638
|
+
}
|
639
|
+
|
640
|
+
|
641
|
+
ExternalReference ExternalReference::handle_scope_limit_address() {
|
642
|
+
return ExternalReference(HandleScope::current_limit_address());
|
643
|
+
}
|
644
|
+
|
645
|
+
|
646
|
+
ExternalReference ExternalReference::scheduled_exception_address() {
|
647
|
+
return ExternalReference(Top::scheduled_exception_address());
|
648
|
+
}
|
649
|
+
|
650
|
+
|
651
|
+
#ifdef V8_NATIVE_REGEXP
|
652
|
+
|
653
|
+
ExternalReference ExternalReference::re_check_stack_guard_state() {
|
654
|
+
Address function;
|
655
|
+
#ifdef V8_TARGET_ARCH_X64
|
656
|
+
function = FUNCTION_ADDR(RegExpMacroAssemblerX64::CheckStackGuardState);
|
657
|
+
#elif V8_TARGET_ARCH_IA32
|
658
|
+
function = FUNCTION_ADDR(RegExpMacroAssemblerIA32::CheckStackGuardState);
|
659
|
+
#elif V8_TARGET_ARCH_ARM
|
660
|
+
function = FUNCTION_ADDR(RegExpMacroAssemblerARM::CheckStackGuardState);
|
661
|
+
#else
|
662
|
+
UNREACHABLE("Unexpected architecture");
|
663
|
+
#endif
|
664
|
+
return ExternalReference(Redirect(function));
|
665
|
+
}
|
666
|
+
|
667
|
+
ExternalReference ExternalReference::re_grow_stack() {
|
668
|
+
return ExternalReference(
|
669
|
+
Redirect(FUNCTION_ADDR(NativeRegExpMacroAssembler::GrowStack)));
|
670
|
+
}
|
671
|
+
|
672
|
+
ExternalReference ExternalReference::re_case_insensitive_compare_uc16() {
|
673
|
+
return ExternalReference(Redirect(
|
674
|
+
FUNCTION_ADDR(NativeRegExpMacroAssembler::CaseInsensitiveCompareUC16)));
|
675
|
+
}
|
676
|
+
|
677
|
+
|
678
|
+
ExternalReference ExternalReference::address_of_static_offsets_vector() {
|
679
|
+
return ExternalReference(OffsetsVector::static_offsets_vector_address());
|
680
|
+
}
|
681
|
+
|
682
|
+
ExternalReference ExternalReference::address_of_regexp_stack_memory_address() {
|
683
|
+
return ExternalReference(RegExpStack::memory_address());
|
684
|
+
}
|
685
|
+
|
686
|
+
ExternalReference ExternalReference::address_of_regexp_stack_memory_size() {
|
687
|
+
return ExternalReference(RegExpStack::memory_size_address());
|
688
|
+
}
|
689
|
+
|
690
|
+
#endif
|
691
|
+
|
692
|
+
|
693
|
+
static double add_two_doubles(double x, double y) {
|
694
|
+
return x + y;
|
695
|
+
}
|
696
|
+
|
697
|
+
|
698
|
+
static double sub_two_doubles(double x, double y) {
|
699
|
+
return x - y;
|
700
|
+
}
|
701
|
+
|
702
|
+
|
703
|
+
static double mul_two_doubles(double x, double y) {
|
704
|
+
return x * y;
|
705
|
+
}
|
706
|
+
|
707
|
+
|
708
|
+
static double div_two_doubles(double x, double y) {
|
709
|
+
return x / y;
|
710
|
+
}
|
711
|
+
|
712
|
+
|
713
|
+
static double mod_two_doubles(double x, double y) {
|
714
|
+
return fmod(x, y);
|
715
|
+
}
|
716
|
+
|
717
|
+
|
718
|
+
static int native_compare_doubles(double x, double y) {
|
719
|
+
if (x == y) return 0;
|
720
|
+
return x < y ? 1 : -1;
|
721
|
+
}
|
722
|
+
|
723
|
+
|
724
|
+
ExternalReference ExternalReference::double_fp_operation(
|
725
|
+
Token::Value operation) {
|
726
|
+
typedef double BinaryFPOperation(double x, double y);
|
727
|
+
BinaryFPOperation* function = NULL;
|
728
|
+
switch (operation) {
|
729
|
+
case Token::ADD:
|
730
|
+
function = &add_two_doubles;
|
731
|
+
break;
|
732
|
+
case Token::SUB:
|
733
|
+
function = &sub_two_doubles;
|
734
|
+
break;
|
735
|
+
case Token::MUL:
|
736
|
+
function = &mul_two_doubles;
|
737
|
+
break;
|
738
|
+
case Token::DIV:
|
739
|
+
function = &div_two_doubles;
|
740
|
+
break;
|
741
|
+
case Token::MOD:
|
742
|
+
function = &mod_two_doubles;
|
743
|
+
break;
|
744
|
+
default:
|
745
|
+
UNREACHABLE();
|
746
|
+
}
|
747
|
+
// Passing true as 2nd parameter indicates that they return an fp value.
|
748
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(function), true));
|
749
|
+
}
|
750
|
+
|
751
|
+
|
752
|
+
ExternalReference ExternalReference::compare_doubles() {
|
753
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(native_compare_doubles),
|
754
|
+
false));
|
755
|
+
}
|
756
|
+
|
757
|
+
|
758
|
+
ExternalReferenceRedirector* ExternalReference::redirector_ = NULL;
|
759
|
+
|
760
|
+
|
761
|
+
#ifdef ENABLE_DEBUGGER_SUPPORT
|
762
|
+
ExternalReference ExternalReference::debug_break() {
|
763
|
+
return ExternalReference(Redirect(FUNCTION_ADDR(Debug::Break)));
|
764
|
+
}
|
765
|
+
|
766
|
+
|
767
|
+
ExternalReference ExternalReference::debug_step_in_fp_address() {
|
768
|
+
return ExternalReference(Debug::step_in_fp_addr());
|
769
|
+
}
|
770
|
+
#endif
|
771
|
+
|
772
|
+
} } // namespace v8::internal
|