diff --git a/deps/v8/.DEPS.git b/deps/v8/.DEPS.git deleted file mode 100644 index 8f9da45bb6..0000000000 --- a/deps/v8/.DEPS.git +++ /dev/null @@ -1,113 +0,0 @@ -# DO NOT EDIT EXCEPT FOR LOCAL TESTING. -# THIS IS A GENERATED FILE. -# ALL MANUAL CHANGES WILL BE OVERWRITTEN. -# SEE http://code.google.com/p/chromium/wiki/UsingGit -# FOR HOW TO ROLL DEPS -vars = { - 'webkit_url': - 'https://chromium.googlesource.com/chromium/blink.git', - 'git_url': - 'https://chromium.googlesource.com' -} - -deps = { - 'v8/build/gyp': - Var('git_url') + '/external/gyp.git@a3e2a5caf24a1e0a45401e09ad131210bf16b852', - 'v8/buildtools': - Var('git_url') + '/chromium/buildtools.git@fb782d4369d5ae04f17a2fceef7de5a63e50f07b', - 'v8/testing/gmock': - Var('git_url') + '/external/googlemock.git@896ba0e03f520fb9b6ed582bde2bd00847e3c3f2', - 'v8/testing/gtest': - Var('git_url') + '/external/googletest.git@4650552ff637bb44ecf7784060091cbed3252211', - 'v8/third_party/icu': - Var('git_url') + '/chromium/deps/icu52.git@26d8859357ac0bfb86b939bf21c087b8eae22494', -} - -deps_os = { - 'android': - { - 'v8/third_party/android_tools': - Var('git_url') + '/android_tools.git@31869996507de16812bb53a3d0aaa15cd6194c16', - }, - 'win': - { - 'v8/third_party/cygwin': - Var('git_url') + '/chromium/deps/cygwin.git@06a117a90c15174436bfa20ceebbfdf43b7eb820', - 'v8/third_party/python_26': - Var('git_url') + '/chromium/deps/python_26.git@67d19f904470effe3122d27101cc5a8195abd157', - }, -} - -include_rules = [ - '+include', - '+unicode', - '+third_party/fdlibm' -] - -skip_child_includes = [ - 'build', - 'third_party' -] - -hooks = [ - { - 'action': - [ - 'download_from_google_storage', - '--no_resume', - '--platform=win32', - '--no_auth', - '--bucket', - 'chromium-clang-format', - '-s', - 'v8/buildtools/win/clang-format.exe.sha1' -], - 'pattern': - '.', - 'name': - 'clang_format_win' -}, - { - 'action': - [ - 'download_from_google_storage', - '--no_resume', - '--platform=darwin', - '--no_auth', - '--bucket', - 'chromium-clang-format', - '-s', - 'v8/buildtools/mac/clang-format.sha1' -], - 'pattern': - '.', - 'name': - 'clang_format_mac' -}, - { - 'action': - [ - 'download_from_google_storage', - '--no_resume', - '--platform=linux*', - '--no_auth', - '--bucket', - 'chromium-clang-format', - '-s', - 'v8/buildtools/linux64/clang-format.sha1' -], - 'pattern': - '.', - 'name': - 'clang_format_linux' -}, - { - 'action': - [ - 'python', - 'v8/build/gyp_v8' -], - 'pattern': - '.' -} -] diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index d0407f37f1..f720bee948 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -66,8 +66,11 @@ shell_g /test/test262-es6/tc39-test262-* /testing/gmock /testing/gtest +/third_party /third_party/icu /third_party/llvm +/third_party/llvm-build +/tools/clang /tools/jsfunfuzz /tools/jsfunfuzz.zip /tools/oom_dump/oom_dump diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index 1758ee9e1f..6534eea859 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -2,9 +2,12 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +# Because standalone V8 builds are not supported, assume this is part of a +# Chromium build. +import("//build/module_args/v8.gni") + # TODO(jochen): These will need to be user-settable to support standalone V8 # builds. -v8_compress_startup_data = "off" v8_deprecation_warnings = false v8_enable_disassembler = false v8_enable_gdbjit = false @@ -15,7 +18,6 @@ v8_interpreted_regexp = false v8_object_print = false v8_postmortem_support = false v8_use_snapshot = true -v8_use_external_startup_data = false v8_enable_extra_checks = is_debug v8_target_arch = cpu_arch v8_random_seed = "314159265" @@ -95,11 +97,6 @@ config("features") { "V8_I18N_SUPPORT", ] } - if (v8_compress_startup_data == "bz2") { - defines += [ - "COMPRESS_STARTUP_DATA_BZ2", - ] - } if (v8_enable_extra_checks == true) { defines += [ "ENABLE_EXTRA_CHECKS", @@ -216,7 +213,6 @@ action("js2c") { args = [ rebase_path("$target_gen_dir/libraries.cc", root_build_dir), "CORE", - v8_compress_startup_data ] + rebase_path(sources, root_build_dir) if (v8_use_external_startup_data) { @@ -243,9 +239,12 @@ action("js2c_experimental") { "src/generator.js", "src/harmony-string.js", "src/harmony-array.js", + "src/harmony-array-includes.js", "src/harmony-typedarray.js", "src/harmony-classes.js", - "src/harmony-tostring.js" + "src/harmony-tostring.js", + "src/harmony-templates.js", + "src/harmony-regexp.js" ] outputs = [ @@ -255,7 +254,6 @@ action("js2c_experimental") { args = [ rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir), "EXPERIMENTAL", - v8_compress_startup_data ] + rebase_path(sources, root_build_dir) if (v8_use_external_startup_data) { @@ -282,7 +280,7 @@ if (v8_use_external_startup_data) { ] outputs = [ - "$root_gen_dir/natives_blob.bin" + "$root_out_dir/natives_blob.bin" ] script = "tools/concatenate-files.py" @@ -335,10 +333,10 @@ action("run_mksnapshot") { } if (v8_use_external_startup_data) { - outputs += [ "$root_gen_dir/snapshot_blob.bin" ] + outputs += [ "$root_out_dir/snapshot_blob.bin" ] args += [ "--startup_blob", - rebase_path("$root_gen_dir/snapshot_blob.bin", root_build_dir) + rebase_path("$root_out_dir/snapshot_blob.bin", root_build_dir) ] } } @@ -361,7 +359,6 @@ source_set("v8_nosnapshot") { "$target_gen_dir/libraries.cc", "$target_gen_dir/experimental-libraries.cc", "src/snapshot-empty.cc", - "src/snapshot-common.cc", ] configs -= [ "//build/config/compiler:chromium_code" ] @@ -383,7 +380,6 @@ source_set("v8_snapshot") { "$target_gen_dir/libraries.cc", "$target_gen_dir/experimental-libraries.cc", "$target_gen_dir/snapshot.cc", - "src/snapshot-common.cc", ] configs -= [ "//build/config/compiler:chromium_code" ] @@ -436,6 +432,8 @@ source_set("v8_base") { "src/assert-scope.cc", "src/ast-numbering.cc", "src/ast-numbering.h", + "src/ast-this-access-visitor.cc", + "src/ast-this-access-visitor.h", "src/ast-value-factory.cc", "src/ast-value-factory.h", "src/ast.cc", @@ -491,22 +489,22 @@ source_set("v8_base") { "src/compiler/code-generator-impl.h", "src/compiler/code-generator.cc", "src/compiler/code-generator.h", + "src/compiler/common-node-cache.cc", "src/compiler/common-node-cache.h", + "src/compiler/common-operator-reducer.cc", + "src/compiler/common-operator-reducer.h", "src/compiler/common-operator.cc", "src/compiler/common-operator.h", "src/compiler/control-builders.cc", "src/compiler/control-builders.h", + "src/compiler/control-equivalence.h", "src/compiler/control-reducer.cc", "src/compiler/control-reducer.h", "src/compiler/diamond.h", "src/compiler/frame.h", "src/compiler/gap-resolver.cc", "src/compiler/gap-resolver.h", - "src/compiler/generic-algorithm-inl.h", "src/compiler/generic-algorithm.h", - "src/compiler/generic-graph.h", - "src/compiler/generic-node-inl.h", - "src/compiler/generic-node.h", "src/compiler/graph-builder.cc", "src/compiler/graph-builder.h", "src/compiler/graph-inl.h", @@ -540,15 +538,23 @@ source_set("v8_base") { "src/compiler/js-operator.h", "src/compiler/js-typed-lowering.cc", "src/compiler/js-typed-lowering.h", + "src/compiler/jump-threading.cc", + "src/compiler/jump-threading.h", "src/compiler/linkage-impl.h", "src/compiler/linkage.cc", "src/compiler/linkage.h", + "src/compiler/load-elimination.cc", + "src/compiler/load-elimination.h", + "src/compiler/loop-analysis.cc", + "src/compiler/loop-analysis.h", "src/compiler/machine-operator-reducer.cc", "src/compiler/machine-operator-reducer.h", "src/compiler/machine-operator.cc", "src/compiler/machine-operator.h", "src/compiler/machine-type.cc", "src/compiler/machine-type.h", + "src/compiler/move-optimizer.cc", + "src/compiler/move-optimizer.h", "src/compiler/node-aux-data-inl.h", "src/compiler/node-aux-data.h", "src/compiler/node-cache.cc", @@ -558,12 +564,12 @@ source_set("v8_base") { "src/compiler/node-properties.h", "src/compiler/node.cc", "src/compiler/node.h", + "src/compiler/opcodes.cc", "src/compiler/opcodes.h", - "src/compiler/operator-properties-inl.h", + "src/compiler/operator-properties.cc", "src/compiler/operator-properties.h", "src/compiler/operator.cc", "src/compiler/operator.h", - "src/compiler/phi-reducer.h", "src/compiler/pipeline.cc", "src/compiler/pipeline.h", "src/compiler/pipeline-statistics.cc", @@ -572,6 +578,8 @@ source_set("v8_base") { "src/compiler/raw-machine-assembler.h", "src/compiler/register-allocator.cc", "src/compiler/register-allocator.h", + "src/compiler/register-allocator-verifier.cc", + "src/compiler/register-allocator-verifier.h", "src/compiler/register-configuration.cc", "src/compiler/register-configuration.h", "src/compiler/representation-change.h", @@ -780,6 +788,9 @@ source_set("v8_base") { "src/jsregexp-inl.h", "src/jsregexp.cc", "src/jsregexp.h", + "src/layout-descriptor-inl.h", + "src/layout-descriptor.cc", + "src/layout-descriptor.h", "src/list-inl.h", "src/list.h", "src/lithium-allocator-inl.h", @@ -873,7 +884,6 @@ source_set("v8_base") { "src/runtime/runtime-utils.h", "src/runtime/runtime.cc", "src/runtime/runtime.h", - "src/runtime/string-builder.h", "src/safepoint-table.cc", "src/safepoint-table.h", "src/sampler.cc", @@ -890,9 +900,12 @@ source_set("v8_base") { "src/serialize.h", "src/small-pointer-list.h", "src/smart-pointers.h", + "src/snapshot-common.cc", "src/snapshot-source-sink.cc", "src/snapshot-source-sink.h", "src/snapshot.h", + "src/string-builder.cc", + "src/string-builder.h", "src/string-search.cc", "src/string-search.h", "src/string-stream.cc", @@ -1210,11 +1223,6 @@ source_set("v8_base") { # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. cflags = [ "/wd4267" ] } - if (is_linux) { - if (v8_compress_startup_data == "bz2") { - libs += [ "bz2" ] - } - } if (v8_enable_i18n_support) { deps += [ "//third_party/icu" ] @@ -1260,6 +1268,7 @@ source_set("v8_libbase") { "src/base/flags.h", "src/base/functional.cc", "src/base/functional.h", + "src/base/iterator.h", "src/base/lazy-instance.h", "src/base/logging.cc", "src/base/logging.h", @@ -1388,10 +1397,6 @@ if (current_toolchain == host_toolchain) { ":v8_nosnapshot", "//build/config/sanitizers:deps", ] - - if (v8_compress_startup_data == "bz2") { - libs = [ "bz2" ] - } } } @@ -1406,7 +1411,7 @@ component("v8") { "src/v8dll-main.cc", ] - if (v8_use_external_startup_data) { + if (v8_use_snapshot && v8_use_external_startup_data) { deps = [ ":v8_base", ":v8_external_snapshot", @@ -1417,6 +1422,7 @@ component("v8") { ":v8_snapshot", ] } else { + assert(!v8_use_external_startup_data) deps = [ ":v8_base", ":v8_nosnapshot", @@ -1438,7 +1444,7 @@ component("v8") { } else { group("v8") { - if (v8_use_external_startup_data) { + if (v8_use_snapshot && v8_use_external_startup_data) { deps = [ ":v8_base", ":v8_external_snapshot", @@ -1449,6 +1455,7 @@ group("v8") { ":v8_snapshot", ] } else { + assert(!v8_use_external_startup_data) deps = [ ":v8_base", ":v8_nosnapshot", diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 1e298537ca..d016b794ff 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,521 @@ +2014-12-23: Version 3.31.74 + + [turbofan] Turn DCHECK for fixed slot index into a CHECK (Chromium issue + 444681). + + Performance and stability improvements on all platforms. + + +2014-12-23: Version 3.31.73 + + [turbofan] Fix missing ChangeUint32ToUint64 in lowering of LoadBuffer + (Chromium issue 444695). + + Enable the embedder to specify what kind of context was disposed. + + Performance and stability improvements on all platforms. + + +2014-12-22: Version 3.31.72 + + [turbofan] Correctify lowering of Uint8ClampedArray buffer access + (Chromium issue 444508). + + Performance and stability improvements on all platforms. + + +2014-12-20: Version 3.31.71 + + Performance and stability improvements on all platforms. + + +2014-12-20: Version 3.31.70 + + Performance and stability improvements on all platforms. + + +2014-12-20: Version 3.31.69 + + Performance and stability improvements on all platforms. + + +2014-12-19: Version 3.31.68 + + [turbofan] Fix unsafe out-of-bounds check for checked loads/stores + (Chromium issue 443744). + + Performance and stability improvements on all platforms. + + +2014-12-19: Version 3.31.67 + + Performance and stability improvements on all platforms. + + +2014-12-19: Version 3.31.66 + + Ship ES6 template literals (issue 3230). + + Performance and stability improvements on all platforms. + + +2014-12-18: Version 3.31.65 + + ES6 template literals should not use legacy octal strings (issue 3736). + + Performance and stability improvements on all platforms. + + +2014-12-18: Version 3.31.64 + + Fixed -fsanitize=float-cast-overflow problems (issue 3773). + + Performance and stability improvements on all platforms. + + +2014-12-18: Version 3.31.63 + + ES6 computed property names (issue 3754). + + Performance and stability improvements on all platforms. + + +2014-12-17: Version 3.31.62 + + Performance and stability improvements on all platforms. + + +2014-12-17: Version 3.31.61 + + ES6: Update unscopables to match spec (issue 3632). + + ES6 computed property names (issue 3754). + + More -fsanitize=vptr fixes (Chromium issue 441099). + + [turbofan] Cache conversions inserted during typed lowering (issue + 3763). + + Performance and stability improvements on all platforms. + + +2014-12-16: Version 3.31.60 + + Performance and stability improvements on all platforms. + + +2014-12-16: Version 3.31.59 + + Performance and stability improvements on all platforms. + + +2014-12-16: Version 3.31.58 + + Ship ES6 classes (issue 3330). + + ES6 computed property names (issue 3754). + + Performance and stability improvements on all platforms. + + +2014-12-12: Version 3.31.57 + + Consistently use only one of virtual/OVERRIDE/FINAL (issue 3753). + + Performance and stability improvements on all platforms. + + +2014-12-12: Version 3.31.56 + + Performance and stability improvements on all platforms. + + +2014-12-12: Version 3.31.55 + + Performance and stability improvements on all platforms. + + +2014-12-11: Version 3.31.54 + + Implement Array.from() (issue 3336). + + move v8_use_external_startup_data to standalone.gypi (Chromium issue + 421063). + + Performance and stability improvements on all platforms. + + +2014-12-11: Version 3.31.53 + + Performance and stability improvements on all platforms. + + +2014-12-11: Version 3.31.52 + + Ship ES6 block scoping (issue 2198). + + Optimize Object.seal and Object.preventExtensions (issue 3662, Chromium + issue 115960). + + Add Array.prototype.includes (issue 3575). + + Performance and stability improvements on all platforms. + + +2014-12-10: Version 3.31.51 + + [x64] Fix optimization for certain checked load/stores (Chromium issue + 439743). + + Performance and stability improvements on all platforms. + + +2014-12-09: Version 3.31.50 + + Temporarily restore make dependencies. + + Performance and stability improvements on all platforms. + + +2014-12-09: Version 3.31.49 + + Performance and stability improvements on all platforms. + + +2014-12-09: Version 3.31.48 + + Performance and stability improvements on all platforms. + + +2014-12-09: Version 3.31.47 + + Temporarily restore make dependencies. + + Performance and stability improvements on all platforms. + + +2014-12-08: Version 3.31.46 + + Performance and stability improvements on all platforms. + + +2014-12-08: Version 3.31.45 + + Update all DEPS to match chromium's DEPS at edb488e. + + Turn on DCHECKs and other debugging code if dcheck_always_on is 1 (issue + 3731). + + Optimize GetPrototype. + + Performance and stability improvements on all platforms. + + +2014-12-05: Version 3.31.44 + + Performance and stability improvements on all platforms. + + +2014-12-04: Version 3.31.43 + + ES6 template literals: Fix issue with template after rbrace (issue + 3734). + + Stage ES6 template literals (issue 3230). + + Performance and stability improvements on all platforms. + + +2014-12-04: Version 3.31.42 + + Performance and stability improvements on all platforms. + + +2014-12-04: Version 3.31.41 + + Simplify template literal raw string creation (issue 3710). + + Performance and stability improvements on all platforms. + + +2014-12-03: Version 3.31.40 + + Performance and stability improvements on all platforms. + + +2014-12-03: Version 3.31.39 + + Performance and stability improvements on all platforms. + + +2014-12-03: Version 3.31.38 + + Stage ES6 classes and object literal extensions (issue 3330). + + Fixed environment handling for LFlooringDivI on ARM (Chromium issue + 437765). + + Add GetIdentityHash to v8::Name object API (Chromium issue 437416). + + Set V8_CC_GNU or V8_CC_MSVC for clang in gcc / cl mode (Chromium issue + 82385). + + Performance and stability improvements on all platforms. + + +2014-12-02: Version 3.31.37 + + Performance and stability improvements on all platforms. + + +2014-12-02: Version 3.31.36 + + Set V8_CC_GNU or V8_CC_MSVC for clang in gcc / cl mode (Chromium issue + 82385). + + Performance and stability improvements on all platforms. + + +2014-12-02: Version 3.31.35 + + Performance and stability improvements on all platforms. + + +2014-12-01: Version 3.31.34 + + Performance and stability improvements on all platforms. + + +2014-12-01: Version 3.31.33 + + Performance and stability improvements on all platforms. + + +2014-12-01: Version 3.31.32 + + Performance and stability improvements on all platforms. + + +2014-12-01: Version 3.31.31 + + Performance and stability improvements on all platforms. + + +2014-11-29: Version 3.31.30 + + Performance and stability improvements on all platforms. + + +2014-11-28: Version 3.31.29 + + Stage @@toStringTag (--harmony-tostring). + + Performance and stability improvements on all platforms. + + +2014-11-28: Version 3.31.28 + + Performance and stability improvements on all platforms. + + +2014-11-28: Version 3.31.27 + + Ship harmony-strings. + + Performance and stability improvements on all platforms. + + +2014-11-28: Version 3.31.26 + + Abort optimization in corner case (Chromium issue 436893). + + Performance and stability improvements on all platforms. + + +2014-11-26: Version 3.31.25 + + Stage ES6 block scoping (issue 2198). + + Introduce legacy const slots in correct context (Chromium issue 410030). + + Performance and stability improvements on all platforms. + + +2014-11-26: Version 3.31.24 + + Performance and stability improvements on all platforms. + + +2014-11-25: Version 3.31.23 + + Performance and stability improvements on all platforms. + + +2014-11-25: Version 3.31.22 + + Performance and stability improvements on all platforms. + + +2014-11-24: Version 3.31.21 + + Performance and stability improvements on all platforms. + + +2014-11-24: Version 3.31.20 + + Performance and stability improvements on all platforms. + + +2014-11-22: Version 3.31.19 + + Performance and stability improvements on all platforms. + + +2014-11-21: Version 3.31.18 + + Performance and stability improvements on all platforms. + + +2014-11-21: Version 3.31.17 + + Performance and stability improvements on all platforms. + + +2014-11-21: Version 3.31.16 + + Cache template literal callSiteObj (issue 3230). + + Rename String.prototype.contains to 'includes'. + + Reserve code range block for evacuation (Chromium issue 430118). + + Performance and stability improvements on all platforms. + + +2014-11-20: Version 3.31.15 + + Rename String.prototype.contains to 'includes'. + + Performance and stability improvements on all platforms. + + +2014-11-19: Version 3.31.14 + + Remove Weak{Map,Set}.prototype.clear. + + Performance and stability improvements on all platforms. + + +2014-11-19: Version 3.31.13 + + Performance and stability improvements on all platforms. + + +2014-11-19: Version 3.31.12 + + Classes: Expand test to cover strict runtime behavior (issue 3330). + + v8::String::Concat must not throw (Chromium issue 420240). + + Fix disabling all break points from within the debug event callback + (Chromium issue 432493). + + Performance and stability improvements on all platforms. + + +2014-11-18: Version 3.31.11 + + Performance and stability improvements on all platforms. + + +2014-11-17: Version 3.31.10 + + Performance and stability improvements on all platforms. + + +2014-11-17: Version 3.31.9 + + Expose internal properties of map/set iterators via mirrors. + + Performance and stability improvements on all platforms. + + +2014-11-17: Version 3.31.8 + + Performance and stability improvements on all platforms. + + +2014-11-15: Version 3.31.7 + + Classes: Add support for stepping through default constructors (issue + 3674). + + Performance and stability improvements on all platforms. + + +2014-11-14: Version 3.31.6 + + Fix desugaring of let bindings in for loops to handle continue properly + (issue 3683). + + Performance and stability improvements on all platforms. + + +2014-11-14: Version 3.31.5 + + Classes: Implement correct name binding (issue 3330). + + Performance and stability improvements on all platforms. + + +2014-11-14: Version 3.31.4 + + Performance and stability improvements on all platforms. + + +2014-11-14: Version 3.31.3 + + Classes: Cleanup default constructor flag. + + Soft fail for invalid cache data. + + Implement .of() on typed arrays (issue 3578). + + Performance and stability improvements on all platforms. + + +2014-11-13: Version 3.31.2 + + MIPS: Leaving a generator via an exception causes it to close (issue + 3096). + + MIPS: ES6: Add support for super in object literals (issue 3571). + + Increase the target new space size to the max new space size (issue + 3626). + + Leaving a generator via an exception causes it to close (issue 3096). + + Correctly compute line numbers in functions from the function + constructor (Chromium issue 109362). + + Rename v8::Exception::GetMessage to CreateMessage. + + Classes: Add support for arguments in default constructor (issue 3672). + + ES6: Add support for super in object literals (issue 3571). + + Performance and stability improvements on all platforms. + + +2014-11-12: Version 3.31.1 + + Fix has_constant_parameter_count() confusion in LReturn (Chromium issue + 431602). + + Performance and stability improvements on all platforms. + + 2014-11-05: Version 3.30.33 `1..isPrototypeOf.call(null)` should return false, not throw TypeError diff --git a/deps/v8/DEPS b/deps/v8/DEPS index d4139c6098..e85604b0b7 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -3,44 +3,32 @@ # all paths in here must match this assumption. vars = { - "chromium_git": "https://chromium.googlesource.com", - - "chromium_trunk": "https://src.chromium.org/svn/trunk", - - "buildtools_revision": "fb782d4369d5ae04f17a2fceef7de5a63e50f07b", + "git_url": "https://chromium.googlesource.com", } deps = { - # Remember to keep the revision in sync with the Makefile. "v8/build/gyp": - "http://gyp.googlecode.com/svn/trunk@1831", - + Var("git_url") + "/external/gyp.git" + "@" + "fe00999dfaee449d3465a9316778434884da4fa7", # from svn revision 2010 "v8/third_party/icu": - Var("chromium_trunk") + "/deps/third_party/icu52@277999", - + Var("git_url") + "/chromium/deps/icu.git" + "@" + "51c1a4ce5f362676aa1f1cfdb5b7e52edabfa5aa", "v8/buildtools": - "https://chromium.googlesource.com/chromium/buildtools.git@" + - Var("buildtools_revision"), - + Var("git_url") + "/chromium/buildtools.git" + "@" + "23a4e2f545c7b6340d7e5a2b74801941b0a86535", "v8/testing/gtest": - "http://googletest.googlecode.com/svn/trunk@692", - + Var("git_url") + "/external/googletest.git" + "@" + "8245545b6dc9c4703e6496d1efd19e975ad2b038", # from svn revision 700 "v8/testing/gmock": - "http://googlemock.googlecode.com/svn/trunk@485", + Var("git_url") + "/external/googlemock.git" + "@" + "29763965ab52f24565299976b936d1265cb6a271", # from svn revision 501 + "v8/tools/clang": + Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "90fb65e7a9a5c9d6d9613dfb0e78921c52ca9cfc", } deps_os = { "android": { "v8/third_party/android_tools": - Var("chromium_git") + "/android_tools.git" + "@" + - "31869996507de16812bb53a3d0aaa15cd6194c16", + Var("git_url") + "/android_tools.git" + "@" + "4f723e2a5fa5b7b8a198072ac19b92344be2b271", }, "win": { "v8/third_party/cygwin": - Var("chromium_trunk") + "/deps/third_party/cygwin@66844", - - "v8/third_party/python_26": - Var("chromium_trunk") + "/tools/third_party/python_26@89111", + Var("git_url") + "/chromium/deps/cygwin.git" + "@" + "c89e446b273697fadf3a10ff1007a97c0b7de6df", } } @@ -92,6 +80,13 @@ hooks = [ "-s", "v8/buildtools/linux64/clang-format.sha1", ], }, + { + # Pull clang if needed or requested via GYP_DEFINES. + # Note: On Win, this should run after win_toolchain, as it may use it. + 'name': 'clang', + 'pattern': '.', + 'action': ['python', 'v8/tools/clang/scripts/update.py', '--if-needed'], + }, { # A change to a .gyp, .gypi, or to GYP itself should run the generator. "pattern": ".", diff --git a/deps/v8/Makefile b/deps/v8/Makefile index 3b02f52d2a..606b5d7bf1 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -64,6 +64,10 @@ endif ifeq ($(verifyheap), on) GYPFLAGS += -Dv8_enable_verify_heap=1 endif +# tracemaps=on +ifeq ($(tracemaps), on) + GYPFLAGS += -Dv8_trace_maps=1 +endif # backtrace=off ifeq ($(backtrace), off) GYPFLAGS += -Dv8_enable_backtrace=0 @@ -78,6 +82,9 @@ endif ifeq ($(snapshot), off) GYPFLAGS += -Dv8_use_snapshot='false' endif +ifeq ($(snapshot), external) + GYPFLAGS += -Dv8_use_external_startup_data=1 +endif # extrachecks=on/off ifeq ($(extrachecks), on) GYPFLAGS += -Dv8_enable_extra_checks=1 -Dv8_enable_handle_zapping=1 @@ -486,7 +493,7 @@ gtags.clean: # "dependencies" includes also dependencies required for development. # Remember to keep these in sync with the DEPS file. builddeps: - svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ + svn checkout --force https://gyp.googlecode.com/svn/trunk build/gyp \ --revision 1831 if svn info third_party/icu 2>&1 | grep -q icu46 ; then \ svn switch --force \ @@ -497,9 +504,9 @@ builddeps: https://src.chromium.org/chrome/trunk/deps/third_party/icu52 \ third_party/icu --revision 277999 ; \ fi - svn checkout --force http://googletest.googlecode.com/svn/trunk \ + svn checkout --force https://googletest.googlecode.com/svn/trunk \ testing/gtest --revision 692 - svn checkout --force http://googlemock.googlecode.com/svn/trunk \ + svn checkout --force https://googlemock.googlecode.com/svn/trunk \ testing/gmock --revision 485 dependencies: builddeps diff --git a/deps/v8/Makefile.android b/deps/v8/Makefile.android index 8e200f1f24..2a3640382b 100644 --- a/deps/v8/Makefile.android +++ b/deps/v8/Makefile.android @@ -38,12 +38,10 @@ HOST_OS = $(shell uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/') ANDROID_NDK_HOST_ARCH ?= $(shell uname -m | sed -e 's/i[3456]86/x86/') ifeq ($(HOST_OS), linux) TOOLCHAIN_DIR = linux-$(ANDROID_NDK_HOST_ARCH) +else ifeq ($(HOST_OS), mac) + TOOLCHAIN_DIR = darwin-$(ANDROID_NDK_HOST_ARCH) else - ifeq ($(HOST_OS), mac) - TOOLCHAIN_DIR = darwin-$(ANDROID_NDK_HOST_ARCH) - else - $(error Host platform "${HOST_OS}" is not supported) - endif + $(error Host platform "${HOST_OS}" is not supported) endif ifeq ($(ARCH), android_arm) @@ -52,38 +50,29 @@ ifeq ($(ARCH), android_arm) TOOLCHAIN_ARCH = arm-linux-androideabi TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) TOOLCHAIN_VER = 4.8 +else ifeq ($(ARCH), android_arm64) + DEFINES = target_arch=arm64 v8_target_arch=arm64 android_target_arch=arm64 android_target_platform=21 + TOOLCHAIN_ARCH = aarch64-linux-android + TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) + TOOLCHAIN_VER = 4.9 +else ifeq ($(ARCH), android_mipsel) + DEFINES = target_arch=mipsel v8_target_arch=mipsel android_target_platform=14 + DEFINES += android_target_arch=mips mips_arch_variant=mips32r2 + TOOLCHAIN_ARCH = mipsel-linux-android + TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) + TOOLCHAIN_VER = 4.8 +else ifeq ($(ARCH), android_ia32) + DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86 android_target_platform=14 + TOOLCHAIN_ARCH = x86 + TOOLCHAIN_PREFIX = i686-linux-android + TOOLCHAIN_VER = 4.8 +else ifeq ($(ARCH), android_x87) + DEFINES = target_arch=x87 v8_target_arch=x87 android_target_arch=x86 android_target_platform=14 + TOOLCHAIN_ARCH = x86 + TOOLCHAIN_PREFIX = i686-linux-android + TOOLCHAIN_VER = 4.8 else - ifeq ($(ARCH), android_arm64) - DEFINES = target_arch=arm64 v8_target_arch=arm64 android_target_arch=arm64 android_target_platform=L - TOOLCHAIN_ARCH = aarch64-linux-android - TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) - TOOLCHAIN_VER = 4.9 - else - ifeq ($(ARCH), android_mipsel) - DEFINES = target_arch=mipsel v8_target_arch=mipsel android_target_platform=14 - DEFINES += android_target_arch=mips mips_arch_variant=mips32r2 - TOOLCHAIN_ARCH = mipsel-linux-android - TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) - TOOLCHAIN_VER = 4.8 - - else - ifeq ($(ARCH), android_ia32) - DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86 android_target_platform=14 - TOOLCHAIN_ARCH = x86 - TOOLCHAIN_PREFIX = i686-linux-android - TOOLCHAIN_VER = 4.8 - else - ifeq ($(ARCH), android_x87) - DEFINES = target_arch=x87 v8_target_arch=x87 android_target_arch=x86 android_target_platform=14 - TOOLCHAIN_ARCH = x86 - TOOLCHAIN_PREFIX = i686-linux-android - TOOLCHAIN_VER = 4.8 - else - $(error Target architecture "${ARCH}" is not supported) - endif - endif - endif - endif + $(error Target architecture "${ARCH}" is not supported) endif TOOLCHAIN_PATH = \ diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index aa5f64449e..22a05cb177 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -1,3 +1,4 @@ +adamk@chromium.org bmeurer@chromium.org danno@chromium.org dcarney@chromium.org diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 3a9895db8d..6d19a4e574 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -244,11 +244,11 @@ def GetPreferredTryMasters(project, change): 'v8_linux_rel': set(['defaulttests']), 'v8_linux_dbg': set(['defaulttests']), 'v8_linux_nosnap_rel': set(['defaulttests']), - 'v8_linux_nosnap_dbg': set(['defaulttests']), 'v8_linux64_rel': set(['defaulttests']), 'v8_linux_arm_dbg': set(['defaulttests']), 'v8_linux_arm64_rel': set(['defaulttests']), 'v8_linux_layout_dbg': set(['defaulttests']), + 'v8_linux_chromium_gn_rel': set(['defaulttests']), 'v8_mac_rel': set(['defaulttests']), 'v8_win_rel': set(['defaulttests']), 'v8_win64_compile_rel': set(['defaulttests']), diff --git a/deps/v8/README.md b/deps/v8/README.md index 7ce52a0b03..bc1685affa 100644 --- a/deps/v8/README.md +++ b/deps/v8/README.md @@ -16,8 +16,15 @@ V8 Project page: https://code.google.com/p/v8/ Getting the Code ============= -V8 Git repository: https://chromium.googlesource.com/v8/v8.git -GitHub mirror: https://github.com/v8/v8-git-mirror +Checkout [depot tools](http://www.chromium.org/developers/how-tos/install-depot-tools), and run + +> `fetch v8` + +This will checkout V8 into the directory `v8` and fetch all of its dependencies. +To stay up to date, run + +> `git pull origin` +> `gclient sync` For fetching all branches, add the following into your remote configuration in `.git/config`: diff --git a/deps/v8/build/android.gypi b/deps/v8/build/android.gypi index f984ea3af6..5d3b25a746 100644 --- a/deps/v8/build/android.gypi +++ b/deps/v8/build/android.gypi @@ -74,13 +74,13 @@ ], }, # Release }, # configurations - 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter', - '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions', - # Note: Using -std=c++0x will define __STRICT_ANSI__, which in - # turn will leave out some template stuff for 'long long'. What - # we want is -std=c++11, but this is not supported by GCC 4.6 or - # Xcode 4.2 - '-std=gnu++0x' ], + 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter'], + 'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions', + # Note: Using -std=c++0x will define __STRICT_ANSI__, which + # in turn will leave out some template stuff for 'long + # long'. What we want is -std=c++11, but this is not + # supported by GCC 4.6 or Xcode 4.2 + '-std=gnu++0x' ], 'target_conditions': [ ['_toolset=="target"', { 'cflags!': [ @@ -93,11 +93,13 @@ '-fno-short-enums', '-finline-limit=64', '-Wa,--noexecstack', - '-Wno-error=non-virtual-dtor', # TODO(michaelbai): Fix warnings. # Note: This include is in cflags to ensure that it comes after # all of the includes. '-I<(android_include)', ], + 'cflags_cc': [ + '-Wno-error=non-virtual-dtor', # TODO(michaelbai): Fix warnings. + ], 'defines': [ 'ANDROID', #'__GNU_SOURCE=1', # Necessary for clone() @@ -213,8 +215,7 @@ '-fno-stack-protector', ], }], - ['target_arch=="arm64" or target_arch=="x64"', { - # TODO(ulan): Enable PIE for other architectures (crbug.com/373219). + ['(target_arch=="arm" or target_arch=="arm64" or target_arch=="x64") and component!="shared_library"', { 'cflags': [ '-fPIE', ], diff --git a/deps/v8/build/features.gypi b/deps/v8/build/features.gypi index 7ce66e4c98..25041ce42f 100644 --- a/deps/v8/build/features.gypi +++ b/deps/v8/build/features.gypi @@ -29,8 +29,6 @@ { 'variables': { - 'v8_compress_startup_data%': 'off', - 'v8_enable_disassembler%': 0, 'v8_enable_gdbjit%': 0, @@ -39,6 +37,8 @@ 'v8_enable_verify_heap%': 0, + 'v8_trace_maps%': 0, + 'v8_use_snapshot%': 'true', 'v8_enable_verify_predictable%': 0, @@ -59,9 +59,8 @@ # Enable compiler warnings when using V8_DEPRECATED apis. 'v8_deprecation_warnings%': 0, - # Use external files for startup data blobs: - # the JS builtins sources and the start snapshot. - 'v8_use_external_startup_data%': 0, + # Set to 1 to enable DCHECKs in release builds. + 'dcheck_always_on%': 0, }, 'target_defaults': { 'conditions': [ @@ -77,6 +76,9 @@ ['v8_enable_verify_heap==1', { 'defines': ['VERIFY_HEAP',], }], + ['v8_trace_maps==1', { + 'defines': ['TRACE_MAPS',], + }], ['v8_enable_verify_predictable==1', { 'defines': ['VERIFY_PREDICTABLE',], }], @@ -89,12 +91,12 @@ ['v8_enable_i18n_support==1', { 'defines': ['V8_I18N_SUPPORT',], }], - ['v8_compress_startup_data=="bz2"', { - 'defines': ['COMPRESS_STARTUP_DATA_BZ2',], - }], ['v8_use_external_startup_data==1', { 'defines': ['V8_USE_EXTERNAL_STARTUP_DATA',], }], + ['dcheck_always_on!=0', { + 'defines': ['DEBUG',], + }], ], # conditions 'configurations': { 'DebugBaseCommon': { diff --git a/deps/v8/build/standalone.gypi b/deps/v8/build/standalone.gypi index 47b276311d..ee91e78899 100644 --- a/deps/v8/build/standalone.gypi +++ b/deps/v8/build/standalone.gypi @@ -33,6 +33,8 @@ 'includes': ['toolchain.gypi'], 'variables': { 'component%': 'static_library', + 'make_clang_dir%': '../third_party/llvm-build/Release+Asserts', + 'clang_xcode%': 0, 'asan%': 0, 'tsan%': 0, 'visibility%': 'hidden', @@ -91,6 +93,12 @@ # near-release speeds. 'v8_optimized_debug%': 0, + # Use external files for startup data blobs: + # the JS builtins sources and the start snapshot. + # Embedders that don't use standalone.gypi will need to add + # their own default value. + 'v8_use_external_startup_data%': 0, + # Relative path to icu.gyp from this file. 'icu_gyp_path': '../third_party/icu/icu.gyp', @@ -127,6 +135,16 @@ 'arm_fpu%': 'vfpv3', 'arm_float_abi%': 'default', 'arm_thumb': 'default', + + # Default MIPS variable settings. + 'mips_arch_variant%': 'r2', + # Possible values fp32, fp64, fpxx. + # fp32 - 32 32-bit FPU registers are available, doubles are placed in + # register pairs. + # fp64 - 32 64-bit FPU registers are available. + # fpxx - compatibility mode, it chooses fp32 or fp64 depending on runtime + # detection + 'mips_fpu_mode%': 'fp32', }, 'target_defaults': { 'variables': { @@ -368,6 +386,7 @@ }], # OS=="win" ['OS=="mac"', { 'xcode_settings': { + 'SDKROOT': 'macosx', 'SYMROOT': '<(DEPTH)/xcodebuild', }, 'target_defaults': { @@ -422,5 +441,20 @@ ], # target_conditions }, # target_defaults }], # OS=="mac" + ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) ' + 'and OS!="win"', { + 'make_global_settings': [ + ['CC', '<(make_clang_dir)/bin/clang'], + ['CXX', '<(make_clang_dir)/bin/clang++'], + ['CC.host', '$(CC)'], + ['CXX.host', '$(CXX)'], + ], + }], + ['clang==1 and OS=="win"', { + 'make_global_settings': [ + # On Windows, gyp's ninja generator only looks at CC. + ['CC', '<(make_clang_dir)/bin/clang-cl'], + ], + }], ], } diff --git a/deps/v8/build/toolchain.gypi b/deps/v8/build/toolchain.gypi index 20c2c943bb..ac10065601 100644 --- a/deps/v8/build/toolchain.gypi +++ b/deps/v8/build/toolchain.gypi @@ -30,7 +30,6 @@ { 'variables': { 'msvs_use_common_release': 0, - 'gcc_version%': 'unknown', 'clang%': 0, 'v8_target_arch%': '<(target_arch)', # Native Client builds currently use the V8 ARM JIT and @@ -55,17 +54,6 @@ # Similar to the ARM hard float ABI but on MIPS. 'v8_use_mips_abi_hardfloat%': 'true', - # Default arch variant for MIPS. - 'mips_arch_variant%': 'r2', - - # Possible values fp32, fp64, fpxx. - # fp32 - 32 32-bit FPU registers are available, doubles are placed in - # register pairs. - # fp64 - 32 64-bit FPU registers are available. - # fpxx - compatibility mode, it chooses fp32 or fp64 depending on runtime - # detection - 'mips_fpu_mode%': 'fp32', - 'v8_enable_backtrace%': 0, # Enable profiling support. Only required on Windows. @@ -278,10 +266,27 @@ 'V8_TARGET_ARCH_MIPS', ], 'conditions': [ - ['v8_target_arch==target_arch and android_webview_build==0', { - # Target built with a Mips CXX compiler. - 'target_conditions': [ - ['_toolset=="target"', { + [ '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' + ] + }], + ], + 'target_conditions': [ + ['_toolset=="target"', { + 'conditions': [ + ['v8_target_arch==target_arch and android_webview_build==0', { + # Target built with a Mips CXX compiler. 'cflags': ['-EB'], 'ldflags': ['-EB'], 'conditions': [ @@ -292,16 +297,11 @@ 'cflags': ['-msoft-float'], 'ldflags': ['-msoft-float'], }], - ['mips_fpu_mode=="fp64"', { - 'cflags': ['-mfp64'], - }], - ['mips_fpu_mode=="fpxx"', { - 'cflags': ['-mfpxx'], - }], - ['mips_fpu_mode=="fp32"', { - 'cflags': ['-mfp32'], - }], ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], 'cflags!': ['-mfp32', '-mfpxx'], 'cflags': ['-mips32r6', '-Wa,-mips32r6'], 'ldflags': [ @@ -311,23 +311,145 @@ ], }], ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + 'cflags': ['-mfp64'], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + 'cflags': ['-mfpxx'], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + 'cflags': ['-mfp32'], + }], + ], 'cflags': ['-mips32r2', '-Wa,-mips32r2'], 'ldflags': ['-mips32r2'], }], ['mips_arch_variant=="r1"', { + 'defines': [ + 'FPU_MODE_FP32', + ], 'cflags!': ['-mfp64', '-mfpxx'], 'cflags': ['-mips32', '-Wa,-mips32'], 'ldflags': ['-mips32'], }], ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], 'cflags!': ['-mfp64', '-mfp32'], 'cflags': ['-mips32', '-Wa,-mips32', '-mfpxx'], 'ldflags': ['-mips32'], }], ], + }, { + # 'v8_target_arch!=target_arch' + # Target not built with an MIPS CXX compiler (simulator build). + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': [ + 'FPU_MODE_FP32', + ], + }], + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ], }], ], - }], + }], #_toolset=="target" + ['_toolset=="host"', { + 'conditions': [ + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + ['mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32' + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': ['FPU_MODE_FP32',], + }], + ] + }], #_toolset=="host" + ], + }], # v8_target_arch=="mips" + ['v8_target_arch=="mipsel"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS', + ], + 'conditions': [ [ 'v8_can_use_fpu_instructions=="true"', { 'defines': [ 'CAN_USE_FPU_INSTRUCTIONS', @@ -343,46 +465,12 @@ '__mips_soft_float=1' ], }], - ['mips_arch_variant=="rx"', { - 'defines': [ - '_MIPS_ARCH_MIPS32RX', - 'FPU_MODE_FPXX', - ], - }], - ['mips_arch_variant=="r6"', { - 'defines': [ - '_MIPS_ARCH_MIPS32R6', - 'FPU_MODE_FP64', - ], - }], - ['mips_arch_variant=="r2"', { - 'defines': ['_MIPS_ARCH_MIPS32R2',], - 'conditions': [ - ['mips_fpu_mode=="fp64"', { - 'defines': ['FPU_MODE_FP64',], - }], - ['mips_fpu_mode=="fpxx"', { - 'defines': ['FPU_MODE_FPXX',], - }], - ['mips_fpu_mode=="fp32"', { - 'defines': ['FPU_MODE_FP32',], - }], - ], - }], - ['mips_arch_variant=="r1"', { - 'defines': ['FPU_MODE_FP32',], - }], ], - }], # v8_target_arch=="mips" - ['v8_target_arch=="mipsel"', { - 'defines': [ - 'V8_TARGET_ARCH_MIPS', - ], - 'conditions': [ - ['v8_target_arch==target_arch and android_webview_build==0', { - # Target built with a Mips CXX compiler. - 'target_conditions': [ - ['_toolset=="target"', { + 'target_conditions': [ + ['_toolset=="target"', { + 'conditions': [ + ['v8_target_arch==target_arch and android_webview_build==0', { + # Target built with a Mips CXX compiler. 'cflags': ['-EL'], 'ldflags': ['-EL'], 'conditions': [ @@ -393,16 +481,11 @@ 'cflags': ['-msoft-float'], 'ldflags': ['-msoft-float'], }], - ['mips_fpu_mode=="fp64"', { - 'cflags': ['-mfp64'], - }], - ['mips_fpu_mode=="fpxx"', { - 'cflags': ['-mfpxx'], - }], - ['mips_fpu_mode=="fp32"', { - 'cflags': ['-mfp32'], - }], ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], 'cflags!': ['-mfp32', '-mfpxx'], 'cflags': ['-mips32r6', '-Wa,-mips32r6'], 'ldflags': [ @@ -412,6 +495,29 @@ ], }], ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + 'cflags': ['-mfp64'], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + 'cflags': ['-mfpxx'], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + 'cflags': ['-mfp32'], + }], + ], 'cflags': ['-mips32r2', '-Wa,-mips32r2'], 'ldflags': ['-mips32r2'], }], @@ -421,18 +527,130 @@ 'ldflags': ['-mips32'], }], ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], 'cflags!': ['-mfp64', '-mfp32'], 'cflags': ['-mips32', '-Wa,-mips32', '-mfpxx'], 'ldflags': ['-mips32'], }], ['mips_arch_variant=="loongson"', { + 'defines': [ + '_MIPS_ARCH_LOONGSON', + 'FPU_MODE_FP32', + ], 'cflags!': ['-mfp64', '-mfp32', '-mfpxx'], 'cflags': ['-mips3', '-Wa,-mips3'], }], ], + }, { + # 'v8_target_arch!=target_arch' + # Target not built with an MIPS CXX compiler (simulator build). + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': [ + 'FPU_MODE_FP32', + ], + }], + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ['mips_arch_variant=="loongson"', { + 'defines': [ + '_MIPS_ARCH_LOONGSON', + 'FPU_MODE_FP32', + ], + }], + ], }], ], + }], #_toolset=="target + ['_toolset=="host"', { + 'conditions': [ + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + ['mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32' + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': ['FPU_MODE_FP32',], + }], + ['mips_arch_variant=="loongson"', { + 'defines': [ + '_MIPS_ARCH_LOONGSON', + 'FPU_MODE_FP32', + ], + }], + ] }], + ], + }], # v8_target_arch=="mipsel" + ['v8_target_arch=="mips64el"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS64', + ], + 'conditions': [ [ 'v8_can_use_fpu_instructions=="true"', { 'defines': [ 'CAN_USE_FPU_INSTRUCTIONS', @@ -448,52 +666,11 @@ '__mips_soft_float=1' ], }], - ['mips_arch_variant=="rx"', { - 'defines': [ - '_MIPS_ARCH_MIPS32RX', - 'FPU_MODE_FPXX', - ], - }], - ['mips_arch_variant=="r6"', { - 'defines': [ - '_MIPS_ARCH_MIPS32R6', - 'FPU_MODE_FP64', - ], - }], - ['mips_arch_variant=="r2"', { - 'defines': ['_MIPS_ARCH_MIPS32R2',], + ], + 'target_conditions': [ + ['_toolset=="target"', { 'conditions': [ - ['mips_fpu_mode=="fp64"', { - 'defines': ['FPU_MODE_FP64',], - }], - ['mips_fpu_mode=="fpxx"', { - 'defines': ['FPU_MODE_FPXX',], - }], - ['mips_fpu_mode=="fp32"', { - 'defines': ['FPU_MODE_FP32',], - }], - ], - }], - ['mips_arch_variant=="r1"', { - 'defines': ['FPU_MODE_FP32',], - }], - ['mips_arch_variant=="loongson"', { - 'defines': [ - '_MIPS_ARCH_LOONGSON', - 'FPU_MODE_FP32', - ], - }], - ], - }], # v8_target_arch=="mipsel" - ['v8_target_arch=="mips64el"', { - 'defines': [ - 'V8_TARGET_ARCH_MIPS64', - ], - 'conditions': [ - ['v8_target_arch==target_arch and android_webview_build==0', { - # Target built with a Mips CXX compiler. - 'target_conditions': [ - ['_toolset=="target"', { + ['v8_target_arch==target_arch and android_webview_build==0', { 'cflags': ['-EL'], 'ldflags': ['-EL'], 'conditions': [ @@ -505,6 +682,7 @@ 'ldflags': ['-msoft-float'], }], ['mips_arch_variant=="r6"', { + 'defines': ['_MIPS_ARCH_MIPS64R6',], 'cflags': ['-mips64r6', '-mabi=64', '-Wa,-mips64r6'], 'ldflags': [ '-mips64r6', '-mabi=64', @@ -513,6 +691,7 @@ ], }], ['mips_arch_variant=="r2"', { + 'defines': ['_MIPS_ARCH_MIPS64R2',], 'cflags': ['-mips64r2', '-mabi=64', '-Wa,-mips64r2'], 'ldflags': [ '-mips64r2', '-mabi=64', @@ -521,30 +700,30 @@ ], }], ], + }, { + # 'v8_target_arch!=target_arch' + # Target not built with an MIPS CXX compiler (simulator build). + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': ['_MIPS_ARCH_MIPS64R6',], + }], + ['mips_arch_variant=="r2"', { + 'defines': ['_MIPS_ARCH_MIPS64R2',], + }], + ], }], ], - }], - [ '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' + }], #'_toolset=="target" + ['_toolset=="host"', { + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': ['_MIPS_ARCH_MIPS64R6',], + }], + ['mips_arch_variant=="r2"', { + 'defines': ['_MIPS_ARCH_MIPS64R2',], + }], ], - }], - ['mips_arch_variant=="r6"', { - 'defines': ['_MIPS_ARCH_MIPS64R6',], - }], - ['mips_arch_variant=="r2"', { - 'defines': ['_MIPS_ARCH_MIPS64R2',], - }], + }], #'_toolset=="host" ], }], # v8_target_arch=="mips64el" ['v8_target_arch=="x64"', { @@ -724,6 +903,9 @@ }, }], ], + 'defines': [ + 'ENABLE_SLOW_DCHECKS', + ], }, # DebugBase0 # Abstract configuration for v8_optimized_debug == 1. 'DebugBase1': { @@ -748,6 +930,9 @@ 'LinkIncremental': '2', }, }, + 'defines': [ + 'ENABLE_SLOW_DCHECKS', + ], 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ OS=="qnx"', { @@ -762,14 +947,6 @@ '-ffunction-sections', '-O1', # TODO(2807) should be -O3. ], - 'conditions': [ - ['gcc_version==44 and clang==0', { - 'cflags': [ - # Avoid crashes with gcc 4.4 in the v8 test suite. - '-fno-tree-vrp', - ], - }], - ], }], ['OS=="mac"', { 'xcode_settings': { @@ -816,9 +993,6 @@ '-fdata-sections', '-ffunction-sections', ], - 'defines': [ - 'OPTIMIZED_DEBUG' - ], 'conditions': [ # TODO(crbug.com/272548): Avoid -O3 in NaCl ['nacl_target_arch=="none"', { @@ -828,12 +1002,6 @@ 'cflags': ['-O2'], 'cflags!': ['-O3'], }], - ['gcc_version==44 and clang==0', { - 'cflags': [ - # Avoid crashes with gcc 4.4 in the v8 test suite. - '-fno-tree-vrp', - ], - }], ], }], ['OS=="mac"', { @@ -852,7 +1020,8 @@ 'V8_ENABLE_CHECKS', 'OBJECT_PRINT', 'VERIFY_HEAP', - 'DEBUG' + 'DEBUG', + 'TRACE_MAPS' ], 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ @@ -873,6 +1042,7 @@ # TODO(2304): pass DISABLE_DEBUG_ASSERT instead of hiding DEBUG. 'defines!': [ 'DEBUG', + 'ENABLE_SLOW_DCHECKS', ], }], ], @@ -905,12 +1075,6 @@ '<(wno_array_bounds)', ], 'conditions': [ - [ 'gcc_version==44 and clang==0', { - 'cflags': [ - # Avoid crashes with gcc 4.4 in the v8 test suite. - '-fno-tree-vrp', - ], - }], # TODO(crbug.com/272548): Avoid -O3 in NaCl ['nacl_target_arch=="none"', { 'cflags': ['-O3'], @@ -931,14 +1095,6 @@ '-ffunction-sections', '-O2', ], - 'conditions': [ - [ 'gcc_version==44 and clang==0', { - 'cflags': [ - # Avoid crashes with gcc 4.4 in the v8 test suite. - '-fno-tree-vrp', - ], - }], - ], }], ['OS=="mac"', { 'xcode_settings': { diff --git a/deps/v8/codereview.settings b/deps/v8/codereview.settings index b7f853cd59..a7ee88e361 100644 --- a/deps/v8/codereview.settings +++ b/deps/v8/codereview.settings @@ -1,8 +1,9 @@ CODE_REVIEW_SERVER: https://codereview.chromium.org CC_LIST: v8-dev@googlegroups.com -VIEW_VC: https://code.google.com/p/v8/source/detail?r= +VIEW_VC: https://chromium.googlesource.com/v8/v8/+/ STATUS: http://v8-status.appspot.com/status TRY_ON_UPLOAD: False TRYSERVER_SVN_URL: svn://svn.chromium.org/chrome-try-v8 TRYSERVER_ROOT: v8 PROJECT: v8 +PENDING_REF_PREFIX: refs/pending/ diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index d5433a6a26..d35f2fcb27 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -140,6 +140,17 @@ template class CustomArguments; class PropertyCallbackArguments; class FunctionCallbackArguments; class GlobalHandles; + +class CallbackData { + public: + V8_INLINE v8::Isolate* GetIsolate() const { return isolate_; } + + protected: + explicit CallbackData(v8::Isolate* isolate) : isolate_(isolate) {} + + private: + v8::Isolate* isolate_; +}; } @@ -418,22 +429,53 @@ template class Eternal { }; -template -class WeakCallbackData { +template +class PhantomCallbackData : public internal::CallbackData { + public: + typedef void (*Callback)(const PhantomCallbackData& data); + + V8_INLINE T* GetParameter() const { return parameter_; } + + PhantomCallbackData(Isolate* isolate, T* parameter) + : internal::CallbackData(isolate), parameter_(parameter) {} + + private: + T* parameter_; +}; + + +template +class WeakCallbackData : public PhantomCallbackData

