From d47c4a1dad750d278bcf00b630af69c4b8bdb97f Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Wed, 13 Jun 2012 09:21:17 +0200 Subject: [PATCH] Updated V8 from git://github.com/v8/v8.git to 3e6ec7e018bbf2c63ef04b85ff688198ea204c04 Update V8 source to version 3.11.4 * Performance and stability improvements on all platforms. * Fixed native ARM build (issues 1744, 539) * Fixed several bugs in heap profiles (including issue 2078). * Throw syntax errors on illegal escape sequences. * Made handling of const more consistent when combined with 'eval' and 'with'. * Fixed V8 on MinGW-x64 (issue 2026). * Put new global var semantics behind a flag until WebKit tests are cleaned up. * Enabled inlining some V8 API functions. * Enabled MIPS cross-compilation. * Implemented clearing of CompareICs (issue 2102). * Fixed python deprecations. (issue 1391) * Fixed GCC 4.7 (C++11) compilation. (issue 2136) Change-Id: I72594bd22356391dd55e315c022d0c9f3fd5b451 Reviewed-by: Kent Hansen --- src/3rdparty/v8/ChangeLog | 190 ++ src/3rdparty/v8/DEPS | 27 + src/3rdparty/v8/Makefile | 73 +- src/3rdparty/v8/SConstruct | 17 +- src/3rdparty/v8/build/armu.gypi | 36 - src/3rdparty/v8/build/common.gypi | 269 ++- src/3rdparty/v8/build/gyp_v8 | 36 +- src/3rdparty/v8/build/mipsu.gypi | 33 - src/3rdparty/v8/build/standalone.gypi | 16 +- src/3rdparty/v8/include/v8-debug.h | 0 src/3rdparty/v8/include/v8-profiler.h | 73 +- src/3rdparty/v8/include/v8.h | 357 ++-- src/3rdparty/v8/samples/lineprocessor.cc | 6 +- src/3rdparty/v8/samples/samples.gyp | 8 +- src/3rdparty/v8/src/api.cc | 307 +--- src/3rdparty/v8/src/apiutils.h | 9 +- src/3rdparty/v8/src/arguments.h | 13 +- src/3rdparty/v8/src/arm/code-stubs-arm.cc | 114 +- src/3rdparty/v8/src/arm/cpu-arm.cc | 15 +- src/3rdparty/v8/src/arm/debug-arm.cc | 4 +- src/3rdparty/v8/src/arm/deoptimizer-arm.cc | 15 +- src/3rdparty/v8/src/arm/full-codegen-arm.cc | 347 ++-- src/3rdparty/v8/src/arm/ic-arm.cc | 49 +- src/3rdparty/v8/src/arm/lithium-arm.cc | 141 +- src/3rdparty/v8/src/arm/lithium-arm.h | 101 +- src/3rdparty/v8/src/arm/lithium-codegen-arm.cc | 345 +++- src/3rdparty/v8/src/arm/lithium-codegen-arm.h | 19 +- src/3rdparty/v8/src/arm/macro-assembler-arm.cc | 31 +- src/3rdparty/v8/src/arm/macro-assembler-arm.h | 16 +- src/3rdparty/v8/src/arm/stub-cache-arm.cc | 135 +- src/3rdparty/v8/src/array.js | 176 +- src/3rdparty/v8/src/assembler.h | 4 + src/3rdparty/v8/src/ast.cc | 228 +-- src/3rdparty/v8/src/ast.h | 12 +- src/3rdparty/v8/src/atomicops.h | 11 +- src/3rdparty/v8/src/atomicops_internals_arm_qnx.h | 117 -- src/3rdparty/v8/src/bootstrapper.cc | 20 +- src/3rdparty/v8/src/builtins.cc | 75 +- src/3rdparty/v8/src/builtins.h | 1 - src/3rdparty/v8/src/code-stubs.cc | 19 +- src/3rdparty/v8/src/code-stubs.h | 5 +- src/3rdparty/v8/src/compiler-intrinsics.h | 17 + src/3rdparty/v8/src/compiler.cc | 19 +- src/3rdparty/v8/src/compiler.h | 16 +- src/3rdparty/v8/src/contexts.cc | 35 - src/3rdparty/v8/src/contexts.h | 6 +- src/3rdparty/v8/src/d8.cc | 68 +- src/3rdparty/v8/src/d8.h | 1 + src/3rdparty/v8/src/debug-agent.cc | 6 +- src/3rdparty/v8/src/debug-debugger.js | 62 +- src/3rdparty/v8/src/debug.cc | 42 +- src/3rdparty/v8/src/debug.h | 55 +- src/3rdparty/v8/src/double.h | 6 - src/3rdparty/v8/src/elements.cc | 182 +- src/3rdparty/v8/src/elements.h | 59 +- src/3rdparty/v8/src/execution.cc | 31 +- src/3rdparty/v8/src/execution.h | 8 - src/3rdparty/v8/src/factory.cc | 46 +- src/3rdparty/v8/src/factory.h | 12 +- src/3rdparty/v8/src/flag-definitions.h | 16 +- src/3rdparty/v8/src/frames.cc | 7 +- src/3rdparty/v8/src/frames.h | 3 + src/3rdparty/v8/src/full-codegen.cc | 133 +- src/3rdparty/v8/src/full-codegen.h | 24 +- src/3rdparty/v8/src/globals.h | 9 +- src/3rdparty/v8/src/handles.cc | 6 +- src/3rdparty/v8/src/hashmap.h | 10 +- src/3rdparty/v8/src/heap-inl.h | 66 +- src/3rdparty/v8/src/heap-profiler.cc | 42 +- src/3rdparty/v8/src/heap-profiler.h | 11 +- src/3rdparty/v8/src/heap.cc | 282 ++- src/3rdparty/v8/src/heap.h | 72 +- src/3rdparty/v8/src/hydrogen-instructions.cc | 111 +- src/3rdparty/v8/src/hydrogen-instructions.h | 268 ++- src/3rdparty/v8/src/hydrogen.cc | 1231 ++++++++++--- src/3rdparty/v8/src/hydrogen.h | 68 +- src/3rdparty/v8/src/ia32/assembler-ia32.h | 3 + src/3rdparty/v8/src/ia32/builtins-ia32.cc | 11 +- src/3rdparty/v8/src/ia32/code-stubs-ia32.cc | 166 +- src/3rdparty/v8/src/ia32/codegen-ia32.cc | 18 +- src/3rdparty/v8/src/ia32/debug-ia32.cc | 39 +- src/3rdparty/v8/src/ia32/deoptimizer-ia32.cc | 15 +- src/3rdparty/v8/src/ia32/full-codegen-ia32.cc | 356 ++-- src/3rdparty/v8/src/ia32/ic-ia32.cc | 190 +- src/3rdparty/v8/src/ia32/lithium-codegen-ia32.cc | 287 +-- src/3rdparty/v8/src/ia32/lithium-codegen-ia32.h | 11 +- src/3rdparty/v8/src/ia32/lithium-ia32.cc | 73 +- src/3rdparty/v8/src/ia32/lithium-ia32.h | 77 +- src/3rdparty/v8/src/ia32/macro-assembler-ia32.cc | 2 +- src/3rdparty/v8/src/ia32/macro-assembler-ia32.h | 3 - src/3rdparty/v8/src/ia32/stub-cache-ia32.cc | 359 ++-- src/3rdparty/v8/src/ic.cc | 69 +- src/3rdparty/v8/src/ic.h | 20 +- src/3rdparty/v8/src/incremental-marking-inl.h | 26 +- src/3rdparty/v8/src/incremental-marking.cc | 56 +- src/3rdparty/v8/src/incremental-marking.h | 15 +- src/3rdparty/v8/src/interface.cc | 13 +- src/3rdparty/v8/src/interface.h | 46 +- src/3rdparty/v8/src/isolate.cc | 19 +- src/3rdparty/v8/src/isolate.h | 36 +- src/3rdparty/v8/src/jsregexp.cc | 1031 ++++------- src/3rdparty/v8/src/jsregexp.h | 456 +++-- src/3rdparty/v8/src/lazy-instance.h | 2 +- src/3rdparty/v8/src/list-inl.h | 31 +- src/3rdparty/v8/src/list.h | 11 +- src/3rdparty/v8/src/lithium-allocator.cc | 2 +- src/3rdparty/v8/src/liveedit-debugger.js | 5 + src/3rdparty/v8/src/liveedit.cc | 62 +- src/3rdparty/v8/src/macros.py | 10 + src/3rdparty/v8/src/mark-compact-inl.h | 28 +- src/3rdparty/v8/src/mark-compact.cc | 300 ++-- src/3rdparty/v8/src/mark-compact.h | 66 +- src/3rdparty/v8/src/math.js | 1 - src/3rdparty/v8/src/messages.js | 197 ++- src/3rdparty/v8/src/mips/assembler-mips.cc | 9 + src/3rdparty/v8/src/mips/assembler-mips.h | 2 + src/3rdparty/v8/src/mips/code-stubs-mips.cc | 136 +- src/3rdparty/v8/src/mips/constants-mips.h | 5 - src/3rdparty/v8/src/mips/debug-mips.cc | 4 +- src/3rdparty/v8/src/mips/deoptimizer-mips.cc | 15 +- src/3rdparty/v8/src/mips/full-codegen-mips.cc | 357 ++-- src/3rdparty/v8/src/mips/ic-mips.cc | 47 +- src/3rdparty/v8/src/mips/lithium-codegen-mips.cc | 174 +- src/3rdparty/v8/src/mips/lithium-codegen-mips.h | 8 +- src/3rdparty/v8/src/mips/lithium-mips.cc | 78 +- src/3rdparty/v8/src/mips/lithium-mips.h | 71 +- src/3rdparty/v8/src/mips/macro-assembler-mips.cc | 2 +- src/3rdparty/v8/src/mips/macro-assembler-mips.h | 5 - .../v8/src/mips/regexp-macro-assembler-mips.cc | 61 +- src/3rdparty/v8/src/mips/stub-cache-mips.cc | 148 +- src/3rdparty/v8/src/mirror-debugger.js | 88 +- src/3rdparty/v8/src/objects-debug.cc | 91 + src/3rdparty/v8/src/objects-inl.h | 206 ++- src/3rdparty/v8/src/objects-printer.cc | 35 +- src/3rdparty/v8/src/objects-visiting-inl.h | 4 +- src/3rdparty/v8/src/objects-visiting.cc | 1 + src/3rdparty/v8/src/objects-visiting.h | 17 + src/3rdparty/v8/src/objects.cc | 349 ++-- src/3rdparty/v8/src/objects.h | 201 ++- src/3rdparty/v8/src/parser.cc | 65 +- src/3rdparty/v8/src/platform-cygwin.cc | 13 +- src/3rdparty/v8/src/platform-freebsd.cc | 14 +- src/3rdparty/v8/src/platform-linux.cc | 32 +- src/3rdparty/v8/src/platform-macos.cc | 13 +- src/3rdparty/v8/src/platform-nullos.cc | 5 + src/3rdparty/v8/src/platform-openbsd.cc | 13 +- src/3rdparty/v8/src/platform-posix.cc | 35 +- src/3rdparty/v8/src/platform-qnx.cc | 1078 ----------- src/3rdparty/v8/src/platform-solaris.cc | 15 +- src/3rdparty/v8/src/platform-win32.cc | 31 +- src/3rdparty/v8/src/platform.h | 6 +- src/3rdparty/v8/src/preparser.cc | 10 +- src/3rdparty/v8/src/preparser.h | 15 +- src/3rdparty/v8/src/prettyprinter.cc | 3 - src/3rdparty/v8/src/profile-generator-inl.h | 49 + src/3rdparty/v8/src/profile-generator.cc | 1866 ++++++++++---------- src/3rdparty/v8/src/profile-generator.h | 360 ++-- src/3rdparty/v8/src/property.h | 7 - src/3rdparty/v8/src/regexp.js | 21 +- src/3rdparty/v8/src/runtime.cc | 608 ++++--- src/3rdparty/v8/src/runtime.h | 19 +- src/3rdparty/v8/src/runtime.js | 2 +- src/3rdparty/v8/src/scanner.cc | 18 +- src/3rdparty/v8/src/scanner.h | 9 +- src/3rdparty/v8/src/scopeinfo.cc | 22 +- src/3rdparty/v8/src/scopes.cc | 128 +- src/3rdparty/v8/src/scopes.h | 39 +- src/3rdparty/v8/src/serialize.cc | 2 +- src/3rdparty/v8/src/spaces-inl.h | 18 +- src/3rdparty/v8/src/spaces.cc | 19 +- src/3rdparty/v8/src/spaces.h | 13 +- src/3rdparty/v8/src/string.js | 147 +- src/3rdparty/v8/src/stub-cache.cc | 23 +- src/3rdparty/v8/src/stub-cache.h | 5 +- src/3rdparty/v8/src/utils.cc | 15 + src/3rdparty/v8/src/utils.h | 26 + src/3rdparty/v8/src/v8.cc | 3 +- src/3rdparty/v8/src/v8globals.h | 4 + src/3rdparty/v8/src/v8utils.h | 9 +- src/3rdparty/v8/src/variables.cc | 3 +- src/3rdparty/v8/src/variables.h | 6 - src/3rdparty/v8/src/version.cc | 4 +- src/3rdparty/v8/src/x64/assembler-x64.h | 3 +- src/3rdparty/v8/src/x64/code-stubs-x64.cc | 115 +- src/3rdparty/v8/src/x64/debug-x64.cc | 15 +- src/3rdparty/v8/src/x64/deoptimizer-x64.cc | 16 +- src/3rdparty/v8/src/x64/full-codegen-x64.cc | 336 ++-- src/3rdparty/v8/src/x64/ic-x64.cc | 22 +- src/3rdparty/v8/src/x64/lithium-codegen-x64.cc | 296 ++-- src/3rdparty/v8/src/x64/lithium-codegen-x64.h | 11 +- src/3rdparty/v8/src/x64/lithium-x64.cc | 78 +- src/3rdparty/v8/src/x64/lithium-x64.h | 83 +- src/3rdparty/v8/src/x64/macro-assembler-x64.cc | 16 +- src/3rdparty/v8/src/x64/macro-assembler-x64.h | 7 +- src/3rdparty/v8/src/x64/stub-cache-x64.cc | 122 +- src/3rdparty/v8/test/cctest/test-accessors.cc | 9 +- src/3rdparty/v8/test/cctest/test-alloc.cc | 36 +- src/3rdparty/v8/test/cctest/test-api.cc | 323 +++- src/3rdparty/v8/test/cctest/test-debug.cc | 64 +- src/3rdparty/v8/test/cctest/test-decls.cc | 16 +- src/3rdparty/v8/test/cctest/test-double.cc | 15 - src/3rdparty/v8/test/cctest/test-heap-profiler.cc | 436 ++++- src/3rdparty/v8/test/cctest/test-heap.cc | 106 +- src/3rdparty/v8/test/cctest/test-list.cc | 12 + src/3rdparty/v8/test/cctest/test-mark-compact.cc | 2 +- src/3rdparty/v8/test/cctest/test-regexp.cc | 75 +- src/3rdparty/v8/test/cctest/test-strings.cc | 52 + src/3rdparty/v8/test/cctest/test-weakmaps.cc | 80 +- src/3rdparty/v8/test/cctest/testcfg.py | 2 + .../v8/test/mjsunit/array-bounds-check-removal.js | 145 ++ src/3rdparty/v8/test/mjsunit/big-array-literal.js | 3 + .../v8/test/mjsunit/compiler/alloc-object-huge.js | 2 +- .../v8/test/mjsunit/compiler/inline-arguments.js | 67 + .../v8/test/mjsunit/compiler/inline-construct.js | 6 +- src/3rdparty/v8/test/mjsunit/compiler/literals.js | 24 +- .../v8/test/mjsunit/compiler/optimize-bitnot.js | 42 + .../debug-evaluate-locals-optimized-double.js | 17 +- .../mjsunit/debug-evaluate-locals-optimized.js | 17 +- .../v8/test/mjsunit/debug-function-scopes.js | 162 ++ .../test/mjsunit/debug-liveedit-stack-padding.js | 88 + .../v8/test/mjsunit/debug-scripts-request.js | 6 +- .../test/mjsunit/debug-stepin-builtin-callback.js | 157 ++ src/3rdparty/v8/test/mjsunit/declare-locally.js | 6 +- src/3rdparty/v8/test/mjsunit/error-constructors.js | 101 +- .../test/mjsunit/harmony/debug-function-scopes.js | 115 ++ .../v8/test/mjsunit/harmony/module-linking.js | 121 ++ .../v8/test/mjsunit/harmony/module-parsing.js | 10 +- .../v8/test/mjsunit/harmony/module-resolution.js | 2 +- src/3rdparty/v8/test/mjsunit/math-floor-of-div.js | 216 +++ src/3rdparty/v8/test/mjsunit/mjsunit.js | 2 +- src/3rdparty/v8/test/mjsunit/mjsunit.status | 1 + src/3rdparty/v8/test/mjsunit/regexp-capture-3.js | 218 +++ .../v8/test/mjsunit/regress/regress-1119.js | 12 +- .../v8/test/mjsunit/regress/regress-115452.js | 19 +- .../v8/test/mjsunit/regress/regress-1170.js | 64 +- .../v8/test/mjsunit/regress/regress-117409.js | 52 + .../v8/test/mjsunit/regress/regress-119609.js | 71 + .../v8/test/mjsunit/regress/regress-1217.js | 2 +- .../v8/test/mjsunit/regress/regress-123512.js | 78 + .../v8/test/mjsunit/regress/regress-123919.js | 47 + .../v8/test/mjsunit/regress/regress-124594.js | 50 + .../v8/test/mjsunit/regress/regress-125515.js | 41 + .../v8/test/mjsunit/regress/regress-126412.js | 33 + .../v8/test/mjsunit/regress/regress-128018.js | 35 + .../v8/test/mjsunit/regress/regress-128146.js | 38 + .../v8/test/mjsunit/regress/regress-1639-2.js | 5 +- .../v8/test/mjsunit/regress/regress-1639.js | 22 +- .../v8/test/mjsunit/regress/regress-2071.js | 79 + .../v8/test/mjsunit/regress/regress-2110.js | 53 + .../test/mjsunit/regress/regress-crbug-122271.js | 49 + .../test/mjsunit/regress/regress-crbug-126414.js | 32 + .../regress/regress-fast-literal-transition.js | 62 + .../test/mjsunit/regress/regress-transcendental.js | 49 + src/3rdparty/v8/test/mozilla/mozilla.status | 14 + src/3rdparty/v8/test/sputnik/sputnik.status | 40 +- src/3rdparty/v8/test/test262/README | 4 +- src/3rdparty/v8/test/test262/test262.status | 24 +- src/3rdparty/v8/test/test262/testcfg.py | 15 +- src/3rdparty/v8/tools/check-static-initializers.sh | 14 +- src/3rdparty/v8/tools/common-includes.sh | 3 +- src/3rdparty/v8/tools/grokdump.py | 114 +- src/3rdparty/v8/tools/gyp/v8.gyp | 58 +- src/3rdparty/v8/tools/js2c.py | 4 +- src/3rdparty/v8/tools/jsmin.py | 2 +- src/3rdparty/v8/tools/presubmit.py | 8 +- src/3rdparty/v8/tools/push-to-trunk.sh | 9 + src/3rdparty/v8/tools/test-wrapper-gypbuild.py | 21 +- 267 files changed, 13158 insertions(+), 9460 deletions(-) create mode 100644 src/3rdparty/v8/DEPS delete mode 100644 src/3rdparty/v8/build/armu.gypi delete mode 100644 src/3rdparty/v8/build/mipsu.gypi mode change 100644 => 100755 src/3rdparty/v8/include/v8-debug.h delete mode 100644 src/3rdparty/v8/src/atomicops_internals_arm_qnx.h delete mode 100644 src/3rdparty/v8/src/platform-qnx.cc create mode 100644 src/3rdparty/v8/test/mjsunit/array-bounds-check-removal.js create mode 100644 src/3rdparty/v8/test/mjsunit/compiler/optimize-bitnot.js create mode 100644 src/3rdparty/v8/test/mjsunit/debug-function-scopes.js create mode 100644 src/3rdparty/v8/test/mjsunit/debug-liveedit-stack-padding.js create mode 100644 src/3rdparty/v8/test/mjsunit/debug-stepin-builtin-callback.js create mode 100644 src/3rdparty/v8/test/mjsunit/harmony/debug-function-scopes.js create mode 100644 src/3rdparty/v8/test/mjsunit/harmony/module-linking.js create mode 100644 src/3rdparty/v8/test/mjsunit/math-floor-of-div.js create mode 100644 src/3rdparty/v8/test/mjsunit/regexp-capture-3.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-117409.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-119609.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-123512.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-123919.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-124594.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-125515.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-126412.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-128018.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-128146.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-2071.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-2110.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-crbug-122271.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-crbug-126414.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-fast-literal-transition.js create mode 100644 src/3rdparty/v8/test/mjsunit/regress/regress-transcendental.js diff --git a/src/3rdparty/v8/ChangeLog b/src/3rdparty/v8/ChangeLog index 25eaf56..97dac40 100644 --- a/src/3rdparty/v8/ChangeLog +++ b/src/3rdparty/v8/ChangeLog @@ -1,3 +1,193 @@ +2012-05-22: Version 3.11.4 + + Some cleanup to common.gypi. This fixes some host/target combinations + that weren't working in the Make build on Mac. + + Handle EINTR in socket functions and continue incomplete sends. + (issue 2098) + + Fixed python deprecations. (issue 1391) + + Made socket send and receive more robust and return 0 on failure. + (Chromium issue 15719) + + Fixed GCC 4.7 (C++11) compilation. (issue 2136) + + Set '-m32' option for host and target platforms + + Performance and stability improvements on all platforms. + + +2012-05-18: Version 3.11.3 + + Disable optimization for functions that have scopes that cannot be + reconstructed from the context chain. (issue 2071) + + Define V8_EXPORT to nothing for clients of v8. (Chromium issue 90078) + + Correctly check for native error objects. (Chromium issue 2138) + + Performance and stability improvements on all platforms. + + +2012-05-16: Version 3.11.2 + + Revert r11496. (Chromium issue 128146) + + Implement map collection for incremental marking. (issue 1465) + + Add toString method to CallSite (which describes a frame of the + stack trace). + + +2012-05-15: Version 3.11.1 + + Added a readbuffer function to d8 that reads a file into an ArrayBuffer. + + Fix freebsd build. (V8 issue 2126) + + Performance and stability improvements on all platforms. + + +2012-05-11: Version 3.11.0 + + Fixed compose-discard crasher from r11524 (issue 2123). + + Activated new global semantics by default. Global variables can + now shadow properties of the global object (ES5.1 erratum). + + Properly set ElementsKind of empty FAST_DOUBLE_ELEMENTS arrays when + transitioning (Chromium issue 117409). + + Made Error.prototype.name writable again, as required by the spec and + the web (Chromium issue 69187). + + Implemented map collection with incremental marking (issue 1465). + + Regexp: Fixed overflow in min-match-length calculation + (Chromium issue 126412). + + MIPS: Fixed illegal instruction use on Loongson in code for + Math.random() (issue 2115). + + Fixed crash bug in VisitChoice (Chromium issue 126272). + + Fixed unsigned-Smi check in MappedArgumentsLookup + (Chromium issue 126414). + + Fixed LiveEdit for function with no locals (issue 825). + + Fixed register clobbering in LoadIC for interceptors + (Chromium issue 125988). + + Implemented clearing of CompareICs (issue 2102). + + Performance and stability improvements on all platforms. + + +2012-05-03: Version 3.10.8 + + Enabled MIPS cross-compilation. + + Ensured reload of elements pointer in StoreFastDoubleElement stub. + (Chromium issue 125515) + + Fixed corner cases in truncation behavior when storing to + TypedArrays. (issue 2110) + + Fixed failure to properly recognize and report out-of-memory + conditions when allocating code space pages. (Chromium issue + 118625) + + Fixed idle notifications to perform a round of incremental GCs + after context disposal. (issue 2107) + + Fixed preparser for try statement. (issue 2109) + + Performance and stability improvements on all platforms. + + +2012-04-30: Version 3.10.7 + + Performance and stability improvements on all platforms. + + +2012-04-26: Version 3.10.6 + + Fixed some bugs in accessing details of the last regexp match. + + Fixed source property of empty RegExp objects. (issue 1982) + + Enabled inlining some V8 API functions. + + Performance and stability improvements on all platforms. + + +2012-04-23: Version 3.10.5 + + Put new global var semantics behind a flag until WebKit tests are + cleaned up. + + Enabled stepping into callback passed to builtins. + (Chromium issue 109564) + + Performance and stability improvements on all platforms. + + +2012-04-19: Version 3.10.4 + + Fixed issues when stressing compaction with WeakMaps. + + Fixed missing GVN flag for new-space promotion. (Chromium issue 123919) + + Simplify invocation sequence at monomorphic function invocation sites. + (issue 2079) + + Performance and stability improvements on all platforms. + + +2012-04-17: Version 3.10.3 + + Fixed several bugs in heap profiles (including issue 2078). + + Throw syntax errors on illegal escape sequences. + + Implemented rudimentary module linking (behind --harmony flag) + + Implemented ES5 erratum: Global declarations should shadow + inherited properties. + + Made handling of const more consistent when combined with 'eval' + and 'with'. + + Fixed V8 on MinGW-x64 (issue 2026). + + Performance and stability improvements on all platforms. + + +2012-04-13: Version 3.10.2 + + Fixed native ARM build (issues 1744, 539) + + Return LOOKUP variable instead of CONTEXT for non-context allocated + outer scope parameters (Chromium issue 119609). + + Fixed regular and ElementsKind transitions interfering with each other + (Chromium issue 122271). + + Improved performance of keyed loads/stores which have a HeapNumber + index (issues 1388, 1295). + + Fixed WeakMap processing for evacuation candidates (issue 2060). + + Bailout on possible direct eval calls (Chromium issue 122681). + + Do not assume that names of function expressions are context-allocated + (issue 2051). + + Performance and stability improvements on all platforms. + + 2012-04-10: Version 3.10.1 Fixed bug with arguments object in inlined functions (issue 2045). diff --git a/src/3rdparty/v8/DEPS b/src/3rdparty/v8/DEPS new file mode 100644 index 0000000..e50d1d2 --- /dev/null +++ b/src/3rdparty/v8/DEPS @@ -0,0 +1,27 @@ +# Note: The buildbots evaluate this file with CWD set to the parent +# directory and assume that the root of the checkout is in ./v8/, so +# all paths in here must match this assumption. + +deps = { + # Remember to keep the revision in sync with the Makefile. + "v8/build/gyp": + "http://gyp.googlecode.com/svn/trunk@1282", +} + +deps_os = { + "win": { + "v8/third_party/cygwin": + "http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844", + + "v8/third_party/python_26": + "http://src.chromium.org/svn/trunk/tools/third_party/python_26@89111", + } +} + +hooks = [ + { + # A change to a .gyp, .gypi, or to GYP itself should run the generator. + "pattern": ".", + "action": ["python", "v8/build/gyp_v8"], + }, +] diff --git a/src/3rdparty/v8/Makefile b/src/3rdparty/v8/Makefile index da1d688..0d825c0 100644 --- a/src/3rdparty/v8/Makefile +++ b/src/3rdparty/v8/Makefile @@ -137,6 +137,12 @@ ENVFILE = $(OUTDIR)/environment # Target definitions. "all" is the default. all: $(MODES) +# Special target for the buildbots to use. Depends on $(OUTDIR)/Makefile +# having been created before. +buildbot: + $(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \ + builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)" + # Compile targets. MODES and ARCHES are convenience targets. .SECONDEXPANSION: $(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES)) @@ -144,21 +150,21 @@ $(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES)) $(ARCHES): $(addprefix $$@.,$(MODES)) # Defines how to build a particular target (e.g. ia32.release). -$(BUILDS): $(OUTDIR)/Makefile-$$(basename $$@) - @$(MAKE) -C "$(OUTDIR)" -f Makefile-$(basename $@) \ +$(BUILDS): $(OUTDIR)/Makefile.$$(basename $$@) + @$(MAKE) -C "$(OUTDIR)" -f Makefile.$(basename $@) \ CXX="$(CXX)" LINK="$(LINK)" \ BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ python -c "print raw_input().capitalize()") \ builddir="$(shell pwd)/$(OUTDIR)/$@" -native: $(OUTDIR)/Makefile-native - @$(MAKE) -C "$(OUTDIR)" -f Makefile-native \ +native: $(OUTDIR)/Makefile.native + @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \ builddir="$(shell pwd)/$(OUTDIR)/$@" # TODO(jkummerow): add "android.debug" when we need it. -android android.release: $(OUTDIR)/Makefile-android - @$(MAKE) -C "$(OUTDIR)" -f Makefile-android \ +android android.release: $(OUTDIR)/Makefile.android + @$(MAKE) -C "$(OUTDIR)" -f Makefile.android \ CXX="$(ANDROID_TOOL_PREFIX)-g++" \ AR="$(ANDROID_TOOL_PREFIX)-ar" \ RANLIB="$(ANDROID_TOOL_PREFIX)-ranlib" \ @@ -191,61 +197,41 @@ native.check: native --arch-and-mode=. $(TESTFLAGS) # Clean targets. You can clean each architecture individually, or everything. -$(addsuffix .clean,$(ARCHES)): - rm -f $(OUTDIR)/Makefile-$(basename $@) +$(addsuffix .clean,$(ARCHES)) android.clean: + rm -f $(OUTDIR)/Makefile.$(basename $@) rm -rf $(OUTDIR)/$(basename $@).release rm -rf $(OUTDIR)/$(basename $@).debug - find $(OUTDIR) -regex '.*\(host\|target\)-$(basename $@)\.mk' -delete + find $(OUTDIR) -regex '.*\(host\|target\).$(basename $@)\.mk' -delete native.clean: - rm -f $(OUTDIR)/Makefile-native + rm -f $(OUTDIR)/Makefile.native rm -rf $(OUTDIR)/native - find $(OUTDIR) -regex '.*\(host\|target\)-native\.mk' -delete - -android.clean: - rm -f $(OUTDIR)/Makefile-android - rm -rf $(OUTDIR)/android.release - find $(OUTDIR) -regex '.*\(host\|target\)-android\.mk' -delete + find $(OUTDIR) -regex '.*\(host\|target\).native\.mk' -delete -clean: $(addsuffix .clean,$(ARCHES)) native.clean +clean: $(addsuffix .clean,$(ARCHES)) native.clean android.clean # GYP file generation targets. -$(OUTDIR)/Makefile-ia32: $(GYPFILES) $(ENVFILE) - GYP_GENERATORS=make \ - build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. -Dtarget_arch=ia32 \ - -S-ia32 $(GYPFLAGS) - -$(OUTDIR)/Makefile-x64: $(GYPFILES) $(ENVFILE) - GYP_GENERATORS=make \ - build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. -Dtarget_arch=x64 \ - -S-x64 $(GYPFLAGS) - -$(OUTDIR)/Makefile-arm: $(GYPFILES) $(ENVFILE) build/armu.gypi - GYP_GENERATORS=make \ - build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. -Ibuild/armu.gypi \ - -S-arm $(GYPFLAGS) - -$(OUTDIR)/Makefile-mips: $(GYPFILES) $(ENVFILE) build/mipsu.gypi +MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES)) +$(MAKEFILES): $(GYPFILES) $(ENVFILE) GYP_GENERATORS=make \ build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. -Ibuild/mipsu.gypi \ - -S-mips $(GYPFLAGS) + -Ibuild/standalone.gypi --depth=. \ + -Dv8_target_arch=$(subst .,,$(suffix $@)) \ + -S.$(subst .,,$(suffix $@)) $(GYPFLAGS) -$(OUTDIR)/Makefile-native: $(GYPFILES) $(ENVFILE) +$(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) GYP_GENERATORS=make \ build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ - -Ibuild/standalone.gypi --depth=. -S-native $(GYPFLAGS) + -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) -$(OUTDIR)/Makefile-android: $(GYPFILES) $(ENVFILE) build/android.gypi \ +$(OUTDIR)/Makefile.android: $(GYPFILES) $(ENVFILE) build/android.gypi \ must-set-ANDROID_NDK_ROOT GYP_GENERATORS=make \ CC="${ANDROID_TOOL_PREFIX}-gcc" \ + CXX="${ANDROID_TOOL_PREFIX}-g++" \ build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ -Ibuild/standalone.gypi --depth=. -Ibuild/android.gypi \ - -S-android $(GYPFLAGS) + -S.android $(GYPFLAGS) must-set-ANDROID_NDK_ROOT: ifndef ANDROID_NDK_ROOT @@ -261,7 +247,8 @@ $(ENVFILE): $(ENVFILE).new # Stores current GYPFLAGS in a file. $(ENVFILE).new: - @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new; + @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new; \ + echo "CXX=$(CXX)" >> $(ENVFILE).new # Dependencies. dependencies: diff --git a/src/3rdparty/v8/SConstruct b/src/3rdparty/v8/SConstruct index 34d0efc..ebce7ff 100644 --- a/src/3rdparty/v8/SConstruct +++ b/src/3rdparty/v8/SConstruct @@ -101,14 +101,14 @@ LIBRARY_FLAGS = { 'os:linux': { 'CCFLAGS': ['-ansi'] + GCC_EXTRA_CCFLAGS, 'library:shared': { - 'CPPDEFINES': ['V8_SHARED'], + 'CPPDEFINES': ['V8_SHARED', 'BUILDING_V8_SHARED'], 'LIBS': ['pthread'] } }, 'os:macos': { 'CCFLAGS': ['-ansi', '-mmacosx-version-min=10.4'], 'library:shared': { - 'CPPDEFINES': ['V8_SHARED'] + 'CPPDEFINES': ['V8_SHARED', 'BUILDING_V8_SHARED'], } }, 'os:freebsd': { @@ -1601,4 +1601,17 @@ except: pass +def WarnAboutDeprecation(): + print """ +####################################################### +# WARNING: Building V8 with SCons is deprecated and # +# will not work much longer. Please switch to using # +# the GYP-based build now. Instructions are at # +# http://code.google.com/p/v8/wiki/BuildingWithGYP. # +####################################################### + """ + +WarnAboutDeprecation() +import atexit +atexit.register(WarnAboutDeprecation) Build() diff --git a/src/3rdparty/v8/build/armu.gypi b/src/3rdparty/v8/build/armu.gypi deleted file mode 100644 index d15b8ab..0000000 --- a/src/3rdparty/v8/build/armu.gypi +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 2011 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -{ - 'variables': { - 'target_arch': 'ia32', - 'v8_target_arch': 'arm', - 'armv7': 1, - 'arm_neon': 0, - 'arm_fpu': 'vfpv3', - }, -} diff --git a/src/3rdparty/v8/build/common.gypi b/src/3rdparty/v8/build/common.gypi index 3016d0c..1726d2a 100644 --- a/src/3rdparty/v8/build/common.gypi +++ b/src/3rdparty/v8/build/common.gypi @@ -110,148 +110,117 @@ ['v8_enable_gdbjit==1', { 'defines': ['ENABLE_GDB_JIT_INTERFACE',], }], - ['OS!="mac"', { - # TODO(mark): The OS!="mac" conditional is temporary. It can be - # removed once the Mac Chromium build stops setting target_arch to - # ia32 and instead sets it to mac. Other checks in this file for - # OS=="mac" can be removed at that time as well. This can be cleaned - # up once http://crbug.com/44205 is fixed. + ['v8_target_arch=="arm"', { + 'defines': [ + 'V8_TARGET_ARCH_ARM', + ], 'conditions': [ - ['v8_target_arch=="arm"', { + [ 'v8_can_use_unaligned_accesses=="true"', { 'defines': [ - 'V8_TARGET_ARCH_ARM', + 'CAN_USE_UNALIGNED_ACCESSES=1', ], - 'conditions': [ - [ 'v8_can_use_unaligned_accesses=="true"', { - 'defines': [ - 'CAN_USE_UNALIGNED_ACCESSES=1', - ], - }], - [ 'v8_can_use_unaligned_accesses=="false"', { - 'defines': [ - 'CAN_USE_UNALIGNED_ACCESSES=0', - ], - }], - [ 'v8_can_use_vfp_instructions=="true"', { - 'defines': [ - 'CAN_USE_VFP_INSTRUCTIONS', - ], - }], - [ 'v8_use_arm_eabi_hardfloat=="true"', { - 'defines': [ - 'USE_EABI_HARDFLOAT=1', - 'CAN_USE_VFP_INSTRUCTIONS', - ], - 'target_conditions': [ - ['_toolset=="target"', { - 'cflags': ['-mfloat-abi=hard',], - }], - ], - }, { - 'defines': [ - 'USE_EABI_HARDFLOAT=0', - ], - }], - # The ARM assembler assumes the host is 32 bits, - # so force building 32-bit host tools. - ['host_arch=="x64" or OS=="android"', { - 'target_conditions': [ - ['_toolset=="host"', { - 'cflags': ['-m32'], - 'ldflags': ['-m32'], - }], - ], - }], + }], + [ 'v8_can_use_unaligned_accesses=="false"', { + 'defines': [ + 'CAN_USE_UNALIGNED_ACCESSES=0', ], }], - ['v8_target_arch=="ia32"', { + [ 'v8_can_use_vfp_instructions=="true"', { 'defines': [ - 'V8_TARGET_ARCH_IA32', + 'CAN_USE_VFP_INSTRUCTIONS', ], }], - ['v8_target_arch=="mips"', { + [ 'v8_use_arm_eabi_hardfloat=="true"', { 'defines': [ - 'V8_TARGET_ARCH_MIPS', + 'USE_EABI_HARDFLOAT=1', + 'CAN_USE_VFP_INSTRUCTIONS', ], - 'conditions': [ - [ 'target_arch=="mips"', { - 'target_conditions': [ - ['_toolset=="target"', { - 'cflags': ['-EL'], - 'ldflags': ['-EL'], - 'conditions': [ - [ 'v8_use_mips_abi_hardfloat=="true"', { - 'cflags': ['-mhard-float'], - 'ldflags': ['-mhard-float'], - }, { - 'cflags': ['-msoft-float'], - 'ldflags': ['-msoft-float'], - }], - ['mips_arch_variant=="mips32r2"', { - 'cflags': ['-mips32r2', '-Wa,-mips32r2'], - }], - ['mips_arch_variant=="loongson"', { - 'cflags': ['-mips3', '-Wa,-mips3'], - }, { - 'cflags': ['-mips32', '-Wa,-mips32'], - }], - ], - }], - ], - }], - [ 'v8_can_use_fpu_instructions=="true"', { - 'defines': [ - 'CAN_USE_FPU_INSTRUCTIONS', - ], - }], - [ 'v8_use_mips_abi_hardfloat=="true"', { - 'defines': [ - '__mips_hard_float=1', - 'CAN_USE_FPU_INSTRUCTIONS', - ], - }, { - 'defines': [ - '__mips_soft_float=1' - ], - }], - ['mips_arch_variant=="mips32r2"', { - 'defines': ['_MIPS_ARCH_MIPS32R2',], - }], - ['mips_arch_variant=="loongson"', { - 'defines': ['_MIPS_ARCH_LOONGSON',], + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': ['-mfloat-abi=hard',], }], - # The MIPS assembler assumes the host is 32 bits, - # so force building 32-bit host tools. - ['host_arch=="x64"', { - 'target_conditions': [ - ['_toolset=="host"', { - 'cflags': ['-m32'], - 'ldflags': ['-m32'], + ], + }, { + 'defines': [ + 'USE_EABI_HARDFLOAT=0', + ], + }], + ], + }], # v8_target_arch=="arm" + ['v8_target_arch=="ia32"', { + 'defines': [ + 'V8_TARGET_ARCH_IA32', + ], + }], # v8_target_arch=="ia32" + ['v8_target_arch=="mips"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS', + ], + 'variables': { + 'mipscompiler': '&1 | grep -q "^Target: mips-" && echo "yes" || echo "no")', + }, + 'conditions': [ + ['mipscompiler=="yes"', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': ['-EL'], + 'ldflags': ['-EL'], + 'conditions': [ + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'cflags': ['-mhard-float'], + 'ldflags': ['-mhard-float'], + }, { + 'cflags': ['-msoft-float'], + 'ldflags': ['-msoft-float'], + }], + ['mips_arch_variant=="mips32r2"', { + 'cflags': ['-mips32r2', '-Wa,-mips32r2'], + }], + ['mips_arch_variant=="loongson"', { + 'cflags': ['-mips3', '-Wa,-mips3'], + }, { + 'cflags': ['-mips32', '-Wa,-mips32'], }], ], }], ], }], - ['v8_target_arch=="x64"', { + [ 'v8_can_use_fpu_instructions=="true"', { 'defines': [ - 'V8_TARGET_ARCH_X64', + 'CAN_USE_FPU_INSTRUCTIONS', ], }], - ], - }, { # Section for OS=="mac". - 'conditions': [ - ['target_arch=="ia32"', { - 'xcode_settings': { - 'ARCHS': ['i386'], - } + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'defines': [ + '__mips_hard_float=1', + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }, { + 'defines': [ + '__mips_soft_float=1' + ], }], - ['target_arch=="x64"', { - 'xcode_settings': { - 'ARCHS': ['x86_64'], - } + ['mips_arch_variant=="mips32r2"', { + 'defines': ['_MIPS_ARCH_MIPS32R2',], + }], + ['mips_arch_variant=="loongson"', { + 'defines': ['_MIPS_ARCH_LOONGSON',], }], ], - }], + }], # v8_target_arch=="mips" + ['v8_target_arch=="x64"', { + 'defines': [ + 'V8_TARGET_ARCH_X64', + ], + 'xcode_settings': { + 'ARCHS': [ 'x86_64' ], + }, + 'msvs_settings': { + 'VCLinkerTool': { + 'StackReserveSize': '2097152', + }, + }, + }], # v8_target_arch=="x64" ['v8_use_liveobjectlist=="true"', { 'defines': [ 'ENABLE_DEBUGGER_SUPPORT', @@ -280,10 +249,6 @@ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ or OS=="netbsd"', { 'conditions': [ - [ 'target_arch=="ia32"', { - 'cflags': [ '-m32' ], - 'ldflags': [ '-m32' ], - }], [ 'v8_no_strict_aliasing==1', { 'cflags': [ '-fno-strict-aliasing' ], }], @@ -292,6 +257,41 @@ ['OS=="solaris"', { 'defines': [ '__C99FEATURES__=1' ], # isinf() etc. }], + ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ + or OS=="netbsd" or OS=="mac" or OS=="android") and \ + (v8_target_arch=="arm" or v8_target_arch=="ia32" or \ + v8_target_arch=="mips")', { + # Check whether the host compiler and target compiler support the + # '-m32' option and set it if so. + 'target_conditions': [ + ['_toolset=="host"', { + 'variables': { + 'm32flag': ' /dev/null 2>&1) && echo -n "-m32" || true)', + }, + 'cflags': [ '<(m32flag)' ], + 'ldflags': [ '<(m32flag)' ], + 'xcode_settings': { + 'ARCHS': [ 'i386' ], + }, + }], + ['_toolset=="target"', { + 'variables': { + 'm32flag': ' /dev/null 2>&1) && echo -n "-m32" || true)', + }, + 'cflags': [ '<(m32flag)' ], + 'ldflags': [ '<(m32flag)' ], + 'xcode_settings': { + 'ARCHS': [ 'i386' ], + }, + }], + ], + }], + ['OS=="freebsd" or OS=="openbsd"', { + 'cflags': [ '-I/usr/local/include' ], + }], + ['OS=="netbsd"', { + 'cflags': [ '-I/usr/pkg/include' ], + }], ], # conditions 'configurations': { 'Debug': { @@ -315,19 +315,9 @@ }, 'VCLinkerTool': { 'LinkIncremental': '2', - # For future reference, the stack size needs to be increased - # when building for Windows 64-bit, otherwise some test cases - # can cause stack overflow. - # 'StackReserveSize': '297152', }, }, 'conditions': [ - ['OS=="freebsd" or OS=="openbsd"', { - 'cflags': [ '-I/usr/local/include' ], - }], - ['OS=="netbsd"', { - 'cflags': [ '-I/usr/pkg/include' ], - }], ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', '-Wnon-virtual-dtor', '-Woverloaded-virtual' ], @@ -357,12 +347,6 @@ }], ], }], - ['OS=="freebsd" or OS=="openbsd"', { - 'cflags': [ '-I/usr/local/include' ], - }], - ['OS=="netbsd"', { - 'cflags': [ '-I/usr/pkg/include' ], - }], ['OS=="mac"', { 'xcode_settings': { 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 @@ -400,12 +384,7 @@ 'VCLinkerTool': { 'LinkIncremental': '1', 'OptimizeReferences': '2', - 'OptimizeForWindows98': '1', 'EnableCOMDATFolding': '2', - # For future reference, the stack size needs to be - # increased when building for Windows 64-bit, otherwise - # some test cases can cause stack overflow. - # 'StackReserveSize': '297152', }, }, }], # OS=="win" diff --git a/src/3rdparty/v8/build/gyp_v8 b/src/3rdparty/v8/build/gyp_v8 index 0fe3403..345f777 100755 --- a/src/3rdparty/v8/build/gyp_v8 +++ b/src/3rdparty/v8/build/gyp_v8 @@ -38,6 +38,11 @@ import sys script_dir = os.path.dirname(__file__) v8_root = os.path.normpath(os.path.join(script_dir, os.pardir)) +if __name__ == '__main__': + os.chdir(v8_root) + script_dir = os.path.dirname(__file__) + v8_root = '.' + sys.path.insert(0, os.path.join(v8_root, 'tools')) import utils @@ -93,7 +98,7 @@ def additional_include_files(args=[]): result.append(path) # Always include standalone.gypi - AddInclude(os.path.join(script_dir, 'standalone.gypi')) + AddInclude(os.path.join(v8_root, 'build', 'standalone.gypi')) # Optionally add supplemental .gypi files if present. supplements = glob.glob(os.path.join(v8_root, '*', 'supplement.gypi')) @@ -135,7 +140,10 @@ if __name__ == '__main__': # path separators even on Windows due to the use of shlex.split(). args.extend(shlex.split(gyp_file)) else: - args.append(os.path.join(script_dir, 'all.gyp')) + # Note that this must not start with "./" or things break. + # So we rely on having done os.chdir(v8_root) above and use the + # relative path. + args.append(os.path.join('build', 'all.gyp')) args.extend(['-I' + i for i in additional_include_files(args)]) @@ -156,28 +164,6 @@ if __name__ == '__main__': # Generate for the architectures supported on the given platform. gyp_args = list(args) - target_arch = None - for p in gyp_args: - if p.find('-Dtarget_arch=') == 0: - target_arch = p - if target_arch is None: - gyp_args.append('-Dtarget_arch=ia32') if utils.GuessOS() == 'linux': - gyp_args.append('-S-ia32') + gyp_args.append('--generator-output=out') run_gyp(gyp_args) - - if utils.GuessOS() == 'linux': - gyp_args = list(args) - gyp_args.append('-Dtarget_arch=x64') - gyp_args.append('-S-x64') - run_gyp(gyp_args) - - gyp_args = list(args) - gyp_args.append('-I' + v8_root + '/build/armu.gypi') - gyp_args.append('-S-armu') - run_gyp(gyp_args) - - gyp_args = list(args) - gyp_args.append('-I' + v8_root + '/build/mipsu.gypi') - gyp_args.append('-S-mipsu') - run_gyp(gyp_args) diff --git a/src/3rdparty/v8/build/mipsu.gypi b/src/3rdparty/v8/build/mipsu.gypi deleted file mode 100644 index 637ff84..0000000 --- a/src/3rdparty/v8/build/mipsu.gypi +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -{ - 'variables': { - 'target_arch': 'ia32', - 'v8_target_arch': 'mips', - }, -} diff --git a/src/3rdparty/v8/build/standalone.gypi b/src/3rdparty/v8/build/standalone.gypi index e9b0565..ebdf557 100644 --- a/src/3rdparty/v8/build/standalone.gypi +++ b/src/3rdparty/v8/build/standalone.gypi @@ -37,8 +37,9 @@ 'variables': { 'variables': { 'conditions': [ - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { - # This handles the Linux platforms we generally deal with. + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or \ + OS=="netbsd" or OS=="mac"', { + # This handles the Unix platforms we generally deal with. # Anything else gets passed through, which probably won't work # very well; such hosts should pass an explicit target_arch # to gyp. @@ -46,7 +47,8 @@ ' value); + + /** + * A constant for invalid SnapshotObjectId. GetSnapshotObjectId will return + * it in case heap profiler cannot find id for the object passed as + * parameter. HeapSnapshot::GetNodeById will always return NULL for such id. + */ + static const SnapshotObjectId kUnknownObjectId = 0; + + /** * Takes a heap snapshot and returns it. Title may be an empty string. * See HeapSnapshot::Type for types description. */ @@ -418,6 +435,33 @@ class V8EXPORT HeapProfiler { ActivityControl* control = NULL); /** + * Starts tracking of heap objects population statistics. After calling + * this method, all heap objects relocations done by the garbage collector + * are being registered. + */ + static void StartHeapObjectsTracking(); + + /** + * Adds a new time interval entry to the aggregated statistics array. The + * time interval entry contains information on the current heap objects + * population size. The method also updates aggregated statistics and + * reports updates for all previous time intervals via the OutputStream + * object. Updates on each time interval are provided as a stream of the + * HeapStatsUpdate structure instances. + * + * StartHeapObjectsTracking must be called before the first call to this + * method. + */ + static void PushHeapObjectsStats(OutputStream* stream); + + /** + * Stops tracking of heap objects population statistics, cleans up all + * collected data. StartHeapObjectsTracking must be called again prior to + * calling PushHeapObjectsStats next time. + */ + static void StopHeapObjectsTracking(); + + /** * Deletes all snapshots taken. All previously returned pointers to * snapshots and their contents become invalid after this call. */ @@ -514,6 +558,19 @@ class V8EXPORT RetainedObjectInfo { // NOLINT }; +/** + * A struct for exporting HeapStats data from V8, using "push" model. + * See HeapProfiler::PushHeapObjectsStats. + */ +struct HeapStatsUpdate { + HeapStatsUpdate(uint32_t index, uint32_t count, uint32_t size) + : index(index), count(count), size(size) { } + uint32_t index; // Index of the time interval that was changed. + uint32_t count; // New value of count field for the interval with this index. + uint32_t size; // New value of size field for the interval with this index. +}; + + } // namespace v8 diff --git a/src/3rdparty/v8/include/v8.h b/src/3rdparty/v8/include/v8.h index 0d371c9..d31ef54 100644 --- a/src/3rdparty/v8/include/v8.h +++ b/src/3rdparty/v8/include/v8.h @@ -1,4 +1,4 @@ -// Copyright 2011 the V8 project authors. All rights reserved. +// Copyright 2012 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -62,11 +62,13 @@ #else // _WIN32 -// Setup for Linux shared library export. There is no need to distinguish -// between building or using the V8 shared library, but we should not -// export symbols when we are building a static library. +// Setup for Linux shared library export. #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(V8_SHARED) +#ifdef BUILDING_V8_SHARED #define V8EXPORT __attribute__ ((visibility("default"))) +#else +#define V8EXPORT +#endif #else // defined(__GNUC__) && (__GNUC__ >= 4) #define V8EXPORT #endif // defined(__GNUC__) && (__GNUC__ >= 4) @@ -107,6 +109,7 @@ class Data; class AccessorInfo; class StackTrace; class StackFrame; +class Isolate; namespace internal { @@ -587,12 +590,6 @@ class ScriptOrigin { */ class V8EXPORT Script { public: - enum CompileFlags { - Default = 0x00, - QmlMode = 0x01, - NativeMode = 0x02 - }; - /** * Compiles the specified script (context-independent). * @@ -611,8 +608,7 @@ class V8EXPORT Script { static Local