{ public: typedef void (*Callback)(const WeakCallbackData& data); - V8_INLINE Isolate* GetIsolate() const { return isolate_; } V8_INLINE Local GetValue() const { return handle_; } - V8_INLINE P* GetParameter() const { return parameter_; } private: friend class internal::GlobalHandles; - WeakCallbackData(Isolate* isolate, Local handle, P* parameter) - : isolate_(isolate), handle_(handle), parameter_(parameter) { } - Isolate* isolate_; + WeakCallbackData(Isolate* isolate, P* parameter, Local handle) + : PhantomCallbackData

(isolate, parameter), handle_(handle) {} Local handle_; - P* parameter_; +}; + + +template +class InternalFieldsCallbackData : public internal::CallbackData { + public: + typedef void (*Callback)(const InternalFieldsCallbackData& data); + + InternalFieldsCallbackData(Isolate* isolate, T* internalField1, + U* internalField2) + : internal::CallbackData(isolate), + internal_field1_(internalField1), + internal_field2_(internalField2) {} + + V8_INLINE T* GetInternalField1() const { return internal_field1_; } + V8_INLINE U* GetInternalField2() const { return internal_field2_; } + + private: + T* internal_field1_; + U* internal_field2_; }; @@ -471,22 +513,23 @@ template class PersistentBase { template V8_INLINE void Reset(Isolate* isolate, const PersistentBase& other); - V8_INLINE bool IsEmpty() const { return val_ == 0; } + V8_INLINE bool IsEmpty() const { return val_ == NULL; } + V8_INLINE void Empty() { val_ = 0; } template V8_INLINE bool operator==(const PersistentBase& that) const { internal::Object** a = reinterpret_cast(this->val_); internal::Object** b = reinterpret_cast(that.val_); - if (a == 0) return b == 0; - if (b == 0) return false; + if (a == NULL) return b == NULL; + if (b == NULL) return false; return *a == *b; } template V8_INLINE bool operator==(const Handle& that) const { internal::Object** a = reinterpret_cast(this->val_); internal::Object** b = reinterpret_cast(that.val_); - if (a == 0) return b == 0; - if (b == 0) return false; + if (a == NULL) return b == NULL; + if (b == NULL) return false; return *a == *b; } @@ -519,14 +562,17 @@ template class PersistentBase { // Phantom persistents work like weak persistents, except that the pointer to // the object being collected is not available in the finalization callback. // This enables the garbage collector to collect the object and any objects - // it references transitively in one GC cycle. + // it references transitively in one GC cycle. At the moment you can either + // specify a parameter for the callback or the location of two internal + // fields in the dying object. template V8_INLINE void SetPhantom(P* parameter, - typename WeakCallbackData::Callback callback); + typename PhantomCallbackData

::Callback callback); - template - V8_INLINE void SetPhantom(P* parameter, - typename WeakCallbackData::Callback callback); + template + V8_INLINE void SetPhantom( + void (*callback)(const InternalFieldsCallbackData&), + int internal_field_index1, int internal_field_index2); template V8_INLINE P* ClearWeak(); @@ -1011,7 +1057,7 @@ class V8_EXPORT Script { /** * Runs the script returning the resulting value. It will be run in the * context in which it was created (ScriptCompiler::CompileBound or - * UnboundScript::BindToGlobalContext()). + * UnboundScript::BindToCurrentContext()). */ Local Run(); @@ -1045,7 +1091,11 @@ class V8_EXPORT ScriptCompiler { BufferOwned }; - CachedData() : data(NULL), length(0), buffer_policy(BufferNotOwned) {} + CachedData() + : data(NULL), + length(0), + rejected(false), + buffer_policy(BufferNotOwned) {} // If buffer_policy is BufferNotOwned, the caller keeps the ownership of // data and guarantees that it stays alive until the CachedData object is @@ -1058,6 +1108,7 @@ class V8_EXPORT ScriptCompiler { // which will be called when V8 no longer needs the data. const uint8_t* data; int length; + bool rejected; BufferPolicy buffer_policy; private: @@ -1238,6 +1289,26 @@ class V8_EXPORT ScriptCompiler { static Local